V8: Accessibility Changes For umbEditorHeader Directive (edit user) (#7102)

This commit is contained in:
Rachel Breeze
2020-05-26 13:59:33 +01:00
committed by GitHub
parent c3c98e2621
commit 5541d13020
2 changed files with 78 additions and 63 deletions

View File

@@ -206,7 +206,7 @@ Use this directive to construct a header inside the main editor window.
(function () {
'use strict';
function EditorHeaderDirective(editorService, localizationService, editorState) {
function EditorHeaderDirective(editorService, localizationService, editorState, $rootScope) {
function link(scope, $injector) {
@@ -224,27 +224,9 @@ Use this directive to construct a header inside the main editor window.
if (editorState.current) {
//to do make work for user create/edit
// to do make it work for user group create/ edit
// to do make it work for language edit/create
// to do make it work for log viewer
scope.isNew = editorState.current.id === 0 ||
editorState.current.id === "0" ||
editorState.current.id === -1 ||
editorState.current.id === 0 ||
editorState.current.id === "-1";
var localizeVars = [
scope.isNew ? "visuallyHiddenTexts_createItem" : "visuallyHiddenTexts_edit",
"visuallyHiddenTexts_name",
scope.isNew ? "general_new" : "general_edit"
];
if (scope.editorfor) {
localizeVars.push(scope.editorfor);
}
localizationService.localizeMany(localizeVars).then(function(data) {
setAccessibilityForEditor(data);
scope.loading = false;
});
// to make it work for language edit/create
setAccessibilityForEditorState();
scope.loading = false;
} else {
scope.loading = false;
}
@@ -283,59 +265,91 @@ Use this directive to construct a header inside the main editor window.
editorService.iconPicker(iconPicker);
};
function setAccessibilityForEditor(data) {
if (editorState.current) {
if (scope.nameLocked) {
scope.accessibility.a11yName = scope.name;
SetPageTitle(scope.name);
} else {
scope.accessibility.a11yMessage = data[0];
scope.accessibility.a11yName = data[1];
var title = data[2] + ":";
if (!scope.isNew) {
scope.accessibility.a11yMessage += " " + scope.name;
title += " " + scope.name;
} else {
var name = "";
if (editorState.current.contentTypeName) {
name = editorState.current.contentTypeName;
} else if (scope.editorfor) {
name = data[3];
}
if (name !== "") {
scope.accessibility.a11yMessage += " " + name;
scope.accessibility.a11yName = name + " " + scope.accessibility.a11yName;
title += " " + name;
}
}
if (title !== data[2] + ":") {
SetPageTitle(title);
}
}
scope.accessibility.a11yMessageVisible = !isEmptyOrSpaces(scope.accessibility.a11yMessage);
scope.accessibility.a11yNameVisible = !isEmptyOrSpaces(scope.accessibility.a11yName);
function setAccessibilityForEditorState() {
var isNew = editorState.current.id === 0 ||
editorState.current.id === "0" ||
editorState.current.id === -1 ||
editorState.current.id === 0 ||
editorState.current.id === "-1";
var contentTypeName = "";
if (editorState.current.contentTypeName) {
contentTypeName = editorState.current.contentTypeName;
}
var setTitle = false;
if (scope.setpagetitle !== undefined) {
setTitle = scope.setpagetitle;
}
setAccessibilityHeaderDirective(isNew, scope.editorfor, scope.nameLocked, scope.name, contentTypeName, setTitle);
}
function setAccessibilityHeaderDirective(isNew, editorFor, nameLocked, entityName, contentTypeName, setTitle) {
var localizeVars = [
isNew ? "visuallyHiddenTexts_createItem" : "visuallyHiddenTexts_edit",
"visuallyHiddenTexts_name",
isNew ? "general_new" : "general_edit"
];
if (editorFor) {
localizeVars.push(editorFor);
}
localizationService.localizeMany(localizeVars).then(function(data) {
if (nameLocked) {
scope.accessibility.a11yName = entityName;
if (setTitle) {
SetPageTitle(entityName);
}
} else {
scope.accessibility.a11yMessage = data[0];
scope.accessibility.a11yName = data[1];
var title = data[2] + ":";
if (!isNew) {
scope.accessibility.a11yMessage += " " + entityName;
title += " " + entityName;
} else {
var name = "";
if (contentTypeName) {
name = editorState.current.contentTypeName;
} else if (editorFor) {
name = data[3];
}
if (name !== "") {
scope.accessibility.a11yMessage += " " + name;
scope.accessibility.a11yName = name + " " + scope.accessibility.a11yName;
title += " " + name;
}
}
if (setTitle && title !== data[2] + ":") {
SetPageTitle(title);
}
}
scope.accessibility.a11yMessageVisible = !isEmptyOrSpaces(scope.accessibility.a11yMessage);
scope.accessibility.a11yNameVisible = !isEmptyOrSpaces(scope.accessibility.a11yName);
});
}
function isEmptyOrSpaces(str) {
return str === null || str===undefined || str.trim ==='';
}
function SetPageTitle(title) {
var setTitle = false;
if (scope.setpagetitle !== undefined) {
setTitle = scope.setpagetitle;
}
if (setTitle) {
scope.$emit("$changeTitle", title);
}
}
$rootScope.$on('$setAccessibleHeader', function (event, isNew, editorFor, nameLocked, name, contentTypeName, setTitle) {
setAccessibilityHeaderDirective(isNew, editorFor, nameLocked, name, contentTypeName, setTitle);
});
}
var directive = {
transclude: true,
restrict: 'E',

View File

@@ -103,6 +103,7 @@
vm.changePasswordModel.config.allowManuallyChangingPassword = true;
}
$scope.$emit("$setAccessibleHeader", false, "general_user", false, vm.user.name, "", true);
vm.loading = false;
});
});