school-administrarion/assets/scripts/main.js

697 lines
19 KiB
JavaScript
Executable File

(function($) {
"use strict";
var Core = {};
NProgress.start();
$(document).ready(function(){
Core.module.init();
Core.plugin.init();
if ($('[data-toggle="tooltip"]').length) $('[data-toggle="tooltip"]').tooltip() //Enable tooltip
return false;
});
$(window).bind("load",function(){
Core.plugin.isotope.init();
Core.func.resizeNotice();
NProgress.done();
return false;
});
$(window).on("resize",function(){
Core.func.resizeNotice();
Core.func.getChart();
return false;
})
$(".js__full_screen").on('click',function(){
$(document).fullScreen(true);
});
Core.module = {
init : function(){
Core.module.accordion();
Core.module.card();
Core.module.css($(".js__width"),"width");
Core.module.dropDown("js__drop_down",false);
Core.module.logout();
Core.module.menu();
Core.module.tab(".js__tab","li");
Core.module.toggle();
Core.module.todo();
return false;
},
accordion: function(){
$(".js__accordion").each(function(){
var selector = $(this);
selector.find(".js__control").on("click",function(event){
event.preventDefault();
if ($(this).parent().hasClass("active")){
$(this).parent().removeClass("active");
$(this).next().stop().slideUp(400);
}else{
var current = $(this);
selector.find(".active").children(".js__content").stop().slideUp(400);
selector.find(".active").removeClass("active");
$(this).parent().addClass("active");
$(this).next(".js__content").slideDown(400,function(){
if (selector.parents(".main-menu").length){
$(".main-menu .content").mCustomScrollbar("scrollTo",current,{
// scroll as soon as clicked
timeout:0,
// scroll duration
scrollInertia:200,
});
}
});
}
});
});
return false;
},
card: function(){
$(".js__card").each(function(){
var selector = $(this);
selector.on("click",".js__card_minus",function(){
selector.toggleClass("card-closed");
selector.find(".js__card_content").stop().slideToggle(400);
});
selector.on("click",".js__card_remove",function(){
selector.slideUp(400);
});
});
return false;
},
css : function(selector,name,data){
if (!data){
data = name;
}
selector.each(function(){
var raw = $(this).data(data);
if (raw){
var dict = {};
dict[name] = raw
$(this).css(dict);
}
});
return false;
},
dropDown : function(selectorTxt,isMobile){
var selector = $("." + selectorTxt);
selector.each(function(){
var current_selector = $(this);
current_selector.on("click",".js__drop_down_button",function(event){
event.preventDefault();
if ($(window).width() < 1025 || isMobile == false){
if (current_selector.hasClass("active")){
current_selector.removeClass("active");
}else{
selector.removeClass("active");
current_selector.addClass("active");
}
}
return false;
});
});
$("html").on("click",function(event){
var selector = $(event.target);
if (!(selector.hasClass(selectorTxt) || selector.parents("." + selectorTxt).length)){
$("." + selectorTxt + ".active").removeClass("active");
}
});
return false;
},
logout: function(){
$(".js__logout").on("click",function(event){
event.preventDefault();
swal({
title: "Logout?",
text: "Are you sure you want to logout?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, I'm out!",
cancelButtonText: "No, stay plx!",
closeOnConfirm: false,
closeOnCancel: true,
confirmButtonColor: '#f60e0e',
}, function(isConfirm){
if (isConfirm) {
swal({
title : "Logout success",
text: "See you later!",
type: "success",
confirmButtonColor: '#304ffe',
});
} else {
}
});
return false;
});
},
menu: function(){
$(".js__menu_mobile").on("click",function(){
$("html").toggleClass("menu-active");
$(window).trigger("resize");
});
$(".js__menu_close").on("click",function(){
$("html").removeClass("menu-active");
});
$("body").on("click",function(event){
if ($("html.menu-active").length && $(window).width() < 800){
var selector = $(event.target);
if (!(selector.hasClass("main-menu") || selector.hasClass("js__menu_mobile") || selector.parents(".main-menu").length || selector.parents(".js__menu_mobile").length)){
$("html").removeClass("menu-active");
}
}
});
return false;
},
tab: function(name,index_name){
$(".js__tab").each(function(){
var selector = $(this);
selector.on("click",".js__tab_control",function(event){
var target = $(this).data("target");
event.preventDefault();
selector.find(".js__tab_content").removeClass("js__active");
selector.find(".js__tab_control").removeClass("js__active");
$(this).addClass("js__active");
if (target){
$(target).addClass("js__active");
}else{
var index;
if (index_name){
index = $(this).parents(index_name).first().index()
}else{
index = $(this).index()
}
selector.find(".js__tab_content").eq(index).addClass("js__active");
}
return false;
});
});
return false;
},
todo: function(){
$(".js__todo_widget").each(function(){
var selector = $(this),
list = $(this).find(".js__todo_list"),
val = $(this).find(".js__todo_value"),
button = $(this).find(".js__todo_button");
button.on("click",function(){
if (val.val() != ""){
var rnd = Math.floor((Math.random() * 100000000) + 1);
list.append('<div class="todo-item"><div class="checkbox"><input type="checkbox" id="todo-'+ rnd +'"><label for="todo-'+ rnd +'">' + val.val() +'</label></div></div>')
val.val("");
}else{
alert("You must enter task name.")
}
return false;
});
});
return false;
},
toggle: function(){
$(".js__toggle_open").on("click",function(event){
event.preventDefault();
if ($($(this).data("target")).hasClass("active")){
}else{
$(".js__toggle").removeClass("active")
}
$($(this).data("target")).toggleClass("active");
return false;
});
$(".js__toggle_close").on("click",function(event){
event.preventDefault();
$(this).parents(".js__toggle").removeClass("active");
return false;
});
$("body").on("click",function(event){
if ($(".js__toggle").hasClass("active")){
var selector = $(event.target);
if (!(selector.hasClass("js__toggle_open") || selector.hasClass("js__toggle") || selector.parents(".js__toggle_open").length || selector.parents(".js__toggle").length)){
$(".js__toggle").removeClass("active")
}
}
});
return false;
}
}
Core.func = {
childReturnWidth : function(selector,current_width){
if (selector.children("li").children(".sub-menu").length){
var max_width = 0;
selector.children("li").children(".sub-menu").each(function(){
var this_width = Core.func.childReturnWidth($(this),current_width + $(this).outerWidth());
if (this_width > max_width){
max_width = this_width;
}
});
return max_width;
}else{
return current_width;
}
},
getResponsiveSettings: function(selector){
var responsive = selector.data("responsive"),
json = [];
if (responsive){
while(responsive.indexOf("'") > -1){
responsive = responsive.replace("'",'"');
}
var json_temp = JSON.parse(responsive);
$.each(json_temp, function (key, data) {
json[json.length] = {
breakpoint: key,
settings: {
slidesToShow: data,
slidesToScroll: data,
}
}
});
}
return json;
},
getChart: function(){
$(".js__chart").each(function(){
var selector = $(this),
chart = selector.data("chart"),
json = [],
id = selector.attr("id"),
type = selector.data("type"),
options, dataTable,chart_draw,themes = ($(this).hasClass('black-chart') ? '#1b1c1c' : '#ffffff');
if (chart){
var json_temp = chart.split("|"),
i,j;
for (i = 0; i < json_temp.length; i++){
json_temp[i] = json_temp[i].trim();
json[i] = json_temp[i].split("/");
for(j = 0; j < json[i].length; j++){
if (json[i][j].indexOf("'") > -1){
while(json[i][j].indexOf("'") > -1){
json[i][j] = json[i][j].replace("'","");
}
json[i][j] = json[i][j].trim();
}else{
if (json[i][j].indexOf(".") > -1){
json[i][j] = parseFloat(json[i][j]);
}else{
json[i][j] = parseInt(json[i][j],10);
}
}
}
}
dataTable = google.visualization.arrayToDataTable(json);
if ($(this).hasClass('black-chart')){
switch (type){
case "circle":
options = {
chartArea:{left:0,top:0,width:'100%',height:'75%'},
colors: ["#304ffe", "#f60e0e","#ffa000"],
fontName: 'Poppins',
backgroundColor: themes,
legend:{
position: 'bottom',
textStyle: {
color: '#484848'
}
},
vAxis: {
baselineColor: '#484848',
gridlines: {
color: "#484848"
},
textStyle:{
color: '#484848'
}
},
hAxis: {
textStyle:{
color: '#484848'
}
}
}
chart_draw = new google.visualization.PieChart(document.getElementById(id));
break;
case "donut":
options = {
pieHole: 0.3,
chartArea:{left:0,top:0,width:'100%',height:'75%'},
legend:{
position: 'bottom',
textStyle: {
color: '#484848'
}
},
colors: ["#304ffe", "#f60e0e","#ffa000"],
fontName: 'Poppins',
backgroundColor: themes
}
chart_draw = new google.visualization.PieChart(document.getElementById(id));
break;
case "column":
options = {
chartArea:{left:30,top:10,width:'100%',height:'80%'},
colors: ["#304ffe"],
fontName: 'Poppins',
backgroundColor: themes,
vAxis: {
baselineColor: '#484848',
gridlines: {
color: "#484848"
},
textStyle:{
color: '#484848'
}
},
hAxis: {
textStyle:{
color: '#484848'
}
}
}
chart_draw = new google.visualization.ColumnChart(document.getElementById(id));
break;
case "curve":
options = {
chartArea:{left:30,top:10,width:'90%',height:'80%'},
curveType: 'function',
colors: ["#304ffe", "#f60e0e","#ffa000"],
fontName: 'Poppins',
backgroundColor: themes,
vAxis: {
baselineColor: '#484848',
gridlines: {
color: "#484848"
},
textStyle:{
color: '#484848'
}
},
hAxis: {
textStyle:{
color: '#484848'
}
}
}
chart_draw = new google.visualization.LineChart(document.getElementById(id));
break;
case "line":
options = {
chartArea:{left:30,top:10,width:'90%',height:'80%'},
fontName: 'Poppins',
backgroundColor: themes,
vAxis: {
baselineColor: '#484848',
gridlines: {
color: "#484848"
},
textStyle:{
color: '#484848'
}
},
hAxis: {
textStyle:{
color: '#484848'
}
}
}
chart_draw = new google.visualization.LineChart(document.getElementById(id));
break;
case "area":
options = {
chartArea:{left:50,top:20,width:'100%',height:'70%'},
legend: {
position: 'bottom'
},
fontName: 'Poppins',
backgroundColor: themes,
vAxis: {
baselineColor: '#484848',
gridlines: {
color: "#484848"
},
textStyle:{
color: '#484848'
}
},
hAxis: {
textStyle:{
color: '#484848'
}
}
}
chart_draw = new google.visualization.AreaChart(document.getElementById(id));
break;
}
}else{
switch (type){
case "circle":
options = {
chartArea:{left:0,top:0,width:'100%',height:'75%'},
legend:{
position: 'bottom'
},
colors: ["#304ffe", "#f60e0e","#ffa000"],
fontName: 'Poppins',
backgroundColor: themes
}
chart_draw = new google.visualization.PieChart(document.getElementById(id));
break;
case "donut":
options = {
pieHole: 0.3,
chartArea:{left:0,top:0,width:'100%',height:'75%'},
legend:{
position: 'bottom',
},
colors: ["#304ffe", "#f60e0e","#ffa000"],
fontName: 'Poppins',
backgroundColor: themes
}
chart_draw = new google.visualization.PieChart(document.getElementById(id));
break;
case "column":
options = {
chartArea:{left:30,top:10,width:'100%',height:'80%'},
colors: ["#304ffe"],
fontName: 'Poppins',
backgroundColor: themes
}
chart_draw = new google.visualization.ColumnChart(document.getElementById(id));
break;
case "curve":
options = {
chartArea:{left:30,top:10,width:'90%',height:'80%'},
curveType: 'function',
colors: ["#304ffe", "#f60e0e","#ffa000"],
fontName: 'Poppins',
backgroundColor: themes
}
chart_draw = new google.visualization.LineChart(document.getElementById(id));
break;
case "line":
options = {
chartArea:{left:30,top:10,width:'90%',height:'80%'},
fontName: 'Poppins',
backgroundColor: themes
}
chart_draw = new google.visualization.LineChart(document.getElementById(id));
break;
case "area":
options = {
chartArea:{left:50,top:20,width:'100%',height:'70%'},
legend: {
position: 'bottom'
},
fontName: 'Poppins',
backgroundColor: themes
}
chart_draw = new google.visualization.AreaChart(document.getElementById(id));
break;
}
}
chart_draw.draw(dataTable, options);
}
});
},
resizeNotice : function(){
$(".notice-popup").each(function(){
var selector = $(this),
space = (parseInt(selector.data("space"),10) > 0) ? parseInt(selector.data("space"),10) : 75,
window_height = $(window).height() - space;
selector.attr("style","");
if (selector.height() > window_height){
selector.css({
"height" : window_height
});
}
});
}
}
Core.plugin = {
init : function(){
Core.plugin.chart();
Core.plugin.mCustomScrollbar();
Core.plugin.select2();
Core.plugin.ui.accordion();
Core.plugin.ui.slider();
Core.plugin.ui.sortable();
Core.plugin.ui.tabs();
Core.plugin.waves();
Core.plugin.isotope.filter();
return false;
},
chart: function(){
if ($(".js__chart").length){
google.charts.load("current", {packages:["corechart"]});
google.charts.setOnLoadCallback(Core.func.getChart);
}
return false;
},
isotope : {
init : function(){
setTimeout(function(){
$(".js__filter_isotope").each(function(){
var selector = $(this);
selector.find(".js__isotope_items").isotope({
itemSelector: ".js__isotope_item",
layoutMode: 'cellsByRow'
});
});
},100);
return false;
},
filter : function(){
$(".js__filter_isotope").each(function(){
var selector = $(this);
selector.on("click",".js__filter_control",function(event){
event.preventDefault();
if (!($(this).hasClass(".js__active"))){
selector.find(".js__filter_control").removeClass("js__active");
$(this).addClass("js__active");
selector.find(".js__isotope_items").isotope({
filter : $(this).data("filter")
});
}
return false;
});
});
return false;
}
},
mCustomScrollbar:function(){
if ($(".main-menu").length){
$(".main-menu .content").mCustomScrollbar();
}
if ($(".notice-popup").length){
$(".notice-popup .content").mCustomScrollbar();
}
return false;
},
select2 : function(){
$(".js__select2").each(function(){
var minResults = $(this).data("min-results"),
classContainer = $(this).data("container-class");
if (minResults){
if (minResults == "Infinity"){
$(this).select2({
minimumResultsForSearch: Infinity,
});
}else{
$(this).select2({
minimumResultsForSearch: parseInt(minResults,10)
});
}
if (classContainer){
$(this).on("select2:open", function(){
$(".select2-container--open").addClass(classContainer);
return false;
});
}
}else{
$(this).select2();
}
});
return false;
},
ui: {
accordion: function(){
if ($( ".js__ui_accordion" ).length){
$( ".js__ui_accordion" ).accordion({
heightStyle: "content",
collapsible: true
});
}
return false;
},
slider: function(){
$(".js__ui_slider").each(function(){
var selector = $(this),
slider = selector.find(".js__slider_range"),
amount = selector.find(".js__slider_amount"),
min = parseInt(selector.data("min"),10),
max = parseInt(selector.data("max"),10),
start = parseInt(selector.data("value-1"),10),
end = parseInt(selector.data("value-2"),10),
range = selector.data("range");
if (end > 0){
slider.slider({
range: true,
min: min,
max: max,
values: [ start, end ],
slide: function( event, ui ) {
amount.val( "$" + ui.values[0] + " - $" + ui.values[1] );
}
});
amount.val( "$" + slider.slider( "values", 0 ) + " - $" + slider.slider( "values", 1 ) );
}else{
slider.slider({
range: range,
min: min,
max: max,
value: start,
slide: function( event, ui ) {
amount.val( "$" + ui.value );
}
});
amount.val("$" + slider.slider( "value" ) );
}
});
return false;
},
sortable: function(){
if ($(".js__sortable").length){
$(".js__sortable").sortable({
revert: true,
start: function(e, ui){
ui.placeholder.height(ui.item.height() - 20);
ui.placeholder.css('visibility', 'visible');
}
});
}
return false;
},
tabs : function(){
if ($(".js__ui_tab").length){
$(".js__ui_tab").tabs();
}
return false;
}
},
waves: function(){
if ($('.js__control').length){
Waves.attach('.js__control');
Waves.init();
}
return false;
}
}
})(jQuery);