diff --git a/azkaban-web-server/src/web/js/azkaban/test/test.js b/azkaban-web-server/src/web/js/azkaban/test/test.js
index ee006a2..3ad742e 100644
--- a/azkaban-web-server/src/web/js/azkaban/test/test.js
+++ b/azkaban-web-server/src/web/js/azkaban/test/test.js
@@ -48,6 +48,9 @@ describe('CronTransformation', function() {
assert.equal(testStrFromCronToQuartz('0 3 * * 5'), '0 3 * * 4');
assert.equal(testStrFromCronToQuartz('0 3 * * 5-7'), '0 3 * * 4-6');
assert.equal(testStrFromCronToQuartz('0 3 * * 1,3-5 2016'), '0 3 * * 0,2-4 2016');
+ assert.equal(testStrFromCronToQuartz('0 3 * * 5#3'), '0 3 * * 4#3');
+ assert.equal(testStrFromCronToQuartz('0 3 * * 5-7#3'), '0 3 * * 4-6#3');
+ assert.equal(testStrFromCronToQuartz('0 3 * * 1,3-5#3 2016'), '0 3 * * 0,2-4#3 2016');
});
});
diff --git a/azkaban-web-server/src/web/js/azkaban/util/date.js b/azkaban-web-server/src/web/js/azkaban/util/date.js
index ff199b0..f9a31a4 100644
--- a/azkaban-web-server/src/web/js/azkaban/util/date.js
+++ b/azkaban-web-server/src/web/js/azkaban/util/date.js
@@ -110,10 +110,15 @@ var validateQuartzStr = function (str){
return "VALID";
}
+// Users enter values 1-7 for day of week, but UnixCronSyntax requires
+// day of week to be values 0-6. However, when using "#" syntax, we
+// do not want to apply the modulo operation to the number following "#"
var modifyStrToUnixCronSyntax = function (str){
- return str.replace(/[0-7]/g, function upperToHyphenLower(match) {
+ var res = str.split("#");
+ res[0] = res[0].replace(/[0-7]/g, function upperToHyphenLower(match) {
return (parseInt(match)+6)%7;
});
+ return res.join("#");
}
// Unix Cron use 0-6 as Sun--Sat, but Quartz use 1-7. Due to later.js only supporting Unix Cron, we have to make this transition.