Merge pull request #18420 from MegaphoneJon/membership-detail-custom-fields
[civicrm-core.git] / ang / crmMailingAB / EditCtrl / edit.html
CommitLineData
22bc3e48 1<!--
3ad2ea69
TO
2 Implicit Controller: CrmMailingABEditCtrl
3
22bc3e48
TO
4 An ABTest includes two mailings, but we don't require the user to enter two complete mailings. For
5 simplicity, the email composition UI generally displays A (unless we specifically decided to expose an
6 individual field from B). At the end of the composition process, the controller's "sync" operation will
7 merge shared settings from "A" into "B".
8-->
3ad2ea69
TO
9<div ng-form="crmMailingABEdit">
10 <div class="crm-block crm-form-block crmMailing">
af6962d8 11 <div crm-ui-wizard>
3f0da451 12 <div crm-ui-wizard-step="10" crm-title="ts('Setup')" ng-form="setupForm">
1d4d0279
TO
13 <div
14 crm-mailing-ab-block-setup="{
15 help: 1,
16 abName: 1,
17 campaign: 1,
18 testing_criteria: 1
19 }"
20 crm-abtest="abtest"></div>
21 </div>
3f0da451 22 <div crm-ui-wizard-step="11" crm-title="ts('Target')" ng-form="targetForm">
1d4d0279
TO
23 <div
24 crm-mailing-ab-block-setup="{
25 recipients: 1,
26 group_percentage: 1
27 }"
28 crm-abtest="abtest"></div>
70980d8e 29 </div>
05aaa6ae 30 <div crm-ui-wizard-step="20" crm-title="ts('Compose')" ng-if="abtest.ab.testing_criteria != 'full_email'" ng-form="composeForm">
22bc3e48
TO
31 <div crm-ui-tab-set>
32 <div crm-ui-tab id="tab-mailing" crm-title="ts('Mailing')">
33 <div
05aaa6ae 34 ng-if="abtest.ab.testing_criteria == 'from'"
22bc3e48
TO
35 crm-mailing-ab-block-mailing="{
36 msg_template_id: 1,
37 fromAddressA: 1,
38 fromAddressB: 1,
22bc3e48
TO
39 subject: 1
40 }"
41 crm-abtest="abtest"></div>
42 <div
05aaa6ae 43 ng-if="abtest.ab.testing_criteria == 'subject'"
22bc3e48
TO
44 crm-mailing-ab-block-mailing="{
45 msg_template_id: 1,
46 fromAddress: 1,
47 replyTo: 1,
48 subjectA: 1,
49 subjectB: 1
50 }"
51 crm-abtest="abtest"></div>
2e08c6c5
TO
52 <div crm-ui-accordion="{title: ts('HTML')}">
53 <div crm-mailing-body-html crm-mailing="abtest.mailings.a"></div>
22bc3e48 54 </div>
207819ec 55 <div crm-ui-accordion="{title: ts('Plain Text'), collapsed: !abtest.mailings.a.body_text}">
2e08c6c5 56 <div crm-mailing-body-text crm-mailing="abtest.mailings.a"></div>
22bc3e48
TO
57 </div>
58 </div>
1535c8f3
TO
59 <!--
60 FIXME: Attachment UI works, but we haven't implemented backend logic for copying/sharing
61 of attachments among mailings A/B/C.
22bc3e48 62 <div crm-ui-tab id="tab-attachment" crm-title="ts('Attachments')">
2e08c6c5 63 <div crm-attachments="abtest.attachments.a"></div>
22bc3e48 64 </div>
1535c8f3 65 -->
ff433220 66 <div crm-ui-tab id="tab-header" crm-title="ts('Header and Footer')" ng-if="mailingFields.header_id.options.length > 0 || mailingFields.footer_id.options.length > 0">
2e08c6c5 67 <div crm-mailing-block-header-footer crm-mailing="abtest.mailings.a"></div>
22bc3e48
TO
68 </div>
69 <div crm-ui-tab id="tab-pub" crm-title="ts('Publication')">
2e08c6c5 70 <div crm-mailing-block-publication crm-mailing="abtest.mailings.a"></div>
22bc3e48
TO
71 </div>
72 <div crm-ui-tab id="tab-response" crm-title="ts('Responses')">
2e08c6c5 73 <div crm-mailing-block-responses crm-mailing="abtest.mailings.a"></div>
22bc3e48
TO
74 </div>
75 </div>
2e08c6c5
TO
76 <div crm-ui-accordion="{title: ts('Preview (A)')}">
77 <div crm-mailing-block-preview crm-mailing="abtest.mailings.a" on-preview="previewMailing('a', preview.mode)" on-send="sendTest('a', preview.recipient)"></div>
af6962d8 78 </div>
2e08c6c5
TO
79 <div crm-ui-accordion="{title: ts('Preview (B)')}">
80 <div crm-mailing-block-preview crm-mailing="abtest.mailings.b" on-preview="previewMailing('b', preview.mode)" on-send="sendTest('b', preview.recipient)"></div>
af6962d8 81 </div>
70980d8e 82 </div>
05aaa6ae 83 <div crm-ui-wizard-step="21" crm-title="ts('Compose (A)')" ng-if="abtest.ab.testing_criteria == 'full_email'" ng-form="composeAForm">
9758a72e
TO
84 <div crm-ui-tab-set>
85 <div crm-ui-tab id="tab-mailingA" crm-title="ts('Mailing')">
86 <div
87 crm-mailing-ab-block-mailing="{
88 msg_template_idA: 1,
89 fromAddressA: 1,
90 replyToA: 1,
91 subjectA: 1
92 }"
93 crm-abtest="abtest"></div>
2e08c6c5
TO
94 <div crm-ui-accordion="{title: ts('HTML')}">
95 <div crm-mailing-body-html crm-mailing="abtest.mailings.a"></div>
9758a72e 96 </div>
207819ec 97 <div crm-ui-accordion="{title: ts('Plain Text'), collapsed: !abtest.mailings.a.body_text}">
2e08c6c5 98 <div crm-mailing-body-text crm-mailing="abtest.mailings.a"></div>
9758a72e
TO
99 </div>
100 </div>
101 <div crm-ui-tab id="tab-attachmentA" crm-title="ts('Attachments')">
2e08c6c5 102 <div crm-attachments="abtest.attachments.a"></div>
9758a72e 103 </div>
ff433220 104 <div crm-ui-tab id="tab-headerA" crm-title="ts('Header and Footer')" ng-if="mailingFields.header_id.options.length > 0 || mailingFields.footer_id.options.length > 0">
2e08c6c5 105 <div crm-mailing-block-header-footer crm-mailing="abtest.mailings.a"></div>
9758a72e
TO
106 </div>
107 <div crm-ui-tab id="tab-pubA" crm-title="ts('Publication')">
2e08c6c5 108 <div crm-mailing-block-publication crm-mailing="abtest.mailings.a"></div>
9758a72e
TO
109 </div>
110 <div crm-ui-tab id="tab-responseA" crm-title="ts('Responses')">
2e08c6c5 111 <div crm-mailing-block-responses crm-mailing="abtest.mailings.a"></div>
9758a72e
TO
112 </div>
113 </div>
2e08c6c5
TO
114 <div crm-ui-accordion="{title: ts('Preview')}">
115 <div crm-mailing-block-preview crm-mailing="abtest.mailings.a" on-preview="previewMailing('a', preview.mode)" on-send="sendTest('a', preview.recipient)"></div>
9758a72e 116 </div>
22bc3e48 117 </div>
05aaa6ae 118 <div crm-ui-wizard-step="22" crm-title="ts('Compose (B)')" ng-if="abtest.ab.testing_criteria == 'full_email'" ng-form="composeBForm">
9758a72e
TO
119 <div crm-ui-tab-set>
120 <div crm-ui-tab id="tab-mailingB" crm-title="ts('Mailing')">
121 <div
122 crm-mailing-ab-block-mailing="{
123 msg_template_idB: 1,
124 fromAddressB: 1,
125 replyToB: 1,
126 subjectB: 1
127 }"
128 crm-abtest="abtest"></div>
2e08c6c5
TO
129 <div crm-ui-accordion="{title: ts('HTML')}">
130 <div crm-mailing-body-html crm-mailing="abtest.mailings.b"></div>
9758a72e 131 </div>
207819ec 132 <div crm-ui-accordion="{title: ts('Plain Text'), collapsed: !abtest.mailings.b.body_text}">
2e08c6c5 133 <div crm-mailing-body-text crm-mailing="abtest.mailings.b"></div>
9758a72e
TO
134 </div>
135 </div>
136 <div crm-ui-tab id="tab-attachmentB" crm-title="ts('Attachments')">
2e08c6c5 137 <div crm-attachments="abtest.attachments.b"></div>
9758a72e 138 </div>
ff433220 139 <div crm-ui-tab id="tab-headerB" crm-title="ts('Header and Footer')" ng-if="mailingFields.header_id.options.length > 0 || mailingFields.footer_id.options.length > 0">
2e08c6c5 140 <div crm-mailing-block-header-footer crm-mailing="abtest.mailings.b"></div>
9758a72e
TO
141 </div>
142 <div crm-ui-tab id="tab-pubB" crm-title="ts('Publication')">
2e08c6c5 143 <div crm-mailing-block-publication crm-mailing="abtest.mailings.b"></div>
9758a72e
TO
144 </div>
145 <div crm-ui-tab id="tab-responseB" crm-title="ts('Responses')">
2e08c6c5 146 <div crm-mailing-block-responses crm-mailing="abtest.mailings.b"></div>
9758a72e
TO
147 </div>
148 </div>
2e08c6c5
TO
149 <div crm-ui-accordion="{title: ts('Preview')}">
150 <div crm-mailing-block-preview crm-mailing="abtest.mailings.b" on-preview="previewMailing('b', preview.mode)" on-send="sendTest('b', preview.recipient)"></div>
9758a72e 151 </div>
22bc3e48 152 </div>
3f0da451 153 <div crm-ui-wizard-step="30" crm-title="ts('Schedule')" ng-form="schedForm">
bba4d38a
TO
154 <div
155 crm-mailing-ab-block-setup="{
156 scheduled_date: 1,
157 declare_winning_time: 1
158 }"
159 crm-abtest="abtest"></div>
160 <center>
1ba2060f 161 <a class="button crmMailing-submit-button" crm-icon="fa-paper-plane" ng-click="submit()" ng-class="{blocking: block.check(), disabled: crmMailingAB.$invalid}">{{:: ts('Submit Mailing') }}</a>
bba4d38a 162 </center>
1d4d0279 163 </div>
22bc3e48
TO
164 <span crm-ui-wizard-buttons style="float:right;">
165 <button
77ec5a8d 166 crm-icon="fa-trash"
0fc156d9 167 ng-show="checkPerm('delete in CiviMail')"
a12bd71d 168 ng-disabled="block.check()"
3e5e512f 169 crm-confirm="{title:ts('Delete Draft'), message:ts('Are you sure you want to permanently delete this mailing?')}"
f9c5f498 170 on-yes="delete()">{{:: ts('Delete Draft') }}
22bc3e48 171 </button>
f9c5f498 172 <button crm-icon="fa-floppy-o" ng-disabled="block.check()" ng-click="save().then(leave) ">{{:: ts('Save Draft') }}</button>
22bc3e48 173 </span>
af6962d8 174 </div>
7cded6f5 175 </div>
3ad2ea69 176</div>