| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335 |
- /*
- Template Name: Skote - Admin & Dashboard Template
- Author: Themesbrand
- Version: 4.0.0.
- Website: https://themesbrand.com/
- Contact: themesbrand@gmail.com
- File: Main Js File
- */
- (function ($) {
- 'use strict';
- var language = localStorage.getItem('language');
- // Default Language
- var default_lang = 'en';
- function setLanguage(lang) {
- if (document.getElementById("header-lang-img")) {
- if (lang == 'en') {
- document.getElementById("header-lang-img").src = "assets/images/flags/us.jpg";
- } else if (lang == 'sp') {
- document.getElementById("header-lang-img").src = "assets/images/flags/spain.jpg";
- }
- else if (lang == 'gr') {
- document.getElementById("header-lang-img").src = "assets/images/flags/germany.jpg";
- }
- else if (lang == 'it') {
- document.getElementById("header-lang-img").src = "assets/images/flags/italy.jpg";
- }
- else if (lang == 'ru') {
- document.getElementById("header-lang-img").src = "assets/images/flags/russia.jpg";
- }
- localStorage.setItem('language', lang);
- language = localStorage.getItem('language');
- getLanguage();
- }
- }
- // Multi language setting
- function getLanguage() {
- (language == null) ? setLanguage(default_lang) : false;
- $.getJSON('assets/lang/' + language + '.json', function (lang) {
- $('html').attr('lang', language);
- $.each(lang, function (index, val) {
- (index === 'head') ? $(document).attr("title", val['title']) : false;
- $("[key='" + index + "']").text(val);
- });
- });
- }
- function initMetisMenu() {
- //metis menu
- $("#side-menu").metisMenu();
- }
- function initLeftMenuCollapse() {
- $('#vertical-menu-btn').on('click', function (event) {
- event.preventDefault();
- $('body').toggleClass('sidebar-enable');
- if ($(window).width() >= 992) {
- $('body').toggleClass('vertical-collpsed');
- } else {
- $('body').removeClass('vertical-collpsed');
- }
- });
- }
- function initActiveMenu() {
- // === following js will activate the menu in left side bar based on url ====
- $("#sidebar-menu a").each(function () {
- var pageUrl = window.location.href.split(/[?#]/)[0];
- if (this.href == pageUrl) {
- $(this).addClass("active");
- $(this).parent().addClass("mm-active"); // add active to li of the current link
- $(this).parent().parent().addClass("mm-show");
- $(this).parent().parent().prev().addClass("mm-active"); // add active class to an anchor
- $(this).parent().parent().parent().addClass("mm-active");
- $(this).parent().parent().parent().parent().addClass("mm-show"); // add active to li of the current link
- $(this).parent().parent().parent().parent().parent().addClass("mm-active");
- }
- });
- }
- function initMenuItemScroll() {
- // focus active menu in left sidebar
- $(document).ready(function () {
- if ($("#sidebar-menu").length > 0 && $("#sidebar-menu .mm-active .active").length > 0) {
- var activeMenu = $("#sidebar-menu .mm-active .active").offset().top;
- if (activeMenu > 300) {
- activeMenu = activeMenu - 300;
- $(".vertical-menu .simplebar-content-wrapper").animate({ scrollTop: activeMenu }, "slow");
- }
- }
- });
- }
- function initHoriMenuActive() {
- $(".navbar-nav a").each(function () {
- var pageUrl = window.location.href.split(/[?#]/)[0];
- if (this.href == pageUrl) {
- $(this).addClass("active");
- $(this).parent().addClass("active");
- $(this).parent().parent().addClass("active");
- $(this).parent().parent().parent().addClass("active");
- $(this).parent().parent().parent().parent().addClass("active");
- $(this).parent().parent().parent().parent().parent().addClass("active");
- $(this).parent().parent().parent().parent().parent().parent().addClass("active");
- }
- });
- }
- function initFullScreen() {
- $('[data-bs-toggle="fullscreen"]').on("click", function (e) {
- e.preventDefault();
- $('body').toggleClass('fullscreen-enable');
- if (!document.fullscreenElement && /* alternative standard method */ !document.mozFullScreenElement && !document.webkitFullscreenElement) { // current working methods
- if (document.documentElement.requestFullscreen) {
- document.documentElement.requestFullscreen();
- } else if (document.documentElement.mozRequestFullScreen) {
- document.documentElement.mozRequestFullScreen();
- } else if (document.documentElement.webkitRequestFullscreen) {
- document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
- }
- } else {
- if (document.cancelFullScreen) {
- document.cancelFullScreen();
- } else if (document.mozCancelFullScreen) {
- document.mozCancelFullScreen();
- } else if (document.webkitCancelFullScreen) {
- document.webkitCancelFullScreen();
- }
- }
- });
- document.addEventListener('fullscreenchange', exitHandler);
- document.addEventListener("webkitfullscreenchange", exitHandler);
- document.addEventListener("mozfullscreenchange", exitHandler);
- function exitHandler() {
- if (!document.webkitIsFullScreen && !document.mozFullScreen && !document.msFullscreenElement) {
- console.log('pressed');
- $('body').removeClass('fullscreen-enable');
- }
- }
- }
- function initRightSidebar() {
- // right side-bar toggle
- $('.right-bar-toggle').on('click', function (e) {
- $('body').toggleClass('right-bar-enabled');
- });
- $(document).on('click', 'body', function (e) {
- if ($(e.target).closest('.right-bar-toggle, .right-bar').length > 0) {
- return;
- }
- $('body').removeClass('right-bar-enabled');
- return;
- });
- }
- function initDropdownMenu() {
- if (document.getElementById("topnav-menu-content")) {
- var elements = document.getElementById("topnav-menu-content").getElementsByTagName("a");
- for (var i = 0, len = elements.length; i < len; i++) {
- elements[i].onclick = function (elem) {
- if (elem.target.getAttribute("href") === "#") {
- elem.target.parentElement.classList.toggle("active");
- elem.target.nextElementSibling.classList.toggle("show");
- }
- }
- }
- window.addEventListener("resize", updateMenu);
- }
- }
- function updateMenu() {
- var elements = document.getElementById("topnav-menu-content").getElementsByTagName("a");
- for (var i = 0, len = elements.length; i < len; i++) {
- if (elements[i].parentElement.getAttribute("class") === "nav-item dropdown active") {
- elements[i].parentElement.classList.remove("active");
- if (elements[i].nextElementSibling !== null) {
- elements[i].nextElementSibling.classList.remove("show");
- }
- }
- }
- }
- function initComponents() {
- var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
- var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
- return new bootstrap.Tooltip(tooltipTriggerEl)
- });
- var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
- var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
- return new bootstrap.Popover(popoverTriggerEl)
- });
- var offcanvasElementList = [].slice.call(document.querySelectorAll('.offcanvas'))
- var offcanvasList = offcanvasElementList.map(function (offcanvasEl) {
- return new bootstrap.Offcanvas(offcanvasEl)
- })
- }
- function initPreloader() {
- $(window).on('load', function () {
- $('#status').fadeOut();
- $('#preloader').delay(350).fadeOut('slow');
- });
- }
- function initSettings() {
- if (window.sessionStorage) {
- var alreadyVisited = sessionStorage.getItem("is_visited");
- if (!alreadyVisited) {
- if ($('html').attr('dir') === 'rtl' && $('body').attr('data-layout-mode') === 'dark') {
- $("#dark-rtl-mode-switch").prop('checked', true);
- $("#light-mode-switch").prop('checked', false);
- sessionStorage.setItem("is_visited", "dark-rtl-mode-switch");
- updateThemeSetting(alreadyVisited);
- }else if ($('html').attr('dir') === 'rtl') {
- $("#rtl-mode-switch").prop('checked', true);
- $("#light-mode-switch").prop('checked', false);
- sessionStorage.setItem("is_visited", "rtl-mode-switch");
- updateThemeSetting(alreadyVisited);
- }else if ($('body').attr('data-layout-mode') === 'dark') {
- $("#dark-mode-switch").prop('checked', true);
- $("#light-mode-switch").prop('checked', false);
- sessionStorage.setItem("is_visited", "dark-mode-switch");
- updateThemeSetting(alreadyVisited);
- } else {
- sessionStorage.setItem("is_visited", "light-mode-switch");
- }
- } else {
- $(".right-bar input:checkbox").prop('checked', false);
- $("#" + alreadyVisited).prop('checked', true);
- updateThemeSetting(alreadyVisited);
- }
- }
- $("#light-mode-switch, #dark-mode-switch, #rtl-mode-switch, #dark-rtl-mode-switch").on("change", function (e) {
- updateThemeSetting(e.target.id);
- });
- // show password input value
- $("#password-addon").on('click', function () {
- if ($(this).siblings('input').length > 0) {
- $(this).siblings('input').attr('type') == "password" ? $(this).siblings('input').attr('type', 'input') : $(this).siblings('input').attr('type', 'password');
- }
- })
- }
- function updateThemeSetting(id) {
- if ($("#light-mode-switch").prop("checked") == true && id === "light-mode-switch") {
- $("html").removeAttr("dir");
- $("#dark-mode-switch").prop("checked", false);
- $("#rtl-mode-switch").prop("checked", false);
- $("#dark-rtl-mode-switch").prop("checked", false);
- $("#bootstrap-style").attr('href', '/assets/css/bootstrap.min.css');
- $('body').attr('data-layout-mode', 'light');
- $("#app-style").attr('href', '/assets/css/app.min.css');
- sessionStorage.setItem("is_visited", "light-mode-switch");
- } else if ($("#dark-mode-switch").prop("checked") == true && id === "dark-mode-switch") {
- $("html").removeAttr("dir");
- $("#light-mode-switch").prop("checked", false);
- $("#rtl-mode-switch").prop("checked", false);
- $("#dark-rtl-mode-switch").prop("checked", false);
- $('body').attr('data-layout-mode', 'dark');
- sessionStorage.setItem("is_visited", "dark-mode-switch");
- } else if ($("#rtl-mode-switch").prop("checked") == true && id === "rtl-mode-switch") {
- $("#light-mode-switch").prop("checked", false);
- $("#dark-mode-switch").prop("checked", false);
- $("#dark-rtl-mode-switch").prop("checked", false);
- $("#bootstrap-style").attr('href', 'assets/css/bootstrap-rtl.min.css');
- $("#app-style").attr('href', '/assets/css/app-rtl.min.css');
- $("html").attr("dir", 'rtl');
- $('body').attr('data-layout-mode', 'light');
- sessionStorage.setItem("is_visited", "rtl-mode-switch");
- }
- else if ($("#dark-rtl-mode-switch").prop("checked") == true && id === "dark-rtl-mode-switch") {
- $("#light-mode-switch").prop("checked", false);
- $("#rtl-mode-switch").prop("checked", false);
- $("#dark-mode-switch").prop("checked", false);
- $("#bootstrap-style").attr('href', '/assets/css/bootstrap-rtl.min.css');
- $("#app-style").attr('href', '/assets/css/app-rtl.min.css');
- $("html").attr("dir", 'rtl');
- $('body').attr('data-layout-mode', 'dark');
- sessionStorage.setItem("is_visited", "dark-rtl-mode-switch");
- }
- }
- function initLanguage() {
- // Auto Loader
- if (language != null && language !== default_lang)
- setLanguage(language);
- $('.language').on('click', function (e) {
- setLanguage($(this).attr('data-lang'));
- });
- }
- function initCheckAll() {
- $('#checkAll').on('change', function () {
- $('.table-check .form-check-input').prop('checked', $(this).prop("checked"));
- });
- $('.table-check .form-check-input').change(function () {
- if ($('.table-check .form-check-input:checked').length == $('.table-check .form-check-input').length) {
- $('#checkAll').prop('checked', true);
- } else {
- $('#checkAll').prop('checked', false);
- }
- });
- }
- function init() {
- initMetisMenu();
- initLeftMenuCollapse();
- initActiveMenu();
- initMenuItemScroll();
- initHoriMenuActive();
- initFullScreen();
- initRightSidebar();
- initDropdownMenu();
- initComponents();
- initSettings();
- initLanguage();
- initPreloader();
- Waves.init();
- initCheckAll();
- }
- init();
- })(jQuery)
|