xxl-job

cronGen.js 63KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077
  1. (function ($) {
  2. // var resultsName = "";
  3. var inputElement;
  4. var displayElement;
  5. $.fn.extend({
  6. cronGen: function (options) {
  7. if (options == null) {
  8. options = {};
  9. }
  10. options = $.extend({}, $.fn.cronGen.defaultOptions, options);
  11. //create top menu
  12. var cronContainer = $("<div/>", { id: "CronContainer", style: "display:none;width:300px;height:300px;" });
  13. var mainDiv = $("<div/>", { id: "CronGenMainDiv", style: "width:410px;height:300px;" });
  14. var topMenu = $("<ul/>", { "class": "nav nav-tabs", id: "CronGenTabs" });
  15. $('<li/>', { 'class': 'active' }).html($('<a id="SecondlyTab" href="#Secondly">秒</a>')).appendTo(topMenu);
  16. $('<li/>').html($('<a id="MinutesTab" href="#Minutes">分钟</a>')).appendTo(topMenu);
  17. $('<li/>').html($('<a id="HourlyTab" href="#Hourly">小时</a>')).appendTo(topMenu);
  18. $('<li/>').html($('<a id="DailyTab" href="#Daily">日</a>')).appendTo(topMenu);
  19. $('<li/>').html($('<a id="MonthlyTab" href="#Monthly">月</a>')).appendTo(topMenu);
  20. $('<li/>').html($('<a id="WeeklyTab" href="#Weekly">周</a>')).appendTo(topMenu);
  21. $('<li/>').html($('<a id="YearlyTab" href="#Yearly">年</a>')).appendTo(topMenu);
  22. $(topMenu).appendTo(mainDiv);
  23. //create what's inside the tabs
  24. var container = $("<div/>", { "class": "container-fluid", "style": "margin-top: 30px;margin-left: -14px;" });
  25. var row = $("<div/>", { "class": "row-fluid" });
  26. var span12 = $("<div/>", { "class": "span12" });
  27. var tabContent = $("<div/>", { "class": "tab-content", "style": "border:0px; margin-top:-20px;" });
  28. //creating the secondsTab
  29. var secondsTab = $("<div/>", { "class": "tab-pane active", id: "Secondly" });
  30. var seconds1 = $("<div/>",{"class":"line"});
  31. $("<input/>",{type : "radio", value : "1", name : "second"}).appendTo(seconds1);
  32. $(seconds1).append("每秒 允许的通配符[, - * /]");
  33. $(seconds1).appendTo(secondsTab);
  34. var seconds2 = $("<div/>",{"class":"line"});
  35. $("<input/>",{type : "radio", value : "2", name : "second"}).appendTo(seconds2);
  36. $(seconds2).append("周期 从");
  37. $("<input/>",{type : "text", id : "secondStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(seconds2);
  38. $(seconds2).append("-");
  39. $("<input/>",{type : "text", id : "secondEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(seconds2);
  40. $(seconds2).append("秒");
  41. $(seconds2).appendTo(secondsTab);
  42. var seconds3 = $("<div/>",{"class":"line"});
  43. $("<input/>",{type : "radio", value : "3", name : "second"}).appendTo(seconds3);
  44. $(seconds3).append("从");
  45. $("<input/>",{type : "text", id : "secondStart_1", value : "0", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(seconds3);
  46. $(seconds3).append("秒开始,每");
  47. $("<input/>",{type : "text", id : "secondEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(seconds3);
  48. $(seconds3).append("秒执行一次");
  49. $(seconds3).appendTo(secondsTab);
  50. var seconds4 = $("<div/>",{"class":"line"});
  51. $("<input/>",{type : "radio", value : "4", name : "second", id: "sencond_appoint"}).appendTo(seconds4);
  52. $(seconds4).append("指定");
  53. $(seconds4).appendTo(secondsTab);
  54. $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="0">00<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="5">05<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="6">06<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="9">09</div>');
  55. $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="10">10<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="11">11<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="12">12<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="13">13<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="14">14<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="15">15<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="16">16<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="17">17<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="18">18<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="19">19</div>');
  56. $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="20">20<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="21">21<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="22">22<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="23">23<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="24">24<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="25">25<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="26">26<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="27">27<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="28">28<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="29">29</div>');
  57. $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="30">30<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="31">31<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="32">32<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="33">33<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="34">34<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="35">35<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="36">36<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="37">37<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="38">38<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="39">39</div>');
  58. $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="40">40<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="41">41<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="42">42<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="43">43<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="44">44<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="45">45<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="46">46<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="47">47<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="48">48<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="49">49</div>');
  59. $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="50">50<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="51">51<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="52">52<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="53">53<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="54">54<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="55">55<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="56">56<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="57">57<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="58">58<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="59">59</div>');
  60. $("<input/>",{type : "hidden", id : "secondHidden"}).appendTo(secondsTab);
  61. $(secondsTab).appendTo(tabContent);
  62. //creating the minutesTab
  63. var minutesTab = $("<div/>", { "class": "tab-pane", id: "Minutes" });
  64. var minutes1 = $("<div/>",{"class":"line"});
  65. $("<input/>",{type : "radio", value : "1", name : "min"}).appendTo(minutes1);
  66. $(minutes1).append("每分钟 允许的通配符[, - * /]");
  67. $(minutes1).appendTo(minutesTab);
  68. var minutes2 = $("<div/>",{"class":"line"});
  69. $("<input/>",{type : "radio", value : "2", name : "min"}).appendTo(minutes2);
  70. $(minutes2).append("周期 从");
  71. $("<input/>",{type : "text", id : "minStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(minutes2);
  72. $(minutes2).append("-");
  73. $("<input/>",{type : "text", id : "minEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(minutes2);
  74. $(minutes2).append("分钟");
  75. $(minutes2).appendTo(minutesTab);
  76. var minutes3 = $("<div/>",{"class":"line"});
  77. $("<input/>",{type : "radio", value : "3", name : "min"}).appendTo(minutes3);
  78. $(minutes3).append("从");
  79. $("<input/>",{type : "text", id : "minStart_1", value : "0", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(minutes3);
  80. $(minutes3).append("分钟开始,每");
  81. $("<input/>",{type : "text", id : "minEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(minutes3);
  82. $(minutes3).append("分钟执行一次");
  83. $(minutes3).appendTo(minutesTab);
  84. var minutes4 = $("<div/>",{"class":"line"});
  85. $("<input/>",{type : "radio", value : "4", name : "min", id: "min_appoint"}).appendTo(minutes4);
  86. $(minutes4).append("指定");
  87. $(minutes4).appendTo(minutesTab);
  88. $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="0">00<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="5">05<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="6">06<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="9">09</div>');
  89. $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="10">10<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="11">11<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="12">12<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="13">13<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="14">14<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="15">15<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="16">16<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="17">17<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="18">18<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="19">19</div>');
  90. $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="20">20<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="21">21<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="22">22<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="23">23<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="24">24<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="25">25<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="26">26<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="27">27<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="28">28<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="29">29</div>');
  91. $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="30">30<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="31">31<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="32">32<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="33">33<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="34">34<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="35">35<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="36">36<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="37">37<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="38">38<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="39">39</div>');
  92. $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="40">40<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="41">41<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="42">42<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="43">43<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="44">44<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="45">45<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="46">46<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="47">47<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="48">48<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="49">49</div>');
  93. $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="50">50<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="51">51<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="52">52<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="53">53<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="54">54<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="55">55<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="56">56<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="57">57<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="58">58<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="59">59</div>');
  94. $("<input/>",{type : "hidden", id : "minHidden"}).appendTo(minutesTab);
  95. $(minutesTab).appendTo(tabContent);
  96. //creating the hourlyTab
  97. var hourlyTab = $("<div/>", { "class": "tab-pane", id: "Hourly" });
  98. var hourly1 = $("<div/>",{"class":"line"});
  99. $("<input/>",{type : "radio", value : "1", name : "hour"}).appendTo(hourly1);
  100. $(hourly1).append("每小时 允许的通配符[, - * /]");
  101. $(hourly1).appendTo(hourlyTab);
  102. var hourly2 = $("<div/>",{"class":"line"});
  103. $("<input/>",{type : "radio", value : "2", name : "hour"}).appendTo(hourly2);
  104. $(hourly2).append("周期 从");
  105. $("<input/>",{type : "text", id : "hourStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(hourly2);
  106. $(hourly2).append("-");
  107. $("<input/>",{type : "text", id : "hourEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(hourly2);
  108. $(hourly2).append("小时");
  109. $(hourly2).appendTo(hourlyTab);
  110. var hourly3 = $("<div/>",{"class":"line"});
  111. $("<input/>",{type : "radio", value : "3", name : "hour"}).appendTo(hourly3);
  112. $(hourly3).append("从");
  113. $("<input/>",{type : "text", id : "hourStart_1", value : "0", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(hourly3);
  114. $(hourly3).append("小时开始,每");
  115. $("<input/>",{type : "text", id : "hourEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(hourly3);
  116. $(hourly3).append("小时执行一次");
  117. $(hourly3).appendTo(hourlyTab);
  118. var hourly4 = $("<div/>",{"class":"line"});
  119. $("<input/>",{type : "radio", value : "4", name : "hour", id: "hour_appoint"}).appendTo(hourly4);
  120. $(hourly4).append("指定");
  121. $(hourly4).appendTo(hourlyTab);
  122. $(hourlyTab).append('<div class="imp hourList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="0">00<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="5">05</div>');
  123. $(hourlyTab).append('<div class="imp hourList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="6">06<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="9">09<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="10">10<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="11">11</div>');
  124. $(hourlyTab).append('<div class="imp hourList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="12">12<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="13">13<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="14">14<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="15">15<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="16">16<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="17">17</div>');
  125. $(hourlyTab).append('<div class="imp hourList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="18">18<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="19">19<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="20">20<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="21">21<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="22">22<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="23">23</div>');
  126. $("<input/>",{type : "hidden", id : "hourHidden"}).appendTo(hourlyTab);
  127. $(hourlyTab).appendTo(tabContent);
  128. //creating the dailyTab
  129. var dailyTab = $("<div/>", { "class": "tab-pane", id: "Daily" });
  130. var daily1 = $("<div/>",{"class":"line"});
  131. $("<input/>",{type : "radio", value : "1", name : "day"}).appendTo(daily1);
  132. $(daily1).append("每天 允许的通配符[, - * / L W]");
  133. $(daily1).appendTo(dailyTab);
  134. var daily5 = $("<div/>",{"class":"line"});
  135. $("<input/>",{type : "radio", value : "2", name : "day"}).appendTo(daily5);
  136. $(daily5).append("不指定");
  137. $(daily5).appendTo(dailyTab);
  138. var daily2 = $("<div/>",{"class":"line"});
  139. $("<input/>",{type : "radio", value : "3", name : "day"}).appendTo(daily2);
  140. $(daily2).append("周期 从");
  141. $("<input/>",{type : "text", id : "dayStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily2);
  142. $(daily2).append("-");
  143. $("<input/>",{type : "text", id : "dayEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily2);
  144. $(daily2).append("日");
  145. $(daily2).appendTo(dailyTab);
  146. var daily3 = $("<div/>",{"class":"line"});
  147. $("<input/>",{type : "radio", value : "4", name : "day"}).appendTo(daily3);
  148. $(daily3).append("从");
  149. $("<input/>",{type : "text", id : "dayStart_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily3);
  150. $(daily3).append("日开始,每");
  151. $("<input/>",{type : "text", id : "dayEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily3);
  152. $(daily3).append("天执行一次");
  153. $(daily3).appendTo(dailyTab);
  154. var daily6 = $("<div/>",{"class":"line"});
  155. $("<input/>",{type : "radio", value : "5", name : "day"}).appendTo(daily6);
  156. $(daily6).append("每月");
  157. $("<input/>",{type : "text", id : "dayStart_2", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily6);
  158. $(daily6).append("号最近的那个工作日");
  159. $(daily6).appendTo(dailyTab);
  160. var daily7 = $("<div/>",{"class":"line"});
  161. $("<input/>",{type : "radio", value : "6", name : "day"}).appendTo(daily7);
  162. $(daily7).append("本月最后一天");
  163. $(daily7).appendTo(dailyTab);
  164. var daily4 = $("<div/>",{"class":"line"});
  165. $("<input/>",{type : "radio", value : "7", name : "day", id: "day_appoint"}).appendTo(daily4);
  166. $(daily4).append("指定");
  167. $(daily4).appendTo(dailyTab);
  168. $(dailyTab).append('<div class="imp dayList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="5">05<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="6">06<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="9">09<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="10">10</div>');
  169. $(dailyTab).append('<div class="imp dayList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="11">11<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="12">12<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="13">13<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="14">14<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="15">15<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="16">16<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="17">17<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="18">18<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="19">19<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="20">20</div>');
  170. $(dailyTab).append('<div class="imp dayList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="21">21<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="22">22<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="23">23<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="24">24<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="25">25<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="26">26<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="27">27<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="28">28<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="29">29<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="30">30</div>');
  171. $(dailyTab).append('<div class="imp dayList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="31">31</div>');
  172. $("<input/>",{type : "hidden", id : "dayHidden"}).appendTo(dailyTab);
  173. $(dailyTab).appendTo(tabContent);
  174. //creating the monthlyTab
  175. var monthlyTab = $("<div/>", { "class": "tab-pane", id: "Monthly" });
  176. var monthly1 = $("<div/>",{"class":"line"});
  177. $("<input/>",{type : "radio", value : "1", name : "month"}).appendTo(monthly1);
  178. $(monthly1).append("每月 允许的通配符[, - * /]");
  179. $(monthly1).appendTo(monthlyTab);
  180. var monthly2 = $("<div/>",{"class":"line"});
  181. $("<input/>",{type : "radio", value : "2", name : "month"}).appendTo(monthly2);
  182. $(monthly2).append("不指定");
  183. $(monthly2).appendTo(monthlyTab);
  184. var monthly3 = $("<div/>",{"class":"line"});
  185. $("<input/>",{type : "radio", value : "3", name : "month"}).appendTo(monthly3);
  186. $(monthly3).append("周期 从");
  187. $("<input/>",{type : "text", id : "monthStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(monthly3);
  188. $(monthly3).append("-");
  189. $("<input/>",{type : "text", id : "monthEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(monthly3);
  190. $(monthly3).append("月");
  191. $(monthly3).appendTo(monthlyTab);
  192. var monthly4 = $("<div/>",{"class":"line"});
  193. $("<input/>",{type : "radio", value : "4", name : "month"}).appendTo(monthly4);
  194. $(monthly4).append("从");
  195. $("<input/>",{type : "text", id : "monthStart_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(monthly4);
  196. $(monthly4).append("日开始,每");
  197. $("<input/>",{type : "text", id : "monthEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(monthly4);
  198. $(monthly4).append("月执行一次");
  199. $(monthly4).appendTo(monthlyTab);
  200. var monthly5 = $("<div/>",{"class":"line"});
  201. $("<input/>",{type : "radio", value : "5", name : "month", id: "month_appoint"}).appendTo(monthly5);
  202. $(monthly5).append("指定");
  203. $(monthly5).appendTo(monthlyTab);
  204. $(monthlyTab).append('<div class="imp monthList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="5">05<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="6">06</div>');
  205. $(monthlyTab).append('<div class="imp monthList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="9">09<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="10">10<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="11">11<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="12">12</div>');
  206. $("<input/>",{type : "hidden", id : "monthHidden"}).appendTo(monthlyTab);
  207. $(monthlyTab).appendTo(tabContent);
  208. //creating the weeklyTab
  209. var weeklyTab = $("<div/>", { "class": "tab-pane", id: "Weekly" });
  210. var weekly1 = $("<div/>",{"class":"line"});
  211. $("<input/>",{type : "radio", value : "1", name : "week"}).appendTo(weekly1);
  212. $(weekly1).append("每周 允许的通配符[, - * / L #]");
  213. $(weekly1).appendTo(weeklyTab);
  214. var weekly2 = $("<div/>",{"class":"line"});
  215. $("<input/>",{type : "radio", value : "2", name : "week"}).appendTo(weekly2);
  216. $(weekly2).append("不指定");
  217. $(weekly2).appendTo(weeklyTab);
  218. var weekly3 = $("<div/>",{"class":"line"});
  219. $("<input/>",{type : "radio", value : "3", name : "week"}).appendTo(weekly3);
  220. $(weekly3).append("周期 从星期");
  221. $("<input/>",{type : "text", id : "weekStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly3);
  222. $(weekly3).append("-");
  223. $("<input/>",{type : "text", id : "weekEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly3);
  224. $(weekly3).appendTo(weeklyTab);
  225. var weekly4 = $("<div/>",{"class":"line"});
  226. $("<input/>",{type : "radio", value : "4", name : "week"}).appendTo(weekly4);
  227. $(weekly4).append("第");
  228. $("<input/>",{type : "text", id : "weekStart_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly4);
  229. $(weekly4).append("周的星期");
  230. $("<input/>",{type : "text", id : "weekEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly4);
  231. $(weekly4).appendTo(weeklyTab);
  232. var weekly5 = $("<div/>",{"class":"line"});
  233. $("<input/>",{type : "radio", value : "5", name : "week"}).appendTo(weekly5);
  234. $(weekly5).append("本月最后一个星期");
  235. $("<input/>",{type : "text", id : "weekStart_2", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly5);
  236. $(weekly5).appendTo(weeklyTab);
  237. var weekly6 = $("<div/>",{"class":"line"});
  238. $("<input/>",{type : "radio", value : "6", name : "week", id: "week_appoint"}).appendTo(weekly6);
  239. $(weekly6).append("指定");
  240. $(weekly6).appendTo(weeklyTab);
  241. $(weeklyTab).append('<div class="imp weekList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="1">1<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="2">2<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="3">3<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="4">4<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="5">5<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="6">6<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="7">7</div>');
  242. $("<input/>",{type : "hidden", id : "weekHidden"}).appendTo(weeklyTab);
  243. $(weeklyTab).appendTo(tabContent);
  244. //creating the yearlyTab
  245. var yearlyTab = $("<div/>", { "class": "tab-pane", id: "Yearly" });
  246. var yearly1 = $("<div/>",{"class":"line"});
  247. $("<input/>",{type : "radio", value : "1", name : "year"}).appendTo(yearly1);
  248. $(yearly1).append("不指定 允许的通配符[, - * /] 非必填");
  249. $(yearly1).appendTo(yearlyTab);
  250. var yearly3 = $("<div/>",{"class":"line"});
  251. $("<input/>",{type : "radio", value : "2", name : "year"}).appendTo(yearly3);
  252. $(yearly3).append("每年");
  253. $(yearly3).appendTo(yearlyTab);
  254. var yearly2 = $("<div/>",{"class":"line"});
  255. $("<input/>",{type : "radio", value : "3", name : "year"}).appendTo(yearly2);
  256. $(yearly2).append("周期从");
  257. $("<input/>",{type : "text", id : "yearStart_0", value : "2016", style:"width:45px; height:20px;"}).appendTo(yearly2);
  258. $(yearly2).append("-");
  259. $("<input/>",{type : "text", id : "yearEnd_0", value : "2017", style:"width:45px; height:20px;"}).appendTo(yearly2);
  260. $(yearly2).append("年");
  261. $(yearly2).appendTo(yearlyTab);
  262. $("<input/>",{type : "hidden", id : "yearHidden"}).appendTo(yearlyTab);
  263. $(yearlyTab).appendTo(tabContent);
  264. $(tabContent).appendTo(span12);
  265. //creating the button and results input
  266. // resultsName = $(this).prop("id");
  267. // $(this).prop("name", resultsName);
  268. $(span12).appendTo(row);
  269. $(row).appendTo(container);
  270. $(container).appendTo(mainDiv);
  271. $(cronContainer).append(mainDiv);
  272. var that = $(this);
  273. // Hide the original input
  274. that.hide();
  275. // Replace the input with an input group
  276. var $g = $("<div>").addClass("input-group");
  277. // Add an input
  278. var $i = $("<input>", { type: 'text', placeholder: 'cron表达式...'}).addClass("form-control").val($(that).val());
  279. $i.appendTo($g);
  280. // Add the button
  281. var $b = $("<button class=\"btn btn-default\"><i class=\"fa fa-edit\"></i></button>");
  282. // Put button inside span
  283. var $s = $("<span>").addClass("input-group-btn");
  284. $b.appendTo($s);
  285. $s.appendTo($g);
  286. $(this).before($g);
  287. inputElement = that;
  288. displayElement = $i;
  289. $b.popover({
  290. html: true,
  291. content: function () {
  292. return $(cronContainer).html();
  293. },
  294. template: '<div class="popover" style="max-width:500px !important; width:425px;left:-341.656px;"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>',
  295. placement: options.direction
  296. }).on('click', function (e) {
  297. e.preventDefault();
  298. //fillDataOfMinutesAndHoursSelectOptions();
  299. //fillDayWeekInMonth();
  300. //fillInWeekDays();
  301. //fillInMonths();
  302. $.fn.cronGen.tools.cronParse(inputElement.val());
  303. //绑定指定事件
  304. $.fn.cronGen.tools.initChangeEvent();
  305. $('#CronGenTabs a').click(function (e) {
  306. e.preventDefault();
  307. $(this).tab('show');
  308. //generate();
  309. });
  310. $("#CronGenMainDiv select,input").change(function (e) {
  311. generate();
  312. });
  313. $("#CronGenMainDiv input").focus(function (e) {
  314. generate();
  315. });
  316. //generate();
  317. });
  318. return;
  319. }
  320. });
  321. var fillInMonths = function () {
  322. var days = [
  323. { text: "一月", val: "1" },
  324. { text: "二月", val: "2" },
  325. { text: "三月", val: "3" },
  326. { text: "四月", val: "4" },
  327. { text: "五月", val: "5" },
  328. { text: "六月", val: "6" },
  329. { text: "七月", val: "7" },
  330. { text: "八月", val: "8" },
  331. { text: "九月", val: "9" },
  332. { text: "十月", val: "10" },
  333. { text: "十一月", val: "11" },
  334. { text: "十二月", val: "12" }
  335. ];
  336. $(".months").each(function () {
  337. fillOptions(this, days);
  338. });
  339. };
  340. var fillOptions = function (elements, options) {
  341. for (var i = 0; i < options.length; i++)
  342. $(elements).append("<option value='" + options[i].val + "'>" + options[i].text + "</option>");
  343. };
  344. var fillDataOfMinutesAndHoursSelectOptions = function () {
  345. for (var i = 0; i < 60; i++) {
  346. if (i < 24) {
  347. $(".hours").each(function () { $(this).append(timeSelectOption(i)); });
  348. }
  349. $(".minutes").each(function () { $(this).append(timeSelectOption(i)); });
  350. }
  351. };
  352. var fillInWeekDays = function () {
  353. var days = [
  354. { text: "周一", val: "2" },
  355. { text: "周二", val: "3" },
  356. { text: "周三", val: "4" },
  357. { text: "周四", val: "5" },
  358. { text: "周五", val: "6" },
  359. { text: "周六", val: "7" },
  360. { text: "周天", val: "1" }
  361. ];
  362. $(".week-days").each(function () {
  363. fillOptions(this, days);
  364. });
  365. };
  366. var fillDayWeekInMonth = function () {
  367. var days = [
  368. { text: "第一个", val: "1" },
  369. { text: "第二个", val: "2" },
  370. { text: "第三个", val: "3" },
  371. { text: "第四个", val: "4" }
  372. ];
  373. $(".day-order-in-month").each(function () {
  374. fillOptions(this, days);
  375. });
  376. };
  377. var displayTimeUnit = function (unit) {
  378. if (unit.toString().length == 1)
  379. return "0" + unit;
  380. return unit;
  381. };
  382. var timeSelectOption = function (i) {
  383. return "<option id='" + i + "'>" + displayTimeUnit(i) + "</option>";
  384. };
  385. var generate = function () {
  386. var activeTab = $("ul#CronGenTabs li.active a").prop("id");
  387. var results = "";
  388. switch (activeTab) {
  389. case "SecondlyTab":
  390. switch ($("input:radio[name=second]:checked").val()) {
  391. case "1":
  392. $.fn.cronGen.tools.everyTime("second");
  393. results = $.fn.cronGen.tools.cronResult();
  394. break;
  395. case "2":
  396. $.fn.cronGen.tools.cycle("second");
  397. results = $.fn.cronGen.tools.cronResult();
  398. break;
  399. case "3":
  400. $.fn.cronGen.tools.startOn("second");
  401. results = $.fn.cronGen.tools.cronResult();
  402. break;
  403. case "4":
  404. $.fn.cronGen.tools.initCheckBox("second");
  405. results = $.fn.cronGen.tools.cronResult();
  406. break;
  407. }
  408. break;
  409. case "MinutesTab":
  410. switch ($("input:radio[name=min]:checked").val()) {
  411. case "1":
  412. $.fn.cronGen.tools.everyTime("min");
  413. results = $.fn.cronGen.tools.cronResult();
  414. break;
  415. case "2":
  416. $.fn.cronGen.tools.cycle("min");
  417. results = $.fn.cronGen.tools.cronResult();
  418. break;
  419. case "3":
  420. $.fn.cronGen.tools.startOn("min");
  421. results = $.fn.cronGen.tools.cronResult();
  422. break;
  423. case "4":
  424. $.fn.cronGen.tools.initCheckBox("min");
  425. results = $.fn.cronGen.tools.cronResult();
  426. break;
  427. }
  428. break;
  429. case "HourlyTab":
  430. switch ($("input:radio[name=hour]:checked").val()) {
  431. case "1":
  432. $.fn.cronGen.tools.everyTime("hour");
  433. results = $.fn.cronGen.tools.cronResult();
  434. break;
  435. case "2":
  436. $.fn.cronGen.tools.cycle("hour");
  437. results = $.fn.cronGen.tools.cronResult();
  438. break;
  439. case "3":
  440. $.fn.cronGen.tools.startOn("hour");
  441. results = $.fn.cronGen.tools.cronResult();
  442. break;
  443. case "4":
  444. $.fn.cronGen.tools.initCheckBox("hour");
  445. results = $.fn.cronGen.tools.cronResult();
  446. break;
  447. }
  448. break;
  449. case "DailyTab":
  450. switch ($("input:radio[name=day]:checked").val()) {
  451. case "1":
  452. $.fn.cronGen.tools.everyTime("day");
  453. results = $.fn.cronGen.tools.cronResult();
  454. break;
  455. case "2":
  456. $.fn.cronGen.tools.unAppoint("day");
  457. results = $.fn.cronGen.tools.cronResult();
  458. break;
  459. case "3":
  460. $.fn.cronGen.tools.cycle("day");
  461. results = $.fn.cronGen.tools.cronResult();
  462. break;
  463. case "4":
  464. $.fn.cronGen.tools.startOn("day");
  465. results = $.fn.cronGen.tools.cronResult();
  466. break;
  467. case "5":
  468. $.fn.cronGen.tools.workDay("day");
  469. results = $.fn.cronGen.tools.cronResult();
  470. break;
  471. case "6":
  472. $.fn.cronGen.tools.lastDay("day");
  473. results = $.fn.cronGen.tools.cronResult();
  474. break;
  475. case "7":
  476. $.fn.cronGen.tools.initCheckBox("day");
  477. results = $.fn.cronGen.tools.cronResult();
  478. break;
  479. }
  480. break;
  481. case "WeeklyTab":
  482. switch ($("input:radio[name=week]:checked").val()) {
  483. case "1":
  484. $.fn.cronGen.tools.everyTime("week");
  485. results = $.fn.cronGen.tools.cronResult();
  486. break;
  487. case "2":
  488. $.fn.cronGen.tools.unAppoint("week");
  489. results = $.fn.cronGen.tools.cronResult();
  490. break;
  491. case "3":
  492. $.fn.cronGen.tools.cycle("week");
  493. results = $.fn.cronGen.tools.cronResult();
  494. break;
  495. case "4":
  496. $.fn.cronGen.tools.startOn("week");
  497. results = $.fn.cronGen.tools.cronResult();
  498. break;
  499. case "5":
  500. $.fn.cronGen.tools.lastWeek("week");
  501. results = $.fn.cronGen.tools.cronResult();
  502. break;
  503. case "6":
  504. $.fn.cronGen.tools.initCheckBox("week");
  505. results = $.fn.cronGen.tools.cronResult();
  506. break;
  507. }
  508. break;
  509. case "MonthlyTab":
  510. switch ($("input:radio[name=month]:checked").val()) {
  511. case "1":
  512. $.fn.cronGen.tools.everyTime("month");
  513. results = $.fn.cronGen.tools.cronResult();
  514. break;
  515. case "2":
  516. $.fn.cronGen.tools.unAppoint("month");
  517. results = $.fn.cronGen.tools.cronResult();
  518. break;
  519. case "3":
  520. $.fn.cronGen.tools.cycle("month");
  521. results = $.fn.cronGen.tools.cronResult();
  522. break;
  523. case "4":
  524. $.fn.cronGen.tools.startOn("month");
  525. results = $.fn.cronGen.tools.cronResult();
  526. break;
  527. case "5":
  528. $.fn.cronGen.tools.initCheckBox("month");
  529. results = $.fn.cronGen.tools.cronResult();
  530. break;
  531. }
  532. break;
  533. case "YearlyTab":
  534. switch ($("input:radio[name=year]:checked").val()) {
  535. case "1":
  536. $.fn.cronGen.tools.unAppoint("year");
  537. results = $.fn.cronGen.tools.cronResult();
  538. break;
  539. case "2":
  540. $.fn.cronGen.tools.everyTime("year");
  541. results = $.fn.cronGen.tools.cronResult();
  542. break;
  543. case "3":
  544. $.fn.cronGen.tools.cycle("year");
  545. results = $.fn.cronGen.tools.cronResult();
  546. break;
  547. }
  548. break;
  549. }
  550. // Update original control
  551. inputElement.val(results);
  552. // Update display
  553. displayElement.val(results);
  554. };
  555. })(jQuery);
  556. (function($) {
  557. $.fn.cronGen.defaultOptions = {
  558. direction : 'bottom'
  559. };
  560. $.fn.cronGen.tools = {
  561. /**
  562. * 每周期
  563. */
  564. everyTime : function(dom){
  565. $("#"+dom+"Hidden").val("*");
  566. $.fn.cronGen.tools.clearCheckbox(dom);
  567. },
  568. /**
  569. * 不指定
  570. */
  571. unAppoint : function(dom){
  572. var val = "?";
  573. if (dom == "year")
  574. {
  575. val = "";
  576. }
  577. $("#"+dom+"Hidden").val(val);
  578. $.fn.cronGen.tools.clearCheckbox(dom);
  579. },
  580. /**
  581. * 周期
  582. */
  583. cycle : function(dom){
  584. var start = $("#"+dom+"Start_0").val();
  585. var end = $("#"+dom+"End_0").val();
  586. $("#"+dom+"Hidden").val(start + "-" + end);
  587. $.fn.cronGen.tools.clearCheckbox(dom);
  588. },
  589. /**
  590. * 从开始
  591. */
  592. startOn : function(dom) {
  593. var start = $("#"+dom+"Start_1").val();
  594. var end = $("#"+dom+"End_1").val();
  595. $("#"+dom+"Hidden").val(start + "/" + end);
  596. $.fn.cronGen.tools.clearCheckbox(dom);
  597. },
  598. /**
  599. * 最后一天
  600. */
  601. lastDay : function(dom){
  602. $("#"+dom+"Hidden").val("L");
  603. $.fn.cronGen.tools.clearCheckbox(dom);
  604. },
  605. /**
  606. * 每周的某一天
  607. */
  608. weekOfDay : function(dom){
  609. var start = $("#"+dom+"Start_0").val();
  610. var end = $("#"+dom+"End_0").val();
  611. $("#"+dom+"Hidden").val(start + "#" + end);
  612. $.fn.cronGen.tools.clearCheckbox(dom);
  613. },
  614. /**
  615. * 最后一周
  616. */
  617. lastWeek : function(dom){
  618. var start = $("#"+dom+"Start_2").val();
  619. $("#"+dom+"Hidden").val(start+"L");
  620. $.fn.cronGen.tools.clearCheckbox(dom);
  621. },
  622. /**
  623. * 工作日
  624. */
  625. workDay : function(dom) {
  626. var start = $("#"+dom+"Start_2").val();
  627. $("#"+dom+"Hidden").val(start + "W");
  628. $.fn.cronGen.tools.clearCheckbox(dom);
  629. },
  630. initChangeEvent : function(){
  631. var secondList = $(".secondList").children();
  632. $("#sencond_appoint").click(function(){
  633. if (this.checked) {
  634. if ($(secondList).filter(":checked").length == 0) {
  635. $(secondList.eq(0)).attr("checked", true);
  636. }
  637. secondList.eq(0).change();
  638. }
  639. });
  640. secondList.change(function() {
  641. var sencond_appoint = $("#sencond_appoint").prop("checked");
  642. if (sencond_appoint) {
  643. var vals = [];
  644. secondList.each(function() {
  645. if (this.checked) {
  646. vals.push(this.value);
  647. }
  648. });
  649. var val = "?";
  650. if (vals.length > 0 && vals.length < 59) {
  651. val = vals.join(",");
  652. }else if(vals.length == 59){
  653. val = "*";
  654. }
  655. $("#secondHidden").val(val);
  656. }
  657. });
  658. var minList = $(".minList").children();
  659. $("#min_appoint").click(function(){
  660. if (this.checked) {
  661. if ($(minList).filter(":checked").length == 0) {
  662. $(minList.eq(0)).attr("checked", true);
  663. }
  664. minList.eq(0).change();
  665. }
  666. });
  667. minList.change(function() {
  668. var min_appoint = $("#min_appoint").prop("checked");
  669. if (min_appoint) {
  670. var vals = [];
  671. minList.each(function() {
  672. if (this.checked) {
  673. vals.push(this.value);
  674. }
  675. });
  676. var val = "?";
  677. if (vals.length > 0 && vals.length < 59) {
  678. val = vals.join(",");
  679. }else if(vals.length == 59){
  680. val = "*";
  681. }
  682. $("#minHidden").val(val);
  683. }
  684. });
  685. var hourList = $(".hourList").children();
  686. $("#hour_appoint").click(function(){
  687. if (this.checked) {
  688. if ($(hourList).filter(":checked").length == 0) {
  689. $(hourList.eq(0)).attr("checked", true);
  690. }
  691. hourList.eq(0).change();
  692. }
  693. });
  694. hourList.change(function() {
  695. var hour_appoint = $("#hour_appoint").prop("checked");
  696. if (hour_appoint) {
  697. var vals = [];
  698. hourList.each(function() {
  699. if (this.checked) {
  700. vals.push(this.value);
  701. }
  702. });
  703. var val = "?";
  704. if (vals.length > 0 && vals.length < 24) {
  705. val = vals.join(",");
  706. }else if(vals.length == 24){
  707. val = "*";
  708. }
  709. $("#hourHidden").val(val);
  710. }
  711. });
  712. var dayList = $(".dayList").children();
  713. $("#day_appoint").click(function(){
  714. if (this.checked) {
  715. if ($(dayList).filter(":checked").length == 0) {
  716. $(dayList.eq(0)).attr("checked", true);
  717. }
  718. dayList.eq(0).change();
  719. }
  720. });
  721. dayList.change(function() {
  722. var day_appoint = $("#day_appoint").prop("checked");
  723. if (day_appoint) {
  724. var vals = [];
  725. dayList.each(function() {
  726. if (this.checked) {
  727. vals.push(this.value);
  728. }
  729. });
  730. var val = "?";
  731. if (vals.length > 0 && vals.length < 31) {
  732. val = vals.join(",");
  733. }else if(vals.length == 31){
  734. val = "*";
  735. }
  736. $("#dayHidden").val(val);
  737. }
  738. });
  739. var monthList = $(".monthList").children();
  740. $("#month_appoint").click(function(){
  741. if (this.checked) {
  742. if ($(monthList).filter(":checked").length == 0) {
  743. $(monthList.eq(0)).attr("checked", true);
  744. }
  745. monthList.eq(0).change();
  746. }
  747. });
  748. monthList.change(function() {
  749. var month_appoint = $("#month_appoint").prop("checked");
  750. if (month_appoint) {
  751. var vals = [];
  752. monthList.each(function() {
  753. if (this.checked) {
  754. vals.push(this.value);
  755. }
  756. });
  757. var val = "?";
  758. if (vals.length > 0 && vals.length < 12) {
  759. val = vals.join(",");
  760. }else if(vals.length == 12){
  761. val = "*";
  762. }
  763. $("#monthHidden").val(val);
  764. }
  765. });
  766. var weekList = $(".weekList").children();
  767. $("#week_appoint").click(function(){
  768. if (this.checked) {
  769. if ($(weekList).filter(":checked").length == 0) {
  770. $(weekList.eq(0)).attr("checked", true);
  771. }
  772. weekList.eq(0).change();
  773. }
  774. });
  775. weekList.change(function() {
  776. var week_appoint = $("#week_appoint").prop("checked");
  777. if (week_appoint) {
  778. var vals = [];
  779. weekList.each(function() {
  780. if (this.checked) {
  781. vals.push(this.value);
  782. }
  783. });
  784. var val = "?";
  785. if (vals.length > 0 && vals.length < 7) {
  786. val = vals.join(",");
  787. }else if(vals.length == 7){
  788. val = "*";
  789. }
  790. $("#weekHidden").val(val);
  791. }
  792. });
  793. },
  794. initObj : function(strVal, strid){
  795. var ary = null;
  796. var objRadio = $("input[name='" + strid + "'");
  797. if (strVal == "*") {
  798. objRadio.eq(0).attr("checked", "checked");
  799. } else if (strVal.split('-').length > 1) {
  800. ary = strVal.split('-');
  801. objRadio.eq(1).attr("checked", "checked");
  802. $("#" + strid + "Start_0").val(ary[0]);
  803. $("#" + strid + "End_0").val(ary[1]);
  804. } else if (strVal.split('/').length > 1) {
  805. ary = strVal.split('/');
  806. objRadio.eq(2).attr("checked", "checked");
  807. $("#" + strid + "Start_1").val(ary[0]);
  808. $("#" + strid + "End_1").val(ary[1]);
  809. } else {
  810. objRadio.eq(3).attr("checked", "checked");
  811. if (strVal != "?") {
  812. ary = strVal.split(",");
  813. for (var i = 0; i < ary.length; i++) {
  814. $("." + strid + "List input[value='" + ary[i] + "']").attr("checked", "checked");
  815. }
  816. $.fn.cronGen.tools.initCheckBox(strid);
  817. }
  818. }
  819. },
  820. initDay : function(strVal) {
  821. var ary = null;
  822. var objRadio = $("input[name='day'");
  823. if (strVal == "*") {
  824. objRadio.eq(0).attr("checked", "checked");
  825. } else if (strVal == "?") {
  826. objRadio.eq(1).attr("checked", "checked");
  827. } else if (strVal.split('-').length > 1) {
  828. ary = strVal.split('-');
  829. objRadio.eq(2).attr("checked", "checked");
  830. $("#dayStart_0").val(ary[0]);
  831. $("#dayEnd_0").val(ary[1]);
  832. } else if (strVal.split('/').length > 1) {
  833. ary = strVal.split('/');
  834. objRadio.eq(3).attr("checked", "checked");
  835. $("#dayStart_1").val(ary[0]);
  836. $("#dayEnd_1").val(ary[1]);
  837. } else if (strVal.split('W').length > 1) {
  838. ary = strVal.split('W');
  839. objRadio.eq(4).attr("checked", "checked");
  840. $("#dayStart_2").val(ary[0]);
  841. } else if (strVal == "L") {
  842. objRadio.eq(5).attr("checked", "checked");
  843. } else {
  844. objRadio.eq(6).attr("checked", "checked");
  845. ary = strVal.split(",");
  846. for (var i = 0; i < ary.length; i++) {
  847. $(".dayList input[value='" + ary[i] + "']").attr("checked", "checked");
  848. }
  849. $.fn.cronGen.tools.initCheckBox("day");
  850. }
  851. },
  852. initMonth : function(strVal) {
  853. var ary = null;
  854. var objRadio = $("input[name='month'");
  855. if (strVal == "*") {
  856. objRadio.eq(0).attr("checked", "checked");
  857. } else if (strVal == "?") {
  858. objRadio.eq(1).attr("checked", "checked");
  859. } else if (strVal.split('-').length > 1) {
  860. ary = strVal.split('-');
  861. objRadio.eq(2).attr("checked", "checked");
  862. $("#monthStart_0").val(ary[0]);
  863. $("#monthEnd_0").val(ary[1]);
  864. } else if (strVal.split('/').length > 1) {
  865. ary = strVal.split('/');
  866. objRadio.eq(3).attr("checked", "checked");
  867. $("#monthStart_1").val(ary[0]);
  868. $("#monthEnd_1").val(ary[1]);
  869. } else {
  870. objRadio.eq(4).attr("checked", "checked");
  871. ary = strVal.split(",");
  872. for (var i = 0; i < ary.length; i++) {
  873. $(".monthList input[value='" + ary[i] + "']").attr("checked", "checked");
  874. }
  875. $.fn.cronGen.tools.initCheckBox("month");
  876. }
  877. },
  878. initWeek : function(strVal) {
  879. var ary = null;
  880. var objRadio = $("input[name='week'");
  881. if (strVal == "*") {
  882. objRadio.eq(0).attr("checked", "checked");
  883. } else if (strVal == "?") {
  884. objRadio.eq(1).attr("checked", "checked");
  885. } else if (strVal.split('/').length > 1) {
  886. ary = strVal.split('/');
  887. objRadio.eq(2).attr("checked", "checked");
  888. $("#weekStart_0").val(ary[0]);
  889. $("#weekEnd_0").val(ary[1]);
  890. } else if (strVal.split('-').length > 1) {
  891. ary = strVal.split('-');
  892. objRadio.eq(3).attr("checked", "checked");
  893. $("#weekStart_1").val(ary[0]);
  894. $("#weekEnd_1").val(ary[1]);
  895. } else if (strVal.split('L').length > 1) {
  896. ary = strVal.split('L');
  897. objRadio.eq(4).attr("checked", "checked");
  898. $("#weekStart_2").val(ary[0]);
  899. } else {
  900. objRadio.eq(5).attr("checked", "checked");
  901. ary = strVal.split(",");
  902. for (var i = 0; i < ary.length; i++) {
  903. $(".weekList input[value='" + ary[i] + "']").attr("checked", "checked");
  904. }
  905. $.fn.cronGen.tools.initCheckBox("week");
  906. }
  907. },
  908. initYear : function(strVal) {
  909. var ary = null;
  910. var objRadio = $("input[name='year'");
  911. if (strVal == "*") {
  912. objRadio.eq(1).attr("checked", "checked");
  913. } else if (strVal.split('-').length > 1) {
  914. ary = strVal.split('-');
  915. objRadio.eq(2).attr("checked", "checked");
  916. $("#yearStart_0").val(ary[0]);
  917. $("#yearEnd_0").val(ary[1]);
  918. }
  919. },
  920. cronParse : function(cronExpress) {
  921. //获取参数中表达式的值
  922. if (cronExpress) {
  923. var regs = cronExpress.split(' ');
  924. $("input[name=secondHidden]").val(regs[0]);
  925. $("input[name=minHidden]").val(regs[1]);
  926. $("input[name=hourHidden]").val(regs[2]);
  927. $("input[name=dayHidden]").val(regs[3]);
  928. $("input[name=monthHidden]").val(regs[4]);
  929. $("input[name=weekHidden]").val(regs[5]);
  930. $.fn.cronGen.tools.initObj(regs[0], "second");
  931. $.fn.cronGen.tools.initObj(regs[1], "min");
  932. $.fn.cronGen.tools.initObj(regs[2], "hour");
  933. $.fn.cronGen.tools.initDay(regs[3]);
  934. $.fn.cronGen.tools.initMonth(regs[4]);
  935. $.fn.cronGen.tools.initWeek(regs[5]);
  936. if (regs.length > 6) {
  937. $("input[name=yearHidden]").val(regs[6]);
  938. $.fn.cronGen.tools.initYear(regs[6]);
  939. }
  940. }
  941. },
  942. cronResult : function() {
  943. var result;
  944. var second = $("#secondHidden").val();
  945. second = second== "" ? "*":second;
  946. var minute = $("#minHidden").val();
  947. minute = minute== "" ? "*":minute;
  948. var hour = $("#hourHidden").val();
  949. hour = hour== "" ? "*":hour;
  950. var day = $("#dayHidden").val();
  951. day = day== "" ? "*":day;
  952. var month = $("#monthHidden").val();
  953. month = month== "" ? "*":month;
  954. var week = $("#weekHidden").val();
  955. week = week== "" ? "?":week;
  956. var year = $("#yearHidden").val();
  957. if(year!="")
  958. {
  959. result = second+" "+minute+" "+hour+" "+day+" "+month+" "+week+" "+year;
  960. }else
  961. {
  962. result = second+" "+minute+" "+hour+" "+day+" "+month+" "+week;
  963. }
  964. return result;
  965. },
  966. clearCheckbox : function(dom){
  967. //清除选中的checkbox
  968. var list = $("."+dom+"List").children().filter(":checked");
  969. if ($(list).length > 0) {
  970. $.each(list, function(index){
  971. $(this).attr("checked", false);
  972. $(this).attr("disabled", "disabled");
  973. $(this).change();
  974. });
  975. }
  976. },
  977. initCheckBox : function(dom) {
  978. //移除checkbox禁用
  979. var list = $("."+dom+"List").children();
  980. if ($(list).length > 0) {
  981. $.each(list, function(index){
  982. $(this).removeAttr("disabled");
  983. });
  984. }
  985. }
  986. };
  987. })(jQuery);