Commit bbeb58489299d3314b9733554f4cd0bf745368f3

Authored by Ábner Oliveira
1 parent 46f6b264

changing designModeToggler to use toggle-switch angular directive

@@ -35,9 +35,10 @@ @@ -35,9 +35,10 @@
35 "angular-i18n": "^1.5.0", 35 "angular-i18n": "^1.5.0",
36 "angular-load": "^0.4.1", 36 "angular-load": "^0.4.1",
37 "angular-translate-interpolation-messageformat": "^2.10.0", 37 "angular-translate-interpolation-messageformat": "^2.10.0",
38 - "angular-bind-html-compile": "^1.2.1",  
39 - "angular-click-outside": "^2.7.1",  
40 - "ng-ckeditor": "^0.2.1" 38 + "angular-bind-html-compile": "^1.2.1",
  39 + "angular-click-outside": "^2.7.1",
  40 + "ng-ckeditor": "^0.2.1",
  41 + "angular-bootstrap-toggle-switch": "^0.5.6"
41 }, 42 },
42 "devDependencies": { 43 "devDependencies": {
43 "angular-mocks": "~1.5.0" 44 "angular-mocks": "~1.5.0"
src/app/admin/designMode.service.ts
@@ -7,11 +7,15 @@ export class DesignModeService { @@ -7,11 +7,15 @@ export class DesignModeService {
7 7
8 private designModeOn: boolean = false; 8 private designModeOn: boolean = false;
9 9
10 - constructor() { 10 + isInDesignMode(): boolean {
  11 + return this.designModeOn;
11 } 12 }
12 13
13 - toggle() {  
14 - this.designModeOn = !this.designModeOn; 14 + setInDesignMode(value: boolean) {
  15 + this.designModeOn = value;
15 this.onToggle.next(this.designModeOn); 16 this.onToggle.next(this.designModeOn);
16 } 17 }
  18 +
  19 + constructor() {
  20 + }
17 } 21 }
18 \ No newline at end of file 22 \ No newline at end of file
src/app/admin/designModeToggler.component.ts
@@ -7,27 +7,18 @@ import {DesignModeService} from './designMode.service'; @@ -7,27 +7,18 @@ import {DesignModeService} from './designMode.service';
7 @Inject(DesignModeService, '$scope') 7 @Inject(DesignModeService, '$scope')
8 export class DesignModeTogglerComponent { 8 export class DesignModeTogglerComponent {
9 9
10 - inDesignMode: boolean = false;  
11 10
12 constructor(private designModeService: DesignModeService, private $scope: ng.IScope) { 11 constructor(private designModeService: DesignModeService, private $scope: ng.IScope) {
13 } 12 }
14 13
15 - ngOnInit() {  
16 - this.designModeService.onToggle.subscribe((editOnOrFalse: boolean) => {  
17 - this.inDesignMode = editOnOrFalse;  
18 - this.$scope.$apply();  
19 - });  
20 - } 14 + private _inDesignMode: boolean = false;
21 15
22 - toggleDesignModeOn() {  
23 - if (!this.inDesignMode) {  
24 - this.designModeService.toggle();  
25 - }  
26 - } 16 + get inDesignMode(): boolean {
  17 + return this.designModeService.isInDesignMode();
  18 + };
  19 +
  20 + set inDesignMode(value: boolean) {
  21 + this.designModeService.setInDesignMode(value);
  22 + };
27 23
28 - toggleDesignModeOff() {  
29 - if (this.inDesignMode) {  
30 - this.designModeService.toggle();  
31 - }  
32 - }  
33 } 24 }
34 \ No newline at end of file 25 \ No newline at end of file
src/app/admin/designModeToggler.html
1 -  
2 - <span class="design-toggler-label" ng-bind="'designMode.label' | translate"></span>  
3 - <div class="btn-group design-toggler">  
4 - <button ng-click="ctrl.toggleDesignModeOff()" ng-class="{active: !ctrl.inDesignMode}" class="btn btn-xs btn-warning" ng-bind="'designMode.toggle.OFF' | translate"></button>  
5 - <button ng-click="ctrl.toggleDesignModeOn()" ng-class="{active: ctrl.inDesignMode}" class="btn btn-xs btn-warning" ng-bind="'designMode.toggle.ON' | translate "></button>  
6 - </div> 1 +<toggle-switch
  2 + html="true"
  3 + ng-model="ctrl.inDesignMode"
  4 + on-label="{{'designMode.toggle.ON' | translate}}"
  5 + off-label="{{'designMode.toggle.OFF' | translate}}"
  6 + knob-label="{{'designMode.label' | translate}}">
  7 +</toggle-switch>
7 \ No newline at end of file 8 \ No newline at end of file
src/app/layout/navbar/navbar.ts
@@ -5,11 +5,12 @@ import {EnvironmentService} from &quot;./../../../lib/ng-noosfero-api/http/environmen @@ -5,11 +5,12 @@ import {EnvironmentService} from &quot;./../../../lib/ng-noosfero-api/http/environmen
5 import {SidebarNotificationService} from "../sidebar/sidebar.notification.service"; 5 import {SidebarNotificationService} from "../sidebar/sidebar.notification.service";
6 import {BodyStateClassesService} from '../services/body-state-classes.service'; 6 import {BodyStateClassesService} from '../services/body-state-classes.service';
7 import {DesignModeTogglerComponent} from './../../admin/designModeToggler.component'; 7 import {DesignModeTogglerComponent} from './../../admin/designModeToggler.component';
  8 +import {BootstrapSwitcherComponent, BootstrapSwitcherItem} from './../../shared/components/bootstrap-switcher/bootstrap-switcher.component';
8 9
9 @Component({ 10 @Component({
10 selector: "acme-navbar", 11 selector: "acme-navbar",
11 templateUrl: "app/layout/navbar/navbar.html", 12 templateUrl: "app/layout/navbar/navbar.html",
12 - directives: [LanguageSelectorComponent, DesignModeTogglerComponent], 13 + directives: [LanguageSelectorComponent, DesignModeTogglerComponent, BootstrapSwitcherComponent],
13 providers: [AuthService, SessionService, SidebarNotificationService, EnvironmentService] 14 providers: [AuthService, SessionService, SidebarNotificationService, EnvironmentService]
14 }) 15 })
15 @Inject("$uibModal", AuthService, "SessionService", "$state", SidebarNotificationService, BodyStateClassesService, EnvironmentService) 16 @Inject("$uibModal", AuthService, "SessionService", "$state", SidebarNotificationService, BodyStateClassesService, EnvironmentService)
@@ -19,7 +20,6 @@ export class Navbar { @@ -19,7 +20,6 @@ export class Navbar {
19 private modalInstance: any = null; 20 private modalInstance: any = null;
20 public showHamburger: boolean = false; 21 public showHamburger: boolean = false;
21 public currentEnvironment: noosfero.Environment = <any>{ name: '' }; 22 public currentEnvironment: noosfero.Environment = <any>{ name: '' };
22 -  
23 /** 23 /**
24 * 24 *
25 */ 25 */
src/app/layout/scss/_layout.scss
@@ -47,5 +47,4 @@ body.noosfero-design-on { @@ -47,5 +47,4 @@ body.noosfero-design-on {
47 ul.nav > li.toggler-container { 47 ul.nav > li.toggler-container {
48 position: relative; 48 position: relative;
49 padding-top: 12px; 49 padding-top: 12px;
50 - color: white;  
51 } 50 }
52 \ No newline at end of file 51 \ No newline at end of file
src/app/main/main.component.ts
@@ -109,7 +109,7 @@ export class EnvironmentContent { @@ -109,7 +109,7 @@ export class EnvironmentContent {
109 "angular-bind-html-compile", "angularMoment", "angular.filter", "akoenig.deckgrid", 109 "angular-bind-html-compile", "angularMoment", "angular.filter", "akoenig.deckgrid",
110 "angular-timeline", "duScroll", "oitozero.ngSweetAlert", 110 "angular-timeline", "duScroll", "oitozero.ngSweetAlert",
111 "pascalprecht.translate", "tmh.dynamicLocale", "angularLoad", 111 "pascalprecht.translate", "tmh.dynamicLocale", "angularLoad",
112 - "angular-click-outside", "noosfero.init"] 112 + "angular-click-outside", "toggle-switch", "noosfero.init"]
113 }) 113 })
114 @StateConfig([ 114 @StateConfig([
115 { 115 {
src/languages/en.json
@@ -75,7 +75,7 @@ @@ -75,7 +75,7 @@
75 "custom_content.title": "Edit content", 75 "custom_content.title": "Edit content",
76 "profile.custom_header.label": "Header", 76 "profile.custom_header.label": "Header",
77 "profile.custom_footer.label": "Footer", 77 "profile.custom_footer.label": "Footer",
78 - "designMode.label": "Design Mode", 78 + "designMode.label": "In Design",
79 "designMode.toggle.ON": "ON", 79 "designMode.toggle.ON": "ON",
80 "designMode.toggle.OFF": "OFF" 80 "designMode.toggle.OFF": "OFF"
81 } 81 }