Hi, PFA patch to add more confirmations in query tool before taking any actions which might cause lose changes, - Clearing editor - Clearing history - Load file data RM#1666
Please review. -- Regards, Murtuza Zabuawala EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
diff --git a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js index ebc7077..d48f4b9 100644 --- a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js +++ b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js @@ -279,17 +279,17 @@ define( if(_.size(data_store.added) || _.size(data_store.updated)) { msg = '{{ _('The data has been modified, but not saved. Are you sure you wish to discard the changes?') }}'; - notify = true; + notify = true; } } else if(self.handler.is_query_tool) { // We will check for modified sql content var sql = self.handler.gridView.query_tool_obj.getValue(); - sql = sql.replace(/\s+/g, ''); + sql = sql.replace(/\s+/g, ''); // If it is an empty query, do nothing. if (sql.length > 0) { msg = '{{ _('The query has been modified, but not saved. Are you sure you wish to discard the changes?') }}'; - notify = true; - } + notify = true; + } } if(notify) {return self.user_confirmation(p, msg);} return true; @@ -401,20 +401,20 @@ define( /* To prompt user for unsaved changes */ user_confirmation: function(panel, msg) { - // If there is anything to save then prompt user - alertify.confirm('{{ _('Unsaved changes') }}', msg, - function() { - // Do nothing as user do not want to save, just continue - window.onbeforeunload = null; - panel.off(wcDocker.EVENT.CLOSING); - window.top.pgAdmin.Browser.docker.removePanel(panel); - }, - function() { - // Stop, User wants to save - // false value will prevent from panel to close - return true; - } - ).set('labels', {ok:'Yes', cancel:'No'}); + // If there is anything to save then prompt user + alertify.confirm('{{ _('Unsaved changes') }}', msg, + function() { + // Do nothing as user do not want to save, just continue + window.onbeforeunload = null; + panel.off(wcDocker.EVENT.CLOSING); + window.top.pgAdmin.Browser.docker.removePanel(panel); + }, + function() { + // Stop, User wants to save + // false value will prevent from panel to close + return true; + } + ).set('labels', {ok:'Yes', cancel:'No'}); return false; }, @@ -1149,21 +1149,49 @@ define( // Callback function for the clear button click. on_clear: function(ev) { + var self = this, sql; this._stopEventPropogation(ev); this._closeDropDown(ev); - this.query_tool_obj.setValue(''); + // We will check for modified sql content + sql = self.query_tool_obj.getValue(); + sql = sql.replace(/\s+/g, ''); + // If there is nothing to save, clear it. + if (!sql.length) { self.query_tool_obj.setValue(''); return; } + + alertify.confirm( + '{{ _('Clear Editor') }}', + '{{ _('Are you sure you wish to discard the current changes?') }}', + function() { + // Do nothing as user do not want to save, just continue + self.query_tool_obj.setValue(''); + }, + function() { + return true; + } + ).set('labels', {ok:'Yes', cancel:'No'}); }, // Callback function for the clear history button click. on_clear_history: function(ev) { + var self = this; this._stopEventPropogation(ev); this._closeDropDown(ev); - - // Remove any existing grid first - if (this.history_grid) { - this.history_collection.reset(); - } + // ask for confirmation only if anything to clear + if(!self.history_collection.length) { return; } + + alertify.confirm('{{ _('Clear history') }}', + '{{ _('Are you sure you wish to clear all the history?') }}', + function() { + // Remove any existing grid first + if (self.history_grid) { + self.history_collection.reset(); + } + }, + function() { + return true; + } + ).set('labels', {ok:'Yes', cancel:'No'}); }, // Callback function for the auto commit button click. @@ -2166,6 +2194,27 @@ define( // read file data and return as response _select_file_handler: function(e) { var self = this; + // We will check for modified sql content + sql = self.gridView.query_tool_obj.getValue() + sql = sql.replace(/\s+/g, ''); + // If there is nothing to save, clear it. + if (!sql.length) { self._load_file_data(e); return;} + + alertify.confirm('{{ _('Load file...') }}', + '{{ _('Are you sure you wish to discard the current changes?') }}', + function() { + // Do nothing as user do not want to save, just continue + self._load_file_data(e); + }, + function() { + return true; + } + ).set('labels', {ok:'Yes', cancel:'No'}); + }, + + // Make ajax for loading the data from file in sql editor + _load_file_data: function(e) { + var self = this; data = { 'file_name': e
-- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers