1 <md-dialog class="freshdeskAccount-item-dialog" aria-label="New Item">
2 <form name="freshdeskAccountItemForm" class="md-inline-form" novalidate>
3 <md-toolbar class="md-accent md-hue-2">
5 class="md-toolbar-tools"
7 layout-align="space-between center"
9 <span class="title">{{ vm.title | translate }}</span>
10 <md-button class="md-icon-button" ng-click="vm.closeDialog()">
12 md-font-icon="icon-close"
13 aria-label="Close dialog"
19 <md-dialog-content ms-scroll>
20 <div class="error-list">
22 ng-repeat="error in vm.errors"
25 layout-align="space-between center"
28 <span class="message">{{error.message}}</span>
29 <span class="type">({{error.type}})</span>
31 <md-button class="md-icon-button">
33 md-font-icon="icon-alert-box"
34 aria-label="alert error"
41 <div ng-switch="vm.type">
42 <div ng-switch-when="subject">
43 <!-- SUBJECT SECTION -->
44 <div ng-include="'/subject.html'"></div>
45 <!-- / SUBJECT SECTION -->
47 <div ng-switch-when="description">
48 <!-- DESCRIPTION SECTION -->
49 <md-input-container class="md-block">
50 <label translate="APP.TYPE">Type</label>
51 <md-select name="type" ng-model="vm.item.type" required>
52 <md-option value="string">String</md-option>
53 <md-option value="keyValue">Key Value</md-option>
56 ng-messages="freshdeskAccountItemForm.type.$error"
57 ng-show="freshdeskAccountItemForm.type.$touched"
60 <div ng-message="required">
61 <span translate="APP.ERRORS.TYPE_REQUIRED"
62 >Type field is required</span
67 <md-input-container class="md-block" ng-if="vm.item.type == 'string'">
68 <label translate="APP.CONTENT">Content</label>
72 ng-model="vm.item.content"
77 ng-messages="freshdeskAccountItemForm.content.$error"
78 ng-show="freshdeskAccountItemForm.content.$touched"
81 <div ng-message="required">
82 <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED"
83 >Content field is required</span
88 <div ng-if="vm.item.type == 'keyValue'">
89 <md-input-container class="md-block">
90 <label translate="APP.KEY">Key</label>
94 ng-model="vm.item.key"
99 ng-messages="freshdeskAccountItemForm.key.$error"
100 ng-show="freshdeskAccountItemForm.key.$touched"
103 <div ng-message="required">
104 <span translate="APP.ERRORS.KEY_REQUIRED"
105 >Key field is required</span
109 </md-input-container>
111 <md-input-container class="md-block">
112 <label translate="APP.TYPE">Type</label>
113 <md-select name="keyType" ng-model="vm.item.keyType" required>
114 <md-option value="string">String</md-option>
115 <md-option value="variable">Variable</md-option>
116 <md-option value="customVariable">Custom Variable</md-option>
119 ng-messages="freshdeskAccountItemForm.keyType.$error"
120 ng-show="freshdeskAccountItemForm.keyType.$touched"
123 <div ng-message="required">
124 <span translate="APP.ERRORS.TYPE_REQUIRED"
125 >Type field is required</span
129 </md-input-container>
133 ng-if="vm.item.keyType == 'string'"
135 <label translate="APP.CONTENT">Content</label>
139 ng-model="vm.item.keyContent"
144 ng-messages="freshdeskAccountItemForm.keyContent.$error"
145 ng-show="freshdeskAccountItemForm.keyContent.$touched"
148 <div ng-message="required">
149 <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED"
150 >Content field is required</span
154 </md-input-container>
158 ng-if="vm.item.keyType == 'variable'"
160 <label translate="APP.VALUE">Value</label>
163 ng-model="vm.item.variableName"
164 md-selected-text="vm.getSelectedVariable()"
167 <md-optgroup label="Voice: Queue">
169 ng-value="agentColumn"
170 ng-repeat="agentColumn in vm.voiceAgentReportColumns"
175 <md-optgroup label="Voice: Outbound">
177 ng-value="dialColumn"
178 ng-repeat="dialColumn in vm.voiceDialReportColumns"
184 ng-messages="freshdeskAccountItemForm.variableName.$error"
185 ng-show="freshdeskAccountItemForm.variableName.$touched"
188 <div ng-message="required">
189 <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED"
190 >Variable name field is required</span
194 </md-input-container>
198 ng-if="vm.item.keyType == 'customVariable'"
200 <label translate="APP.VALUE">Value</label>
201 <md-select ng-model="vm.item.VariableId" required>
203 ng-value="variable.id"
204 ng-repeat="variable in vm.variables"
208 </md-input-container>
210 <!-- / DESCRIPTION SECTION -->
212 <div ng-switch-when="field">
213 <!-- FIELD SECTION -->
214 <div ng-if="vm.accountConnected">
215 <md-input-container class="md-block">
216 <label translate="APP.FIELD">FIELD</label>
217 <!-- ITEM TYPE DEFAULT VALUE is STRING -->
220 ng-model="vm.customField"
222 ng-change="vm.item.type = 'string'"
224 <md-optgroup label="Standard">
227 ng-repeat="standard in vm.fields | filter: {custom: false} "
233 <md-optgroup label="Custom">
236 ng-repeat="custom in vm.fields | filter: {custom: true} "
242 ng-messages="freshdeskAccountItemForm.customField.$error"
243 ng-show="freshdeskAccountItemForm.customField.$touched"
246 <div ng-message="required">
247 <span translate="APP.ERRORS.FIELD_REQUIRED"
248 >Field is required</span
252 </md-input-container>
255 <div ng-if="vm.customField" ng-include="'/fields.html'"></div>
258 <div ng-if="!vm.accountConnected">
259 <p>Account is not connected. Please check your configurations!</p>
261 <!-- / FIELD SECTION -->
263 <div ng-switch-default>
267 <div class="error-list">
269 ng-repeat="error in vm.errors"
272 layout-align="space-between center"
275 <span class="message">{{error.message}}</span>
276 <span class="type">({{error.type}})</span>
278 <md-button class="md-icon-button">
280 md-font-icon="icon-alert-box"
281 aria-label="alert error"
291 layout-align="space-between center"
292 ng-if="!vm.crudPermissions.readOnly"
294 <div layout="row" layout-align="start center">
297 ng-if="vm.crudPermissions.canEdit && !vm.newItem"
298 ng-click="vm.saveItem()"
299 class="send-button md-accent md-raised"
300 ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine"
303 translate-attr-aria-label="APP.SAVE"
310 ng-if="vm.crudPermissions.canEdit && vm.newItem"
311 ng-click="vm.addNewItem()"
312 class="send-button md-accent md-raised"
313 ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine"
316 translate-attr-aria-label="APP.ADD"
323 class="md-icon-button"
324 ng-if="vm.crudPermissions.canDelete && !vm.newItem"
325 ng-click="vm.deleteItem($event)"
328 translate-attr-aria-label="APP.DELETE"
330 <md-icon md-font-icon="icon-delete"></md-icon>
331 <md-tooltip><span translate="APP.DELETE">DELETE</span></md-tooltip>
338 <script type="text/ng-template" id="/fields.html">
341 <md-input-container class="md-block" ng-if="!vm.customField.options.length">
343 <label translate="APP.TYPE">Type</label>
344 <md-select name="type" ng-model="vm.item.type" required>
346 <md-option value="string">String</md-option>
347 <md-option value="variable">Variable</md-option>
348 <md-option value="customVariable">Custom Variable</md-option>
350 <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">
351 <div ng-message="required">
352 <span translate="APP.ERRORS.TYPE_REQUIRED">Type field is required</span>
355 </md-input-container>
361 <md-input-container class="md-block" ng-if="vm.item.type == 'string' && vm.customField.options.length">
363 <label translate="APP.CONTENT">Content</label>
365 <md-select name="option" ng-model="vm.item.content" required>
366 <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>
369 <div ng-messages="freshdeskAccountItemForm.option.$error" ng-show="freshdeskAccountItemForm.option.$touched"
371 <div ng-message="required">
372 <span translate="APP.ERRORS.VALUE_REQUIRED">Value field is required</span>
375 </md-input-container>
377 <md-input-container class="md-block" ng-if="vm.item.type == 'string' && !vm.customField.options.length">
378 <label translate="APP.CONTENT">Content</label>
380 <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>
382 <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched"
384 <div ng-message="required">
385 <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is
389 </md-input-container>
391 <md-input-container class="md-block" ng-if="vm.item.type == 'variable'">
392 <label translate="APP.VALUE">Value</label>
393 <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>
394 <md-optgroup label="Voice: Queue">
395 <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}
398 <md-optgroup label="Voice: Outbound">
399 <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}
403 <div ng-messages="freshdeskAccountItemForm.variableName.$error"
404 ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">
405 <div ng-message="required">
406 <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is
410 </md-input-container>
412 <md-input-container class="md-block" ng-if="vm.item.type == 'customVariable'">
413 <label translate="APP.VALUE">Value</label>
414 <md-select ng-model="vm.item.VariableId" required>
415 <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>
417 </md-input-container>
422 <script type="text/ng-template" id="/subject.html">
423 <md-input-container class="md-block">
424 <label translate="APP.TYPE">Type</label>
425 <md-select name="type" ng-model="vm.item.type" required>
426 <md-option value="string">String</md-option>
427 <md-option value="variable">Variable</md-option>
428 <md-option value="customVariable">Custom Variable</md-option>
430 <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">
431 <div ng-message="required">
432 <span translate="APP.ERRORS.TYPE_REQUIRED">Type field is required</span>
435 </md-input-container>
437 <md-input-container class="md-block" ng-if="vm.item.type == 'string'">
438 <label translate="APP.CONTENT">Content</label>
439 <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>
440 <div ng-messages="freshdeskAccountItemForm.content.$error"
441 ng-show="freshdeskAccountItemForm.content.$touched" role="alert">
442 <div ng-message="required">
443 <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>
446 </md-input-container>
448 <md-input-container class="md-block" ng-if="vm.item.type == 'variable'">
449 <label translate="APP.VALUE">Value</label>
450 <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"
452 <md-optgroup label="Voice: Queue">
453 <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}
456 <md-optgroup label="Voice: Outbound">
457 <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}
461 <div ng-messages="freshdeskAccountItemForm.variableName.$error"
462 ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">
463 <div ng-message="required">
464 <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is
468 </md-input-container>
470 <md-input-container class="md-block" ng-if="vm.item.type == 'customVariable'">
471 <label translate="APP.VALUE">Value</label>
472 <md-select ng-model="vm.item.VariableId" required>
473 <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>
475 </md-input-container>