mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Fixed accessibility issues in schema diff module. Fixes #6065
This commit is contained in:
committed by
Akshay Joshi
parent
ed5fc20ee2
commit
c933771016
@@ -46,7 +46,7 @@ let SchemaDiffSqlControl =
|
||||
'<% if (copyRequired) { %><button class="btn btn-secondary ddl-copy d-none">' + gettext('Copy') + '</button> <% } %>',
|
||||
'<div class="pgadmin-controls pg-el-9 pg-el-12 sql_field_layout <%=extraClasses.join(\' \')%>">',
|
||||
' <textarea ',
|
||||
' class="<%=Backform.controlClassName%> " name="<%=name%>"',
|
||||
' class="<%=Backform.controlClassName%> " name="<%=name%>" aria-label="<%=name%>"',
|
||||
' maxlength="<%=maxlength%>" placeholder="<%-placeholder%>" <%=disabled ? "disabled" : ""%>',
|
||||
' rows=<%=rows%>',
|
||||
' <%=required ? "required" : ""%>><%-value%></textarea>',
|
||||
@@ -120,7 +120,7 @@ let SchemaDiffSelect2Control =
|
||||
'<% }%>',
|
||||
'<div class="<%=controlsClassName%>">',
|
||||
' <select class="<%=Backform.controlClassName%> <%=extraClasses.join(\' \')%>"',
|
||||
' name="<%=name%>" value="<%-value%>" <%=disabled ? "disabled" : ""%>',
|
||||
' name="<%=name%>" aria-label="<%=name%>" value="<%-value%>" <%=disabled ? "disabled" : ""%>',
|
||||
' <%=required ? "required" : ""%><%= select2.multiple ? " multiple>" : ">" %>',
|
||||
' <%=select2.first_empty ? " <option></option>" : ""%>',
|
||||
' <% for (var i=0; i < options.length; i++) {%>',
|
||||
@@ -322,15 +322,13 @@ let SchemaDiffHeaderView = Backform.Form.extend({
|
||||
<div class="btn-group mr-1" role="group" aria-label="">
|
||||
<button id="btn-filter" type="button" class="btn btn-primary-icon"
|
||||
title=""
|
||||
accesskey=""
|
||||
tabindex="0"
|
||||
style="pointer-events: none;">
|
||||
<i class="fa fa-filter sql-icon-lg" aria-hidden="true"></i> ` + gettext('Filter') + `
|
||||
</button>
|
||||
<button id="btn-filter-dropdown" type="button" class="btn btn-primary-icon dropdown-toggle dropdown-toggle-split"
|
||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"
|
||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="filter"
|
||||
title=""
|
||||
accesskey=""
|
||||
tabindex="0">
|
||||
</button>` +
|
||||
[
|
||||
@@ -492,7 +490,7 @@ let SchemaDiffFooterView = Backform.Form.extend({
|
||||
}
|
||||
controls.push(cntr);
|
||||
});
|
||||
|
||||
$('div.CodeMirror div textarea').attr('aria-label', 'textarea');
|
||||
let $diff_sc = this.$el.find('.source_ddl'),
|
||||
$diff_tr = this.$el.find('.target_ddl'),
|
||||
$diff = this.$el.find('.diff_ddl'),
|
||||
|
||||
@@ -396,10 +396,12 @@ export default class SchemaDiffUI {
|
||||
self.dataView.onRowCountChanged.subscribe(function () {
|
||||
grid.updateRowCount();
|
||||
grid.render();
|
||||
self.accessibility_error();
|
||||
});
|
||||
self.dataView.onRowsChanged.subscribe(function (e, args) {
|
||||
grid.invalidateRows(args.rows);
|
||||
grid.render();
|
||||
self.accessibility_error();
|
||||
});
|
||||
|
||||
// Change Row css on the basis of item status
|
||||
@@ -430,6 +432,7 @@ export default class SchemaDiffUI {
|
||||
|
||||
let $data_grid = $('#schema-diff-grid');
|
||||
grid = this.grid = new Slick.Grid($data_grid, self.dataView, columns, options);
|
||||
$('label[for='+ columns[0].name.split('\'')[1] +']').append('<span style="display:none">checkbox</span>');
|
||||
grid.registerPlugin(groupItemMetadataProvider);
|
||||
grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: false}));
|
||||
grid.registerPlugin(checkboxSelector);
|
||||
@@ -483,6 +486,18 @@ export default class SchemaDiffUI {
|
||||
self.dataView.refresh();
|
||||
|
||||
self.resize_grid();
|
||||
self.accessibility_error();
|
||||
}
|
||||
|
||||
accessibility_error() {
|
||||
$('.slick-viewport').scroll(function() {
|
||||
setTimeout(function() {
|
||||
$('span.slick-column-name label').append('<span style="display:none">checkbox</span>');
|
||||
$('div.slick-cell.l0 label').each(function(inx, el) {
|
||||
$(el).append('<span style="display:none">checkbox</span>');
|
||||
});
|
||||
}, 0);
|
||||
});
|
||||
}
|
||||
|
||||
handle_generate_button(){
|
||||
@@ -809,6 +824,7 @@ export default class SchemaDiffUI {
|
||||
header_panel = self.docker.findPanels('schema_diff_header_panel')[0];
|
||||
|
||||
footer_panel.$container.find('#schema-diff-ddl-comp').append(self.footer.render().$el);
|
||||
$('div.CodeMirror div textarea').attr('aria-label', 'textarea');
|
||||
header_panel.$container.find('#schema-diff-grid').append(`<div class='obj_properties container-fluid'>
|
||||
<div class='pg-panel-message'>` + gettext('<strong>Database Compare:</strong> Select the server and database for the source and target and Click <strong>Compare</strong>.') +
|
||||
gettext('</br><strong>Schema Compare:</strong> Select the server, database and schema for the source and target and Click <strong>Compare</strong>.') +
|
||||
|
||||
Reference in New Issue
Block a user