mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
e2e test error page and fix (#3672)
* fix wrong input parameter functionality * not reload the page to go to the content service page * navigate instead to reload to go to the process service page
This commit is contained in:
committed by
Eugenio Romano
parent
6cf6c9c0e4
commit
2e0945b0cc
@@ -16,41 +16,15 @@ Once you have caught the error in your server you will need to redirect to `/err
|
||||
this.router.navigate(['/error', errorCode]);
|
||||
```
|
||||
|
||||
```html
|
||||
<div class="adf-error-content">
|
||||
<p class="adf-error-content-code">
|
||||
{{ errorCode }}
|
||||
</p>
|
||||
<div class="adf-error-content-shadow"></div>
|
||||
<p class="adf-error-content-title">
|
||||
{{ 'ERROR_CONTENT.' + errorCode + '.TITLE' | translate }}
|
||||
</p>
|
||||
<p class="adf-error-content-description">
|
||||
{{ 'ERROR_CONTENT.' + errorCode + '.DESCRIPTION' | translate }}
|
||||
</p>
|
||||
<div class="adf-error-content-buttons">
|
||||
<a href="/" mat-raised-button color="primary"
|
||||
*ngIf="secondaryButtonText" (click)="onSecondButton()"
|
||||
class="adf-error-content-description-link">
|
||||
{{ 'ERROR_CONTENT.' + errorCode + '.SECONDARY_BUTTON.TEXT' | translate | uppercase }}
|
||||
</a>
|
||||
<a href="/" mat-raised-button color="primary" (click)="onReturnButton()">
|
||||
{{ 'ERROR_CONTENT.' + this.errorCode + '.RETURN_BUTTON.TEXT' | translate | uppercase }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
### Error Content Component
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| errorCode | string | Error code |
|
||||
| returnButtonUrl | string | URL for the return button |
|
||||
| secondaryButtonText | string | (Optional) Text that will be displayed inside the secondary button |
|
||||
| secondaryButtonUrl | string | (Optional) URL for the secondary button |
|
||||
| Name | Type | Default | Description |
|
||||
| ---- | ---- |---- | ----------- |
|
||||
| errorCode | string | |Error code |
|
||||
| returnButtonUrl | string | "/" |URL for the return button |
|
||||
| secondaryButtonUrl | string | "report-issue" |(Optional) URL for the secondary button |
|
||||
|
||||
Note that you will also have to provide values for the variables used in the view template.
|
||||
|
||||
@@ -65,12 +39,10 @@ You can customize your error messages by adding them to the translate files insi
|
||||
"TITLE": "An error occurred.",
|
||||
"DESCRIPTION": "We couldn’t find the page you were looking for.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Back to home",
|
||||
"ROUTE": "home"
|
||||
"TEXT": "Back to home"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -78,4 +50,4 @@ You can customize your error messages by adding them to the translate files insi
|
||||
|
||||
## See also
|
||||
|
||||
- [Empty Content component](empty-content.component.md)
|
||||
- [Empty Content component](empty-content.component.md)
|
||||
|
@@ -44,11 +44,34 @@ describe('Error Component', () => {
|
||||
|
||||
});
|
||||
|
||||
it('[C277302] Error message displayed without permissions', () => {
|
||||
it('[C277302] Should display the error 403 when access to unathorized page', () => {
|
||||
browser.get(TestConfig.adf.url + '/error/403');
|
||||
expect(errorPage.getErrorCode()).toBe('403');
|
||||
expect(errorPage.getErrorTitle()).toBe('You don\'t have permission to access this server.');
|
||||
expect(errorPage.getErrorDescription()).toBe('You\'re not allowed access to this resource on the server.');
|
||||
});
|
||||
|
||||
it('[C280563] Should back home button navigate to the home page', () => {
|
||||
browser.get(TestConfig.adf.url + '/error/404');
|
||||
|
||||
errorPage.clickBackButton();
|
||||
|
||||
expect(browser.getCurrentUrl()).toBe(TestConfig.adf.url + '/');
|
||||
});
|
||||
|
||||
it('[C280564] Should secondary button by default redirect to report-issue URL', () => {
|
||||
browser.get(TestConfig.adf.url + '/error/403');
|
||||
|
||||
errorPage.clickSecondButton();
|
||||
|
||||
expect(browser.getCurrentUrl()).toBe(TestConfig.adf.url + '/report-issue');
|
||||
});
|
||||
|
||||
it('[C277304] We couldn’t find the page you were looking for.\' to be \'You\'re not allowed access to this resource on the server.', () => {
|
||||
browser.get(TestConfig.adf.url + '/error/404');
|
||||
expect(errorPage.getErrorCode()).toBe('404');
|
||||
expect(errorPage.getErrorTitle()).toBe('An error occurred.');
|
||||
expect(errorPage.getErrorDescription()).toBe('We couldn’t find the page you were looking for.');
|
||||
});
|
||||
|
||||
});
|
||||
|
@@ -15,8 +15,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { protractor } from 'protractor';
|
||||
|
||||
import AdfSettingsPage = require('../pages/adf/settingsPage');
|
||||
import LoginPage = require('../pages/adf/loginPage');
|
||||
import UserInfoDialog = require('../pages/adf/dialog/userInfoDialog');
|
||||
|
@@ -68,7 +68,7 @@ var CardViewComponentPage = function () {
|
||||
return saveIcon.click();
|
||||
};
|
||||
|
||||
this.getTextFieldText = function (text) {
|
||||
this.getTextFieldText = function () {
|
||||
var textField = element(by.css("span[data-automation-id='card-textitem-value-name']"));
|
||||
Util.waitUntilElementIsVisible(textField);
|
||||
return textField.getText();
|
||||
@@ -108,13 +108,13 @@ var CardViewComponentPage = function () {
|
||||
return this;
|
||||
};
|
||||
|
||||
this.getIntFieldText = function (text) {
|
||||
this.getIntFieldText = function () {
|
||||
var textField = element(by.css('span[data-automation-id="card-textitem-value-int"]'));
|
||||
Util.waitUntilElementIsVisible(textField);
|
||||
return textField.getText();
|
||||
};
|
||||
|
||||
this.getErrorInt = function (text) {
|
||||
this.getErrorInt = function () {
|
||||
let errorElement = element(by.css('mat-error[data-automation-id="card-textitem-error-int"]'));
|
||||
Util.waitUntilElementIsVisible(errorElement);
|
||||
return errorElement.getText();
|
||||
@@ -147,13 +147,13 @@ var CardViewComponentPage = function () {
|
||||
return this;
|
||||
};
|
||||
|
||||
this.getFloatFieldText = function (text) {
|
||||
this.getFloatFieldText = function () {
|
||||
var textField = element(by.css('span[data-automation-id="card-textitem-value-float"]'));
|
||||
Util.waitUntilElementIsVisible(textField);
|
||||
return textField.getText();
|
||||
};
|
||||
|
||||
this.getErrorFloat = function (text) {
|
||||
this.getErrorFloat = function () {
|
||||
let errorElement = element(by.css('mat-error[data-automation-id="card-textitem-error-float"]'));
|
||||
Util.waitUntilElementIsVisible(errorElement);
|
||||
return errorElement.getText();
|
||||
|
@@ -20,6 +20,7 @@ var ContentList = require('./dialog/contentList');
|
||||
var CreateFolderDialog = require('./dialog/createFolderDialog');
|
||||
var path = require('path');
|
||||
var TestConfig = require('../../test.config');
|
||||
var NavigationBarPage = require('./navigationBarPage');
|
||||
|
||||
var ContentServicesPage = function () {
|
||||
|
||||
@@ -116,7 +117,8 @@ var ContentServicesPage = function () {
|
||||
};
|
||||
|
||||
this.navigateToDocumentList = function () {
|
||||
browser.driver.get(contentServicesURL);
|
||||
var navigationBarPage = new NavigationBarPage();
|
||||
navigationBarPage.clickContentServicesButton();
|
||||
this.checkAcsContainer();
|
||||
};
|
||||
|
||||
@@ -261,7 +263,7 @@ var ContentServicesPage = function () {
|
||||
};
|
||||
|
||||
this.checkContentsAreDisplayed = function (content) {
|
||||
for (i = 0; i < content.length; i++) {
|
||||
for (var i = 0; i < content.length; i++) {
|
||||
this.checkContentIsDisplayed(content[i]);
|
||||
}
|
||||
return this;
|
||||
@@ -273,7 +275,7 @@ var ContentServicesPage = function () {
|
||||
};
|
||||
|
||||
this.checkContentsAreNotDisplayed = function (content) {
|
||||
for (i = 0; i < content.length; i++) {
|
||||
for (var i = 0; i < content.length; i++) {
|
||||
this.checkContentIsNotDisplayed(content[i]);
|
||||
}
|
||||
return this;
|
||||
@@ -327,7 +329,6 @@ var ContentServicesPage = function () {
|
||||
for (var i = 1; i < files.length; i++) {
|
||||
allFiles = allFiles + "\n" + path.resolve(path.join(TestConfig.main.rootPath, files[i]));
|
||||
}
|
||||
;
|
||||
uploadMultipleFileButton.sendKeys(allFiles);
|
||||
Util.waitUntilElementIsVisible(uploadMultipleFileButton);
|
||||
return this;
|
||||
@@ -371,11 +372,11 @@ var ContentServicesPage = function () {
|
||||
};
|
||||
|
||||
this.deleteContents = function (content) {
|
||||
for (i = 0; i < content.length; i++) {
|
||||
for (var i = 0; i < content.length; i++) {
|
||||
this.deleteContent(content[i]);
|
||||
this.checkContentIsNotDisplayed(content[i]);
|
||||
browser.driver.sleep(1000);
|
||||
};
|
||||
}
|
||||
return this;
|
||||
};
|
||||
|
||||
|
@@ -68,7 +68,6 @@ var ContentList = function () {
|
||||
if (text !== '') {
|
||||
initialList.push(text);
|
||||
}
|
||||
;
|
||||
});
|
||||
}).then(function () {
|
||||
deferred.fulfill(initialList);
|
||||
|
@@ -123,7 +123,7 @@ var SearchDialog = function () {
|
||||
this.clearText = function () {
|
||||
Util.waitUntilElementIsVisible(searchBar);
|
||||
var deferred = protractor.promise.defer();
|
||||
searchBar.clear().then(function (value) {
|
||||
searchBar.clear().then(function () {
|
||||
searchBar.sendKeys(protractor.Key.ESCAPE);
|
||||
});
|
||||
return deferred.promise;
|
||||
|
@@ -85,7 +85,7 @@ var UploadDialog = function () {
|
||||
};
|
||||
|
||||
this.filesAreUploaded = function (content) {
|
||||
for (i=0; i<content.length; i++) {
|
||||
for (var i=0; i<content.length; i++) {
|
||||
this.fileIsUploaded(content[i]);
|
||||
}
|
||||
return this;
|
||||
@@ -96,7 +96,7 @@ var UploadDialog = function () {
|
||||
return this;
|
||||
};
|
||||
|
||||
this.cancelUploads = function (content) {
|
||||
this.cancelUploads = function () {
|
||||
Util.waitUntilElementIsVisible(cancelUploads);
|
||||
cancelUploads.click();
|
||||
return this;
|
||||
|
@@ -24,6 +24,7 @@ var ErrorPage = function(){
|
||||
var errorPageTitle = element(by.css("adf-error-content .adf-error-content-title"));
|
||||
var errorPageDescription = element(by.css("adf-error-content .adf-error-content-description"));
|
||||
var backButton = element(by.id("adf-return-button"));
|
||||
var secondButton = element(by.id("adf-secondary-button"));
|
||||
|
||||
this.checkErrorPage = function(){
|
||||
Util.waitUntilElementIsVisible(errorPage);
|
||||
@@ -34,6 +35,11 @@ var ErrorPage = function(){
|
||||
backButton.click();
|
||||
};
|
||||
|
||||
this.clickSecondButton = function(){
|
||||
Util.waitUntilElementIsVisible(secondButton);
|
||||
secondButton.click();
|
||||
};
|
||||
|
||||
this.checkErrorTitle = function(){
|
||||
Util.waitUntilElementIsVisible(errorPageTitle);
|
||||
};
|
||||
|
@@ -120,7 +120,7 @@ var LoginPage = function () {
|
||||
* @method checkUsernameTooltip
|
||||
* @param {String} message
|
||||
*/
|
||||
this.checkUsernameTooltip = function (message) {
|
||||
this.checkUsernameTooltip = function () {
|
||||
Util.waitUntilElementIsVisible(usernameTooltip);
|
||||
};
|
||||
|
||||
@@ -129,7 +129,7 @@ var LoginPage = function () {
|
||||
* @method checkPasswordTooltip
|
||||
* @param {String} message
|
||||
*/
|
||||
this.checkPasswordTooltip = function (message) {
|
||||
this.checkPasswordTooltip = function () {
|
||||
Util.waitUntilElementIsVisible(passwordTooltip);
|
||||
};
|
||||
|
||||
|
@@ -241,7 +241,7 @@ var MetadataViewPage = function () {
|
||||
editPropertyIcon.click();
|
||||
};
|
||||
|
||||
this.getPropertyIconTooltip = function (propertyName, icon) {
|
||||
this.getPropertyIconTooltip = function (propertyName) {
|
||||
var editPropertyIcon = element(by.css('mat-icon[data-automation-id="card-textitem-edit-icon-' + propertyName + '"]'));
|
||||
return editPropertyIcon.getAttribute('title');
|
||||
};
|
||||
|
@@ -106,7 +106,7 @@ var PaginationPage = function () {
|
||||
element.getText().then(function(text) {
|
||||
if(text !== '') {
|
||||
initialList.push(text);
|
||||
};
|
||||
}
|
||||
});
|
||||
}).then(function () {
|
||||
deferred.fulfill(initialList);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
|
||||
import Util = require('../../../util/util');
|
||||
import TestConfig = require('../../../test.config');
|
||||
|
||||
export class AttachFormPage {
|
||||
|
||||
|
@@ -17,6 +17,7 @@
|
||||
|
||||
var Util = require('../../../util/util');
|
||||
var TestConfig = require('../../../test.config');
|
||||
var NavigationBarPage = require('../navigationBarPage');
|
||||
|
||||
var ProcessListPage = function () {
|
||||
|
||||
@@ -30,7 +31,8 @@ var ProcessListPage = function () {
|
||||
var startProcessButton = element(by.css('button[data-automation-id="btn-start"]'));
|
||||
|
||||
this.goToProcessList = function () {
|
||||
browser.driver.get(processListURL);
|
||||
var navigationBarPage = new NavigationBarPage();
|
||||
navigationBarPage.clickProcessServicesButton();
|
||||
Util.waitUntilElementIsVisible(pageLoaded);
|
||||
};
|
||||
|
||||
@@ -70,4 +72,4 @@ var ProcessListPage = function () {
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = ProcessListPage;
|
||||
module.exports = ProcessListPage;
|
||||
|
@@ -115,12 +115,12 @@ var SearchResultsPage = function () {
|
||||
if(sortOrder===true) {
|
||||
if(result !== 'arrow_upward') {
|
||||
element(sortArrowLocator).click();
|
||||
};
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(result === 'arrow_upward') {
|
||||
element(sortArrowLocator).click();
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return Promise.resolve();
|
||||
|
@@ -38,12 +38,12 @@ export class VersionManagePage {
|
||||
return this;
|
||||
}
|
||||
|
||||
uploadNewVersionFile = function (fileLocation) {
|
||||
uploadNewVersionFile(fileLocation) {
|
||||
Util.waitUntilElementIsVisible(this.uploadNewVersionButton);
|
||||
this.uploadNewVersionButton.sendKeys(path.resolve(path.join(TestConfig.main.rootPath, fileLocation)));
|
||||
Util.waitUntilElementIsVisible(this.showNewVersionButton);
|
||||
return this;
|
||||
};
|
||||
}
|
||||
|
||||
getFileVersionName(version) {
|
||||
let fileElement = element(by.css(`[id="adf-version-list-item-name-${version}"]`));
|
||||
|
@@ -25,7 +25,6 @@ import CONSTANTS = require('../util/constants');
|
||||
|
||||
import TestConfig = require('../test.config');
|
||||
import resources = require('../util/resources');
|
||||
import Util = require('../util/util.js');
|
||||
|
||||
import AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
@@ -435,7 +435,7 @@ exports.waitUntilElementIsNotOnPage = function (elementToCheck, timeout) {
|
||||
};
|
||||
|
||||
exports.waitUntilElementIsOnPage = function (elementToCheck, timeout) {
|
||||
waitTimeout = timeout || DEFAULT_TIMEOUT;
|
||||
var waitTimeout = timeout || DEFAULT_TIMEOUT;
|
||||
|
||||
return browser.wait(browser.wait(until.visibilityOf(elementToCheck)), timeout);
|
||||
};
|
||||
|
@@ -306,25 +306,21 @@
|
||||
"TITLE": "Sie sind nicht zum Zugriff auf diesen Server berechtigt.",
|
||||
"DESCRIPTION": "Sie sind nicht zum Zugriff auf diese Ressource auf dem Server berechtigt.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "Problem melden",
|
||||
"URL": "report-issue"
|
||||
"TEXT": "Problem melden"
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Zurück zur Startseite",
|
||||
"ROUTE": "Startseite"
|
||||
"TEXT": "Zurück zur Startseite"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"TITLE": "Es ist ein Fehler aufgetreten.",
|
||||
"DESCRIPTION": "Die Seite, nach der Sie suchen, wurde nicht gefunden.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Zurück zur Startseite",
|
||||
"ROUTE": "Startseite"
|
||||
"TEXT": "Zurück zur Startseite"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -294,36 +294,30 @@
|
||||
"TITLE": "We hit a problem.",
|
||||
"DESCRIPTION": "Looks like something went wrong.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Back to home",
|
||||
"ROUTE": "Home"
|
||||
"TEXT": "Back to home"
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"TITLE": "You don't have permission to access this server.",
|
||||
"DESCRIPTION": "You're not allowed access to this resource on the server.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "Report issue",
|
||||
"URL": "report-issue"
|
||||
"TEXT": "Report issue"
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Back to home",
|
||||
"ROUTE": "Home"
|
||||
"TEXT": "Back to home"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"TITLE": "An error occurred.",
|
||||
"DESCRIPTION": "We couldn’t find the page you were looking for.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Back to home",
|
||||
"ROUTE": "Home"
|
||||
"TEXT": "Back to home"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -294,37 +294,31 @@
|
||||
"TITLE": "Se ha producido un error.",
|
||||
"DESCRIPTION": "Parece que algo ha ido mal.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Volver al inicio",
|
||||
"ROUTE": "Inicio"
|
||||
"TEXT": "Volver al inicio"
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"TITLE": "No tiene permiso para acceder a este servidor.",
|
||||
"DESCRIPTION": "No tiene permitido acceder a este recurso en el servidor.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "Notificar problema",
|
||||
"URL": "notificar-problema"
|
||||
"TEXT": "Notificar problema"
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Volver al inicio",
|
||||
"ROUTE": "Inicio"
|
||||
"TEXT": "Volver al inicio"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"TITLE": "Se ha producido un error.",
|
||||
"DESCRIPTION": "No hemos podido encontrar la página que busca.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Volver al inicio",
|
||||
"ROUTE": "Inicio"
|
||||
"TEXT": "Volver al inicio"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -294,37 +294,31 @@
|
||||
"TITLE": "Une erreur est survenue.",
|
||||
"DESCRIPTION": "Il semble qu'une erreur soit survenue.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Retour à l'accueil",
|
||||
"ROUTE": "Accueil"
|
||||
"TEXT": "Retour à l'accueil"
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"TITLE": "Vous n'avez pas les droits d'accès à ce serveur.",
|
||||
"DESCRIPTION": "Vous n'êtes pas autorisé à accéder à cette ressource sur le serveur.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "Signaler le problème",
|
||||
"URL": "signaler-problème"
|
||||
"TEXT": "Signaler le problème"
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Retour à l'accueil",
|
||||
"ROUTE": "Accueil"
|
||||
"TEXT": "Retour à l'accueil"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"TITLE": "Une erreur est survenue.",
|
||||
"DESCRIPTION": "Impossible de trouver la page recherchée.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Retour à l'accueil",
|
||||
"ROUTE": "Accueil"
|
||||
"TEXT": "Retour à l'accueil"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -294,37 +294,31 @@
|
||||
"TITLE": "Si è verificato un errore.",
|
||||
"DESCRIPTION": "Si è verificato un errore.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Torna alla home",
|
||||
"ROUTE": "Home"
|
||||
"TEXT": "Torna alla home"
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"TITLE": "Non si dispone delle autorizzazioni per accedere al server.",
|
||||
"DESCRIPTION": "Accesso alla risorsa sul server non consentito.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "Segnala errore",
|
||||
"URL": "segnala problema"
|
||||
"TEXT": "Segnala errore"
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Torna alla home",
|
||||
"ROUTE": "Home"
|
||||
"TEXT": "Torna alla home"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"TITLE": "Si è verificato un errore.",
|
||||
"DESCRIPTION": "Impossibile trovare la pagina.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Torna alla home",
|
||||
"ROUTE": "Home"
|
||||
"TEXT": "Torna alla home"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -294,37 +294,31 @@
|
||||
"TITLE": "エラーが発生しました。",
|
||||
"DESCRIPTION": "何らかの問題がある可能性があります。",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "ホームへ戻る",
|
||||
"ROUTE": "ホーム"
|
||||
"TEXT": "ホームへ戻る"
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"TITLE": "このサーバーにアクセスする権限がありません。",
|
||||
"DESCRIPTION": "サーバー上のこのリソースにはアクセスできません。",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "問題の報告",
|
||||
"URL": "report-issue"
|
||||
"TEXT": "問題の報告"
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "ホームへ戻る",
|
||||
"ROUTE": "ホーム"
|
||||
"TEXT": "ホームへ戻る"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"TITLE": "エラーが発生しました。",
|
||||
"DESCRIPTION": "お探しのページが見つかりませんでした。",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "ホームへ戻る",
|
||||
"ROUTE": "ホーム"
|
||||
"TEXT": "ホームへ戻る"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -294,37 +294,31 @@
|
||||
"TITLE": "Det oppstod en feil",
|
||||
"DESCRIPTION": "Noe gikk galt.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Tilbake til startsiden",
|
||||
"ROUTE": "Hjem"
|
||||
"TEXT": "Tilbake til startsiden"
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"TITLE": "Du har ikke tillatelse for tilgang til denne serveren.",
|
||||
"DESCRIPTION": "Du har ikke lov til å få tilgang til denne ressursen på serveren.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "Rapporter problem",
|
||||
"URL": "rapporter-problem"
|
||||
"TEXT": "Rapporter problem"
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Tilbake til startsiden",
|
||||
"ROUTE": "Hjem"
|
||||
"TEXT": "Tilbake til startsiden"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"TITLE": "Det oppstod en feil.",
|
||||
"DESCRIPTION": "Vi kunne ikke finne siden du så etter.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Tilbake til startsiden",
|
||||
"ROUTE": "Hjem"
|
||||
"TEXT": "Tilbake til startsiden"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -294,37 +294,31 @@
|
||||
"TITLE": "Er is een fout opgetreden.",
|
||||
"DESCRIPTION": "Er is waarschijnlijk iets fout gegaan.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Terug naar Home",
|
||||
"ROUTE": "Home"
|
||||
"TEXT": "Terug naar Home"
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"TITLE": "U hebt geen machtiging voor toegang tot deze server.",
|
||||
"DESCRIPTION": "Het is u niet toegestaan toegang te krijgen tot deze resource op de server.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "Probleem melden",
|
||||
"URL": "report-issue"
|
||||
"TEXT": "Probleem melden"
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Terug naar Home",
|
||||
"ROUTE": "Home"
|
||||
"TEXT": "Terug naar Home"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"TITLE": "Er is een fout opgetreden.",
|
||||
"DESCRIPTION": "De pagina die u zoekt is niet gevonden.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Terug naar Home",
|
||||
"ROUTE": "Home"
|
||||
"TEXT": "Terug naar Home"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -294,37 +294,31 @@
|
||||
"TITLE": "Ocorreu um erro.",
|
||||
"DESCRIPTION": "Parece que ocorreu um erro.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Voltar para a página inicial",
|
||||
"ROUTE": "Página Inicial"
|
||||
"TEXT": "Voltar para a página inicial"
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"TITLE": "Você não tem permissão para acessar este servidor.",
|
||||
"DESCRIPTION": "Você não tem permissão para acessar este recurso no servidor.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "Relatar problema",
|
||||
"URL": "relatar-problema"
|
||||
"TEXT": "Relatar problema""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Voltar para a página inicial",
|
||||
"ROUTE": "Página Inicial"
|
||||
"TEXT": "Voltar para a página inicial"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"TITLE": "Ocorreu um erro.",
|
||||
"DESCRIPTION": "Não foi possível encontrar a página que você está procurando.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Voltar para a página inicial",
|
||||
"ROUTE": "Página Inicial"
|
||||
"TEXT": "Voltar para a página inicial"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -294,37 +294,31 @@
|
||||
"TITLE": "Произошла ошибка.",
|
||||
"DESCRIPTION": "Кажется, что-то пошло не так.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Назад на главную",
|
||||
"ROUTE": "Домашняя"
|
||||
"TEXT": "Назад на главную"
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"TITLE": "У вас нет разрешения для доступа к этому серверу.",
|
||||
"DESCRIPTION": "У вас нет разрешения для доступа к этому ресурсу на сервере.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "Сообщить о проблеме",
|
||||
"URL": "сообщить-о-проблеме"
|
||||
"TEXT": "Сообщить о проблеме"
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Назад на главную",
|
||||
"ROUTE": "Домашняя"
|
||||
"TEXT": "Назад на главную"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"TITLE": "Произошла ошибка.",
|
||||
"DESCRIPTION": "Нам не удалось найти страницу, которую вы искали.",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "Назад на главную",
|
||||
"ROUTE": "Домашняя"
|
||||
"TEXT": "Назад на главную"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -294,37 +294,31 @@
|
||||
"TITLE": "出现错误。",
|
||||
"DESCRIPTION": "看似发生错误。",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "返回到主页",
|
||||
"ROUTE": "主页"
|
||||
"TEXT": "返回到主页"
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"TITLE": "您没有访问此服务器的权限。",
|
||||
"DESCRIPTION": "不允许您访问服务器上的此资源。",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "报告问题",
|
||||
"URL": "report-issue"
|
||||
"TEXT": "报告问题"
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "返回到主页",
|
||||
"ROUTE": "主页"
|
||||
"TEXT": "返回到主页"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"TITLE": "出现错误。",
|
||||
"DESCRIPTION": "我们无法找到您正在查找的页面。",
|
||||
"SECONDARY_BUTTON": {
|
||||
"TEXT": "",
|
||||
"URL": ""
|
||||
"TEXT": ""
|
||||
},
|
||||
"RETURN_BUTTON": {
|
||||
"TEXT": "返回到主页",
|
||||
"ROUTE": "主页"
|
||||
"TEXT": "返回到主页"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -11,7 +11,7 @@
|
||||
</p>
|
||||
<div class="adf-error-content-buttons">
|
||||
<a a id="adf-secondary-button" mat-raised-button color="primary"
|
||||
*ngIf="secondaryButtonText" (click)="onSecondButton()"
|
||||
*ngIf="hasSecondButton" (click)="onSecondButton()"
|
||||
class="adf-error-content-description-link">
|
||||
{{ 'ERROR_CONTENT.' + errorCode + '.SECONDARY_BUTTON.TEXT' | translate | uppercase }}
|
||||
</a>
|
||||
|
@@ -103,20 +103,18 @@ describe('ErrorContentComponent', () => {
|
||||
});
|
||||
fixture.detectChanges();
|
||||
fixture.whenStable().then(() => {
|
||||
expect(errorContentComponent.secondaryButtonText).toBe('Secondary Button');
|
||||
const errorContentElement = element.querySelector('.adf-error-content-description-link');
|
||||
const errorContentElement = element.querySelector('#adf-secondary-button');
|
||||
expect(errorContentElement).not.toBeNull();
|
||||
expect(errorContentElement).toBeDefined();
|
||||
expect(errorContentElement.textContent).toContain('ERROR_CONTENT.UNKNOWN.SECONDARY_BUTTON.TEXT');
|
||||
|
||||
});
|
||||
}));
|
||||
|
||||
it('should render return button with its value from the translate file', async(() => {
|
||||
spyOn(translateService, 'instant').and.callFake((inputString) => {
|
||||
return 'Home';
|
||||
});
|
||||
it('shoul the default value of return burron be /', async(() => {
|
||||
fixture.detectChanges();
|
||||
fixture.whenStable().then(() => {
|
||||
expect(errorContentComponent.returnButtonUrl).toBe('Home');
|
||||
expect(errorContentComponent.returnButtonUrl).toBe('/');
|
||||
});
|
||||
}));
|
||||
|
||||
|
@@ -15,7 +15,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, ChangeDetectionStrategy, ViewEncapsulation, OnInit, AfterContentChecked } from '@angular/core';
|
||||
import {
|
||||
Component,
|
||||
ChangeDetectionStrategy,
|
||||
Input,
|
||||
ViewEncapsulation,
|
||||
OnInit,
|
||||
AfterContentChecked
|
||||
} from '@angular/core';
|
||||
import { Params, ActivatedRoute, Router } from '@angular/router';
|
||||
import { TranslationService } from '../../services/translation.service';
|
||||
|
||||
@@ -29,10 +36,16 @@ import { TranslationService } from '../../services/translation.service';
|
||||
})
|
||||
export class ErrorContentComponent implements OnInit, AfterContentChecked {
|
||||
|
||||
@Input()
|
||||
secondaryButtonUrl: string = 'report-issue';
|
||||
|
||||
@Input()
|
||||
returnButtonUrl: string = '/';
|
||||
|
||||
@Input()
|
||||
errorCode: string;
|
||||
secondaryButtonText: string;
|
||||
secondaryButtonUrl: string;
|
||||
returnButtonUrl: string;
|
||||
|
||||
hasSecondButton: boolean;
|
||||
|
||||
constructor(private route: ActivatedRoute,
|
||||
private router: Router,
|
||||
@@ -42,7 +55,7 @@ export class ErrorContentComponent implements OnInit, AfterContentChecked {
|
||||
ngOnInit() {
|
||||
if (this.route) {
|
||||
this.route.params.forEach((params: Params) => {
|
||||
if (params['id']) {
|
||||
if (params['id'] && !this.errorCode) {
|
||||
this.errorCode = params['id'];
|
||||
let unknown = '';
|
||||
this.translateService.get('ERROR_CONTENT.' + this.errorCode + '.TITLE').subscribe((errorTranslation: string) => {
|
||||
@@ -56,21 +69,13 @@ export class ErrorContentComponent implements OnInit, AfterContentChecked {
|
||||
}
|
||||
}
|
||||
|
||||
ngAfterContentChecked() {
|
||||
this.getTranslations();
|
||||
getTranslations() {
|
||||
this.hasSecondButton = this.translateService.instant(
|
||||
'ERROR_CONTENT.' + this.errorCode + '.SECONDARY_BUTTON.TEXT') ? true : false;
|
||||
}
|
||||
|
||||
getTranslations() {
|
||||
this.returnButtonUrl = this.translateService.instant(
|
||||
'ERROR_CONTENT.' + this.errorCode + '.RETURN_BUTTON.ROUTE');
|
||||
|
||||
this.secondaryButtonText = this.translateService.instant(
|
||||
'ERROR_CONTENT.' + this.errorCode + '.SECONDARY_BUTTON.TEXT');
|
||||
|
||||
if (this.secondaryButtonText) {
|
||||
this.secondaryButtonUrl = this.translateService.instant(
|
||||
'ERROR_CONTENT.' + this.errorCode + '.SECONDARY_BUTTON.URL');
|
||||
}
|
||||
ngAfterContentChecked() {
|
||||
this.getTranslations();
|
||||
}
|
||||
|
||||
onSecondButton() {
|
||||
|
Reference in New Issue
Block a user