schedulefieldvalidation.js
1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
* ADOBE CONFIDENTIAL
*
* Copyright 2016 Adobe Systems Incorporated
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe Systems Incorporated and its suppliers,
* if any. The intellectual and technical concepts contained
* herein are proprietary to Adobe Systems Incorporated and its
* suppliers and may be covered by U.S. and Foreign Patents,
* patents in process, and are protected by trade secret or copyright law.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe Systems Incorporated.
*/
/* globals later */
(function(window, document, $, later) {
'use strict';
// HTML5 form validation for the schedule property
$(document).on('input', 'input[name="./schedule"]', function(ev) {
var value = $(ev.target).val();
// Validate text expression
var schedule = later.parse.text(value);
var isValidTextExpression = schedule.error === -1;
// Validate cron expression
// TODO: this is a trivial regexp that needs to be improved for a better UX
var cronRegExp = /^([0-9,\/\-\*]+)(\s[0-9,\/\-\*]+){5}$/;
var isValidCronExpression = value.match(cronRegExp);
ev.target.setCustomValidity(isValidTextExpression || isValidCronExpression ? '' : 'error');
});
}(window, document, Granite.$, later));