mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[MNT-22236] Permission i18n support (#6843)
* localized role pipe * update tests * additional tests * update module * fix package lock * update module settings * try update code * update import * test fixes
This commit is contained in:
@@ -1,4 +1,18 @@
|
||||
{
|
||||
"ADF": {
|
||||
"ROLES": {
|
||||
"ALL": "All",
|
||||
"CONTRIBUTOR": "Contributor",
|
||||
"COLLABORATOR": "Collaborator",
|
||||
"COORDINATOR": "Coordinator",
|
||||
"EDITOR": "Editor",
|
||||
"CONSUMER": "Consumer",
|
||||
"SITECOLLABORATOR": "Site Collaborator",
|
||||
"SITECONSUMER": "Site Consumer",
|
||||
"SITECONTRIBUTOR": "Site Contributor",
|
||||
"SITEMANAGER": "Site Manager"
|
||||
}
|
||||
},
|
||||
"SAVE": "SAVE",
|
||||
"COMPLETE": "COMPLETE",
|
||||
"CANCEL": "CANCEL",
|
||||
|
50
lib/core/pipes/localized-role.pipe.spec.ts
Normal file
50
lib/core/pipes/localized-role.pipe.spec.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LocalizedRolePipe } from './localized-role.pipe';
|
||||
|
||||
describe('LocalizedRolePipe', () => {
|
||||
let translationService: any;
|
||||
let pipe: LocalizedRolePipe;
|
||||
|
||||
beforeEach(() => {
|
||||
translationService = jasmine.createSpyObj('TranslationService', ['instant']);
|
||||
pipe = new LocalizedRolePipe(translationService);
|
||||
});
|
||||
|
||||
it('should return null', () => {
|
||||
expect(pipe.transform(null)).toBeNull();
|
||||
});
|
||||
|
||||
it('should translate value', () => {
|
||||
translationService.instant.and.returnValue('Consumer');
|
||||
expect(pipe.transform('ADF.ROLES.CONSUMER')).toEqual('Consumer');
|
||||
});
|
||||
|
||||
it('should return the key when translation not present', () => {
|
||||
translationService.instant.and.callFake((value) => {
|
||||
if (value === 'ADF.ROLES.CONSUMER') {
|
||||
return 'Consumer';
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
});
|
||||
|
||||
expect(pipe.transform('Contributor')).toBe('ADF.ROLES.CONTRIBUTOR');
|
||||
expect(pipe.transform('Consumer')).toEqual('Consumer');
|
||||
});
|
||||
});
|
39
lib/core/pipes/localized-role.pipe.ts
Normal file
39
lib/core/pipes/localized-role.pipe.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Pipe, PipeTransform } from '@angular/core';
|
||||
import { TranslationService } from '../services/translation.service';
|
||||
|
||||
@Pipe({
|
||||
name: 'adfLocalizedRole'
|
||||
})
|
||||
export class LocalizedRolePipe implements PipeTransform {
|
||||
constructor(private translationService: TranslationService) {
|
||||
}
|
||||
|
||||
transform(value: string): any {
|
||||
if (value) {
|
||||
const key = `ADF.ROLES.${value.toUpperCase()}`;
|
||||
const translation = this.translationService.instant(key);
|
||||
|
||||
if (translation) {
|
||||
return translation;
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
@@ -30,10 +30,13 @@ import { FileTypePipe } from './file-type.pipe';
|
||||
import { MultiValuePipe } from './multi-value.pipe';
|
||||
import { LocalizedDatePipe } from './localized-date.pipe';
|
||||
import { DecimalNumberPipe } from './decimal-number.pipe';
|
||||
import { LocalizedRolePipe } from './localized-role.pipe';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule
|
||||
CommonModule,
|
||||
TranslateModule
|
||||
],
|
||||
declarations: [
|
||||
FileSizePipe,
|
||||
@@ -47,7 +50,8 @@ import { DecimalNumberPipe } from './decimal-number.pipe';
|
||||
FileTypePipe,
|
||||
MultiValuePipe,
|
||||
LocalizedDatePipe,
|
||||
DecimalNumberPipe
|
||||
DecimalNumberPipe,
|
||||
LocalizedRolePipe
|
||||
],
|
||||
providers: [
|
||||
FileSizePipe,
|
||||
@@ -60,7 +64,8 @@ import { DecimalNumberPipe } from './decimal-number.pipe';
|
||||
FileTypePipe,
|
||||
MultiValuePipe,
|
||||
LocalizedDatePipe,
|
||||
DecimalNumberPipe
|
||||
DecimalNumberPipe,
|
||||
LocalizedRolePipe
|
||||
],
|
||||
exports: [
|
||||
FileSizePipe,
|
||||
@@ -74,7 +79,8 @@ import { DecimalNumberPipe } from './decimal-number.pipe';
|
||||
FileTypePipe,
|
||||
MultiValuePipe,
|
||||
LocalizedDatePipe,
|
||||
DecimalNumberPipe
|
||||
DecimalNumberPipe,
|
||||
LocalizedRolePipe
|
||||
]
|
||||
})
|
||||
export class PipeModule {
|
||||
|
@@ -27,5 +27,5 @@ export * from './node-name-tooltip.pipe';
|
||||
export * from './text-highlight.pipe';
|
||||
export * from './time-ago.pipe';
|
||||
export * from './user-initial.pipe';
|
||||
|
||||
export * from './localized-role.pipe';
|
||||
export * from './pipe.module';
|
||||
|
Reference in New Issue
Block a user