Fixed keyboard navigation for dialog tabs. Fixes #3862

This commit is contained in:
Harshal Dhumal
2019-01-22 16:28:32 +05:30
committed by Akshay Joshi
parent 3e7381414f
commit f731ab730b
6 changed files with 124 additions and 31 deletions

View File

@@ -349,11 +349,11 @@ _.extend(pgBrowser.keyboardNavigation, {
d: selectedTreeNodeData,
};
},
getDialogTabNavigator: function(dialog) {
getDialogTabNavigator: function(dialogContainer) {
const backward_shortcut = pgBrowser.get_preference('browser', 'dialog_tab_backward').value;
const forward_shortcut = pgBrowser.get_preference('browser', 'dialog_tab_forward').value;
return new dialogTabNavigator.dialogTabNavigator(dialog, backward_shortcut, forward_shortcut);
return new dialogTabNavigator.dialogTabNavigator(dialogContainer, backward_shortcut, forward_shortcut);
},
});

View File

@@ -412,8 +412,6 @@ define('pgadmin.browser.node', [
view.render();
setFocusOnEl();
newModel.startNewSession();
// var dialogTabNavigator = pgBrowser.keyboardNavigation.getDialogTabNavigator(view);
pgBrowser.keyboardNavigation.getDialogTabNavigator(view);
},
error: function(xhr, error, message) {
var _label = that && item ?
@@ -450,8 +448,6 @@ define('pgadmin.browser.node', [
view.render();
setFocusOnEl();
newModel.startNewSession();
// var dialogTabNavigator = pgBrowser.keyboardNavigation.getDialogTabNavigator(view);
pgBrowser.keyboardNavigation.getDialogTabNavigator(view);
}
}
@@ -1083,7 +1079,7 @@ define('pgadmin.browser.node', [
// All buttons will be created within a single
// div area.
var btnGroup =
$('<div></div>').addClass(
$('<div tabindex="0"></div>').addClass(
'pg-prop-btn-group'
),
// Template used for creating a button
@@ -1200,7 +1196,6 @@ define('pgadmin.browser.node', [
});
},
});
createButtons(buttons, 'header', 'pg-prop-btn-group-above');
}
j.append(content);
@@ -1392,7 +1387,7 @@ define('pgadmin.browser.node', [
);
// Create proper buttons
createButtons([{
let btn_grp = createButtons([{
label: '',
type: 'help',
tooltip: gettext('SQL help for this object type.'),
@@ -1458,6 +1453,18 @@ define('pgadmin.browser.node', [
});
},
}], 'footer', 'pg-prop-btn-group-below');
btn_grp.on('keydown', 'button', function(event) {
if (event.keyCode == 9 && $(this).nextAll('button:not([disabled])').length == 0) {
// set focus back to first editable input element of current active tab once we cycle through all enabled buttons.
commonUtils.findAndSetFocus(view.$el.find('.tab-content div.active'));
return false;
}
});
setTimeout(function() {
pgBrowser.keyboardNavigation.getDialogTabNavigator(panel.pgElContainer);
}, 200);
}
// Create status bar.