jquery.datetimebox.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. /**
  2. * jQuery EasyUI 1.3.4
  3. *
  4. * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the GPL or commercial licenses
  7. * To use it on other terms please contact us: info@jeasyui.com
  8. * http://www.gnu.org/licenses/gpl.txt
  9. * http://www.jeasyui.com/license_commercial.php
  10. *
  11. */
  12. (function($){
  13. function _1(_2){
  14. var _3=$.data(_2,"datetimebox");
  15. var _4=_3.options;
  16. $(_2).datebox($.extend({},_4,{onShowPanel:function(){
  17. var _5=$(_2).datetimebox("getValue");
  18. _9(_2,_5,true);
  19. _4.onShowPanel.call(_2);
  20. },formatter:$.fn.datebox.defaults.formatter,parser:$.fn.datebox.defaults.parser}));
  21. $(_2).removeClass("datebox-f").addClass("datetimebox-f");
  22. $(_2).datebox("calendar").calendar({onSelect:function(_6){
  23. _4.onSelect.call(_2,_6);
  24. }});
  25. var _7=$(_2).datebox("panel");
  26. if(!_3.spinner){
  27. var p=$("<div style=\"padding:2px\"><input style=\"width:80px\"></div>").insertAfter(_7.children("div.datebox-calendar-inner"));
  28. _3.spinner=p.children("input");
  29. var _8=_7.children("div.datebox-button");
  30. var ok=$("<a href=\"javascript:void(0)\" class=\"datebox-ok\"></a>").html(_4.okText).appendTo(_8);
  31. ok.click(function(){
  32. _f(_2);
  33. });
  34. }
  35. _3.spinner.timespinner({showSeconds:_4.showSeconds,separator:_4.timeSeparator}).unbind(".datetimebox").bind("mousedown.datetimebox",function(e){
  36. e.stopPropagation();
  37. });
  38. _9(_2,_4.value);
  39. };
  40. function _a(_b){
  41. var c=$(_b).datetimebox("calendar");
  42. var t=$(_b).datetimebox("spinner");
  43. var _c=c.calendar("options").current;
  44. return new Date(_c.getFullYear(),_c.getMonth(),_c.getDate(),t.timespinner("getHours"),t.timespinner("getMinutes"),t.timespinner("getSeconds"));
  45. };
  46. function _d(_e,q){
  47. _9(_e,q,true);
  48. };
  49. function _f(_10){
  50. var _11=$.data(_10,"datetimebox").options;
  51. var _12=_a(_10);
  52. _9(_10,_11.formatter.call(_10,_12));
  53. $(_10).combo("hidePanel");
  54. };
  55. function _9(_13,_14,_15){
  56. var _16=$.data(_13,"datetimebox").options;
  57. $(_13).combo("setValue",_14);
  58. if(!_15){
  59. if(_14){
  60. var _17=_16.parser.call(_13,_14);
  61. $(_13).combo("setValue",_16.formatter.call(_13,_17));
  62. $(_13).combo("setText",_16.formatter.call(_13,_17));
  63. }else{
  64. $(_13).combo("setText",_14);
  65. }
  66. }
  67. var _17=_16.parser.call(_13,_14);
  68. $(_13).datetimebox("calendar").calendar("moveTo",_17);
  69. $(_13).datetimebox("spinner").timespinner("setValue",_18(_17));
  70. function _18(_19){
  71. function _1a(_1b){
  72. return (_1b<10?"0":"")+_1b;
  73. };
  74. var tt=[_1a(_19.getHours()),_1a(_19.getMinutes())];
  75. if(_16.showSeconds){
  76. tt.push(_1a(_19.getSeconds()));
  77. }
  78. return tt.join($(_13).datetimebox("spinner").timespinner("options").separator);
  79. };
  80. };
  81. $.fn.datetimebox=function(_1c,_1d){
  82. if(typeof _1c=="string"){
  83. var _1e=$.fn.datetimebox.methods[_1c];
  84. if(_1e){
  85. return _1e(this,_1d);
  86. }else{
  87. return this.datebox(_1c,_1d);
  88. }
  89. }
  90. _1c=_1c||{};
  91. return this.each(function(){
  92. var _1f=$.data(this,"datetimebox");
  93. if(_1f){
  94. $.extend(_1f.options,_1c);
  95. }else{
  96. $.data(this,"datetimebox",{options:$.extend({},$.fn.datetimebox.defaults,$.fn.datetimebox.parseOptions(this),_1c)});
  97. }
  98. _1(this);
  99. });
  100. };
  101. $.fn.datetimebox.methods={options:function(jq){
  102. var _20=jq.datebox("options");
  103. return $.extend($.data(jq[0],"datetimebox").options,{originalValue:_20.originalValue,disabled:_20.disabled,readonly:_20.readonly});
  104. },spinner:function(jq){
  105. return $.data(jq[0],"datetimebox").spinner;
  106. },setValue:function(jq,_21){
  107. return jq.each(function(){
  108. _9(this,_21);
  109. });
  110. },reset:function(jq){
  111. return jq.each(function(){
  112. var _22=$(this).datetimebox("options");
  113. $(this).datetimebox("setValue",_22.originalValue);
  114. });
  115. }};
  116. $.fn.datetimebox.parseOptions=function(_23){
  117. var t=$(_23);
  118. return $.extend({},$.fn.datebox.parseOptions(_23),$.parser.parseOptions(_23,["timeSeparator",{showSeconds:"boolean"}]));
  119. };
  120. $.fn.datetimebox.defaults=$.extend({},$.fn.datebox.defaults,{showSeconds:true,timeSeparator:":",keyHandler:{up:function(){
  121. },down:function(){
  122. },enter:function(){
  123. _f(this);
  124. },query:function(q){
  125. _d(this,q);
  126. }},formatter:function(_24){
  127. var h=_24.getHours();
  128. var M=_24.getMinutes();
  129. var s=_24.getSeconds();
  130. function _25(_26){
  131. return (_26<10?"0":"")+_26;
  132. };
  133. var _27=$(this).datetimebox("spinner").timespinner("options").separator;
  134. var r=$.fn.datebox.defaults.formatter(_24)+" "+_25(h)+_27+_25(M);
  135. if($(this).datetimebox("options").showSeconds){
  136. r+=_27+_25(s);
  137. }
  138. return r;
  139. },parser:function(s){
  140. if($.trim(s)==""){
  141. return new Date();
  142. }
  143. var dt=s.split(" ");
  144. var d=$.fn.datebox.defaults.parser(dt[0]);
  145. if(dt.length<2){
  146. return d;
  147. }
  148. var _28=$(this).datetimebox("spinner").timespinner("options").separator;
  149. var tt=dt[1].split(_28);
  150. var _29=parseInt(tt[0],10)||0;
  151. var _2a=parseInt(tt[1],10)||0;
  152. var _2b=parseInt(tt[2],10)||0;
  153. return new Date(d.getFullYear(),d.getMonth(),d.getDate(),_29,_2a,_2b);
  154. }});
  155. })(jQuery);