diff --git a/web/pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/js/tablespaces.js b/web/pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/js/tablespaces.js index 0a84ca9fc..4e6d26ebf 100644 --- a/web/pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/js/tablespaces.js +++ b/web/pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/js/tablespaces.js @@ -177,11 +177,11 @@ define('pgadmin.node.tablespace', [ setup:function() { return { buttons: [{ - text: '', key: 27, className: 'btn btn-default pull-left fa fa-lg fa-question', + text: '', key: 112, className: 'btn btn-default pull-left fa fa-lg fa-question', attrs:{name:'dialog_help', type:'button', label: gettext('Users'), url: url_for('help.static', {'filename': 'move_objects.html'})} },{ - text: gettext('OK'), key: 27, className: 'btn btn-primary fa fa-lg fa-save pg-alertify-button' + text: gettext('OK'), key: 13, className: 'btn btn-primary fa fa-lg fa-save pg-alertify-button' },{ text: gettext('Cancel'), key: 27, className: 'btn btn-danger fa fa-lg fa-times pg-alertify-button' }], diff --git a/web/pgadmin/browser/server_groups/servers/templates/servers/servers.js b/web/pgadmin/browser/server_groups/servers/templates/servers/servers.js index 80e0a8912..cf7dfbcf7 100644 --- a/web/pgadmin/browser/server_groups/servers/templates/servers/servers.js +++ b/web/pgadmin/browser/server_groups/servers/templates/servers/servers.js @@ -403,7 +403,7 @@ define('pgadmin.node.server', [ setup:function() { return { buttons: [{ - text: gettext('Ok'), key: 27, className: 'btn btn-primary', attrs:{name:'submit'} + text: gettext('Ok'), key: 13, className: 'btn btn-primary', attrs:{name:'submit'} },{ text: gettext('Cancel'), key: 27, className: 'btn btn-danger', attrs:{name:'cancel'} }], diff --git a/web/pgadmin/browser/templates/browser/js/node.js b/web/pgadmin/browser/templates/browser/js/node.js index a353bb898..e10653c20 100644 --- a/web/pgadmin/browser/templates/browser/js/node.js +++ b/web/pgadmin/browser/templates/browser/js/node.js @@ -4,7 +4,12 @@ define([ 'backform', 'pgadmin.backform', 'wcdocker', 'pgadmin.alertifyjs' ], function(gettext, $, _, S, pgAdmin, Menu, Backbone, Alertify, pgBrowser, Backform) { - var wcDocker = window.wcDocker; + var wcDocker = window.wcDocker, + keyCode = { + ENTER: 13, + ESCAPE: 27, + F1: 112 + }; // It has already been defined. // Avoid running this script again. @@ -869,10 +874,41 @@ define([ j = panel.$container.find('.obj_properties').first(), view = j.data('obj-view'), content = $('
') - .addClass('pg-prop-content col-xs-12'), + .addClass('pg-prop-content col-xs-12'); + + // Handle key press events for Cancel, save and help button + var handleKeyDown = function(event, context) { + // If called on panel other than node_props, return + if (panel && panel['_type'] !== 'node_props') return; + + switch (event.which) { + case keyCode.ESCAPE: + closePanel(); + break; + case keyCode.ENTER: + // Return if event is fired from child element + if (event.target !== context) return; + if (view && view.model && view.model.sessChanged()) { + onSave.call(this, view); + } + break; + case keyCode.F1: + onDialogHelp(); + break; + default: + break; + } + }.bind(panel); + + setTimeout(function() { + // Register key press events with panel element + panel.$container.find('.backform-tab').on("keydown", function(event) { + handleKeyDown(event, this); + }); + }, 200); // wait for panel tab to render // Template function to create the status bar - createStatusBar = function(location){ + var createStatusBar = function(location){ var statusBar = $('').addClass( 'pg-prop-status-bar' ).appendTo(j); @@ -1077,6 +1113,61 @@ define([ iframe.openURL(that.dialogHelp); }.bind(panel), + onSave = function(view) { + var m = view.model, + d = m.toJSON(true), + + // Generate a timer for the request + timer = setTimeout(function(){ + $('.obj_properties').addClass('show_progress'); + }, 1000); + + if (d && !_.isEmpty(d)) { + m.save({}, { + attrs: d, + validate: false, + cache: false, + success: function() { + onSaveFunc.call(); + // Hide progress cursor + $('.obj_properties').removeClass('show_progress'); + clearTimeout(timer); + + // Removing the node-prop property of panel + // so that we show updated data on panel + var pnlProperties = pgBrowser.docker.findPanels('properties')[0], + pnlSql = pgBrowser.docker.findPanels('sql')[0], + pnlStats = pgBrowser.docker.findPanels('statistics')[0], + pnlDependencies = pgBrowser.docker.findPanels('dependencies')[0], + pnlDependents = pgBrowser.docker.findPanels('dependents')[0]; + + if(pnlProperties) + $(pnlProperties).removeData('node-prop'); + if(pnlSql) + $(pnlSql).removeData('node-prop'); + if(pnlStats) + $(pnlStats).removeData('node-prop'); + if(pnlDependencies) + $(pnlDependencies).removeData('node-prop'); + if(pnlDependents) + $(pnlDependents).removeData('node-prop'); + }, + error: function(m, jqxhr) { + Alertify.pgNotifier( + "error", jqxhr, + S( + gettext("Error saving properties: %s") + ).sprintf(jqxhr.statusText).value() + ); + + // Hide progress cursor + $('.obj_properties').removeClass('show_progress'); + clearTimeout(timer); + } + }); + } + }.bind(panel), + editFunc = function() { var panel = this; if (action && action == 'properties') { @@ -1171,58 +1262,7 @@ define([ register: function(btn) { // Save the changes btn.click(function() { - var m = view.model, - d = m.toJSON(true), - - // Generate a timer for the request - timer = setTimeout(function(){ - $('.obj_properties').addClass('show_progress'); - }, 1000); - - if (d && !_.isEmpty(d)) { - m.save({}, { - attrs: d, - validate: false, - cache: false, - success: function() { - onSaveFunc.call(); - // Hide progress cursor - $('.obj_properties').removeClass('show_progress'); - clearTimeout(timer); - - // Removing the node-prop property of panel - // so that we show updated data on panel - var pnlProperties = pgBrowser.docker.findPanels('properties')[0], - pnlSql = pgBrowser.docker.findPanels('sql')[0], - pnlStats = pgBrowser.docker.findPanels('statistics')[0], - pnlDependencies = pgBrowser.docker.findPanels('dependencies')[0], - pnlDependents = pgBrowser.docker.findPanels('dependents')[0]; - - if(pnlProperties) - $(pnlProperties).removeData('node-prop'); - if(pnlSql) - $(pnlSql).removeData('node-prop'); - if(pnlStats) - $(pnlStats).removeData('node-prop'); - if(pnlDependencies) - $(pnlDependencies).removeData('node-prop'); - if(pnlDependents) - $(pnlDependents).removeData('node-prop'); - }, - error: function(m, jqxhr) { - Alertify.pgNotifier( - "error", jqxhr, - S( - gettext("Error saving properties: %s") - ).sprintf(jqxhr.statusText).value() - ); - - // Hide progress cursor - $('.obj_properties').removeClass('show_progress'); - clearTimeout(timer); - } - }); - } + onSave.call(this, view); }); } },{ diff --git a/web/pgadmin/misc/file_manager/templates/file_manager/js/file_manager.js b/web/pgadmin/misc/file_manager/templates/file_manager/js/file_manager.js index aaee47877..0763849da 100644 --- a/web/pgadmin/misc/file_manager/templates/file_manager/js/file_manager.js +++ b/web/pgadmin/misc/file_manager/templates/file_manager/js/file_manager.js @@ -254,7 +254,7 @@ define([ return { buttons:[ { - text: gettext("Select"), className: "btn btn-primary fa fa-file file_manager_ok pg-alertify-button disabled" + text: gettext("Select"), key: 13, className: "btn btn-primary fa fa-file file_manager_ok pg-alertify-button disabled" }, { text: gettext("Cancel"), key: 27, className: "btn btn-danger fa fa-times pg-alertify-button" @@ -379,7 +379,7 @@ define([ return { buttons:[ { - text: gettext("Select"), className: "btn btn-primary fa fa-file file_manager_ok pg-alertify-button disabled" + text: gettext("Select"), key: 13, className: "btn btn-primary fa fa-file file_manager_ok pg-alertify-button disabled" }, { text: gettext("Cancel"), key: 27, className: "btn btn-danger fa fa-times pg-alertify-button" @@ -502,7 +502,7 @@ define([ return { buttons:[ { - text: gettext("Create"), className: "btn btn-primary fa fa-file file_manager_create file_manager_ok pg-alertify-button disabled" + text: gettext("Create"), key: 13, className: "btn btn-primary fa fa-file file_manager_create file_manager_ok pg-alertify-button disabled" }, { text: gettext("Cancel"), key: 27, className: "btn btn-danger fa fa-times file_manager_create_cancel pg-alertify-button" diff --git a/web/pgadmin/preferences/templates/preferences/preferences.js b/web/pgadmin/preferences/templates/preferences/preferences.js index 0eadc329f..080bc38e2 100644 --- a/web/pgadmin/preferences/templates/preferences/preferences.js +++ b/web/pgadmin/preferences/templates/preferences/preferences.js @@ -354,7 +354,7 @@ define([ setup: function() { return { buttons:[{ - text: '', key: 27, + text: '', key: 112, className: 'btn btn-default pull-left fa fa-lg fa-question', attrs:{ name:'dialog_help', type:'button', @@ -366,7 +366,7 @@ define([ },{ text: gettext('OK'), key: 13, className: "btn btn-primary fa fa-lg fa-save pg-alertify-button" },{ - text: gettext('Cancel'), className: "btn btn-danger fa fa-lg fa-times pg-alertify-button" + text: gettext('Cancel'), key: 27, className: "btn btn-danger fa fa-lg fa-times pg-alertify-button" }], focus: { element: 0 }, options: { diff --git a/web/pgadmin/tools/backup/templates/backup/js/backup.js b/web/pgadmin/tools/backup/templates/backup/js/backup.js index a3438cfb8..dac96a82d 100644 --- a/web/pgadmin/tools/backup/templates/backup/js/backup.js +++ b/web/pgadmin/tools/backup/templates/backup/js/backup.js @@ -437,15 +437,15 @@ TODO LIST FOR BACKUP: setup:function() { return { buttons: [{ - text: '', key: 27, className: 'btn btn-default pull-left fa fa-lg fa-info', + text: '', className: 'btn btn-default pull-left fa fa-lg fa-info', attrs:{name:'object_help', type:'button', url: 'backup.html', label: gettext('Backup')} },{ - text: '', key: 27, className: 'btn btn-default pull-left fa fa-lg fa-question', + text: '', key: 112, className: 'btn btn-default pull-left fa fa-lg fa-question', attrs:{name:'dialog_help', type:'button', label: gettext('Backup'), url: '{{ url_for('help.static', filename='backup_dialog.html') }}' } },{ - text: gettext('Backup'), key: 27, className: 'btn btn-primary fa fa-lg fa-save pg-alertify-button', + text: gettext('Backup'), key: 13, className: 'btn btn-primary fa fa-lg fa-save pg-alertify-button', 'data-btn-name': 'backup' },{ text: gettext('Cancel'), key: 27, className: 'btn btn-danger fa fa-lg fa-times pg-alertify-button', @@ -653,14 +653,14 @@ TODO LIST FOR BACKUP: setup:function() { return { buttons: [{ - text: '', key: 27, className: 'btn btn-default pull-left fa fa-lg fa-info', + text: '', className: 'btn btn-default pull-left fa fa-lg fa-info', attrs:{name:'object_help', type:'button', url: 'backup.html', label: gettext('Backup')} },{ - text: '', key: 27, className: 'btn btn-default pull-left fa fa-lg fa-question', + text: '', key: 112, className: 'btn btn-default pull-left fa fa-lg fa-question', attrs:{name:'dialog_help', type:'button', label: gettext('Backup'), url: '{{ url_for('help.static', filename='backup_dialog.html') }}'} },{ - text: gettext('Backup'), key: 27, className: 'btn btn-primary fa fa-lg fa-save pg-alertify-button', + text: gettext('Backup'), key: 13, className: 'btn btn-primary fa fa-lg fa-save pg-alertify-button', 'data-btn-name': 'backup' },{ text: gettext('Cancel'), key: 27, className: 'btn btn-danger fa fa-lg fa-times pg-alertify-button', diff --git a/web/pgadmin/tools/debugger/templates/debugger/js/debugger_ui.js b/web/pgadmin/tools/debugger/templates/debugger/js/debugger_ui.js index 8d711696d..cfbba13c2 100644 --- a/web/pgadmin/tools/debugger/templates/debugger/js/debugger_ui.js +++ b/web/pgadmin/tools/debugger/templates/debugger/js/debugger_ui.js @@ -428,7 +428,7 @@ define([ }, setup:function() { return { - buttons:[{ text: "Debug", key: 27, className: "btn btn-primary" }, + buttons:[{ text: "Debug", key: 13, className: "btn btn-primary" }, { text: "Cancel", key: 27, className: "btn btn-primary" }], options: { modal: 0, resizable: true } }; diff --git a/web/pgadmin/tools/import_export/templates/import_export/js/import_export.js b/web/pgadmin/tools/import_export/templates/import_export/js/import_export.js index 390a32429..d8a8c1374 100644 --- a/web/pgadmin/tools/import_export/templates/import_export/js/import_export.js +++ b/web/pgadmin/tools/import_export/templates/import_export/js/import_export.js @@ -375,7 +375,7 @@ define([ setup: function() { return { buttons:[{ - text: gettext("OK"), key: 27, disable: true, + text: gettext("OK"), key: 13, disable: true, 'data-btn-name': 'ok', className: "btn btn-primary fa fa-lg fa-save pg-alertify-button" diff --git a/web/pgadmin/tools/maintenance/templates/maintenance/js/maintenance.js b/web/pgadmin/tools/maintenance/templates/maintenance/js/maintenance.js index e22c42487..ab6e844c0 100644 --- a/web/pgadmin/tools/maintenance/templates/maintenance/js/maintenance.js +++ b/web/pgadmin/tools/maintenance/templates/maintenance/js/maintenance.js @@ -264,14 +264,14 @@ define([ setup: function() { return { buttons:[{ - text: '', key: 27, className: 'btn btn-default pull-left fa fa-lg fa-info', + text: '', className: 'btn btn-default pull-left fa fa-lg fa-info', attrs:{name:'object_help', type:'button', url: 'maintenance.html', label: gettext('Maintenance')} },{ - text: '', key: 27, className: 'btn btn-default pull-left fa fa-lg fa-question', + text: '', key: 112, className: 'btn btn-default pull-left fa fa-lg fa-question', attrs:{name:'dialog_help', type:'button', label: gettext('Maintenance'), url: '{{ url_for('help.static', filename='maintenance_dialog.html') }}'} },{ - text: gettext("OK"), key: 27, className: "btn btn-primary fa fa-lg fa-save pg-alertify-button", + text: gettext("OK"), key: 13, className: "btn btn-primary fa fa-lg fa-save pg-alertify-button", 'data-btn-name': 'ok', },{ text: gettext("Cancel"), key: 27, className: "btn btn-danger fa fa-lg fa-times pg-alertify-button", diff --git a/web/pgadmin/tools/restore/templates/restore/js/restore.js b/web/pgadmin/tools/restore/templates/restore/js/restore.js index b2d58e821..552ccf9ea 100644 --- a/web/pgadmin/tools/restore/templates/restore/js/restore.js +++ b/web/pgadmin/tools/restore/templates/restore/js/restore.js @@ -366,14 +366,14 @@ define([ setup:function() { return { buttons: [{ - text: '', key: 27, className: 'btn btn-default pull-left fa fa-lg fa-info', + text: '', className: 'btn btn-default pull-left fa fa-lg fa-info', attrs:{name:'object_help', type:'button', url: 'backup.html', label: gettext('Restore')} },{ - text: '', key: 27, className: 'btn btn-default pull-left fa fa-lg fa-question', + text: '', key: 112, className: 'btn btn-default pull-left fa fa-lg fa-question', attrs:{name:'dialog_help', type:'button', label: gettext('Restore'), url: '{{ url_for('help.static', filename='restore_dialog.html') }}'} },{ - text: gettext('Restore'), key: 27, + text: gettext('Restore'), key: 13, className: 'btn btn-primary fa fa-upload pg-alertify-button', restore: true, 'data-btn-name': 'restore' },{ diff --git a/web/pgadmin/tools/user_management/templates/user_management/js/user_management.js b/web/pgadmin/tools/user_management/templates/user_management/js/user_management.js index fbd5e1711..330a027fb 100644 --- a/web/pgadmin/tools/user_management/templates/user_management/js/user_management.js +++ b/web/pgadmin/tools/user_management/templates/user_management/js/user_management.js @@ -380,7 +380,7 @@ define([ setup:function() { return { buttons: [{ - text: '', key: 27, className: 'btn btn-default pull-left fa fa-lg fa-question', + text: '', key: 112, className: 'btn btn-default pull-left fa fa-lg fa-question', attrs:{name:'dialog_help', type:'button', label: gettext('Users'), url: '{{ url_for('help.static', filename='pgadmin_user.html') }}'} },{