public inbox for [email protected]
help / color / mirror / Atom feedFrom: Aditya Toshniwal <[email protected]>
To: Dave Page <[email protected]>
Cc: Akshay Joshi <[email protected]>
Cc: pgadmin-hackers <[email protected]>
Subject: Re: [pgAdmin4][RM3849] Ask to save unsaved query changes stopped working
Date: Tue, 22 Jan 2019 18:28:11 +0530
Message-ID: <CAM9w-_k-q1xJukuacMfUuonXombTqgNSFv+DqBDUMo9EGde35w@mail.gmail.com> (raw)
In-Reply-To: <CA+OCxoxbTp=niVEJown-P=Jk+m=AqETSUEkurdPYntXUg7CSpA@mail.gmail.com>
References: <CAM9w-_m7Z8tj4VFySfyqj1F+ZEAgd4dnYTjTND4jY8YQEwXovQ@mail.gmail.com>
<CANxoLDciA484H5RMwbL3Nn+PudGFYxa_jjRnQnXsmYoPeOKxQw@mail.gmail.com>
<CA+OCxoygmKZnqhr-J9FmW0BaNgpB3T1Yr+j0OC46GDLXu2yGnw@mail.gmail.com>
<CAM9w-_mZ6auyK+QkvU-Ti+QW-yytMXU5Mq0gz_Ld9PpPxOvTGA@mail.gmail.com>
<CA+OCxoz52Gfzt_pAD8dAPTr5X+NtJA87FSgO2M90WAb__eS9Lw@mail.gmail.com>
<CAM9w-_m+A_EJ-za9b-Fr-Y=Vbv4prWRYMEyB+N4tt7xhuiDGbA@mail.gmail.com>
<CA+OCxoxbTp=niVEJown-P=Jk+m=AqETSUEkurdPYntXUg7CSpA@mail.gmail.com>
Hi Hackers,
Attached is the revised patch. The warning occurrence is configurable from
Preferences > Browser > Display.
Kindly review.
On Tue, Jan 22, 2019 at 5:38 PM Dave Page <[email protected]>
wrote:
> On Tue, Jan 22, 2019 at 12:01 PM Aditya Toshniwal
> <[email protected]> wrote:
> >
> >
> >
> > On Tue, Jan 22, 2019 at 5:27 PM Dave Page <[email protected]>
> wrote:
> >>
> >> On Tue, Jan 22, 2019 at 11:54 AM Aditya Toshniwal
> >> <[email protected]> wrote:
> >> >
> >> > Any suggestions on preferences name/desc ?
> >>
> >> Name: "Confirm on close"
> >> Desc: "Confirm closure of the browser or browser tab is intended
> >> before proceeding."
> >
> > It also warns on refresh.
>
> Name: "Confirm on close or refresh"
> Desc: "Confirm closure or refresh of the browser or browser tab is
> intended before proceeding."
>
> >>
> >>
> >>
> >> > On Tue, Jan 22, 2019 at 3:01 PM Dave Page <[email protected]>
> wrote:
> >> >>
> >> >> Hi
> >> >>
> >> >> On Tue, Jan 22, 2019 at 6:27 AM Akshay Joshi
> >> >> <[email protected]> wrote:
> >> >> >
> >> >> > Hi Aditya
> >> >> >
> >> >> > Below are my review comments:
> >> >> >
> >> >> > You have added new config parameter "DISABLE_BEFOREUNLOAD_MESSAGE"
> to make this request configurable, should it be the part of preferences
> setting instead of configuration? @Dave can you please comment on this.
> >> >>
> >> >> That does seem like something that should be a per-user preference,
> >> >> not a global config option.
> >> >>
> >> >> > Name "DISABLE_BEFOREUNLOAD_MESSAGE" is not clear as users
> perspective, can you please change it to some meaningful name.
> >> >> >
> >> >> > Apart from that code looks good to me.
> >> >> >
> >> >> > On Mon, Jan 21, 2019 at 1:24 PM Aditya Toshniwal <
> [email protected]> wrote:
> >> >> >>
> >> >> >> Hi Hackers,
> >> >> >>
> >> >> >> Attached is the patch to throw alert warning when user reloads or
> closes the browser.
> >> >> >>
> >> >> >> Kindly review.
> >> >> >>
> >> >> >> --
> >> >> >> Thanks and Regards,
> >> >> >> Aditya Toshniwal
> >> >> >> Software Engineer | EnterpriseDB Software Solutions | Pune
> >> >> >> "Don't Complain about Heat, Plant a tree"
> >> >> >
> >> >> >
> >> >> >
> >> >> > --
> >> >> > Akshay Joshi
> >> >> > Sr. Software Architect
> >> >> >
> >> >> >
> >> >> > Phone: +91 20-3058-9517
> >> >> > Mobile: +91 976-788-8246
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Dave Page
> >> >> VP, Chief Architect, Tools & Installers
> >> >> EnterpriseDB: http://www.enterprisedb.com
> >> >> The Enterprise PostgreSQL Company
> >> >>
> >> >> Blog: http://pgsnake.blogspot.com
> >> >> Twitter: @pgsnake
> >> >
> >> >
> >> >
> >> > --
> >> > Thanks and Regards,
> >> > Aditya Toshniwal
> >> > Software Engineer | EnterpriseDB Software Solutions | Pune
> >> > "Don't Complain about Heat, Plant a tree"
> >>
> >>
> >>
> >> --
> >> Dave Page
> >> VP, Chief Architect, Tools & Installers
> >> EnterpriseDB: http://www.enterprisedb.com
> >> The Enterprise PostgreSQL Company
> >>
> >> Blog: http://pgsnake.blogspot.com
> >> Twitter: @pgsnake
> >
> >
> >
> > --
> > Thanks and Regards,
> > Aditya Toshniwal
> > Software Engineer | EnterpriseDB Software Solutions | Pune
> > "Don't Complain about Heat, Plant a tree"
>
>
>
> --
> Dave Page
> VP, Chief Architect, Tools & Installers
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
--
Thanks and Regards,
Aditya Toshniwal
Software Engineer | EnterpriseDB Software Solutions | Pune
"Don't Complain about Heat, Plant a tree"
Attachments:
[application/x-patch] RM3849_v2.patch (6.1K, 3-RM3849_v2.patch)
download | inline diff:
diff --git a/web/pgadmin/browser/register_browser_preferences.py b/web/pgadmin/browser/register_browser_preferences.py
index 5bee817e..c7ea8126 100644
--- a/web/pgadmin/browser/register_browser_preferences.py
+++ b/web/pgadmin/browser/register_browser_preferences.py
@@ -38,6 +38,16 @@ def register_browser_preferences(self):
)
)
+ self.preference.register(
+ 'display', 'confirm_on_refresh_close',
+ gettext("Confirm on close or refresh ?"), 'boolean',
+ True, category_label=gettext('Display'),
+ help_str=gettext(
+ 'Confirm closure or refresh of the browser or browser tab is '
+ 'intended before proceeding.'
+ )
+ )
+
self.table_row_count_threshold = self.preference.register(
'properties', 'table_row_count_threshold',
gettext("Count rows if estimated less than"), 'integer', 2000,
diff --git a/web/pgadmin/browser/static/js/browser.js b/web/pgadmin/browser/static/js/browser.js
index cc2ea056..2accd182 100644
--- a/web/pgadmin/browser/static/js/browser.js
+++ b/web/pgadmin/browser/static/js/browser.js
@@ -1991,10 +1991,18 @@ define('pgadmin.browser', [
pgAdmin.Browser.editor_shortcut_keys.Tab = 'insertSoftTab';
}
- $(window).on('beforeunload', function() {
- let pref = pgBrowser.get_preference('browser', 'browser_tree_state_save_interval');
- if (!_.isUndefined(pref) && pref.value !== -1)
+ $(window).on('beforeunload', function(e) {
+ let tree_save_interval = pgBrowser.get_preference('browser', 'browser_tree_state_save_interval'),
+ confirm_on_refresh_close = pgBrowser.get_preference('browser', 'confirm_on_refresh_close');
+ if (!_.isUndefined(tree_save_interval) && tree_save_interval.value !== -1)
pgAdmin.Browser.browserTreeState.save_state();
+
+ if(confirm_on_refresh_close.value) {
+ /* This message will not be displayed in Chrome, Firefox, Safari as they have disabled it*/
+ let msg = S(gettext('Are you sure you want to close the %s browser?')).sprintf(pgBrowser.utils.app_name).value();
+ e.originalEvent.returnValue = msg;
+ return msg;
+ }
});
return pgAdmin.Browser;
diff --git a/web/regression/python_test_utils/test_utils.py b/web/regression/python_test_utils/test_utils.py
index b75e18a0..deee7a4f 100644
--- a/web/regression/python_test_utils/test_utils.py
+++ b/web/regression/python_test_utils/test_utils.py
@@ -649,55 +649,73 @@ def get_db_server(sid):
def set_preference(default_binary_path):
conn = sqlite3.connect(config.TEST_SQLITE_PATH)
cur = conn.cursor()
- perf = Preferences.module('paths')
- server_types = default_binary_path.keys()
+ paths_pref = Preferences.module('paths')
+ server_types = default_binary_path.keys()
for server in server_types:
- path_pref = perf.preference('{0}_bin_dir'.format(server))
+ pref_bin_path = paths_pref.preference('{0}_bin_dir'.format(server))
user_pref = cur.execute(
'SELECT pid, uid FROM user_preferences '
- 'where pid=%s' % path_pref.pid
+ 'where pid=%s' % pref_bin_path.pid
)
user_pref_data = user_pref.fetchone()
if user_pref_data:
cur.execute(
'UPDATE user_preferences SET value = ? WHERE pid = ?',
- (default_binary_path[server], path_pref.pid)
+ (default_binary_path[server], pref_bin_path.pid)
)
else:
- params = (path_pref.pid, 1, default_binary_path[server])
+ params = (pref_bin_path.pid, 1, default_binary_path[server])
cur.execute(
'INSERT INTO user_preferences(pid, uid, value)'
' VALUES (?,?,?)', params
)
- conn.commit()
- conn.close()
+ browser_pref = Preferences.module('browser')
+ # Disable tree state save for tests
+ pref_tree_state_save_interval = \
+ browser_pref.preference('browser_tree_state_save_interval')
-def disable_tree_state_save():
- conn = sqlite3.connect(config.TEST_SQLITE_PATH)
- cur = conn.cursor()
- pref = Preferences.module('browser')\
- .preference('browser_tree_state_save_interval')
+ user_pref = cur.execute(
+ 'SELECT pid, uid FROM user_preferences '
+ 'where pid=?', (pref_tree_state_save_interval.pid,)
+ )
+
+ if len(user_pref.fetchall()) == 0:
+ cur.execute(
+ 'INSERT INTO user_preferences(pid, uid, value)'
+ ' VALUES (?,?,?)', (pref_tree_state_save_interval.pid, 1, -1)
+ )
+ else:
+ cur.execute(
+ 'UPDATE user_preferences'
+ ' SET VALUE = ?'
+ ' WHERE PID = ?', (-1, pref_tree_state_save_interval.pid)
+ )
+
+ # Disable reload warning on browser
+ pref_confirm_on_refresh_close = \
+ browser_pref.preference('confirm_on_refresh_close')
user_pref = cur.execute(
'SELECT pid, uid FROM user_preferences '
- 'where pid=?', (pref.pid,)
+ 'where pid=?', (pref_confirm_on_refresh_close.pid,)
)
if len(user_pref.fetchall()) == 0:
cur.execute(
'INSERT INTO user_preferences(pid, uid, value)'
- ' VALUES (?,?,?)', (pref.pid, 1, -1)
+ ' VALUES (?,?,?)', (pref_confirm_on_refresh_close.pid, 1, 'False')
)
else:
cur.execute(
'UPDATE user_preferences'
' SET VALUE = ?'
- ' WHERE PID = ?', (-1, pref.pid)
+ ' WHERE PID = ?', ('False', pref_confirm_on_refresh_close.pid)
)
+
conn.commit()
conn.close()
diff --git a/web/regression/runtests.py b/web/regression/runtests.py
index 0284753c..4faf70c6 100644
--- a/web/regression/runtests.py
+++ b/web/regression/runtests.py
@@ -419,9 +419,6 @@ if __name__ == '__main__':
if server['default_binary_paths'] is not None:
test_utils.set_preference(server['default_binary_paths'])
- # Disable tree state saving
- test_utils.disable_tree_state_save()
-
suite = get_suite(test_module_list,
server,
test_client,
view thread (11+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected]
Subject: Re: [pgAdmin4][RM3849] Ask to save unsaved query changes stopped working
In-Reply-To: <CAM9w-_k-q1xJukuacMfUuonXombTqgNSFv+DqBDUMo9EGde35w@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox