| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';
- import { Location, LocationStrategy, PathLocationStrategy, PopStateEvent } from '@angular/common';
- import { filter, map } from 'rxjs/operators';
- import { Subscription } from 'rxjs/Subscription';
- //import { NavbarComponent } from '../../components/navbar/navbar.component';
- import { Router, NavigationEnd, NavigationStart } from '@angular/router';
- import PerfectScrollbar from 'perfect-scrollbar';
- import * as $ from "jquery";
- @Component({
- selector: 'app-admin',
- templateUrl: './admin.component.html',
- styleUrls: ['./admin.component.scss']
- })
- export class AdminComponent implements OnInit {
- private _router: Subscription;
- private lastPoppedUrl: string;
- private yScrollStack: number[] = [];
- constructor( public location: Location, private router: Router) {}
- ngOnInit() {
- const isWindows = navigator.platform.indexOf('Win') > -1 ? true : false;
- if (isWindows && !document.getElementsByTagName('body')[0].classList.contains('sidebar-mini')) {
- // if we are on windows OS we activate the perfectScrollbar function
- document.getElementsByTagName('body')[0].classList.add('perfect-scrollbar-on');
- } else {
- document.getElementsByTagName('body')[0].classList.remove('perfect-scrollbar-off');
- }
- const elemMainPanel = <HTMLElement>document.querySelector('.main-panel');
- const elemSidebar = <HTMLElement>document.querySelector('.sidebar .sidebar-wrapper');
- this.location.subscribe((ev:PopStateEvent) => {
- this.lastPoppedUrl = ev.url;
- });
- this.router.events.subscribe((event:any) => {
- if (event instanceof NavigationStart) {
- if (event.url != this.lastPoppedUrl)
- this.yScrollStack.push(window.scrollY);
- } else if (event instanceof NavigationEnd) {
- if (event.url == this.lastPoppedUrl) {
- this.lastPoppedUrl = undefined;
- window.scrollTo(0, this.yScrollStack.pop());
- } else
- window.scrollTo(0, 0);
- }
- });
- this._router = this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe((event: NavigationEnd) => {
- elemMainPanel.scrollTop = 0;
- elemSidebar.scrollTop = 0;
- });
- if (window.matchMedia(`(min-width: 960px)`).matches && !this.isMac()) {
- let ps = new PerfectScrollbar(elemMainPanel);
- ps = new PerfectScrollbar(elemSidebar);
- }
- const window_width = $(window).width();
- let $sidebar = $('.sidebar');
- let $sidebar_responsive = $('body > .navbar-collapse');
- let $sidebar_img_container = $sidebar.find('.sidebar-background');
- if(window_width > 767){
- if($('.fixed-plugin .dropdown').hasClass('show-dropdown')){
- $('.fixed-plugin .dropdown').addClass('open');
- }
- }
- $('.fixed-plugin a').click(function(event){
- // Alex if we click on switch, stop propagation of the event, so the dropdown will not be hide, otherwise we set the section active
- if($(this).hasClass('switch-trigger')){
- if(event.stopPropagation){
- event.stopPropagation();
- }
- else if(window.event){
- window.event.cancelBubble = true;
- }
- }
- });
- $('.fixed-plugin .badge').click(function(){
- let $full_page_background = $('.full-page-background');
- $(this).siblings().removeClass('active');
- $(this).addClass('active');
- var new_color = $(this).data('color');
- if($sidebar.length !== 0){
- $sidebar.attr('data-color', new_color);
- }
- if($sidebar_responsive.length != 0){
- $sidebar_responsive.attr('data-color',new_color);
- }
- });
- $('.fixed-plugin .img-holder').click(function(){
- let $full_page_background = $('.full-page-background');
- $(this).parent('li').siblings().removeClass('active');
- $(this).parent('li').addClass('active');
- //var new_image = $(this).find("img").attr('src');
- if($sidebar_img_container.length !=0 ){
- $sidebar_img_container.fadeOut('fast', function(){
- //$sidebar_img_container.css('background-image','url("' + new_image + '")');
- $sidebar_img_container.fadeIn('fast');
- });
- }
- if($full_page_background.length != 0){
- $full_page_background.fadeOut('fast', function(){
- //$full_page_background.css('background-image','url("' + new_image + '")');
- $full_page_background.fadeIn('fast');
- });
- }
- if($sidebar_responsive.length != 0){
- //$sidebar_responsive.css('background-image','url("' + new_image + '")');
- }
- });
- }
- ngAfterViewInit() {
- this.runOnRouteChange();
- }
- isMaps(path){
- var titlee = this.location.prepareExternalUrl(this.location.path());
- titlee = titlee.slice( 1 );
- if(path == titlee){
- return false;
- }
- else {
- return true;
- }
- }
- runOnRouteChange(): void {
- if (window.matchMedia(`(min-width: 960px)`).matches && !this.isMac()) {
- const elemMainPanel = <HTMLElement>document.querySelector('.main-panel');
- const ps = new PerfectScrollbar(elemMainPanel);
- ps.update();
- }
- }
- isMac(): boolean {
- let bool = false;
- if (navigator.platform.toUpperCase().indexOf('MAC') >= 0 || navigator.platform.toUpperCase().indexOf('IPAD') >= 0) {
- bool = true;
- }
- return bool;
- }
- }
|