mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2024-11-25 15:06:55 +00:00
Fix inaccessible link by keyboard nav in info bubble (#216)
* Fix inaccessible link by keyboard nav in info bubble * Fix shift-tab on link to focus previous element
This commit is contained in:
parent
26c832437b
commit
e62184a1f2
@ -517,13 +517,13 @@
|
|||||||
<div>
|
<div>
|
||||||
<span class="mandatoryStar">*</span>
|
<span class="mandatoryStar">*</span>
|
||||||
<span class="addCollectionLabel">Analytical store</span>
|
<span class="addCollectionLabel">Analytical store</span>
|
||||||
<span class="infoTooltip" role="tooltip" tabindex="0">
|
<span class="infoTooltip" role="tooltip" tabindex="0" data-bind="event: { focus: function(data, event) { transferFocus('tooltip1', 'link1') } }">
|
||||||
<img class="infoImg" src="/info-bubble.svg" alt="More information">
|
<img class="infoImg" src="/info-bubble.svg" alt="More information">
|
||||||
<span class="tooltiptext infoTooltipWidth">
|
<span id="tooltip1" class="tooltiptext infoTooltipWidth" data-bind="event: { mouseout: onMouseOut }">
|
||||||
Enable analytical store capability to perform near real-time analytics on your operational
|
Enable analytical store capability to perform near real-time analytics on your operational
|
||||||
data, without impacting the performance of transactional workloads.
|
data, without impacting the performance of transactional workloads.
|
||||||
Learn more <a class="errorLink" href="https://aka.ms/analytical-store-overview"
|
Learn more <a id="link1" class="errorLink" href="https://aka.ms/analytical-store-overview"
|
||||||
target="_blank">here</a>
|
target="_blank" data-bind="event: { focusout: onFocusOut, keydown: onKeyDown.bind($data, 'largePartitionKey') }">here</a>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -721,6 +721,29 @@ export default class AddCollectionPane extends ContextualPaneBase {
|
|||||||
TelemetryProcessor.trace(Action.CreateCollection, ActionModifiers.Open, addCollectionPaneOpenMessage);
|
TelemetryProcessor.trace(Action.CreateCollection, ActionModifiers.Open, addCollectionPaneOpenMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private transferFocus(elementIdToKeepVisible: string, elementIdToFocus: string): void {
|
||||||
|
document.getElementById(elementIdToKeepVisible).style.visibility = "visible";
|
||||||
|
document.getElementById(elementIdToFocus).focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
private onFocusOut(_: any, event: any): void {
|
||||||
|
event.target.parentElement.style.visibility = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
private onMouseOut(_: any, event: any): void {
|
||||||
|
event.target.style.visibility = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
private onKeyDown(previousActiveElementId: string, _: any, event: KeyboardEvent): boolean {
|
||||||
|
if (event.shiftKey && event.keyCode == Constants.KeyCodes.Tab) {
|
||||||
|
document.getElementById(previousActiveElementId).focus();
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
// Execute default action
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private _onDatabasesChange(newDatabaseIds: ViewModels.Database[]) {
|
private _onDatabasesChange(newDatabaseIds: ViewModels.Database[]) {
|
||||||
const cachedDatabaseIdsList = _.map(newDatabaseIds, (database: ViewModels.Database) => {
|
const cachedDatabaseIdsList = _.map(newDatabaseIds, (database: ViewModels.Database) => {
|
||||||
if (database && database.offer && database.offer()) {
|
if (database && database.offer && database.offer()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user