Advertisement
DarkGenius

SPDateTimePickerFix

Jun 22nd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // patching calendar
  2. (function() {
  3.     var original_clickDatePicker = clickDatePicker;
  4.     var original_OnPickerFinish = OnPickerFinish;
  5.     var original_OnIframeLoadFinish = OnIframeLoadFinish;
  6.  
  7.     var resolveFunc = function (dfd) {
  8.         return function () {
  9.             dfd.resolve();
  10.         }
  11.     }
  12.  
  13.     var queueAsync = function (fn) {
  14.         queueAsync.dfd = (queueAsync.dfd || $.Deferred().resolve().promise())
  15.             .then(function () {
  16.                     var dfd = $.Deferred();
  17.                     fn(resolveFunc(dfd));
  18.                     return dfd;
  19.                 });
  20.     }
  21.     queueAsync.dfd = null;
  22.  
  23.     window.clickDatePicker = function (resultFieldId) {
  24.         if (!resultFieldId) original_clickDatePicker.apply(this, arguments);
  25.         else {
  26.             var args = Array.prototype.slice.call(arguments);
  27.             queueAsync(function (resolve) {
  28.                 window.OnPickerFinish = function () {                            
  29.                     if (this.Picker) this.Picker.cancelLoadAction = true;
  30.                     original_OnPickerFinish.apply(this, arguments);
  31.                     window.OnPickerFinish = original_OnPickerFinish;                            
  32.                     resolve();
  33.                 }                    
  34.                 original_clickDatePicker.apply(this, args);
  35.                 if (this.Picker) this.Picker.cancelLoadAction = false;
  36.             });
  37.         }              
  38.     }
  39.  
  40.     window.OnIframeLoadFinish = function () {
  41.         if (this.Picker && this.Picker.cancelLoadAction) {
  42.             this.Picker.style.display = 'none';
  43.             return;
  44.         }
  45.         original_OnIframeLoadFinish.apply(this, arguments);
  46.     }
  47. })()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement