mirror of
https://github.com/richard-loafle/fuse-angular.git
synced 2025-04-03 15:11:37 +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);
|
|
}
|
|
}
|