dashboard-admin/public/assets/js/scripts.js
2023-09-18 18:28:52 +07:00

640 lines
19 KiB
JavaScript

"use strict";
// ChartJS
if (window.Chart) {
Chart.defaults.global.defaultFontFamily = "'Nunito', 'Segoe UI', 'Arial'";
Chart.defaults.global.defaultFontSize = 11;
Chart.defaults.global.defaultFontStyle = 500;
Chart.defaults.global.defaultFontColor = "#999";
Chart.defaults.global.tooltips.backgroundColor = "#000";
Chart.defaults.global.tooltips.titleFontFamily =
"'Nunito', 'Segoe UI', 'Arial'";
Chart.defaults.global.tooltips.titleFontColor = "#fff";
Chart.defaults.global.tooltips.titleFontSize = 20;
Chart.defaults.global.tooltips.xPadding = 10;
Chart.defaults.global.tooltips.yPadding = 10;
Chart.defaults.global.tooltips.cornerRadius = 3;
}
// DropzoneJS
if (window.Dropzone) {
Dropzone.autoDiscover = false;
}
// Basic confirm box
$("[data-confirm]").each(function () {
var me = $(this),
me_data = me.data("confirm");
me_data = me_data.split("|");
me.fireModal({
title: me_data[0],
body: me_data[1],
buttons: [
{
text: me.data("confirm-text-yes") || "Yes",
class: "btn btn-danger btn-shadow",
handler: function () {
eval(me.data("confirm-yes"));
},
},
{
text: me.data("confirm-text-cancel") || "Cancel",
class: "btn btn-secondary",
handler: function (modal) {
$.destroyModal(modal);
eval(me.data("confirm-no"));
},
},
],
});
});
// Global
$(function () {
let sidebar_nicescroll_opts = {
cursoropacitymin: 0,
cursoropacitymax: 0.8,
zindex: 892,
},
now_layout_class = null;
var sidebar_sticky = function () {
if ($("body").hasClass("layout-2")) {
$("body.layout-2 #sidebar-wrapper").stick_in_parent({
parent: $("body"),
});
$("body.layout-2 #sidebar-wrapper").stick_in_parent({
recalc_every: 1,
});
}
};
sidebar_sticky();
var sidebar_nicescroll;
var update_sidebar_nicescroll = function () {
let a = setInterval(function () {
if (sidebar_nicescroll != null) sidebar_nicescroll.resize();
}, 10);
setTimeout(function () {
clearInterval(a);
}, 600);
};
var sidebar_dropdown = function () {
if ($(".main-sidebar").length) {
$(".main-sidebar").niceScroll(sidebar_nicescroll_opts);
sidebar_nicescroll = $(".main-sidebar").getNiceScroll();
$(".main-sidebar .sidebar-menu li a.has-dropdown")
.off("click")
.on("click", function () {
var me = $(this);
me.parent()
.find("> .dropdown-menu")
.slideToggle(500, function () {
update_sidebar_nicescroll();
return false;
});
return false;
});
}
};
sidebar_dropdown();
if ($("#top-5-scroll").length) {
$("#top-5-scroll")
.css({
height: 315,
})
.niceScroll();
}
$(".main-content").css({
minHeight: $(window).outerHeight() - 95,
});
$(".nav-collapse-toggle").click(function () {
$(this).parent().find(".navbar-nav").toggleClass("show");
return false;
});
$(document).on("click", function (e) {
$(".nav-collapse .navbar-nav").removeClass("show");
});
var toggle_sidebar_mini = function (mini) {
let body = $("body");
if (!mini) {
body.removeClass("sidebar-mini");
$(".main-sidebar").css({
overflow: "hidden",
});
setTimeout(function () {
$(".main-sidebar").niceScroll(sidebar_nicescroll_opts);
sidebar_nicescroll = $(".main-sidebar").getNiceScroll();
}, 500);
$(".main-sidebar .sidebar-menu > li > ul .dropdown-title").remove();
$(".main-sidebar .sidebar-menu > li > a").removeAttr("data-toggle");
$(".main-sidebar .sidebar-menu > li > a").removeAttr(
"data-original-title"
);
$(".main-sidebar .sidebar-menu > li > a").removeAttr("title");
} else {
body.addClass("sidebar-mini");
body.removeClass("sidebar-show");
sidebar_nicescroll.remove();
sidebar_nicescroll = null;
$(".main-sidebar .sidebar-menu > li").each(function () {
let me = $(this);
if (me.find("> .dropdown-menu").length) {
me.find("> .dropdown-menu").hide();
me.find("> .dropdown-menu").prepend(
'<li class="dropdown-title pt-3">' +
me.find("> a").text() +
"</li>"
);
} else {
me.find("> a").attr("data-toggle", "tooltip");
me.find("> a").attr(
"data-original-title",
me.find("> a").text()
);
$("[data-toggle='tooltip']").tooltip({
placement: "right",
});
}
});
}
};
$("[data-toggle='sidebar']").click(function () {
var body = $("body"),
w = $(window);
if (w.outerWidth() <= 1024) {
body.removeClass("search-show search-gone");
if (body.hasClass("sidebar-gone")) {
body.removeClass("sidebar-gone");
body.addClass("sidebar-show");
} else {
body.addClass("sidebar-gone");
body.removeClass("sidebar-show");
}
update_sidebar_nicescroll();
} else {
body.removeClass("search-show search-gone");
if (body.hasClass("sidebar-mini")) {
toggle_sidebar_mini(false);
} else {
toggle_sidebar_mini(true);
}
}
return false;
});
var toggleLayout = function () {
var w = $(window),
layout_class = $("body").attr("class") || "",
layout_classes =
layout_class.trim().length > 0 ? layout_class.split(" ") : "";
if (layout_classes.length > 0) {
layout_classes.forEach(function (item) {
if (item.indexOf("layout-") != -1) {
now_layout_class = item;
}
});
}
if (w.outerWidth() <= 1024) {
if ($("body").hasClass("sidebar-mini")) {
toggle_sidebar_mini(false);
$(".main-sidebar").niceScroll(sidebar_nicescroll_opts);
sidebar_nicescroll = $(".main-sidebar").getNiceScroll();
}
$("body").addClass("sidebar-gone");
$("body").removeClass(
"layout-2 layout-3 sidebar-mini sidebar-show"
);
$("body")
.off("click")
.on("click", function (e) {
if (
$(e.target).hasClass("sidebar-show") ||
$(e.target).hasClass("search-show")
) {
$("body").removeClass("sidebar-show");
$("body").addClass("sidebar-gone");
$("body").removeClass("search-show");
update_sidebar_nicescroll();
}
});
update_sidebar_nicescroll();
if (now_layout_class == "layout-3") {
let nav_second_classes = $(".navbar-secondary").attr("class"),
nav_second = $(".navbar-secondary");
nav_second.attr("data-nav-classes", nav_second_classes);
nav_second.removeAttr("class");
nav_second.addClass("main-sidebar");
let main_sidebar = $(".main-sidebar");
main_sidebar
.find(".container")
.addClass("sidebar-wrapper")
.removeClass("container");
main_sidebar
.find(".navbar-nav")
.addClass("sidebar-menu")
.removeClass("navbar-nav");
main_sidebar
.find(".sidebar-menu .nav-item.dropdown.show a")
.click();
main_sidebar.find(".sidebar-brand").remove();
main_sidebar.find(".sidebar-menu").before(
$("<div>", {
class: "sidebar-brand",
}).append(
$("<a>", {
href: $(".navbar-brand").attr("href"),
}).html($(".navbar-brand").html())
)
);
setTimeout(function () {
sidebar_nicescroll = main_sidebar.niceScroll(
sidebar_nicescroll_opts
);
sidebar_nicescroll = main_sidebar.getNiceScroll();
}, 700);
sidebar_dropdown();
$(".main-wrapper").removeClass("container");
}
} else {
$("body").removeClass("sidebar-gone sidebar-show");
if (now_layout_class) $("body").addClass(now_layout_class);
let nav_second_classes =
$(".main-sidebar").attr("data-nav-classes"),
nav_second = $(".main-sidebar");
if (
now_layout_class == "layout-3" &&
nav_second.hasClass("main-sidebar")
) {
nav_second.find(".sidebar-menu li a.has-dropdown").off("click");
nav_second.find(".sidebar-brand").remove();
nav_second.removeAttr("class");
nav_second.addClass(nav_second_classes);
let main_sidebar = $(".navbar-secondary");
main_sidebar
.find(".sidebar-wrapper")
.addClass("container")
.removeClass("sidebar-wrapper");
main_sidebar
.find(".sidebar-menu")
.addClass("navbar-nav")
.removeClass("sidebar-menu");
main_sidebar.find(".dropdown-menu").hide();
main_sidebar.removeAttr("style");
main_sidebar.removeAttr("tabindex");
main_sidebar.removeAttr("data-nav-classes");
$(".main-wrapper").addClass("container");
// if(sidebar_nicescroll != null)
// sidebar_nicescroll.remove();
} else if (now_layout_class == "layout-2") {
$("body").addClass("layout-2");
} else {
update_sidebar_nicescroll();
}
}
};
toggleLayout();
$(window).resize(toggleLayout);
$("[data-toggle='search']").click(function () {
var body = $("body");
if (body.hasClass("search-gone")) {
body.addClass("search-gone");
body.removeClass("search-show");
} else {
body.removeClass("search-gone");
body.addClass("search-show");
}
});
// tooltip
$("[data-toggle='tooltip']").tooltip();
// popover
$('[data-toggle="popover"]').popover({
container: "body",
});
// Select2
// if(jQuery().select2) {
// $(".select2").select2();
// }
// Selectric
if (jQuery().selectric) {
$(".selectric").selectric({
disableOnMobile: false,
nativeOnMobile: false,
});
}
$(".notification-toggle").dropdown();
$(".notification-toggle")
.parent()
.on("shown.bs.dropdown", function () {
$(".dropdown-list-icons").niceScroll({
cursoropacitymin: 0.3,
cursoropacitymax: 0.8,
cursorwidth: 7,
});
});
$(".message-toggle").dropdown();
$(".message-toggle")
.parent()
.on("shown.bs.dropdown", function () {
$(".dropdown-list-message").niceScroll({
cursoropacitymin: 0.3,
cursoropacitymax: 0.8,
cursorwidth: 7,
});
});
if ($(".chat-content").length) {
$(".chat-content").niceScroll({
cursoropacitymin: 0.3,
cursoropacitymax: 0.8,
});
$(".chat-content")
.getNiceScroll(0)
.doScrollTop($(".chat-content").height());
}
if (jQuery().summernote) {
$(".summernote").summernote({
dialogsInBody: true,
minHeight: 250,
});
$(".summernote-simple").summernote({
dialogsInBody: true,
minHeight: 150,
toolbar: [
["style", ["bold", "italic", "underline", "clear"]],
["font", ["strikethrough"]],
["para", ["paragraph"]],
],
});
}
if (window.CodeMirror) {
$(".codeeditor").each(function () {
let editor = CodeMirror.fromTextArea(this, {
lineNumbers: true,
theme: "duotone-dark",
mode: "javascript",
height: 200,
});
editor.setSize("100%", 200);
});
}
// Follow function
$(".follow-btn, .following-btn").each(function () {
var me = $(this),
follow_text = "Follow",
unfollow_text = "Following";
me.click(function () {
if (me.hasClass("following-btn")) {
me.removeClass("btn-danger");
me.removeClass("following-btn");
me.addClass("btn-primary");
me.html(follow_text);
eval(me.data("unfollow-action"));
} else {
me.removeClass("btn-primary");
me.addClass("btn-danger");
me.addClass("following-btn");
me.html(unfollow_text);
eval(me.data("follow-action"));
}
return false;
});
});
// Dismiss function
$("[data-dismiss]").each(function () {
var me = $(this),
target = me.data("dismiss");
me.click(function () {
$(target).fadeOut(function () {
$(target).remove();
});
return false;
});
});
// Collapsable
$("[data-collapse]").each(function () {
var me = $(this),
target = me.data("collapse");
me.click(function () {
$(target).collapse("toggle");
$(target).on("shown.bs.collapse", function () {
me.html('<i class="fas fa-minus"></i>');
});
$(target).on("hidden.bs.collapse", function () {
me.html('<i class="fas fa-plus"></i>');
});
return false;
});
});
// Gallery
$(".gallery .gallery-item").each(function () {
var me = $(this);
me.attr("href", me.data("image"));
me.attr("title", me.data("title"));
if (me.parent().hasClass("gallery-fw")) {
me.css({
height: me.parent().data("item-height"),
});
me.find("div").css({
lineHeight: me.parent().data("item-height") + "px",
});
}
me.css({
backgroundImage: 'url("' + me.data("image") + '")',
});
});
if (jQuery().Chocolat) {
$(".gallery").Chocolat({
className: "gallery",
imageSelector: ".gallery-item",
});
}
// Background
$("[data-background]").each(function () {
var me = $(this);
me.css({
backgroundImage: "url(" + me.data("background") + ")",
});
});
// Custom Tab
$("[data-tab]").each(function () {
var me = $(this);
me.click(function () {
if (!me.hasClass("active")) {
var tab_group = $('[data-tab-group="' + me.data("tab") + '"]'),
tab_group_active = $(
'[data-tab-group="' + me.data("tab") + '"].active'
),
target = $(me.attr("href")),
links = $('[data-tab="' + me.data("tab") + '"]');
links.removeClass("active");
me.addClass("active");
target.addClass("active");
tab_group_active.removeClass("active");
}
return false;
});
});
// Bootstrap 4 Validation
$(".needs-validation").submit(function () {
var form = $(this);
if (form[0].checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
}
form.addClass("was-validated");
});
// alert dismissible
$(".alert-dismissible").each(function () {
var me = $(this);
me.find(".close").click(function () {
me.alert("close");
});
});
if ($(".main-navbar").length) {
}
// Image cropper
$("[data-crop-image]").each(function (e) {
$(this).css({
overflow: "hidden",
position: "relative",
height: $(this).data("crop-image"),
});
});
// Slide Toggle
$("[data-toggle-slide]").click(function () {
let target = $(this).data("toggle-slide");
$(target).slideToggle();
return false;
});
// Dismiss modal
$("[data-dismiss=modal]").click(function () {
$(this).closest(".modal").modal("hide");
return false;
});
// Width attribute
$("[data-width]").each(function () {
$(this).css({
width: $(this).data("width"),
});
});
// Height attribute
$("[data-height]").each(function () {
$(this).css({
height: $(this).data("height"),
});
});
// Chocolat
if ($(".chocolat-parent").length && jQuery().Chocolat) {
$(".chocolat-parent").Chocolat();
}
// Sortable card
if ($(".sortable-card").length && jQuery().sortable) {
$(".sortable-card").sortable({
handle: ".card-header",
opacity: 0.8,
tolerance: "pointer",
});
}
// Daterangepicker
if (jQuery().daterangepicker) {
if ($(".datepicker").length) {
$(".datepicker").daterangepicker({
locale: { format: "YYYY-MM-DD" },
singleDatePicker: true,
});
}
if ($(".datetimepicker").length) {
$(".datetimepicker").daterangepicker({
locale: { format: "YYYY-MM-DD hh:mm" },
singleDatePicker: true,
timePicker: true,
timePicker24Hour: true,
});
}
if ($(".daterange").length) {
$(".daterange").daterangepicker({
locale: { format: "YYYY-MM-DD" },
drops: "down",
opens: "right",
});
}
}
// Timepicker
if (jQuery().timepicker && $(".timepicker").length) {
$(".timepicker").timepicker({
icons: {
up: "fas fa-chevron-up",
down: "fas fa-chevron-down",
},
});
}
});