diff -r a36bac847ea7 -r 172ddcb92995 src/ztfy/myams/resources/js/myams.js --- a/src/ztfy/myams/resources/js/myams.js Wed Oct 05 17:36:07 2016 +0200 +++ b/src/ztfy/myams/resources/js/myams.js Thu Oct 06 15:44:22 2016 +0200 @@ -60,6 +60,15 @@ /** + * JQuery 'hasvalue' expression + * Filter inputs containing value + */ + $.expr[":"].hasvalue = function(obj, index, meta /*, stack*/) { + return $(obj).val() !== ""; + }; + + + /** * JQuery 'econtains' expression * Case insensitive contains expression */ @@ -216,9 +225,9 @@ .off('click') .on('click', function (e) { $(this).hide(); - var $invokedOn = $(this).data("invokedOn"); - var $selectedMenu = $(e.target); - settings.menuSelected.call(this, $invokedOn, $selectedMenu); + var invokedOn = $(this).data("invokedOn"); + var selectedMenu = $(e.target); + settings.menuSelected.call(this, invokedOn, selectedMenu); ams.event.stop(e); }); return false; @@ -249,17 +258,17 @@ // Add a mark [+] to a multilevel menu menu.find("LI").each(function() { - var menu_item = $(this); - if (menu_item.find("UL").size() > 0) { + var menuItem = $(this); + if (menuItem.find("UL").size() > 0) { // add the multilevel sign next to the link - menu_item.find("A:first") + menuItem.find("A:first") .append("" + settings.closedSign + ""); // avoid jumping to the top of the page when the href is an # - var first_link = menu_item.find("A:first"); - if (first_link.attr('href') === "#") { - first_link.click(function() { + var firstLink = menuItem.find("A:first"); + if (firstLink.attr('href') === "#") { + firstLink.click(function() { return false; }); } @@ -268,11 +277,11 @@ // Open active level menu.find("LI.active").each(function() { - var active_parent = $(this).parents('UL'); - var active_item = active_parent.parent('LI'); - active_parent.slideDown(settings.speed); - active_item.find("b:first").html(settings.openedSign); - active_item.addClass("open"); + var activeParent = $(this).parents('UL'); + var activeItem = activeParent.parent('LI'); + activeParent.slideDown(settings.speed); + activeItem.find("b:first").html(settings.openedSign); + activeItem.addClass("open"); }); menu.find("LI A").on('click', function() { @@ -281,7 +290,7 @@ return; } var href = link.attr('href').replace(/^#/,''); - var parent_ul = link.parent().find("UL"); + var parentUL = link.parent().find("UL"); if (settings.accordion) { var parents = link.parent().parents("UL"); var visible = menu.find("UL:visible"); @@ -294,24 +303,24 @@ } }); if (close) { - if (parent_ul !== visible[visibleIndex]) { + if (parentUL !== visible[visibleIndex]) { var visibleItem = $(visible[visibleIndex]); if (href || !visibleItem.hasClass('active')) { visibleItem.slideUp(settings.speed, function () { $(this).parent("LI") - .removeClass('open') - .find("B:first") - .delay(settings.speed) - .html(settings.closedSign); + .removeClass('open') + .find("B:first") + .delay(settings.speed) + .html(settings.closedSign); }); } } } }); } - var first_ul = link.parent().find("UL:first"); - if (!href && first_ul.is(":visible") && !first_ul.hasClass("active")) { - first_ul.slideUp(settings.speed, function() { + var firstUL = link.parent().find("UL:first"); + if (!href && firstUL.is(":visible") && !firstUL.hasClass("active")) { + firstUL.slideUp(settings.speed, function() { link.parent("LI") .removeClass("open") .find("B:first") @@ -319,7 +328,7 @@ .html(settings.closedSign); }); } else /*if (link.attr('href') !== location.hash)*/ { - first_ul.slideDown(settings.speed, function() { + firstUL.slideDown(settings.speed, function() { link.parent("LI") .addClass("open") .find("B:first") @@ -404,14 +413,14 @@ devmode: true, devext: '', lang: 'en', - throttle_delay: 350, - menu_speed: 235, - navbar_height: 49, - ajax_nav: true, - enable_widgets: true, - enable_mobile: false, - enable_fastclick: false, - warn_on_form_change: false, + throttleDelay: 350, + menuSpeed: 235, + navbarHeight: 49, + ajaxNav: true, + enableWidgets: true, + enableMobile: false, + enableFastclick: false, + warnOnFormChange: false, ismobile: (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase())) }; } @@ -661,9 +670,9 @@ if (response.statusText === 'OK') { return; } - var ajax_response = ams.ajax.getResponse(response); - if (ajax_response.content_type === 'json') { - ams.ajax.handleJSON(ajax_response.data); + var response = ams.ajax.getResponse(response); + if (response.contentType === 'json') { + ams.ajax.handleJSON(response.data); } else { var title = event.statusText || event.type; var message = response.responseText; @@ -688,7 +697,7 @@ return; } var response = ams.ajax.getResponse(request); - if (response.content_type === 'json') { + if (response.contentType === 'json') { ams.ajax.handleJSON(response.data); } else { ams.skin.messageBox('error', { @@ -769,8 +778,6 @@ * Handle AJAX upload and download progress * * @param event: the source event - * @param request: the request - * @param options: AJAX options */ progress: function(event) { if (!event.lengthComputable) { @@ -829,37 +836,37 @@ * Extract data type and result from response */ getResponse: function(request) { - var content_type = request.getResponseHeader('content-type'), - data_type, + var contentType = request.getResponseHeader('content-type'), + dataType, result; - if (content_type) { + if (contentType) { // Got server response - if (content_type.startsWith('application/javascript')) { - data_type = 'script'; + if (contentType.startsWith('application/javascript')) { + dataType = 'script'; result = request.responseText; - } else if (content_type.startsWith('text/html')) { - data_type = 'html'; + } else if (contentType.startsWith('text/html')) { + dataType = 'html'; result = request.responseText; - } else if (content_type.startsWith('text/xml')) { - data_type = 'xml'; + } else if (contentType.startsWith('text/xml')) { + dataType = 'xml'; result = request.responseText; } else { result = request.responseJSON; if (result) { - data_type = 'json'; + dataType = 'json'; } else { try { result = JSON.parse(request.responseText); - data_type = 'json'; + dataType = 'json'; } catch (e) { result = request.responseText; - data_type = 'text'; + dataType = 'text'; } } } } else { // Probably no response from server... - data_type = 'json'; + dataType = 'json'; result = { status: 'alert', alert: { @@ -868,7 +875,7 @@ } }; } - return {content_type: data_type, + return {contentType: dataType, data: result}; }, @@ -1029,11 +1036,11 @@ timeout: 10000 }); } else { - var message_status = message.status || 'info'; - if (message_status === 'error' && form && target) { + var messageStatus = message.status || 'info'; + if (messageStatus === 'error' && form && target) { ams.executeFunctionByName(form.data('ams-form-submit-error') || 'MyAMS.form.finalizeSubmitOnError', form, target); } - ams.skin.messageBox(message_status, + ams.skin.messageBox(messageStatus, {title: message.title || ams.i18n.ERROR_OCCURED, content: message.content, icon: message.icon, @@ -1248,7 +1255,7 @@ init: function(element) { // Activate form changes if required var forms; - if (ams.warn_on_form_change) { + if (ams.warnOnFormChange) { forms = $('FORM[data-ams-warn-on-change!="false"]', element); } else { forms = $('FORM[data-ams-warn-on-change="true"]', element); @@ -1359,14 +1366,14 @@ /** * Submit given form */ - submit: function(form, handler, submit_options) { + submit: function(form, handler, submitOptions) { // Check params form = $(form); if (!form.exists()) { return false; } if (typeof(handler) === 'object') { - submit_options = handler; + submitOptions = handler; handler = undefined; } // Prevent multiple submits of the same form @@ -1400,17 +1407,17 @@ function _submitAjaxForm(form, options) { var button, - button_data, - button_target; + buttonData, + buttonTarget; var data = form.data(); - var form_options = data.amsFormOptions; - var form_data; - var form_data_callback; - - var progress_handler; - var progress_interval; - var progress_callback; - var progress_end_callback; + var formOptions = data.amsFormOptions; + var formData; + var formDataCallback; + + var progressHandler; + var progressInterval; + var progressCallback; + var progressEndCallback; // Inner progress status handler function _getProgress(handler, progress_id) { @@ -1420,14 +1427,14 @@ function _clearProgressStatus() { button.button('reset'); clearInterval(interval); - ams.executeFunctionByName(progress_end_callback, form, button); + ams.executeFunctionByName(progressEndCallback, form, button); } function _getProgressStatus() { ams.ajax.post(handler, {progress_id: progress_id}, {error: _clearProgressStatus}, - ams.getFunctionByName(progress_callback) || function(result, status) { + ams.getFunctionByName(progressCallback) || function(result, status) { if (status == 'success') { if (result.status === 'running') { if (result.message) { @@ -1446,24 +1453,24 @@ } button.button('loading'); - interval = setInterval(_getProgressStatus, progress_interval); + interval = setInterval(_getProgressStatus, progressInterval); } // Initialize form data - if (submit_options) { - form_data_callback = submit_options.formDataInitCallback; + if (submitOptions) { + formDataCallback = submitOptions.formDataInitCallback; } - if (form_data_callback) { - delete submit_options.formDataInitCallback; + if (formDataCallback) { + delete submitOptions.formDataInitCallback; } else { - form_data_callback = data.amsFormDataInitCallback; + formDataCallback = data.amsFormDataInitCallback; } - if (form_data_callback) { + if (formDataCallback) { var veto = {}; - if (typeof(form_data_callback) === 'function') { - form_data = form_data_callback.call(form, veto); + if (typeof(formDataCallback) === 'function') { + formData = formDataCallback.call(form, veto); } else { - form_data = ams.executeFunctionByName(form_data_callback, form, veto); + formData = ams.executeFunctionByName(formDataCallback, form, veto); } if (veto.veto) { button = form.data('ams-submit-button'); @@ -1474,44 +1481,44 @@ return false; } } else { - form_data = data.amsFormData || {}; + formData = data.amsFormData || {}; } // Check submit button for custom action handler and target button = $(form.data('ams-submit-button')); if (button && button.exists()) { - button_data = button.data(); - button_target = button_data.amsFormSubmitTarget; + buttonData = button.data(); + buttonTarget = buttonData.amsFormSubmitTarget; } else { - button_data = {}; + buttonData = {}; } // Check action URL var url; - var form_handler = handler || button_data.amsFormHandler || data.amsFormHandler || ''; - if (form_handler.startsWith(window.location.protocol)) { - url = form_handler; + var formHandler = handler || buttonData.amsFormHandler || data.amsFormHandler || ''; + if (formHandler.startsWith(window.location.protocol)) { + url = formHandler; } else { - var action = button_data.amsFormAction || form.attr('action').replace(/#/, ''); + var action = buttonData.amsFormAction || form.attr('action').replace(/#/, ''); if (action.startsWith(window.location.protocol)) { url = action; } else { url = ams.ajax.getAddr() + action; } - url += form_handler; + url += formHandler; } - progress_handler = button_data.amsProgressHandler || data.amsProgressHandler || ''; - progress_interval = button_data.amsProgressInterval || data.amsProgressInterval || 1000; - progress_callback = button_data.amsProgressCallback || data.amsProgressCallback; - progress_end_callback = button_data.amsProgressEndCallback || data.amsProgressEndCallback; + progressHandler = buttonData.amsProgressHandler || data.amsProgressHandler || ''; + progressInterval = buttonData.amsProgressInterval || data.amsProgressInterval || 1000; + progressCallback = buttonData.amsProgressCallback || data.amsProgressCallback; + progressEndCallback = buttonData.amsProgressEndCallback || data.amsProgressEndCallback; // Initialize submit target with AJAX indicator var target = null; - if (submit_options && submit_options.initSubmitTarget) { - ams.executeFunctionByName(submit_options.initSubmitTarget, form); + if (submitOptions && submitOptions.initSubmitTarget) { + ams.executeFunctionByName(submitOptions.initSubmitTarget, form); } else { if (data.amsFormInitSubmitTarget) { - target = $(button_target || data.amsFormSubmitTarget || '#content'); + target = $(buttonTarget || data.amsFormSubmitTarget || '#content'); ams.executeFunctionByName(data.amsFormInitSubmit || 'MyAMS.form.initSubmit', form, target); } else if (!data.amsFormHideSubmitFooter) { ams.executeFunctionByName(data.amsFormInitSubmit || 'MyAMS.form.initSubmitFooter', form); @@ -1519,14 +1526,14 @@ } // Complete form data - if (submit_options) { - form_data = $.extend({}, form_data, submit_options.form_data); + if (submitOptions) { + formData = $.extend({}, formData, submitOptions.form_data); } // Check progress handler var hasUpload; - if (progress_handler) { - form_data.progress_id = ams.generateUUID(); + if (progressHandler) { + formData.progress_id = ams.generateUUID(); } else { // Check progress meter via Apache progress module hasUpload = typeof(options.uuid) !== 'undefined'; @@ -1543,7 +1550,7 @@ url: url, type: 'post', cache: false, - data: form_data, + data: formData, dataType: data.amsFormDatatype, beforeSerialize: function(/*form, options*/) { if (typeof(globals.tinyMCE) !== 'undefined') { @@ -1563,12 +1570,12 @@ }; // Initialize IFrame for custom download target - var download_target = (submit_options && submit_options.downloadTarget) || data.amsFormDownloadTarget; - if (download_target) { - var iframe = $('iframe[name="' + download_target + '"]'); + var downloadTarget = (submitOptions && submitOptions.downloadTarget) || data.amsFormDownloadTarget; + if (downloadTarget) { + var iframe = $('iframe[name="' + downloadTarget + '"]'); if (!iframe.exists()) { iframe = $('').hide() - .attr('name', download_target) + .attr('name', downloadTarget) .appendTo($('body')); } defaults = $.extend({}, defaults, { @@ -1623,21 +1630,21 @@ iframe: hasUpload }); } - var settings = $.extend({}, defaults, options, form_options, submit_options); + var settings = $.extend({}, defaults, options, formOptions, submitOptions); // Initialize progress handler - if (progress_handler) { - _getProgress(progress_handler, form_data.progress_id); + if (progressHandler) { + _getProgress(progressHandler, formData.progress_id); } // Submit form $(form).ajaxSubmit(settings); // If external download target is specified, reset form submit button and footer - if (download_target) { + if (downloadTarget) { var modal = $(form).parents('.modal-dialog'); - var keep_modal = modal.exists() && button.exists() && button.data('ams-keep-modal'); - if (modal.exists() && (keep_modal !== true)) { + var keepModal = modal.exists() && button.exists() && button.data('ams-keep-modal'); + if (modal.exists() && (keepModal !== true)) { ams.dialog.close(form); } else { setTimeout(function() { @@ -1780,13 +1787,13 @@ } var data = form.data(); - var data_type; + var dataType; if (data.amsFormDatatype) { - data_type = data.amsFormDatatype; + dataType = data.amsFormDatatype; } else { - var request_data = ams.ajax.getResponse(request); - data_type = request_data.content_type; - result = request_data.data; + var response = ams.ajax.getResponse(request); + dataType = response.contentType; + result = response.data; } var target; @@ -1796,7 +1803,7 @@ target = $(data.amsFormSubmitTarget || '#content'); } - switch (data_type) { + switch (dataType) { case 'json': ams.ajax.handleJSON(result, form, target); break; @@ -1837,9 +1844,9 @@ */ _getSubmitValidators: function(form) { var validators = []; - var form_validator = form.data('ams-form-validator'); - if (form_validator) { - validators.push([form, form_validator]); + var formValidator = form.data('ams-form-validator'); + if (formValidator) { + validators.push([form, formValidator]); } $('[data-ams-form-validator]', form).each(function() { var source = $(this); @@ -1868,11 +1875,11 @@ var validator = validators[index]; var source = validator[0]; var handler = validator[1]; - var validator_result = ams.executeFunctionByName(handler, form, source); - if (validator_result === false) { + var validatorResult = ams.executeFunctionByName(handler, form, source); + if (validatorResult === false) { result = false; - } else if (typeof(validator_result) === 'string') { - output.push(validator_result); + } else if (typeof(validatorResult) === 'string') { + output.push(validatorResult); } else if (result.length && (result.length > 0)) { output = output.concat(result); } @@ -1925,22 +1932,22 @@ if (errors.widgets) { for (index = 0; index < errors.widgets.length; index++) { // set widget status message - var widget_data = errors.widgets[index]; - var widget = $('[name="' + widget_data.name + '"]', form); + var widgetData = errors.widgets[index]; + var widget = $('[name="' + widgetData.name + '"]', form); widget.parents('label:first') .removeClassPrefix('state-') .addClass('state-error') - .after('' + widget_data.message + ''); + .after('' + widgetData.message + ''); // complete form alert message - if (widget_data.label) { - message.push(widget_data.label + ' : ' + widget_data.message); + if (widgetData.label) { + message.push(widgetData.label + ' : ' + widgetData.message); } // mark parent tab (if any) with error status - var tab_index = widget.parents('.tab-pane').index() + 1; - if (tab_index > 0) { - var nav_tabs = $('.nav-tabs', $(widget).parents('.tabforms')); - $('li:nth-child(' + tab_index + ')', nav_tabs).removeClassPrefix('state-') - .addClass('state-error'); + var tabIndex = widget.parents('.tab-pane').index() + 1; + if (tabIndex > 0) { + var navTabs = $('.nav-tabs', $(widget).parents('.tabforms')); + $('li:nth-child(' + tabIndex + ')', navTabs).removeClassPrefix('state-') + .addClass('state-error'); $('li.state-error:first a', form).click(); } } @@ -2034,14 +2041,14 @@ ''; } - var source_data; + var sourceData; var url; if (typeof(source) === 'string') { - source_data = {}; + sourceData = {}; url = source; } else { - source_data = source.data(); - url = source.attr('href') || source_data.amsUrl; + sourceData = source.data(); + url = source.attr('href') || sourceData.amsUrl; var url_getter = ams.getFunctionByName(url); if (typeof(url_getter) === 'function') { url = url_getter.call(source); @@ -2059,14 +2066,14 @@ $.ajax({ url: url, type: 'get', - cache: source_data.amsAllowCache === undefined ? false : source_data.amsAllowCache, + cache: sourceData.amsAllowCache === undefined ? false : sourceData.amsAllowCache, data: options, success: function(data, status, request) { $('body').modalmanager('removeLoading'); - var request_data = ams.ajax.getResponse(request); - var data_type = request_data.content_type; - var result = request_data.data; - switch (data_type) { + var response = ams.ajax.getResponse(request); + var dataType = response.contentType; + var result = response.data; + switch (dataType) { case 'json': ams.ajax.handleJSON(result, $($(source).data('ams-json-target') || '#content')); break; @@ -2081,27 +2088,27 @@ default: var content = $(result); var dialog = $('.modal-dialog', content.wrap('
').parent()); - var dialog_data = dialog.data(); - var data_options = { + var dialogData = dialog.data(); + var dataOptions = { backdrop: 'static', - overflow: dialog_data.amsModalOverflow || '.modal-viewport', - maxHeight: dialog_data.amsModalMaxHeight === undefined ? + overflow: dialogData.amsModalOverflow || '.modal-viewport', + maxHeight: dialogData.amsModalMaxHeight === undefined ? function() { return $(window).height() - $('.modal-header', content).outerHeight(true) - $('footer', content).outerHeight(true) - 85; } - : ams.getFunctionByName(dialog_data.amsModalMaxHeight) + : ams.getFunctionByName(dialogData.amsModalMaxHeight) }; - var settings = $.extend({}, data_options, dialog_data.amsModalOptions); - settings = ams.executeFunctionByName(dialog_data.amsModalInitCallback, dialog, settings) || settings; + var settings = $.extend({}, dataOptions, dialogData.amsModalOptions); + settings = ams.executeFunctionByName(dialogData.amsModalInitCallback, dialog, settings) || settings; $('
').addClass('modal fade') .append(content) .modal(settings) .on('shown', ams.dialog.shown) .on('hidden', ams.dialog.hidden); ams.initContent(content); - if (source_data.amsLogEvent !== false) { + if (sourceData.amsLogEvent !== false) { ams.stats.logPageview(url); } } @@ -2120,14 +2127,14 @@ function resetViewport(ev) { var top = $('.scrollmarker.top', viewport); - var top_position = viewport.scrollTop(); - if (top_position > 0) { + var topPosition = viewport.scrollTop(); + if (topPosition > 0) { top.show(); } else { top.hide(); } var bottom = $('.scrollmarker.bottom', viewport); - if (maxHeight + top_position >= viewport.get(0).scrollHeight) { + if (maxHeight + topPosition >= viewport.get(0).scrollHeight) { bottom.hide(); } else { bottom.show(); @@ -2314,18 +2321,18 @@ /** Context menu handler */ contextMenuHandler: function(target, menu) { - var menu_data = menu.data(); - if (menu_data.toggle === 'modal') { + var menuData = menu.data(); + if (menuData.toggle === 'modal') { ams.dialog.open(menu); } else { - var href = menu.attr('href') || menu_data.amsUrl; + var href = menu.attr('href') || menuData.amsUrl; if (!href || href.startsWith('javascript') || menu.attr('target')) { return; } ams.event.stop(); - var href_getter = ams.getFunctionByName(href); - if (typeof(href_getter) === 'function') { - href = href_getter.call(menu, target); + var hrefGetter = ams.getFunctionByName(href); + if (typeof(hrefGetter) === 'function') { + href = hrefGetter.call(menu, target); } if (typeof(href) === 'function') { // Javascript function call @@ -2436,26 +2443,26 @@ $('[data-ams-plugins]', element).each(function() { var source = $(this); - var ams_plugins = source.data('ams-plugins'); - if (typeof(ams_plugins) === 'string') { + var amsPlugins = source.data('ams-plugins'); + if (typeof(amsPlugins) === 'string') { var names = source.data('ams-plugins').split(/\s+/); for (var index = 0; index < names.length; index++) { name = names[index]; - var new_plugin = { + var newPlugin = { src: source.data('ams-plugin-' + name + '-src'), css: source.data('ams-plugin-' + name + '-css'), callback: source.data('ams-plugin-' + name + '-callback'), register: source.data('ams-plugin-' + name + '-register'), async: source.data('ams-plugin-' + name + '-async') }; - _registerPlugin(name, new_plugin); + _registerPlugin(name, newPlugin); } } else { - for (name in ams_plugins) { - if (!ams_plugins.hasOwnProperty(name)) { + for (name in amsPlugins) { + if (!amsPlugins.hasOwnProperty(name)) { continue; } - _registerPlugin(name, ams_plugins[name]); + _registerPlugin(name, amsPlugins[name]); } } }); @@ -2511,8 +2518,8 @@ callbacks(element); break; default: - for (var cb_index = 0; cb_index < callbacks.length; cb_index++) { - var callback = callbacks[cb_index]; + for (var cbIndex = 0; cbIndex < callbacks.length; cbIndex++) { + var callback = callbacks[cbIndex]; if (typeof(callback) === 'function') { callback(element); } @@ -2530,12 +2537,12 @@ */ initData: function(element) { $('[data-ams-data]', element).each(function() { - var data_element = $(this); - var data = data_element.data('ams-data'); + var dataElement = $(this); + var data = dataElement.data('ams-data'); if (data) { for (var name in data) { if (data.hasOwnProperty(name)) { - data_element.attr('data-' + name, data[name]); + dataElement.attr('data-' + name, data[name]); } } } @@ -2621,7 +2628,7 @@ hints.each(function () { var hint = $(this); var data = hint.data(); - var data_options = { + var dataOptions = { html: data.amsHintHtml, title: ams.getFunctionByName(data.amsHintTitleGetter) || function () { var hint = $(this); @@ -2633,7 +2640,7 @@ gravity: data.amsHintGravity || 'sw', offset: data.amsHintOffset || 0 }; - var settings = $.extend({}, data_options, data.amsHintOptions); + var settings = $.extend({}, dataOptions, data.amsHintOptions); settings = ams.executeFunctionByName(data.amsHintInitCallback, hint, settings) || settings; var plugin = hint.tipsy(settings); ams.executeFunctionByName(data.amsHintAfterInitCallback, hint, plugin, settings); @@ -2651,11 +2658,11 @@ menus.each(function() { var menu = $(this); var data = menu.data(); - var data_options = { + var dataOptions = { menuSelector: data.amsContextmenuSelector, menuSelected: ams.helpers.contextMenuHandler }; - var settings = $.extend({}, data_options, data.amsContextmenuOptions); + var settings = $.extend({}, dataOptions, data.amsContextmenuOptions); settings = ams.executeFunctionByName(data.amsContextmenuInitCallback, menu, settings) || settings; var plugin = menu.contextMenu(settings); ams.executeFunctionByName(data.amsContextmenuAfterInitCallback, menu, plugin, settings); @@ -2724,7 +2731,7 @@ if (!data.amsChecker) { var checker = $(''); var fieldname = data.amsCheckerFieldname || ('checker_'+ams.generateId()); - var checkbox_id = fieldname.replace(/\./, '_'); + var checkboxId = fieldname.replace(/\./, '_'); var prefix = data.amsCheckerHiddenPrefix; var hidden = null; var checkedValue = data.amsCheckerHiddenValueOn || 'true'; @@ -2740,7 +2747,7 @@ .prependTo(legend); } var input = $('').attr('name', fieldname) - .attr('id', checkbox_id) + .attr('id', checkboxId) .data('ams-checker-hidden-input', hidden) .data('ams-checker-init', true) .val(data.amsCheckerValue || true) @@ -2820,8 +2827,8 @@ sliders.each(function() { var slider = $(this); var data = slider.data(); - var data_options = {}; - var settings = $.extend({}, data_options, slider.data.amsSliderOptions); + var dataOptions = {}; + var settings = $.extend({}, dataOptions, slider.data.amsSliderOptions); settings = ams.executeFunctionByName(data.amsSliderInitCallback, slider, settings) || settings; var plugin = slider.slider(settings); ams.executeFunctionByName(data.amsSliderAfterInitCallback, slider, plugin, settings); @@ -2839,13 +2846,13 @@ draggables.each(function() { var draggable = $(this); var data = draggable.data(); - var data_options = { + var dataOptions = { containment: data.amsDraggableContainment, helper: ams.getFunctionByName(data.amsDraggableHelper) || data.amsDraggableHelper, start: ams.getFunctionByName(data.amsDraggableStart), stop: ams.getFunctionByName(data.amsDraggableStop) }; - var settings = $.extend({}, data_options, data.amsDraggableOptions); + var settings = $.extend({}, dataOptions, data.amsDraggableOptions); settings = ams.executeFunctionByName(data.amsDraggableInitCallback, draggable, settings) || settings; var plugin = draggable.draggable(settings); draggable.disableSelection(); @@ -2863,7 +2870,7 @@ sortables.each(function() { var sortable = $(this); var data = sortable.data(); - var data_options = { + var dataOptions = { items: data.amsSortableItems, handle: data.amsSortableHandle, connectWith: data.amsSortableConnectwith, @@ -2873,7 +2880,7 @@ placeholder: data.amsSortablePlaceholder, stop: ams.getFunctionByName(data.amsSortableStop) }; - var settings = $.extend({}, data_options, data.amsSortableOptions); + var settings = $.extend({}, dataOptions, data.amsSortableOptions); settings = ams.executeFunctionByName(data.amsSortableInitCallback, sortable, settings) || settings; var plugin = sortable.sortable(settings); sortable.disableSelection(); @@ -2891,7 +2898,7 @@ resizables.each(function() { var resizable = $(this); var data = resizable.data(); - var data_options = { + var dataOptions = { autoHide: data.amsResizableAutohide === false ? true : data.amsResizableAutohide, containment: data.amsResizableContainment, grid: data.amsResizableGrid, @@ -2899,7 +2906,7 @@ start: ams.getFunctionByName(data.amsResizableStart), stop: ams.getFunctionByName(data.amsResizableStop) }; - var settings = $.extend({}, data_options, data.amsResizableOptions); + var settings = $.extend({}, dataOptions, data.amsResizableOptions); settings = ams.executeFunctionByName(data.amsResizableInitCallback, resizable, settings) || settings; var plugin = resizable.resizable(settings); resizable.disableSelection(); @@ -2920,8 +2927,8 @@ typeaheads.each(function() { var input = $(this); var data = input.data(); - var data_options = {}; - var settings = $.extend({}, data_options, data.amsTypeaheadOptions); + var dataOptions = {}; + var settings = $.extend({}, dataOptions, data.amsTypeaheadOptions); settings = ams.executeFunctionByName(data.amsTypeaheadInitCallback, input, settings) || settings; var plugin = input.typeahead(settings); ams.executeFunctionByName(data.amsTypeaheadAfterInitCallback, input, plugin, settings); @@ -2942,7 +2949,7 @@ selects.each(function() { var select = $(this); var data = select.data(); - var data_options = { + var dataOptions = { placeholder: data.amsSelect2Placeholder, multiple: data.amsSelect2Multiple, minimumInputLength: data.amsSelect2MinimumInputLength || 0, @@ -3010,14 +3017,14 @@ switch (select.context.type) { case 'text': case 'hidden': - if (!data_options.initSelection) { - var values_data = select.data('ams-select2-values'); - if (values_data) { - data_options.initSelection = function(element, callback) { + if (!dataOptions.initSelection) { + var valuesData = select.data('ams-select2-values'); + if (valuesData) { + dataOptions.initSelection = function(element, callback) { var data = []; - $(element.val().split(data_options.separator)).each(function() { + $(element.val().split(dataOptions.separator)).each(function() { data.push({id: this, - text: values_data[this] || this}); + text: valuesData[this] || this}); }); callback(data); }; @@ -3030,17 +3037,17 @@ if (select.attr('readonly')) { if (select.attr('type') === 'hidden') { - data_options.query = function () { + dataOptions.query = function () { return []; }; } } else if (data.amsSelect2Query) { // Custom query method - data_options.query = ams.getFunctionByName(data.amsSelect2Query); - data_options.minimumInputLength = data.amsSelect2MinimumInputLength || 1; + dataOptions.query = ams.getFunctionByName(data.amsSelect2Query); + dataOptions.minimumInputLength = data.amsSelect2MinimumInputLength || 1; } else if (data.amsSelect2QueryUrl) { // AJAX query - data_options.ajax = { + dataOptions.ajax = { url: data.amsSelect2QueryUrl, quietMillis: data.amsSelect2QuietMillis || 200, type: data.amsSelect2QueryType || 'POST', @@ -3054,10 +3061,10 @@ }, results: ams.helpers.select2QueryUrlResultsCallback }; - data_options.minimumInputLength = data.amsSelect2MinimumInputLength || 1; + dataOptions.minimumInputLength = data.amsSelect2MinimumInputLength || 1; } else if (data.amsSelect2QueryMethod) { // JSON-RPC query - data_options.query = function(options) { + dataOptions.query = function(options) { var settings = { url: data.amsSelect2MethodTarget || ams.jsonrpc.getAddr(), type: data.amsSelect2MethodType || 'POST', @@ -3075,28 +3082,28 @@ settings = $.extend({}, settings, data.amsSelect2QueryOptions); settings = ams.executeFunctionByName(data.amsSelect2QueryInitCallback, select, settings) || settings; ams.ajax.check($.jsonRpc, - ams.baseURL + 'ext/jquery-jsonrpc' + (ams.devmode ? '.js' : '.min.js'), + ams.baseURL + 'ext/jquery-jsonrpc' + ams.devext + '.js', function() { $.jsonRpc(settings); }); }; - data_options.minimumInputLength = data.amsSelect2MinimumInputLength || 1; + dataOptions.minimumInputLength = data.amsSelect2MinimumInputLength || 1; } else if (data.amsSelect2Tags) { // Tags mode - data_options.tags = data.amsSelect2Tags; + dataOptions.tags = data.amsSelect2Tags; } else if (data.amsSelect2Data) { // Provided data mode - data_options.data = data.amsSelect2Data; + dataOptions.data = data.amsSelect2Data; } if (data.amsSelect2EnableFreeTags) { - data_options.createSearchChoice = function(term) { + dataOptions.createSearchChoice = function(term) { return {id: term, text: (data.amsSelect2FreeTagsPrefix || ams.i18n.SELECT2_FREETAG_PREFIX) + term}; }; } - var settings = $.extend({}, data_options, data.amsSelect2Options); + var settings = $.extend({}, dataOptions, data.amsSelect2Options); settings = ams.executeFunctionByName(data.amsSelect2InitCallback, select, settings) || settings; var plugin = select.select2(settings); ams.executeFunctionByName(data.amsSelect2AfterInitCallback, select, plugin, settings); @@ -3133,11 +3140,11 @@ masks.each(function() { var mask = $(this); var data = mask.data(); - var data_options = { + var dataOptions = { placeholder: data.amsMaskeditPlaceholder === undefined ? 'X' : data.amsMaskeditPlaceholder, complete: ams.getFunctionByName(data.amsMaskeditComplete) }; - var settings = $.extend({}, data_options, data.amsMaskeditOptions); + var settings = $.extend({}, dataOptions, data.amsMaskeditOptions); settings = ams.executeFunctionByName(data.amsMaskeditInitCallback, mask, settings) || settings; var plugin = mask.mask(mask.attr('data-mask'), settings); ams.executeFunctionByName(data.amsMaskeditAfterInitCallback, mask, plugin, settings); @@ -3163,15 +3170,15 @@ masks.each(function() { var input = $(this); var data = input.data(); - var data_options; + var dataOptions; if (typeof(data.inputMask) === 'object') { - data_options = data.inputMask; + dataOptions = data.inputMask; } else { - data_options = { + dataOptions = { mask: data.inputMask.toString() }; } - var settings = $.extend({}, data_options, data.amsInputmaskOptions); + var settings = $.extend({}, dataOptions, data.amsInputmaskOptions); settings = ams.executeFunctionByName(data.amsInputmaskInitCallback, input, settings) || settings; var plugin = input.inputmask(settings); ams.executeFunctionByName(data.amsInputmaskAfterInitCallback, input, plugin, settings); @@ -3196,14 +3203,14 @@ datepickers.each(function() { var input = $(this); var data = input.data(); - var data_options = { + var dataOptions = { lang: data.amsDatetimepickerLang || ams.lang, format: data.amsDatetimepickerFormat || 'd/m/y', datepicker: true, dayOfWeekStart: 1, timepicker: false }; - var settings = $.extend({}, data_options, data.amsDatetimepickerOptions); + var settings = $.extend({}, dataOptions, data.amsDatetimepickerOptions); settings = ams.executeFunctionByName(data.amsDatetimepickerInitCallback, input, settings) || settings; var plugin = input.datetimepicker(settings); ams.executeFunctionByName(data.amsDatetimepickerAfterInitCallback, input, plugin, settings); @@ -3228,14 +3235,14 @@ datetimepickers.each(function() { var input = $(this); var data = input.data(); - var data_options = { + var dataOptions = { lang: data.amsDatetimepickerLang || ams.lang, format: data.amsDatetimepickerFormat || 'd/m/y H:i', datepicker: true, dayOfWeekStart: 1, timepicker: true }; - var settings = $.extend({}, data_options, data.amsDatetimepickerOptions); + var settings = $.extend({}, dataOptions, data.amsDatetimepickerOptions); settings = ams.executeFunctionByName(data.amsDatetimepickerInitCallback, input, settings) || settings; var plugin = input.datetimepicker(settings); ams.executeFunctionByName(data.amsDatetimepickerAfterInitCallback, input, plugin, settings); @@ -3260,13 +3267,13 @@ timepickers.each(function() { var input = $(this); var data = input.data(); - var data_options = { + var dataOptions = { lang: data.amsDatetimepickerLang || ams.lang, format: data.amsDatetimepickerFormat || 'H:i', datepicker: false, timepicker: true }; - var settings = $.extend({}, data_options, data.amsDatetimepickerOptions); + var settings = $.extend({}, dataOptions, data.amsDatetimepickerOptions); settings = ams.executeFunctionByName(data.amsDatetimepickerInitCallback, input, settings) || settings; var plugin = input.datetimepicker(settings); ams.executeFunctionByName(data.amsDatetimepickerAfterInitCallback, input, plugin, settings); @@ -3290,10 +3297,10 @@ colorpickers.each(function() { var input = $(this); var data = input.data(); - var data_options = { + var dataOptions = { position: data.amsColorpickerPosition || input.closest('label.input').data('ams-colorpicker-position') || 'bottom left' }; - var settings = $.extend({}, data_options, data.amsColorpickerOptions); + var settings = $.extend({}, dataOptions, data.amsColorpickerOptions); settings = ams.executeFunctionByName(data.amsColorpickerInitCallback, input, settings) || settings; var plugin = input.minicolors(settings); ams.executeFunctionByName(data.amsDatetimepickerAfterInitCallback, input, plugin, settings); @@ -3347,7 +3354,7 @@ forms.each(function() { var form = $(this); var data = form.data(); - var data_options = { + var dataOptions = { ignore: null, submitHandler: form.attr('data-async') !== undefined ? data.amsFormSubmitHandler === undefined ? @@ -3369,13 +3376,13 @@ $('.state-error', form).removeClass('state-error'); for (var index=0; index < validator.errorList.length; index++) { var error = validator.errorList[index]; - var tab_index = $(error.element).parents('.tab-pane').index() + 1; - if (tab_index > 0) { - var nav_tabs = $('.nav-tabs', $(error.element).parents('.tabforms')); - $('li:nth-child(' + tab_index + ')', nav_tabs) + var tabIndex = $(error.element).parents('.tab-pane').index() + 1; + if (tabIndex > 0) { + var navTabs = $('.nav-tabs', $(error.element).parents('.tabforms')); + $('li:nth-child(' + tabIndex + ')', navTabs) .removeClassPrefix('state-') .addClass('state-error'); - $('li.state-error:first a', nav_tabs).click(); + $('li.state-error:first a', navTabs).click(); } } } @@ -3384,11 +3391,11 @@ }; $('[data-ams-validate-rules]', form).each(function(index) { if (index === 0) { - data_options.rules = {}; + dataOptions.rules = {}; } - data_options.rules[$(this).attr('name')] = $(this).data('ams-validate-rules'); + dataOptions.rules[$(this).attr('name')] = $(this).data('ams-validate-rules'); }); - var settings = $.extend({}, data_options, data.amsValidateOptions); + var settings = $.extend({}, dataOptions, data.amsValidateOptions); settings = ams.executeFunctionByName(data.amsValidateInitCallback, form, settings) || settings; var plugin = form.validate(settings); ams.executeFunctionByName(data.amsValidateAfterInitCallback, form, plugin, settings); @@ -3435,24 +3442,35 @@ var sortings = sorting.split(';'); sorting = []; for (index=0; index < sortings.length; index++) { - var col_sorting = sortings[index].split(','); - col_sorting[0] = parseInt(col_sorting[0]); - sorting.push(col_sorting); + var colSorting = sortings[index].split(','); + colSorting[0] = parseInt(colSorting[0]); + sorting.push(colSorting); + } + } + // Check columns sortings + var columns = []; + var column; + var sortables = $('th', table).listattr('data-ams-datatable-sortable'); + for (index=0; index < sortables.length; index++) { + var sortable = sortables[index]; + if (sortable !== undefined) { + column = columns[index] || {}; + column.bSortable = sortable; + columns[index] = column; } } // Check columns types - var columns = []; - var sort_types = $('th', table).listattr('data-ams-datatable-stype'); - for (index=0; index < sort_types.length; index++) { - var sort_type = sort_types[index]; - if (sort_type) { - var column = columns[index] || {}; - column.sType = sort_type; + var sortTypes = $('th', table).listattr('data-ams-datatable-stype'); + for (index=0; index < sortTypes.length; index++) { + var sortType = sortTypes[index]; + if (sortType) { + column = columns[index] || {}; + column.sType = sortType; columns[index] = column; } } // Set options - var data_options = { + var dataOptions = { bJQueryUI: false, bFilter: data.amsDatatableGlobalFilter !== false || extensions.indexOf('columnfilter') >= 0, bPaginate: data.amsDatatablePagination !== false, @@ -3468,10 +3486,11 @@ oLanguage: ams.plugins.i18n.datatables, fnInitComplete: function(oSettings, json) { $('.ColVis_Button').addClass('btn btn-default btn-sm') - .html((ams.plugins.i18n.datatables.sColumns || "Columns") + ' '); + .html((ams.plugins.i18n.datatables.sColumns || "Columns") + + ' '); } }; - var settings = $.extend({}, data_options, data.amsDatatableOptions); + var settings = $.extend({}, dataOptions, data.amsDatatableOptions); if (extensions.length > 0) { for (index=0; index < extensions.length; index++) { switch (extensions[index]) { @@ -3494,11 +3513,11 @@ case 'colvis': ams.ajax.check($.fn.dataTable.ColVis, ams.baseURL + 'ext/jquery-dataTables-colVis' + ams.devext + '.js'); - var cv_default = { + var cvDefault = { activate: 'click', sAlign: 'right' }; - settings.oColVis = $.extend({}, cv_default, data.amsDatatableColvisOptions); + settings.oColVis = $.extend({}, cvDefault, data.amsDatatableColvisOptions); break; case 'editable': ams.ajax.check($.fn.editable, @@ -3543,67 +3562,67 @@ for (index=0; index < extensions.length; index++) { switch (extensions[index]) { case 'autofill': - var af_settings = $.extend({}, data.amsDatatableAutofillOptions, settings.autofill); - af_settings = ams.executeFunctionByName(data.amsDatatableAutofillInitCallback, table, af_settings) || af_settings; + var afSettings = $.extend({}, data.amsDatatableAutofillOptions, settings.autofill); + afSettings = ams.executeFunctionByName(data.amsDatatableAutofillInitCallback, table, afSettings) || afSettings; table.data('ams-autofill', data.amsDatatableAutofillConstructor === undefined ? - new $.fn.dataTable.AutoFill(table, af_settings) - : ams.executeFunctionByName(data.amsDatatableAutofillConstructor, table, plugin, af_settings)); + new $.fn.dataTable.AutoFill(table, afSettings) + : ams.executeFunctionByName(data.amsDatatableAutofillConstructor, table, plugin, afSettings)); break; case 'columnfilter': - var cf_default = { + var cfDefault = { sPlaceHolder: 'head:after' }; - var cf_settings = $.extend({}, cf_default, data.amsDatatableColumnfilterOptions, settings.columnfilter); - cf_settings = ams.executeFunctionByName(data.amsDatatableColumnfilterInitCallback, table, cf_settings) || cf_settings; + var cfSettings = $.extend({}, cfDefault, data.amsDatatableColumnfilterOptions, settings.columnfilter); + cfSettings = ams.executeFunctionByName(data.amsDatatableColumnfilterInitCallback, table, cfSettings) || cfSettings; table.data('ams-columnfilter', data.amsDatatableColumnfilterConstructor === undefined ? - plugin.columnFilter(cf_settings) - : ams.executeFunctionByName(data.amsDatatableColumnfilterConstructor, table, plugin, cf_settings)); + plugin.columnFilter(cfSettings) + : ams.executeFunctionByName(data.amsDatatableColumnfilterConstructor, table, plugin, cfSettings)); break; case 'editable': - var ed_settings = $.extend({}, data.amsDatatableEditableOptions, settings.editable); - ed_settings = ams.executeFunctionByName(data.amsDatatableEditableInitCallback, table, ed_settings) || ed_settings; + var edSettings = $.extend({}, data.amsDatatableEditableOptions, settings.editable); + edSettings = ams.executeFunctionByName(data.amsDatatableEditableInitCallback, table, edSettings) || edSettings; table.data('ams-editable', data.amsDatatableEditableConstructor === undefined ? - table.makeEditable(ed_settings) - : ams.executeFunctionByName(data.amsDatatableEditableConstructor, table, plugin, ed_settings)); + table.makeEditable(edSettings) + : ams.executeFunctionByName(data.amsDatatableEditableConstructor, table, plugin, edSettings)); break; case 'fixedcolumns': - var fc_settings = $.extend({}, data.amsDatatableFixedcolumnsOptions, settings.fixedcolumns); - fc_settings = ams.executeFunctionByName(data.amsDatatableFixedcolumnsInitCallback, table, fc_settings) || fc_settings; + var fcSettings = $.extend({}, data.amsDatatableFixedcolumnsOptions, settings.fixedcolumns); + fcSettings = ams.executeFunctionByName(data.amsDatatableFixedcolumnsInitCallback, table, fcSettings) || fcSettings; table.data('ams-fixedcolumns', data.amsDatatableFixedcolumnsConstructor === undefined ? - new $.fn.dataTable.FixedColumns(table, fc_settings) - : ams.executeFunctionByName(data.amsDatatableFixedcolumnsConstructor, table, plugin, fc_settings)); + new $.fn.dataTable.FixedColumns(table, fcSettings) + : ams.executeFunctionByName(data.amsDatatableFixedcolumnsConstructor, table, plugin, fcSettings)); break; case 'fixedheader': - var fh_settings = $.extend({}, data.amsDatatableFixedheaderOptions, settings.fixedheader); - fh_settings = ams.executeFunctionByName(data.amsDatatableFixedheadeInitCallback, table, fh_settings) || fh_settings; + var fhSettings = $.extend({}, data.amsDatatableFixedheaderOptions, settings.fixedheader); + fhSettings = ams.executeFunctionByName(data.amsDatatableFixedheadeInitCallback, table, fhSettings) || fhSettings; table.data('ams-fixedheader', data.amsDatatableFixedheaderConstructor === undefined ? - new $.fn.dataTable.FixedHeader(table, fh_settings) - : ams.executeFunctionByName(data.amsDatatableFixedheaderConstructor, table, plugin, fh_settings)); + new $.fn.dataTable.FixedHeader(table, fhSettings) + : ams.executeFunctionByName(data.amsDatatableFixedheaderConstructor, table, plugin, fhSettings)); break; case 'keytable': - var kt_default = { + var ktDefault = { table: table.get(0), datatable: plugin }; - var kt_settings = $.extend({}, kt_default, data.amsDatatableKeytableOptions, settings.keytable); - kt_settings = ams.executeFunctionByName(data.amsDatatableKeytableInitCallback, table, kt_settings) || kt_settings; + var ktSettings = $.extend({}, ktDefault, data.amsDatatableKeytableOptions, settings.keytable); + ktSettings = ams.executeFunctionByName(data.amsDatatableKeytableInitCallback, table, ktSettings) || ktSettings; table.data('ams-keytable', data.amsDatatableKeytableConstructor === undefined ? - new KeyTable(kt_settings) - : ams.executeFunctionByName(data.amsDatatableKeytableConstructor, table, plugin, kt_settings)); + new KeyTable(ktSettings) + : ams.executeFunctionByName(data.amsDatatableKeytableConstructor, table, plugin, ktSettings)); break; case 'rowgrouping': - var rg_settings = $.extend({}, data.amsDatatableRowgroupingOptions, settings.rowgrouping); - rg_settings = ams.executeFunctionByName(data.amsDatatableRowgroupingInitCallback, table, rg_settings) || rg_settings; + var rgSettings = $.extend({}, data.amsDatatableRowgroupingOptions, settings.rowgrouping); + rgSettings = ams.executeFunctionByName(data.amsDatatableRowgroupingInitCallback, table, rgSettings) || rgSettings; table.data('ams-rowgrouping', data.amsDatatableRowgroupingConstructor === undefined ? - table.rowGrouping(rg_settings) - : ams.executeFunctionByName(data.amsDatatableRowgroupingConstructor, table, plugin, rg_settings)); + table.rowGrouping(rgSettings) + : ams.executeFunctionByName(data.amsDatatableRowgroupingConstructor, table, plugin, rgSettings)); break; case 'rowreordering': - var rr_settings = $.extend({}, data.amsDatatableRowreorderingOptions, settings.rowreordering); - rr_settings = ams.executeFunctionByName(data.amsDatatableRowreorderingInitCallback, table, rr_settings) || rr_settings; + var rrSettings = $.extend({}, data.amsDatatableRowreorderingOptions, settings.rowreordering); + rrSettings = ams.executeFunctionByName(data.amsDatatableRowreorderingInitCallback, table, rrSettings) || rrSettings; table.data('ams-rowreordering', data.amsDatatableRowreorderingConstructor === undefined ? - table.rowReordering(rr_settings) - : ams.executeFunctionByName(data.amsDatatableRowreorderingConstructor, table, plugin, rr_settings)); + table.rowReordering(rrSettings) + : ams.executeFunctionByName(data.amsDatatableRowreorderingConstructor, table, plugin, rrSettings)); break; default: break; @@ -3644,7 +3663,7 @@ $(this.cells[0]).removeClass('drag-handle'); }); } - var data_options = { + var dataOptions = { onDragClass: data.amsTabledndDragClass || 'dragging-row', onDragStart: ams.getFunctionByName(data.amsTabledndDragStart), dragHandle: data.amsTabledndDragHandle, @@ -3657,14 +3676,14 @@ $(row).data('ams-disabled-handlers', 'click'); var rows = []; $(dnd_table.rows).each(function() { - var row_id = $(this).data('ams-element-name'); - if (row_id) { - rows.push(row_id); + var rowId = $(this).data('ams-element-name'); + if (rowId) { + rows.push(rowId); } }); - var local_target = ams.getFunctionByName(target); - if (typeof(local_target) === 'function') { - local_target.call(table, dnd_table, rows); + var localTarget = ams.getFunctionByName(target); + if (typeof(localTarget) === 'function') { + localTarget.call(table, dnd_table, rows); } else { ams.ajax.post(target, {names: JSON.stringify(rows)}); } @@ -3676,7 +3695,7 @@ return false; } }; - var settings = $.extend({}, data_options, data.amsTabledndOptions); + var settings = $.extend({}, dataOptions, data.amsTabledndOptions); settings = ams.executeFunctionByName(data.amsTabledndInitCallback, table, settings) || settings; var plugin = table.tableDnD(settings); ams.executeFunctionByName(data.amsTabledndAfterInitCallback, table, plugin, settings); @@ -3701,7 +3720,7 @@ var image = $(this); var data = image.data(); var parent = data.amsImgareaselectParent ? image.parents(data.amsImgareaselectParent) : 'body'; - var data_options = { + var dataOptions = { instance: true, handles: true, parent: parent, @@ -3722,7 +3741,7 @@ $('input[name="' + target + 'y2"]', parent).val(selection.y2); } }; - var settings = $.extend({}, data_options, data.amsImgareaselectOptions); + var settings = $.extend({}, dataOptions, data.amsImgareaselectOptions); settings = ams.executeFunctionByName(data.amsImgareaselectInitCallback, image, settings) || settings; var plugin = image.imgAreaSelect(settings); ams.executeFunctionByName(data.amsImgareaselectAfterInitCallback, image, plugin, settings); @@ -3772,7 +3791,7 @@ } } } - var data_options = { + var dataOptions = { type: data.amsFancyboxType, padding: data.amsFancyboxPadding || 10, margin: data.amsFancyboxMargin || 10, @@ -3785,7 +3804,7 @@ } } }; - var settings = $.extend({}, data_options, data.amsFancyboxOptions); + var settings = $.extend({}, dataOptions, data.amsFancyboxOptions); settings = ams.executeFunctionByName(data.amsFancyboxInitCallback, fancybox, settings) || settings; var plugin = fancybox.fancybox(settings); ams.executeFunctionByName(data.amsFancyboxAfterInitCallback, fancybox, plugin, settings); @@ -3827,10 +3846,10 @@ scrollbars.each(function() { var scrollbar = $(this); var data = scrollbar.data(); - var data_options = { + var dataOptions = { theme: data.amsScrollbarTheme || 'light' }; - var settings = $.extend({}, data_options, data.amsScrollbarOptions); + var settings = $.extend({}, dataOptions, data.amsScrollbarOptions); settings = ams.executeFunctionByName(data.amsScrollbarInitCallback, scrollbar, settings) || settings; var plugin = scrollbar.mCustomScrollbar(settings); ams.executeFunctionByName(data.amsScrollbarAfterInitCallback, scrollbar, plugin, settings); @@ -3920,16 +3939,16 @@ */ messageBox: function(options) { var data = $(this).data(); - var data_options = $.extend({}, options, data.amsMessageboxOptions); - var settings = $.extend({}, data_options, { - title: data.amsMessageboxTitle || data_options.title || '', - content: data.amsMessageboxContent || data_options.content || '', - icon: data.amsMessageboxIcon || data_options.icon, - number: data.amsMessageboxNumber || data_options.number, - timeout: data.amsMessageboxTimeout || data_options.timeout + var dataOptions = $.extend({}, options, data.amsMessageboxOptions); + var settings = $.extend({}, dataOptions, { + title: data.amsMessageboxTitle || dataOptions.title || '', + content: data.amsMessageboxContent || dataOptions.content || '', + icon: data.amsMessageboxIcon || dataOptions.icon, + number: data.amsMessageboxNumber || dataOptions.number, + timeout: data.amsMessageboxTimeout || dataOptions.timeout }); - var status = data.amsMessageboxStatus || data_options.status || 'info'; - var callback = ams.getFunctionByName(data.amsMessageboxCallback || data_options.callback); + var status = data.amsMessageboxStatus || dataOptions.status || 'info'; + var callback = ams.getFunctionByName(data.amsMessageboxCallback || dataOptions.callback); ams.skin.messageBox(status, settings, callback); }, @@ -3949,16 +3968,16 @@ */ smallBox: function(options) { var data = $(this).data(); - var data_options = $.extend({}, options, data.amsSmallboxOptions); - var settings = $.extend({}, data_options, { - title: data.amsSmallboxTitle || data_options.title || '', - content: data.amsSmallboxContent || data_options.content || '', - icon: data.amsSmallboxIcon || data_options.icon, - iconSmall: data.amsSmallboxIconSmall || data_options.iconSmall, - timeout: data.amsSmallboxTimeout || data_options.timeout + var dataOptions = $.extend({}, options, data.amsSmallboxOptions); + var settings = $.extend({}, dataOptions, { + title: data.amsSmallboxTitle || dataOptions.title || '', + content: data.amsSmallboxContent || dataOptions.content || '', + icon: data.amsSmallboxIcon || dataOptions.icon, + iconSmall: data.amsSmallboxIconSmall || dataOptions.iconSmall, + timeout: data.amsSmallboxTimeout || dataOptions.timeout }); - var status = data.amsSmallboxStatus || data_options.status || 'info'; - var callback = ams.getFunctionByName(data.amsSmallboxCallback || data_options.callback); + var status = data.amsSmallboxStatus || dataOptions.status || 'info'; + var callback = ams.getFunctionByName(data.amsSmallboxCallback || dataOptions.callback); ams.skin.smallBox(status, settings, callback); } }; @@ -4029,9 +4048,9 @@ var table = link.parents('table'); var location = table.data('ams-location') || ''; var tr = link.parents('tr'); - var delete_target = tr.data('ams-delete-target') || table.data('ams-delete-target') || 'delete-element.json'; - var object_name = tr.data('ams-element-name'); - MyAMS.ajax.post(location + '/' + delete_target, {'object_name': object_name}, function(result, status) { + var deleteTarget = tr.data('ams-delete-target') || table.data('ams-delete-target') || 'delete-element.json'; + var objectName = tr.data('ams-element-name'); + MyAMS.ajax.post(location + '/' + deleteTarget, {'object_name': objectName}, function(result, status) { if (result.status === 'success') { if (table.hasClass('datatable')) { table.dataTable().fnDeleteRow(tr[0]); @@ -4056,15 +4075,15 @@ * Compute navigation page height */ _setPageHeight: function() { - var main_height = $('#main').height(); - var menu_height = ams.left_panel.height(); - var window_height = $(window).height() - ams.navbar_height; - if (main_height > window_height) { - ams.left_panel.css('min-height', main_height); - ams.root.css('min-height', main_height + ams.navbar_height); + var mainHeight = $('#main').height(); + var menuHeight = ams.leftPanel.height(); + var windowHeight = $(window).height() - ams.navbarHeight; + if (mainHeight > windowHeight) { + ams.leftPanel.css('min-height', mainHeight); + ams.root.css('min-height', mainHeight + ams.navbarHeight); } else { - ams.left_panel.css('min-height', window_height); - ams.root.css('min-height', window_height); + ams.leftPanel.css('min-height', windowHeight); + ams.root.css('min-height', windowHeight); } }, @@ -4123,7 +4142,7 @@ * Initialize desktop and mobile widgets */ _initDesktopWidgets: function(element) { - if (ams.enable_widgets) { + if (ams.enableWidgets) { var widgets = $('.ams-widget', element); if (widgets.length > 0) { ams.ajax.check($.fn.MyAMSWidget, @@ -4132,11 +4151,11 @@ widgets.each(function () { var widget = $(this); var data = widget.data(); - var data_options = { + var dataOptions = { deleteSettingsKey: '#deletesettingskey-options', deletePositionKey: '#deletepositionkey-options' }; - var settings = $.extend({}, data_options, data.amsWidgetOptions); + var settings = $.extend({}, dataOptions, data.amsWidgetOptions); settings = ams.executeFunctionByName(data.amsWidgetInitcallback, widget, settings) || settings; widget.MyAMSWidget(settings); }); @@ -4147,7 +4166,7 @@ }, _initMobileWidgets: function(element) { - if (ams.enable_mobile && ams.enable_widgets) { + if (ams.enableMobile && ams.enableWidgets) { ams.skin._initDesktopWidgets(element); } }, @@ -4331,15 +4350,15 @@ menu.attr('title') || document.title); } else { - var active_url = $('[data-ams-active-menu]').data('ams-active-menu'); - if (active_url) { - menu = $('A[href="' + active_url + '"]', nav); + var activeUrl = $('[data-ams-active-menu]').data('ams-active-menu'); + if (activeUrl) { + menu = $('A[href="' + activeUrl + '"]', nav); } else { menu = $('>UL >LI >A[href!="#"]', nav).first(); } if (menu.exists()) { updateActiveMenus(menu); - if (active_url) { + if (activeUrl) { ams.skin._drawBreadCrumb(); } else { window.location.hash = menu.attr('href'); @@ -4419,11 +4438,11 @@ if (callback) { ams.executeFunctionByName(callback, this, data, status, request, options); } else { - var request_data = ams.ajax.getResponse(request); - var data_type = request_data.content_type; - var result = request_data.data; + var response = ams.ajax.getResponse(request); + var dataType = response.contentType; + var result = response.data; $('.loading', container).remove(); - switch (data_type) { + switch (dataType) { case 'json': ams.ajax.handleJSON(result, container); break; @@ -4469,8 +4488,8 @@ */ setLanguage: function(options) { var lang = options.lang; - var handler_type = options.handler_type || 'json'; - switch (handler_type) { + var handlerType = options.handler_type || 'json'; + switch (handlerType) { case 'json': var method = options.method || 'setUserLanguage'; ams.jsonrpc.post(method, {lang: lang}, function() { @@ -4542,17 +4561,17 @@ /* Init main components */ ams.root = body; - ams.left_panel = $('#left-panel'); + ams.leftPanel = $('#left-panel'); ams.shortcuts = $('#shortcut'); ams.plugins.initData(body); // Init main AJAX events - var jquery_xhr = $.ajaxSettings.xhr; + var xhr = $.ajaxSettings.xhr; $.ajaxSetup({ progress: ams.ajax.progress, progressUpload: ams.ajax.progress, xhr: function() { - var request = jquery_xhr(); + var request = xhr(); if (request && (typeof(request.addEventListener) === "function")) { var that = this; request.addEventListener("progress", function(evt) { @@ -4573,7 +4592,7 @@ } else { ams.root.addClass('mobile-detected'); ams.device = 'mobile'; - if (ams.enable_fastclick) { + if (ams.enableFastclick) { ams.ajax.check($.fn.noClickDelay, ams.baseURL + '/ext/jquery-smartclick' + ams.devext + '.js', function() { @@ -4648,9 +4667,9 @@ if (href) { e.preventDefault(); e.stopPropagation(); - var href_getter = ams.getFunctionByName(href); - if (typeof(href_getter) === 'function') { - href = href_getter.call(this); + var hrefGetter = ams.getFunctionByName(href); + if (typeof(hrefGetter) === 'function') { + href = hrefGetter.call(this); } if (typeof(href) === 'function') { // Javascript function call @@ -4686,7 +4705,7 @@ var nav = $('nav'); $('UL', nav).myams_menu({ accordion : nav.data('ams-menu-accordion') !== false, - speed : ams.menu_speed + speed : ams.menuSpeed }); // Left navigation collapser @@ -4735,7 +4754,7 @@ }); // Init AJAX navigation - if (ams.ajax_nav) { + if (ams.ajaxNav) { $(document).on('click', 'a[href="#"]', function(e) { e.preventDefault(); }); @@ -4751,9 +4770,9 @@ } e.preventDefault(); e.stopPropagation(); - var href_getter = ams.getFunctionByName(href); - if (typeof(href_getter) === 'function') { - href = href_getter.call(link); + var hrefGetter = ams.getFunctionByName(href); + if (typeof(hrefGetter) === 'function') { + href = hrefGetter.call(link); } if (typeof(href) === 'function') { // Javascript function call @@ -4965,7 +4984,7 @@ // Init page content ams.initContent(document); - if (ams.ajax_nav && nav.exists()) { + if (ams.ajaxNav && nav.exists()) { ams.skin.checkURL(); } ams.form.setFocus(document);