Проверка обратной даты RSA Archer

#javascript #custom-object #archer

#javascript #пользовательский объект #archer

Вопрос:

Итак, в основном у меня есть требование создать проверку во вложенной форме, чтобы запретить пользователю отправлять обратную дату в запросе на продление. Я использовал проверку пользовательского объекта, но есть проблема, связанная с отображением исходного сохранения, сохранения и закрытия вместе с сохранением, сохранением и закрытием пользовательского объекта.

Проверка пользовательского объекта работает, но отображение исходного сохранения, сохранения и закрытия является серьезной проблемой.

Пожалуйста, найдите код ниже.

 <script type="text/javascript">
     //Define date field ids
     var dateOccurredFldId = 22418;

    // For todays date;
     Date.prototype.today = function () { 
          return (((this.getMonth() 1) < 10)?"0":"")   (this.getMonth() 1)  "/"  ((this.getDate() < 10)?"0":"")   this.getDate()   "/"   this.getFullYear();
     }

     // For the time now
          Date.prototype.timeNow = function () {
          return ((this.getHours() < 10)?"0":"")   this.getHours()  ":"  ((this.getMinutes() < 10)?"0":"")   this.getMinutes()  ":"  ((this.getSeconds() < 10)?"0":"")   this.getSeconds();
     }

     Sys.Application.add_load(function() {
          // Hijack Save and Close Button
          $('#master_btnSave').clone().attr('id', 'master_customBtnSave').insertBefore('#master_btnApply');
          $('#master_btnSave').hide();
          $('#master_customBtnSave').unbind('click').prop("onclick", null).click(function(){ DateCheck('save');return false;});

          // Hijack Save Button
          $('#master_btnApply').clone().attr('id', 'master_customBtnApply').insertBefore('#master_btnApply');
          $('#master_btnApply').hide();
          $('#master_customBtnApply').unbind('click').prop("onclick", null).click(function(){ DateCheck('apply');return false;});
     });

     function DateCheck(type) {
          //Get Date Field Values
          var dateOccurred = new Date(String($CM.getFieldValue(dateOccurredFldId, false)));
          var currentDate = new Date();
          var dateTime = currentDate.today()   ' '  currentDate.timeNow();
          var currentDateTime = new Date(dateTime);


          //Set Alert Box Title
          var title = 'Warning';

          if(dateOccurred) {
               if(dateOccurred <= currentDate) {
                    WarningAlert('The <b>Entension Date</b> cannot be lesser than the <b> Current Date Created</b>','',title);
                    return false;
               } else {
                    SaveApply(type)
               }
          } else {
               SaveApply(type)
          }
     }

     function SaveApply(type) {
          if (type == 'save') {
               $('#master_btnSave').click();
          } else if (type == 'apply') {
               $('#master_btnApply').click();
          }
     }
</script> 

Комментарии:

1. Ахмад, какую версию Archer ты используешь?

2. Моя текущая версия — 6.7 P3

Ответ №1:

Попробуйте обновленный код ниже.

 <script type="text/javascript">
     //Define date field ids
     var dateOccurredFldId = 22418;

     // For todays date;
     Date.prototype.today = function () { 
          return (((this.getMonth() 1) < 10)?"0":"")   (this.getMonth() 1)  "/"  ((this.getDate() < 10)?"0":"")   this.getDate()   "/"   this.getFullYear();
     }

     // For the time now
     Date.prototype.timeNow = function () {
          return ((this.getHours() < 10)?"0":"")   this.getHours()  ":"  ((this.getMinutes() < 10)?"0":"")   this.getMinutes()  ":"  ((this.getSeconds() < 10)?"0":"")   this.getSeconds();
     }

     // Hijack Save Button
     $('#master_btnApply1, #master_btnApplyIcon').unbind('click').prop("onclick", null).click(function(){ DateCheck('Apply');return false;})

     // Hijack Save And Close Button
     $('#master_btnSave1').unbind('click').prop("onclick", null).click(function(){ DateCheck('Save')});

     // Hide Right-Click Save and Save and Close Right-Click Menu Items
     $('.rmLink:Contains("Save")').parent().parent().hide();
     $('.rmLink:Contains("Save and Close")').parent().parent().hide();

     function DateCheck(action) {
          //Get Date Field Values
          var dateOccurred = new Date(String($CM.getFieldValue(dateOccurredFldId, false)));
          var currentDate = new Date();
          var dateTime = currentDate.today()   ' '  currentDate.timeNow();
          var currentDateTime = new Date(dateTime);


          //Set Alert Box Title
          var title = 'Warning';

          if(dateOccurred) {
               if(dateOccurred <= currentDate) {
                    WarningAlert('The <b>Entension Date</b> cannot be lesser than the <b> Current Date Created</b>','',title);
                    return false;
               } else {
                    SaveApply(action)
               }
          } else {
               SaveApply(action)
          }
     }

     function SaveApply(action) {
          if (type == 'Save') {
               ShowAnimationAndPostback('master$btn'   action);
          } else if (type == 'Apply') {
               ShowAnimationAndPostback('master$btn'   action);
          }
     }
</script> 

Комментарии:

1. Теперь он проверяется и показывает только 1 сохранение, сохранение и закрытие. Проблема в том, что на самом деле он не сохраняется даже с учетом будущих дат. Таким образом, он проверяет, как и ожидалось, но не сохраняет запись.