|
498 | 498 | jQuery.fn.datetimepicker = function(o) {
|
499 | 499 | var opts = (o === undefined ? {} : o);
|
500 | 500 | var input = $(this);
|
| 501 | + |
| 502 | + if(typeof(o) == 'string') |
| 503 | + { |
| 504 | + if(o == 'setDate') |
| 505 | + return input.datepicker(o, arguments[1]); |
| 506 | + if(o == 'options' && typeof(arguments[1]) == 'string') |
| 507 | + return input.datepicker(o, arguments[1], arguments[2]); |
| 508 | + if(o == 'dialog') |
| 509 | + return input.datepicker(o, arguments[1], arguments[2], arguments[3], arguments[4]); |
| 510 | + return input.datepicker(o); |
| 511 | + } |
| 512 | + |
501 | 513 | var tp = new Timepicker();
|
502 | 514 | var inlineSettings = {};
|
503 | 515 |
|
|
560 | 572 | // shorthand just to use timepicker..
|
561 | 573 | //########################################################################
|
562 | 574 | jQuery.fn.timepicker = function(opts) {
|
563 |
| - opts = $.extend(opts, { timeOnly: true }); |
564 |
| - $(this).datetimepicker(opts); |
| 575 | + if(typeof opts == 'object') |
| 576 | + opts = $.extend(opts, { timeOnly: true }); |
| 577 | + |
| 578 | + $(this).datetimepicker(opts, arguments[1], arguments[2], arguments[3], arguments[4]); |
565 | 579 | };
|
566 | 580 |
|
567 | 581 | //########################################################################
|
|
643 | 657 |
|
644 | 658 | var target = $(id);
|
645 | 659 | var dp_inst = this._getInst(target[0]);
|
646 |
| - var tp_inst = $.datepicker._get(dp_inst, 'timepicker'); |
647 | 660 |
|
648 |
| - if(tp_inst){ |
649 |
| - var date = new Date(); |
| 661 | + this._setTime(dp_inst, new Date()); |
| 662 | + |
| 663 | + }; |
| 664 | + |
| 665 | + //####################################################################################### |
| 666 | + // Create our on set time function |
| 667 | + //####################################################################################### |
| 668 | + $.datepicker._setTime = function(inst, date) { |
| 669 | + |
| 670 | + var tp_inst = $.datepicker._get(inst, 'timepicker'); |
| 671 | + |
| 672 | + if(tp_inst && tp_inst.hour_slider && tp_inst.minute_slider && tp_inst.second_slider){ |
650 | 673 | var hour = date.getHours();
|
651 | 674 | var minute = date.getMinutes();
|
652 | 675 | var second = date.getSeconds();
|
|
655 | 678 | if( (hour < tp_inst.defaults.hourMin || hour > tp_inst.defaults.hourMax) || (minute < tp_inst.defaults.minuteMin || minute > tp_inst.defaults.minuteMax) || (second < tp_inst.defaults.secondMin || second > tp_inst.defaults.secondMax) ){
|
656 | 679 | hour = tp_inst.defaults.hourMin;
|
657 | 680 | minute = tp_inst.defaults.minuteMin;
|
658 |
| - second = tp_inst.defaults.secondMin; |
| 681 | + second = tp_inst.defaults.secondMin; |
659 | 682 | }
|
660 | 683 |
|
661 | 684 | tp_inst.hour_slider.slider('value', hour );
|
662 | 685 | tp_inst.minute_slider.slider('value', minute );
|
663 | 686 | tp_inst.second_slider.slider('value', second );
|
664 | 687 |
|
665 |
| - tp_inst.onTimeChange(dp_inst, tp_inst); |
| 688 | + tp_inst.onTimeChange(inst, tp_inst); |
666 | 689 | }
|
| 690 | + |
667 | 691 | };
|
| 692 | + |
| 693 | + //####################################################################################### |
| 694 | + // override getDate() to allow getting time too within date object |
| 695 | + //####################################################################################### |
| 696 | + $.datepicker._base_setDate = $.datepicker._setDate; |
| 697 | + $.datepicker._setDate = function(inst, date, noChange) { |
| 698 | + var tp_inst = $.datepicker._get(inst, 'timepicker'); |
| 699 | + var tp_date = new Date(date.getYear(), date.getMonth(), date.getDay(), date.getHours(), date.getMinutes(), date.getSeconds()); |
| 700 | + |
| 701 | + $.datepicker._base_setDate(inst, date, noChange); |
| 702 | + |
| 703 | + if(tp_inst){ |
| 704 | + this._setTime(inst, tp_date); |
| 705 | + } |
| 706 | + |
668 | 707 |
|
| 708 | + }; |
| 709 | + |
| 710 | + //####################################################################################### |
| 711 | + // override getDate() to allow getting time too within date object |
| 712 | + //####################################################################################### |
| 713 | + $.datepicker._base_getDate = $.datepicker._getDate; |
| 714 | + $.datepicker._getDate = function(inst) { |
| 715 | + |
| 716 | + var tp_inst = $.datepicker._get(inst, 'timepicker'); |
| 717 | + |
| 718 | + if(tp_inst){ |
| 719 | + var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null : |
| 720 | + this._daylightSavingAdjust(new Date( |
| 721 | + inst.currentYear, inst.currentMonth, inst.currentDay, tp_inst.hour, tp_inst.minute, tp_inst.second))); |
| 722 | + return startDate; |
| 723 | + } |
| 724 | + |
| 725 | + return $.datepicker._base_getDate(inst); |
| 726 | + }; |
| 727 | + |
669 | 728 | //#######################################################################################
|
670 | 729 | // jQuery extend now ignores nulls!
|
671 | 730 | //#######################################################################################
|
|
0 commit comments