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.zabuawala@
> 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
>
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 2bbaa17..9f1f3db 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) {

Reply via email to