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 <[email protected]> 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) {