Built motion from commit 7e022ab.|2.0.13
[motion2.git] / public / app / main / apps / voice / views / internalroutes / edit / view.html
1 <div id="voice-internalroute" 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-internalroutes-button md-icon-button" aria-label="Go to internalroutes" ng-click="vm.gotoInternalRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INTERNALROUTES">
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.internalroute.userpic" class="internalroute-image" hide-xs>
13                     <img ng-src="api/users/{{vm.internalroute.id}}/avatar">
14                 </div>
15
16                 <div ng-if="!vm.internalroute.userpic" class="internalroute-image" hide-xs>
17                     <img ng-src="assets/images/business/internalroutes.jpg">
18                 </div>
19
20                 <div layout="column" layout-align="start start">
21                     <div class="h2">
22                         #{{vm.internalroute.id}} {{vm.internalroute.name}}
23                     </div>
24                     <div class="subtitle secondary-text">
25                         <span translate="VOICE.CREATED_AT"></span> <span>{{vm.internalroute.createdAt | date:'medium'}}</span>
26                     </div>
27                 </div>
28             </div>
29         </div>
30
31         <div>
32             <md-button type="submit" ng-click="vm.saveInternalRoute()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">
33                 SAVE
34             </md-button>
35         </div>
36
37     </div>
38     <!-- / HEADER -->
39
40     <!-- CONTENT -->
41     <div class="content">
42
43         <md-tabs md-selected="vm.selectedTab" md-dynamic-height>
44             <md-tab>
45                 <md-tab-label>
46                     <span translate="VOICE.SETTINGS">SETTINGS</span>
47                 </md-tab-label>
48
49                 <md-tab-body>
50                     <div class="internalroute-detail-form-container general md-background-bg md-whiteframe-1dp">
51                         <div class="pb-16" layout="row" layout-align="start center">
52                             <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>
53                         </div>
54                         <form name="generalForm" novalidate>
55                             <md-input-container class="md-block">
56                                 <label translate="VOICE.PHONENUMBER">PhoneNumber</label>
57                                 <input type="text" name="exten" ng-model="vm.internalroute.exten" required autofocus>
58                                 <div ng-messages="generalForm.exten.$error" ng-show="generalForm.exten.$touched" role="alert">
59                                     <div ng-message="required">
60                                         <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>
61                                     </div>
62                                 </div>
63                             </md-input-container>
64                             <md-input-container class="md-block">
65                                 <label translate="VOICE.CONTEXT">Context</label>
66                                 <md-select ng-model="vm.internalroute.context" required>
67                                     <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>
68                                 </md-select>
69                                 <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">
70                                     <div ng-message="required">
71                                         <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>
72                                     </div>
73                                 </div>
74                             </md-input-container>
75                             <md-input-container class="md-block">
76                                 <label translate="VOICE.DESCRIPTION">Description</label>
77                                 <input type="text" name="description" ng-model="vm.internalroute.description">
78                                 <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">
79                                     <div ng-message="required">
80                                         <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>
81                                     </div>
82                                 </div>
83                             </md-input-container>
84
85                         </form>
86                     </div>
87                 </md-tab-body>
88             </md-tab>
89             <md-tab>
90                 <md-tab-label>
91                     <span translate="VOICE.ACTIONS">ACTIONS</span>
92                 </md-tab-label>
93
94                 <md-tab-body>
95                     <div class="internalroute-detail-form-container actions md-background-bg md-whiteframe-1dp">
96                         <div ng-controller="InternalRouteActionsController as vm_ac" ng-init="vm_ac.init(vm.internalroute)" class="content" md-background-bg layout="row" layout-align="start start">
97                             <!-- SIDENAV -->
98                             <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20">
99                                 <!-- SIDENAV CONTENT -->
100                                 <md-list class="no-padding">
101                                     <md-subheader class="md-no-sticky">
102                                         <span>
103           Applications List
104         </span>
105                                     </md-subheader>
106                                 </md-list>
107                                 <md-divider></md-divider>
108                                 <md-list ng-sortable="vm_ac.list">
109                                     <md-list-item class="handle" ng-repeat="a in vm_ac.apps">
110                                         <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>
111                                         <p class="text-truncate" translate="VOICE.{{(a.alias || a.appType) | uppercase}}">{{a.alias || a.appType}}</p>
112                                     </md-list-item>
113                                 </md-list>
114                                 <!-- / SIDENAV CONTENT -->
115                             </div>
116                             <!-- / SIDENAV -->
117                             <div flex></div>
118                             <!-- MAIN -->
119                             <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="75">
120                                 <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedInternalRouteApps.length">
121                                     <div class="md-toolbar-tools">
122                                         <span class="md-subhead">Drag & Drop Routing</span>
123                                         <div flex></div>
124                                         <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>
125                                     </div>
126                                 </md-toolbar>
127                                 <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedInternalRouteApps.length">
128                                     <div class="md-toolbar-tools">
129                                         <span class="md-subhead">{{vm_ac.selectedInternalRouteApps.length}} {{vm_ac.selectedInternalRouteApps.length > 1 ? 'items' : 'item'}} selected</span>
130                                         <div flex></div>
131                                         <md-button class="md-icon-button" ng-click="vm_ac.deleteSelectedInternalRouteApps($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">
132                                             <md-icon md-font-icon="icon-delete"></md-icon>
133                                         </md-button>
134                                     </div>
135                                 </md-toolbar>
136
137                                 <!-- QUEUES TABLE -->
138                                 <md-table-container>
139                                     <table md-table md-row-select multiple ng-model="vm_ac.selectedInternalRouteApps">
140                                         <thead md-head>
141                                             <tr md-row>
142                                                 <th md-column width="10px"></th>
143                                                 <th md-column>Type</th>
144                                                 <th md-column>Appdata</th>
145                                                 <th md-column>Interval</th>
146                                                 <th md-column width="10px"></th>
147                                                 <th md-column width="10px"></th>
148                                             </tr>
149                                         </thead>
150                                         <tbody md-body ng-sortable="vm_ac.applications">
151                                             <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.internalrouteApps.rows | filter: vm_ac.query.filter">
152                                                 <td md-cell>
153                                                     <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>
154                                                 </td>
155                                                 <td md-cell ng-click="vm_ac.editInternalRouteApp($event, $index)">{{app.app.toLowerCase() === 'agi' ? 'Cally-Square' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === 'custom'">*</span></td>
156                                                 <td md-cell ng-click="vm_ac.editInternalRouteApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>
157                                                 <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? 'From List' : app.interval}}</td>
158                                                 <td md-cell>
159                                                     <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">
160                                                         <md-icon md-font-icon="icon-timer"></md-icon>
161                                                         <md-tooltip>
162                                                             {{app.IntervalId ? 'From List' : (app.interval === '*,*,*,*' ? 'Always' : 'Custom')}}
163                                                         </md-tooltip>
164                                                     </md-button>
165                                                 </td>
166                                                 <td md-cell class="actions">
167                                                     <md-menu>
168                                                         <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE">
169                                                             <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>
170                                                         </md-button>
171
172                                                         <md-menu-content width="3">
173                                                             <md-menu-item>
174                                                                 <md-button ng-click="vm_ac.editInternalRouteApp($event, $index)" translate="VOICE.EDIT_APP">
175                                                                     Edit App
176                                                                 </md-button>
177                                                             </md-menu-item>
178                                                             <md-menu-item>
179                                                                 <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">
180                                                                     Edit Interval
181                                                                 </md-button>
182                                                             </md-menu-item>
183                                                             <md-menu-item>
184                                                                 <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">
185                                                                     Delete App
186                                                                 </md-button>
187                                                             </md-menu-item>
188                                                         </md-menu-content>
189                                                     </md-menu>
190                                                 </td>
191                                             </tr>
192                                             <tr md-row ng-hide="vm_ac.internalrouteApps.rows.length">
193                                                 <td md-cell colspan="6">
194                                                     <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>
195                                                 </td>
196                                             </tr>
197                                         </tbody>
198                                         <tfoot md-foot>
199                                             <tr md-row>
200                                                 <td md-cell colspan="7">
201                                                     <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>
202                                                 </td>
203                                             </tr>
204                                         </tfoot>
205                                     </table>
206                                 </md-table-container>
207                                 <!-- / QUEUES TABLE -->
208
209                                 <!-- NO RESULTS -->
210
211                                 <!-- / NO RESULTS -->
212                             </div>
213                             <!-- / MAIN -->
214                         </div>
215
216                     </div>
217                 </md-tab-body>
218             </md-tab>
219         </md-tabs>
220
221     </div>
222     <!-- / CONTENT -->
223
224 </div>