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>
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">
16 <span class="message">{{error.message}}</span>
17 <span class="type">({{error.type}})</span>
19 <md-button class="md-icon-button">
20 <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>
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>
28 <md-option ng-value="'contactManager'"> {{ 'TOOLS.CONTACT_MANAGER' | translate }}</md-option>
30 <md-option ng-value="'integration'"> {{ 'TOOLS.INTEGRATIONS' | translate }}</md-option>
32 <md-option ng-value="'motionbar'"> {{ 'TOOLS.MOTION_BAR' | translate }}</md-option>
34 <md-option ng-value="'jscripty'"> {{ 'TOOLS.JSCRIPTY' | translate }}</md-option>
36 <md-option ng-value="'urlForward'"> {{ 'TOOLS.URL_FORWARD' | translate }}</md-option>
38 <md-option ng-value="'browser'"> {{ 'TOOLS.BROWSER' | translate }}</md-option>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
271 </md-input-container>
273 <div class="error-list">
274 <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">
276 <span class="message">{{error.message}}</span>
277 <span class="type">({{error.type}})</span>
279 <md-button class="md-icon-button">
280 <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>
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">
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">
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>