Commit e02d6ae5c34328b09540708d0eba2cf32053f3a1

Authored by Carlos Purificação
1 parent 976d69f6

Fixed design mode service auth lifecycle

src/app/admin/layout-edit/designMode.service.ts
@@ -6,11 +6,13 @@ import {INoosferoLocalStorage} from "./../../shared/models/interfaces"; @@ -6,11 +6,13 @@ import {INoosferoLocalStorage} from "./../../shared/models/interfaces";
6 export class DesignModeService { 6 export class DesignModeService {
7 @Output() onToggle: EventEmitter<boolean> = new EventEmitter<boolean>(); 7 @Output() onToggle: EventEmitter<boolean> = new EventEmitter<boolean>();
8 8
9 - //private designModeOn: boolean = false;  
10 -  
11 isInDesignMode(): boolean { 9 isInDesignMode(): boolean {
12 return this.$localStorage.settings.designModeOn; 10 return this.$localStorage.settings.designModeOn;
13 } 11 }
  12 +
  13 + destroy() {
  14 + this.$localStorage.settings = {};
  15 + }
14 16
15 setInDesignMode(value: boolean) { 17 setInDesignMode(value: boolean) {
16 if (this.$localStorage.settings.designModeOn !== value) { 18 if (this.$localStorage.settings.designModeOn !== value) {
src/app/admin/layout-edit/designModeToggler.component.spec.ts
@@ -22,7 +22,8 @@ describe(&#39;DesignModeToggler Component&#39;, () =&gt; { @@ -22,7 +22,8 @@ describe(&#39;DesignModeToggler Component&#39;, () =&gt; {
22 template: htmlTemplate, 22 template: htmlTemplate,
23 directives: [DesignModeTogglerComponent], 23 directives: [DesignModeTogglerComponent],
24 providers: [ 24 providers: [
25 - helpers.createProviderToValue('DesignModeService', designModeService) 25 + helpers.createProviderToValue('DesignModeService', designModeService),
  26 + helpers.createProviderToValue('AuthService', helpers.mocks.authService),
26 ] 27 ]
27 }); 28 });
28 helper = new ComponentTestHelper<DesignModeTogglerComponent>(cls, done); 29 helper = new ComponentTestHelper<DesignModeTogglerComponent>(cls, done);
src/app/admin/layout-edit/designModeToggler.component.ts
1 import {Component, Inject} from 'ng-forward'; 1 import {Component, Inject} from 'ng-forward';
2 import {DesignModeService} from './designMode.service'; 2 import {DesignModeService} from './designMode.service';
  3 +import {AuthService, AuthEvents} from '../../login'
  4 +
3 @Component({ 5 @Component({
4 selector: 'noosfero-design-toggler', 6 selector: 'noosfero-design-toggler',
5 templateUrl: 'app/admin/layout-edit/designModeToggler.html' 7 templateUrl: 'app/admin/layout-edit/designModeToggler.html'
6 }) 8 })
7 -@Inject(DesignModeService) 9 +@Inject(DesignModeService, AuthService)
8 export class DesignModeTogglerComponent { 10 export class DesignModeTogglerComponent {
9 11
10 icon: string = "&nbsp;<i class='glyphicon glyphicon-wrench'></i>&nbsp;"; 12 icon: string = "&nbsp;<i class='glyphicon glyphicon-wrench'></i>&nbsp;";
11 13
12 - constructor(private designModeService: DesignModeService) { 14 + constructor(private designModeService: DesignModeService, private authService: AuthService) {
  15 + this.authService.subscribe(AuthEvents[AuthEvents.logoutSuccess], () => {
  16 + this.designModeService.destroy();
  17 + });
13 } 18 }
14 19
15 private _inDesignMode: boolean = false; 20 private _inDesignMode: boolean = false;
src/app/profile/custom-content/custom-content.component.spec.ts
@@ -25,7 +25,6 @@ describe(&quot;Components&quot;, () =&gt; { @@ -25,7 +25,6 @@ describe(&quot;Components&quot;, () =&gt; {
25 helpers.createProviderToValue("$uibModal", helpers.mocks.$modal), 25 helpers.createProviderToValue("$uibModal", helpers.mocks.$modal),
26 helpers.createProviderToValue("ProfileService", profileService), 26 helpers.createProviderToValue("ProfileService", profileService),
27 helpers.createProviderToValue("NotificationService", notificationService), 27 helpers.createProviderToValue("NotificationService", notificationService),
28 - //helpers.createProviderToValue("DesignModeService", helpers.mocks.designModeService)  
29 helpers.createProviderToValue("DesignModeService", designModeService) 28 helpers.createProviderToValue("DesignModeService", designModeService)
30 ] 29 ]
31 }); 30 });