227 lines
10 KiB
JavaScript
Executable File
Vendored
227 lines
10 KiB
JavaScript
Executable File
Vendored
/**
|
||
* Resize function without multiple trigger
|
||
*
|
||
* Usage:
|
||
* $(window).smartresize(function(){
|
||
* // code here
|
||
* });
|
||
*/
|
||
(function($,sr){
|
||
// debouncing function from John Hann
|
||
// http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
|
||
var debounce = function (func, threshold, execAsap) {
|
||
var timeout;
|
||
|
||
return function debounced () {
|
||
var obj = this, args = arguments;
|
||
function delayed () {
|
||
if (!execAsap)
|
||
func.apply(obj, args);
|
||
timeout = null;
|
||
}
|
||
|
||
if (timeout)
|
||
clearTimeout(timeout);
|
||
else if (execAsap)
|
||
func.apply(obj, args);
|
||
|
||
timeout = setTimeout(delayed, threshold || 100);
|
||
};
|
||
};
|
||
|
||
// smartresize
|
||
jQuery.fn[sr] = function(fn){ return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); };
|
||
|
||
})(jQuery,'smartresize');
|
||
/**
|
||
* To change this license header, choose License Headers in Project Properties.
|
||
* To change this template file, choose Tools | Templates
|
||
* and open the template in the editor.
|
||
*/
|
||
|
||
var CURRENT_URL = window.location.href.split('#')[0].split('?')[0],
|
||
$BODY = $('body'),
|
||
$MENU_TOGGLE = $('#menu_toggle'),
|
||
$SIDEBAR_MENU = $('#sidebar-menu'),
|
||
$SIDEBAR_FOOTER = $('.sidebar-footer'),
|
||
$LEFT_COL = $('.left_col'),
|
||
$RIGHT_COL = $('.right_col'),
|
||
$NAV_MENU = $('.nav_menu'),
|
||
$FOOTER = $('footer');
|
||
|
||
|
||
|
||
// Sidebar
|
||
function init_sidebar() {
|
||
// TODO: This is some kind of easy fix, maybe we can improve this
|
||
var setContentHeight = function () {
|
||
// reset height
|
||
$RIGHT_COL.css('min-height', $(window).height());
|
||
|
||
var bodyHeight = $BODY.outerHeight(),
|
||
footerHeight = $BODY.hasClass('footer_fixed') ? -10 : $FOOTER.height(),
|
||
leftColHeight = $LEFT_COL.eq(1).height() + $SIDEBAR_FOOTER.height(),
|
||
contentHeight = bodyHeight < leftColHeight ? leftColHeight : bodyHeight;
|
||
|
||
// normalize content
|
||
contentHeight -= $NAV_MENU.height() + footerHeight;
|
||
|
||
$RIGHT_COL.css('min-height', contentHeight);
|
||
};
|
||
|
||
$SIDEBAR_MENU.find('a').on('click', function(ev) {
|
||
console.log('clicked - sidebar_menu');
|
||
var $li = $(this).parent();
|
||
|
||
if ($li.is('.active')) {
|
||
$li.removeClass('active active-sm');
|
||
$('ul:first', $li).slideUp(function() {
|
||
setContentHeight();
|
||
});
|
||
} else {
|
||
// prevent closing menu if we are on child menu
|
||
if (!$li.parent().is('.child_menu')) {
|
||
$SIDEBAR_MENU.find('li').removeClass('active active-sm');
|
||
$SIDEBAR_MENU.find('li ul').slideUp();
|
||
}else
|
||
{
|
||
if ( $BODY.is( ".nav-sm" ) )
|
||
{
|
||
$li.parent().find( "li" ).removeClass( "active active-sm" );
|
||
$li.parent().find( "li ul" ).slideUp();
|
||
}
|
||
}
|
||
$li.addClass('active');
|
||
|
||
$('ul:first', $li).slideDown(function() {
|
||
setContentHeight();
|
||
});
|
||
}
|
||
});
|
||
|
||
// toggle small or large menu
|
||
$MENU_TOGGLE.on('click', function() {
|
||
console.log('clicked - menu toggle');
|
||
|
||
if ($BODY.hasClass('nav-md')) {
|
||
$SIDEBAR_MENU.find('li.active ul').hide();
|
||
$SIDEBAR_MENU.find('li.active').addClass('active-sm').removeClass('active');
|
||
} else {
|
||
$SIDEBAR_MENU.find('li.active-sm ul').show();
|
||
$SIDEBAR_MENU.find('li.active-sm').addClass('active').removeClass('active-sm');
|
||
}
|
||
|
||
$BODY.toggleClass('nav-md nav-sm');
|
||
|
||
setContentHeight();
|
||
|
||
$('.dataTable').each ( function () { $(this).dataTable().fnDraw(); });
|
||
});
|
||
|
||
// check active menu
|
||
$SIDEBAR_MENU.find('a[href="' + CURRENT_URL + '"]').parent('li').addClass('current-page');
|
||
|
||
$SIDEBAR_MENU.find('a').filter(function () {
|
||
return this.href == CURRENT_URL;
|
||
}).parent('li').addClass('current-page').parents('ul').slideDown(function() {
|
||
setContentHeight();
|
||
}).parent().addClass('active');
|
||
|
||
// recompute content when resizing
|
||
$(window).smartresize(function(){
|
||
setContentHeight();
|
||
});
|
||
|
||
setContentHeight();
|
||
|
||
// fixed sidebar
|
||
if ($.fn.mCustomScrollbar) {
|
||
$('.menu_fixed').mCustomScrollbar({
|
||
autoHideScrollbar: true,
|
||
theme: 'minimal',
|
||
mouseWheel:{ preventDefault: true }
|
||
});
|
||
}
|
||
};
|
||
// /Sidebar
|
||
|
||
var randNum = function() {
|
||
return (Math.floor(Math.random() * (1 + 40 - 20))) + 20;
|
||
};
|
||
|
||
|
||
// Panel toolbox
|
||
$(document).ready(function() {
|
||
$('.collapse-link').on('click', function() {
|
||
var $BOX_PANEL = $(this).closest('.x_panel'),
|
||
$ICON = $(this).find('i'),
|
||
$BOX_CONTENT = $BOX_PANEL.find('.x_content');
|
||
|
||
// fix for some div with hardcoded fix class
|
||
if ($BOX_PANEL.attr('style')) {
|
||
$BOX_CONTENT.slideToggle(200, function(){
|
||
$BOX_PANEL.removeAttr('style');
|
||
});
|
||
} else {
|
||
$BOX_CONTENT.slideToggle(200);
|
||
$BOX_PANEL.css('height', 'auto');
|
||
}
|
||
|
||
$ICON.toggleClass('fa-chevron-up fa-chevron-down');
|
||
});
|
||
|
||
$('.close-link').click(function () {
|
||
var $BOX_PANEL = $(this).closest('.x_panel');
|
||
|
||
$BOX_PANEL.remove();
|
||
});
|
||
});
|
||
// /Panel toolbox
|
||
|
||
// Tooltip
|
||
$(document).ready(function() {
|
||
$('[data-toggle="tooltip"]').tooltip({
|
||
container: 'body'
|
||
});
|
||
});
|
||
|
||
|
||
|
||
|
||
/* AUTOCOMPLETE */
|
||
|
||
function init_autocomplete() {
|
||
|
||
if( typeof ($.fn.autocomplete) === 'undefined'){ return; }
|
||
console.log('init_autocomplete');
|
||
|
||
var countries = { AD:"Andorra",A2:"Andorra Test",AE:"United Arab Emirates",AF:"Afghanistan",AG:"Antigua and Barbuda",AI:"Anguilla",AL:"Albania",AM:"Armenia",AN:"Netherlands Antilles",AO:"Angola",AQ:"Antarctica",AR:"Argentina",AS:"American Samoa",AT:"Austria",AU:"Australia",AW:"Aruba",AX:"Åland Islands",AZ:"Azerbaijan",BA:"Bosnia and Herzegovina",BB:"Barbados",BD:"Bangladesh",BE:"Belgium",BF:"Burkina Faso",BG:"Bulgaria",BH:"Bahrain",BI:"Burundi",BJ:"Benin",BL:"Saint Barthélemy",BM:"Bermuda",BN:"Brunei",BO:"Bolivia",BQ:"British Antarctic Territory",BR:"Brazil",BS:"Bahamas",BT:"Bhutan",BV:"Bouvet Island",BW:"Botswana",BY:"Belarus",BZ:"Belize",CA:"Canada",CC:"Cocos [Keeling] Islands",CD:"Congo - Kinshasa",CF:"Central African Republic",CG:"Congo - Brazzaville",CH:"Switzerland",CI:"Côte d’Ivoire",CK:"Cook Islands",CL:"Chile",CM:"Cameroon",CN:"China",CO:"Colombia",CR:"Costa Rica",CS:"Serbia and Montenegro",CT:"Canton and Enderbury Islands",CU:"Cuba",CV:"Cape Verde",CX:"Christmas Island",CY:"Cyprus",CZ:"Czech Republic",DD:"East Germany",DE:"Germany",DJ:"Djibouti",DK:"Denmark",DM:"Dominica",DO:"Dominican Republic",DZ:"Algeria",EC:"Ecuador",EE:"Estonia",EG:"Egypt",EH:"Western Sahara",ER:"Eritrea",ES:"Spain",ET:"Ethiopia",FI:"Finland",FJ:"Fiji",FK:"Falkland Islands",FM:"Micronesia",FO:"Faroe Islands",FQ:"French Southern and Antarctic Territories",FR:"France",FX:"Metropolitan France",GA:"Gabon",GB:"United Kingdom",GD:"Grenada",GE:"Georgia",GF:"French Guiana",GG:"Guernsey",GH:"Ghana",GI:"Gibraltar",GL:"Greenland",GM:"Gambia",GN:"Guinea",GP:"Guadeloupe",GQ:"Equatorial Guinea",GR:"Greece",GS:"South Georgia and the South Sandwich Islands",GT:"Guatemala",GU:"Guam",GW:"Guinea-Bissau",GY:"Guyana",HK:"Hong Kong SAR China",HM:"Heard Island and McDonald Islands",HN:"Honduras",HR:"Croatia",HT:"Haiti",HU:"Hungary",ID:"Indonesia",IE:"Ireland",IL:"Israel",IM:"Isle of Man",IN:"India",IO:"British Indian Ocean Territory",IQ:"Iraq",IR:"Iran",IS:"Iceland",IT:"Italy",JE:"Jersey",JM:"Jamaica",JO:"Jordan",JP:"Japan",JT:"Johnston Island",KE:"Kenya",KG:"Kyrgyzstan",KH:"Cambodia",KI:"Kiribati",KM:"Comoros",KN:"Saint Kitts and Nevis",KP:"North Korea",KR:"South Korea",KW:"Kuwait",KY:"Cayman Islands",KZ:"Kazakhstan",LA:"Laos",LB:"Lebanon",LC:"Saint Lucia",LI:"Liechtenstein",LK:"Sri Lanka",LR:"Liberia",LS:"Lesotho",LT:"Lithuania",LU:"Luxembourg",LV:"Latvia",LY:"Libya",MA:"Morocco",MC:"Monaco",MD:"Moldova",ME:"Montenegro",MF:"Saint Martin",MG:"Madagascar",MH:"Marshall Islands",MI:"Midway Islands",MK:"Macedonia",ML:"Mali",MM:"Myanmar [Burma]",MN:"Mongolia",MO:"Macau SAR China",MP:"Northern Mariana Islands",MQ:"Martinique",MR:"Mauritania",MS:"Montserrat",MT:"Malta",MU:"Mauritius",MV:"Maldives",MW:"Malawi",MX:"Mexico",MY:"Malaysia",MZ:"Mozambique",NA:"Namibia",NC:"New Caledonia",NE:"Niger",NF:"Norfolk Island",NG:"Nigeria",NI:"Nicaragua",NL:"Netherlands",NO:"Norway",NP:"Nepal",NQ:"Dronning Maud Land",NR:"Nauru",NT:"Neutral Zone",NU:"Niue",NZ:"New Zealand",OM:"Oman",PA:"Panama",PC:"Pacific Islands Trust Territory",PE:"Peru",PF:"French Polynesia",PG:"Papua New Guinea",PH:"Philippines",PK:"Pakistan",PL:"Poland",PM:"Saint Pierre and Miquelon",PN:"Pitcairn Islands",PR:"Puerto Rico",PS:"Palestinian Territories",PT:"Portugal",PU:"U.S. Miscellaneous Pacific Islands",PW:"Palau",PY:"Paraguay",PZ:"Panama Canal Zone",QA:"Qatar",RE:"Réunion",RO:"Romania",RS:"Serbia",RU:"Russia",RW:"Rwanda",SA:"Saudi Arabia",SB:"Solomon Islands",SC:"Seychelles",SD:"Sudan",SE:"Sweden",SG:"Singapore",SH:"Saint Helena",SI:"Slovenia",SJ:"Svalbard and Jan Mayen",SK:"Slovakia",SL:"Sierra Leone",SM:"San Marino",SN:"Senegal",SO:"Somalia",SR:"Suriname",ST:"São Tomé and Príncipe",SU:"Union of Soviet Socialist Republics",SV:"El Salvador",SY:"Syria",SZ:"Swaziland",TC:"Turks and Caicos Islands",TD:"Chad",TF:"French Southern Territories",TG:"Togo",TH:"Thailand",TJ:"Tajikistan",TK:"Tokelau",TL:"Timor-Leste",TM:"Turkmenistan",TN:"Tunisia",TO:"Tonga",TR:"Turkey",TT:"Trinidad and Tobago",TV:"Tuvalu",TW:"Taiwan",TZ:"Tanzania",UA:"Ukraine",UG:"Uganda",UM:"U.S. Minor Outlying Islands",US:"United States",UY:"Uruguay",UZ:"Uzbekistan",VA:"Vatican City",VC:"Saint Vincent and the Grenadines",VD:"North Vietnam",VE:"Venezuela",VG:"British Virgin Islands",VI:"U.S. Virgin Islands",VN:"Vietnam",VU:"Vanuatu",WF:"Wallis and Futuna",WK:"Wake Island",WS:"Samoa",YD:"People's Democratic Republic of Yemen",YE:"Yemen",YT:"Mayotte",ZA:"South Africa",ZM:"Zambia",ZW:"Zimbabwe",ZZ:"Unknown or Invalid Region" };
|
||
|
||
var countriesArray = $.map(countries, function(value, key) {
|
||
return {
|
||
value: value,
|
||
data: key
|
||
};
|
||
});
|
||
|
||
// initialize autocomplete with custom appendTo
|
||
$('#autocomplete-custom-append').autocomplete({
|
||
lookup: countriesArray
|
||
});
|
||
|
||
};
|
||
|
||
|
||
|
||
|
||
|
||
$(document).ready(function() {
|
||
init_sidebar();
|
||
|
||
// init_autosize();?
|
||
init_autocomplete();
|
||
|
||
});
|
||
|
||
|