From 7a400bacf34fb5dc42bbeabd4171eb4b8041c9af Mon Sep 17 00:00:00 2001 From: Khushboo Vashi Date: Tue, 10 May 2016 12:34:20 +0530 Subject: [PATCH] Do not send the incomplete definition of a node object to the server instead show proper message. Tweaked by Ashesh for adding the proper message --- .../browser/templates/browser/js/messages.js | 1 + web/pgadmin/static/js/backform.pgadmin.js | 59 ++++++++++--------- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/web/pgadmin/browser/templates/browser/js/messages.js b/web/pgadmin/browser/templates/browser/js/messages.js index 4d4462d3a..f3e60df67 100644 --- a/web/pgadmin/browser/templates/browser/js/messages.js +++ b/web/pgadmin/browser/templates/browser/js/messages.js @@ -12,6 +12,7 @@ function(_, S, pgAdmin) { 'CLICK_FOR_DETAILED_MSG': '%s

' + '{{ _('Click here for details.')|safe }}', 'GENERAL_CATEGORY': '{{ _("General")|safe }}', 'SQL_TAB': '{{ _('SQL') }}', + 'SQL_INCOMPLETE': '{{ _('Incomplete definition') }}', 'SQL_NO_CHANGE': '-- ' + '{{ _('Nothing changed')|safe }}', 'MUST_BE_INT' : "{{ _("'%%s' must be an integer.")|safe }}", 'MUST_BE_NUM' : "{{ _("'%%s' must be a numeric.")|safe }}", diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js index dc8cde4fb..201ecc18f 100644 --- a/web/pgadmin/static/js/backform.pgadmin.js +++ b/web/pgadmin/static/js/backform.pgadmin.js @@ -1394,38 +1394,43 @@ // Fetch the information only if the SQL tab is visible at the moment. if (this.dialog && obj.shown == this.tabIndex) { - // We will send request to sever only if something is changed in model + // We will send a request to the sever only if something has changed + // in a model and also it does not contain any error. if(this.model.sessChanged()) { + if (_.size(this.model.errorModel.attributes) == 0) { + var self = this, + node = self.field.get('schema_node'), + msql_url = node.generate_url.apply( + node, [ + null, 'msql', this.field.get('node_data'), !self.model.isNew(), + this.field.get('node_info') + ]); - var self = this, - node = self.field.get('schema_node'), - msql_url = node.generate_url.apply( - node, [ - null, 'msql', this.field.get('node_data'), !self.model.isNew(), - this.field.get('node_info') - ]); + // Fetching the modified SQL + self.model.trigger('pgadmin-view:msql:fetching', self.method, node); - // Fetching the modified SQL - self.model.trigger('pgadmin-view:msql:fetching', self.method, node); - - $.ajax({ - url: msql_url, - type: 'GET', - cache: false, - data: self.model.toJSON(true, 'GET'), - dataType: "json", - contentType: "application/json" - }).done(function(res) { - self.sqlCtrl.clearHistory(); - self.sqlCtrl.setValue(res.data); - }).fail(function() { - self.model.trigger('pgadmin-view:msql:error', self.method, node, arguments); - }).always(function() { - self.model.trigger('pgadmin-view:msql:fetched', self.method, node, arguments); - }); + $.ajax({ + url: msql_url, + type: 'GET', + cache: false, + data: self.model.toJSON(true, 'GET'), + dataType: "json", + contentType: "application/json" + }).done(function(res) { + self.sqlCtrl.clearHistory(); + self.sqlCtrl.setValue(res.data); + }).fail(function() { + self.model.trigger('pgadmin-view:msql:error', self.method, node, arguments); + }).always(function() { + self.model.trigger('pgadmin-view:msql:fetched', self.method, node, arguments); + }); + } else { + this.sqlCtrl.clearHistory(); + this.sqlCtrl.setValue('-- ' + window.pgAdmin.Browser.messages.SQL_INCOMPLETE); + } } else { this.sqlCtrl.clearHistory(); - this.sqlCtrl.setValue(window.pgAdmin.Browser.messages.SQL_NO_CHANGE); + this.sqlCtrl.setValue('-- ' + window.pgAdmin.Browser.messages.SQL_NO_CHANGE); } this.sqlCtrl.refresh.apply(this.sqlCtrl); }