1) Added aria-label to buttons used in graphical explain plan.

2) Fixed minor issue where we use dialog tab navigator keyboard shortcut only on visible tabs.
3) Fixed an issue where Zoom in, Zoom out, Zoom to original and Download button should not blur the focus after a click on them.

Initial patch sent by Murtuza Zabuawala.
This commit is contained in:
Nagesh Dhope 2019-12-31 13:05:46 +05:30 committed by Akshay Joshi
parent cc5c3776ca
commit 37f76142fb
2 changed files with 16 additions and 16 deletions

View File

@ -1283,7 +1283,8 @@ define('pgadmin.misc.explain', [
}).appendTo(graphicalContainer),
zoomInBtn = $('<button></button>', {
class: 'btn btn-secondary pg-explain-zoom-btn',
title: 'Zoom in',
title: gettext('Zoom in'),
'aria-label': gettext('Zoom in'),
tabindex: 0,
}).appendTo(zoomArea).append(
$('<i></i>', {
@ -1291,7 +1292,8 @@ define('pgadmin.misc.explain', [
})),
zoomToNormal = $('<button></button>', {
class: 'btn btn-secondary pg-explain-zoom-btn',
title: 'Zoom to original',
title: gettext('Zoom to original'),
'aria-label': gettext('Zoom to original'),
tabindex: 0,
}).appendTo(zoomArea).append(
$('<i></i>', {
@ -1299,7 +1301,8 @@ define('pgadmin.misc.explain', [
})),
zoomOutBtn = $('<button></button>', {
class: 'btn btn-secondary pg-explain-zoom-btn',
title: 'Zoom out',
title: gettext('Zoom out'),
'aria-label': gettext('Zoom out'),
tabindex: 0,
}).appendTo(zoomArea).append(
$('<i></i>', {
@ -1313,7 +1316,8 @@ define('pgadmin.misc.explain', [
downloadBtn = $('<button></button>', {
id: 'btn-explain-download',
class: 'btn btn-secondary pg-explain-download-btn',
title: 'Download',
title: gettext('Download'),
'aria-label': gettext('Download'),
tabindex: 0,
disabled: function() {
var current_browser = pgAdmin.Browser.get_browser();
@ -1341,7 +1345,8 @@ define('pgadmin.misc.explain', [
$('<button></button>', {
id: 'btn-explain-stats',
class: 'btn btn-secondary pg-explain-stats-btn',
title: 'Statistics',
title: gettext('Statistics'),
'aria-label': gettext('Statistics'),
tabindex: 0,
}).appendTo(statsArea).append(
$('<i></i>', {
@ -1380,7 +1385,6 @@ define('pgadmin.misc.explain', [
var today = new Date();
var filename = 'explain_plan_' + today.getTime() + '.svg';
svgDownloader.downloadSVG(s.toString(), filename);
downloadBtn.trigger('blur');
}
};
@ -1450,7 +1454,6 @@ define('pgadmin.misc.explain', [
'height': h * curr_zoom_factor,
});
planDiv.data('zoom-factor', curr_zoom_factor);
zoomInBtn.trigger('blur');
});
zoomOutBtn.on('click', function() {
@ -1466,7 +1469,6 @@ define('pgadmin.misc.explain', [
'height': h * curr_zoom_factor,
});
planDiv.data('zoom-factor', curr_zoom_factor);
zoomOutBtn.trigger('blur');
});
zoomToNormal.on('click', function() {
@ -1482,7 +1484,6 @@ define('pgadmin.misc.explain', [
'height': h * curr_zoom_factor,
});
planDiv.data('zoom-factor', curr_zoom_factor);
zoomToNormal.trigger('blur');
});
downloadBtn.on('click', function() {
@ -1495,7 +1496,6 @@ define('pgadmin.misc.explain', [
var today = new Date();
var filename = 'explain_plan_' + today.getTime() + '.svg';
svgDownloader.downloadSVG(s.toString(), filename);
downloadBtn.trigger('blur');
}
});
});

View File

@ -19,7 +19,7 @@ class dialogTabNavigator {
this.tabSwitching = false;
this.tabs = this.dialogContainer.find('.nav-tabs');
this.tabs = this.dialogContainer.find('.nav-tabs:visible');
if (this.tabs.length > 0 ) {
this.tabs = this.tabs[0];
@ -35,7 +35,7 @@ class dialogTabNavigator {
onKeyboardEvent(event, shortcut) {
var currentTabPane = this.dialogContainer
.find('.tab-content:first > .tab-pane.active:first'),
.find('.tab-content:first > .tab-pane.active:first:visible'),
childTabData = this.isActivePaneHasChildTabs(currentTabPane);
if (this.tabSwitching) {
@ -57,12 +57,12 @@ class dialogTabNavigator {
}
isActivePaneHasChildTabs(currentTabPane) {
var childTab = currentTabPane.find('.nav-tabs:first'),
var childTab = currentTabPane.find('.nav-tabs:first:visible'),
childTabPane;
if (childTab.length > 0) {
childTabPane = currentTabPane
.find('.tab-content:first > .tab-pane.active:first');
.find('.tab-content:first > .tab-pane.active:first:visible');
return {
'childTab': childTab,
@ -93,7 +93,7 @@ class dialogTabNavigator {
nextTabPane = tab_pane.prev();
innerTabContainer = nextTabPane
.find('.tab-content:first > .tab-pane.active:first');
.find('.tab-content:first > .tab-pane.active:first:visible');
if (innerTabContainer.length > 0) {
findAndSetFocus(innerTabContainer);
@ -124,7 +124,7 @@ class dialogTabNavigator {
nextTabPane = tab_pane.next();
innerTabContainer = nextTabPane
.find('.tab-content:first > .tab-pane.active:first');
.find('.tab-content:first > .tab-pane.active:first:visible');
if (innerTabContainer.length > 0) {
findAndSetFocus(innerTabContainer);