mirror of
				https://github.com/richard-loafle/fuse-angular.git
				synced 2025-10-31 13:13:34 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			164 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
 | |
| import { Subject } from 'rxjs';
 | |
| import { takeUntil } from 'rxjs/operators';
 | |
| import { TranslateService } from '@ngx-translate/core';
 | |
| import * as _ from 'lodash';
 | |
| 
 | |
| import { FuseConfigService } from '@fuse/services/config.service';
 | |
| import { FuseSidebarService } from '@fuse/components/sidebar/sidebar.service';
 | |
| 
 | |
| import { navigation } from 'app/navigation/navigation';
 | |
| 
 | |
| @Component({
 | |
|     selector     : 'toolbar',
 | |
|     templateUrl  : './toolbar.component.html',
 | |
|     styleUrls    : ['./toolbar.component.scss'],
 | |
|     encapsulation: ViewEncapsulation.None
 | |
| })
 | |
| 
 | |
| export class ToolbarComponent implements OnInit, OnDestroy
 | |
| {
 | |
|     horizontalNavbar: boolean;
 | |
|     rightNavbar: boolean;
 | |
|     hiddenNavbar: boolean;
 | |
|     languages: any;
 | |
|     navigation: any;
 | |
|     selectedLanguage: any;
 | |
|     userStatusOptions: any[];
 | |
| 
 | |
|     // Private
 | |
|     private _unsubscribeAll: Subject<any>;
 | |
| 
 | |
|     /**
 | |
|      * Constructor
 | |
|      *
 | |
|      * @param {FuseConfigService} _fuseConfigService
 | |
|      * @param {FuseSidebarService} _fuseSidebarService
 | |
|      * @param {TranslateService} _translateService
 | |
|      */
 | |
|     constructor(
 | |
|         private _fuseConfigService: FuseConfigService,
 | |
|         private _fuseSidebarService: FuseSidebarService,
 | |
|         private _translateService: TranslateService
 | |
|     )
 | |
|     {
 | |
|         // Set the defaults
 | |
|         this.userStatusOptions = [
 | |
|             {
 | |
|                 'title': 'Online',
 | |
|                 'icon' : 'icon-checkbox-marked-circle',
 | |
|                 'color': '#4CAF50'
 | |
|             },
 | |
|             {
 | |
|                 'title': 'Away',
 | |
|                 'icon' : 'icon-clock',
 | |
|                 'color': '#FFC107'
 | |
|             },
 | |
|             {
 | |
|                 'title': 'Do not Disturb',
 | |
|                 'icon' : 'icon-minus-circle',
 | |
|                 'color': '#F44336'
 | |
|             },
 | |
|             {
 | |
|                 'title': 'Invisible',
 | |
|                 'icon' : 'icon-checkbox-blank-circle-outline',
 | |
|                 'color': '#BDBDBD'
 | |
|             },
 | |
|             {
 | |
|                 'title': 'Offline',
 | |
|                 'icon' : 'icon-checkbox-blank-circle-outline',
 | |
|                 'color': '#616161'
 | |
|             }
 | |
|         ];
 | |
| 
 | |
|         this.languages = [
 | |
|             {
 | |
|                 id   : 'en',
 | |
|                 title: 'English',
 | |
|                 flag : 'us'
 | |
|             },
 | |
|             {
 | |
|                 id   : 'tr',
 | |
|                 title: 'Turkish',
 | |
|                 flag : 'tr'
 | |
|             }
 | |
|         ];
 | |
| 
 | |
|         this.navigation = navigation;
 | |
| 
 | |
|         // Set the private defaults
 | |
|         this._unsubscribeAll = new Subject();
 | |
|     }
 | |
| 
 | |
|     // -----------------------------------------------------------------------------------------------------
 | |
|     // @ Lifecycle hooks
 | |
|     // -----------------------------------------------------------------------------------------------------
 | |
| 
 | |
|     /**
 | |
|      * On init
 | |
|      */
 | |
|     ngOnInit(): void
 | |
|     {
 | |
|         // Subscribe to the config changes
 | |
|         this._fuseConfigService.config
 | |
|             .pipe(takeUntil(this._unsubscribeAll))
 | |
|             .subscribe((settings) => {
 | |
|                 this.horizontalNavbar = settings.layout.navbar.position === 'top';
 | |
|                 this.rightNavbar = settings.layout.navbar.position === 'right';
 | |
|                 this.hiddenNavbar = settings.layout.navbar.hidden === true;
 | |
|             });
 | |
| 
 | |
|         // Set the selected language from default languages
 | |
|         this.selectedLanguage = _.find(this.languages, {'id': this._translateService.currentLang});
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * On destroy
 | |
|      */
 | |
|     ngOnDestroy(): void
 | |
|     {
 | |
|         // Unsubscribe from all subscriptions
 | |
|         this._unsubscribeAll.next();
 | |
|         this._unsubscribeAll.complete();
 | |
|     }
 | |
| 
 | |
|     // -----------------------------------------------------------------------------------------------------
 | |
|     // @ Public methods
 | |
|     // -----------------------------------------------------------------------------------------------------
 | |
| 
 | |
|     /**
 | |
|      * Toggle sidebar open
 | |
|      *
 | |
|      * @param key
 | |
|      */
 | |
|     toggleSidebarOpen(key): void
 | |
|     {
 | |
|         this._fuseSidebarService.getSidebar(key).toggleOpen();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Search
 | |
|      *
 | |
|      * @param value
 | |
|      */
 | |
|     search(value): void
 | |
|     {
 | |
|         // Do your search here...
 | |
|         console.log(value);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the language
 | |
|      *
 | |
|      * @param lang
 | |
|      */
 | |
|     setLanguage(lang): void
 | |
|     {
 | |
|         // Set the selected language for the toolbar
 | |
|         this.selectedLanguage = lang;
 | |
| 
 | |
|         // Use the selected language for translations
 | |
|         this._translateService.use(lang.id);
 | |
|     }
 | |
| }
 |