Built motion from commit e497c3d.|2.0.12
[motion2.git] / public / app / main / apps / tools / views / triggers / edit / actions / dialog.html
1 <md-dialog class="action-dialog" aria-label="New Action">
2     <form name="actionForm" class="md-inline-form" novalidate>
3         <md-toolbar class="md-accent md-hue-2">
4             <div class="md-toolbar-tools" layout="row" layout-align="space-between center">
5                 <span class="title">{{ vm.title | translate }}</span>
6                 <md-button class="md-icon-button" ng-click="vm.closeDialog()">
7                     <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>
8                 </md-button>
9             </div>
10         </md-toolbar>
11
12         <md-dialog-content ms-scroll>
13             <div class="error-list">
14                 <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">
15                     <div>
16                         <span class="message">{{error.message}}</span>
17                         <span class="type">({{error.type}})</span>
18                     </div>
19                     <md-button class="md-icon-button">
20                         <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>
21                     </md-button>
22                 </div>
23             </div>
24             <md-input-container class="md-block">
25                 <label translate="TOOLS.ACTION">Action</label>
26                 <md-select ng-model="vm.action.action" required md-autofocus>
27
28                     <md-option ng-value="'contactManager'"> {{ 'TOOLS.CONTACT_MANAGER' | translate }}</md-option>
29
30                     <md-option ng-value="'integration'"> {{ 'TOOLS.INTEGRATIONS' | translate }}</md-option>
31
32                     <md-option ng-value="'motionbar'"> {{ 'TOOLS.MOTION_BAR' | translate }}</md-option>
33
34                     <md-option ng-value="'jscripty'"> {{ 'TOOLS.JSCRIPTY' | translate }}</md-option>
35
36                     <md-option ng-value="'urlForward'"> {{ 'TOOLS.URL_FORWARD' | translate }}</md-option>
37
38                     <md-option ng-value="'browser'"> {{ 'TOOLS.BROWSER' | translate }}</md-option>
39                 </md-select>
40                 <div ng-messages="actionForm.action.$error" ng-show="actionForm.action.$touched" role="alert">
41                     <div ng-message="required">
42                         <span translate="TOOLS.ERRORS.ACTION_REQUIRED">Action field is required</span>
43                     </div>
44                 </div>
45             </md-input-container>
46             <md-input-container ng-if="vm.action.action == 'browser'" class="md-block">
47                 <label translate="TOOLS.TYPE">Type</label>
48                 <md-select ng-model="vm.action.data1" required>
49                     <md-option ng-value="'0'">Web Popup</md-option>
50                     <md-option ng-value="'1'">Web Tab</md-option>
51                 </md-select>
52                 <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">
53                     <div ng-message="required">
54                         <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>
55                     </div>
56                 </div>
57             </md-input-container>
58             <md-input-container ng-if="vm.action.action == 'contactManager'" class="md-block">
59                 <label translate="TOOLS.LIST">List</label>
60                 <md-select ng-model="vm.action.data1" required>
61                     <md-option ng-value="data1.id" ng-repeat="data1 in vm.lists">{{ data1.name }}</md-option>
62                 </md-select>
63                 <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">
64                     <div ng-message="required">
65                         <span translate="TOOLS.ERRORS.LIST_REQUIRED">List field is required</span>
66                     </div>
67                 </div>
68             </md-input-container>
69             <md-input-container ng-if="vm.action.action == 'urlForward'" class="md-block">
70                 <label translate="TOOLS.TYPE">Type</label>
71                 <md-select ng-model="vm.action.data1" required>
72                     <md-option ng-value="'GET'">GET</md-option>
73                     <md-option ng-value="'POST'">POST</md-option>
74                 </md-select>
75                 <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">
76                     <div ng-message="required">
77                         <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>
78                     </div>
79                 </div>
80             </md-input-container>
81             <md-input-container ng-if="vm.action.action == 'urlForward'" class="md-block">
82                 <label translate="TOOLS.URL">Url</label>
83                 <input type="url" name="data2" ng-model="vm.action.data2" required>
84                 <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">
85                     <div ng-message="required">
86                         <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>
87                     </div>
88                     <div ng-message="url">
89                         <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>
90                     </div>
91                 </div>
92             </md-input-container>
93             <md-input-container ng-if="vm.action.action == 'integration'" class="md-block">
94                 <label translate="TOOLS.INTEGRATION">Integration</label>
95                 <md-select ng-model="vm.action.data1" required>
96                     <md-option ng-value="'zendesk'">Zendesk</md-option>
97                     <md-option ng-value="'salesforce'">Salesforce</md-option>
98                     <md-option ng-value="'sugarcrm'">SugarCRM</md-option>
99                     <md-option ng-value="'freshdesk'">Freshdesk</md-option>
100                 </md-select>
101                 <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">
102                     <div ng-message="required">
103                         <span translate="TOOLS.ERRORS.INTEGRATION_REQUIRED">Integration field is required</span>
104                     </div>
105                 </div>
106             </md-input-container>
107             <md-input-container ng-if="vm.action.action == 'integration' && vm.action.data1 == 'zendesk'" class="md-block">
108                 <label translate="TOOLS.ACCOUNT">Account</label>
109                 <md-select ng-model="vm.action.data2" required>
110                     <md-option ng-value="data2.id" ng-repeat="data2 in vm.zendeskAccounts">{{ data2.name }}</md-option>
111                 </md-select>
112                 <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">
113                     <div ng-message="required">
114                         <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>
115                     </div>
116                 </div>
117             </md-input-container>
118             <md-input-container ng-if="vm.action.action == 'integration' && vm.action.data1 == 'salesforce'" class="md-block">
119                 <label translate="TOOLS.ACCOUNT">Account</label>
120                 <md-select ng-model="vm.action.data2" required>
121                     <md-option ng-value="data2.id" ng-repeat="data2 in vm.salesforceAccounts">{{ data2.name }}</md-option>
122                 </md-select>
123                 <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">
124                     <div ng-message="required">
125                         <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>
126                     </div>
127                 </div>
128             </md-input-container>
129             <md-input-container ng-if="vm.action.action == 'integration' && vm.action.data1 == 'sugarcrm'" class="md-block">
130                 <label translate="TOOLS.ACCOUNT">Account</label>
131                 <md-select ng-model="vm.action.data2" required>
132                     <md-option ng-value="data2.id" ng-repeat="data2 in vm.sugarcrmAccounts">{{ data2.name }}</md-option>
133                 </md-select>
134                 <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">
135                     <div ng-message="required">
136                         <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>
137                     </div>
138                 </div>
139             </md-input-container>
140             <md-input-container ng-if="vm.action.action == 'integration' && vm.action.data1 == 'freshdesk'" class="md-block">
141                 <label translate="TOOLS.ACCOUNT">Account</label>
142                 <md-select ng-model="vm.action.data2" required>
143                     <md-option ng-value="data2.id" ng-repeat="data2 in vm.freshdeskAccounts">{{ data2.name }}</md-option>
144                 </md-select>
145                 <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">
146                     <div ng-message="required">
147                         <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>
148                     </div>
149                 </div>
150             </md-input-container>
151             <md-input-container ng-if="vm.action.action == 'integration' && vm.action.data1 == 'zendesk' && vm.action.data2" class="md-block">
152                 <label translate="TOOLS.CONFIGURATION">Configuration</label>
153                 <md-select ng-model="vm.action.data3" required>
154                     <md-option ng-value="data3.id" ng-repeat="data3 in vm.zendeskConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>
155                 </md-select>
156                 <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">
157                     <div ng-message="required">
158                         <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>
159                     </div>
160                 </div>
161             </md-input-container>
162             <md-input-container ng-if="vm.action.action == 'integration' && vm.action.data1 == 'salesforce' && vm.action.data2" class="md-block">
163                 <label translate="TOOLS.CONFIGURATION">Configuration</label>
164                 <md-select ng-model="vm.action.data3" required>
165                     <md-option ng-value="data3.id" ng-repeat="data3 in vm.salesforceConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>
166                 </md-select>
167                 <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">
168                     <div ng-message="required">
169                         <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>
170                     </div>
171                 </div>
172             </md-input-container>
173             <md-input-container ng-if="vm.action.action == 'integration' && vm.action.data1 == 'sugarcrm' && vm.action.data2" class="md-block">
174                 <label translate="TOOLS.CONFIGURATION">Configuration</label>
175                 <md-select ng-model="vm.action.data3" required>
176                     <md-option ng-value="data3.id" ng-repeat="data3 in vm.sugarcrmConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>
177                 </md-select>
178                 <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">
179                     <div ng-message="required">
180                         <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>
181                     </div>
182                 </div>
183             </md-input-container>
184             <md-input-container ng-if="vm.action.action == 'integration' && vm.action.data1 == 'freshdesk' && vm.action.data2" class="md-block">
185                 <label translate="TOOLS.CONFIGURATION">Configuration</label>
186                 <md-select ng-model="vm.action.data3" required>
187                     <md-option ng-value="data3.id" ng-repeat="data3 in vm.freshdeskConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>
188                 </md-select>
189                 <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">
190                     <div ng-message="required">
191                         <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>
192                     </div>
193                 </div>
194             </md-input-container>
195             <md-input-container ng-if="vm.action.action == 'motionbar'" class="md-block">
196                 <label translate="TOOLS.TYPE">Type</label>
197                 <md-select ng-model="vm.action.data1" required>
198                     <md-option ng-value="'0'">Popup</md-option>
199                     <md-option ng-value="'1'">URL</md-option>
200                     <md-option ng-value="'2'">Windows App</md-option>
201                 </md-select>
202                 <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">
203                     <div ng-message="required">
204                         <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>
205                     </div>
206                 </div>
207             </md-input-container>
208             <md-input-container ng-if="vm.action.action == 'motionbar' && vm.action.data1 == '1'" class="md-block">
209                 <label translate="TOOLS.URL">Url</label>
210                 <input type="url" name="data2" ng-model="vm.action.data2" required>
211                 <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">
212                     <div ng-message="required">
213                         <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>
214                     </div>
215                     <div ng-message="url">
216                         <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>
217                     </div>
218                 </div>
219             </md-input-container>
220             <md-input-container ng-if="vm.action.action == 'motionbar' && vm.action.data1 == '2'" class="md-block">
221                 <label translate="TOOLS.APPLICATION">Application</label>
222                 <input type="text" name="data2" ng-model="vm.action.data2" required>
223                 <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">
224                     <div ng-message="required">
225                         <span translate="TOOLS.ERRORS.APPLICATION_REQUIRED">Application field is required</span>
226                     </div>
227                 </div>
228             </md-input-container>
229             <md-input-container ng-if="vm.action.action == 'motionbar' && vm.action.data1 == '2'" class="md-block">
230                 <label translate="TOOLS.ARGUMENTS">Arguments</label>
231                 <input type="text" name="data3" ng-model="vm.action.data3">
232                 <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">
233                     <div ng-message="required">
234                         <span translate="TOOLS.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>
235                     </div>
236                 </div>
237             </md-input-container>
238             <md-input-container ng-if="vm.action.action == 'motionbar' && vm.action.data1 == '0'" class="md-block">
239                 <label translate="TOOLS.TEMPLATE">Template</label>
240                 <md-select ng-model="vm.action.data2" required>
241                     <md-option ng-value="data2.id" ng-repeat="data2 in vm.templates">{{ data2.name }}</md-option>
242                 </md-select>
243                 <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">
244                     <div ng-message="required">
245                         <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>
246                     </div>
247                 </div>
248             </md-input-container>
249             <md-input-container ng-if="vm.action.action == 'browser' && vm.action.data1 == '0'" class="md-block">
250                 <label translate="TOOLS.TEMPLATE">Template</label>
251                 <md-select ng-model="vm.action.data2" required>
252                     <md-option ng-value="data2.id" ng-repeat="data2 in vm.templates">{{ data2.name }}</md-option>
253                 </md-select>
254                 <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">
255                     <div ng-message="required">
256                         <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>
257                     </div>
258                 </div>
259             </md-input-container>
260             <md-input-container ng-if="vm.action.action == 'browser' && vm.action.data1 == '1'" class="md-block">
261                 <label translate="TOOLS.URL">Url</label>
262                 <input type="url" name="data2" ng-model="vm.action.data2" required>
263                 <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">
264                     <div ng-message="required">
265                         <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>
266                     </div>
267                     <div ng-message="url">
268                         <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>
269                     </div>
270                 </div>
271             </md-input-container>
272
273             <div class="error-list">
274                 <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">
275                     <div>
276                         <span class="message">{{error.message}}</span>
277                         <span class="type">({{error.type}})</span>
278                     </div>
279                     <md-button class="md-icon-button">
280                         <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>
281                     </md-button>
282                 </div>
283             </div>
284         </md-dialog-content>
285
286         <md-dialog-actions layout="row" layout-align="space-between center">
287             <div layout="row" layout-align="start center">
288                 <md-button type="submit" ng-if="!vm.newAction" ng-click="vm.saveAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid || actionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">
289                     SAVE
290                 </md-button>
291
292                 <md-button type="submit" ng-if="vm.newAction" ng-click="vm.addNewAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ACTION" translate-attr-aria-label="TOOLS.ADD_ACTION">
293                     ADD ACTION
294                 </md-button>
295             </div>
296             <div layout="row">
297                 <md-button class="md-icon-button" ng-if="!vm.newAction" ng-click="vm.deleteAction($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">
298                     <md-icon md-font-icon="icon-delete"></md-icon>
299                     <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>
300                 </md-button>
301             </div>
302         </md-dialog-actions>
303     </form>
304 </md-dialog>