|
2 | 2 | <div class="row">
|
3 | 3 | <div class="col-md-12">
|
4 | 4 | <select class="form-control input-sm"
|
5 |
| - ng-model="state.activeTab" |
6 |
| - ng-change="regenerateCron(state)" |
| 5 | + ng-model="$ctrl.activeTab" |
| 6 | + ng-change="$ctrl.regenerateCron()" |
7 | 7 | ng-options="tab for tab in ['minutes', 'hourly', 'daily', 'weekly', 'monthly', 'advanced']"></select>
|
8 | 8 | </div>
|
9 | 9 | </div>
|
10 | 10 | <div class="cron-gen-container">
|
11 |
| - <div ng-if="state.activeTab === 'minutes'"> |
12 |
| - <div class="row" ng-init="regenerateCron(state)"> |
| 11 | + <div ng-if="$ctrl.activeTab === 'minutes'"> |
| 12 | + <div class="row" ng-init="$ctrl.regenerateCron()"> |
13 | 13 | <div class="col-md-12">
|
14 | 14 | <input class="form-control input-sm"
|
15 | 15 | type="number"
|
16 | 16 | min="1"
|
17 | 17 | max="59"
|
18 |
| - ng-change="regenerateCron(state)" |
19 |
| - ng-model="state.minutes.minutes" |
20 |
| - ng-required="state.activeTab === 'minutes'"> |
21 |
| - minute<span ng-if="state.minutes.minutes > 1">s</span> |
| 18 | + ng-change="$ctrl.regenerateCron()" |
| 19 | + ng-model="$ctrl.state.minutes.minutes" |
| 20 | + ng-required="$ctrl.activeTab === 'minutes'"> |
| 21 | + minute<span ng-if="$ctrl.state.minutes.minutes > 1">s</span> |
22 | 22 | </div>
|
23 | 23 | </div>
|
24 | 24 | </div>
|
25 |
| - <div ng-if="state.activeTab === 'hourly'"> |
| 25 | + <div ng-if="$ctrl.activeTab === 'hourly'"> |
26 | 26 | <div class="row">
|
27 | 27 | <div class="col-md-12">
|
28 |
| - <input type="radio" |
29 |
| - value="every" |
30 |
| - name="hourly-radio" |
31 |
| - ng-change="regenerateCron(state)" |
32 |
| - ng-model="state.hourly.subTab"> |
33 | 28 | Every
|
34 | 29 | <input class="form-control input-sm"
|
35 | 30 | type="number"
|
36 | 31 | min="1"
|
37 | 32 | max="23"
|
38 |
| - ng-change="regenerateCron(state)" |
39 |
| - ng-model="state.hourly.every.hours" |
40 |
| - ng-required="state.activeTab === 'hourly' && state.hourly.subTab === 'every'"> |
41 |
| - hour<span ng-if="state.hourly.every.hours> 1">s</span> |
42 |
| - </div> |
43 |
| - </div> |
44 |
| - <div class="row"> |
45 |
| - <div class="col-md-12"> |
46 |
| - <input type="radio" |
47 |
| - value="specific" |
48 |
| - ng-change="regenerateCron(state)" |
49 |
| - ng-model="state.hourly.subTab" |
50 |
| - name="hourly-radio"> |
51 |
| - At |
52 |
| - <select class="form-control input-sm" |
53 |
| - ng-change="regenerateCron(state)" |
54 |
| - ng-model="state.hourly.specific.hours" |
55 |
| - ng-options="hour as padNumber(hour) for hour in selectOptions.hours" |
56 |
| - ng-required="state.activeTab === 'hourly' && state.hourly.subTab === 'specific'"> |
57 |
| - </select> |
58 |
| - : |
59 |
| - <select class="form-control input-sm" |
60 |
| - ng-change="regenerateCron(state)" |
61 |
| - ng-model="state.hourly.specific.minutes" |
62 |
| - ng-options="minute as padNumber(minute) for minute in selectOptions.minutes" |
63 |
| - ng-required="state.activeTab === 'hourly' && state.hourly.subTab === 'specific'"> |
64 |
| - </select> |
65 |
| - <system-timezone></system-timezone> |
| 33 | + ng-change="$ctrl.regenerateCron()" |
| 34 | + ng-model="$ctrl.state.hourly.hours" |
| 35 | + ng-required="$ctrl.activeTab === 'hourly'"> |
| 36 | + hour<span ng-if="$ctrl.state.hourly.hours > 1">s</span> |
| 37 | + on minute |
| 38 | + <input class="form-control input-sm" |
| 39 | + type="number" |
| 40 | + min="0" |
| 41 | + max="59" |
| 42 | + ng-change="$ctrl.regenerateCron()" |
| 43 | + ng-model="$ctrl.state.hourly.minutes" |
| 44 | + ng-required="$ctrl.activeTab === 'hourly'"> |
66 | 45 | </div>
|
67 | 46 | </div>
|
68 | 47 | </div>
|
69 |
| - <div ng-if="state.activeTab === 'daily'"> |
| 48 | + <div ng-if="$ctrl.activeTab === 'daily'"> |
70 | 49 | <div class="row">
|
71 | 50 | <div class="col-md-12">
|
72 | 51 | <input type="radio"
|
73 | 52 | value="everyDays"
|
74 | 53 | name="daily-radio"
|
75 |
| - ng-change="regenerateCron(state)" |
76 |
| - ng-model="state.daily.subTab" |
| 54 | + ng-change="$ctrl.regenerateCron()" |
| 55 | + ng-model="$ctrl.state.daily.subTab" |
77 | 56 | checked="checked">
|
78 | 57 | Every
|
79 | 58 | <input class="form-control input-sm"
|
80 | 59 | type="number"
|
81 | 60 | min="1"
|
82 | 61 | max="31"
|
83 |
| - ng-change="regenerateCron(state)" |
84 |
| - ng-model="state.daily.everyDays.days" |
85 |
| - ng-required="state.activeTab === 'daily' && state.daily.subTab === 'everyDays'"> |
86 |
| - day<span ng-if="state.daily.everyDays.days > 1">s</span> |
| 62 | + ng-disabled="$ctrl.state.daily.subTab !== 'everyDays'" |
| 63 | + ng-change="$ctrl.regenerateCron()" |
| 64 | + ng-model="$ctrl.state.daily.everyDays.days" |
| 65 | + ng-required="$ctrl.activeTab === 'daily' && $ctrl.state.daily.subTab === 'everyDays'"> |
| 66 | + day<span ng-if="$ctrl.state.daily.everyDays.days > 1">s</span> |
87 | 67 | </div>
|
88 | 68 | </div>
|
89 | 69 | <div class="row">
|
90 | 70 | <div class="col-md-12">
|
91 | 71 | <input type="radio"
|
92 | 72 | value="everyWeekDay"
|
93 |
| - ng-change="regenerateCron(state)" |
94 |
| - ng-model="state.daily.subTab" |
| 73 | + ng-change="$ctrl.regenerateCron()" |
| 74 | + ng-model="$ctrl.state.daily.subTab" |
95 | 75 | name="daily-radio">
|
96 | 76 | Every week day
|
97 | 77 | </div>
|
98 | 78 | </div>
|
99 | 79 | <div class="row">
|
100 | 80 | <div class="col-md-12">
|
101 | 81 | Start time
|
102 |
| - <select class="form-control input-sm" |
103 |
| - ng-change="regenerateCron(state)" |
104 |
| - ng-required="state.activeTab === 'daily'" |
105 |
| - ng-model="state.daily.hours" |
106 |
| - ng-options="hour as padNumber(hour) for hour in selectOptions.hours"> |
107 |
| - </select> |
108 |
| - : |
109 |
| - <select class="form-control input-sm" |
110 |
| - ng-change="regenerateCron(state)" |
111 |
| - ng-required="state.activeTab === 'daily'" |
112 |
| - ng-model="state.daily.minutes" |
113 |
| - ng-options="minute as padNumber(minute) for minute in selectOptions.minutes"> |
114 |
| - </select> |
| 82 | + <cron-gen-time-select class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block" |
| 83 | + ng-if="$ctrl.state.daily.subTab === 'everyDays'" |
| 84 | + is-required="state.activeTab === 'daily'" |
| 85 | + select-class="$ctrl.parsedOptions.formSelectClass" |
| 86 | + is-disabled="$ctrl.activeTab !== 'daily'" |
| 87 | + on-change="$ctrl.regenerateCron()" |
| 88 | + model="$ctrl.state.daily.everyDays" |
| 89 | + use-24-hour-time="$ctrl.parsedOptions.use24HourTime" |
| 90 | + hide-seconds="$ctrl.parsedOptions.hideSeconds"> |
| 91 | + </cron-gen-time-select> |
| 92 | + <cron-gen-time-select class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block" |
| 93 | + ng-if="$ctrl.state.daily.subTab === 'everyWeekDay'" |
| 94 | + is-required="state.activeTab === 'daily'" |
| 95 | + select-class="$ctrl.parsedOptions.formSelectClass" |
| 96 | + is-disabled="$ctrl.activeTab !== 'daily'" |
| 97 | + on-change="$ctrl.regenerateCron()" |
| 98 | + model="$ctrl.state.daily.everyWeekDay" |
| 99 | + use-24-hour-time="$ctrl.parsedOptions.use24HourTime" |
| 100 | + hide-seconds="$ctrl.parsedOptions.hideSeconds"> |
| 101 | + </cron-gen-time-select> |
115 | 102 | <system-timezone></system-timezone>
|
116 | 103 | </div>
|
117 | 104 | </div>
|
118 | 105 | </div>
|
119 |
| - <div ng-if="state.activeTab === 'weekly'"> |
| 106 | + <div ng-if="$ctrl.activeTab === 'weekly'"> |
120 | 107 | <div class="row">
|
121 | 108 | <div class="col-md-12">
|
122 | 109 | <div class="btn-group">
|
123 | 110 | <label ng-repeat="day in [{k: 'SUN', l: 'Sun'}, {k: 'MON', l: 'Mon'}, {k: 'TUE', l: 'Tue'}, {k: 'WED', l: 'Wed'}, {k: 'THU', l: 'Thu'}, {k: 'FRI', l: 'Fri'}, {k: 'SAT', l: 'Sat'}]"
|
124 | 111 | class="btn btn-default"
|
125 | 112 | uib-btn-checkbox
|
126 |
| - ng-class="{active: state.weekly[day.k]}" |
127 |
| - ng-click="regenerateCron(state)" |
128 |
| - ng-model="state.weekly[day.k]">{{day.l}}</label> |
| 113 | + ng-class="{active: $ctrl.state.weekly[day.k]}" |
| 114 | + ng-click="$ctrl.regenerateCron()" |
| 115 | + ng-model="$ctrl.state.weekly[day.k]">{{day.l}}</label> |
129 | 116 | </div>
|
130 | 117 | </div>
|
131 | 118 | </div>
|
132 | 119 | <div class="row">
|
133 | 120 | <div class="col-md-12">
|
134 | 121 | Start time
|
135 |
| - <select class="form-control input-sm" |
136 |
| - ng-change="regenerateCron(state)" |
137 |
| - ng-required="state.activeTab === 'weekly'" |
138 |
| - ng-model="state.weekly.hours" |
139 |
| - ng-options="hour as padNumber(hour) for hour in selectOptions.hours"> |
140 |
| - </select> |
141 |
| - : |
142 |
| - <select class="form-control input-sm" |
143 |
| - ng-change="regenerateCron(state)" |
144 |
| - ng-required="state.activeTab === 'weekly'" |
145 |
| - ng-model="state.weekly.minutes" |
146 |
| - ng-options="minute as padNumber(minute) for minute in selectOptions.minutes"> |
147 |
| - </select> |
| 122 | + <cron-gen-time-select class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block" |
| 123 | + is-required="state.activeTab === 'weekly'" |
| 124 | + select-class="$ctrl.parsedOptions.formSelectClass" |
| 125 | + is-disabled="$ctrl.activeTab !== 'weekly'" |
| 126 | + on-change="$ctrl.regenerateCron();" |
| 127 | + model="$ctrl.state.weekly" |
| 128 | + use-24-hour-time="$ctrl.parsedOptions.use24HourTime" |
| 129 | + hide-seconds="$ctrl.parsedOptions.hideSeconds"> |
| 130 | + </cron-gen-time-select> |
148 | 131 | <system-timezone></system-timezone>
|
149 | 132 | </div>
|
150 | 133 | </div>
|
151 | 134 | </div>
|
152 |
| - <div ng-if="state.activeTab === 'monthly'"> |
| 135 | + <div ng-if="$ctrl.activeTab === 'monthly'"> |
153 | 136 | <div class="row">
|
154 | 137 | <div class="col-md-12">
|
155 | 138 | <input type="radio"
|
156 | 139 | value="specificDay"
|
157 |
| - ng-change="regenerateCron(state)" |
158 |
| - ng-model="state.monthly.subTab" |
| 140 | + ng-change="$ctrl.regenerateCron()" |
| 141 | + ng-model="$ctrl.state.monthly.subTab" |
159 | 142 | name="monthly-radio"
|
160 | 143 | checked="checked">
|
161 |
| - Day |
162 |
| - <input class="form-control input-sm" |
163 |
| - type="number" |
164 |
| - min="1" |
165 |
| - max="31" |
166 |
| - ng-change="regenerateCron(state)" |
167 |
| - ng-model="state.monthly.specificDay.day" |
168 |
| - ng-required="state.activeTab === 'monthly' && state.monthly.subTab === 'specificDay'"> |
| 144 | + On the |
| 145 | + <select class="month-days" |
| 146 | + ng-disabled="$ctrl.state.monthly.subTab !== 'specificDay'" |
| 147 | + ng-change="$ctrl.regenerateCron()" |
| 148 | + ng-model="$ctrl.state.monthly.specificDay.day" |
| 149 | + ng-required="$ctrl.activeTab === 'monthly' && $ctrl.state.monthly.subTab === 'specificDay'" |
| 150 | + ng-options="monthDaysWithLast as $ctrl.monthDayDisplay(monthDaysWithLast) for monthDaysWithLast in $ctrl.selectOptions.monthDaysWithLasts" |
| 151 | + ng-class="$ctrl.parsedOptions.formSelectClass"> |
| 152 | + </select> |
169 | 153 | of every
|
170 | 154 | <input class="form-control input-sm"
|
171 | 155 | type="number"
|
172 | 156 | min="1"
|
173 | 157 | max="11"
|
174 |
| - ng-change="regenerateCron(state)" |
175 |
| - ng-model="state.monthly.specificDay.months" |
176 |
| - ng-required="state.activeTab === 'monthly' && state.monthly.subTab === 'specificDay'"> |
177 |
| - month<span ng-if="state.monthly.specificDay.months > 1">s</span> |
| 158 | + ng-change="$ctrl.regenerateCron()" |
| 159 | + ng-model="$ctrl.state.monthly.specificDay.months" |
| 160 | + ng-required="$ctrl.activeTab === 'monthly' && $ctrl.state.monthly.subTab === 'specificDay'" |
| 161 | + ng-disabled="$ctrl.state.monthly.subTab !== 'specificDay'"> |
| 162 | + month<span ng-if="$ctrl.state.monthly.specificDay.months > 1">s</span> |
178 | 163 | </div>
|
179 | 164 | </div>
|
180 | 165 | <div class="row">
|
181 | 166 | <div class="col-md-12">
|
182 | 167 | <input type="radio"
|
183 | 168 | value="specificWeekDay"
|
184 |
| - ng-change="regenerateCron(state)" |
185 |
| - ng-model="state.monthly.subTab" |
| 169 | + ng-change="$ctrl.regenerateCron()" |
| 170 | + ng-model="$ctrl.state.monthly.subTab" |
186 | 171 | name="monthly-radio">
|
187 | 172 | <select class="form-control input-sm"
|
188 |
| - ng-change="regenerateCron(state)" |
189 |
| - ng-model="state.monthly.specificWeekDay.monthWeek" |
190 |
| - ng-required="state.activeTab === 'monthly' && state.monthly.subTab === 'specificWeekDay'" |
191 |
| - ng-options="monthWeek as monthWeekDisplay(monthWeek) for monthWeek in selectOptions.monthWeeks"> |
| 173 | + ng-change="$ctrl.regenerateCron()" |
| 174 | + ng-model="$ctrl.state.monthly.specificWeekDay.monthWeek" |
| 175 | + ng-required="$ctrl.activeTab === 'monthly' && $ctrl.state.monthly.subTab === 'specificWeekDay'" |
| 176 | + ng-options="monthWeek as $ctrl.monthWeekDisplay(monthWeek) for monthWeek in $ctrl.selectOptions.monthWeeks" |
| 177 | + ng-disabled="$ctrl.state.monthly.subTab !== 'specificWeekDay'"> |
192 | 178 | </select>
|
193 | 179 | <select class="form-control input-sm"
|
194 |
| - ng-change="regenerateCron(state)" |
195 |
| - ng-model="state.monthly.specificWeekDay.day" |
196 |
| - ng-required="state.activeTab === 'monthly' && state.monthly.subTab === 'specificWeekDay'" |
197 |
| - ng-options="day as dayDisplay(day) for day in selectOptions.days"> |
| 180 | + ng-change="$ctrl.regenerateCron()" |
| 181 | + ng-model="$ctrl.state.monthly.specificWeekDay.day" |
| 182 | + ng-required="$ctrl.activeTab === 'monthly' && $ctrl.state.monthly.subTab === 'specificWeekDay'" |
| 183 | + ng-options="day as $ctrl.dayDisplay(day) for day in $ctrl.selectOptions.days" |
| 184 | + ng-disabled="$ctrl.state.monthly.subTab !== 'specificWeekDay'"> |
198 | 185 | </select>
|
199 | 186 | of every
|
200 | 187 | <input class="form-control input-sm"
|
201 | 188 | type="number"
|
202 | 189 | min="1"
|
203 | 190 | max="11"
|
204 |
| - ng-change="regenerateCron(state)" |
205 |
| - ng-model="state.monthly.specificWeekDay.months" |
206 |
| - ng-required="state.activeTab === 'monthly' && state.monthly.subTab === 'specificWeekDay'"> |
207 |
| - month<span ng-if="state.monthly.specificWeekDay.months > 1">s</span> |
| 191 | + ng-change="$ctrl.regenerateCron()" |
| 192 | + ng-model="$ctrl.state.monthly.specificWeekDay.months" |
| 193 | + ng-required="$ctrl.activeTab === 'monthly' && $ctrl.state.monthly.subTab === 'specificWeekDay'" |
| 194 | + ng-disabled="$ctrl.state.monthly.subTab !== 'specificWeekDay'"> |
| 195 | + month<span ng-if="$ctrl.state.monthly.specificWeekDay.months > 1">s</span> |
208 | 196 | </div>
|
209 | 197 | </div>
|
210 | 198 | <div class="row">
|
211 | 199 | <div class="col-md-12">
|
212 | 200 | Start time
|
213 |
| - <select class="form-control input-sm" |
214 |
| - ng-change="regenerateCron(state)" |
215 |
| - ng-required="state.activeTab === 'monthly'" |
216 |
| - ng-model="state.monthly.hours" |
217 |
| - ng-options="hour as padNumber(hour) for hour in selectOptions.hours"> |
218 |
| - </select> |
219 |
| - : |
220 |
| - <select class="form-control input-sm" |
221 |
| - ng-change="regenerateCron(state)" |
222 |
| - ng-required="state.activeTab === 'monthly'" |
223 |
| - ng-model="state.monthly.minutes" |
224 |
| - ng-options="minute as padNumber(minute) for minute in selectOptions.minutes"> |
225 |
| - </select> |
| 201 | + <cron-gen-time-select class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block" |
| 202 | + ng-if="$ctrl.state.monthly.subTab === 'specificDay'" |
| 203 | + is-required="state.activeTab === 'monthly'" |
| 204 | + select-class="$ctrl.parsedOptions.formSelectClass" |
| 205 | + is-disabled="$ctrl.activeTab !== 'monthly'" |
| 206 | + on-change="$ctrl.regenerateCron();" |
| 207 | + model="$ctrl.state.monthly.specificDay" |
| 208 | + use-24-hour-time="$ctrl.parsedOptions.use24HourTime" |
| 209 | + hide-seconds="$ctrl.parsedOptions.hideSeconds"> |
| 210 | + </cron-gen-time-select> |
| 211 | + <cron-gen-time-select class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block" |
| 212 | + ng-if="$ctrl.state.monthly.subTab === 'specificWeekDay'" |
| 213 | + is-required="state.activeTab === 'monthly'" |
| 214 | + select-class="$ctrl.parsedOptions.formSelectClass" |
| 215 | + is-disabled="$ctrl.activeTab !== 'monthly'" |
| 216 | + on-change="$ctrl.regenerateCron();" |
| 217 | + model="$ctrl.state.monthly.specificWeekDay" |
| 218 | + use-24-hour-time="$ctrl.parsedOptions.use24HourTime" |
| 219 | + hide-seconds="$ctrl.parsedOptions.hideSeconds"> |
| 220 | + </cron-gen-time-select> |
226 | 221 | <system-timezone></system-timezone>
|
227 | 222 | </div>
|
228 | 223 | </div>
|
229 | 224 | </div>
|
230 |
| - <div ng-if="state.activeTab === 'advanced'"> |
| 225 | + <div ng-if="$ctrl.activeTab === 'advanced'"> |
231 | 226 | <div class="row">
|
232 | 227 | <div class="col-md-12">
|
233 | 228 | <strong>Expression</strong>
|
|
236 | 231 | class="form-control input-sm"
|
237 | 232 | cron-validator
|
238 | 233 | cron-validation-messages="validation.messages"
|
239 |
| - ng-change="regenerateCron(state)" |
240 |
| - ng-model="state.advanced.expression"> |
| 234 | + ng-change="$ctrl.regenerateCron()" |
| 235 | + ng-model="$ctrl.state.advanced.expression"> |
241 | 236 | </div>
|
242 | 237 | </div>
|
243 | 238 | <div class="row">
|
244 | 239 | <div class="col-md-12">
|
245 |
| - <p>More details about how to create these expressions can be found <a |
246 |
| - href="http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html" |
247 |
| - target="_blank">here</a>.</p> |
| 240 | + <p>More details about how to create these expressions can be found |
| 241 | + <a href="http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html" |
| 242 | + target="_blank">here</a>.</p> |
248 | 243 | </div>
|
249 | 244 | </div>
|
250 | 245 | <div class="row" ng-if="validation.messages.description && !validation.messages.error">
|
|
0 commit comments