Built motion from commit b598105.|2.0.10
[motion2.git] / public / app / main / apps / tools / views / schedules / edit / view.html
1 <div id="tools-schedule" 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-schedules-button md-icon-button" aria-label="Go to schedules" ng-click="vm.gotoScheduler()" translate translate-attr-aria-label="TOOLS.GO_TO_SCHEDULER">
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.schedule.userpic" class="schedule-image" hide-xs>
13                     <img ng-src="api/users/{{vm.schedule.id}}/avatar">
14                 </div>
15
16                 <div ng-if="!vm.schedule.userpic" class="schedule-image" hide-xs>
17                     <img ng-src="assets/images/business/schedules.jpg">
18                 </div>
19
20                 <div layout="column" layout-align="start start">
21                     <div class="h2">
22                         #{{vm.schedule.id}} {{vm.schedule.name}}
23                     </div>
24                     <div class="subtitle secondary-text">
25                         <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.schedule.createdAt | date:'medium'}}</span>
26                     </div>
27                 </div>
28             </div>
29         </div>
30
31         <div>
32             <md-button type="submit" ng-click="vm.saveSchedule()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.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="TOOLS.SETTINGS">SETTINGS</span>
47                 </md-tab-label>
48
49                 <md-tab-body>
50                     <div class="schedule-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="TOOLS.GENERAL">GENERAL</div>
53                         </div>
54                         <form name="generalForm" novalidate>
55                             <md-input-container class="md-block">
56                                 <label translate="TOOLS.NAME">Name</label>
57                                 <input type="text" name="name" ng-model="vm.schedule.name" required md-autofocus>
58                                 <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">
59                                     <div ng-message="required">
60                                         <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>
61                                     </div>
62                                 </div>
63                             </md-input-container>
64                             <md-input-container class="md-block">
65                                 <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>
66                             </md-input-container>
67                             <md-input-container class="md-block">
68                                 <label translate="TOOLS.DESCRIPTION">Description</label>
69                                 <input type="" name="description" ng-model="vm.schedule.description">
70                                 <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">
71                                     <div ng-message="required">
72                                         <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>
73                                     </div>
74                                 </div>
75                             </md-input-container>
76
77                         </form>
78                     </div>
79                 </md-tab-body>
80             </md-tab>
81             <md-tab>
82                 <md-tab-label>
83                     <span translate="TOOLS.CONFIGURATION">CONFIGURATION</span>
84                 </md-tab-label>
85
86                 <md-tab-body>
87                     <div class="schedule-detail-form-container configuration md-background-bg md-whiteframe-1dp">
88                         <div class="pb-16" layout="row" layout-align="start center">
89                             <div class="h2 secondary-text" translate="TOOLS.CONFIGURATION">CONFIGURATION</div>
90                         </div>
91                         <form name="configurationForm" novalidate>
92                             <md-input-container class="md-block">
93                                 <label translate="TOOLS.REPORTTYPE">ReportType</label>
94                                 <md-select ng-model="vm.schedule.reportType" required md-autofocus>
95                                     <md-option ng-value="'default'">Default</md-option>
96                                     <md-option ng-value="'custom'">Custom</md-option>
97                                 </md-select>
98                                 <div ng-messages="configurationForm.reportType.$error" ng-show="configurationForm.reportType.$touched" role="alert">
99                                     <div ng-message="required">
100                                         <span translate="TOOLS.ERRORS.REPORTTYPE_REQUIRED">ReportType field is required</span>
101                                     </div>
102                                 </div>
103                             </md-input-container>
104                             <md-input-container ng-if="vm.schedule.reportType == 'default'" class="md-block">
105                                 <label translate="TOOLS.REPORT">Report</label>
106                                 <md-select ng-model="vm.schedule.reportId" required>
107                                     <md-option ng-value="reportId.id" ng-repeat="reportId in vm.defaultReports">{{ reportId.name }}</md-option>
108                                 </md-select>
109                                 <div ng-messages="configurationForm.reportId.$error" ng-show="configurationForm.reportId.$touched" role="alert">
110                                     <div ng-message="required">
111                                         <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>
112                                     </div>
113                                 </div>
114                             </md-input-container>
115                             <md-input-container ng-if="vm.schedule.reportType == 'custom'" class="md-block">
116                                 <label translate="TOOLS.REPORT">Report</label>
117                                 <md-select ng-model="vm.schedule.reportId" required>
118                                     <md-option ng-value="reportId.id" ng-repeat="reportId in vm.customReports">{{ reportId.name }}</md-option>
119                                 </md-select>
120                                 <div ng-messages="configurationForm.reportId.$error" ng-show="configurationForm.reportId.$touched" role="alert">
121                                     <div ng-message="required">
122                                         <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>
123                                     </div>
124                                 </div>
125                             </md-input-container>
126                             <md-input-container class="md-block">
127                                 <label translate="TOOLS.OUTPUT">Output</label>
128                                 <md-select ng-model="vm.schedule.reportOutput" required>
129                                     <md-option ng-value="'CSV'">CSV</md-option>
130                                     <md-option ng-value="'PDF'">PDF</md-option>
131                                 </md-select>
132                                 <div ng-messages="configurationForm.reportOutput.$error" ng-show="configurationForm.reportOutput.$touched" role="alert">
133                                     <div ng-message="required">
134                                         <span translate="TOOLS.ERRORS.OUTPUT_REQUIRED">Output field is required</span>
135                                     </div>
136                                 </div>
137                             </md-input-container>
138                             <md-input-container class="md-block">
139                                 <label translate="TOOLS.EXECUTEON">ExecuteOn</label>
140                                 <md-select ng-model="vm.schedule.cronType" required>
141
142                                     <md-option ng-value="'currentDay'"> {{ 'TOOLS.CURRENTDAY' | translate }}</md-option>
143
144                                     <md-option ng-value="'daily'"> {{ 'TOOLS.DAILY' | translate }}</md-option>
145
146                                     <md-option ng-value="'weekly'"> {{ 'TOOLS.WEEKLY' | translate }}</md-option>
147
148                                     <md-option ng-value="'monthly'"> {{ 'TOOLS.MONTHLY' | translate }}</md-option>
149                                 </md-select>
150                                 <div ng-messages="configurationForm.cronType.$error" ng-show="configurationForm.cronType.$touched" role="alert">
151                                     <div ng-message="required">
152                                         <span translate="TOOLS.ERRORS.EXECUTEON_REQUIRED">ExecuteOn field is required</span>
153                                     </div>
154                                 </div>
155                             </md-input-container>
156                             <md-input-container ng-if="vm.schedule.cronType == 'currentDay'" class="md-block">
157                                 <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>
158                                 <input type="number" name="validityStart" ng-model="vm.schedule.validityStart" min="0" max="24" required>
159                                 <div ng-messages="configurationForm.validityStart.$error" ng-show="configurationForm.validityStart.$touched" role="alert">
160                                     <div ng-message="required">
161                                         <span translate="TOOLS.ERRORS.VALIDITYSTART_REQUIRED">ValidityStart field is required</span>
162                                     </div>
163                                 </div>
164                             </md-input-container>
165                             <md-input-container ng-if="vm.schedule.cronType == 'currentDay'" class="md-block">
166                                 <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>
167                                 <input type="number" name="validityEnd" ng-model="vm.schedule.validityEnd" min="0" max="24" required>
168                                 <div ng-messages="configurationForm.validityEnd.$error" ng-show="configurationForm.validityEnd.$touched" role="alert">
169                                     <div ng-message="required">
170                                         <span translate="TOOLS.ERRORS.VALIDITYEND_REQUIRED">ValidityEnd field is required</span>
171                                     </div>
172                                 </div>
173                             </md-input-container>
174                             <md-input-container ng-if="vm.schedule.cronType == 'currentDay'" class="md-block">
175                                 <label translate="TOOLS.EXECUTEEVERY">ExecuteEvery</label>
176                                 <md-select ng-model="vm.schedule.cron" required>
177
178                                     <md-option ng-value="'*/15 * * * *'"> {{ 'TOOLS.15MIN' | translate }}</md-option>
179
180                                     <md-option ng-value="'*/30 * * * *'"> {{ 'TOOLS.30MIN' | translate }}</md-option>
181
182                                     <md-option ng-value="'0 * * * *'"> {{ 'TOOLS.1H' | translate }}</md-option>
183                                 </md-select>
184                                 <div ng-messages="configurationForm.cron.$error" ng-show="configurationForm.cron.$touched" role="alert">
185                                     <div ng-message="required">
186                                         <span translate="TOOLS.ERRORS.EXECUTEEVERY_REQUIRED">ExecuteEvery field is required</span>
187                                     </div>
188                                 </div>
189                             </md-input-container>
190                             <md-input-container ng-if="vm.schedule.cronType == 'weekly'" class="md-block">
191                                 <label translate="TOOLS.WEEKDAYS">WeekDays</label>
192                                 <md-select ng-model="vm.schedule.weekDays" required multiple>
193
194                                     <md-option ng-value="'monday'"> {{ 'TOOLS.MON' | translate }}</md-option>
195
196                                     <md-option ng-value="'tuesday'"> {{ 'TOOLS.TUE' | translate }}</md-option>
197
198                                     <md-option ng-value="'wednesday'"> {{ 'TOOLS.WED' | translate }}</md-option>
199
200                                     <md-option ng-value="'thursday'"> {{ 'TOOLS.THU' | translate }}</md-option>
201
202                                     <md-option ng-value="'friday'"> {{ 'TOOLS.FRI' | translate }}</md-option>
203
204                                     <md-option ng-value="'saturday'"> {{ 'TOOLS.SAT' | translate }}</md-option>
205
206                                     <md-option ng-value="'sunday'"> {{ 'TOOLS.SUN' | translate }}</md-option>
207                                 </md-select>
208                                 <div ng-messages="configurationForm.weekDays.$error" ng-show="configurationForm.weekDays.$touched" role="alert">
209                                     <div ng-message="required">
210                                         <span translate="TOOLS.ERRORS.WEEKDAYS_REQUIRED">WeekDays field is required</span>
211                                     </div>
212                                 </div>
213                             </md-input-container>
214                             <md-input-container ng-if="vm.schedule.cronType == 'monthly'" class="md-block">
215                                 <label translate="TOOLS.MONTHDAY">MonthDay</label>
216                                 <input type="number" name="monthDay" ng-model="vm.schedule.monthDay" min="1" max="31" required>
217                                 <div ng-messages="configurationForm.monthDay.$error" ng-show="configurationForm.monthDay.$touched" role="alert">
218                                     <div ng-message="required">
219                                         <span translate="TOOLS.ERRORS.MONTHDAY_REQUIRED">MonthDay field is required</span>
220                                     </div>
221                                 </div>
222                             </md-input-container>
223                             <md-input-container ng-if="vm.schedule.cronType != 'currentDay'" class="md-block">
224                                 <label translate="TOOLS.HOUR">Hour</label>
225                                 <input type="number" name="hour" ng-model="vm.schedule.hour" min="0" max="23" required>
226                                 <div ng-messages="configurationForm.hour.$error" ng-show="configurationForm.hour.$touched" role="alert">
227                                     <div ng-message="required">
228                                         <span translate="TOOLS.ERRORS.HOUR_REQUIRED">Hour field is required</span>
229                                     </div>
230                                 </div>
231                             </md-input-container>
232                             <md-input-container ng-if="vm.schedule.cronType != 'currentDay'" class="md-block">
233                                 <label translate="TOOLS.REPORTRANGE">ReportRange</label>
234                                 <md-select ng-model="vm.schedule.reportRange" required>
235
236                                     <md-option ng-value="'yesterday'"> {{ 'TOOLS.PREVIOUS_DAY' | translate }}</md-option>
237
238                                     <md-option ng-value="'last7'"> {{ 'TOOLS.LAST_SEVEN_DAYS' | translate }}</md-option>
239
240                                     <md-option ng-value="'last30'"> {{ 'TOOLS.LAST_THIRTY_DAYS' | translate }}</md-option>
241
242                                     <md-option ng-value="'lastMonth'"> {{ 'TOOLS.LAST_MONTH' | translate }}</md-option>
243                                 </md-select>
244                                 <div ng-messages="configurationForm.reportRange.$error" ng-show="configurationForm.reportRange.$touched" role="alert">
245                                     <div ng-message="required">
246                                         <span translate="TOOLS.ERRORS.REPORTRANGE_REQUIRED">ReportRange field is required</span>
247                                     </div>
248                                 </div>
249                             </md-input-container>
250                             <md-input-container class="md-block">
251                                 <md-switch ng-model="vm.schedule.sendMail" aria-label="SendMail"><span translate="TOOLS.SENDMAIL">SendMail</span></md-switch>
252                             </md-input-container>
253                             <md-input-container ng-if="vm.schedule.sendMail" class="md-block">
254                                 <label translate="TOOLS.ACCOUNT">Account</label>
255                                 <md-select ng-model="vm.schedule.MailServerOutId" required>
256                                     <md-option ng-value="MailServerOutId.id" ng-repeat="MailServerOutId in vm.mailServerOut">{{ MailServerOutId.name }}</md-option>
257                                 </md-select>
258                                 <div ng-messages="configurationForm.MailServerOutId.$error" ng-show="configurationForm.MailServerOutId.$touched" role="alert">
259                                     <div ng-message="required">
260                                         <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>
261                                     </div>
262                                 </div>
263                             </md-input-container>
264                             <md-input-container ng-if="vm.schedule.sendMail" class="md-block">
265                                 <label translate="TOOLS.EMAILADDRESS">EmailAddress</label>
266                                 <input type="email" name="email" ng-model="vm.schedule.email" required>
267                                 <div ng-messages="configurationForm.email.$error" ng-show="configurationForm.email.$touched" role="alert">
268                                     <div ng-message="required">
269                                         <span translate="TOOLS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>
270                                     </div>
271                                     <div ng-message="email">
272                                         <span translate="TOOLS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>
273                                     </div>
274                                 </div>
275                             </md-input-container>
276
277                         </form>
278                     </div>
279                 </md-tab-body>
280             </md-tab>
281         </md-tabs>
282
283     </div>
284     <!-- / CONTENT -->
285
286 </div>