var ISPConfig = { pageFormChanged: false, tabChangeWarningTxt: '', tabChangeDiscardTxt: '', tabChangeWarning: false, tabChangeDiscard: false, requestsRunning: 0, indicatorCompleted: false, registeredHooks: new Array(), new_tpl_add_id: 0, options: { useLoadIndicator: false, useComboBox: false }, setOption: function(key, value) { ISPConfig.options[key] = value; }, setOptions: function(opts) { $.extend(ISPConfig.options, opts); }, reportError: function(request) { }, registerHook: function(name, callback) { if(!ISPConfig.registeredHooks[name]) ISPConfig.registeredHooks[name] = new Array(); var newindex = ISPConfig.registeredHooks[name].length; ISPConfig.registeredHooks[name][newindex] = callback; }, callHook: function(name, params) { if(!ISPConfig.registeredHooks[name]) return; for(var i = 0; i < ISPConfig.registeredHooks[name].length; i++) { var callback = ISPConfig.registeredHooks[name][i]; callback(name, params); } }, resetFormChanged: function() { ISPConfig.pageFormChanged = false; }, showLoadIndicator: function() { document.body.style.cursor = 'wait'; if(ISPConfig.options.useLoadIndicator == true) { ISPConfig.requestsRunning += 1; if(ISPConfig.requestsRunning < 2) { var indicator = $('#ajaxloader'); if(indicator.length < 1) { indicator = $(''); indicator.appendTo('body'); } var parent = $('#content'); if(parent.length < 1) return; ISPConfig.indicatorCompleted = false; var atx = parent.offset().left + 150; //((parent.outerWidth(true) - indicator.outerWidth(true)) / 2); var aty = parent.offset().top + 150; indicator.css( {'left': atx, 'top': aty } ).fadeIn('fast', function() { // check if loader should be hidden immediately ISPConfig.indicatorCompleted = true; if(ISPConfig.requestsRunning < 1) $(this).fadeOut('fast', function() { $(this).hide();}); }); } } }, hideLoadIndicator: function() { document.body.style.cursor = ''; ISPConfig.requestsRunning -= 1; if(ISPConfig.requestsRunning < 1) { ISPConfig.requestsRunning = 0; // just for the case... if(ISPConfig.indicatorCompleted == true) $('#ajaxloader').fadeOut('fast', function() { $('#ajaxloader').hide(); } ); } }, onAfterSideNavLoaded: function() { if(ISPConfig.options.useComboBox == true) { $('#sidebar').find("select:not(.chosen-select)").select2({ placeholder: '', width: 'element', selectOnBlur: true, allowClear: true }); } }, onAfterContentLoad: function(url, data) { if(!data) data = ''; else data = '&' + data; if(ISPConfig.options.useComboBox == true) { $('#pageContent').find("select:not(.chosen-select)").select2({ placeholder: '', width: 'element', selectOnBlur: true, allowClear: true, formatResult: function(o) { if(o.id && $(o.element).parent().hasClass('flags')) return '' + o.text + ''; else return o.text; }, formatSelection: function(o) { if(o.id && $(o.element).parent().hasClass('flags')) return '' + o.text + ''; else return o.text; } }).on('change', function(e) { if ($("#pageForm .table #Filter").length > 0) { $("#pageForm .table #Filter").trigger('click'); } }); } $('input[data-input-element="date"]').datetimepicker({ 'language': 'en', // TODO 'todayHighlight': true, 'todayBtn': 'linked', 'bootcssVer': 3, 'fontAwesome': true, 'autoclose': true, 'minView': 'month' }); $('input[data-input-element="datetime"]').datetimepicker({ 'language': 'en', // TODO 'todayHighlight': true, 'todayBtn': 'linked', 'bootcssVer': 3, 'fontAwesome': true, 'autoclose': true }); $('[data-toggle="tooltip"]').tooltip({ }); ISPConfig.callHook('onAfterContentLoad', {'url': url, 'data': data }); }, submitForm: function(formname, target, confirmation) { var successMessage = arguments[3]; if(!confirmation) confirmation = false; if(!confirmation || window.confirm(confirmation)) { var submitFormObj = $.ajax({ type: "POST", url: target, data: $('#'+formname).serialize(), dataType: "html", beforeSend: function() { ISPConfig.showLoadIndicator(); }, success: function(data, textStatus, jqXHR) { if(successMessage) alert(successMessage); if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) { var parts = jqXHR.responseText.split(':'); ISPConfig.loadContent(parts[1]); } else if (jqXHR.responseText.indexOf('LOGIN_REDIRECT:') > -1) { // Go to the login page document.location.href = '/index.php'; } else { $('#pageContent').html(jqXHR.responseText); ISPConfig.onAfterContentLoad(target, $('#'+formname).serialize()); ISPConfig.pageFormChanged = false; } ISPConfig.hideLoadIndicator(); }, error: function(jqXHR, textStatus, errorThrown) { ISPConfig.hideLoadIndicator(); var parts = jqXHR.responseText.split(':'); ISPConfig.reportError('Ajax Request was not successful. 111'); } }); } }, submitUploadForm: function(formname, target) { var handleResponse = function(loadedFrame) { var response, responseStr = loadedFrame.contentWindow.document.body.innerHTML; try { response = JSON.parse(responseStr); } catch(e) { response = responseStr; } var $response = $('
').html(response); var msg = ''; var okmsg = $response.find('#OKMsg').html(); if(okmsg){ msg = '
'+okmsg+'
'; } var errormsg = $response.find('#errorMsg').html(); if(errormsg){ msg = msg+'
'+errormsg+'
'; } var csrf_key = $response.find('input[name="_csrf_key"]').val(); var csrf_id = $response.find('input[name="_csrf_id"]').val(); msg = msg + ''; return msg; }; var frame_id = 'ajaxUploader-iframe-' + Math.round(new Date().getTime() / 1000); $('body').append('