cronGen.js 64 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109
  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:420px;" });
  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).append("天");
  225. $(weekly3).appendTo(weeklyTab);
  226. var weekly4 = $("<div/>",{"class":"line"});
  227. $("<input/>",{type : "radio", value : "4", name : "week"}).appendTo(weekly4);
  228. $(weekly4).append("从第");
  229. $("<input/>",{type : "text", id : "weekStart_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly4);
  230. $(weekly4).append("天开始,间隔");
  231. $("<input/>",{type : "text", id : "weekEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly4);
  232. $(weekly4).append("天执行一次");
  233. $(weekly4).appendTo(weeklyTab);
  234. var weekly5 = $("<div/>",{"class":"line"});
  235. $("<input/>",{type : "radio", value : "5", name : "week"}).appendTo(weekly5);
  236. $(weekly5).append("本月最后一周的第");
  237. $("<input/>",{type : "text", id : "weekStart_2", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly5);
  238. $(weekly5).append("天");
  239. $(weekly5).appendTo(weeklyTab);
  240. var weekly6 = $("<div/>",{"class":"line"});
  241. $("<input/>",{type : "radio", value : "6", name : "week", id: "week_appoint"}).appendTo(weekly6);
  242. $(weekly6).append("指定");
  243. $(weekly6).appendTo(weeklyTab);
  244. $(weeklyTab).append('<div class="imp weekList"><input type="checkbox" disabled="disabled" style="margin-left: 5px" value="1">周日<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="2">周一<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="3">周二<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="4">周三<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="5">周四<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="6">周五<input type="checkbox" disabled="disabled" style="margin-left: 5px" value="7">周六</div>');
  245. $("<input/>",{type : "hidden", id : "weekHidden"}).appendTo(weeklyTab);
  246. $(weeklyTab).appendTo(tabContent);
  247. //creating the yearlyTab
  248. var yearlyTab = $("<div/>", { "class": "tab-pane", id: "Yearly" });
  249. var yearly1 = $("<div/>",{"class":"line"});
  250. $("<input/>",{type : "radio", value : "1", name : "year"}).appendTo(yearly1);
  251. $(yearly1).append("不指定 允许的通配符[, - * /] 非必填");
  252. $(yearly1).appendTo(yearlyTab);
  253. var yearly3 = $("<div/>",{"class":"line"});
  254. $("<input/>",{type : "radio", value : "2", name : "year"}).appendTo(yearly3);
  255. $(yearly3).append("每年");
  256. $(yearly3).appendTo(yearlyTab);
  257. var yearly2 = $("<div/>",{"class":"line"});
  258. $("<input/>",{type : "radio", value : "3", name : "year"}).appendTo(yearly2);
  259. $(yearly2).append("周期从");
  260. $("<input/>",{type : "text", id : "yearStart_0", value : "2016", style:"width:45px; height:20px;"}).appendTo(yearly2);
  261. $(yearly2).append("-");
  262. $("<input/>",{type : "text", id : "yearEnd_0", value : "2017", style:"width:45px; height:20px;"}).appendTo(yearly2);
  263. $(yearly2).append("年");
  264. $(yearly2).appendTo(yearlyTab);
  265. $("<input/>",{type : "hidden", id : "yearHidden"}).appendTo(yearlyTab);
  266. $(yearlyTab).appendTo(tabContent);
  267. $(tabContent).appendTo(span12);
  268. //creating the button and results input
  269. // resultsName = $(this).prop("id");
  270. // $(this).prop("name", resultsName);
  271. var runTime = '<br style="padding-top: 10px"><label>最近运行时间: </label></br><textarea id="runTime" rows="6" style="width: 90%;resize: none;background: none;border: none;outline: none;" readonly = readonly></textarea></div>';
  272. $(span12).appendTo(row);
  273. $(row).appendTo(container);
  274. $(container).appendTo(mainDiv);
  275. $(runTime).appendTo(mainDiv);
  276. $(cronContainer).append(mainDiv);
  277. var that = $(this);
  278. // Hide the original input
  279. that.hide();
  280. // Replace the input with an input group
  281. var $g = $("<div>").addClass("input-group");
  282. // Add an input
  283. var $i = $("<input>", { type: 'text', placeholder: 'cron表达式...', name: 'cronGen_display' }).addClass("form-control").val($(that).val());
  284. $i.appendTo($g);
  285. // Add the button
  286. var $b = $("<button class=\"btn btn-default\"><i class=\"fa fa-edit\"></i></button>");
  287. // Put button inside span
  288. var $s = $("<span>").addClass("input-group-btn");
  289. $b.appendTo($s);
  290. $s.appendTo($g);
  291. $(this).before($g);
  292. inputElement = that;
  293. displayElement = $i;
  294. $b.popover({
  295. html: true,
  296. content: function () {
  297. return $(cronContainer).html();
  298. },
  299. 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>',
  300. sanitize:false,
  301. placement: options.direction
  302. }).on('click', function (e) {
  303. if (inputElement.val().trim() !== '') {
  304. refreshRunTime();
  305. }
  306. e.preventDefault();
  307. //fillDataOfMinutesAndHoursSelectOptions();
  308. //fillDayWeekInMonth();
  309. //fillInWeekDays();
  310. //fillInMonths();
  311. $.fn.cronGen.tools.cronParse(inputElement.val());
  312. //绑定指定事件
  313. $.fn.cronGen.tools.initChangeEvent();
  314. $('#CronGenTabs a').click(function (e) {
  315. e.preventDefault();
  316. $(this).tab('show');
  317. //generate();
  318. });
  319. $("#CronGenMainDiv select,input").change(function (e) {
  320. generate();
  321. refreshRunTime();
  322. });
  323. $("#CronGenMainDiv input").focus(function (e) {
  324. generate();
  325. });
  326. //generate();
  327. });
  328. return;
  329. }
  330. });
  331. var fillInMonths = function () {
  332. var days = [
  333. { text: "一月", val: "1" },
  334. { text: "二月", val: "2" },
  335. { text: "三月", val: "3" },
  336. { text: "四月", val: "4" },
  337. { text: "五月", val: "5" },
  338. { text: "六月", val: "6" },
  339. { text: "七月", val: "7" },
  340. { text: "八月", val: "8" },
  341. { text: "九月", val: "9" },
  342. { text: "十月", val: "10" },
  343. { text: "十一月", val: "11" },
  344. { text: "十二月", val: "12" }
  345. ];
  346. $(".months").each(function () {
  347. fillOptions(this, days);
  348. });
  349. };
  350. var fillOptions = function (elements, options) {
  351. for (var i = 0; i < options.length; i++)
  352. $(elements).append("<option value='" + options[i].val + "'>" + options[i].text + "</option>");
  353. };
  354. var fillDataOfMinutesAndHoursSelectOptions = function () {
  355. for (var i = 0; i < 60; i++) {
  356. if (i < 24) {
  357. $(".hours").each(function () { $(this).append(timeSelectOption(i)); });
  358. }
  359. $(".minutes").each(function () { $(this).append(timeSelectOption(i)); });
  360. }
  361. };
  362. var fillInWeekDays = function () {
  363. var days = [
  364. { text: "周一", val: "2" },
  365. { text: "周二", val: "3" },
  366. { text: "周三", val: "4" },
  367. { text: "周四", val: "5" },
  368. { text: "周五", val: "6" },
  369. { text: "周六", val: "7" },
  370. { text: "周天", val: "1" }
  371. ];
  372. $(".week-days").each(function () {
  373. fillOptions(this, days);
  374. });
  375. };
  376. var fillDayWeekInMonth = function () {
  377. var days = [
  378. { text: "第一个", val: "1" },
  379. { text: "第二个", val: "2" },
  380. { text: "第三个", val: "3" },
  381. { text: "第四个", val: "4" }
  382. ];
  383. $(".day-order-in-month").each(function () {
  384. fillOptions(this, days);
  385. });
  386. };
  387. var displayTimeUnit = function (unit) {
  388. if (unit.toString().length == 1)
  389. return "0" + unit;
  390. return unit;
  391. };
  392. var timeSelectOption = function (i) {
  393. return "<option id='" + i + "'>" + displayTimeUnit(i) + "</option>";
  394. };
  395. var generate = function () {
  396. var activeTab = $("ul#CronGenTabs li.active a").prop("id");
  397. if (activeTab == undefined) {
  398. return;
  399. }
  400. var results = "";
  401. switch (activeTab) {
  402. case "SecondlyTab":
  403. switch ($("input:radio[name=second]:checked").val()) {
  404. case "1":
  405. $.fn.cronGen.tools.everyTime("second");
  406. results = $.fn.cronGen.tools.cronResult();
  407. break;
  408. case "2":
  409. $.fn.cronGen.tools.cycle("second");
  410. results = $.fn.cronGen.tools.cronResult();
  411. break;
  412. case "3":
  413. $.fn.cronGen.tools.startOn("second");
  414. results = $.fn.cronGen.tools.cronResult();
  415. break;
  416. case "4":
  417. $.fn.cronGen.tools.initCheckBox("second");
  418. results = $.fn.cronGen.tools.cronResult();
  419. break;
  420. }
  421. break;
  422. case "MinutesTab":
  423. switch ($("input:radio[name=min]:checked").val()) {
  424. case "1":
  425. $.fn.cronGen.tools.everyTime("min");
  426. results = $.fn.cronGen.tools.cronResult();
  427. break;
  428. case "2":
  429. $.fn.cronGen.tools.cycle("min");
  430. results = $.fn.cronGen.tools.cronResult();
  431. break;
  432. case "3":
  433. $.fn.cronGen.tools.startOn("min");
  434. results = $.fn.cronGen.tools.cronResult();
  435. break;
  436. case "4":
  437. $.fn.cronGen.tools.initCheckBox("min");
  438. results = $.fn.cronGen.tools.cronResult();
  439. break;
  440. }
  441. break;
  442. case "HourlyTab":
  443. switch ($("input:radio[name=hour]:checked").val()) {
  444. case "1":
  445. $.fn.cronGen.tools.everyTime("hour");
  446. results = $.fn.cronGen.tools.cronResult();
  447. break;
  448. case "2":
  449. $.fn.cronGen.tools.cycle("hour");
  450. results = $.fn.cronGen.tools.cronResult();
  451. break;
  452. case "3":
  453. $.fn.cronGen.tools.startOn("hour");
  454. results = $.fn.cronGen.tools.cronResult();
  455. break;
  456. case "4":
  457. $.fn.cronGen.tools.initCheckBox("hour");
  458. results = $.fn.cronGen.tools.cronResult();
  459. break;
  460. }
  461. break;
  462. case "DailyTab":
  463. switch ($("input:radio[name=day]:checked").val()) {
  464. case "1":
  465. $.fn.cronGen.tools.everyTime("day");
  466. results = $.fn.cronGen.tools.cronResult();
  467. break;
  468. case "2":
  469. $.fn.cronGen.tools.unAppoint("day");
  470. results = $.fn.cronGen.tools.cronResult();
  471. break;
  472. case "3":
  473. $.fn.cronGen.tools.cycle("day");
  474. results = $.fn.cronGen.tools.cronResult();
  475. break;
  476. case "4":
  477. $.fn.cronGen.tools.startOn("day");
  478. results = $.fn.cronGen.tools.cronResult();
  479. break;
  480. case "5":
  481. $.fn.cronGen.tools.workDay("day");
  482. results = $.fn.cronGen.tools.cronResult();
  483. break;
  484. case "6":
  485. $.fn.cronGen.tools.lastDay("day");
  486. results = $.fn.cronGen.tools.cronResult();
  487. break;
  488. case "7":
  489. $.fn.cronGen.tools.initCheckBox("day");
  490. results = $.fn.cronGen.tools.cronResult();
  491. break;
  492. }
  493. break;
  494. case "WeeklyTab":
  495. switch ($("input:radio[name=week]:checked").val()) {
  496. case "1":
  497. $.fn.cronGen.tools.everyTime("week");
  498. results = $.fn.cronGen.tools.cronResult();
  499. break;
  500. case "2":
  501. $.fn.cronGen.tools.unAppoint("week");
  502. results = $.fn.cronGen.tools.cronResult();
  503. break;
  504. case "3":
  505. $.fn.cronGen.tools.cycle("week");
  506. results = $.fn.cronGen.tools.cronResult();
  507. break;
  508. case "4":
  509. $.fn.cronGen.tools.startOn("week");
  510. results = $.fn.cronGen.tools.cronResult();
  511. break;
  512. case "5":
  513. $.fn.cronGen.tools.lastWeek("week");
  514. results = $.fn.cronGen.tools.cronResult();
  515. break;
  516. case "6":
  517. $.fn.cronGen.tools.initCheckBox("week");
  518. results = $.fn.cronGen.tools.cronResult();
  519. break;
  520. }
  521. break;
  522. case "MonthlyTab":
  523. switch ($("input:radio[name=month]:checked").val()) {
  524. case "1":
  525. $.fn.cronGen.tools.everyTime("month");
  526. results = $.fn.cronGen.tools.cronResult();
  527. break;
  528. case "2":
  529. $.fn.cronGen.tools.unAppoint("month");
  530. results = $.fn.cronGen.tools.cronResult();
  531. break;
  532. case "3":
  533. $.fn.cronGen.tools.cycle("month");
  534. results = $.fn.cronGen.tools.cronResult();
  535. break;
  536. case "4":
  537. $.fn.cronGen.tools.startOn("month");
  538. results = $.fn.cronGen.tools.cronResult();
  539. break;
  540. case "5":
  541. $.fn.cronGen.tools.initCheckBox("month");
  542. results = $.fn.cronGen.tools.cronResult();
  543. break;
  544. }
  545. break;
  546. case "YearlyTab":
  547. switch ($("input:radio[name=year]:checked").val()) {
  548. case "1":
  549. $.fn.cronGen.tools.unAppoint("year");
  550. results = $.fn.cronGen.tools.cronResult();
  551. break;
  552. case "2":
  553. $.fn.cronGen.tools.everyTime("year");
  554. results = $.fn.cronGen.tools.cronResult();
  555. break;
  556. case "3":
  557. $.fn.cronGen.tools.cycle("year");
  558. results = $.fn.cronGen.tools.cronResult();
  559. break;
  560. }
  561. break;
  562. }
  563. // Update original control
  564. inputElement.val(results);
  565. // Update display
  566. displayElement.val(results);
  567. };
  568. var refreshRunTime = function () {
  569. $.ajax({
  570. type : 'GET',
  571. url : base_url + "/jobinfo/nextTriggerTime",
  572. data : {
  573. "scheduleType" : 'CRON',
  574. "scheduleConf" : inputElement.val()
  575. },
  576. dataType : "json",
  577. success : function(data){
  578. if (data.code === 200) {
  579. $('#runTime').val(data.content.join("\n"));
  580. } else {
  581. $('#runTime').val(data.msg);
  582. }
  583. }
  584. });
  585. };
  586. })(jQuery);
  587. (function($) {
  588. $.fn.cronGen.defaultOptions = {
  589. direction : 'bottom'
  590. };
  591. $.fn.cronGen.tools = {
  592. /**
  593. * 每周期
  594. */
  595. everyTime : function(dom){
  596. $("#"+dom+"Hidden").val("*");
  597. $.fn.cronGen.tools.clearCheckbox(dom);
  598. },
  599. /**
  600. * 不指定
  601. */
  602. unAppoint : function(dom){
  603. var val = "?";
  604. if (dom == "year")
  605. {
  606. val = "";
  607. }
  608. $("#"+dom+"Hidden").val(val);
  609. $.fn.cronGen.tools.clearCheckbox(dom);
  610. },
  611. /**
  612. * 周期
  613. */
  614. cycle : function(dom){
  615. var start = $("#"+dom+"Start_0").val();
  616. var end = $("#"+dom+"End_0").val();
  617. $("#"+dom+"Hidden").val(start + "-" + end);
  618. $.fn.cronGen.tools.clearCheckbox(dom);
  619. },
  620. /**
  621. * 从开始
  622. */
  623. startOn : function(dom) {
  624. var start = $("#"+dom+"Start_1").val();
  625. var end = $("#"+dom+"End_1").val();
  626. $("#"+dom+"Hidden").val(start + "/" + end);
  627. $.fn.cronGen.tools.clearCheckbox(dom);
  628. },
  629. /**
  630. * 最后一天
  631. */
  632. lastDay : function(dom){
  633. $("#"+dom+"Hidden").val("L");
  634. $.fn.cronGen.tools.clearCheckbox(dom);
  635. },
  636. /**
  637. * 每周的某一天
  638. */
  639. weekOfDay : function(dom){
  640. var start = $("#"+dom+"Start_0").val();
  641. var end = $("#"+dom+"End_0").val();
  642. $("#"+dom+"Hidden").val(start + "#" + end);
  643. $.fn.cronGen.tools.clearCheckbox(dom);
  644. },
  645. /**
  646. * 最后一周
  647. */
  648. lastWeek : function(dom){
  649. var start = $("#"+dom+"Start_2").val();
  650. $("#"+dom+"Hidden").val(start+"L");
  651. $.fn.cronGen.tools.clearCheckbox(dom);
  652. },
  653. /**
  654. * 工作日
  655. */
  656. workDay : function(dom) {
  657. var start = $("#"+dom+"Start_2").val();
  658. $("#"+dom+"Hidden").val(start + "W");
  659. $.fn.cronGen.tools.clearCheckbox(dom);
  660. },
  661. initChangeEvent : function(){
  662. var secondList = $(".secondList").children();
  663. $("#sencond_appoint").click(function(){
  664. if (this.checked) {
  665. if ($(secondList).filter(":checked").length == 0) {
  666. $(secondList.eq(0)).attr("checked", true);
  667. }
  668. secondList.eq(0).change();
  669. }
  670. });
  671. secondList.change(function() {
  672. var sencond_appoint = $("#sencond_appoint").prop("checked");
  673. if (sencond_appoint) {
  674. var vals = [];
  675. secondList.each(function() {
  676. if (this.checked) {
  677. vals.push(this.value);
  678. }
  679. });
  680. var val = "?";
  681. if (vals.length > 0 && vals.length < 59) {
  682. val = vals.join(",");
  683. }else if(vals.length == 59){
  684. val = "*";
  685. }
  686. $("#secondHidden").val(val);
  687. }
  688. });
  689. var minList = $(".minList").children();
  690. $("#min_appoint").click(function(){
  691. if (this.checked) {
  692. if ($(minList).filter(":checked").length == 0) {
  693. $(minList.eq(0)).attr("checked", true);
  694. }
  695. minList.eq(0).change();
  696. }
  697. });
  698. minList.change(function() {
  699. var min_appoint = $("#min_appoint").prop("checked");
  700. if (min_appoint) {
  701. var vals = [];
  702. minList.each(function() {
  703. if (this.checked) {
  704. vals.push(this.value);
  705. }
  706. });
  707. var val = "?";
  708. if (vals.length > 0 && vals.length < 59) {
  709. val = vals.join(",");
  710. }else if(vals.length == 59){
  711. val = "*";
  712. }
  713. $("#minHidden").val(val);
  714. }
  715. });
  716. var hourList = $(".hourList").children();
  717. $("#hour_appoint").click(function(){
  718. if (this.checked) {
  719. if ($(hourList).filter(":checked").length == 0) {
  720. $(hourList.eq(0)).attr("checked", true);
  721. }
  722. hourList.eq(0).change();
  723. }
  724. });
  725. hourList.change(function() {
  726. var hour_appoint = $("#hour_appoint").prop("checked");
  727. if (hour_appoint) {
  728. var vals = [];
  729. hourList.each(function() {
  730. if (this.checked) {
  731. vals.push(this.value);
  732. }
  733. });
  734. var val = "?";
  735. if (vals.length > 0 && vals.length < 24) {
  736. val = vals.join(",");
  737. }else if(vals.length == 24){
  738. val = "*";
  739. }
  740. $("#hourHidden").val(val);
  741. }
  742. });
  743. var dayList = $(".dayList").children();
  744. $("#day_appoint").click(function(){
  745. if (this.checked) {
  746. if ($(dayList).filter(":checked").length == 0) {
  747. $(dayList.eq(0)).attr("checked", true);
  748. }
  749. dayList.eq(0).change();
  750. }
  751. });
  752. dayList.change(function() {
  753. var day_appoint = $("#day_appoint").prop("checked");
  754. if (day_appoint) {
  755. var vals = [];
  756. dayList.each(function() {
  757. if (this.checked) {
  758. vals.push(this.value);
  759. }
  760. });
  761. var val = "?";
  762. if (vals.length > 0 && vals.length < 31) {
  763. val = vals.join(",");
  764. }else if(vals.length == 31){
  765. val = "*";
  766. }
  767. $("#dayHidden").val(val);
  768. }
  769. });
  770. var monthList = $(".monthList").children();
  771. $("#month_appoint").click(function(){
  772. if (this.checked) {
  773. if ($(monthList).filter(":checked").length == 0) {
  774. $(monthList.eq(0)).attr("checked", true);
  775. }
  776. monthList.eq(0).change();
  777. }
  778. });
  779. monthList.change(function() {
  780. var month_appoint = $("#month_appoint").prop("checked");
  781. if (month_appoint) {
  782. var vals = [];
  783. monthList.each(function() {
  784. if (this.checked) {
  785. vals.push(this.value);
  786. }
  787. });
  788. var val = "?";
  789. if (vals.length > 0 && vals.length < 12) {
  790. val = vals.join(",");
  791. }else if(vals.length == 12){
  792. val = "*";
  793. }
  794. $("#monthHidden").val(val);
  795. }
  796. });
  797. var weekList = $(".weekList").children();
  798. $("#week_appoint").click(function(){
  799. if (this.checked) {
  800. if ($(weekList).filter(":checked").length == 0) {
  801. $(weekList.eq(0)).attr("checked", true);
  802. }
  803. weekList.eq(0).change();
  804. }
  805. });
  806. weekList.change(function() {
  807. var week_appoint = $("#week_appoint").prop("checked");
  808. if (week_appoint) {
  809. var vals = [];
  810. weekList.each(function() {
  811. if (this.checked) {
  812. vals.push(this.value);
  813. }
  814. });
  815. var val = "?";
  816. if (vals.length > 0 && vals.length < 7) {
  817. val = vals.join(",");
  818. }else if(vals.length == 7){
  819. val = "*";
  820. }
  821. $("#weekHidden").val(val);
  822. }
  823. });
  824. },
  825. initObj : function(strVal, strid){
  826. var ary = null;
  827. var objRadio = $("input[name='" + strid + "'");
  828. if (strVal == "*") {
  829. objRadio.eq(0).attr("checked", "checked");
  830. } else if (strVal.split('-').length > 1) {
  831. ary = strVal.split('-');
  832. objRadio.eq(1).attr("checked", "checked");
  833. $("#" + strid + "Start_0").val(ary[0]);
  834. $("#" + strid + "End_0").val(ary[1]);
  835. } else if (strVal.split('/').length > 1) {
  836. ary = strVal.split('/');
  837. objRadio.eq(2).attr("checked", "checked");
  838. $("#" + strid + "Start_1").val(ary[0]);
  839. $("#" + strid + "End_1").val(ary[1]);
  840. } else {
  841. objRadio.eq(3).attr("checked", "checked");
  842. if (strVal != "?") {
  843. ary = strVal.split(",");
  844. for (var i = 0; i < ary.length; i++) {
  845. $("." + strid + "List input[value='" + ary[i] + "']").attr("checked", "checked");
  846. }
  847. $.fn.cronGen.tools.initCheckBox(strid);
  848. }
  849. }
  850. },
  851. initDay : function(strVal) {
  852. var ary = null;
  853. var objRadio = $("input[name='day'");
  854. if (strVal == "*") {
  855. objRadio.eq(0).attr("checked", "checked");
  856. } else if (strVal == "?") {
  857. objRadio.eq(1).attr("checked", "checked");
  858. } else if (strVal.split('-').length > 1) {
  859. ary = strVal.split('-');
  860. objRadio.eq(2).attr("checked", "checked");
  861. $("#dayStart_0").val(ary[0]);
  862. $("#dayEnd_0").val(ary[1]);
  863. } else if (strVal.split('/').length > 1) {
  864. ary = strVal.split('/');
  865. objRadio.eq(3).attr("checked", "checked");
  866. $("#dayStart_1").val(ary[0]);
  867. $("#dayEnd_1").val(ary[1]);
  868. } else if (strVal.split('W').length > 1) {
  869. ary = strVal.split('W');
  870. objRadio.eq(4).attr("checked", "checked");
  871. $("#dayStart_2").val(ary[0]);
  872. } else if (strVal == "L") {
  873. objRadio.eq(5).attr("checked", "checked");
  874. } else {
  875. objRadio.eq(6).attr("checked", "checked");
  876. ary = strVal.split(",");
  877. for (var i = 0; i < ary.length; i++) {
  878. $(".dayList input[value='" + ary[i] + "']").attr("checked", "checked");
  879. }
  880. $.fn.cronGen.tools.initCheckBox("day");
  881. }
  882. },
  883. initMonth : function(strVal) {
  884. var ary = null;
  885. var objRadio = $("input[name='month'");
  886. if (strVal == "*") {
  887. objRadio.eq(0).attr("checked", "checked");
  888. } else if (strVal == "?") {
  889. objRadio.eq(1).attr("checked", "checked");
  890. } else if (strVal.split('-').length > 1) {
  891. ary = strVal.split('-');
  892. objRadio.eq(2).attr("checked", "checked");
  893. $("#monthStart_0").val(ary[0]);
  894. $("#monthEnd_0").val(ary[1]);
  895. } else if (strVal.split('/').length > 1) {
  896. ary = strVal.split('/');
  897. objRadio.eq(3).attr("checked", "checked");
  898. $("#monthStart_1").val(ary[0]);
  899. $("#monthEnd_1").val(ary[1]);
  900. } else {
  901. objRadio.eq(4).attr("checked", "checked");
  902. ary = strVal.split(",");
  903. for (var i = 0; i < ary.length; i++) {
  904. $(".monthList input[value='" + ary[i] + "']").attr("checked", "checked");
  905. }
  906. $.fn.cronGen.tools.initCheckBox("month");
  907. }
  908. },
  909. initWeek : function(strVal) {
  910. var ary = null;
  911. var objRadio = $("input[name='week'");
  912. if (strVal == "*") {
  913. objRadio.eq(0).attr("checked", "checked");
  914. } else if (strVal == "?") {
  915. objRadio.eq(1).attr("checked", "checked");
  916. } else if (strVal.split('/').length > 1) {
  917. ary = strVal.split('/');
  918. objRadio.eq(2).attr("checked", "checked");
  919. $("#weekStart_0").val(ary[0]);
  920. $("#weekEnd_0").val(ary[1]);
  921. } else if (strVal.split('-').length > 1) {
  922. ary = strVal.split('-');
  923. objRadio.eq(3).attr("checked", "checked");
  924. $("#weekStart_1").val(ary[0]);
  925. $("#weekEnd_1").val(ary[1]);
  926. } else if (strVal.split('L').length > 1) {
  927. ary = strVal.split('L');
  928. objRadio.eq(4).attr("checked", "checked");
  929. $("#weekStart_2").val(ary[0]);
  930. } else {
  931. objRadio.eq(5).attr("checked", "checked");
  932. ary = strVal.split(",");
  933. for (var i = 0; i < ary.length; i++) {
  934. $(".weekList input[value='" + ary[i] + "']").attr("checked", "checked");
  935. }
  936. $.fn.cronGen.tools.initCheckBox("week");
  937. }
  938. },
  939. initYear : function(strVal) {
  940. var ary = null;
  941. var objRadio = $("input[name='year'");
  942. if (strVal == "*") {
  943. objRadio.eq(1).attr("checked", "checked");
  944. } else if (strVal.split('-').length > 1) {
  945. ary = strVal.split('-');
  946. objRadio.eq(2).attr("checked", "checked");
  947. $("#yearStart_0").val(ary[0]);
  948. $("#yearEnd_0").val(ary[1]);
  949. }
  950. },
  951. cronParse : function(cronExpress) {
  952. //获取参数中表达式的值
  953. if (cronExpress) {
  954. var regs = cronExpress.split(' ');
  955. $("#secondHidden").val(regs[0]);
  956. $("#minHidden").val(regs[1]);
  957. $("#hourHidden").val(regs[2]);
  958. $("#dayHidden").val(regs[3]);
  959. $("#monthHidden").val(regs[4]);
  960. $("#weekHidden").val(regs[5]);
  961. $.fn.cronGen.tools.initObj(regs[0], "second");
  962. $.fn.cronGen.tools.initObj(regs[1], "min");
  963. $.fn.cronGen.tools.initObj(regs[2], "hour");
  964. $.fn.cronGen.tools.initDay(regs[3]);
  965. $.fn.cronGen.tools.initMonth(regs[4]);
  966. $.fn.cronGen.tools.initWeek(regs[5]);
  967. if (regs.length > 6) {
  968. $("input[name=yearHidden]").val(regs[6]);
  969. $.fn.cronGen.tools.initYear(regs[6]);
  970. }
  971. }
  972. },
  973. cronResult : function() {
  974. var result;
  975. var second = $("#secondHidden").val();
  976. second = second== "" ? "*":second;
  977. var minute = $("#minHidden").val();
  978. minute = minute== "" ? "*":minute;
  979. var hour = $("#hourHidden").val();
  980. hour = hour== "" ? "*":hour;
  981. var day = $("#dayHidden").val();
  982. day = day== "" ? "*":day;
  983. var month = $("#monthHidden").val();
  984. month = month== "" ? "*":month;
  985. var week = $("#weekHidden").val();
  986. week = week== "" ? "?":week;
  987. var year = $("#yearHidden").val();
  988. if(year!="")
  989. {
  990. result = second+" "+minute+" "+hour+" "+day+" "+month+" "+week+" "+year;
  991. }else
  992. {
  993. result = second+" "+minute+" "+hour+" "+day+" "+month+" "+week;
  994. }
  995. return result;
  996. },
  997. clearCheckbox : function(dom){
  998. //清除选中的checkbox
  999. var list = $("."+dom+"List").children().filter(":checked");
  1000. if ($(list).length > 0) {
  1001. $.each(list, function(index){
  1002. $(this).attr("checked", false);
  1003. $(this).attr("disabled", "disabled");
  1004. $(this).change();
  1005. });
  1006. }
  1007. },
  1008. initCheckBox : function(dom) {
  1009. //移除checkbox禁用
  1010. var list = $("."+dom+"List").children();
  1011. if ($(list).length > 0) {
  1012. $.each(list, function(index){
  1013. $(this).removeAttr("disabled");
  1014. });
  1015. }
  1016. }
  1017. };
  1018. })(jQuery);