/* Copyright CloudLinux Zug GmbH 2010-2017 All Rights Reserved
*
* Licensed under CLOUD LINUX LICENSE AGREEMENT
* http://cloudlinux.com/docs/LICENSE.TXT
*/
import { Loader, LoaderSelector } from './loader';
import { ViewModes } from '../services/view_modes';
import { ViewMode } from '../model/view_mode';
import { UiSelectOption } from './ui-elements/ui-select/ui-select';
import { ElementRef } from '@angular/core';
import { AppState } from '../app.service';
import { InstanceInjector } from '../services/instance-injector';
declare const panelName: any;
declare const panelVersion: any;
declare var jQuery: any;
export class BaseComponent {
public appState: AppState;
public viewModes: ViewMode[] = ViewModes.availableModes;
public availableViewModes: ViewMode[];
public elementRef: ElementRef;
public viewModesForPackages: ViewMode[] = ViewModes.availableModesForPackages();
public availableViewModesForPackages: ViewMode[];
public periodList: UiSelectOption[] = [
{'id': 'seconds', 'caption': 'seconds'},
{'id': 'minutes', 'caption': 'minutes'},
{'id': 'hours', 'caption': 'hours'},
{'id': 'days', 'caption': 'days'},
];
public periodListShort: UiSelectOption[] = [
{'id': 'hours', 'caption': 'hours'},
{'id': 'days', 'caption': 'days'},
];
public loaderSelector: LoaderSelector = null;
private _loading: boolean = false;
constructor() {
this.availableViewModes = ViewModes.availableModes.filter((mode) => {
return mode.active;
});
this.availableViewModesForPackages = ViewModes.availableModesForPackages()
.filter((mode) => {
return mode.active;
});
}
get panelInfo(){
let info = '';
if (typeof panelName !== 'undefined') {
info += panelName + '_';
}
if (typeof panelVersion !== 'undefined') {
info += panelVersion;
}
return info;
}
set loading(value: boolean) {
if (this.loaderSelector && value !== this._loading) {
this._loading = value;
setTimeout(() => {
if (this.appState && !this.loaderSelector.showBigLoader) {
this.appState.set('menuLoader', value);
InstanceInjector.loadingBarServiceInstance[value ? 'start' : 'complete']();
}
});
Loader[
this.loaderSelector.showBigLoader ? '__switchBigLoader' : '__switchBlockingWrapper'
](jQuery(this.loaderSelector.selector), value);
}
}
get loading() {
return this._loading;
}
}
|