Hi Dave,
Please find updated patch.
Please review.
--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
On Wed, Sep 7, 2016 at 7:30 PM, Dave Page <[email protected]> wrote:
> I think it's better to warn them as early as possible, as we do in
> pgAdmin 3 (actually, there we just prompt them to save the changes,
> but I think either is fine).
>
> On Wed, Sep 7, 2016 at 2:04 PM, Murtuza Zabuawala
> <[email protected]> wrote:
> > Sure I'll do it, But I thought like let user traverse through file
> manager
> > (he may or may not select any file to load) and warn only if he/she try
> to
> > load file.
> >
> >
> > --
> > Regards,
> > Murtuza Zabuawala
> > EnterpriseDB: http://www.enterprisedb.com
> > The Enterprise PostgreSQL Company
> >
> > On Wed, Sep 7, 2016 at 6:30 PM, Dave Page <[email protected]> wrote:
> >>
> >> Hi
> >>
> >> On Wed, Sep 7, 2016 at 10:38 AM, Murtuza Zabuawala
> >> <[email protected]> wrote:
> >> > 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.
> >>
> >> Can you tweak it so that the confirmation is requested as soon as the
> >> open file button is clicked, rather than when a file is selected
> >> please? I think that's a little more 'normal' :-).
> >>
> >> Thanks!
> >>
> >> --
> >> Dave Page
> >> Blog: http://pgsnake.blogspot.com
> >> Twitter: @pgsnake
> >>
> >> EnterpriseDB UK: http://www.enterprisedb.com
> >> The Enterprise PostgreSQL Company
> >
> >
>
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: 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 615255c..e18e268 100644
--- a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
+++ b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
@@ -415,19 +415,19 @@ 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'});
+ 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;
},
@@ -1162,21 +1162,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,8 +2194,30 @@ define(
}
});
},
+
// load select file dialog
_load_file: function() {
+ 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, open file manager.
+ if (!sql.length) { self._open_select_file_manager(); return; }
+
+ alertify.confirm('{{ _('Load file...') }}',
+ '{{ _('If you load the file you will lose all the current changes, Are you sure you wish to continue?') }}',
+ function() {
+ // User do not want to save, just continue
+ self._open_select_file_manager();
+ },
+ function() {
+ return true;
+ }
+ ).set('labels', {ok:'Yes', cancel:'No'});
+ },
+
+ // Open FileManager
+ _open_select_file_manager: function() {
var params = {
'supported_types': ["sql"], // file types allowed
'dialog_type': 'select_file' // open select file dialog
--
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers