1 <div id="tools-schedule" 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-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>
10 <div layout="row" layout-align="start center">
12 <div ng-if="vm.schedule.userpic" class="schedule-image" hide-xs>
13 <img ng-src="api/users/{{vm.schedule.id}}/avatar">
16 <div ng-if="!vm.schedule.userpic" class="schedule-image" hide-xs>
17 <img ng-src="assets/images/business/schedules.jpg">
20 <div layout="column" layout-align="start start">
22 #{{vm.schedule.id}} {{vm.schedule.name}}
24 <div class="subtitle secondary-text">
25 <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.schedule.createdAt | date:'medium'}}</span>
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">
43 <md-tabs md-selected="vm.selectedTab" md-dynamic-height>
46 <span translate="TOOLS.SETTINGS">SETTINGS</span>
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>
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>
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>
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>
83 <span translate="TOOLS.CONFIGURATION">CONFIGURATION</span>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
142 <md-option ng-value="'currentDay'"> {{ 'TOOLS.CURRENTDAY' | translate }}</md-option>
144 <md-option ng-value="'daily'"> {{ 'TOOLS.DAILY' | translate }}</md-option>
146 <md-option ng-value="'weekly'"> {{ 'TOOLS.WEEKLY' | translate }}</md-option>
148 <md-option ng-value="'monthly'"> {{ 'TOOLS.MONTHLY' | translate }}</md-option>
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>
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>
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>
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>
178 <md-option ng-value="'*/15 * * * *'"> {{ 'TOOLS.15MIN' | translate }}</md-option>
180 <md-option ng-value="'*/30 * * * *'"> {{ 'TOOLS.30MIN' | translate }}</md-option>
182 <md-option ng-value="'0 * * * *'"> {{ 'TOOLS.1H' | translate }}</md-option>
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>
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>
194 <md-option ng-value="'monday'"> {{ 'TOOLS.MON' | translate }}</md-option>
196 <md-option ng-value="'tuesday'"> {{ 'TOOLS.TUE' | translate }}</md-option>
198 <md-option ng-value="'wednesday'"> {{ 'TOOLS.WED' | translate }}</md-option>
200 <md-option ng-value="'thursday'"> {{ 'TOOLS.THU' | translate }}</md-option>
202 <md-option ng-value="'friday'"> {{ 'TOOLS.FRI' | translate }}</md-option>
204 <md-option ng-value="'saturday'"> {{ 'TOOLS.SAT' | translate }}</md-option>
206 <md-option ng-value="'sunday'"> {{ 'TOOLS.SUN' | translate }}</md-option>
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>
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>
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>
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>
236 <md-option ng-value="'yesterday'"> {{ 'TOOLS.PREVIOUS_DAY' | translate }}</md-option>
238 <md-option ng-value="'last7'"> {{ 'TOOLS.LAST_SEVEN_DAYS' | translate }}</md-option>
240 <md-option ng-value="'last30'"> {{ 'TOOLS.LAST_THIRTY_DAYS' | translate }}</md-option>
242 <md-option ng-value="'lastMonth'"> {{ 'TOOLS.LAST_MONTH' | translate }}</md-option>
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>
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>
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>
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>
271 <div ng-message="email">
272 <span translate="TOOLS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>
275 </md-input-container>