From b36339ff9f20309c6c3331b75cdd24e21a0b2895 Mon Sep 17 00:00:00 2001 From: Bogdan Cilibiu Date: Wed, 4 Jul 2018 09:02:30 +0300 Subject: [PATCH 1/4] ifExperimental else --- src/app/directives/experimental.directive.ts | 46 +++++++++++++++++--- 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/src/app/directives/experimental.directive.ts b/src/app/directives/experimental.directive.ts index 3546f8c50..09c30bed9 100644 --- a/src/app/directives/experimental.directive.ts +++ b/src/app/directives/experimental.directive.ts @@ -23,7 +23,7 @@ * along with Alfresco. If not, see . */ -import { Directive, TemplateRef, ViewContainerRef, Input } from '@angular/core'; +import { Directive, TemplateRef, ViewContainerRef, Input, EmbeddedViewRef } from '@angular/core'; import { AppConfigService, StorageService } from '@alfresco/adf-core'; import { environment } from '../../environments/environment'; @@ -32,6 +32,10 @@ import { environment } from '../../environments/environment'; selector: '[ifExperimental]' }) export class ExperimentalDirective { + private elseTemplateRef: TemplateRef; + private elseViewRef: EmbeddedViewRef; + private shouldRender: boolean; + constructor( private templateRef: TemplateRef, private viewContainerRef: ViewContainerRef, @@ -43,19 +47,49 @@ export class ExperimentalDirective { const key = `experimental.${featureKey}`; const override = this.storage.getItem(key); + if (override === 'true') { - this.viewContainerRef.createEmbeddedView(this.templateRef); - return; + this.shouldRender = true; } if (!environment.production) { const value = this.config.get(key); if (value === true || value === 'true') { - this.viewContainerRef.createEmbeddedView(this.templateRef); - return; + this.shouldRender = true; } } - this.viewContainerRef.clear(); + if (override !== 'true' && environment.production) { + this.shouldRender = false; + } + + this.updateView(); + } + + @Input() set ifExperimentalElse(templateRef: TemplateRef) { + this.elseTemplateRef = templateRef; + this.elseViewRef = null; + this.updateView(); + } + + private updateView() { + if (this.shouldRender) { + this.viewContainerRef.clear(); + this.elseViewRef = null; + + if (this.templateRef) { + this.viewContainerRef.createEmbeddedView(this.templateRef); + } + } else { + if (this.elseViewRef) { + return; + } + + this.viewContainerRef.clear(); + + if (this.elseTemplateRef) { + this.elseViewRef = this.viewContainerRef.createEmbeddedView(this.elseTemplateRef); + } + } } } From 9e5f4b58abbca0edbfe7fbd6494a6ce35497d56a Mon Sep 17 00:00:00 2001 From: Bogdan Cilibiu Date: Wed, 4 Jul 2018 09:03:34 +0300 Subject: [PATCH 2/4] config based comments view --- src/app.config.json | 3 +- .../info-drawer/info-drawer.component.html | 38 +++++++++++-------- src/assets/i18n/en.json | 3 +- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/app.config.json b/src/app.config.json index 0673d0896..7d6ef8fba 100644 --- a/src/app.config.json +++ b/src/app.config.json @@ -9,7 +9,8 @@ "© 2017 - 2018 Alfresco Software, Inc. All rights reserved." }, "experimental": { - "libraries": false + "libraries": false, + "comments": false }, "headerColor": "#2196F3", "languagePicker": false, diff --git a/src/app/components/info-drawer/info-drawer.component.html b/src/app/components/info-drawer/info-drawer.component.html index 985ebec34..828271da4 100644 --- a/src/app/components/info-drawer/info-drawer.component.html +++ b/src/app/components/info-drawer/info-drawer.component.html @@ -12,21 +12,29 @@ - - - - - + + + + + - -
- face - {{ 'VERSION.SELECTION.EMPTY' | translate }} -
-
-
+ + + + + + + + +
+ face + {{ 'VERSION.SELECTION.EMPTY' | translate }} +
+
+
+
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 189470c16..a9dfa968d 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -232,7 +232,8 @@ "TITLE": "Details", "TABS": { "PROPERTIES": "Properties", - "VERSIONS": "Versions" + "VERSIONS": "Versions", + "COMMENTS": "Comments" } } }, From 1c5a70fa90f5cc50268453b18fc3c549bc6a7b02 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Wed, 4 Jul 2018 20:57:33 +0100 Subject: [PATCH 3/4] toggle comments from settings page --- .../settings/settings.component.html | 19 ++++++++++++++----- .../components/settings/settings.component.ts | 8 ++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/app/components/settings/settings.component.html b/src/app/components/settings/settings.component.html index c17358f9e..1e2a554ed 100644 --- a/src/app/components/settings/settings.component.html +++ b/src/app/components/settings/settings.component.html @@ -59,10 +59,19 @@ {{ 'APP.SETTINGS.EXPERIMENTAL-FEATURES' | translate }} - - Library Management - +
+ + Library Management + +
+
+ + Comments + +
diff --git a/src/app/components/settings/settings.component.ts b/src/app/components/settings/settings.component.ts index e2ff08280..ae4de7c52 100644 --- a/src/app/components/settings/settings.component.ts +++ b/src/app/components/settings/settings.component.ts @@ -49,6 +49,7 @@ export class SettingsComponent implements OnInit { headerColor$: Observable; languagePicker$: Observable; libraries: boolean; + comments: boolean; constructor( private store: Store, @@ -74,6 +75,9 @@ export class SettingsComponent implements OnInit { const libraries = this.appConfig.get('experimental.libraries'); this.libraries = (libraries === true || libraries === 'true'); + + const comments = this.appConfig.get('experimental.comments'); + this.comments = (comments === true || comments === 'true'); } apply(model: any, isValid: boolean) { @@ -97,4 +101,8 @@ export class SettingsComponent implements OnInit { onChangeLibrariesFeature(event: MatCheckboxChange) { this.storage.setItem('experimental.libraries', event.checked.toString()); } + + onChangeCommentsFeature(event: MatCheckboxChange) { + this.storage.setItem('experimental.comments', event.checked.toString()); + } } From 656b92c610f4aa6bff4e65e09d42a40aa0ed32a2 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Wed, 4 Jul 2018 21:02:24 +0100 Subject: [PATCH 4/4] fix comment saving --- src/app/components/info-drawer/info-drawer.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/components/info-drawer/info-drawer.component.html b/src/app/components/info-drawer/info-drawer.component.html index 828271da4..a051dac50 100644 --- a/src/app/components/info-drawer/info-drawer.component.html +++ b/src/app/components/info-drawer/info-drawer.component.html @@ -14,7 +14,7 @@ - +