Merge remote-tracking branch 'upstream/4.5' into 4.5-4.6-2015-03-16-17-24-33
[civicrm-core.git] / partials / crmMailingAB / edit.html
1 <!--
2 Implicit Controller: CrmMailingABEditCtrl
3
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 -->
9 <div ng-form="crmMailingABEdit">
10 <div class="crm-block crm-form-block crmMailing">
11 <div crm-ui-wizard>
12 <div crm-ui-wizard-step="10" crm-title="ts('Setup')" ng-form="setupForm">
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>
22 <div crm-ui-wizard-step="11" crm-title="ts('Target')" ng-form="targetForm">
23 <div
24 crm-mailing-ab-block-setup="{
25 recipients: 1,
26 group_percentage: 1
27 }"
28 crm-abtest="abtest"></div>
29 </div>
30 <div crm-ui-wizard-step="20" crm-title="ts('Compose')" ng-if="abtest.ab.testing_criteria != 'full_email'" ng-form="composeForm">
31 <div crm-ui-tab-set>
32 <div crm-ui-tab id="tab-mailing" crm-title="ts('Mailing')">
33 <div
34 ng-if="abtest.ab.testing_criteria == 'from'"
35 crm-mailing-ab-block-mailing="{
36 msg_template_id: 1,
37 fromAddressA: 1,
38 fromAddressB: 1,
39 subject: 1
40 }"
41 crm-abtest="abtest"></div>
42 <div
43 ng-if="abtest.ab.testing_criteria == 'subject'"
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>
52 <div crm-ui-accordion crm-title="ts('HTML')">
53 <div crm-mailing-body-html crm-mailing="abtest.mailings.a"/>
54 </div>
55 <div crm-ui-accordion crm-title="ts('Plain Text')" crm-collapsed='!abtest.mailings.a.body_text'>
56 <div crm-mailing-body-text crm-mailing="abtest.mailings.a"/>
57 </div>
58 </div>
59 <!--
60 FIXME: Attachment UI works, but we haven't implemented backend logic for copying/sharing
61 of attachments among mailings A/B/C.
62 <div crm-ui-tab id="tab-attachment" crm-title="ts('Attachments')">
63 <div crm-attachments="abtest.attachments.a"/>
64 </div>
65 -->
66 <div crm-ui-tab id="tab-header" crm-title="ts('Header and Footer')">
67 <div crm-mailing-block-header-footer crm-mailing="abtest.mailings.a"/>
68 </div>
69 <div crm-ui-tab id="tab-pub" crm-title="ts('Publication')">
70 <div crm-mailing-block-publication crm-mailing="abtest.mailings.a"/>
71 </div>
72 <div crm-ui-tab id="tab-response" crm-title="ts('Responses')">
73 <div crm-mailing-block-responses crm-mailing="abtest.mailings.a"/>
74 </div>
75 </div>
76 <div crm-ui-accordion crm-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)" />
78 </div>
79 <div crm-ui-accordion crm-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)" />
81 </div>
82 </div>
83 <div crm-ui-wizard-step="21" crm-title="ts('Compose (A)')" ng-if="abtest.ab.testing_criteria == 'full_email'" ng-form="composeAForm">
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>
94 <div crm-ui-accordion crm-title="ts('HTML')">
95 <div crm-mailing-body-html crm-mailing="abtest.mailings.a"/>
96 </div>
97 <div crm-ui-accordion crm-title="ts('Plain Text')" crm-collapsed='!abtest.mailings.a.body_text'>
98 <div crm-mailing-body-text crm-mailing="abtest.mailings.a"/>
99 </div>
100 </div>
101 <div crm-ui-tab id="tab-attachmentA" crm-title="ts('Attachments')">
102 <div crm-attachments="abtest.attachments.a"/>
103 </div>
104 <div crm-ui-tab id="tab-headerA" crm-title="ts('Header and Footer')">
105 <div crm-mailing-block-header-footer crm-mailing="abtest.mailings.a"/>
106 </div>
107 <div crm-ui-tab id="tab-pubA" crm-title="ts('Publication')">
108 <div crm-mailing-block-publication crm-mailing="abtest.mailings.a"/>
109 </div>
110 <div crm-ui-tab id="tab-responseA" crm-title="ts('Responses')">
111 <div crm-mailing-block-responses crm-mailing="abtest.mailings.a"/>
112 </div>
113 </div>
114 <div crm-ui-accordion crm-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)" />
116 </div>
117 </div>
118 <div crm-ui-wizard-step="22" crm-title="ts('Compose (B)')" ng-if="abtest.ab.testing_criteria == 'full_email'" ng-form="composeBForm">
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>
129 <div crm-ui-accordion crm-title="ts('HTML')">
130 <div crm-mailing-body-html crm-mailing="abtest.mailings.b"/>
131 </div>
132 <div crm-ui-accordion crm-title="ts('Plain Text')" crm-collapsed='!abtest.mailings.b.body_text'>
133 <div crm-mailing-body-text crm-mailing="abtest.mailings.b"/>
134 </div>
135 </div>
136 <div crm-ui-tab id="tab-attachmentB" crm-title="ts('Attachments')">
137 <div crm-attachments="abtest.attachments.b"/>
138 </div>
139 <div crm-ui-tab id="tab-headerB" crm-title="ts('Header and Footer')">
140 <div crm-mailing-block-header-footer crm-mailing="abtest.mailings.b"/>
141 </div>
142 <div crm-ui-tab id="tab-pubB" crm-title="ts('Publication')">
143 <div crm-mailing-block-publication crm-mailing="abtest.mailings.b"/>
144 </div>
145 <div crm-ui-tab id="tab-responseB" crm-title="ts('Responses')">
146 <div crm-mailing-block-responses crm-mailing="abtest.mailings.b"/>
147 </div>
148 </div>
149 <div crm-ui-accordion crm-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)" />
151 </div>
152 </div>
153 <div crm-ui-wizard-step="30" crm-title="ts('Schedule')" ng-form="schedForm">
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>
161 <a class="button crmMailing-submit-button" ng-click="submit()" ng-class="{blocking: block.check(), disabled: crmMailingAB.$invalid}">
162 <div>{{ts('Submit Mailing')}}</div>
163 </a>
164 </center>
165 </div>
166 <span crm-ui-wizard-buttons style="float:right;">
167 <button
168 crm-icon="trash"
169 ng-show="checkPerm('delete in CiviMail')"
170 ng-disabled="block.check()"
171 crm-confirm="{title:ts('Delete Draft'), message:ts('Are you sure you want to permanently delete this mailing?')}"
172 on-yes="delete()">{{ts('Delete Draft')}}
173 </button>
174 <button crm-icon="disk" ng-disabled="block.check()" ng-click="save().then(leave) ">{{ts('Save Draft')}}</button>
175 </span>
176 </div>
177 </div>