Basic form
Change-Id: I7ee858b208730b110b355d3f72037f0975aaa356
diff --git a/src/app/core/services/helpers/config.helpers.ts b/src/app/core/services/helpers/config.helpers.ts
index 3e0af96..9d0c191 100644
--- a/src/app/core/services/helpers/config.helpers.ts
+++ b/src/app/core/services/helpers/config.helpers.ts
@@ -8,7 +8,8 @@
}
export interface IXosConfigHelpersService {
- modeldefToTableCfg(fields: IXosModelDefsField[]): any[]; // TODO use a proper interface
+ excluded_fields: string[];
+ modeldefToTableCfg(fields: IXosModelDefsField[], baseUrl: string): any[]; // TODO use a proper interface
pluralize(string: string, quantity?: number, count?: boolean): string;
toLabel(string: string, pluralize?: boolean): string;
toLabels(string: string[], pluralize?: boolean): string[];
@@ -16,6 +17,22 @@
export class ConfigHelpers {
+ excluded_fields = [
+ 'created',
+ 'updated',
+ 'enacted',
+ 'policed',
+ 'backend_register',
+ 'deleted',
+ 'write_protect',
+ 'lazy_blocked',
+ 'no_sync',
+ 'no_policy',
+ 'omf_friendly',
+ 'enabled',
+ 'validators'
+ ];
+
constructor() {
pluralize.addIrregularRule('xos', 'xosses');
pluralize.addPluralRule(/slice$/i, 'slices');
@@ -46,23 +63,10 @@
return this.capitalizeFirst(string);
}
- modeldefToTableCfg(fields: IXosModelDefsField[]): IXosTableColumn[] {
- const excluded_fields = [
- 'created',
- 'updated',
- 'enacted',
- 'policed',
- 'backend_register',
- 'deleted',
- 'write_protect',
- 'lazy_blocked',
- 'no_sync',
- 'no_policy',
- 'omf_friendly',
- 'enabled'
- ];
+ modeldefToTableCfg(fields: IXosModelDefsField[], baseUrl: string): IXosTableColumn[] {
+
const cfg = _.map(fields, (f) => {
- if (excluded_fields.indexOf(f.name) > -1) {
+ if (this.excluded_fields.indexOf(f.name) > -1) {
return;
}
const col: IXosTableColumn = {
@@ -70,6 +74,11 @@
prop: f.name
};
+ if (f.name === 'id') {
+ // NOTE can we find a better method to generalize?
+ col.link = item => `#/core${baseUrl.replace(':id?', item.id)}`;
+ }
+
if (f.name === 'backend_status') {
col.type = 'icon';
col.formatter = (item) => {
diff --git a/src/app/core/services/page-title.spec.ts b/src/app/core/services/page-title.spec.ts
index 4ff2be6..0959e57 100644
--- a/src/app/core/services/page-title.spec.ts
+++ b/src/app/core/services/page-title.spec.ts
@@ -28,4 +28,9 @@
service.set('sample');
expect($window.document.title).toEqual(`${StyleConfig.projectName} - sample`);
});
+
+ it('should convert dots to >', () => {
+ service.set('core.sample.bread.crumb');
+ expect($window.document.title).toEqual(`${StyleConfig.projectName} - core > sample > bread > crumb`);
+ });
});
diff --git a/src/app/core/services/page-title.ts b/src/app/core/services/page-title.ts
index fb1e5a7..865149d 100644
--- a/src/app/core/services/page-title.ts
+++ b/src/app/core/services/page-title.ts
@@ -12,7 +12,7 @@
private $transitions: any // missing definition
) {
this.$transitions.onSuccess({ to: '**' }, (transtion) => {
- this.set(this.formatStateName(transtion.$to().name));
+ this.set(transtion.$to().name);
});
}
@@ -21,12 +21,12 @@
}
set(title: string) {
- this.$window.document.title = `${StyleConfig.projectName} - ${title}`;
+ this.$window.document.title = `${StyleConfig.projectName} - ${this.formatStateName(title)}`;
}
private formatStateName(stateName: string): string {
// TODO pluralize and capitalize first letter only
- return stateName.replace('xos.', '').toUpperCase();
+ return stateName.replace('xos.', '').split('.').join(' > ');
}
}