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 ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers