/*jslint browser: true*/
/*global $, jQuery, alert*/
var idleTime = 0;
var hasCookie = false;
$(document).ajaxComplete(function () {
pageLoad();
});
$(document).ready(function () {
pageLoad();
var clipboard = new Clipboard('.clipboard');
clipboard.on('success', function(e) {
message('Clipboard',e.text,'bottom-right','#FFF','info','5000');
e.clearSelection();
});
/* ===========================================================
Loads the correct sidebar on window load.
collapses the sidebar on window resize.
Sets the min-height of #page-wrapper to window size.
=========================================================== */
"use strict";
var body = $("body");
$(function () {
//$("#preloader").fadeOut();
var set = function () {
var topOffset = 60,
width = (window.innerWidth > 0) ? window.innerWidth : this.screen.width,
height = ((window.innerHeight > 0) ? window.innerHeight : this.screen.height) - 1;
if (width < 768) {
$('div.navbar-collapse').addClass('collapse');
topOffset = 100; /* 2-row-menu */
} else {
$('div.navbar-collapse').removeClass('collapse');
}
/* ===== This is for resizing window ===== */
if (width < 1170) {
body.addClass('content-wrapper');
$(".sidebar-nav, .slimScrollDiv").css("overflow-x", "visible").parent().css("overflow", "visible");
} else {
body.removeClass('content-wrapper');
}
height = height - topOffset;
if (height < 1) {
height = 1;
}
if (height > topOffset) {
$("#page-wrapper").css("min-height", (height) + "px");
}
},
url = window.location,
element = $('ul.nav a').filter(function () {
return this.href === url || url.href.indexOf(this.href) === 0;
}).addClass('activez').parent().parent().addClass('ok').parent();
if (element.is('li')) {
element.addClass('activezo');
}
$(window).ready(set);
$(window).bind("resize", set);
});
body.trigger("resize");
//Increment the idle time counter every minute.
var idleInterval = setInterval(timerIncrement, 60000); // 1 minute
hasCookie = (getCookie('organizrToken')) ? true : false;
//Zero the idle timer on mouse movement.
$(this).mousemove(function (e) {
idleTime = 0;
});
$(this).keypress(function (e) {
idleTime = 0;
});
});
function pageLoad(){
"use strict";
//Start Organizr
$(function () {
$('#side-menu').metisMenu();
lazyload();
});
$(".colorpicker").asColorPicker({
mode: 'complex',
color: {
format: false,
alphaConvert: false
}
});
/* ===== Theme Settings ===== */
/* ===== Collapsible Panels JS ===== */
(function ($, window, document) {
var panelSelector = '[data-perform="panel-collapse"]',
panelRemover = '[data-perform="panel-dismiss"]';
$(panelSelector).each(function () {
var collapseOpts = {
toggle: false
},
parent = $(this).closest('.panel'),
wrapper = parent.find('.panel-wrapper'),
child = $(this).children('i');
if (!wrapper.length) {
wrapper = parent.children('.panel-heading').nextAll().wrapAll('
').parent().addClass('panel-wrapper');
collapseOpts = {};
}
wrapper.collapse(collapseOpts).on('hide.bs.collapse', function () {
child.removeClass('ti-minus').addClass('ti-plus');
}).on('show.bs.collapse', function () {
child.removeClass('ti-plus').addClass('ti-minus');
});
});
/* ===== Collapse Panels ===== */
$(document).on('click', panelSelector, function (e) {
e.preventDefault();
var parent = $(this).closest('.panel'),
wrapper = parent.find('.panel-wrapper');
$(this).children('i').toggleClass('ti-plus').toggleClass('ti-minus');
wrapper.collapse('toggle');
});
/* ===== Remove Panels ===== */
$(document).on('click', panelRemover, function (e) {
e.preventDefault();
var removeParent = $(this).closest('.panel');
function removeElement() {
var col = removeParent.parent();
removeParent.remove();
col.filter(function () {
return ($(this).is('[class*="col-"]') && $(this).children('*').length === 0);
}).remove();
}
removeElement();
});
}(jQuery, window, document));
/* ===== Tooltip Initialization ===== */
$(function () {
$('[data-toggle="tooltip"]').tooltip();
/*$('body').tooltip({
selector: '[data-toggle="tooltip"]'
});*/
});
/* ===== Popover Initialization ===== */
$(function () {
$('[data-toggle="popover"]').popover();
});
$(function () {
// Switchery
var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));
$('.js-switch').each(function() {
if ($(this).attr('data-switchery') !== 'true'){
new Switchery($(this)[0], $(this).data());
}
});
});
/* ===== Task Initialization ===== */
$(".list-task li label").on("click", function () {
$(this).toggleClass("task-done");
});
$(".settings_box a").on("click", function () {
$("ul.theme_color").toggleClass("theme_block");
});
/* ===== Collepsible Toggle ===== */
$(".collapseble").on("click", function () {
$(".collapseblebox").fadeToggle(350);
});
/* ===== Sidebar ===== */
$('.slimscrollright').slimScroll({
height: '100%',
position: 'right',
size: "5px",
color: '#dcdcdc'
});
$('.slimscrollsidebar').slimScroll({
height: '100%',
position: 'left',
size: "6px",
color: 'rgba(0,0,0,0.5)'
});
$('.chat-list').slimScroll({
height: '100%',
position: 'right',
size: "0px",
color: '#dcdcdc'
});
/* ===== Resize all elements ===== */
/* ===== Visited ul li ===== */
/*$('.visited li a').on("click", function (e) {
$('.visited li').removeClass('active');
var $parent = $(this).parent();
if (!$parent.hasClass('active')) {
$parent.addClass('active');
}
e.preventDefault();
});*/
/* =================================================================
Update 1.5
this is for close icon when navigation open in mobile view
================================================================= */
$(".navbar-toggle").on("click", function () {
$(".navbar-toggle i").toggleClass("ti-menu").addClass("ti-close");
});
/* magnific stuff */
$('.image-popup-vertical-fit').magnificPopup({
type: 'image',
closeOnContentClick: true,
mainClass: 'mfp-img-mobile',
image: {
verticalFit: true
}
});
$('.image-popup-fit-width').magnificPopup({
type: 'image',
closeOnContentClick: true,
image: {
verticalFit: false
}
});
$('.image-popup-no-margins').magnificPopup({
type: 'image',
closeOnContentClick: true,
closeBtnInside: false,
fixedContentPos: true,
mainClass: 'mfp-no-margins mfp-with-zoom', // class to remove default margin from left and right side
image: {
verticalFit: true
},
zoom: {
enabled: true,
duration: 300 // don't foget to change the duration also in CSS
}
});
$('.popup-gallery').magnificPopup({
delegate: 'a',
type: 'image',
tLoading: 'Loading image #%curr%...',
mainClass: 'mfp-img-mobile',
gallery: {
enabled: true,
navigateByImgClick: true,
preload: [0,1] // Will preload 0 - before current, and 1 after the current image
},
image: {
tError: 'The image #%curr% could not be loaded.',
titleSrc: function(item) {
return item.el.attr('title') + 'by Marsel Van Oosten';
}
}
});
$('.zoom-gallery').magnificPopup({
delegate: 'a',
type: 'image',
closeOnContentClick: false,
closeBtnInside: false,
mainClass: 'mfp-with-zoom mfp-img-mobile',
image: {
verticalFit: true,
titleSrc: function(item) {
return item.el.attr('title') + ' · image source';
}
},
gallery: {
enabled: true
},
zoom: {
enabled: true,
duration: 300, // don't foget to change the duration also in CSS
opener: function(element) {
return element.find('img');
}
}
});
$('#image-popups').magnificPopup({
delegate: 'a',
type: 'image',
removalDelay: 500, //delay removal by X to allow out-animation
callbacks: {
beforeOpen: function() {
// just a hack that adds mfp-anim class to markup
this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure mfp-with-anim');
this.st.mainClass = this.st.el.attr('data-effect');
}
},
closeOnContentClick: true,
midClick: true // allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source.
});
$('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({
disableOn: 700,
type: 'iframe',
mainClass: 'mfp-fade',
removalDelay: 160,
preloader: false,
fixedContentPos: false
});
$('.popup-with-form').magnificPopup({
type: 'inline',
preloader: true,
removalDelay: 500,
// When elemened is focused, some mobile browsers in some cases zoom in
// It looks not nice, so we disable it:
callbacks: {
beforeOpen: function() {
if($(window).width() < 700) {
this.st.focus = false;
} else {
this.st.focus = '#name';
}
this.st.mainClass = this.st.el.attr('data-effect');
}
}
});
$('.simple-ajax-popup-align-top').magnificPopup({
type: 'ajax',
alignTop: true,
overflowY: 'scroll' // as we know that popup content is tall we set scroll overflow by default to avoid jump
});
$('.simple-ajax-popup').magnificPopup({
type: 'ajax'
});
}
/* ===== Login and Recover Password ===== */
$(document).on("click", "#to-recover", function(e) {
$("#loginform").slideUp();
$("#recoverform").fadeIn();
});
$(document).on("click", ".to-register", function(e) {
$("#loginform").slideUp();
$("#registerForm").removeClass('hidden');
$("#registerform").fadeIn();
});
$(document).on("click", "#leave-recover", function(e) {
$("#loginform").slideDown();
$("#recoverform").fadeOut();
});
$(document).on("click", "#leave-registration", function(e) {
$("#registerform").fadeOut();
$("#registerForm").addClass('hidden');
$("#loginform").slideDown();
});
$(document).on("click", ".updateNow", function(e) {
updateNow();
});
$(document).on("click", ".show-login", function(e) {
buildLogin();
});
$(document).on("click", ".depenency-item", function(e) {
alert($(this).attr('data-name'));
});
$(document).on("click", ".login-button", function(e) {
e.preventDefault;
$('div.login-box').block({
message: '
Just a moment...
',
css: {
border: '1px solid #000'
}
});
var post = $( '#loginform' ).serializeArray();
organizrAPI('POST','api/?v1/login',post).success(function(data) {
var html = JSON.parse(data);
if(html.data == true){
location.reload();
}else if(html.data == 'mismatch'){
$('div.login-box').unblock({});
$.toast().reset('all');
message('Login Error',' Wrong username/email/password combo','bottom-right','#FFF','warning','10000');
console.error('Organizr Function: Login failed - wrong username/email/password');
}
}).fail(function(xhr) {
console.error("Organizr Function: Login Failed");
});
});
$(document).on("click", ".register-button", function(e) {
e.preventDefault;
var post = $( '#registerForm' ).serializeArray();
organizrAPI('POST','api/?v1/register',post).success(function(data) {
var html = JSON.parse(data);
console.log(html);
if(html.data == true){
location.reload();
}else if(html.data == 'mismatch'){
$.toast().reset('all');
message('Registration Error',' Wrong Registration Password','bottom-right','#FFF','warning','10000');
console.error('Organizr Function: Registration failed - Wrong Registration Password');
}else if(html.data == 'username taken'){
$.toast().reset('all');
message('Registration Error',' Registration Error - Username/Email Taken','bottom-right','#FFF','warning','10000');
console.error('Organizr Function: Registration Failed - Username/Email Taken');
}
}).fail(function(xhr) {
console.error("Organizr Function: Login Failed");
});
});
$(document).on("click", ".open-close", function () {
$("body").toggleClass("show-sidebar");
});
//EDIT GROUP GET ID
$(document).on("click", ".editGroupButton", function () {
$('#edit-group-form [name=groupName]').val($(this).parent().parent().attr("data-group"));
$('#edit-group-form [name=id]').val($(this).parent().parent().attr("data-id"));
$('#edit-group-form [name=groupImage]').val($(this).parent().parent().attr("data-image"));
$('#edit-group-form [name=oldGroupName]').val($(this).parent().parent().attr("data-group"));
});
//EDIT GROUP
$(document).on("click", ".editGroup", function () {
//Create POST Array
var post = {
action:'editUserGroup',
api:'api/?v1/settings/user/manage/groups',
id:$('#edit-group-form [name=id]').val(),
groupName:$('#edit-group-form [name=groupName]').val(),
groupImage:$('#edit-group-form [name=groupImage]').val(),
oldGroupName:$('#edit-group-form [name=oldGroupName]').val(),
messageTitle:'',
messageBody:'Edited User Group '+$('#edit-group-form [name=groupName]').val(),
error:'Organizr Function: User Group API Connection Failed'
};
if (typeof post.id == 'undefined' || post.id == '') {
message('New Group Error',' Could not get Group ID','bottom-right','#FFF','error','5000');
}
if (typeof post.groupName == 'undefined' || post.groupName == '') {
message('New Group Error',' Please set a Group Name','bottom-right','#FFF','warning','5000');
}
if (typeof post.groupImage == 'undefined' || post.groupImage == '') {
message('New Group Error',' Please set a Group Image','bottom-right','#FFF','warning','5000');
}
if(post.id !== '' && post.groupName !== '' && post.groupImage !== '' ){
var callbacks = $.Callbacks();
callbacks.add( buildGroupManagement );
settingsAPI(post,callbacks);
clearForm('#edit-group-form');
$.magnificPopup.close();
}
});
//CHANGE DEFAULT GROUP
$(document).on("click", ".changeDefaultGroup", function () {
//Create POST Array
var post = {
action:'changeDefaultGroup',
api:'api/?v1/settings/user/manage/groups',
id:$(this).parent().parent().attr("data-id"),
oldGroupID:$('#manageGroupTable').find('tr[data-default=true]').attr("data-group-id"),
oldGroupName:$('#manageGroupTable').find('tr[data-default=true]').attr("data-group"),
newGroupID:$(this).parent().parent().attr("data-group-id"),
newGroupName:$(this).parent().parent().attr("data-group"),
messageTitle:'',
messageBody:'Changed Default Group to '+$(this).parent().parent().attr("data-group"),
error:'Organizr Function: User Group API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildGroupManagement );
settingsAPI(post,callbacks);
});
//DELETE GROUP
$(document).on("click", ".deleteUserGroup", function () {
//Create POST Array
var post = {
action:'deleteUserGroup',
api:'api/?v1/settings/user/manage/groups',
id:$(this).parent().parent().attr("data-id"),
groupID:$(this).parent().parent().attr("data-group-id"),
groupName:$(this).parent().parent().attr("data-group"),
messageTitle:'',
messageBody:'Deleted User Group '+$(this).parent().parent().attr("data-group"),
error:'Organizr Function: User Group API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildGroupManagement );
settingsAPI(post,callbacks);
});
//ADD GROUP
$(document).on("click", ".addNewGroup", function () {
//Create POST Array
var post = {
action:'addUserGroup',
api:'api/?v1/settings/user/manage/groups',
newGroupID:parseInt($('#manageGroupTable').find('tr[data-group-id]:nth-last-child(2)').attr('data-group-id')) + 1,
newGroupName:$('#new-group-form [name=groupName]').val(),
newGroupImage:$('#new-group-form [name=groupImage]').val(),
messageTitle:'',
messageBody:'Created User Group '+$('#new-group-form [name=groupName]').val(),
error:'Organizr Function: User Group API Connection Failed'
};
if (typeof post.newGroupID == 'undefined' || post.newGroupID == '') {
message('New Group Error',' Could not get next Group ID','bottom-right','#FFF','error','5000');
}
if (typeof post.newGroupName == 'undefined' || post.newGroupName == '') {
message('New Group Error',' Please set a Group Name','bottom-right','#FFF','warning','5000');
}
if (typeof post.newGroupImage == 'undefined' || post.newGroupImage == '') {
message('New Group Error',' Please set a Group Image','bottom-right','#FFF','warning','5000');
}
if(post.newGroupID !== '' && post.newGroupName !== '' && post.newGroupImage !== '' ){
var callbacks = $.Callbacks();
callbacks.add( buildGroupManagement );
settingsAPI(post,callbacks);
clearForm('#new-group-form');
$.magnificPopup.close();
}
});
// ADD USER
$(document).on("click", ".addNewUser", function () {
//Create POST Array
var post = {
action:'addNewUser',
api:'api/?v1/settings/user/manage/users',
username:$('#new-user-form [name=username]').val(),
email:$('#new-user-form [name=email]').val(),
password:$('#new-user-form [name=password]').val(),
messageTitle:'',
messageBody:'Added New User: '+$('#new-user-form [name=username]').val(),
error:'Organizr Function: User API Connection Failed'
};
if (typeof post.username == 'undefined' || post.username == '') {
message('New User Error',' Please set a Username','bottom-right','#FFF','error','5000');
}
if (typeof post.email == 'undefined' || post.email == '') {
message('New User Error',' Please set an Email','bottom-right','#FFF','warning','5000');
}
if (typeof post.password == 'undefined' || post.password == '') {
message('New User Error',' Please set a Password','bottom-right','#FFF','warning','5000');
}
if(post.username !== '' && post.email !== '' && post.password !== '' ){
var callbacks = $.Callbacks();
callbacks.add( buildUserManagement );
settingsAPI(post,callbacks);
clearForm('#new-user-form');
$.magnificPopup.close();
}
});
// CHANGE USER GROUP
$(document).on("change", ".userGroupSelect", function () {
//Create POST Array
var post = {
action:'changeGroup',
api:'api/?v1/settings/user/manage/users',
id:$(this).parent().parent().attr("data-id"),
username:$(this).parent().parent().attr("data-username"),
oldGroup:$(this).parent().parent().attr("data-group"),
newGroupID:$(this).find("option:selected").val(),
newGroupName:$(this).find("option:selected").text(),
messageTitle:'',
messageBody:'User Info updated for '+$(this).parent().parent().attr("data-username"),
error:'Organizr Function: User API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildUserManagement );
settingsAPI(post,callbacks);
});
// DELETE USER
//DELETE GROUP
$(document).on("click", ".deleteUser", function () {
var user = $(this);
swal({
title: window.lang.translate('Delete ')+user.parent().parent().attr("data-username")+'?',
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: window.lang.translate('Yes'),
cancelButtonText: window.lang.translate('No'),
closeOnConfirm: true,
closeOnCancel: true
}, function(isConfirm){
if (isConfirm) {
//Create POST Array
var post = {
action:'deleteUser',
api:'api/?v1/settings/user/manage/users',
id:user.parent().parent().attr("data-id"),
username:user.parent().parent().attr("data-username"),
messageTitle:'',
messageBody:window.lang.translate('Deleted User')+': '+user.parent().parent().attr("data-username"),
error:'Organizr Function: User API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildUserManagement );
settingsAPI(post,callbacks);
}
});
});
// CHANGE TAB GROUP
$(document).on("change", ".tabGroupSelect", function () {
//Create POST Array
var post = {
action:'changeGroup',
api:'api/?v1/settings/tab/editor/tabs',
id:$(this).parent().parent().attr("data-id"),
tab:$(this).parent().parent().attr("data-name"),
oldGroupID:$(this).parent().parent().attr("data-group-id"),
newGroupID:$(this).find("option:selected").val(),
newGroupName:$(this).find("option:selected").text(),
messageTitle:'',
messageBody:'Tab Info updated for '+$(this).parent().parent().attr("data-name"),
error:'Organizr Function: Tab API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildTabEditor );
settingsAPI(post,callbacks);
});
// CHANGE TAB CATEGORY
$(document).on("change", ".tabCategorySelect", function () {
//Create POST Array
var post = {
action:'changeCategory',
api:'api/?v1/settings/tab/editor/tabs',
id:$(this).parent().parent().attr("data-id"),
tab:$(this).parent().parent().attr("data-name"),
newCategoryID:$(this).find("option:selected").val(),
newCategoryName:$(this).find("option:selected").text(),
messageTitle:'',
messageBody:'Tab Info updated for '+$(this).parent().parent().attr("data-name"),
error:'Organizr Function: Tab API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildTabEditor );
settingsAPI(post,callbacks);
});
// CHANGE TAB TYPE
$(document).on("change", ".tabTypeSelect", function () {
//Create POST Array
var post = {
action:'changeType',
api:'api/?v1/settings/tab/editor/tabs',
id:$(this).parent().parent().attr("data-id"),
tab:$(this).parent().parent().attr("data-name"),
newTypeID:$(this).find("option:selected").val(),
newTypeName:$(this).find("option:selected").text(),
messageTitle:'',
messageBody:'Tab Info updated for '+$(this).parent().parent().attr("data-name"),
error:'Organizr Function: Tab API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildTabEditor );
settingsAPI(post,callbacks);
});
// CHANGE ENABLED TAB
$(document).on("change", ".enabledSwitch", function () {
//Create POST Array
var post = {
action:'changeEnabled',
api:'api/?v1/settings/tab/editor/tabs',
id:$(this).parent().parent().attr("data-id"),
tab:$(this).parent().parent().attr("data-name"),
tabEnabled:$(this).prop("checked") ? 1 : 0,
tabEnabledWord:$(this).prop("checked") ? "On" : "Off",
messageTitle:'',
messageBody:'Tab Info updated for '+$(this).parent().parent().attr("data-name"),
error:'Organizr Function: Tab API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildTabEditor );
settingsAPI(post,callbacks);
});
// CHANGE SPLASH TAB
$(document).on("change", ".splashSwitch", function () {
//Create POST Array
var post = {
action:'changeSplash',
api:'api/?v1/settings/tab/editor/tabs',
id:$(this).parent().parent().attr("data-id"),
tab:$(this).parent().parent().attr("data-name"),
tabSplash:$(this).prop("checked") ? 1 : 0,
tabSplashWord:$(this).prop("checked") ? "On" : "Off",
messageTitle:'',
messageBody:'Tab Info updated for '+$(this).parent().parent().attr("data-name"),
error:'Organizr Function: Tab API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildTabEditor );
settingsAPI(post,callbacks);
});
// CHANGE DEFAULT TAB
$(document).on("change", ".defaultSwitch", function () {
//Create POST Array
var post = {
action:'changeDefault',
api:'api/?v1/settings/tab/editor/tabs',
id:$(this).parent().parent().parent().attr("data-id"),
tab:$(this).parent().parent().parent().attr("data-name"),
messageTitle:'',
messageBody:'Changed Default Tab to: '+$(this).parent().parent().parent().attr("data-name"),
error:'Organizr Function: Tab API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildTabEditor );
settingsAPI(post,callbacks);
});
//DELETE TAB
$(document).on("click", ".deleteTab", function () {
var user = $(this);
swal({
title: window.lang.translate('Delete ')+user.parent().parent().attr("data-name")+'?',
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: window.lang.translate('Yes'),
cancelButtonText: window.lang.translate('No'),
closeOnConfirm: true,
closeOnCancel: true
}, function(isConfirm){
if (isConfirm) {
//Create POST Array
var post = {
action:'deleteTab',
api:'api/?v1/settings/tab/editor/tabs',
id:user.parent().parent().attr("data-id"),
tab:user.parent().parent().attr("data-name"),
messageTitle:'',
messageBody:window.lang.translate('Deleted Tab')+': '+user.parent().parent().attr("data-name"),
error:'Organizr Function: Tab Editor API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildTabEditor );
settingsAPI(post,callbacks);
}
});
});
//EDIT TAB GET ID
$(document).on("click", ".editTabButton", function () {
$('#edit-tab-form [name=tabName]').val($(this).parent().parent().attr("data-name"));
$('#edit-tab-form [name=tabURL]').val($(this).parent().parent().attr("data-url"));
$('#edit-tab-form [name=tabImage]').val($(this).parent().parent().attr("data-image"));
$('#edit-tab-form [name=id]').val($(this).parent().parent().attr("data-id"));
if( $(this).parent().parent().attr("data-url").indexOf('/?v') > 0){
$('#edit-tab-form [name=tabURL]').prop('disabled', 'true');
}else{
$('#edit-tab-form [name=tabURL]').prop('disabled', null);
}
});
//EDIT TAB
$(document).on("click", ".editTab", function () {
//Create POST Array
var post = {
action:'editTab',
api:'api/?v1/settings/tab/editor/tabs',
id:$('#edit-tab-form [name=id]').val(),
tabName:$('#edit-tab-form [name=tabName]').val(),
tabImage:$('#edit-tab-form [name=tabImage]').val(),
tabURL:$('#edit-tab-form [name=tabURL]').val(),
messageTitle:'',
messageBody:'Edited Tab '+$('#edit-tab-form [name=tabName]').val(),
error:'Organizr Function: Tab Editor API Connection Failed'
};
if (typeof post.id == 'undefined' || post.id == '') {
message('Edit Tab Error',' Could not get Tab ID','bottom-right','#FFF','error','5000');
}
if (typeof post.tabName == 'undefined' || post.tabName == '') {
message('Edit Tab Error',' Please set a Tab Name','bottom-right','#FFF','warning','5000');
}
if (typeof post.tabImage == 'undefined' || post.tabImage == '') {
message('Edit Tab Error',' Please set a Tab Image','bottom-right','#FFF','warning','5000');
}
if (typeof post.tabURL == 'undefined' || post.tabURL == '') {
message('Edit Tab Error',' Please set a Tab URL','bottom-right','#FFF','warning','5000');
}
if(post.id !== '' && post.tabName !== '' && post.tabImage !== '' && post.tabURL !== '' ){
var callbacks = $.Callbacks();
callbacks.add( buildTabEditor );
settingsAPI(post,callbacks);
clearForm('#edit-tab-form');
$.magnificPopup.close();
}
});
//ADD NEW TAB
$(document).on("click", ".addNewTab", function () {
//Create POST Array
var post = {
action:'addNewTab',
api:'api/?v1/settings/tab/editor/tabs',
tabOrder:parseInt($('#tabEditorTable').find('tr[data-order]').last().attr('data-order')) + 1,
tabName:$('#new-tab-form [name=tabName]').val(),
tabImage:$('#new-tab-form [name=tabImage]').val(),
tabURL:$('#new-tab-form [name=tabURL]').val(),
tabGroupID:1,
tabEnabled:0,
tabDefault:0,
tabType:1,
messageTitle:'',
messageBody:'Created Tab '+$('#new-tab-form [name=tabName]').val(),
error:'Organizr Function: Tab API Connection Failed'
};
if (typeof post.tabOrder == 'undefined' || post.tabOrder == '') {
message('New Tab Error',' Could not get next Group ID','bottom-right','#FFF','error','5000');
}
if (typeof post.tabName == 'undefined' || post.tabName == '') {
message('New Tab Error',' Please set a Tab Name','bottom-right','#FFF','error','5000');
}
if (typeof post.tabURL == 'undefined' || post.tabURL == '') {
message('New Tab Error',' Please set a Tab URL','bottom-right','#FFF','warning','5000');
}
if (typeof post.tabImage == 'undefined' || post.tabImage == '') {
message('New Tab Error',' Please set a Tab Image','bottom-right','#FFF','warning','5000');
}
if(post.tabOrder !== '' && post.tabName !== '' && post.tabURL !== '' && post.tabImage !== '' ){
var callbacks = $.Callbacks();
callbacks.add( buildTabEditor );
settingsAPI(post,callbacks);
clearForm('#new-tab-form');
$.magnificPopup.close();
}
});
//ADD NEW CATEGORY
$(document).on("click", ".addNewCategory", function () {
//Create POST
var nextID = [];
$($('#categoryEditorTable').find('tr[data-category-id]')).each(function () {
nextID.push($(this).attr('data-category-id'));
});
var post = {
action:'addNewCategory',
api:'api/?v1/settings/tab/editor/categories',
categoryOrder:parseInt($('#categoryEditorTable').find('tr[data-order]').last().attr('data-order')) + 1,
categoryName:$('#new-category-form [name=name]').val(),
categoryImage:$('#new-category-form [name=image]').val(),
categoryID:Math.max.apply( null, nextID ) + 1,
categoryDefault:0,
messageTitle:'',
messageBody:'Created Category '+$('#new-category-form [name=name]').val(),
error:'Organizr Function: API Connection Failed'
};
console.log(post);
if (typeof post.categoryID == 'undefined' || post.categoryID == '') {
message('New Category Error',' Could not get next Category ID','bottom-right','#FFF','error','5000');
}
if (typeof post.categoryName == 'undefined' || post.categoryName == '') {
message('New Category Error',' Please set a Category Name','bottom-right','#FFF','error','5000');
}
if (typeof post.categoryOrder == 'undefined' || post.categoryOrder == '') {
message('New Category Error',' Could not get Category Order','bottom-right','#FFF','warning','5000');
}
if (typeof post.categoryImage == 'undefined' || post.categoryImage == '') {
message('New Category Error',' Please set a Category Image','bottom-right','#FFF','warning','5000');
}
if(post.categoryID !== '' && post.categoryName !== '' && post.categoryOrder !== '' && post.categoryImage !== '' ){
var callbacks = $.Callbacks();
callbacks.add( buildCategoryEditor );
settingsAPI(post,callbacks);
clearForm('#new-category-form');
$.magnificPopup.close();
}
});
//DELETE CATEGORY
$(document).on("click", ".deleteCategory", function () {
var category = $(this);
swal({
title: window.lang.translate('Delete ')+category.parent().parent().attr("data-name")+'?',
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: window.lang.translate('Yes'),
cancelButtonText: window.lang.translate('No'),
closeOnConfirm: true,
closeOnCancel: true
}, function(isConfirm){
if (isConfirm) {
//Create POST Array
var post = {
action:'deleteCategory',
api:'api/?v1/settings/tab/editor/categories',
id:category.parent().parent().attr("data-id"),
category:category.parent().parent().attr("data-name"),
messageTitle:'',
messageBody:window.lang.translate('Deleted Category')+': '+category.parent().parent().attr("data-name"),
error:'Organizr Function: API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildCategoryEditor );
settingsAPI(post,callbacks);
}
});
});
//EDIT CATEGORY GET ID
$(document).on("click", ".editCategoryButton", function () {
$('#edit-category-form [name=name]').val($(this).parent().parent().attr("data-name"));
$('#edit-category-form [name=image]').val($(this).parent().parent().attr("data-image"));
$('#edit-category-form [name=id]').val($(this).parent().parent().attr("data-id"));
});
//EDIT CATEGORY
$(document).on("click", ".editCategory", function () {
//Create POST Array
var post = {
action:'editCategory',
api:'api/?v1/settings/tab/editor/categories',
id:$('#edit-category-form [name=id]').val(),
name:$('#edit-category-form [name=name]').val(),
image:$('#edit-category-form [name=image]').val(),
messageTitle:'',
messageBody:'Edited Category '+$('#edit-category-form [name=name]').val(),
error:'Organizr Function: API Connection Failed'
};
console.log(post)
if (typeof post.id == 'undefined' || post.id == '') {
message('Edit Tab Error',' Could not get Tab ID','bottom-right','#FFF','error','5000');
}
if (typeof post.name == 'undefined' || post.name == '') {
message('Edit Tab Error',' Please set a Tab Name','bottom-right','#FFF','warning','5000');
}
if (typeof post.image == 'undefined' || post.image == '') {
message('Edit Tab Error',' Please set a Tab Image','bottom-right','#FFF','warning','5000');
}
if(post.id !== '' && post.name !== '' && post.image !== ''){
var callbacks = $.Callbacks();
callbacks.add( buildCategoryEditor );
settingsAPI(post,callbacks);
clearForm('#edit-category-form');
$.magnificPopup.close();
}
});
//CHANGE DEFAULT CATEGORY
$(document).on("click", ".changeDefaultCategory", function () {
//Create POST Array
var post = {
action:'changeDefault',
api:'api/?v1/settings/tab/editor/categories',
id:$(this).parent().parent().attr("data-id"),
oldCategoryName:$('#categoryEditorTable').find('tr[data-default=true]').attr("data-name"),
newCategoryName:$(this).parent().parent().attr("data-name"),
messageTitle:'',
messageBody:'Changed Default Category to '+$(this).parent().parent().attr("data-name"),
error:'Organizr Function: API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildCategoryEditor );
settingsAPI(post,callbacks);
});
// CHANGE CUSTOMIZE Options
$(document).on('change asColorPicker::close', '#customize-appearance-form :input', function(e) {
$(this).attr('data-changed', true);
switch ($(this).attr('type')) {
case 'switch':
case 'checkbox':
var value = $(this).prop("checked") ? true : false;
break;
default:
var value = $(this).val();
}
var post = {
action:'editCustomizeAppearance',
api:'api/?v1/settings/customize/appearance',
name:$(this).attr("name"),
value:value,
messageTitle:'',
messageBody:'Update Value for '+$(this).parent().parent().find('label').text(),
error:'Organizr Function: API Connection Failed'
};
console.log(post);
$('#customize-appearance-reload').removeClass('hidden');
var callbacks = $.Callbacks();
//callbacks.add( buildCustomizeAppearance );
settingsAPI(post,callbacks);
});
//DELETE IMAGE
$(document).on("click", ".deleteImage", function () {
var image = $(this);
swal({
title: window.lang.translate('Delete ')+image.attr("data-image-name")+'?',
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: window.lang.translate('Yes'),
cancelButtonText: window.lang.translate('No'),
closeOnConfirm: true,
closeOnCancel: true
}, function(isConfirm){
if (isConfirm) {
//Create POST Array
var post = {
action:'deleteImage',
api:'api/?v1/settings/image/manager/view',
imageName:image.attr("data-image-name"),
imagePath:image.attr("data-image-path"),
messageTitle:'',
messageBody:window.lang.translate('Deleted Image')+': '+image.attr("data-image-name"),
error:'Organizr Function: User API Connection Failed'
};
var callbacks = $.Callbacks();
callbacks.add( buildImageManagerView );
settingsAPI(post,callbacks);
}
});
});
// RELOAD Page
$(document).on("click", ".reload", function () {
location.reload();
});
/* ===== Open-Close Right Sidebar ===== */
$(document).on("click", ".right-side-toggle", function () {
$(".right-sidebar").slideDown(50).toggleClass("shw-rside");
$(".fxhdr").on("click", function () {
$("body").toggleClass("fix-header"); /* Fix Header JS */
});
$(".fxsdr").on("click", function () {
$("body").toggleClass("fix-sidebar"); /* Fix Sidebar JS */
});
/* ===== Service Panel JS ===== */
var fxhdr = $('.fxhdr');
if ($("body").hasClass("fix-header")) {
fxhdr.attr('checked', true);
} else {
fxhdr.attr('checked', false);
}
});