mirror of
https://github.com/ansible/awx.git
synced 2026-01-16 20:30:46 -03:30
Pulled in latest angular-scheduler changes. Added validation to start time, interval count and occurrence count.
This commit is contained in:
parent
3068f35aeb
commit
12ecf56dc4
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "angular-scheduler",
|
||||
"version": "0.0.5",
|
||||
"version": "0.0.8",
|
||||
"authors": [
|
||||
"Chris Houseknecht <chouse@ansible.com>"
|
||||
],
|
||||
@ -27,7 +27,8 @@
|
||||
"bootstrap": "~3.1.1",
|
||||
"rrule": "*",
|
||||
"timezone-js": "*",
|
||||
"angular-tz-extensions": "*"
|
||||
"angular-tz-extensions": "*",
|
||||
"globalize": "~0.1.1"
|
||||
},
|
||||
"homepage": "https://github.com/chouseknecht/angular-scheduler",
|
||||
"main": "git@github.com:chouseknecht/angular-scheduler.git",
|
||||
@ -36,13 +37,13 @@
|
||||
"rrule",
|
||||
"calendar"
|
||||
],
|
||||
"_release": "0.0.5",
|
||||
"_release": "0.0.8",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v0.0.5",
|
||||
"commit": "dfbfa58ea5580cf44f95e8e2c88c91ca37acfd31"
|
||||
"tag": "v0.0.8",
|
||||
"commit": "df3f8e2c2c5f408fafe4ebfc1468998d51c4a66d"
|
||||
},
|
||||
"_source": "git://github.com/chouseknecht/angular-scheduler.git",
|
||||
"_target": "~0.0.5",
|
||||
"_target": "~0.0.8",
|
||||
"_originalSource": "angular-scheduler"
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "angular-scheduler",
|
||||
"version": "0.0.5",
|
||||
"version": "0.0.8",
|
||||
"authors": [
|
||||
"Chris Houseknecht <chouse@ansible.com>"
|
||||
],
|
||||
@ -27,7 +27,8 @@
|
||||
"bootstrap": "~3.1.1",
|
||||
"rrule": "*",
|
||||
"timezone-js": "*",
|
||||
"angular-tz-extensions": "*"
|
||||
"angular-tz-extensions": "*",
|
||||
"globalize": "~0.1.1"
|
||||
},
|
||||
"homepage": "https://github.com/chouseknecht/angular-scheduler",
|
||||
"main": "git@github.com:chouseknecht/angular-scheduler.git",
|
||||
|
||||
@ -41,12 +41,12 @@
|
||||
<label>Start Time <span class="fmt-help">HH24:MM:SS</span><span class="fmt-help" ng-show="!schedulerShowTimeZone">UTC</span></label>
|
||||
<div class="input-group">
|
||||
<input name="schedulerStartHour" id="schedulerStartHour" sch-spinner="scheduler_form" class="scheduler-time-spinner"
|
||||
ng-model="schedulerStartHour" data-zero-pad="2" placeholder="HH24" min="0" max="23" required ng-change="scheduleTimeChange" >
|
||||
<span>:</span><input name="schedulerStartMinute" id="schedulerStartMinute" sch-spinner="scheduler_form" class="scheduler-time-spinner"
|
||||
data-zero-pad="2" ng-model="schedulerStartMinute" placeholder="MM" min="0" max="59" required ng-change="scheduleTimeChange" >
|
||||
<span>:</span><input name="schedulerStartSecond" id="schedulerStartSecond" sch-spinner="scheduler_form" class="scheduler-time-spinner"
|
||||
data-zero-pad="2" ng-model="schedulerStartSecond" placeholder="SS" min="0" max="23" required ng-change="scheduleTimeChange" >
|
||||
ng-model="schedulerStartHour" placeholder="HH24" min="0" max="23" data-zero-pad="2" required
|
||||
ng-change="scheduleTimeChange" >
|
||||
<span>:</span><input name="schedulerStartMinute" id="schedulerStartMinute" sch-spinner="scheduler_form" class="scheduler-time-spinner" ng-model="schedulerStartMinute" placeholder="MM" min="0" max="59" data-zero-pad="2" required ng-change="scheduleTimeChange" >
|
||||
<span>:</span><input name="schedulerStartSecond" id="schedulerStartSecond" sch-spinner="scheduler_form" class="scheduler-time-spinner" ng-model="schedulerStartSecond" placeholder="SS" min="0" max="59" data-zero-pad="2" required ng-change="scheduleTimeChange" >
|
||||
</div>
|
||||
<div class="error" ng-show="scheduler_startTime_error">Time must be in HH24:MM:SS format</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -81,13 +81,15 @@
|
||||
ng-options="f.name for f in frequencyOptions" required class="form-control input-sm"
|
||||
ng-change="scheduleRepeatChange()"></select>
|
||||
</div>
|
||||
<div class="error" ng-show="sheduler_frequency_error"></div>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="col-md-4">
|
||||
<div class="form-group no-label" ng-show="schedulerShowInterval">
|
||||
<label>Every</label>
|
||||
<input name="schedulerInterval" id="schedulerInterval" sch-spinner="scheduler_form" class="scheduler-spinner"
|
||||
ng-model="schedulerInterval" min="1" max="999" >
|
||||
<label class="inline-label" ng-bind="schedulerIntervalLabel"></label>
|
||||
<div class="error" ng-show="scheduler_interval_error">Provide a value between 1 and 999</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -187,8 +189,7 @@
|
||||
<div class="form-group" ng-show="schedulerShowInterval">
|
||||
<label>End</label>
|
||||
<div>
|
||||
<select id="schedulerEnd" name="schedulerEnd" ng-model="schedulerEnd" ng-options="e.name for e in endOptions" required
|
||||
class="form-control input-sm" ng-change="scheduleRepeatChange()"></select>
|
||||
<select id="schedulerEnd" name="schedulerEnd" ng-model="schedulerEnd" ng-options="e.name for e in endOptions" required class="form-control input-sm" ng-change="schedulerEndChange()"></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -198,7 +199,8 @@
|
||||
<input ng-name="schedulerOccurrenceCount" ng-id="schedulerOccurrenceCount" sch-spinner="scheduler_form" class="scheduler-spinner"
|
||||
ng-model="schedulerOccurrenceCount" min="1" max="999" >
|
||||
<label class="inline-label">Occurrence(s)</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="error" ng-show="scheduler_occurrenceCount_error">Provide a value between 1 and 999</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4" ng-show="schedulerEnd && schedulerEnd.value == 'on'">
|
||||
|
||||
@ -64,8 +64,10 @@ angular.module('AngularScheduler', ['underscore'])
|
||||
if (useTimezone) {
|
||||
scope.resetStartDate();
|
||||
try {
|
||||
var dateStr = scope.schedulerStartDt + 'T' + scope.schedulerStartHour + ':' + scope.schedulerStartMinute +
|
||||
':' + scope.schedulerStartSecond + '.000Z';
|
||||
var dateStr = scope.schedulerStartDt + 'T' +
|
||||
$filter('schZeroPad')(scope.schedulerStartHour, 2) + ':' +
|
||||
$filter('schZeroPad')(scope.schedulerStartMinute, 2) + ':' +
|
||||
$filter('schZeroPad')(scope.schedulerStartSecond, 2) + '.000Z';
|
||||
scope.schedulerUTCTime = $timezones.toUTC(dateStr, scope.schedulerTimeZone.name).toISOString();
|
||||
}
|
||||
catch(e) {
|
||||
@ -151,6 +153,14 @@ angular.module('AngularScheduler', ['underscore'])
|
||||
}
|
||||
};
|
||||
|
||||
scope.schedulerEndChange = function() {
|
||||
var dt = new Date(), // date adjusted to local zone automatically
|
||||
month = $filter('schZeroPad')(dt.getMonth() + 1, 2),
|
||||
day = $filter('schZeroPad')(dt.getDate(), 2);
|
||||
scope.schedulerEndDt = dt.getFullYear() + '-' + month + '-' + day;
|
||||
scope.schedulerOccurrenceCount = 1;
|
||||
};
|
||||
|
||||
// When timezones become available, use to set defaults
|
||||
if (scope.removeZonesReady) {
|
||||
scope.removeZonesReady();
|
||||
@ -231,6 +241,9 @@ angular.module('AngularScheduler', ['underscore'])
|
||||
this.scope.scheduler_endDt_error = false;
|
||||
this.scope.resetStartDate();
|
||||
this.scope.scheduler_endDt_error = false;
|
||||
this.scope.scheduler_interval_error = false;
|
||||
this.scope.scheduler_occurrenceCount_error = false;
|
||||
|
||||
if (this.scope.scheduler_form && this.scope.scheduler_form.schedulerEndDt) {
|
||||
this.scope.scheduler_form.schedulerEndDt.$setValidity('custom-error', true);
|
||||
this.scope.scheduler_form.schedulerEndDt.$setPristine();
|
||||
@ -261,11 +274,27 @@ angular.module('AngularScheduler', ['underscore'])
|
||||
this.isValid = function() {
|
||||
var startDt, now, dateStr, adjNow, timeNow, timeFuture, validity = true;
|
||||
this.clearErrors();
|
||||
|
||||
|
||||
if (this.scope.schedulerFrequency.value !== 'none' && (this.scope.schedulerInterval < 1 || this.scope.schedulerInterval > 999)) {
|
||||
this.scope.scheduler_interval_error = true;
|
||||
validity = false;
|
||||
}
|
||||
|
||||
if (this.scope.schedulerEnd.value === 'after' && (this.scope.schedulerOccurrenceCount < 0 || this.scope.schedulerOccurrenceCount > 999)) {
|
||||
this.scope.scheduler_occurrenceCount_error = true;
|
||||
validity = false;
|
||||
}
|
||||
|
||||
if (this.scope.schedulerFrequency.value === 'weekly' && scope.weekDays.length === 0) {
|
||||
this.scope.scheduler_weekDays_error = true;
|
||||
validity = false;
|
||||
}
|
||||
if (this.scope.schedulerStartHour < 0 || this.scope.schedulerStartMinute < 0 || scope.schedulerStartSecond < 0 ||
|
||||
this.scope.schedulerStartHour > 23 || this.scope.schedulerStartMinute > 59 || scope.schedulerStartSecond > 59) {
|
||||
this.scope.scheduler_startTime_error = true;
|
||||
validity = false;
|
||||
}
|
||||
if (!this.scope.scheduler_form.schedulerName.$valid) {
|
||||
// Make sure schedulerName requird error shows up
|
||||
this.scope.scheduler_form.schedulerName.$dirty = true;
|
||||
@ -651,9 +680,9 @@ angular.module('AngularScheduler', ['underscore'])
|
||||
month = $filter('schZeroPad')(dt.getMonth() + 1, 2);
|
||||
day = $filter('schZeroPad')(dt.getDate(), 2);
|
||||
scope.schedulerStartDt = dt.getFullYear() + '-' + month + '-' + day;
|
||||
scope.schedulerStartHour = $filter('schZeroPad')(dt.getHours(),2);
|
||||
scope.schedulerStartMinute = $filter('schZeroPad')(dt.getMinutes(),2);
|
||||
scope.schedulerStartSecond = $filter('schZeroPad')(dt.getSeconds(),2);
|
||||
scope.schedulerStartHour = dt.getHours(); //$filter('schZeroPad')(dt.getHours(),2);
|
||||
scope.schedulerStartMinute = dt.getMinutes(); // $filter('schZeroPad')(dt.getMinutes(),2);
|
||||
scope.schedulerStartSecond = dt.getSeconds(); // $filter('schZeroPad')(dt.getSeconds(),2);
|
||||
scope.scheduleTimeChange(); // calc UTC
|
||||
}
|
||||
else {
|
||||
@ -933,16 +962,20 @@ angular.module('AngularScheduler', ['underscore'])
|
||||
};
|
||||
}])
|
||||
|
||||
// Custom directives
|
||||
// Custom directives
|
||||
.directive('schSpinner', ['$filter', function($filter) {
|
||||
return {
|
||||
require: 'ngModel',
|
||||
link: function(scope, element, attr, ctrl) {
|
||||
// Add jquerui spinner to 'spinner' type input
|
||||
var form = attr.schSpinner,
|
||||
zeroPad = attr.zeroPad;
|
||||
zeroPad = attr.zeroPad,
|
||||
min = attr.min || 1,
|
||||
max = attr.max || 999;
|
||||
$(element).spinner({
|
||||
stop: function() {
|
||||
min: min,
|
||||
max: max,
|
||||
change: function() {
|
||||
if (zeroPad) {
|
||||
scope[attr.ngModel] = $filter('schZeroPad')($(this).val(),zeroPad);
|
||||
$(this).val(scope[attr.ngModel]);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -41,7 +41,7 @@
|
||||
<script src="{{ STATIC_URL }}lib/rrule/lib/rrule.js"></script>
|
||||
<script src="{{ STATIC_URL }}lib/rrule/lib/nlp.js"></script>
|
||||
<script src="{{ STATIC_URL }}lib/angular-tz-extensions/lib/angular-tz-extensions.js"></script>
|
||||
<script src="{{ STATIC_URL }}lib/angular-scheduler/lib/angular-scheduler.js"></script>
|
||||
<script src="{{ STATIC_URL }}lib/angular-scheduler/lib/angular-scheduler.min.js"></script>
|
||||
|
||||
{% if settings.USE_MINIFIED_JS %}
|
||||
<script src="{{ STATIC_URL }}js/awx.min.js"></script>
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
"angular-md5": "~0.1.7",
|
||||
"angular-resource": "~1.2.12",
|
||||
"angular-sanitize": "~1.2.12",
|
||||
"angular-scheduler": "~0.0.6",
|
||||
"angular-scheduler": "~0.0.8",
|
||||
"bootstrap": "~3.1.1",
|
||||
"components-font-awesome": "~4.0.3",
|
||||
"less.js": "~1.6.3",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user