Hi Dave,

I have found the issue, it was in Backform control itself :)
Issue: We were passing today's date value as minDate option in pgAgent
schedule schema while rendering the control, So when server was sending
previous datetime value it was not displaying it causing sync problem.

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Tue, Feb 27, 2018 at 8:39 PM, Murtuza Zabuawala <
murtuza.zabuaw...@enterprisedb.com> wrote:

> ​Thanks Dave, I'll look into it.
> ​
>
>
> On Tue, Feb 27, 2018 at 8:37 PM, Dave Page <dp...@pgadmin.org> wrote:
>
>> Hi
>>
>> On Tue, Feb 27, 2018 at 12:03 PM, Murtuza Zabuawala <
>> murtuza.zabuaw...@enterprisedb.com> wrote:
>>
>>> I'm not able to re-produce the issue, Could you hard refresh and try
>>> again?
>>>
>>
>> I still see it.
>>
>>
>>>
>>> If possible could you please provide exact steps?
>>>
>>
>> Attached is a dump of my test pgagent schema.
>>
>> 1) Load the schema dump into the maintenance database
>> 2) Connect pgAdmin
>> 3) Browse to pgAgent Jobs
>> 4) Right-click Properties, and select the Schedules tab
>> 5) Open the subnode for sched1
>>
>>
>>>
>>> --
>>> Regards,
>>> Murtuza Zabuawala
>>> EnterpriseDB: http://www.enterprisedb.com
>>> The Enterprise PostgreSQL Company
>>>
>>>
>>> On Tue, Feb 27, 2018 at 5:30 PM, Dave Page <dp...@pgadmin.org> wrote:
>>>
>>>> Sorry - here it is.
>>>>
>>>> On Tue, Feb 27, 2018 at 11:59 AM, Murtuza Zabuawala <
>>>> murtuza.zabuaw...@enterprisedb.com> wrote:
>>>>
>>>>> Hi Dave,
>>>>>
>>>>> Could you please send screenshot?
>>>>>
>>>>> --
>>>>> Regards,
>>>>> Murtuza Zabuawala
>>>>> EnterpriseDB: http://www.enterprisedb.com
>>>>> The Enterprise PostgreSQL Company
>>>>>
>>>>>
>>>>> On Tue, Feb 27, 2018 at 5:24 PM, Dave Page <dp...@pgadmin.org> wrote:
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> Still not quite right - see the attached screenshot which is the
>>>>>> result of simply viewing the properties of an existing job. Note that the
>>>>>> start time is shown in the grid but not the subnode control.
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> On Tue, Feb 27, 2018 at 8:26 AM, Murtuza Zabuawala <
>>>>>> murtuza.zabuaw...@enterprisedb.com> wrote:
>>>>>>
>>>>>>> Hi Dave,
>>>>>>>
>>>>>>> As validation related patch was committed with RM#3148 [ Sorry about
>>>>>>> that I forgot to checkout :) ]
>>>>>>> PFA patch to fix the issues you mentioned, I have also removed extra
>>>>>>> error message from sub node collection control and made it optional via
>>>>>>> flag.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Regards,
>>>>>>> Murtuza Zabuawala
>>>>>>> EnterpriseDB: http://www.enterprisedb.com
>>>>>>> The Enterprise PostgreSQL Company
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Feb 26, 2018 at 10:14 PM, Dave Page <dp...@pgadmin.org>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> On Mon, Feb 26, 2018 at 2:46 PM, Murtuza Zabuawala <
>>>>>>>> murtuza.zabuaw...@enterprisedb.com> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> PFA patch to fix the issue where user was not able to create
>>>>>>>>> pgAgent job from UI without entering End date in schedule section.
>>>>>>>>>
>>>>>>>>
>>>>>>>>  Whilst this does resolve the validation issue, there are still a
>>>>>>>> couple of other related problems, as can be seen in the attached
>>>>>>>> screenshots:
>>>>>>>>
>>>>>>>> - The Start date/time in the subnode control doesn't seem to be
>>>>>>>> properly synchronised with the value in the grid.
>>>>>>>>
>>>>>>>> - If you leave the End date/time blank (but maybe click into it
>>>>>>>> first), the grid will show "Invalid date".
>>>>>>>>
>>>>>>>> It's possible there are other oddities as well - please check
>>>>>>>> carefully for anything else.
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> --
>>>>>>>> Dave Page
>>>>>>>> Blog: http://pgsnake.blogspot.com
>>>>>>>> Twitter: @pgsnake
>>>>>>>>
>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com
>>>>>>>> The Enterprise PostgreSQL Company
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Dave Page
>>>>>> Blog: http://pgsnake.blogspot.com
>>>>>> Twitter: @pgsnake
>>>>>>
>>>>>> EnterpriseDB UK: http://www.enterprisedb.com
>>>>>> The Enterprise PostgreSQL Company
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Dave Page
>>>> Blog: http://pgsnake.blogspot.com
>>>> Twitter: @pgsnake
>>>>
>>>> EnterpriseDB UK: http://www.enterprisedb.com
>>>> The Enterprise PostgreSQL Company
>>>>
>>>
>>>
>>
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>
>
diff --git 
a/web/pgadmin/browser/server_groups/servers/pgagent/schedules/static/js/pga_schedule.js
 
b/web/pgadmin/browser/server_groups/servers/pgagent/schedules/static/js/pga_schedule.js
index a88f9d0..1cfa38c 100644
--- 
a/web/pgadmin/browser/server_groups/servers/pgagent/schedules/static/js/pga_schedule.js
+++ 
b/web/pgadmin/browser/server_groups/servers/pgagent/schedules/static/js/pga_schedule.js
@@ -279,7 +279,7 @@ define('pgadmin.node.pga_schedule', [
           control: 'datetimepicker', cell: DatetimeCell,
           disabled: function() { return false; }, displayInUTC: false,
           displayFormat: 'YYYY-MM-DD HH:mm:ss Z', options: {
-            format: 'YYYY-MM-DD HH:mm:ss Z', useCurrent: false,
+            format: 'YYYY-MM-DD HH:mm:ss Z',
             minDate: moment().add(0, 'm'),
           }, cellHeaderClasses: 'width_percent_25',
           modelFormat: 'YYYY-MM-DD HH:mm:ss Z',
@@ -458,6 +458,9 @@ define('pgadmin.node.pga_schedule', [
           if (_.isUndefined(val) || _.isNull(val) ||
             String(val).replace(/^\s+|\s+$/g, '') == '') {
             msg = gettext('Please enter the start time.');
+            if (val == '') {
+              this.set('jscstart', undefined);
+            }
             this.errorModel.set('jscstart', msg);
             errMsg = errMsg || msg;
           } else {
@@ -471,6 +474,9 @@ define('pgadmin.node.pga_schedule', [
             // the user
             if (_.isUndefined(val) || _.isNull(val) ||
               String(val).replace(/^\s+|\s+$/g, '') == '') {
+              if (val == '') {
+                this.set('jscend', undefined);
+              }
               return;
             }
 
diff --git 
a/web/pgadmin/browser/server_groups/servers/pgagent/static/js/pga_job.js 
b/web/pgadmin/browser/server_groups/servers/pgagent/static/js/pga_job.js
index 1a1cfb1..72fd1be 100644
--- a/web/pgadmin/browser/server_groups/servers/pgagent/static/js/pga_job.js
+++ b/web/pgadmin/browser/server_groups/servers/pgagent/static/js/pga_job.js
@@ -133,6 +133,7 @@ define('pgadmin.node.pga_job', [
           type: 'collection', mode: ['edit', 'create'],
           model: pgBrowser.Nodes['pga_jobstep'].model, canEdit: true,
           control: 'sub-node-collection', canAdd: true, canDelete: true,
+          showError: false,
           columns: [
             'jstname', 'jstenabled', 'jstkind', 'jstconntype', 'jstonerror',
           ],
@@ -141,6 +142,7 @@ define('pgadmin.node.pga_job', [
           type: 'collection', mode: ['edit', 'create'],
           control: 'sub-node-collection', canAdd: true, canDelete: true,
           canEdit: true, model: pgBrowser.Nodes['pga_schedule'].model,
+          showError: false,
           columns: ['jscname', 'jscenabled', 'jscstart', 'jscend'],
         }],
         validate: function() {
diff --git 
a/web/pgadmin/browser/server_groups/servers/pgagent/steps/static/js/pga_jobstep.js
 
b/web/pgadmin/browser/server_groups/servers/pgagent/steps/static/js/pga_jobstep.js
index 0dd3f60..971c2d6 100644
--- 
a/web/pgadmin/browser/server_groups/servers/pgagent/steps/static/js/pga_jobstep.js
+++ 
b/web/pgadmin/browser/server_groups/servers/pgagent/steps/static/js/pga_jobstep.js
@@ -300,6 +300,17 @@ define('pgadmin.node.pga_jobstep', [
             this.errorModel.unset('jstcode');
           }
 
+          val = this.get('jstonerror');
+          if (
+            !_.isUndefined(val) && !_.isNull(val) &&
+              String(val).replace(/^\s+|\s+$/g, '') == ''
+          ) {
+            msg = gettext('Please select valid on error option .');
+            this.errorModel.set('jstonerror', msg);
+          } else {
+            this.errorModel.unset('jstonerror');
+          }
+
           return errMsg;
         },
       }),
diff --git a/web/pgadmin/static/js/backform.pgadmin.js 
b/web/pgadmin/static/js/backform.pgadmin.js
index 5bbbf9f..ac6d5aa 100644
--- a/web/pgadmin/static/js/backform.pgadmin.js
+++ b/web/pgadmin/static/js/backform.pgadmin.js
@@ -1196,6 +1196,7 @@ define([
         canAddRow: data.canAddRow,
         canEdit: evalF(data.canEdit, data, this.model),
         canDelete: evalF(data.canDelete, data, this.model),
+        showError: data.showError || true,
       });
       // Show Backgrid Control
       var grid = (data.subnode == undefined) ? '' : this.showGridControl(data);
@@ -1224,9 +1225,11 @@ define([
 
       if (_.isEmpty(error)) return;
 
-      self.$el.addClass('subnode-error').append(
-        $('<div></div>').addClass('pgadmin-control-error-message 
pg-el-xs-offset-4 pg-el-xs-8 help-block').text(error)
-      );
+      if (self.field.get('showError')) {
+        self.$el.addClass('subnode-error').append(
+          $('<div></div>').addClass('pgadmin-control-error-message 
pg-el-xs-offset-4 pg-el-xs-8 help-block').text(error)
+        );
+      }
     },
     cleanup: function() {
       // Clean up existing grid if any (in case of re-render)
@@ -1238,8 +1241,10 @@ define([
       }
     },
     clearInvalid: function() {
-      this.$el.removeClass('subnode-error');
-      this.$el.find('.pgadmin-control-error-message').remove();
+      if (this.field.get('showError')) {
+        this.$el.removeClass('subnode-error');
+        this.$el.find('.pgadmin-control-error-message').remove();
+      }
       return this;
     },
     showGridControl: function(data) {
@@ -2391,6 +2396,7 @@ define([
               },
             }, this.defaults.options, this.field.get('options'), {
               'date': data.value,
+              'minDate': data.value,
             })
           );
         }

Reply via email to