Built motion from commit 7e022ab.|2.0.14
[motion2.git] / public / app / main / apps / openchannel / views / openchannelAccounts / edit / view.html
1 <div id="openchannel-openchannelAccount" class="page-layout simple tabbed" layout="column">
2
3     <!-- HEADER -->
4     <div class="header md-accent-bg" layout="row" layout-align="start center">
5         <div class="white-fg" layout="row" layout-align="start center" flex>
6             <md-button class="goto-openchannelAccounts-button md-icon-button" aria-label="Go to openchannelAccounts" ng-click="vm.gotoOpenchannelAccounts()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELACCOUNTS">
7                 <md-icon md-font-icon="icon-arrow-left"></md-icon>
8             </md-button>
9
10             <div layout="row" layout-align="start center">
11
12                 <div ng-if="vm.openchannelAccount.userpic" class="openchannelAccount-image" hide-xs>
13                     <img ng-src="api/users/{{vm.openchannelAccount.id}}/avatar">
14                 </div>
15
16                 <div ng-if="!vm.openchannelAccount.userpic" class="openchannelAccount-image" hide-xs>
17                     <img ng-src="assets/images/business/openchannelAccounts.jpg">
18                 </div>
19
20                 <div layout="column" layout-align="start start">
21                     <div class="h2">
22                         #{{vm.openchannelAccount.id}} {{vm.openchannelAccount.name}}
23                     </div>
24                     <div class="subtitle secondary-text">
25                         <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelAccount.createdAt | date:'medium'}}</span>
26                     </div>
27                 </div>
28             </div>
29         </div>
30
31         <div>
32             <md-button type="submit" ng-click="vm.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (apiForm.$invalid) || (openchannelDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"
33                 translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">
34                 SAVE
35             </md-button>
36         </div>
37
38     </div>
39     <!-- / HEADER -->
40
41     <!-- CONTENT -->
42     <div class="content">
43
44         <md-tabs md-selected="vm.selectedTab" md-dynamic-height>
45             <md-tab>
46                 <md-tab-label>
47                     <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>
48                 </md-tab-label>
49
50                 <md-tab-body>
51                     <div class="openchannelAccount-detail-form-container general md-background-bg md-whiteframe-1dp">
52                         <div class="pb-16" layout="row" layout-align="start center">
53                             <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>
54                         </div>
55                         <form name="generalForm" novalidate>
56                             <md-input-container class="md-block">
57                                 <label translate="OPENCHANNEL.NAME">Name</label>
58                                 <input type="text" name="name" ng-model="vm.openchannelAccount.name" required autofocus>
59                                 <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">
60                                     <div ng-message="required">
61                                         <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>
62                                     </div>
63                                 </div>
64                             </md-input-container>
65                             <md-input-container class="md-block">
66                                 <label translate="OPENCHANNEL.LIST">List</label>
67                                 <md-select ng-model="vm.openchannelAccount.ListId">
68                                     <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>
69                                 </md-select>
70                                 <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">
71                                     <div ng-message="required">
72                                         <span translate="OPENCHANNEL.ERRORS.LIST_REQUIRED">List field is required</span>
73                                     </div>
74                                 </div>
75                             </md-input-container>
76                             <md-input-container class="md-block">
77                                 <md-switch ng-model="vm.openchannelAccount.fidelity" aria-label="fidelity"><span translate="OPENCHANNEL.FIDELITY">fidelity</span></md-switch>
78                             </md-input-container>
79                             <md-input-container ng-if="vm.openchannelAccount.fidelity" class="md-block">
80                                 <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>
81                                 <input type="number" name="timeout" ng-model="vm.openchannelAccount.timeout" required>
82                                 <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">
83                                     <div ng-message="required">
84                                         <span translate="OPENCHANNEL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>
85                                     </div>
86                                 </div>
87                             </md-input-container>
88                             <md-input-container class="md-block">
89                                 <label translate="OPENCHANNEL.MOTIONADDRESS">motionaddress</label>
90                                 <input type="url" name="remote" ng-model="vm.openchannelAccount.remote" required>
91                                 <div ng-messages="generalForm.remote.$error" ng-show="generalForm.remote.$touched" role="alert">
92                                     <div ng-message="required">
93                                         <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>
94                                     </div>
95                                     <div ng-message="url">
96                                         <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>
97                                     </div>
98                                 </div>
99                             </md-input-container>
100                             <md-input-container class="md-block">
101                                 <label translate="OPENCHANNEL.DESCRIPTION">Description</label>
102                                 <input type="text" name="description" ng-model="vm.openchannelAccount.description">
103                                 <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">
104                                     <div ng-message="required">
105                                         <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>
106                                     </div>
107                                 </div>
108                             </md-input-container>
109
110                         </form>
111                     </div>
112                 </md-tab-body>
113             </md-tab>
114             <md-tab>
115                 <md-tab-label>
116                     <span translate="OPENCHANNEL.API">API</span>
117                 </md-tab-label>
118
119                 <md-tab-body>
120                     <div class="openchannelAccount-detail-form-container api md-background-bg md-whiteframe-1dp">
121                         <div class="pb-16" layout="row" layout-align="start center">
122                             <div class="h2 secondary-text" translate="OPENCHANNEL.API">API</div>
123                         </div>
124                         <form name="apiForm" novalidate>
125
126                         </form>
127                     </div>
128                 </md-tab-body>
129             </md-tab>
130             <md-tab>
131                 <md-tab-label>
132                     <span translate="OPENCHANNEL.DISPOSITIONS">DISPOSITIONS</span>
133                 </md-tab-label>
134
135                 <md-tab-body>
136                     <div class="openchannelAccount-detail-form-container openchanneldispositions md-background-bg md-whiteframe-1dp">
137                         <div ng-controller="OpenchannelAccountOpenchannelDispositionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount)">
138                             <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length">
139                                 <div class="md-toolbar-tools">
140                                     <span class="md-subhead" translate="OPENCHANNEL.OPENCHANNELDISPOSITIONS">OpenchannelDispositions</span>
141                                     <div flex></div>
142                                     <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>
143                                     <md-button class="md-icon-button" ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event)" aria-label="add openchannelDisposition" translate translate-attr-label="OPENCHANNEL.ADD_OPENCHANNELDISPOSITION">
144                                         <md-icon md-font-icon="icon-plus"></md-icon>
145                                     </md-button>
146                                 </div>
147                             </md-toolbar>
148                             <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length">
149                                 <div class="md-toolbar-tools">
150                                     <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length}} {{vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length > 1 ? 'items' : 'item'}} selected</span>
151                                     <div flex></div>
152                                     <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelDispositions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNELACCOUNTS.DELETE_SELECTED">
153                                         <md-icon md-font-icon="icon-delete"></md-icon>
154                                     </md-button>
155                                 </div>
156                             </md-toolbar>
157                             <md-table-container>
158                                 <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountOpenchannelDispositions" md-progress="vm_dc.promise">
159                                     <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountOpenchannelDispositions">
160                                         <tr md-row>
161                                             <th md-column md-order-by="id">{{ 'OPENCHANNEL.ID' | translate }}</th>
162                                             <th md-column md-order-by="name">{{ 'OPENCHANNEL.NAME' | translate }}</th>
163                                             <th md-column md-order-by="createdAt">{{ 'OPENCHANNEL.CREATED_AT' | translate }}</th>
164                                             <th md-column width="10px"></th>
165                                         </tr>
166                                     </thead>
167                                     <tbody md-body>
168                                         <tr md-row md-select="openchannelDisposition" md-select-id="id" ng-repeat="openchannelDisposition in vm_dc.openchannelAccountOpenchannelDispositions.rows">
169                                             <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" md-cell>{{openchannelDisposition.id}}</td>
170                                             <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" md-cell>{{openchannelDisposition.name}}</td>
171                                             <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" md-cell>{{openchannelDisposition.createdAt | date:'medium'}}</td>
172                                             <td md-cell class="actions">
173                                                 <md-menu>
174                                                     <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE">
175                                                         <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>
176                                                     </md-button>
177
178                                                     <md-menu-content width="3">
179                                                         <md-menu-item>
180                                                             <md-button ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" translate="OPENCHANNEL.EDIT_OPENCHANNELDISPOSITION">
181                                                                 Edit OpenchannelDisposition
182                                                             </md-button>
183                                                         </md-menu-item>
184                                                         <md-menu-item>
185                                                             <md-button ng-click="vm_dc.deleteConfirm(openchannelDisposition, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELDISPOSITION">
186                                                                 Delete OpenchannelDisposition
187                                                             </md-button>
188                                                         </md-menu-item>
189                                                     </md-menu-content>
190                                                 </md-menu>
191                                             </td>
192                                         </tr>
193                                         <tr md-row ng-if="!vm_dc.openchannelAccountOpenchannelDispositions.rows.length">
194                                             <td md-cell colspan="5">
195                                                 <span class="text-boxed-ligth" translate="OPENCHANNEL.NO_OPENCHANNELDISPOSITION_AVAILABLE">No openchanneldisposition available</span>
196                                             </td>
197                                         </tr>
198                                     </tbody>
199                                 </table>
200                             </md-table-container>
201                             <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountOpenchannelDispositions.count}}" md-on-paginate="vm_dc.getOpenchannelAccountOpenchannelDispositions" md-page-select></md-table-pagination>
202                         </div>
203
204                     </div>
205                 </md-tab-body>
206             </md-tab>
207             <md-tab>
208                 <md-tab-label>
209                     <span translate="OPENCHANNEL.WEBHOOKS">WEBHOOKS</span>
210                 </md-tab-label>
211
212                 <md-tab-body>
213                     <div class="openchannelAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">
214                         <div class="pb-16" layout="row" layout-align="start center">
215                             <div class="h2 secondary-text" translate="OPENCHANNEL.ACCEPT">ACCEPT</div>
216                         </div>
217                         <form name="acceptForm" novalidate>
218                             <md-input-container class="md-block">
219                                 <label translate="OPENCHANNEL.ACCEPTMETHOD">acceptMethod</label>
220                                 <md-select ng-model="vm.openchannelAccount.acceptMethod" autofocus>
221                                     <md-option ng-value="'GET'">HTTP GET</md-option>
222                                     <md-option ng-value="'POST'">HTTP POST</md-option>
223                                 </md-select>
224                                 <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">
225                                     <div ng-message="required">
226                                         <span translate="OPENCHANNEL.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>
227                                     </div>
228                                 </div>
229                             </md-input-container>
230                             <md-input-container class="md-block">
231                                 <label translate="OPENCHANNEL.ACCEPTURL">acceptUrl</label>
232                                 <input type="url" name="acceptUrl" ng-model="vm.openchannelAccount.acceptUrl">
233                                 <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">
234                                     <div ng-message="required">
235                                         <span translate="OPENCHANNEL.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>
236                                     </div>
237                                     <div ng-message="url">
238                                         <span translate="OPENCHANNEL.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>
239                                     </div>
240                                 </div>
241                             </md-input-container>
242
243                         </form>
244                     </div>
245                     <div class="openchannelAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">
246                         <div class="pb-16" layout="row" layout-align="start center">
247                             <div class="h2 secondary-text" translate="OPENCHANNEL.REJECT">REJECT</div>
248                         </div>
249                         <form name="rejectForm" novalidate>
250                             <md-input-container class="md-block">
251                                 <label translate="OPENCHANNEL.REJECTMETHOD">rejectMethod</label>
252                                 <md-select ng-model="vm.openchannelAccount.rejectMethod" autofocus>
253                                     <md-option ng-value="'GET'">HTTP GET</md-option>
254                                     <md-option ng-value="'POST'">HTTP POST</md-option>
255                                 </md-select>
256                                 <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">
257                                     <div ng-message="required">
258                                         <span translate="OPENCHANNEL.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>
259                                     </div>
260                                 </div>
261                             </md-input-container>
262                             <md-input-container class="md-block">
263                                 <label translate="OPENCHANNEL.REJECTURL">rejectUrl</label>
264                                 <input type="url" name="rejectUrl" ng-model="vm.openchannelAccount.rejectUrl">
265                                 <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">
266                                     <div ng-message="required">
267                                         <span translate="OPENCHANNEL.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>
268                                     </div>
269                                     <div ng-message="url">
270                                         <span translate="OPENCHANNEL.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>
271                                     </div>
272                                 </div>
273                             </md-input-container>
274
275                         </form>
276                     </div>
277                     <div class="openchannelAccount-detail-form-container close md-background-bg md-whiteframe-1dp">
278                         <div class="pb-16" layout="row" layout-align="start center">
279                             <div class="h2 secondary-text" translate="OPENCHANNEL.CLOSE">CLOSE</div>
280                         </div>
281                         <form name="closeForm" novalidate>
282                             <md-input-container class="md-block">
283                                 <label translate="OPENCHANNEL.CLOSEMETHOD">closeMethod</label>
284                                 <md-select ng-model="vm.openchannelAccount.closeMethod" autofocus>
285                                     <md-option ng-value="'GET'">HTTP GET</md-option>
286                                     <md-option ng-value="'POST'">HTTP POST</md-option>
287                                 </md-select>
288                                 <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">
289                                     <div ng-message="required">
290                                         <span translate="OPENCHANNEL.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>
291                                     </div>
292                                 </div>
293                             </md-input-container>
294                             <md-input-container class="md-block">
295                                 <label translate="OPENCHANNEL.CLOSEURL">closeUrl</label>
296                                 <input type="url" name="closeUrl" ng-model="vm.openchannelAccount.closeUrl">
297                                 <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">
298                                     <div ng-message="required">
299                                         <span translate="OPENCHANNEL.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>
300                                     </div>
301                                     <div ng-message="url">
302                                         <span translate="OPENCHANNEL.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>
303                                     </div>
304                                 </div>
305                             </md-input-container>
306
307                         </form>
308                     </div>
309                 </md-tab-body>
310             </md-tab>
311             <md-tab>
312                 <md-tab-label>
313                     <span translate="OPENCHANNEL.ACTIONS">ACTIONS</span>
314                 </md-tab-label>
315
316                 <md-tab-body>
317                     <div class="openchannelAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">
318                         <div class="pb-16" layout="row" layout-align="start center">
319                             <div class="h2 secondary-text" translate="OPENCHANNEL.ACTIONS">ACTIONS</div>
320                         </div>
321                         <form name="actionsForm" novalidate>
322
323                         </form>
324                     </div>
325                 </md-tab-body>
326             </md-tab>
327         </md-tabs>
328
329     </div>
330     <!-- / CONTENT -->
331
332 </div>