1 <div id="openchannel-openchannelAccount" class="page-layout simple tabbed" layout="column">
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>
10 <div layout="row" layout-align="start center">
12 <div ng-if="vm.openchannelAccount.userpic" class="openchannelAccount-image" hide-xs>
13 <img ng-src="api/users/{{vm.openchannelAccount.id}}/avatar">
16 <div ng-if="!vm.openchannelAccount.userpic" class="openchannelAccount-image" hide-xs>
17 <img ng-src="assets/images/business/openchannelAccounts.jpg">
20 <div layout="column" layout-align="start start">
22 #{{vm.openchannelAccount.id}} {{vm.openchannelAccount.name}}
24 <div class="subtitle secondary-text">
25 <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelAccount.createdAt | date:'medium'}}</span>
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">
44 <md-tabs md-selected="vm.selectedTab" md-dynamic-height>
47 <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>
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>
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>
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>
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>
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>
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>
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>
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>
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>
108 </md-input-container>
116 <span translate="OPENCHANNEL.API">API</span>
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>
124 <form name="apiForm" novalidate>
132 <span translate="OPENCHANNEL.DISPOSITIONS">DISPOSITIONS</span>
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>
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>
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>
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>
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">
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>
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">
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>
178 <md-menu-content width="3">
180 <md-button ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" translate="OPENCHANNEL.EDIT_OPENCHANNELDISPOSITION">
181 Edit OpenchannelDisposition
185 <md-button ng-click="vm_dc.deleteConfirm(openchannelDisposition, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELDISPOSITION">
186 Delete OpenchannelDisposition
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>
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>
209 <span translate="OPENCHANNEL.WEBHOOKS">WEBHOOKS</span>
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>
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>
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>
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>
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>
241 </md-input-container>
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>
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>
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>
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>
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>
273 </md-input-container>
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>
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>
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>
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>
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>
305 </md-input-container>
313 <span translate="OPENCHANNEL.ACTIONS">ACTIONS</span>
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>
321 <form name="actionsForm" novalidate>