--- a/src/pyams_skin/resources/js/myams.js Wed Dec 12 21:16:29 2018 +0100
+++ b/src/pyams_skin/resources/js/myams.js Thu Dec 13 14:28:29 2018 +0100
@@ -465,6 +465,75 @@
})(jQuery, this);
+(function($, globals) {
+
+ var ams = globals.MyAMS;
+
+ /**
+ * MyAMS locale strings
+ */
+ ams.i18n = {
+
+ INFO: "Information",
+ WARNING: "!! WARNING !!",
+ ERROR: "ERROR: ",
+
+ LOADING: "Loading...",
+ PROGRESS: "Processing",
+
+ WAIT: "Please wait!",
+ FORM_SUBMITTED: "This form was already submitted...",
+ NO_SERVER_RESPONSE: "No response from server!",
+
+ ERROR_OCCURED: "An error occured!",
+ ERRORS_OCCURED: "Some errors occured!",
+
+ BAD_LOGIN_TITLE: "Bad login!",
+ BAD_LOGIN_MESSAGE: "Your anthentication credentials didn't allow you to open a session; " +
+ "please check your credentials or contact administrator.",
+
+ CONFIRM: "Confirm",
+ CONFIRM_REMOVE: "Removing this content can't be undone. Do you confirm?",
+
+ CLEAR_STORAGE_TITLE: "Clear Local Storage",
+ CLEAR_STORAGE_CONTENT: "Would you like to RESET all your saved widgets and clear LocalStorage?",
+
+ BTN_OK: "OK",
+ BTN_CANCEL: "Cancel",
+ BTN_OK_CANCEL: "[OK][Cancel]",
+ BTN_YES: "Yes",
+ BTN_NO: "No",
+ BTN_YES_NO: "[Yes][No]",
+
+ CLIPBOARD_COPY: "Copy to clipboard with Ctrl+C, and Enter",
+ CLIPBOARD_CHARACTER_COPY_OK: "Character copied to clipboard",
+ CLIPBOARD_TEXT_COPY_OK: "Text copied to clipboard",
+
+ FORM_CHANGED_WARNING: "Some changes were not saved. These updates will be lost if you leave this page.",
+ DELETE_WARNING: "This change can't be undone. Are you sure that you want to delete this element?",
+ NO_UPDATE: "No changes were applied.",
+ DATA_UPDATED: "Data successfully updated.",
+
+ HOME: "Home",
+ LOGOUT: "Logout?",
+ LOGOUT_COMMENT: "You can improve your security further after logging out by closing this opened browser",
+
+ SELECT2_PLURAL: 's',
+ SELECT2_MATCH: "One result is available, press enter to select it.",
+ SELECT2_MATCHES: " results are available, use up and down arrow keys to navigate.",
+ SELECT2_NOMATCHES: "No matches found",
+ SELECT2_SEARCHING: "Searching...",
+ SELECT2_LOADMORE: "Loading more results...",
+ SELECT2_INPUT_TOOSHORT: "Please enter {0} more character{1}",
+ SELECT2_INPUT_TOOLONG: "Please delete {0} character{1}",
+ SELECT2_SELECTION_TOOBIG: "You can only select {0} item{1}",
+ SELECT2_FREETAG_PREFIX: "Free text: ",
+
+ DT_COLUMNS: "Columns"
+ };
+
+})(jQuery, this);
+
/**
* MyAMS UTF-8 features
*/
@@ -581,7 +650,7 @@
var invokedOn = $(this).data("invokedOn");
var selectedMenu = $(e.target);
settings.menuSelected.call(this, invokedOn, selectedMenu);
- ams.event.stop(e);
+ ams.event && ams.event.stop(e);
});
return false;
});
@@ -817,14 +886,13 @@
}
}
if (copied) {
- ams.skin.smallBox('success',
- {
- title: text.length > 1
- ? ams.i18n.CLIPBOARD_TEXT_COPY_OK
- : ams.i18n.CLIPBOARD_CHARACTER_COPY_OK,
- icon: 'fa fa-fw fa-info-circle font-xs align-top margin-top-10',
- timeout: 3000
- });
+ ams.skin && ams.skin.smallBox('success', {
+ title: text.length > 1
+ ? ams.i18n.CLIPBOARD_TEXT_COPY_OK
+ : ams.i18n.CLIPBOARD_CHARACTER_COPY_OK,
+ icon: 'fa fa-fw fa-info-circle font-xs align-top margin-top-10',
+ timeout: 3000
+ });
} else if (globals.prompt) {
globals.prompt(ams.i18n.CLIPBOARD_COPY, text);
}
@@ -865,22 +933,26 @@
if (response && response.statusText && response.statusText.toUpperCase() === 'OK') {
return;
}
- response = ams.ajax.getResponse(response);
- if (response.contentType === 'json') {
- ams.ajax.handleJSON(response.data);
+ response = ams.ajax && ams.ajax.getResponse(response);
+ if (response) {
+ if (response.contentType === 'json') {
+ ams.ajax.handleJSON(response.data);
+ } else {
+ var title = error || event.statusText || event.type;
+ var message = response.responseText;
+ ams.skin && ams.skin.messageBox('error', {
+ title: ams.i18n.ERROR_OCCURED,
+ content: '<h4>' + title + '</h4><p>' + (message || '') + '</p>',
+ icon: 'fa fa-warning animated shake',
+ timeout: 10000
+ });
+ }
+ if (console) {
+ console.error && console.error(event);
+ console.debug && console.debug(response);
+ }
} else {
- var title = error || event.statusText || event.type;
- var message = response.responseText;
- ams.skin.messageBox('error', {
- title: ams.i18n.ERROR_OCCURED,
- content: '<h4>' + title + '</h4><p>' + (message || '') + '</p>',
- icon: 'fa fa-warning animated shake',
- timeout: 10000
- });
- }
- if (console) {
- console.error && console.error(event);
- console.debug && console.debug(response);
+ console.error && console.error("Missing MyAMS AJAX module!")
}
},
@@ -891,20 +963,24 @@
if (!error) {
return;
}
- var response = ams.ajax.getResponse(request);
- if (response.contentType === 'json') {
- ams.ajax.handleJSON(response.data);
+ var response = ams.ajax && ams.ajax.getResponse(request);
+ if (response) {
+ if (response.contentType === 'json') {
+ ams.ajax.handleJSON(response.data);
+ } else {
+ ams.skin.messageBox('error', {
+ title: ams.i18n.ERRORS_OCCURED,
+ content: '<h4>' + status + '</h4><p>' + error + '</p>',
+ icon: "fa fa-warning animated shake",
+ timeout: 10000
+ });
+ }
+ if (console) {
+ console.error && console.error(error);
+ console.debug && console.debug(request);
+ }
} else {
- ams.skin.messageBox('error', {
- title: ams.i18n.ERRORS_OCCURED,
- content: '<h4>' + status + '</h4><p>' + error + '</p>',
- icon: "fa fa-warning animated shake",
- timeout: 10000
- });
- }
- if (console) {
- console.error && console.error(error);
- console.debug && console.debug(request);
+ console.error && console.error("Missing MyAMS AJAX module!")
}
}
};
@@ -1160,14 +1236,14 @@
}
break;
case 'error':
- ams.form.showErrors(form, result);
+ ams.form && ams.form.showErrors(form, result);
break;
case 'info':
case 'success':
if (form !== undefined) {
- ams.form.resetChanged(form);
+ ams.form && ams.form.resetChanged(form);
if (result.close_form !== false) {
- ams.dialog.close(form);
+ ams.dialog && ams.dialog.close(form);
}
}
break;
@@ -1178,20 +1254,20 @@
case 'callback':
case 'callbacks':
if (form !== undefined) {
- ams.form.resetChanged(form);
+ ams.form && ams.form.resetChanged(form);
if (result.close_form !== false) {
- ams.dialog.close(form);
+ ams.dialog && ams.dialog.close(form);
}
}
break;
case 'modal':
- ams.dialog.open(result.location);
+ ams.dialog && ams.dialog.open(result.location);
break;
case 'reload':
if (form !== undefined) {
- ams.form.resetChanged(form);
+ ams.form && ams.form.resetChanged(form);
if (result.close_form !== false) {
- ams.dialog.close(form);
+ ams.dialog && ams.dialog.close(form);
}
}
url = result.location || window.location.hash;
@@ -1199,7 +1275,7 @@
url = url.substr(1);
}
var loadTarget = $(result.target || target || '#content');
- ams.skin.loadURL(url, loadTarget, {
+ ams.skin && ams.skin.loadURL(url, loadTarget, {
preLoadCallback: ams.getFunctionByName(result.pre_reload) || function() {
$('[data-ams-pre-reload]', loadTarget).each(function() {
ams.executeFunctionByName($(this).data('ams-pre-reload'));
@@ -1216,9 +1292,9 @@
break;
case 'redirect':
if (form !== undefined) {
- ams.form.resetChanged(form);
+ ams.form && ams.form.resetChanged(form);
if (result.close_form === true) {
- ams.dialog.close(form);
+ ams.dialog && ams.dialog.close(form);
}
}
url = result.location || window.location.href;
@@ -1251,7 +1327,7 @@
container.text(content.text);
} else {
container.html(content.html);
- ams.initContent(container);
+ ams.initContent && ams.initContent(container);
}
if (!content.keep_hidden) {
container.removeClass('hidden');
@@ -1266,7 +1342,7 @@
container.text(content.text);
} else {
container.html(content.html);
- ams.initContent(container);
+ ams.initContent && ams.initContent(container);
}
if (!content.keep_hidden) {
container.removeClass('hidden');
@@ -1279,32 +1355,32 @@
message = result.message;
if (typeof(message) === 'string') {
if ((status === 'info') || (status === 'success')) {
- ams.skin.smallBox(status, {
- title: message,
- icon: 'fa fa-fw fa-info-circle font-xs align-top margin-top-10',
- timeout: 3000
- });
+ ams.skin && ams.skin.smallBox(status, {
+ title: message,
+ icon: 'fa fa-fw fa-info-circle font-xs align-top margin-top-10',
+ timeout: 3000
+ });
} else {
- ams.skin.alert($(form || '#content'), status, message);
+ ams.skin && ams.skin.alert($(form || '#content'), status, message);
}
} else {
- ams.skin.alert($(message.target || target || form || '#content'),
- message.status || 'success',
- message.header,
- message.body,
- message.subtitle);
+ ams.skin && ams.skin.alert($(message.target || target || form || '#content'),
+ message.status || 'success',
+ message.header,
+ message.body,
+ message.subtitle);
}
}
if (result.smallbox) {
message = result.smallbox;
if (typeof(message) === 'string') {
- ams.skin.smallBox(result.smallbox_status || status, {
+ ams.skin && ams.skin.smallBox(result.smallbox_status || status, {
title: result.smallbox,
icon: result.smallbox_icon || 'fa fa-fw fa-info-circle font-xs align-top margin-top-10',
timeout: result.smallbox_timeout || 3000
});
} else {
- ams.skin.smallBox(message.status || status, {
+ ams.skin && ams.skin.smallBox(message.status || status, {
title: message.message,
icon: message.icon || 'fa fa-fw fa-info-circle font-xs align-top margin-top-10',
timeout: message.timeout || 3000
@@ -1314,23 +1390,23 @@
if (result.messagebox) {
message = result.messagebox;
if (typeof(message) === 'string') {
- ams.skin.messageBox('info', {
- title: ams.i18n.ERROR_OCCURED,
- content: message,
- timeout: 10000
- });
+ ams.skin && ams.skin.messageBox('info', {
+ title: ams.i18n.ERROR_OCCURED,
+ content: message,
+ timeout: 10000
+ });
} else {
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(messageStatus, {
- title: message.title || ams.i18n.ERROR_OCCURED,
- content: message.content,
- icon: message.icon,
- number: message.number,
- timeout: message.timeout === null ? undefined : (message.timeout || 10000)
- });
+ ams.skin && ams.skin.messageBox(messageStatus, {
+ title: message.title || ams.i18n.ERROR_OCCURED,
+ content: message.content,
+ icon: message.icon,
+ number: message.number,
+ timeout: message.timeout === null ? undefined : (message.timeout || 10000)
+ });
}
}
if (result.event) {
@@ -1401,51 +1477,50 @@
* - @callback: name of a callback which will be called on server response
*/
query: function(query, method, options, callback) {
- ams.ajax.check($.jsonRPC,
- ams.baseURL + 'ext/jquery-jsonrpc' + ams.devext + '.js',
- function() {
- if (typeof(options) === 'function') {
- callback = options;
- options = {};
- }
- else if (!options) {
- options = {};
- }
- if (callback === 'undefined') {
- callback = options.callback;
- }
- if (typeof(callback) === 'string') {
- callback = ams.getFunctionByName(callback);
- }
- delete options.callback;
-
- var params = {};
- if (typeof(query) === 'string') {
- params.query = query;
- } else if (typeof(query) === 'object') {
- $.extend(params, query);
- }
- $.extend(params, options);
-
- var result;
- var defaults = {
- id: new Date().getTime(),
- params: params,
- success: callback || function(data) {
- result = data;
- },
- error: ams.error.show
- };
- var settings = $.extend({}, defaults, options);
- $.jsonRPC.withOptions({
- endPoint: ams.jsonrpc.getAddr(options.url),
- namespace: options.namespace,
- cache: false
- }, function() {
- $.jsonRPC.request(method, settings);
- });
- return result;
- });
+ ams.ajax && ams.ajax.check($.jsonRPC,
+ ams.baseURL + 'ext/jquery-jsonrpc' + ams.devext + '.js',
+ function() {
+ if (typeof (options) === 'function') {
+ callback = options;
+ options = {};
+ } else if (!options) {
+ options = {};
+ }
+ if (callback === 'undefined') {
+ callback = options.callback;
+ }
+ if (typeof (callback) === 'string') {
+ callback = ams.getFunctionByName(callback);
+ }
+ delete options.callback;
+
+ var params = {};
+ if (typeof (query) === 'string') {
+ params.query = query;
+ } else if (typeof (query) === 'object') {
+ $.extend(params, query);
+ }
+ $.extend(params, options);
+
+ var result;
+ var defaults = {
+ id: new Date().getTime(),
+ params: params,
+ success: callback || function(data) {
+ result = data;
+ },
+ error: ams.error && ams.error.show
+ };
+ var settings = $.extend({}, defaults, options);
+ $.jsonRPC.withOptions({
+ endPoint: ams.jsonrpc.getAddr(options.url),
+ namespace: options.namespace,
+ cache: false
+ }, function() {
+ $.jsonRPC.request(method, settings);
+ });
+ return result;
+ });
},
/**
@@ -1457,43 +1532,42 @@
* - @callback: name of a callback which will be called on server response
*/
post: function(method, data, options, callback) {
- ams.ajax.check($.jsonRPC,
- ams.baseURL + 'ext/jquery-jsonrpc' + ams.devext + '.js',
- function() {
- if (typeof(options) === 'function') {
- callback = options;
- options = {};
- }
- else if (!options) {
- options = {};
- }
- if (typeof(callback) === 'undefined') {
- callback = options.callback;
- }
- if (typeof(callback) === 'string') {
- callback = ams.getFunctionByName(callback);
- }
- delete options.callback;
-
- var result;
- var defaults = {
- id: new Date().getTime(),
- params: data,
- success: callback || function(data) {
- result = data;
- },
- error: ams.error.show
- };
- var settings = $.extend({}, defaults, options);
- $.jsonRPC.withOptions({
- endPoint: ams.jsonrpc.getAddr(options.url),
- namespace: options.namespace,
- cache: false
- }, function() {
- $.jsonRPC.request(method, settings);
- });
- return result;
- });
+ ams.ajax && ams.ajax.check($.jsonRPC,
+ ams.baseURL + 'ext/jquery-jsonrpc' + ams.devext + '.js',
+ function() {
+ if (typeof (options) === 'function') {
+ callback = options;
+ options = {};
+ } else if (!options) {
+ options = {};
+ }
+ if (typeof (callback) === 'undefined') {
+ callback = options.callback;
+ }
+ if (typeof (callback) === 'string') {
+ callback = ams.getFunctionByName(callback);
+ }
+ delete options.callback;
+
+ var result;
+ var defaults = {
+ id: new Date().getTime(),
+ params: data,
+ success: callback || function(data) {
+ result = data;
+ },
+ error: ams.error && ams.error.show
+ };
+ var settings = $.extend({}, defaults, options);
+ $.jsonRPC.withOptions({
+ endPoint: ams.jsonrpc.getAddr(options.url),
+ namespace: options.namespace,
+ cache: false
+ }, function() {
+ $.jsonRPC.request(method, settings);
+ });
+ return result;
+ });
}
};
@@ -1527,38 +1601,37 @@
* - @callback: name of a callback which will be called on server response
*/
post: function(url, method, data, options, callback) {
- ams.ajax.check($.xmlrpc,
- ams.baseURL + 'ext/jquery-xmlrpc' + ams.devext + '.js',
- function() {
- if (typeof(options) === 'function') {
- callback = options;
- options = {};
- }
- else if (!options) {
- options = {};
- }
- if (typeof(callback) === 'undefined') {
- callback = options.callback;
- }
- if (typeof(callback) === 'string') {
- callback = ams.getFunctionByName(callback);
- }
- delete options.callback;
-
- var result;
- var defaults = {
- url: ams.xmlrpc.getAddr(url),
- methodName: method,
- params: data,
- success: callback || function(response /*, status, xhr*/) {
- result = response;
- },
- error: ams.error.show
- };
- var settings = $.extend({}, defaults, options);
- $.xmlrpc(settings);
- return result;
- });
+ ams.ajax && ams.ajax.check($.xmlrpc,
+ ams.baseURL + 'ext/jquery-xmlrpc' + ams.devext + '.js',
+ function() {
+ if (typeof (options) === 'function') {
+ callback = options;
+ options = {};
+ } else if (!options) {
+ options = {};
+ }
+ if (typeof (callback) === 'undefined') {
+ callback = options.callback;
+ }
+ if (typeof (callback) === 'string') {
+ callback = ams.getFunctionByName(callback);
+ }
+ delete options.callback;
+
+ var result;
+ var defaults = {
+ url: ams.xmlrpc.getAddr(url),
+ methodName: method,
+ params: data,
+ success: callback || function(response /*, status, xhr*/) {
+ result = response;
+ },
+ error: ams.error && ams.error.show
+ };
+ var settings = $.extend({}, defaults, options);
+ $.xmlrpc(settings);
+ return result;
+ });
}
};
@@ -1670,7 +1743,7 @@
cancelCallback.call(element);
}
} else {
- ams.skin.bigBox({
+ ams.skin && ams.skin.bigBox({
title: ams.i18n.WARNING,
content: '<i class="text-danger fa fa-2x fa-bell shake animated"></i> ' + ams.i18n.FORM_CHANGED_WARNING,
buttons: ams.i18n.BTN_OK_CANCEL
@@ -1717,7 +1790,7 @@
// Prevent multiple submits of the same form
if (form.data('submitted')) {
if (!form.data('ams-form-hide-submitted')) {
- ams.skin.messageBox('warning', {
+ ams.skin && ams.skin.messageBox('warning', {
title: ams.i18n.WAIT,
content: ams.i18n.FORM_SUBMITTED,
icon: 'fa fa-save shake animated',
@@ -1727,7 +1800,7 @@
return false;
}
// Check submit validators
- if (!ams.form._checkSubmitValidators(form)) {
+ if (ams.form && !ams.form._checkSubmitValidators(form)) {
return false;
}
// Remove remaining status messages
@@ -1739,283 +1812,283 @@
button.data('ams-progress-content', button.html());
button.button('loading');
}
- ams.ajax.check($.fn.ajaxSubmit,
- ams.baseURL + 'ext/jquery-form-3.49' + ams.devext + '.js',
- function() {
-
- function _submitAjaxForm(form, options) {
-
- var button,
- buttonData,
- buttonTarget;
- var data = form.data();
- 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) {
-
- var interval;
-
- function _clearProgressStatus() {
- clearInterval(interval);
- ams.form.resetAfterSubmit(form, button);
- button.html(button.data('ams-progress-content'));
- ams.executeFunctionByName(progressEndCallback, form, button);
- ams.form.resetChanged(form);
- }
-
- function _getProgressStatus() {
- ams.ajax.post(handler,
- {progress_id: progress_id},
- {error: _clearProgressStatus},
- ams.getFunctionByName(progressCallback) || function(result, status) {
- if (status === 'success') {
- if (result.status === 'running') {
- if (result.message) {
- button.text(result.message);
- } else {
- var text = button.data('ams-progress-text') || ams.i18n.PROGRESS;
- if (result.current) {
- text += ': ' + result.current + '/ ' + (result.length || 100);
- } else {
- text += '...';
- }
- button.text(text);
- }
- } else if (result.status === 'finished') {
- _clearProgressStatus();
- }
- } else {
- _clearProgressStatus();
- }
- });
- }
-
- button.button('loading');
- interval = setInterval(_getProgressStatus, progressInterval);
- }
-
- // Initialize form data
- if (submitOptions) {
- formDataCallback = submitOptions.formDataInitCallback;
- }
- if (formDataCallback) {
- delete submitOptions.formDataInitCallback;
- } else {
- formDataCallback = data.amsFormDataInitCallback;
- }
- if (formDataCallback) {
- var veto = {};
- formData = ams.executeFunctionByName(formDataCallback, form, veto);
- if (veto.veto) {
- button = form.data('ams-submit-button');
- if (button) {
- button.button('reset');
- }
- ams.form.finalizeSubmitFooter.call(form);
- return false;
- }
- } else {
- formData = data.amsFormData || {};
- }
-
- // Check submit button for custom action handler and target
- button = $(form.data('ams-submit-button'));
- if (button && button.exists()) {
- buttonData = button.data();
- buttonTarget = buttonData.amsFormSubmitTarget;
- } else {
- buttonData = {};
- }
-
- // Check action URL
- var url;
- var formHandler = handler || buttonData.amsFormHandler || data.amsFormHandler || '';
- if (formHandler.startsWith(window.location.protocol)) {
- url = formHandler;
- } else {
- var action = buttonData.amsFormAction || form.attr('action').replace(/#/, '');
- if (action.startsWith(window.location.protocol)) {
- url = action;
- } else {
- url = ams.ajax.getAddr() + action;
- }
- url += formHandler;
- }
- 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 (submitOptions && submitOptions.initSubmitTarget) {
- ams.executeFunctionByName(submitOptions.initSubmitTarget, form);
- } else {
- if (data.amsFormInitSubmitTarget) {
- 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);
- }
- }
-
- // Complete form data
- if (submitOptions) {
- formData = $.extend({}, formData, submitOptions.form_data);
- }
-
- // Check progress handler
- var hasUpload;
- if (progressHandler) {
- formData.progress_id = ams.generateUUID();
- } else {
- // Check progress meter via Apache progress module
- hasUpload = typeof(options.uuid) !== 'undefined';
- if (hasUpload) {
- if (url.indexOf('X-Progress-ID') < 0) {
- url += "?X-Progress-ID=" + options.uuid;
- }
- delete options.uuid;
- }
- }
-
- // Initialize default AJAX settings
- var defaults = {
- url: url,
- type: 'post',
- cache: false,
- data: formData,
- dataType: data.amsFormDatatype,
- beforeSerialize: function(/*form, options*/) {
- if (typeof(globals.tinyMCE) !== 'undefined') {
- globals.tinyMCE.triggerSave();
- }
- },
- beforeSubmit: function(data, form /*, options*/) {
- form.data('submitted', true);
- },
- error: function(request, status, error, form) {
- if (target) {
- ams.executeFunctionByName(data.amsFormSubmitError || 'MyAMS.form.finalizeSubmitOnError', form, target);
- }
- ams.form.resetAfterSubmit(form);
- },
- iframe: hasUpload
- };
-
- // Initialize IFrame for custom download target
- var downloadTarget = (submitOptions && submitOptions.downloadTarget) || data.amsFormDownloadTarget;
- if (downloadTarget) {
- var iframe = $('iframe[name="' + downloadTarget + '"]');
- if (!iframe.exists()) {
- iframe = $('<iframe></iframe>').hide()
- .attr('name', downloadTarget)
- .appendTo($('body'));
- }
- defaults = $.extend({}, defaults, {
- iframe: true,
- iframeTarget: iframe,
- success: function(result, status, request, form) {
- var modal = $(form).parents('.modal-dialog');
- if (modal.exists()) {
- ams.dialog.close(form);
- } else {
- var callback;
- var button = form.data('ams-submit-button');
- if (button) {
- callback = button.data('ams-form-submit-callback');
- }
- if (!callback) {
- callback = ams.getFunctionByName(data.amsFormSubmitCallback) || ams.form._submitCallback;
- }
- try {
- callback.call(form, result, status, request, form);
- } finally {
- ams.form.resetAfterSubmit(form);
- ams.form.resetChanged(form);
- }
- }
- }
- });
- } else {
- defaults = $.extend({}, defaults, {
- error: function(request, status, error, form) {
- if (target) {
- ams.executeFunctionByName(data.amsFormSubmitError || 'MyAMS.form.finalizeSubmitOnError', form, target);
- }
- ams.form.resetAfterSubmit(form);
- },
- success: function(result, status, request, form) {
- var callback;
- var button = form.data('ams-submit-button');
- if (button) {
- callback = button.data('ams-form-submit-callback');
- }
- if (!callback) {
- callback = ams.getFunctionByName(data.amsFormSubmitCallback) || ams.form._submitCallback;
- }
- try {
- callback.call(form, result, status, request, form);
- } finally {
- ams.form.resetAfterSubmit(form);
- ams.form.resetChanged(form);
- }
- },
- iframe: hasUpload
- });
- }
- var settings = $.extend({}, defaults, options, formOptions, submitOptions);
-
- // Initialize progress handler
- 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 (downloadTarget) {
- var modal = $(form).parents('.modal-dialog');
- var keepModal = modal.exists() && button.exists() && button.data('ams-keep-modal');
- if (modal.exists() && (keepModal !== true)) {
- ams.dialog.close(form);
- } else {
- if (!progressHandler) {
- setTimeout(function () {
- ams.form.resetAfterSubmit(form, button);
- ams.form.resetChanged(form);
- }, button.data('ams-form-reset-timeout') || 2000);
- }
- }
- }
- }
-
- var hasUpload = (form.data('ams-form-ignore-uploads') !== true) &&
- ($('INPUT[type="file"]', form).length > 0);
- if (hasUpload) {
- // JQuery-progressbar plug-in must be loaded synchronously!!
- // Otherwise, hidden input fields created by jquery-validate plug-in
- // and matching named buttons will be deleted (on first form submit)
- // before JQuery-form plug-in can get them when submitting the form...
- ams.ajax.check($.progressBar,
- ams.baseURL + 'ext/jquery-progressbar' + ams.devext + '.js');
- var settings = $.extend({}, {
- uuid: $.progressBar.submit(form)
- });
- _submitAjaxForm(form, settings);
- } else {
- _submitAjaxForm(form, {});
- }
- });
+ ams.ajax && ams.ajax.check($.fn.ajaxSubmit,
+ ams.baseURL + 'ext/jquery-form-3.49' + ams.devext + '.js',
+ function() {
+
+ function _submitAjaxForm(form, options) {
+
+ var button,
+ buttonData,
+ buttonTarget;
+ var data = form.data();
+ 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) {
+
+ var interval;
+
+ function _clearProgressStatus() {
+ clearInterval(interval);
+ ams.form.resetAfterSubmit(form, button);
+ button.html(button.data('ams-progress-content'));
+ ams.executeFunctionByName(progressEndCallback, form, button);
+ ams.form.resetChanged(form);
+ }
+
+ function _getProgressStatus() {
+ ams.ajax && ams.ajax.post(handler,
+ {progress_id: progress_id},
+ {error: _clearProgressStatus},
+ ams.getFunctionByName(progressCallback) || function(result, status) {
+ if (status === 'success') {
+ if (result.status === 'running') {
+ if (result.message) {
+ button.text(result.message);
+ } else {
+ var text = button.data('ams-progress-text') || ams.i18n.PROGRESS;
+ if (result.current) {
+ text += ': ' + result.current + '/ ' + (result.length || 100);
+ } else {
+ text += '...';
+ }
+ button.text(text);
+ }
+ } else if (result.status === 'finished') {
+ _clearProgressStatus();
+ }
+ } else {
+ _clearProgressStatus();
+ }
+ });
+ }
+
+ button.button('loading');
+ interval = setInterval(_getProgressStatus, progressInterval);
+ }
+
+ // Initialize form data
+ if (submitOptions) {
+ formDataCallback = submitOptions.formDataInitCallback;
+ }
+ if (formDataCallback) {
+ delete submitOptions.formDataInitCallback;
+ } else {
+ formDataCallback = data.amsFormDataInitCallback;
+ }
+ if (formDataCallback) {
+ var veto = {};
+ formData = ams.executeFunctionByName(formDataCallback, form, veto);
+ if (veto.veto) {
+ button = form.data('ams-submit-button');
+ if (button) {
+ button.button('reset');
+ }
+ ams.form.finalizeSubmitFooter.call(form);
+ return false;
+ }
+ } else {
+ formData = data.amsFormData || {};
+ }
+
+ // Check submit button for custom action handler and target
+ button = $(form.data('ams-submit-button'));
+ if (button && button.exists()) {
+ buttonData = button.data();
+ buttonTarget = buttonData.amsFormSubmitTarget;
+ } else {
+ buttonData = {};
+ }
+
+ // Check action URL
+ var url;
+ var formHandler = handler || buttonData.amsFormHandler || data.amsFormHandler || '';
+ if (formHandler.startsWith(window.location.protocol)) {
+ url = formHandler;
+ } else {
+ var action = buttonData.amsFormAction || form.attr('action').replace(/#/, '');
+ if (action.startsWith(window.location.protocol)) {
+ url = action;
+ } else {
+ url = ams.ajax && (ams.ajax.getAddr() + action);
+ }
+ url += formHandler;
+ }
+ 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 (submitOptions && submitOptions.initSubmitTarget) {
+ ams.executeFunctionByName(submitOptions.initSubmitTarget, form);
+ } else {
+ if (data.amsFormInitSubmitTarget) {
+ 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);
+ }
+ }
+
+ // Complete form data
+ if (submitOptions) {
+ formData = $.extend({}, formData, submitOptions.form_data);
+ }
+
+ // Check progress handler
+ var hasUpload;
+ if (progressHandler) {
+ formData.progress_id = ams.generateUUID();
+ } else {
+ // Check progress meter via Apache progress module
+ hasUpload = typeof (options.uuid) !== 'undefined';
+ if (hasUpload) {
+ if (url.indexOf('X-Progress-ID') < 0) {
+ url += "?X-Progress-ID=" + options.uuid;
+ }
+ delete options.uuid;
+ }
+ }
+
+ // Initialize default AJAX settings
+ var defaults = {
+ url: url,
+ type: 'post',
+ cache: false,
+ data: formData,
+ dataType: data.amsFormDatatype,
+ beforeSerialize: function(/*form, options*/) {
+ if (typeof (globals.tinyMCE) !== 'undefined') {
+ globals.tinyMCE.triggerSave();
+ }
+ },
+ beforeSubmit: function(data, form /*, options*/) {
+ form.data('submitted', true);
+ },
+ error: function(request, status, error, form) {
+ if (target) {
+ ams.executeFunctionByName(data.amsFormSubmitError || 'MyAMS.form.finalizeSubmitOnError', form, target);
+ }
+ ams.form.resetAfterSubmit(form);
+ },
+ iframe: hasUpload
+ };
+
+ // Initialize IFrame for custom download target
+ var downloadTarget = (submitOptions && submitOptions.downloadTarget) || data.amsFormDownloadTarget;
+ if (downloadTarget) {
+ var iframe = $('iframe[name="' + downloadTarget + '"]');
+ if (!iframe.exists()) {
+ iframe = $('<iframe></iframe>').hide()
+ .attr('name', downloadTarget)
+ .appendTo($('body'));
+ }
+ defaults = $.extend({}, defaults, {
+ iframe: true,
+ iframeTarget: iframe,
+ success: function(result, status, request, form) {
+ var modal = $(form).parents('.modal-dialog');
+ if (modal.exists()) {
+ ams.dialog && ams.dialog.close(form);
+ } else {
+ var callback;
+ var button = form.data('ams-submit-button');
+ if (button) {
+ callback = button.data('ams-form-submit-callback');
+ }
+ if (!callback) {
+ callback = ams.getFunctionByName(data.amsFormSubmitCallback) || ams.form._submitCallback;
+ }
+ try {
+ callback.call(form, result, status, request, form);
+ } finally {
+ ams.form.resetAfterSubmit(form);
+ ams.form.resetChanged(form);
+ }
+ }
+ }
+ });
+ } else {
+ defaults = $.extend({}, defaults, {
+ error: function(request, status, error, form) {
+ if (target) {
+ ams.executeFunctionByName(data.amsFormSubmitError || 'MyAMS.form.finalizeSubmitOnError', form, target);
+ }
+ ams.form.resetAfterSubmit(form);
+ },
+ success: function(result, status, request, form) {
+ var callback;
+ var button = form.data('ams-submit-button');
+ if (button) {
+ callback = button.data('ams-form-submit-callback');
+ }
+ if (!callback) {
+ callback = ams.getFunctionByName(data.amsFormSubmitCallback) || ams.form._submitCallback;
+ }
+ try {
+ callback.call(form, result, status, request, form);
+ } finally {
+ ams.form.resetAfterSubmit(form);
+ ams.form.resetChanged(form);
+ }
+ },
+ iframe: hasUpload
+ });
+ }
+ var settings = $.extend({}, defaults, options, formOptions, submitOptions);
+
+ // Initialize progress handler
+ 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 (downloadTarget) {
+ var modal = $(form).parents('.modal-dialog');
+ var keepModal = modal.exists() && button.exists() && button.data('ams-keep-modal');
+ if (modal.exists() && (keepModal !== true)) {
+ ams.dialog && ams.dialog.close(form);
+ } else {
+ if (!progressHandler) {
+ setTimeout(function() {
+ ams.form.resetAfterSubmit(form, button);
+ ams.form.resetChanged(form);
+ }, button.data('ams-form-reset-timeout') || 2000);
+ }
+ }
+ }
+ }
+
+ var hasUpload = (form.data('ams-form-ignore-uploads') !== true) &&
+ ($('INPUT[type="file"]', form).length > 0);
+ if (hasUpload) {
+ // JQuery-progressbar plug-in must be loaded synchronously!!
+ // Otherwise, hidden input fields created by jquery-validate plug-in
+ // and matching named buttons will be deleted (on first form submit)
+ // before JQuery-form plug-in can get them when submitting the form...
+ ams.ajax && ams.ajax.check($.progressBar,
+ ams.baseURL + 'ext/jquery-progressbar' + ams.devext + '.js');
+ var settings = $.extend({}, {
+ uuid: $.progressBar.submit(form)
+ });
+ _submitAjaxForm(form, settings);
+ } else {
+ _submitAjaxForm(form, {});
+ }
+ });
return false;
},
@@ -2135,9 +2208,11 @@
if (data.amsFormDatatype) {
dataType = data.amsFormDatatype;
} else {
- var response = ams.ajax.getResponse(request);
- dataType = response.contentType;
- result = response.data;
+ var response = ams.ajax && ams.ajax.getResponse(request);
+ if (response) {
+ dataType = response.contentType;
+ result = response.data;
+ }
}
var target;
@@ -2149,7 +2224,7 @@
switch (dataType) {
case 'json':
- ams.ajax.handleJSON(result, form, target);
+ ams.ajax && ams.ajax.handleJSON(result, form, target);
break;
case 'script':
break;
@@ -2162,7 +2237,7 @@
default:
ams.form.resetChanged(form);
if (button && (button.data('ams-keep-modal') !== true)) {
- ams.dialog.close(form);
+ ams.dialog && ams.dialog.close(form);
}
if (!target.exists()) {
target = $('body');
@@ -2173,7 +2248,7 @@
.html(result)
.delay(50)
.animate({opacity: '1.0'}, 300);
- ams.initContent(target);
+ ams.initContent && ams.initContent(target);
ams.form.setFocus(target);
}
var callback = request.getResponseHeader('X-AMS-Callback');
@@ -2230,7 +2305,7 @@
}
if (output.length > 0) {
var header = output.length === 1 ? ams.i18n.ERROR_OCCURED : ams.i18n.ERRORS_OCCURED;
- ams.skin.alert(form, 'danger', header, output);
+ ams.skin && ams.skin.alert(form, 'danger', header, output);
return false;
} else {
return result;
@@ -2253,10 +2328,10 @@
showErrors: function(form, errors) {
var header;
if (typeof(errors) === 'string') {
- ams.skin.alert(form, 'error', ams.i18n.ERROR_OCCURED, errors);
+ ams.skin && ams.skin.alert(form, 'error', ams.i18n.ERROR_OCCURED, errors);
} else if (errors instanceof Array) {
header = errors.length === 1 ? ams.i18n.ERROR_OCCURED : ams.i18n.ERRORS_OCCURED;
- ams.skin.alert(form, 'error', header, errors);
+ ams.skin && ams.skin.alert(form, 'error', header, errors);
} else {
$('.state-error', form).removeClass('state-error');
header = errors.error_header ||
@@ -2303,7 +2378,7 @@
}
}
}
- ams.skin.alert($('.form-group:first', form), errors.error_level || 'error', header, message, errors.error_message);
+ ams.skin && ams.skin.alert($('.form-group:first', form), errors.error_level || 'error', header, message, errors.error_message);
}
}
};
@@ -2381,106 +2456,106 @@
* Modal dialog opener
*/
open: function(source, options, callbacks) {
- ams.ajax.check($.fn.modalmanager,
- ams.baseURL + 'ext/bootstrap-modalmanager' + ams.devext + '.js',
- function() {
- ams.ajax.check($.fn.modal.defaults,
- ams.baseURL + 'ext/bootstrap-modal' + ams.devext + '.js',
- function(first_load) {
- if (first_load) {
- $(document).off('click.modal');
- $.fn.modal.defaults.spinner = $.fn.modalmanager.defaults.spinner =
- '<div class="loading-spinner" style="width: 200px; margin-left: -100px;">' +
- '<div class="progress progress-striped active">' +
- '<div class="progress-bar" style="width: 100%;"></div>' +
- '</div>' +
- '</div>';
- }
-
- var sourceData;
- var url;
- if (typeof(source) === 'string') {
- sourceData = {};
- url = source;
- } else {
- 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);
- }
- }
- if (!url) {
- return;
- }
- $('body').modalmanager('loading');
- if (url.indexOf('#') === 0) {
- // Inner hidden modal dialog
- $(url).modal('show');
- } else {
- // Remote URL modal dialog
- $.ajax({
- url: url,
- type: 'get',
- cache: sourceData.amsAllowCache === undefined ? false : sourceData.amsAllowCache,
- data: options,
- success: function(data, status, request) {
- $('body').modalmanager('removeLoading');
- 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;
- case 'script':
- break;
- case 'xml':
- break;
- case 'html':
- /* falls through */
- case 'text':
- /* falls through */
- default:
- var content = $(result);
- var dialog = $('.modal-dialog', content.wrap('<div></div>').parent());
- var dialogData = dialog.data() || {};
- var dataOptions = {
- backdrop: 'static',
- 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(dialogData.amsModalMaxHeight)
- };
- var settings = $.extend({}, dataOptions, dialogData.amsModalOptions);
- settings = ams.executeFunctionByName(dialogData.amsModalInitCallback, dialog, settings) || settings;
- if (callbacks) {
- if (callbacks.shown) {
- ams.dialog.registerShownCallback(callbacks.shown, content);
- }
- if (callbacks.hide) {
- ams.dialog.registerHideCallback(callbacks.hide, content);
- }
- }
- $('<div>').addClass('modal fade')
- .append(content)
- .modal(settings)
- .on('shown', ams.dialog.shown)
- .on('hidden', ams.dialog.hidden);
- ams.initContent(content);
- if (sourceData.amsLogEvent !== false) {
- ams.stats.logPageview(url);
- }
- }
- }
- });
- }
- });
- });
+ ams.ajax && ams.ajax.check($.fn.modalmanager,
+ ams.baseURL + 'ext/bootstrap-modalmanager' + ams.devext + '.js',
+ function() {
+ ams.ajax.check($.fn.modal.defaults,
+ ams.baseURL + 'ext/bootstrap-modal' + ams.devext + '.js',
+ function(first_load) {
+ if (first_load) {
+ $(document).off('click.modal');
+ $.fn.modal.defaults.spinner = $.fn.modalmanager.defaults.spinner =
+ '<div class="loading-spinner" style="width: 200px; margin-left: -100px;">' +
+ '<div class="progress progress-striped active">' +
+ '<div class="progress-bar" style="width: 100%;"></div>' +
+ '</div>' +
+ '</div>';
+ }
+
+ var sourceData;
+ var url;
+ if (typeof (source) === 'string') {
+ sourceData = {};
+ url = source;
+ } else {
+ 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);
+ }
+ }
+ if (!url) {
+ return;
+ }
+ $('body').modalmanager('loading');
+ if (url.indexOf('#') === 0) {
+ // Inner hidden modal dialog
+ $(url).modal('show');
+ } else {
+ // Remote URL modal dialog
+ $.ajax({
+ url: url,
+ type: 'get',
+ cache: sourceData.amsAllowCache === undefined ? false : sourceData.amsAllowCache,
+ data: options,
+ success: function(data, status, request) {
+ $('body').modalmanager('removeLoading');
+ 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;
+ case 'script':
+ break;
+ case 'xml':
+ break;
+ case 'html':
+ /* falls through */
+ case 'text':
+ /* falls through */
+ default:
+ var content = $(result);
+ var dialog = $('.modal-dialog', content.wrap('<div></div>').parent());
+ var dialogData = dialog.data() || {};
+ var dataOptions = {
+ backdrop: 'static',
+ 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(dialogData.amsModalMaxHeight)
+ };
+ var settings = $.extend({}, dataOptions, dialogData.amsModalOptions);
+ settings = ams.executeFunctionByName(dialogData.amsModalInitCallback, dialog, settings) || settings;
+ if (callbacks) {
+ if (callbacks.shown) {
+ ams.dialog.registerShownCallback(callbacks.shown, content);
+ }
+ if (callbacks.hide) {
+ ams.dialog.registerHideCallback(callbacks.hide, content);
+ }
+ }
+ $('<div>').addClass('modal fade')
+ .append(content)
+ .modal(settings)
+ .on('shown', ams.dialog.shown)
+ .on('hidden', ams.dialog.hidden);
+ ams.initContent && ams.initContent(content);
+ if (sourceData.amsLogEvent !== false) {
+ ams.stats && ams.stats.logPageview(url);
+ }
+ }
+ }
+ });
+ }
+ });
+ });
},
/**
@@ -2554,7 +2629,7 @@
}
}
- ams.form.setFocus(modal);
+ ams.form && ams.form.setFocus(modal);
},
/**
@@ -2580,7 +2655,7 @@
hidden: function(e) {
var modal = e.target;
// Call registered cleaning callbacks
- ams.skin.cleanContainer(modal);
+ ams.skin && ams.skin.cleanContainer(modal);
// Check for hidden callbacks defined via data API
$('[data-ams-hidden-callback]', modal).each(function() {
var callback = ams.getFunctionByName($(this).data('ams-hidden-callback'));
@@ -2673,7 +2748,7 @@
select2QueryUrlResultsCallback: function(data, page, context) {
switch (data.status) {
case 'error':
- ams.skin.messageBox('error', {
+ ams.skin && ams.skin.messageBox('error', {
title: ams.i18n.ERROR_OCCURED,
content: '<h4>' + data.error_message + '</h4>',
icon: "fa fa-warning animated shake",
@@ -2682,7 +2757,7 @@
break;
case 'modal':
$(this).data('select2').dropdown.hide();
- ams.dialog.open(data.location);
+ ams.dialog && ams.dialog.open(data.location);
break;
default:
return {
@@ -2703,7 +2778,7 @@
}
switch (result.status) {
case 'error':
- ams.skin.messageBox('error', {
+ ams.skin && ams.skin.messageBox('error', {
title: ams.i18n.ERROR_OCCURED,
content: '<h4>' + result.error_message + '</h4>',
icon: "fa fa-warning animated shake",
@@ -2712,7 +2787,7 @@
break;
case 'modal':
$(this).data('select2').dropdown.hide();
- ams.dialog.open(result.location);
+ ams.dialog && ams.dialog.open(result.location);
break;
default:
options.callback({
@@ -2737,7 +2812,7 @@
ams.getFunctionByName(data.amsSelect2HelperCallback) || function(result) {
if (result) {
target.html(result);
- ams.initContent(target);
+ ams.initContent && ams.initContent(target);
} else {
target.empty();
}
@@ -2748,17 +2823,17 @@
break;
case 'json-rpc':
target.html('<div class="text-center"><i class="fa fa-2x fa-gear fa-spin"></i></div>');
- ams.jsonrpc.post(data.amsSelect2HelperMethod,
- {value: source.val()},
- {url: data.amsSelect2HelperUrl},
- ams.getFunctionByName(data.amsSelect2HelperCallback) || function(result) {
- if (result.result) {
- target.html(result.result);
- ams.initContent(target);
- } else {
- target.empty();
- }
- });
+ ams.jsonrpc && ams.jsonrpc.post(data.amsSelect2HelperMethod,
+ {value: source.val()},
+ {url: data.amsSelect2HelperUrl},
+ ams.getFunctionByName(data.amsSelect2HelperCallback) || function(result) {
+ if (result.result) {
+ target.html(result.result);
+ ams.initContent && ams.initContent(target);
+ } else {
+ target.empty();
+ }
+ });
break;
default:
var callback = data.amsSelect2HelperCallback;
@@ -2775,13 +2850,13 @@
}
var menuData = menu.data();
if (menuData.toggle === 'modal') {
- ams.dialog.open(menu);
+ ams.dialog && ams.dialog.open(menu);
} else {
var href = menu.attr('href') || menuData.amsUrl;
if (!href || href.startsWith('javascript') || menu.attr('target')) {
return;
}
- ams.event.stop();
+ ams.event && ams.event.stop();
var hrefGetter = ams.getFunctionByName(href);
if (typeof(hrefGetter) === 'function') {
href = hrefGetter.call(menu, target);
@@ -2795,11 +2870,11 @@
href = href.replace(/\%23/, '#');
target = menu.data('ams-target');
if (target) {
- ams.form.confirmChangedForm(target, function () {
- ams.skin.loadURL(href, target, menu.data('ams-link-options'), menu.data('ams-link-callback'));
+ ams.form && ams.form.confirmChangedForm(target, function () {
+ ams.skin && ams.skin.loadURL(href, target, menu.data('ams-link-options'), menu.data('ams-link-callback'));
});
} else {
- ams.form.confirmChangedForm(function () {
+ ams.form && ams.form.confirmChangedForm(function () {
if (href.startsWith('#')) {
if (href !== location.hash) {
if (ams.root.hasClass('mobile-view-activated')) {
@@ -2869,6 +2944,8 @@
*/
(function($, globals) {
+ "use strict";
+
var ams = globals.MyAMS;
ams.plugins = {
@@ -2890,7 +2967,7 @@
var disabled = [];
$('[data-ams-plugins-disabled]', element).each(function() {
var plugins = $(this).data('ams-plugins-disabled').split(/\s+/);
- for (var index=0; index < plugins.length; index++) {
+ for (var index = 0; index < plugins.length; index++) {
disabled.push(plugins[index]);
}
});
@@ -2905,9 +2982,9 @@
var plugin = plugins[name];
plugin.css = plugin.css || new_plugin.css;
plugin.callbacks.push({
- callback: new_plugin.callback,
- context: new_plugin.context
- });
+ callback: new_plugin.callback,
+ context: new_plugin.context
+ });
if (new_plugin.register) {
plugin.register = true;
}
@@ -2935,7 +3012,7 @@
var source = $(this);
var amsPlugins = source.data('ams-plugins');
- if (typeof(amsPlugins) === 'string') {
+ if (typeof (amsPlugins) === 'string') {
var names = source.data('ams-plugins').split(/\s+/);
for (var index = 0; index < names.length; index++) {
name = names[index];
@@ -2967,7 +3044,7 @@
var callbacks = plugin.callbacks,
callback;
if (callbacks && callbacks.length) {
- for (index=0; index < callbacks.length; index++) {
+ for (index = 0; index < callbacks.length; index++) {
callback = callbacks[index];
callback.callback = ams.getFunctionByName(callback.callback);
if (plugin.register !== false) {
@@ -2987,7 +3064,7 @@
// If running in async mode, newly registered plug-ins are run
// before callback is called so we call plug-in manually
if ((reload !== true) && callbacks && callbacks.length && (plugin.async !== false)) {
- for (index=0; index < callbacks.length; index++) {
+ for (index = 0; index < callbacks.length; index++) {
callback = callbacks[index];
ams.executeFunctionByName(callback.callback, element, callback.context);
}
@@ -2998,7 +3075,7 @@
// Update context for an already loaded plug-in
var enabled = ams.plugins.enabled[name];
// Clean all plug-in contexts
- for (index=0; index < enabled.length; index++) {
+ for (index = 0; index < enabled.length; index++) {
var callback = enabled[index];
if (callback && callback.context && !ams.isInDOM(callback.context)) {
enabled[index] = null;
@@ -3031,14 +3108,14 @@
}
var callbacks = ams.plugins.enabled[index];
if (callbacks) {
- switch (typeof(callbacks)) {
+ switch (typeof (callbacks)) {
case 'function':
callbacks(element);
break;
default:
for (var cbIndex = 0; cbIndex < callbacks.length; cbIndex++) {
var callback = callbacks[cbIndex];
- switch (typeof(callback)) {
+ switch (typeof (callback)) {
case 'function':
callback(element);
break;
@@ -3067,7 +3144,7 @@
for (var name in data) {
if (data.hasOwnProperty(name)) {
var elementData = data[name];
- if (typeof(elementData) !== 'string') {
+ if (typeof (elementData) !== 'string') {
elementData = JSON.stringify(elementData);
}
dataElement.attr('data-' + name, elementData);
@@ -3085,7 +3162,7 @@
* @callback: a callback function which can be called after plug-in registry
*/
register: function(plugin, name, callback) {
- if (typeof(name) === 'function') {
+ if (typeof (name) === 'function') {
callback = name;
name = null;
}
@@ -3096,10 +3173,10 @@
}
return;
}
- if (typeof(plugin) === 'object') {
+ if (typeof (plugin) === 'object') {
var src = plugin.src;
if (src) {
- ams.ajax.check(plugin.callback, src, function(first_load) {
+ ams.ajax && ams.ajax.check(plugin.callback, src, function(first_load) {
if (first_load) {
ams.plugins.enabled[name] = ams.getFunctionByName(plugin.callback);
if (plugin.css) {
@@ -3119,7 +3196,7 @@
ams.executeFunctionByName(callback);
}
}
- } else if (typeof(plugin) === 'function') {
+ } else if (typeof (plugin) === 'function') {
ams.plugins.enabled[name] = plugin;
if (callback) {
ams.executeFunctionByName(callback);
@@ -3128,6 +3205,31 @@
}
};
+ ams.plugins.i18n = {
+ widgets: {},
+ validate: {},
+ datatables: {},
+ fancybox: {
+ ERROR: "Can't load requested content.",
+ RETRY: "Please check URL or try again later.",
+ CLOSE: "Close",
+ NEXT: "Next",
+ PREVIOUS: "Previous"
+ },
+ dndupload: {
+ FILES_SELECTED: '{count} files selected',
+ CHOOSE_FILE: 'Select file(s)',
+ ADD_INFO: 'to add them to current folder,',
+ DRAG_FILE: 'or drag and drop them here!',
+ UPLOAD: 'Upload',
+ UPLOADING: 'Uploading…',
+ DONE: 'Done!',
+ UPLOAD_MORE: 'Upload more?',
+ ERROR: 'Error!',
+ TRY_AGAIN: 'Try again?'
+ }
+ };
+
})(jQuery, this);
/**
@@ -3176,10 +3278,10 @@
if (width && height) {
svg.get(0).setAttribute('viewBox',
'0 0 ' + Math.round(parseFloat(width)) + ' ' +
- Math.round(parseFloat(height)));
+ Math.round(parseFloat(height)));
}
svg.attr('width', '100%')
- .attr('height', 'auto');
+ .attr('height', 'auto');
})
}
},
@@ -3190,35 +3292,35 @@
hint: function(element) {
var hints = $('.hint:not(:parents(.nohints))', element);
if (hints.length > 0) {
- ams.ajax.check($.fn.tipsy,
- ams.baseURL + 'ext/jquery-tipsy' + ams.devext + '.js',
- function() {
- ams.getCSS(ams.baseURL + '../css/ext/jquery-tipsy' + ams.devext + '.css',
- 'jquery-tipsy', function() {
- hints.each(function () {
- var hint = $(this);
- var data = hint.data();
- var dataOptions = {
- html: data.amsHintHtml === undefined ? (hint.attr('title') || '').startsWith('<') : data.amsHintHtml,
- title: ams.getFunctionByName(data.amsHintTitleGetter) || function () {
- var hint = $(this);
- var result = hint.attr('original-title') ||
- hint.attr(data.amsHintTitleAttr || 'title') ||
- (data.amsHintHtml ? hint.html() : hint.text());
- result = result.replace(/\?_="/, '?_=' + new Date().getTime() + '"');
- return result;
- },
- opacity: data.amsHintOpacity || 0.95,
- gravity: data.amsHintGravity || 'sw',
- offset: data.amsHintOffset || 0
- };
- 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);
- });
- });
- });
+ ams.ajax && ams.ajax.check($.fn.tipsy,
+ ams.baseURL + 'ext/jquery-tipsy' + ams.devext + '.js',
+ function() {
+ ams.getCSS(ams.baseURL + '../css/ext/jquery-tipsy' + ams.devext + '.css',
+ 'jquery-tipsy', function() {
+ hints.each(function() {
+ var hint = $(this);
+ var data = hint.data();
+ var dataOptions = {
+ html: data.amsHintHtml === undefined ? (hint.attr('title') || '').startsWith('<') : data.amsHintHtml,
+ title: ams.getFunctionByName(data.amsHintTitleGetter) || function() {
+ var hint = $(this);
+ var result = hint.attr('original-title') ||
+ hint.attr(data.amsHintTitleAttr || 'title') ||
+ (data.amsHintHtml ? hint.html() : hint.text());
+ result = result.replace(/\?_="/, '?_=' + new Date().getTime() + '"');
+ return result;
+ },
+ opacity: data.amsHintOpacity || 0.95,
+ gravity: data.amsHintGravity || 'sw',
+ offset: data.amsHintOffset || 0
+ };
+ 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);
+ });
+ });
+ });
}
},
@@ -3233,7 +3335,7 @@
var data = menu.data();
var dataOptions = {
menuSelector: data.amsContextmenuSelector,
- menuSelected: ams.helpers.contextMenuHandler
+ menuSelected: ams.helpers && ams.helpers.contextMenuHandler
};
var settings = $.extend({}, dataOptions, data.amsContextmenuOptions);
settings = ams.executeFunctionByName(data.amsContextmenuInitCallback, menu, settings) || settings;
@@ -3255,8 +3357,8 @@
$('<i class="fa fa-fw"></i>')
.prependTo($(this))
.addClass(data.amsSwitcherState === 'open' ?
- (data.amsSwitcherMinusClass || 'fa-minus') :
- (data.amsSwitcherPlusClass || 'fa-plus'));
+ (data.amsSwitcherMinusClass || 'fa-minus') :
+ (data.amsSwitcherPlusClass || 'fa-plus'));
legend.on('click', function(e) {
e.preventDefault();
var veto = {};
@@ -3267,11 +3369,11 @@
if (fieldset.hasClass('switched')) {
fieldset.removeClass('switched');
$('.fa', legend).removeClass(data.amsSwitcherPlusClass || 'fa-plus')
- .addClass(data.amsSwitcherMinusClass || 'fa-minus');
+ .addClass(data.amsSwitcherMinusClass || 'fa-minus');
legend.trigger('ams.switcher.opened', [legend]);
var id = legend.attr('id');
if (id) {
- $('legend.switcher[data-ams-switcher-sync="'+id+'"]', fieldset).each(function() {
+ $('legend.switcher[data-ams-switcher-sync="' + id + '"]', fieldset).each(function() {
var switcher = $(this);
if (switcher.parents('fieldset').hasClass('switched')) {
switcher.click();
@@ -3281,7 +3383,7 @@
} else {
fieldset.addClass('switched');
$('.fa', legend).removeClass(data.amsSwitcherMinusClass || 'fa-minus')
- .addClass(data.amsSwitcherPlusClass || 'fa-plus');
+ .addClass(data.amsSwitcherPlusClass || 'fa-plus');
legend.trigger('ams.switcher.closed', [legend]);
}
});
@@ -3303,7 +3405,7 @@
var data = legend.data();
if (!data.amsChecker) {
var checker = $('<label class="checkbox"></label>');
- var fieldname = data.amsCheckerFieldname || ('checker_'+ams.generateId());
+ var fieldname = data.amsCheckerFieldname || ('checker_' + ams.generateId());
var checkboxId = fieldname.replace(/\./, '_');
var prefix = data.amsCheckerHiddenPrefix;
var hidden = null;
@@ -3312,19 +3414,19 @@
var marker = data.amsCheckerMarker || false;
if (prefix) {
hidden = $('<input type="hidden">').attr('name', prefix + fieldname)
- .val(data.amsCheckerState === 'on' ? checkedValue : uncheckedValue)
- .prependTo(legend);
+ .val(data.amsCheckerState === 'on' ? checkedValue : uncheckedValue)
+ .prependTo(legend);
} else if (marker) {
$('<input type="hidden">').attr('name', marker)
- .attr('value', 1)
- .prependTo(legend);
+ .attr('value', 1)
+ .prependTo(legend);
}
var input = $('<input type="checkbox">').attr('name', fieldname)
- .attr('id', checkboxId)
- .data('ams-checker-hidden-input', hidden)
- .data('ams-checker-init', true)
- .val(data.amsCheckerValue || true)
- .attr('checked', data.amsCheckerState === 'on' ? 'checked' : null);
+ .attr('id', checkboxId)
+ .data('ams-checker-hidden-input', hidden)
+ .data('ams-checker-init', true)
+ .val(data.amsCheckerValue || true)
+ .attr('checked', data.amsCheckerState === 'on' ? 'checked' : null);
if (data.amsCheckerReadonly) {
input.attr('disabled', 'disabled');
} else {
@@ -3372,7 +3474,7 @@
input.appendTo(checker);
$('>label', legend).attr('for', input.attr('id'));
checker.append('<i></i>')
- .prependTo(legend);
+ .prependTo(legend);
var required = $('[required]', fieldset);
required.attr('data-required', true);
if (data.amsCheckerState === 'on') {
@@ -3397,19 +3499,19 @@
slider: function(element) {
var sliders = $('.slider', element);
if (sliders.length > 0) {
- ams.ajax.check($.fn.slider,
- ams.baseURL + 'ext/bootstrap-slider-2.0.0' + ams.devext + '.js',
- function() {
- sliders.each(function() {
- var slider = $(this);
- var data = slider.data();
- 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);
- });
- });
+ ams.ajax && ams.ajax.check($.fn.slider,
+ ams.baseURL + 'ext/bootstrap-slider-2.0.0' + ams.devext + '.js',
+ function() {
+ sliders.each(function() {
+ var slider = $(this);
+ var data = slider.data();
+ 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);
+ });
+ });
}
},
@@ -3522,19 +3624,19 @@
typeahead: function(element) {
var typeaheads = $('.typeahead', element);
if (typeaheads.length > 0) {
- ams.ajax.check($.fn.typeahead,
- ams.baseURL + 'ext/jquery-typeahead' + ams.devext + '.js',
- function() {
- typeaheads.each(function() {
- var input = $(this);
- var data = input.data();
- 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);
- });
- });
+ ams.ajax && ams.ajax.check($.fn.typeahead,
+ ams.baseURL + 'ext/jquery-typeahead' + ams.devext + '.js',
+ function() {
+ typeaheads.each(function() {
+ var input = $(this);
+ var data = input.data();
+ 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);
+ });
+ });
}
},
@@ -3544,61 +3646,61 @@
treeview: function(element) {
var treeviews = $('.treeview', element);
if (treeviews.length > 0) {
- ams.ajax.check($.fn.treview,
- ams.baseURL + 'ext/bootstrap-treeview' + ams.devext + '.js',
- function() {
- ams.getCSS(ams.baseURL + '../css/ext/bootstrap-treeview' + ams.devext + '.css',
- 'bootstrap-treeview',
- function() {
- treeviews.each(function () {
- var treeview = $(this);
- var data = treeview.data();
- var dataOptions = {
- data: data.amsTreeviewData,
- levels: data.amsTreeviewLevels,
- injectStyle: data.amsTreeviewInjectStyle,
- expandIcon: data.amsTreeviewExpandIcon || 'fa fa-fw fa-plus-square-o',
- collapseIcon: data.amsTreeviewCollaspeIcon || 'fa fa-fw fa-minus-square-o',
- emptyIcon: data.amsTreeviewEmptyIcon || 'fa fa-fw',
- nodeIcon: data.amsTreeviewNodeIcon,
- selectedIcon: data.amsTreeviewSelectedIcon,
- checkedIcon: data.amsTreeviewCheckedIcon || 'fa fa-fw fa-check-square-o',
- uncheckedIcon: data.amsTreeviewUncheckedIcon || 'fa fa-fw fa-square-o',
- color: data.amsTreeviewColor,
- backColor: data.amsTreeviewBackColor,
- borderColor: data.amsTreeviewBorderColor,
- onHoverColor: data.amsTreeviewHoverColor,
- selectedColor: data.amsTreeviewSelectedColor,
- selectedBackColor: data.amsTreeviewSelectedBackColor,
- unselectableColor: data.amsTreeviewUnselectableColor || 'rgba(1,1,1,0.25)',
- unselectableBackColor: data.amsTreeviewUnselectableBackColor || 'rgba(1,1,1,0.25)',
- enableLinks: data.amsTreeviewEnableLinks,
- highlightSelected: data.amsTreeviewHighlightSelected,
- highlightSearchResults: data.amsTreeviewhighlightSearchResults,
- showBorder: data.amsTreeviewShowBorder,
- showIcon: data.amsTreeviewShowIcon,
- showCheckbox: data.amsTreeviewShowCheckbox,
- showTags: data.amsTreeviewShowTags,
- toggleUnselectable: data.amsTreeviewToggleUnselectable,
- multiSelect: data.amsTreeviewMultiSelect,
- onNodeChecked: ams.getFunctionByName(data.amsTreeviewNodeChecked),
- onNodeCollapsed: ams.getFunctionByName(data.amsTreeviewNodeCollapsed),
- onNodeDisabled: ams.getFunctionByName(data.amsTreeviewNodeDisabled),
- onNodeEnabled: ams.getFunctionByName(data.amsTreeviewNodeEnabled),
- onNodeExpanded: ams.getFunctionByName(data.amsTreeviewNodeExpanded),
- onNodeSelected: ams.getFunctionByName(data.amsTreeviewNodeSelected),
- onNodeUnchecked: ams.getFunctionByName(data.amsTreeviewNodeUnchecked),
- onNodeUnselected: ams.getFunctionByName(data.amsTreeviewNodeUnselected),
- onSearchComplete: ams.getFunctionByName(data.amsTreeviewSearchComplete),
- onSearchCleared: ams.getFunctionByName(data.amsTreeviewSearchCleared)
- };
- var settings = $.extend({}, dataOptions, data.amsTreeviewOptions);
- settings = ams.executeFunctionByName(data.amsTreeviewInitcallback, treeview, settings) || settings;
- var plugin = treeview.treeview(settings);
- ams.executeFunctionByName(data.amsTreeviewAfterInitCallback, treeview, plugin, settings);
- });
- });
- });
+ ams.ajax && ams.ajax.check($.fn.treview,
+ ams.baseURL + 'ext/bootstrap-treeview' + ams.devext + '.js',
+ function() {
+ ams.getCSS(ams.baseURL + '../css/ext/bootstrap-treeview' + ams.devext + '.css',
+ 'bootstrap-treeview',
+ function() {
+ treeviews.each(function() {
+ var treeview = $(this);
+ var data = treeview.data();
+ var dataOptions = {
+ data: data.amsTreeviewData,
+ levels: data.amsTreeviewLevels,
+ injectStyle: data.amsTreeviewInjectStyle,
+ expandIcon: data.amsTreeviewExpandIcon || 'fa fa-fw fa-plus-square-o',
+ collapseIcon: data.amsTreeviewCollaspeIcon || 'fa fa-fw fa-minus-square-o',
+ emptyIcon: data.amsTreeviewEmptyIcon || 'fa fa-fw',
+ nodeIcon: data.amsTreeviewNodeIcon,
+ selectedIcon: data.amsTreeviewSelectedIcon,
+ checkedIcon: data.amsTreeviewCheckedIcon || 'fa fa-fw fa-check-square-o',
+ uncheckedIcon: data.amsTreeviewUncheckedIcon || 'fa fa-fw fa-square-o',
+ color: data.amsTreeviewColor,
+ backColor: data.amsTreeviewBackColor,
+ borderColor: data.amsTreeviewBorderColor,
+ onHoverColor: data.amsTreeviewHoverColor,
+ selectedColor: data.amsTreeviewSelectedColor,
+ selectedBackColor: data.amsTreeviewSelectedBackColor,
+ unselectableColor: data.amsTreeviewUnselectableColor || 'rgba(1,1,1,0.25)',
+ unselectableBackColor: data.amsTreeviewUnselectableBackColor || 'rgba(1,1,1,0.25)',
+ enableLinks: data.amsTreeviewEnableLinks,
+ highlightSelected: data.amsTreeviewHighlightSelected,
+ highlightSearchResults: data.amsTreeviewhighlightSearchResults,
+ showBorder: data.amsTreeviewShowBorder,
+ showIcon: data.amsTreeviewShowIcon,
+ showCheckbox: data.amsTreeviewShowCheckbox,
+ showTags: data.amsTreeviewShowTags,
+ toggleUnselectable: data.amsTreeviewToggleUnselectable,
+ multiSelect: data.amsTreeviewMultiSelect,
+ onNodeChecked: ams.getFunctionByName(data.amsTreeviewNodeChecked),
+ onNodeCollapsed: ams.getFunctionByName(data.amsTreeviewNodeCollapsed),
+ onNodeDisabled: ams.getFunctionByName(data.amsTreeviewNodeDisabled),
+ onNodeEnabled: ams.getFunctionByName(data.amsTreeviewNodeEnabled),
+ onNodeExpanded: ams.getFunctionByName(data.amsTreeviewNodeExpanded),
+ onNodeSelected: ams.getFunctionByName(data.amsTreeviewNodeSelected),
+ onNodeUnchecked: ams.getFunctionByName(data.amsTreeviewNodeUnchecked),
+ onNodeUnselected: ams.getFunctionByName(data.amsTreeviewNodeUnselected),
+ onSearchComplete: ams.getFunctionByName(data.amsTreeviewSearchComplete),
+ onSearchCleared: ams.getFunctionByName(data.amsTreeviewSearchCleared)
+ };
+ var settings = $.extend({}, dataOptions, data.amsTreeviewOptions);
+ settings = ams.executeFunctionByName(data.amsTreeviewInitcallback, treeview, settings) || settings;
+ var plugin = treeview.treeview(settings);
+ ams.executeFunctionByName(data.amsTreeviewAfterInitCallback, treeview, plugin, settings);
+ });
+ });
+ });
}
},
@@ -3608,195 +3710,199 @@
select2: function(element) {
var selects = $('.select2', element);
if (selects.length > 0) {
- ams.ajax.check($.fn.select2,
- ams.baseURL + 'ext/jquery-select2-3.5.4' + ams.devext + '.js',
- function() {
- selects.each(function() {
- var select = $(this);
- var data = select.data();
- if (data.select2) {
- // Already initialized
- return;
- }
- var dataOptions = {
- placeholder: data.amsSelect2Placeholder,
- multiple: data.amsSelect2Multiple,
- minimumInputLength: data.amsSelect2MinimumInputLength || 0,
- maximumSelectionSize: data.amsSelect2MaximumSelectionSize,
- openOnEnter: data.amsSelect2EnterOpen === undefined ? true : data.amsSelect2EnterOpen,
- allowClear: data.amsSelect2AllowClear === undefined ? true : data.amsSelect2AllowClear,
- width: data.amsSelect2Width || '100%',
- initSelection: ams.getFunctionByName(data.amsSelect2InitSelection),
- formatSelection: data.amsSelect2FormatSelection === undefined ?
- ams.helpers.select2FormatSelection
- : ams.getFunctionByName(data.amsSelect2FormatSelection),
- formatResult: ams.getFunctionByName(data.amsSelect2FormatResult),
- formatMatches: data.amsSelect2FormatMatches === undefined ?
- function(matches) {
- if (matches === 1) {
- return ams.i18n.SELECT2_MATCH;
- } else {
- return matches + ams.i18n.SELECT2_MATCHES;
- }
- }
- : ams.getFunctionByName(data.amsSelect2FormatMatches),
- formatNoMatches: data.amsSelect2FormatResult === undefined ?
- function(term) {
- return ams.i18n.SELECT2_NOMATCHES;
- }
- : ams.getFunctionByName(data.amsSelect2FormatResult),
- formatInputTooShort: data.amsSelect2FormatInputTooShort === undefined ?
- function(input, min) {
- var n = min - input.length;
- return ams.i18n.SELECT2_INPUT_TOOSHORT
- .replace(/\{0\}/, n)
- .replace(/\{1\}/, n === 1 ? "" : ams.i18n.SELECT2_PLURAL);
- }
- : ams.getFunctionByName(data.amsSelect2FormatInputTooShort),
- formatInputTooLong: data.amsSelect2FormatInputTooLong === undefined ?
- function(input, max) {
- var n = input.length - max;
- return ams.i18n.SELECT2_INPUT_TOOLONG
- .replace(/\{0\}/, n)
- .replace(/\{1\}/, n === 1 ? "" : ams.i18n.SELECT2_PLURAL);
- }
- : ams.getFunctionByName(data.amsSelect2FormatInputTooLong),
- formatSelectionTooBig: data.amsSelect2FormatSelectionTooBig === undefined ?
- function(limit) {
- return ams.i18n.SELECT2_SELECTION_TOOBIG
- .replace(/\{0\}/, limit)
- .replace(/\{1\}/, limit === 1 ? "" : ams.i18n.SELECT2_PLURAL);
- }
- : ams.getFunctionByName(data.amsSelect2FormatSelectionTooBig),
- formatLoadMore: data.amsSelect2FormatLoadMore === undefined ?
- function (pageNumber) {
- return ams.i18n.SELECT2_LOADMORE;
- }
- : ams.getFunctionByName(data.amsSelect2FormatLoadMore),
- formatSearching: data.amsSelect2FormatSearching === undefined ?
- function() {
- return ams.i18n.SELECT2_SEARCHING;
- }
- : ams.getFunctionByName(data.amsSelect2FormatSearching),
- separator: data.amsSelect2Separator || ',',
- tokenSeparators: data.amsSelect2TokensSeparators || [','],
- tokenizer: ams.getFunctionByName(data.amsSelect2Tokenizer)
- };
-
- switch (select.context.type) {
- case 'text':
- case 'hidden':
- if (!dataOptions.initSelection) {
- var valuesData = select.data('ams-select2-values');
- if (valuesData) {
- dataOptions.initSelection = function(element, callback) {
- var data = [];
- $(element.val().split(dataOptions.separator)).each(function() {
- data.push({id: this,
- text: valuesData[this] || this});
- });
- callback(data);
- };
- }
- }
- break;
- default:
- break;
- }
-
- if (select.attr('readonly')) {
- if (select.attr('type') === 'hidden') {
- dataOptions.query = function () {
- return [];
- };
- }
- } else if (data.amsSelect2Query) {
- // Custom query method
- dataOptions.query = ams.getFunctionByName(data.amsSelect2Query);
- dataOptions.minimumInputLength = data.amsSelect2MinimumInputLength || 1;
- } else if (data.amsSelect2QueryUrl) {
- // AJAX query
- dataOptions.ajax = {
- url: data.amsSelect2QueryUrl,
- quietMillis: data.amsSelect2QuietMillis || 200,
- type: data.amsSelect2QueryType || 'POST',
- dataType: data.amsSelect2QueryDatatype || 'json',
- data: function(term, page, context) {
- var options = {};
- options[data.amsSelect2QueryParamName || 'query'] = term;
- options[data.amsSelect2PageParamName || 'page'] = page;
- options[data.amsSelect2ContextParamName || 'context'] = context;
- return $.extend({}, options, data.amsSelect2QueryOptions);
- },
- results: ams.helpers.select2QueryUrlResultsCallback
- };
- dataOptions.minimumInputLength = data.amsSelect2MinimumInputLength || 1;
- } else if (data.amsSelect2QueryMethod) {
- // JSON-RPC query
- dataOptions.query = function(options) {
- var settings = {
- id: new Date().getTime(),
- params: data.amsSelect2QueryParams || {},
- success: function(result) {
- return ams.helpers.select2QueryMethodSuccessCallback.call(select, result, 'success', options);
- },
- error: ams.error.show
- };
- settings.params[data.amsSelect2QueryParamName || 'query'] = options.term;
- settings.params[data.amsSelect2PageParamName || 'page'] = options.page;
- settings.params[data.amsSelect2ContextParamName || 'context'] = options.context;
- settings = $.extend({}, settings, data.amsSelect2QueryOptions);
- settings = ams.executeFunctionByName(data.amsSelect2QueryInitCallback, select, settings) || settings;
- ams.ajax.check($.jsonRPC,
- ams.baseURL + 'ext/jquery-jsonrpc' + ams.devext + '.js',
- function() {
- $.jsonRPC.withOptions({
- endPoint: data.amsSelect2MethodTarget || ams.jsonrpc.getAddr(),
- namespace: data.amsSelect2MethodNamespace,
- cache: false
- }, function() {
- $.jsonRPC.request(data.amsSelect2QueryMethod, settings);
- });
- });
- };
- dataOptions.minimumInputLength = data.amsSelect2MinimumInputLength || 1;
- } else if (data.amsSelect2Tags) {
- // Tags mode
- dataOptions.tags = data.amsSelect2Tags;
- } else if (data.amsSelect2Data) {
- // Provided data mode
- dataOptions.data = data.amsSelect2Data;
- }
-
- if (data.amsSelect2EnableFreeTags) {
- dataOptions.createSearchChoice = function(term) {
- return {id: term,
- text: (data.amsSelect2FreeTagsPrefix || ams.i18n.SELECT2_FREETAG_PREFIX) + term};
- };
- }
-
- 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);
- if (select.hasClass('ordered')) {
- ams.ajax.check($.fn.select2Sortable,
- ams.baseURL + 'ext/jquery-select2-sortable' + ams.devext + '.js',
+ ams.ajax && ams.ajax.check($.fn.select2,
+ ams.baseURL + 'ext/jquery-select2-3.5.4' + ams.devext + '.js',
+ function() {
+ selects.each(function() {
+ var select = $(this);
+ var data = select.data();
+ if (data.select2) {
+ // Already initialized
+ return;
+ }
+ var dataOptions = {
+ placeholder: data.amsSelect2Placeholder,
+ multiple: data.amsSelect2Multiple,
+ minimumInputLength: data.amsSelect2MinimumInputLength || 0,
+ maximumSelectionSize: data.amsSelect2MaximumSelectionSize,
+ openOnEnter: data.amsSelect2EnterOpen === undefined ? true : data.amsSelect2EnterOpen,
+ allowClear: data.amsSelect2AllowClear === undefined ? true : data.amsSelect2AllowClear,
+ width: data.amsSelect2Width || '100%',
+ initSelection: ams.getFunctionByName(data.amsSelect2InitSelection),
+ formatSelection: data.amsSelect2FormatSelection === undefined
+ ? ams.helpers && ams.helpers.select2FormatSelection
+ : ams.getFunctionByName(data.amsSelect2FormatSelection),
+ formatResult: ams.getFunctionByName(data.amsSelect2FormatResult),
+ formatMatches: data.amsSelect2FormatMatches === undefined ?
+ function(matches) {
+ if (matches === 1) {
+ return ams.i18n.SELECT2_MATCH;
+ } else {
+ return matches + ams.i18n.SELECT2_MATCHES;
+ }
+ }
+ : ams.getFunctionByName(data.amsSelect2FormatMatches),
+ formatNoMatches: data.amsSelect2FormatResult === undefined ?
+ function(term) {
+ return ams.i18n.SELECT2_NOMATCHES;
+ }
+ : ams.getFunctionByName(data.amsSelect2FormatResult),
+ formatInputTooShort: data.amsSelect2FormatInputTooShort === undefined ?
+ function(input, min) {
+ var n = min - input.length;
+ return ams.i18n.SELECT2_INPUT_TOOSHORT
+ .replace(/\{0\}/, n)
+ .replace(/\{1\}/, n === 1 ? "" : ams.i18n.SELECT2_PLURAL);
+ }
+ : ams.getFunctionByName(data.amsSelect2FormatInputTooShort),
+ formatInputTooLong: data.amsSelect2FormatInputTooLong === undefined ?
+ function(input, max) {
+ var n = input.length - max;
+ return ams.i18n.SELECT2_INPUT_TOOLONG
+ .replace(/\{0\}/, n)
+ .replace(/\{1\}/, n === 1 ? "" : ams.i18n.SELECT2_PLURAL);
+ }
+ : ams.getFunctionByName(data.amsSelect2FormatInputTooLong),
+ formatSelectionTooBig: data.amsSelect2FormatSelectionTooBig === undefined ?
+ function(limit) {
+ return ams.i18n.SELECT2_SELECTION_TOOBIG
+ .replace(/\{0\}/, limit)
+ .replace(/\{1\}/, limit === 1 ? "" : ams.i18n.SELECT2_PLURAL);
+ }
+ : ams.getFunctionByName(data.amsSelect2FormatSelectionTooBig),
+ formatLoadMore: data.amsSelect2FormatLoadMore === undefined ?
+ function(pageNumber) {
+ return ams.i18n.SELECT2_LOADMORE;
+ }
+ : ams.getFunctionByName(data.amsSelect2FormatLoadMore),
+ formatSearching: data.amsSelect2FormatSearching === undefined ?
function() {
- select.select2Sortable({
- bindOrder: 'sortableStop'
- });
- });
- }
-
- select.on('change', function() {
- var validator = $(select.get(0).form).data('validator');
- if (validator !== undefined) {
- $(select).valid();
- }
- });
- });
- });
+ return ams.i18n.SELECT2_SEARCHING;
+ }
+ : ams.getFunctionByName(data.amsSelect2FormatSearching),
+ separator: data.amsSelect2Separator || ',',
+ tokenSeparators: data.amsSelect2TokensSeparators || [','],
+ tokenizer: ams.getFunctionByName(data.amsSelect2Tokenizer)
+ };
+
+ switch (select.context.type) {
+ case 'text':
+ case 'hidden':
+ if (!dataOptions.initSelection) {
+ var valuesData = select.data('ams-select2-values');
+ if (valuesData) {
+ dataOptions.initSelection = function(element, callback) {
+ var data = [];
+ $(element.val().split(dataOptions.separator)).each(function() {
+ data.push({
+ id: this,
+ text: valuesData[this] || this
+ });
+ });
+ callback(data);
+ };
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (select.attr('readonly')) {
+ if (select.attr('type') === 'hidden') {
+ dataOptions.query = function() {
+ return [];
+ };
+ }
+ } else if (data.amsSelect2Query) {
+ // Custom query method
+ dataOptions.query = ams.getFunctionByName(data.amsSelect2Query);
+ dataOptions.minimumInputLength = data.amsSelect2MinimumInputLength || 1;
+ } else if (data.amsSelect2QueryUrl) {
+ // AJAX query
+ dataOptions.ajax = {
+ url: data.amsSelect2QueryUrl,
+ quietMillis: data.amsSelect2QuietMillis || 200,
+ type: data.amsSelect2QueryType || 'POST',
+ dataType: data.amsSelect2QueryDatatype || 'json',
+ data: function(term, page, context) {
+ var options = {};
+ options[data.amsSelect2QueryParamName || 'query'] = term;
+ options[data.amsSelect2PageParamName || 'page'] = page;
+ options[data.amsSelect2ContextParamName || 'context'] = context;
+ return $.extend({}, options, data.amsSelect2QueryOptions);
+ },
+ results: ams.helpers && ams.helpers.select2QueryUrlResultsCallback
+ };
+ dataOptions.minimumInputLength = data.amsSelect2MinimumInputLength || 1;
+ } else if (data.amsSelect2QueryMethod) {
+ // JSON-RPC query
+ dataOptions.query = function(options) {
+ var settings = {
+ id: new Date().getTime(),
+ params: data.amsSelect2QueryParams || {},
+ success: function(result) {
+ return ams.helpers && ams.helpers.select2QueryMethodSuccessCallback.call(select, result, 'success', options);
+ },
+ error: ams.error && ams.error.show
+ };
+ settings.params[data.amsSelect2QueryParamName || 'query'] = options.term;
+ settings.params[data.amsSelect2PageParamName || 'page'] = options.page;
+ settings.params[data.amsSelect2ContextParamName || 'context'] = options.context;
+ settings = $.extend({}, settings, data.amsSelect2QueryOptions);
+ settings = ams.executeFunctionByName(data.amsSelect2QueryInitCallback, select, settings) || settings;
+ ams.ajax && ams.ajax.check($.jsonRPC,
+ ams.baseURL + 'ext/jquery-jsonrpc' + ams.devext + '.js',
+ function() {
+ $.jsonRPC.withOptions({
+ endPoint: data.amsSelect2MethodTarget || (ams.jsonrpc && ams.jsonrpc.getAddr()),
+ namespace: data.amsSelect2MethodNamespace,
+ cache: false
+ }, function() {
+ $.jsonRPC.request(data.amsSelect2QueryMethod, settings);
+ });
+ });
+ };
+ dataOptions.minimumInputLength = data.amsSelect2MinimumInputLength || 1;
+ } else if (data.amsSelect2Tags) {
+ // Tags mode
+ dataOptions.tags = data.amsSelect2Tags;
+ } else if (data.amsSelect2Data) {
+ // Provided data mode
+ dataOptions.data = data.amsSelect2Data;
+ }
+
+ if (data.amsSelect2EnableFreeTags) {
+ dataOptions.createSearchChoice = function(term) {
+ return {
+ id: term,
+ text: (data.amsSelect2FreeTagsPrefix || ams.i18n.SELECT2_FREETAG_PREFIX) + term
+ };
+ };
+ }
+
+ 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);
+ if (select.hasClass('ordered')) {
+ ams.ajax && ams.ajax.check($.fn.select2Sortable,
+ ams.baseURL + 'ext/jquery-select2-sortable' + ams.devext + '.js',
+ function() {
+ select.select2Sortable({
+ bindOrder: 'sortableStop'
+ });
+ });
+ }
+
+ select.on('change', function() {
+ var validator = $(select.get(0).form).data('validator');
+ if (validator !== undefined) {
+ $(select).valid();
+ }
+ });
+ });
+ });
}
},
@@ -3806,22 +3912,22 @@
maskedit: function(element) {
var masks = $('[data-mask]', element);
if (masks.length > 0) {
- ams.ajax.check($.fn.mask,
- ams.baseURL + 'ext/jquery-maskedinput-1.4.1' + ams.devext + '.js',
- function() {
- masks.each(function() {
- var mask = $(this);
- var data = mask.data();
- var dataOptions = {
- placeholder: data.amsMaskeditPlaceholder === undefined ? 'X' : data.amsMaskeditPlaceholder,
- complete: ams.getFunctionByName(data.amsMaskeditComplete)
- };
- 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);
- });
- });
+ ams.ajax && ams.ajax.check($.fn.mask,
+ ams.baseURL + 'ext/jquery-maskedinput-1.4.1' + ams.devext + '.js',
+ function() {
+ masks.each(function() {
+ var mask = $(this);
+ var data = mask.data();
+ var dataOptions = {
+ placeholder: data.amsMaskeditPlaceholder === undefined ? 'X' : data.amsMaskeditPlaceholder,
+ complete: ams.getFunctionByName(data.amsMaskeditComplete)
+ };
+ 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);
+ });
+ });
}
},
@@ -3836,26 +3942,26 @@
inputmask: function(element) {
var masks = $('input[data-input-mask]', element);
if (masks.length > 0) {
- ams.ajax.check($.fn.inputmask,
- ams.baseURL + 'ext/jquery-inputmask-bundle-3.2.8' + ams.devext + '.js',
- function() {
- masks.each(function() {
- var input = $(this);
- var data = input.data();
- var dataOptions;
- if (typeof(data.inputMask) === 'object') {
- dataOptions = data.inputMask;
- } else {
- dataOptions = {
- mask: data.inputMask.toString()
- };
- }
- 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);
- });
- });
+ ams.ajax && ams.ajax.check($.fn.inputmask,
+ ams.baseURL + 'ext/jquery-inputmask-bundle-3.2.8' + ams.devext + '.js',
+ function() {
+ masks.each(function() {
+ var input = $(this);
+ var data = input.data();
+ var dataOptions;
+ if (typeof (data.inputMask) === 'object') {
+ dataOptions = data.inputMask;
+ } else {
+ dataOptions = {
+ mask: data.inputMask.toString()
+ };
+ }
+ 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);
+ });
+ });
}
},
@@ -3865,34 +3971,34 @@
datepicker: function(element) {
var datepickers = $('.datepicker', element);
if (datepickers.length > 0) {
- ams.ajax.check($.fn.datetimepicker,
- ams.baseURL + 'ext/jquery-datetimepicker' + ams.devext + '.js',
- function(first_load) {
- if (first_load) {
- ams.dialog.registerHideCallback(ams.helpers.datetimepickerDialogHiddenCallback);
- }
- ams.getCSS(ams.baseURL + '../css/ext/jquery-datetimepicker' + ams.devext + '.css',
- 'jquery-datetimepicker',
- function () {
- datepickers.each(function () {
- var input = $(this);
- var data = input.data();
- var dataOptions = {
- lang: data.amsDatetimepickerLang || ams.lang,
- format: data.amsDatetimepickerFormat || 'd/m/y',
- datepicker: true,
- dayOfWeekStart: 1,
- timepicker: false,
- closeOnDateSelect: data.amsDatetimepickerCloseOnSelect === undefined ? true : data.amsDatetimepickerCloseOnSelect,
- weeks: data.amsDatetimepickerWeeks
- };
- 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);
- });
- });
- });
+ ams.ajax && ams.ajax.check($.fn.datetimepicker,
+ ams.baseURL + 'ext/jquery-datetimepicker' + ams.devext + '.js',
+ function(first_load) {
+ if (first_load) {
+ ams.dialog && ams.dialog.registerHideCallback(ams.helpers && ams.helpers.datetimepickerDialogHiddenCallback);
+ }
+ ams.getCSS(ams.baseURL + '../css/ext/jquery-datetimepicker' + ams.devext + '.css',
+ 'jquery-datetimepicker',
+ function() {
+ datepickers.each(function() {
+ var input = $(this);
+ var data = input.data();
+ var dataOptions = {
+ lang: data.amsDatetimepickerLang || ams.lang,
+ format: data.amsDatetimepickerFormat || 'd/m/y',
+ datepicker: true,
+ dayOfWeekStart: 1,
+ timepicker: false,
+ closeOnDateSelect: data.amsDatetimepickerCloseOnSelect === undefined ? true : data.amsDatetimepickerCloseOnSelect,
+ weeks: data.amsDatetimepickerWeeks
+ };
+ 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);
+ });
+ });
+ });
}
},
@@ -3902,35 +4008,35 @@
datetimepicker: function(element) {
var datetimepickers = $('.datetimepicker', element);
if (datetimepickers.length > 0) {
- ams.ajax.check($.fn.datetimepicker,
- ams.baseURL + 'ext/jquery-datetimepicker' + ams.devext + '.js',
- function(first_load) {
- if (first_load) {
- ams.dialog.registerHideCallback(ams.helpers.datetimepickerDialogHiddenCallback);
- }
- ams.getCSS(ams.baseURL + '../css/ext/jquery-datetimepicker' + ams.devext + '.css',
- 'jquery-datetimepicker',
- function () {
- datetimepickers.each(function () {
- var input = $(this);
- var data = input.data();
- var dataOptions = {
- lang: data.amsDatetimepickerLang || ams.lang,
- format: data.amsDatetimepickerFormat || 'd/m/y H:i',
- datepicker: true,
- dayOfWeekStart: 1,
- timepicker: true,
- closeOnDateSelect: data.amsDatetimepickerCloseOnSelect === undefined ? true : data.amsDatetimepickerCloseOnSelect,
- closeOnTimeSelect: data.amsDatetimepickerCloseOnSelect === undefined ? true : data.amsDatetimepickerCloseOnSelect,
- weeks: data.amsDatetimepickerWeeks
- };
- 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);
- });
- });
- });
+ ams.ajax && ams.ajax.check($.fn.datetimepicker,
+ ams.baseURL + 'ext/jquery-datetimepicker' + ams.devext + '.js',
+ function(first_load) {
+ if (first_load) {
+ ams.dialog && ams.dialog.registerHideCallback(ams.helpers && ams.helpers.datetimepickerDialogHiddenCallback);
+ }
+ ams.getCSS(ams.baseURL + '../css/ext/jquery-datetimepicker' + ams.devext + '.css',
+ 'jquery-datetimepicker',
+ function() {
+ datetimepickers.each(function() {
+ var input = $(this);
+ var data = input.data();
+ var dataOptions = {
+ lang: data.amsDatetimepickerLang || ams.lang,
+ format: data.amsDatetimepickerFormat || 'd/m/y H:i',
+ datepicker: true,
+ dayOfWeekStart: 1,
+ timepicker: true,
+ closeOnDateSelect: data.amsDatetimepickerCloseOnSelect === undefined ? true : data.amsDatetimepickerCloseOnSelect,
+ closeOnTimeSelect: data.amsDatetimepickerCloseOnSelect === undefined ? true : data.amsDatetimepickerCloseOnSelect,
+ weeks: data.amsDatetimepickerWeeks
+ };
+ 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);
+ });
+ });
+ });
}
},
@@ -3940,32 +4046,32 @@
timepicker: function(element) {
var timepickers = $('.timepicker', element);
if (timepickers.length > 0) {
- ams.ajax.check($.fn.datetimepicker,
- ams.baseURL + 'ext/jquery-datetimepicker' + ams.devext + '.js',
- function(first_load) {
- if (first_load) {
- ams.dialog.registerHideCallback(ams.helpers.datetimepickerDialogHiddenCallback);
- }
- ams.getCSS(ams.baseURL + '../css/ext/jquery-datetimepicker' + ams.devext + '.css',
- 'jquery-datetimepicker',
- function() {
- timepickers.each(function () {
- var input = $(this);
- var data = input.data();
- var dataOptions = {
- lang: data.amsDatetimepickerLang || ams.lang,
- format: data.amsDatetimepickerFormat || 'H:i',
- datepicker: false,
- timepicker: true,
- closeOnTimeSelect: data.amsDatetimepickerCloseOnSelect === undefined ? true : data.amsDatetimepickerCloseOnSelect
- };
- 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);
- });
- });
- });
+ ams.ajax && ams.ajax.check($.fn.datetimepicker,
+ ams.baseURL + 'ext/jquery-datetimepicker' + ams.devext + '.js',
+ function(first_load) {
+ if (first_load) {
+ ams.dialog && ams.dialog.registerHideCallback(ams.helpers && ams.helpers.datetimepickerDialogHiddenCallback);
+ }
+ ams.getCSS(ams.baseURL + '../css/ext/jquery-datetimepicker' + ams.devext + '.css',
+ 'jquery-datetimepicker',
+ function() {
+ timepickers.each(function() {
+ var input = $(this);
+ var data = input.data();
+ var dataOptions = {
+ lang: data.amsDatetimepickerLang || ams.lang,
+ format: data.amsDatetimepickerFormat || 'H:i',
+ datepicker: false,
+ timepicker: true,
+ closeOnTimeSelect: data.amsDatetimepickerCloseOnSelect === undefined ? true : data.amsDatetimepickerCloseOnSelect
+ };
+ 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);
+ });
+ });
+ });
}
},
@@ -3975,25 +4081,25 @@
colorpicker: function(element) {
var colorpickers = $('.colorpicker', element);
if (colorpickers.length > 0) {
- ams.ajax.check($.fn.minicolors,
- ams.baseURL + 'ext/jquery-minicolors' + ams.devext + '.js',
- function() {
- ams.getCSS(ams.baseURL + '../css/ext/jquery-minicolors' + ams.devext + '.css',
- 'jquery-minicolors',
- function () {
- colorpickers.each(function () {
- var input = $(this);
- var data = input.data();
- var dataOptions = {
- position: data.amsColorpickerPosition || input.closest('.input').data('ams-colorpicker-position') || 'bottom left'
- };
- 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);
- });
- });
- });
+ ams.ajax && ams.ajax.check($.fn.minicolors,
+ ams.baseURL + 'ext/jquery-minicolors' + ams.devext + '.js',
+ function() {
+ ams.getCSS(ams.baseURL + '../css/ext/jquery-minicolors' + ams.devext + '.css',
+ 'jquery-minicolors',
+ function() {
+ colorpickers.each(function() {
+ var input = $(this);
+ var data = input.data();
+ var dataOptions = {
+ position: data.amsColorpickerPosition || input.closest('.input').data('ams-colorpicker-position') || 'bottom left'
+ };
+ 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);
+ });
+ });
+ });
}
},
@@ -4003,27 +4109,27 @@
dndupload: function(element) {
var uploads = $('.dndupload', element);
if (uploads.length > 0) {
- ams.ajax.check($.fn.dndupload,
- ams.baseURL + 'ext/jquery-dndupload' + ams.devext + '.js',
- function() {
- ams.getCSS(ams.baseURL + '../css/ext/jquery-dndupload' + ams.devext + '.css',
- 'jquery-dndupload',
- function () {
- uploads.each(function () {
- var upload = $(this);
- var data = upload.data();
- var dataOptions = {
- action: data.amsDnduploadAction || upload.attr('action') || 'upload-files',
- fieldname: data.amsDnduploadFieldname || 'files',
- autosubmit: data.amsDnduploadAutosubmit
- };
- var settings = $.extend({}, dataOptions, data.amsDnduploadOptions);
- settings = ams.executeFunctionByName(data.amsDnduploadInitCallback, upload, settings) || settings;
- var plugin = upload.dndupload(settings);
- ams.executeFunctionByName(data.amsDnduploadAfterInitcallback, upload, plugin, settings);
- });
- });
- });
+ ams.ajax && ams.ajax.check($.fn.dndupload,
+ ams.baseURL + 'ext/jquery-dndupload' + ams.devext + '.js',
+ function() {
+ ams.getCSS(ams.baseURL + '../css/ext/jquery-dndupload' + ams.devext + '.css',
+ 'jquery-dndupload',
+ function() {
+ uploads.each(function() {
+ var upload = $(this);
+ var data = upload.data();
+ var dataOptions = {
+ action: data.amsDnduploadAction || upload.attr('action') || 'upload-files',
+ fieldname: data.amsDnduploadFieldname || 'files',
+ autosubmit: data.amsDnduploadAutosubmit
+ };
+ var settings = $.extend({}, dataOptions, data.amsDnduploadOptions);
+ settings = ams.executeFunctionByName(data.amsDnduploadInitCallback, upload, settings) || settings;
+ var plugin = upload.dndupload(settings);
+ ams.executeFunctionByName(data.amsDnduploadAfterInitcallback, upload, plugin, settings);
+ });
+ });
+ });
}
},
@@ -4033,92 +4139,92 @@
validate: function(element) {
var forms = $('FORM:not([novalidate])', element);
if (forms.length > 0) {
- ams.ajax.check($.fn.validate,
- ams.baseURL + 'ext/jquery-validate-1.17.0' + ams.devext + '.js',
- function(first_load) {
- if (first_load) {
- $.validator.setDefaults({
- highlight: function(element) {
- $(element).closest('.form-group, label:not(:parents(.form-group))').addClass('state-error');
- },
- unhighlight: function(element) {
- $(element).closest('.form-group, label:not(:parents(.form-group))').removeClass('state-error');
- },
- errorElement: 'span',
- errorClass: 'state-error',
- errorPlacement: function(error, element) {
- var label = element.parents('label:first');
- if (label.length) {
- error.insertAfter(label);
- } else {
- error.insertAfter(element);
- }
- }
- });
- if (ams.plugins.i18n) {
- for (var key in ams.plugins.i18n.validate) {
- if (!ams.plugins.i18n.validate.hasOwnProperty(key)) {
- continue;
- }
- var message = ams.plugins.i18n.validate[key];
- if ((typeof(message) === 'string') &&
- (message.indexOf('{0}') > -1)) {
- ams.plugins.i18n.validate[key] = $.validator.format(message);
- }
- }
- $.extend($.validator.messages, ams.plugins.i18n.validate);
- }
- }
- forms.each(function() {
- var form = $(this);
- var data = form.data();
- var dataOptions = {
- ignore: null,
- submitHandler: form.attr('data-async') !== undefined ?
+ ams.ajax && ams.ajax.check($.fn.validate,
+ ams.baseURL + 'ext/jquery-validate-1.17.0' + ams.devext + '.js',
+ function(first_load) {
+ if (first_load) {
+ $.validator.setDefaults({
+ highlight: function(element) {
+ $(element).closest('.form-group, label:not(:parents(.form-group))').addClass('state-error');
+ },
+ unhighlight: function(element) {
+ $(element).closest('.form-group, label:not(:parents(.form-group))').removeClass('state-error');
+ },
+ errorElement: 'span',
+ errorClass: 'state-error',
+ errorPlacement: function(error, element) {
+ var label = element.parents('label:first');
+ if (label.length) {
+ error.insertAfter(label);
+ } else {
+ error.insertAfter(element);
+ }
+ }
+ });
+ if (ams.plugins && ams.plugins.i18n) {
+ for (var key in ams.plugins.i18n.validate) {
+ if (!ams.plugins.i18n.validate.hasOwnProperty(key)) {
+ continue;
+ }
+ var message = ams.plugins.i18n.validate[key];
+ if ((typeof (message) === 'string') &&
+ (message.indexOf('{0}') > -1)) {
+ ams.plugins.i18n.validate[key] = $.validator.format(message);
+ }
+ }
+ $.extend($.validator.messages, ams.plugins.i18n.validate);
+ }
+ }
+ forms.each(function() {
+ var form = $(this);
+ var data = form.data();
+ var dataOptions = {
+ ignore: null,
+ submitHandler: form.attr('data-async') !== undefined ?
data.amsFormSubmitHandler === undefined ?
- function() {
- // JQuery-form plug-in must be loaded synchronously!!
- // Otherwise, hidden input fields created by jquery-validate plug-in
- // and matching named buttons will be deleted (on first form submit)
- // before JQuery-form plug-in can get them when submitting the form...
- $('.state-error', form).removeClass('state-error');
- ams.ajax.check($.fn.ajaxSubmit,
- ams.baseURL + 'ext/jquery-form-3.49' + ams.devext + '.js');
- return ams.form.submit(form);
- }
- : ams.getFunctionByName(data.amsFormSubmitHandler)
+ function() {
+ // JQuery-form plug-in must be loaded synchronously!!
+ // Otherwise, hidden input fields created by jquery-validate plug-in
+ // and matching named buttons will be deleted (on first form submit)
+ // before JQuery-form plug-in can get them when submitting the form...
+ $('.state-error', form).removeClass('state-error');
+ ams.ajax && ams.ajax.check($.fn.ajaxSubmit,
+ ams.baseURL + 'ext/jquery-form-3.49' + ams.devext + '.js');
+ return ams.form && ams.form.submit(form);
+ }
+ : ams.getFunctionByName(data.amsFormSubmitHandler)
: undefined,
- invalidHandler: form.attr('data-async') !== undefined ?
- data.amsFormInvalidHandler === undefined ?
- function(event, validator) {
- $('.state-error', form).removeClass('state-error');
- for (var index=0; index < validator.errorList.length; index++) {
- var error = validator.errorList[index];
- 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', navTabs).click();
- }
- }
- }
- : ams.getFunctionByName(data.amsFormInvalidHandler)
- : undefined
- };
- $('[data-ams-validate-rules]', form).each(function(index) {
- if (index === 0) {
- dataOptions.rules = {};
- }
- dataOptions.rules[$(this).attr('name')] = $(this).data('ams-validate-rules');
- });
- 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);
- });
- });
+ invalidHandler: form.attr('data-async') !== undefined ?
+ data.amsFormInvalidHandler === undefined ?
+ function(event, validator) {
+ $('.state-error', form).removeClass('state-error');
+ for (var index = 0; index < validator.errorList.length; index++) {
+ var error = validator.errorList[index];
+ 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', navTabs).click();
+ }
+ }
+ }
+ : ams.getFunctionByName(data.amsFormInvalidHandler)
+ : undefined
+ };
+ $('[data-ams-validate-rules]', form).each(function(index) {
+ if (index === 0) {
+ dataOptions.rules = {};
+ }
+ dataOptions.rules[$(this).attr('name')] = $(this).data('ams-validate-rules');
+ });
+ 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);
+ });
+ });
}
},
@@ -4128,258 +4234,257 @@
datatable: function(element) {
var tables = $('.datatable', element);
if (tables.length > 0) {
- ams.ajax.check($.fn.dataTable,
- ams.baseURL + 'ext/jquery-dataTables-1.9.4' + ams.devext + '.js',
- function() {
- ams.ajax.check($.fn.dataTableExt.oPagination.bootstrap_full,
- ams.baseURL + 'myams-dataTables' + ams.devext + '.js',
- function() {
- $(tables).each(function () {
- var table = $(this);
- var data = table.data();
- var extensions = (data.amsDatatableExtensions || '').split(/\s+/);
- // Check DOM elements
- var sDom = data.amsDatatableSdom ||
- "W" +
- ((extensions.indexOf('colreorder') >= 0 ||
- extensions.indexOf('colreorderwithresize') >= 0) ? 'R' : '') +
- "<'dt-top-row'" +
- (extensions.indexOf('colvis') >= 0 ? 'C' : '') +
- ((data.amsDatatablePagination === false ||
- data.amsDatatablePaginationSize === false) ? '' : 'L') +
- (data.amsDatatableGlobalFilter === false ? '' : 'F') +
- ">r<'dt-wrapper't" +
- (extensions.indexOf('scroller') >= 0 ? 'S' : '') +
- "><'dt-row dt-bottom-row'<'row'<'col-sm-6'" +
- (data.amsDatatableInformation === false ? '' : 'i') +
- "><'col-sm-6 text-right'p>>";
-
- var index;
- // Check initial sorting
- var sorting = data.amsDatatableSorting;
- if (typeof(sorting) === 'string') {
- var sortings = sorting.split(';');
- sorting = [];
- for (index = 0; index < sortings.length; index++) {
- 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 = typeof(sortable) === 'string' ? JSON.parse(sortable) : sortable;
- columns[index] = column;
- } else {
- columns[index] = columns[index] || {};
- }
- }
- // Check columns types
- 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;
- } else {
- columns[index] = columns[index] || {};
- }
- }
- // Set options
- var dataOptions = {
- bJQueryUI: false,
- bServerSide: data.amsDatatableServerSide || false,
- sAjaxSource: data.amsDatatableServerSide === true ? data.amsDatatableAjaxSource : undefined,
- sServerMethod: data.amsDatatableServerSide === true ? 'POST' : undefined,
- bFilter: data.amsDatatableGlobalFilter !== false || extensions.indexOf('columnfilter') >= 0,
- bPaginate: data.amsDatatablePagination !== false,
- bInfo: data.amsDatatableInfo !== false,
- bSort: data.amsDatatableSort !== false,
- aaSorting: sorting,
- aoColumns: columns.length > 0 ? columns : undefined,
- bDeferRender: true,
- bAutoWidth: false,
- iDisplayLength: data.amsDatatableDisplayLength || 25,
- sPaginationType: data.amsDatatablePaginationType || 'bootstrap_full',
- sDom: sDom,
- oLanguage: ams.plugins.i18n.datatables,
- fnInitComplete: function (oSettings, json) {
- $('.ColVis_Button').addClass('btn btn-default btn-sm')
- .html((ams.plugins.i18n.datatables.sColumns || "Columns") +
- ' <i class="fa fa-fw fa-caret-down"></i>');
- }
- };
- var settings = $.extend({}, dataOptions, data.amsDatatableOptions);
- var checkers = [];
- var sources = [];
- var callbacks = [];
- if (extensions.length > 0) {
- for (index = 0; index < extensions.length; index++) {
- switch (extensions[index]) {
- case 'autofill':
- checkers.push($.fn.dataTable.AutoFill);
- sources.push(ams.baseURL + 'ext/jquery-dataTables-autoFill' + ams.devext + '.js');
- break;
- case 'columnfilter':
- checkers.push($.fn.columnFilter);
- sources.push(ams.baseURL + 'ext/jquery-dataTables-columnFilter' + ams.devext + '.js');
- break;
- case 'colreorder':
- checkers.push($.fn.dataTable.ColReorder);
- sources.push(ams.baseURL + 'ext/jquery-dataTables-colReorder' + ams.devext + '.js');
- break;
- case 'colreorderwithresize':
- checkers.push(window.ColReorder);
- sources.push(ams.baseURL + 'ext/jquery-dataTables-colReorderWithResize' + ams.devext + '.js');
- break;
- case 'colvis':
- checkers.push($.fn.dataTable.ColVis);
- sources.push(ams.baseURL + 'ext/jquery-dataTables-colVis' + ams.devext + '.js');
- callbacks.push(function () {
- var cvDefault = {
- activate: 'click',
- sAlign: 'right'
- };
- settings.oColVis = $.extend({}, cvDefault, data.amsDatatableColvisOptions);
- });
- break;
- case 'editable':
- checkers.push($.fn.editable);
- sources.push(ams.baseURL + 'ext/jquery-jeditable' + ams.devext + '.js');
- checkers.push($.fn.makeEditable);
- sources.push(ams.baseURL + 'ext/jquery-dataTables-editable' + ams.devext + '.js');
- break;
- case 'fixedcolumns':
- checkers.push($.fn.dataTable.FixedColumns);
- sources.push(ams.baseURL + 'ext/jquery-dataTables-fixedColumns' + ams.devext + '.js');
- break;
- case 'fixedheader':
- checkers.push($.fn.dataTable.Fixedheader);
- sources.push(ams.baseURL + 'ext/jquery-dataTables-fixedHeader' + ams.devext + '.js');
- break;
- case 'keytable':
- checkers.push(window.keyTable);
- sources.push(ams.baseURL + 'ext/jquery-dataTables-keyTable' + ams.devext + '.js');
- break;
- case 'rowgrouping':
- checkers.push($.fn.rowGrouping);
- sources.push(ams.baseURL + 'ext/jquery-dataTables-rowGrouping' + ams.devext + '.js');
- break;
- case 'rowreordering':
- checkers.push($.fn.rowReordering);
- sources.push(ams.baseURL + 'ext/jquery-dataTables-rowReordering' + ams.devext + '.js');
- break;
- case 'scroller':
- checkers.push($.fn.dataTable.Scroller);
- sources.push(ams.baseURL + 'ext/jquery-dataTables-scroller' + ams.devext + '.js');
- break;
- default:
- break;
- }
- }
- }
-
- function initTable() {
- settings = ams.executeFunctionByName(data.amsDatatableInitCallback, table, settings) || settings;
- try { // Some settings can easily generate DataTables exceptions...
- var plugin = table.dataTable(settings);
- ams.executeFunctionByName(data.amsDatatableAfterInitCallback, table, plugin, settings);
- if (extensions.length > 0) {
- for (index = 0; index < extensions.length; index++) {
- switch (extensions[index]) {
- case 'autofill':
- 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, afSettings)
- : ams.executeFunctionByName(data.amsDatatableAutofillConstructor, table, plugin, afSettings));
- break;
- case 'columnfilter':
- var cfDefault = {
- sPlaceHolder: 'head:after'
- };
- 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(cfSettings)
- : ams.executeFunctionByName(data.amsDatatableColumnfilterConstructor, table, plugin, cfSettings));
- break;
- case 'editable':
- var edSettings = $.extend({}, data.amsDatatableEditableOptions, settings.editable);
- edSettings = ams.executeFunctionByName(data.amsDatatableEditableInitCallback, table, edSettings) || edSettings;
- table.data('ams-editable', data.amsDatatableEditableConstructor === undefined ?
- table.makeEditable(edSettings)
- : ams.executeFunctionByName(data.amsDatatableEditableConstructor, table, plugin, edSettings));
- break;
- case 'fixedcolumns':
- 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, fcSettings)
- : ams.executeFunctionByName(data.amsDatatableFixedcolumnsConstructor, table, plugin, fcSettings));
- break;
- case 'fixedheader':
- 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, fhSettings)
- : ams.executeFunctionByName(data.amsDatatableFixedheaderConstructor, table, plugin, fhSettings));
- break;
- case 'keytable':
- var ktDefault = {
- table: table.get(0),
- datatable: plugin
- };
- 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(ktSettings)
- : ams.executeFunctionByName(data.amsDatatableKeytableConstructor, table, plugin, ktSettings));
- break;
- case 'rowgrouping':
- var rgSettings = $.extend({}, data.amsDatatableRowgroupingOptions, settings.rowgrouping);
- rgSettings = ams.executeFunctionByName(data.amsDatatableRowgroupingInitCallback, table, rgSettings) || rgSettings;
- table.data('ams-rowgrouping', data.amsDatatableRowgroupingConstructor === undefined ?
- table.rowGrouping(rgSettings)
- : ams.executeFunctionByName(data.amsDatatableRowgroupingConstructor, table, plugin, rgSettings));
- break;
- case 'rowreordering':
- var rrSettings = $.extend({}, data.amsDatatableRowreorderingOptions, settings.rowreordering);
- rrSettings = ams.executeFunctionByName(data.amsDatatableRowreorderingInitCallback, table, rrSettings) || rrSettings;
- table.data('ams-rowreordering', data.amsDatatableRowreorderingConstructor === undefined ?
- table.rowReordering(rrSettings)
- : ams.executeFunctionByName(data.amsDatatableRowreorderingConstructor, table, plugin, rrSettings));
- break;
- default:
- break;
- }
- }
- }
- if (data.amsDatatableFinalizeCallback) {
- var finalizers = data.amsDatatableFinalizeCallback.split(/\s+/);
- if (finalizers.length > 0) {
- for (index = 0; index < finalizers.length; index++) {
- ams.executeFunctionByName(finalizers[index], table, plugin, settings);
- }
- }
- }
- }
- catch (e) {
- }
- }
-
- callbacks.push(initTable);
- ams.ajax.check(checkers, sources, callbacks);
- });
- });
- });
+ ams.ajax && ams.ajax.check($.fn.dataTable,
+ ams.baseURL + 'ext/jquery-dataTables-1.9.4' + ams.devext + '.js',
+ function() {
+ ams.ajax.check($.fn.dataTableExt.oPagination.bootstrap_full,
+ ams.baseURL + 'myams-dataTables' + ams.devext + '.js',
+ function() {
+ $(tables).each(function() {
+ var table = $(this);
+ var data = table.data();
+ var extensions = (data.amsDatatableExtensions || '').split(/\s+/);
+ // Check DOM elements
+ var sDom = data.amsDatatableSdom ||
+ "W" +
+ ((extensions.indexOf('colreorder') >= 0 ||
+ extensions.indexOf('colreorderwithresize') >= 0) ? 'R' : '') +
+ "<'dt-top-row'" +
+ (extensions.indexOf('colvis') >= 0 ? 'C' : '') +
+ ((data.amsDatatablePagination === false ||
+ data.amsDatatablePaginationSize === false) ? '' : 'L') +
+ (data.amsDatatableGlobalFilter === false ? '' : 'F') +
+ ">r<'dt-wrapper't" +
+ (extensions.indexOf('scroller') >= 0 ? 'S' : '') +
+ "><'dt-row dt-bottom-row'<'row'<'col-sm-6'" +
+ (data.amsDatatableInformation === false ? '' : 'i') +
+ "><'col-sm-6 text-right'p>>";
+
+ var index;
+ // Check initial sorting
+ var sorting = data.amsDatatableSorting;
+ if (typeof (sorting) === 'string') {
+ var sortings = sorting.split(';');
+ sorting = [];
+ for (index = 0; index < sortings.length; index++) {
+ 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 = typeof (sortable) === 'string' ? JSON.parse(sortable) : sortable;
+ columns[index] = column;
+ } else {
+ columns[index] = columns[index] || {};
+ }
+ }
+ // Check columns types
+ 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;
+ } else {
+ columns[index] = columns[index] || {};
+ }
+ }
+ // Set options
+ var dataOptions = {
+ bJQueryUI: false,
+ bServerSide: data.amsDatatableServerSide || false,
+ sAjaxSource: data.amsDatatableServerSide === true ? data.amsDatatableAjaxSource : undefined,
+ sServerMethod: data.amsDatatableServerSide === true ? 'POST' : undefined,
+ bFilter: data.amsDatatableGlobalFilter !== false || extensions.indexOf('columnfilter') >= 0,
+ bPaginate: data.amsDatatablePagination !== false,
+ bInfo: data.amsDatatableInfo !== false,
+ bSort: data.amsDatatableSort !== false,
+ aaSorting: sorting,
+ aoColumns: columns.length > 0 ? columns : undefined,
+ bDeferRender: true,
+ bAutoWidth: false,
+ iDisplayLength: data.amsDatatableDisplayLength || 25,
+ sPaginationType: data.amsDatatablePaginationType || 'bootstrap_full',
+ sDom: sDom,
+ oLanguage: ams.plugins && ams.plugins.i18n.datatables,
+ fnInitComplete: function(oSettings, json) {
+ $('.ColVis_Button').addClass('btn btn-default btn-sm')
+ .html(((ams.plugins && ams.plugins.i18n.datatables.sColumns) || "Columns") +
+ ' <i class="fa fa-fw fa-caret-down"></i>');
+ }
+ };
+ var settings = $.extend({}, dataOptions, data.amsDatatableOptions);
+ var checkers = [];
+ var sources = [];
+ var callbacks = [];
+ if (extensions.length > 0) {
+ for (index = 0; index < extensions.length; index++) {
+ switch (extensions[index]) {
+ case 'autofill':
+ checkers.push($.fn.dataTable.AutoFill);
+ sources.push(ams.baseURL + 'ext/jquery-dataTables-autoFill' + ams.devext + '.js');
+ break;
+ case 'columnfilter':
+ checkers.push($.fn.columnFilter);
+ sources.push(ams.baseURL + 'ext/jquery-dataTables-columnFilter' + ams.devext + '.js');
+ break;
+ case 'colreorder':
+ checkers.push($.fn.dataTable.ColReorder);
+ sources.push(ams.baseURL + 'ext/jquery-dataTables-colReorder' + ams.devext + '.js');
+ break;
+ case 'colreorderwithresize':
+ checkers.push(window.ColReorder);
+ sources.push(ams.baseURL + 'ext/jquery-dataTables-colReorderWithResize' + ams.devext + '.js');
+ break;
+ case 'colvis':
+ checkers.push($.fn.dataTable.ColVis);
+ sources.push(ams.baseURL + 'ext/jquery-dataTables-colVis' + ams.devext + '.js');
+ callbacks.push(function() {
+ var cvDefault = {
+ activate: 'click',
+ sAlign: 'right'
+ };
+ settings.oColVis = $.extend({}, cvDefault, data.amsDatatableColvisOptions);
+ });
+ break;
+ case 'editable':
+ checkers.push($.fn.editable);
+ sources.push(ams.baseURL + 'ext/jquery-jeditable' + ams.devext + '.js');
+ checkers.push($.fn.makeEditable);
+ sources.push(ams.baseURL + 'ext/jquery-dataTables-editable' + ams.devext + '.js');
+ break;
+ case 'fixedcolumns':
+ checkers.push($.fn.dataTable.FixedColumns);
+ sources.push(ams.baseURL + 'ext/jquery-dataTables-fixedColumns' + ams.devext + '.js');
+ break;
+ case 'fixedheader':
+ checkers.push($.fn.dataTable.Fixedheader);
+ sources.push(ams.baseURL + 'ext/jquery-dataTables-fixedHeader' + ams.devext + '.js');
+ break;
+ case 'keytable':
+ checkers.push(window.keyTable);
+ sources.push(ams.baseURL + 'ext/jquery-dataTables-keyTable' + ams.devext + '.js');
+ break;
+ case 'rowgrouping':
+ checkers.push($.fn.rowGrouping);
+ sources.push(ams.baseURL + 'ext/jquery-dataTables-rowGrouping' + ams.devext + '.js');
+ break;
+ case 'rowreordering':
+ checkers.push($.fn.rowReordering);
+ sources.push(ams.baseURL + 'ext/jquery-dataTables-rowReordering' + ams.devext + '.js');
+ break;
+ case 'scroller':
+ checkers.push($.fn.dataTable.Scroller);
+ sources.push(ams.baseURL + 'ext/jquery-dataTables-scroller' + ams.devext + '.js');
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ function initTable() {
+ settings = ams.executeFunctionByName(data.amsDatatableInitCallback, table, settings) || settings;
+ try { // Some settings can easily generate DataTables exceptions...
+ var plugin = table.dataTable(settings);
+ ams.executeFunctionByName(data.amsDatatableAfterInitCallback, table, plugin, settings);
+ if (extensions.length > 0) {
+ for (index = 0; index < extensions.length; index++) {
+ switch (extensions[index]) {
+ case 'autofill':
+ 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, afSettings)
+ : ams.executeFunctionByName(data.amsDatatableAutofillConstructor, table, plugin, afSettings));
+ break;
+ case 'columnfilter':
+ var cfDefault = {
+ sPlaceHolder: 'head:after'
+ };
+ 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(cfSettings)
+ : ams.executeFunctionByName(data.amsDatatableColumnfilterConstructor, table, plugin, cfSettings));
+ break;
+ case 'editable':
+ var edSettings = $.extend({}, data.amsDatatableEditableOptions, settings.editable);
+ edSettings = ams.executeFunctionByName(data.amsDatatableEditableInitCallback, table, edSettings) || edSettings;
+ table.data('ams-editable', data.amsDatatableEditableConstructor === undefined ?
+ table.makeEditable(edSettings)
+ : ams.executeFunctionByName(data.amsDatatableEditableConstructor, table, plugin, edSettings));
+ break;
+ case 'fixedcolumns':
+ 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, fcSettings)
+ : ams.executeFunctionByName(data.amsDatatableFixedcolumnsConstructor, table, plugin, fcSettings));
+ break;
+ case 'fixedheader':
+ 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, fhSettings)
+ : ams.executeFunctionByName(data.amsDatatableFixedheaderConstructor, table, plugin, fhSettings));
+ break;
+ case 'keytable':
+ var ktDefault = {
+ table: table.get(0),
+ datatable: plugin
+ };
+ 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(ktSettings)
+ : ams.executeFunctionByName(data.amsDatatableKeytableConstructor, table, plugin, ktSettings));
+ break;
+ case 'rowgrouping':
+ var rgSettings = $.extend({}, data.amsDatatableRowgroupingOptions, settings.rowgrouping);
+ rgSettings = ams.executeFunctionByName(data.amsDatatableRowgroupingInitCallback, table, rgSettings) || rgSettings;
+ table.data('ams-rowgrouping', data.amsDatatableRowgroupingConstructor === undefined ?
+ table.rowGrouping(rgSettings)
+ : ams.executeFunctionByName(data.amsDatatableRowgroupingConstructor, table, plugin, rgSettings));
+ break;
+ case 'rowreordering':
+ var rrSettings = $.extend({}, data.amsDatatableRowreorderingOptions, settings.rowreordering);
+ rrSettings = ams.executeFunctionByName(data.amsDatatableRowreorderingInitCallback, table, rrSettings) || rrSettings;
+ table.data('ams-rowreordering', data.amsDatatableRowreorderingConstructor === undefined ?
+ table.rowReordering(rrSettings)
+ : ams.executeFunctionByName(data.amsDatatableRowreorderingConstructor, table, plugin, rrSettings));
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ if (data.amsDatatableFinalizeCallback) {
+ var finalizers = data.amsDatatableFinalizeCallback.split(/\s+/);
+ if (finalizers.length > 0) {
+ for (index = 0; index < finalizers.length; index++) {
+ ams.executeFunctionByName(finalizers[index], table, plugin, settings);
+ }
+ }
+ }
+ } catch (e) {
+ }
+ }
+
+ callbacks.push(initTable);
+ ams.ajax && ams.ajax.check(checkers, sources, callbacks);
+ });
+ });
+ });
}
},
@@ -4389,68 +4494,68 @@
tablednd: function(element) {
var tables = $('.table-dnd', element);
if (tables.length > 0) {
- ams.ajax.check($.fn.tableDnD,
- ams.baseURL + 'ext/jquery-tablednd' + ams.devext + '.js',
- function() {
- tables.each(function() {
- var table = $(this);
- var data = table.data();
- if (data.amsTabledndDragHandle) {
- $('tr', table).addClass('no-drag-handle');
- } else {
- $(table).on('mouseover', 'tr', function () {
- $(this.cells[0]).addClass('drag-handle');
- }).on('mouseout', 'tr', function () {
- $(this.cells[0]).removeClass('drag-handle');
- });
- }
- var dataOptions = {
- onDragClass: data.amsTabledndDragClass || 'dragging-row',
- onDragStart: ams.getFunctionByName(data.amsTabledndDragStart),
- dragHandle: data.amsTabledndDragHandle,
- scrollAmount: data.amsTabledndScrollAmount,
- onAllowDrop: data.amsTabledndAllowDrop,
- onDrop: ams.getFunctionByName(data.amsTabledndDrop) || function(dnd_table, row) {
- var target = data.amsTabledndDropTarget;
- if (target) {
- // Disable row click handler
- $(row).data('ams-disabled-handlers', 'click');
- try {
- var rows = [];
- $(dnd_table.rows).each(function() {
- var rowId = $(this).data('ams-element-name');
- if (rowId) {
- rows.push(rowId);
- }
- });
- var localTarget = ams.getFunctionByName(target);
- if (typeof(localTarget) === 'function') {
- localTarget.call(table, dnd_table, rows);
- } else {
- if (!target.startsWith(window.location.protocol)) {
- var location = data.amsLocation;
- if (location) {
- target = location + '/' + target;
- }
- }
- ams.ajax.post(target, {names: JSON.stringify(rows)});
- }
- } finally {
- // Restore row click handler
- setTimeout(function() {
- $(row).removeData('ams-disabled-handlers');
- }, 50);
- }
- }
- return false;
- }
- };
- 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);
- });
- });
+ ams.ajax && ams.ajax.check($.fn.tableDnD,
+ ams.baseURL + 'ext/jquery-tablednd' + ams.devext + '.js',
+ function() {
+ tables.each(function() {
+ var table = $(this);
+ var data = table.data();
+ if (data.amsTabledndDragHandle) {
+ $('tr', table).addClass('no-drag-handle');
+ } else {
+ $(table).on('mouseover', 'tr', function() {
+ $(this.cells[0]).addClass('drag-handle');
+ }).on('mouseout', 'tr', function() {
+ $(this.cells[0]).removeClass('drag-handle');
+ });
+ }
+ var dataOptions = {
+ onDragClass: data.amsTabledndDragClass || 'dragging-row',
+ onDragStart: ams.getFunctionByName(data.amsTabledndDragStart),
+ dragHandle: data.amsTabledndDragHandle,
+ scrollAmount: data.amsTabledndScrollAmount,
+ onAllowDrop: data.amsTabledndAllowDrop,
+ onDrop: ams.getFunctionByName(data.amsTabledndDrop) || function(dnd_table, row) {
+ var target = data.amsTabledndDropTarget;
+ if (target) {
+ // Disable row click handler
+ $(row).data('ams-disabled-handlers', 'click');
+ try {
+ var rows = [];
+ $(dnd_table.rows).each(function() {
+ var rowId = $(this).data('ams-element-name');
+ if (rowId) {
+ rows.push(rowId);
+ }
+ });
+ var localTarget = ams.getFunctionByName(target);
+ if (typeof (localTarget) === 'function') {
+ localTarget.call(table, dnd_table, rows);
+ } else {
+ if (!target.startsWith(window.location.protocol)) {
+ var location = data.amsLocation;
+ if (location) {
+ target = location + '/' + target;
+ }
+ }
+ ams.ajax && ams.ajax.post(target, {names: JSON.stringify(rows)});
+ }
+ } finally {
+ // Restore row click handler
+ setTimeout(function() {
+ $(row).removeData('ams-disabled-handlers');
+ }, 50);
+ }
+ }
+ return false;
+ }
+ };
+ 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);
+ });
+ });
}
},
@@ -4460,39 +4565,39 @@
wizard: function(element) {
var wizards = $('.wizard', element);
if (wizards.length > 0) {
- ams.ajax.check($.fn.bootstrapWizard,
- ams.baseURL + 'ext/bootstrap-wizard-1.4.2' + ams.devext + '.js',
- function() {
- wizards.each(function() {
- var wizard = $(this);
- var data = wizard.data();
- var dataOptions = {
- withVisible: data.amsWizardWithVisible === undefined ? true : data.amsWizardWithVisible,
- tabClass: data.amsWizardTabClass,
- firstSelector: data.amsWizardFirstSelector,
- previousSelector: data.amsWizardPreviousSelector,
- nextSelector: data.amsWizardNextSelector,
- lastSelector: data.amsWizardLastSelector,
- finishSelector: data.amsWizardFinishSelector,
- backSelector: data.amsWizardBackSelector,
- onInit: ams.getFunctionByName(data.amsWizardInit),
- onShow: ams.getFunctionByName(data.amsWizardShow),
- onNext: ams.getFunctionByName(data.amsWizardNext),
- onPrevious: ams.getFunctionByName(data.amsWizardPrevious),
- onFirst: ams.getFunctionByName(data.amsWizardFirst),
- onLast: ams.getFunctionByName(data.amsWizardLast),
- onBack: ams.getFunctionByName(data.amsWizardBack),
- onFinish: ams.getFunctionByName(data.amsWizardFinish),
- onTabChange: ams.getFunctionByName(data.amsWizardTabChange),
- onTabClick: ams.getFunctionByName(data.amsWizardTabClick),
- onTabShow: ams.getFunctionByName(data.amsWizardTabShow)
- };
- var settings = $.extend({}, dataOptions, data.amsWizardOptions);
- settings = ams.executeFunctionByName(data.amsWizardInitCallback, wizard, settings) || settings;
- var plugin = wizard.bootstrapWizard(settings);
- ams.executeFunctionByName(data.amsWizardAfterInitCallback, wizard, plugin, settings);
- });
- });
+ ams.ajax && ams.ajax.check($.fn.bootstrapWizard,
+ ams.baseURL + 'ext/bootstrap-wizard-1.4.2' + ams.devext + '.js',
+ function() {
+ wizards.each(function() {
+ var wizard = $(this);
+ var data = wizard.data();
+ var dataOptions = {
+ withVisible: data.amsWizardWithVisible === undefined ? true : data.amsWizardWithVisible,
+ tabClass: data.amsWizardTabClass,
+ firstSelector: data.amsWizardFirstSelector,
+ previousSelector: data.amsWizardPreviousSelector,
+ nextSelector: data.amsWizardNextSelector,
+ lastSelector: data.amsWizardLastSelector,
+ finishSelector: data.amsWizardFinishSelector,
+ backSelector: data.amsWizardBackSelector,
+ onInit: ams.getFunctionByName(data.amsWizardInit),
+ onShow: ams.getFunctionByName(data.amsWizardShow),
+ onNext: ams.getFunctionByName(data.amsWizardNext),
+ onPrevious: ams.getFunctionByName(data.amsWizardPrevious),
+ onFirst: ams.getFunctionByName(data.amsWizardFirst),
+ onLast: ams.getFunctionByName(data.amsWizardLast),
+ onBack: ams.getFunctionByName(data.amsWizardBack),
+ onFinish: ams.getFunctionByName(data.amsWizardFinish),
+ onTabChange: ams.getFunctionByName(data.amsWizardTabChange),
+ onTabClick: ams.getFunctionByName(data.amsWizardTabClick),
+ onTabShow: ams.getFunctionByName(data.amsWizardTabShow)
+ };
+ var settings = $.extend({}, dataOptions, data.amsWizardOptions);
+ settings = ams.executeFunctionByName(data.amsWizardInitCallback, wizard, settings) || settings;
+ var plugin = wizard.bootstrapWizard(settings);
+ ams.executeFunctionByName(data.amsWizardAfterInitCallback, wizard, plugin, settings);
+ });
+ });
}
},
@@ -4513,82 +4618,82 @@
var editors = $('.tinymce', element);
if (editors.length > 0) {
var baseURL = ams.baseURL + 'ext/tinymce' + (ams.devmode ? '/dev' : '');
- ams.ajax.check(window.tinymce,
- baseURL + '/tinymce' + ams.devext + '.js',
- function(first_load) {
-
- function initEditors() {
- editors.each(function() {
- var editor = $(this);
- var data = editor.data();
- var dataOptions = {
- theme: data.amsTinymceTheme || "modern",
- language: ams.lang,
- menubar: data.amsTinymceMenubar !== false,
- statusbar: data.amsTinymceStatusbar !== false,
- plugins: data.amsTinymcePlugins || [
- "advlist autosave autolink lists link charmap print preview hr anchor pagebreak",
- "searchreplace wordcount visualblocks visualchars code fullscreen",
- "insertdatetime nonbreaking save table contextmenu directionality",
- "emoticons paste textcolor colorpicker textpattern autoresize"
- ],
- toolbar: data.amsTinymceToolbar,
- toolbar1: data.amsTinymceToolbar1 === false ? false : data.amsTinymceToolbar1 ||
- "undo redo | pastetext | styleselect | bold italic | alignleft " +
- "aligncenter alignright alignjustify | bullist numlist " +
- "outdent indent",
- toolbar2: data.amsTinymceToolbar2 === false ? false : data.amsTinymceToolbar2 ||
- "forecolor backcolor emoticons | charmap link image media | " +
- "fullscreen preview print | code",
- content_css: data.amsTinymceContentCss,
- formats: data.amsTinymceFormats,
- style_formats: data.amsTinymceStyleFormats,
- block_formats: data.amsTinymceBlockFormats,
- valid_classes: data.amsTinymceValidClasses,
- image_advtab: true,
- image_list: ams.getFunctionByName(data.amsTinymceImageList) || data.amsTinymceImageList,
- image_class_list: data.amsTinymceImageClassList,
- link_list: ams.getFunctionByName(data.amsTinymceLinkList) || data.amsTinymceLinkList,
- link_class_list: data.amsTinymceLinkClassList,
- paste_as_text: data.amsTinymcePasteAsText === undefined ? true : data.amsTinymcePasteAsText,
- paste_auto_cleanup_on_paste: data.amsTinymcePasteAutoCleanup === undefined ? true : data.amsTinymcePasteAutoCleanup,
- paste_strip_class_attributes: data.amsTinymcePasteStripClassAttributes || 'all',
- paste_remove_spans: data.amsTinymcePaseRemoveSpans === undefined ? true : data.amsTinymcePasteRemoveSpans,
- paste_remove_styles: data.amsTinymcePasteRemoveStyles === undefined ? true : data.amsTinymcePasteRemoveStyles,
- height: data.amsTinymceHeight || 50,
- min_height: 50,
- resize: true,
- autoresize_min_height: 50,
- autoresize_max_height: 500
- };
- if (data.amsTinymceExternalPlugins) {
- var names = data.amsTinymceExternalPlugins.split(/\s+/);
- for (var index in names) {
- if (!names.hasOwnProperty(index)) {
- continue;
- }
- var pluginSrc = editor.data('ams-tinymce-plugin-' + names[index]);
- tinymce.PluginManager.load(names[index], ams.getSource(pluginSrc));
- }
- }
- var settings = $.extend({}, dataOptions, data.amsTinymceOptions);
- settings = ams.executeFunctionByName(data.amsTinymceInitCallback, editor, settings) || settings;
- var plugin = editor.tinymce(settings);
- ams.executeFunctionByName(data.amsTinymceAfterInitCallback, editor, plugin, settings);
- });
- }
-
- if (first_load) {
- ams.getScript(baseURL + '/jquery.tinymce' + ams.devext + '.js', function() {
- tinymce.baseURL = baseURL;
- tinymce.suffix = ams.devext;
- ams.skin.registerCleanCallback(cleanEditors);
- initEditors();
- });
- } else {
- initEditors();
- }
- });
+ ams.ajax && ams.ajax.check(window.tinymce,
+ baseURL + '/tinymce' + ams.devext + '.js',
+ function(first_load) {
+
+ function initEditors() {
+ editors.each(function() {
+ var editor = $(this);
+ var data = editor.data();
+ var dataOptions = {
+ theme: data.amsTinymceTheme || "modern",
+ language: ams.lang,
+ menubar: data.amsTinymceMenubar !== false,
+ statusbar: data.amsTinymceStatusbar !== false,
+ plugins: data.amsTinymcePlugins || [
+ "advlist autosave autolink lists link charmap print preview hr anchor pagebreak",
+ "searchreplace wordcount visualblocks visualchars code fullscreen",
+ "insertdatetime nonbreaking save table contextmenu directionality",
+ "emoticons paste textcolor colorpicker textpattern autoresize"
+ ],
+ toolbar: data.amsTinymceToolbar,
+ toolbar1: data.amsTinymceToolbar1 === false ? false : data.amsTinymceToolbar1 ||
+ "undo redo | pastetext | styleselect | bold italic | alignleft " +
+ "aligncenter alignright alignjustify | bullist numlist " +
+ "outdent indent",
+ toolbar2: data.amsTinymceToolbar2 === false ? false : data.amsTinymceToolbar2 ||
+ "forecolor backcolor emoticons | charmap link image media | " +
+ "fullscreen preview print | code",
+ content_css: data.amsTinymceContentCss,
+ formats: data.amsTinymceFormats,
+ style_formats: data.amsTinymceStyleFormats,
+ block_formats: data.amsTinymceBlockFormats,
+ valid_classes: data.amsTinymceValidClasses,
+ image_advtab: true,
+ image_list: ams.getFunctionByName(data.amsTinymceImageList) || data.amsTinymceImageList,
+ image_class_list: data.amsTinymceImageClassList,
+ link_list: ams.getFunctionByName(data.amsTinymceLinkList) || data.amsTinymceLinkList,
+ link_class_list: data.amsTinymceLinkClassList,
+ paste_as_text: data.amsTinymcePasteAsText === undefined ? true : data.amsTinymcePasteAsText,
+ paste_auto_cleanup_on_paste: data.amsTinymcePasteAutoCleanup === undefined ? true : data.amsTinymcePasteAutoCleanup,
+ paste_strip_class_attributes: data.amsTinymcePasteStripClassAttributes || 'all',
+ paste_remove_spans: data.amsTinymcePaseRemoveSpans === undefined ? true : data.amsTinymcePasteRemoveSpans,
+ paste_remove_styles: data.amsTinymcePasteRemoveStyles === undefined ? true : data.amsTinymcePasteRemoveStyles,
+ height: data.amsTinymceHeight || 50,
+ min_height: 50,
+ resize: true,
+ autoresize_min_height: 50,
+ autoresize_max_height: 500
+ };
+ if (data.amsTinymceExternalPlugins) {
+ var names = data.amsTinymceExternalPlugins.split(/\s+/);
+ for (var index in names) {
+ if (!names.hasOwnProperty(index)) {
+ continue;
+ }
+ var pluginSrc = editor.data('ams-tinymce-plugin-' + names[index]);
+ tinymce.PluginManager.load(names[index], ams.getSource(pluginSrc));
+ }
+ }
+ var settings = $.extend({}, dataOptions, data.amsTinymceOptions);
+ settings = ams.executeFunctionByName(data.amsTinymceInitCallback, editor, settings) || settings;
+ var plugin = editor.tinymce(settings);
+ ams.executeFunctionByName(data.amsTinymceAfterInitCallback, editor, plugin, settings);
+ });
+ }
+
+ if (first_load) {
+ ams.getScript(baseURL + '/jquery.tinymce' + ams.devext + '.js', function() {
+ tinymce.baseURL = baseURL;
+ tinymce.suffix = ams.devext;
+ ams.skin && ams.skin.registerCleanCallback(cleanEditors);
+ initEditors();
+ });
+ } else {
+ initEditors();
+ }
+ });
}
},
@@ -4598,48 +4703,48 @@
imgareaselect: function(element) {
var images = $('.imgareaselect', element);
if (images.length > 0) {
- ams.ajax.check($.fn.imgAreaSelect,
- ams.baseURL + 'ext/jquery-imgareaselect-0.9.11-rc1' + ams.devext + '.js',
- function() {
- ams.getCSS(ams.baseURL + '../css/ext/jquery-imgareaselect' + ams.devext + '.css',
- 'jquery-imgareaselect',
- function() {
- images.each(function () {
- var image = $(this);
- var data = image.data();
- var parent = data.amsImgareaselectParent ? image.parents(data.amsImgareaselectParent) : 'body';
- var dataOptions = {
- instance: true,
- handles: true,
- parent: parent,
- x1: data.amsImgareaselectX1 || 0,
- y1: data.amsImgareaselectY1 || 0,
- x2: data.amsImgareaselectX2 || data.amsImgareaselectImageWidth,
- y2: data.amsImgareaselectY2 || data.amsImgareaselectImageHeight,
- imageWidth: data.amsImgareaselectImageWidth,
- imageHeight: data.amsImgareaselectImageHeight,
- minWidth: 128,
- minHeight: 128,
- aspectRatio: data.amsImgareaselectRatio,
- onSelectEnd: ams.getFunctionByName(data.amsImgareaselectSelectEnd) || function (img, selection) {
- var target = data.amsImgareaselectTargetField || 'image_';
- $('input[name="' + target + 'x1"]', parent).val(selection.x1);
- $('input[name="' + target + 'y1"]', parent).val(selection.y1);
- $('input[name="' + target + 'x2"]', parent).val(selection.x2);
- $('input[name="' + target + 'y2"]', parent).val(selection.y2);
- }
- };
- 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);
- // Add update timeout when plug-in is displayed into a modal dialog
- setTimeout(function () {
- plugin.update();
- }, 250);
- });
- });
- });
+ ams.ajax && ams.ajax.check($.fn.imgAreaSelect,
+ ams.baseURL + 'ext/jquery-imgareaselect-0.9.11-rc1' + ams.devext + '.js',
+ function() {
+ ams.getCSS(ams.baseURL + '../css/ext/jquery-imgareaselect' + ams.devext + '.css',
+ 'jquery-imgareaselect',
+ function() {
+ images.each(function() {
+ var image = $(this);
+ var data = image.data();
+ var parent = data.amsImgareaselectParent ? image.parents(data.amsImgareaselectParent) : 'body';
+ var dataOptions = {
+ instance: true,
+ handles: true,
+ parent: parent,
+ x1: data.amsImgareaselectX1 || 0,
+ y1: data.amsImgareaselectY1 || 0,
+ x2: data.amsImgareaselectX2 || data.amsImgareaselectImageWidth,
+ y2: data.amsImgareaselectY2 || data.amsImgareaselectImageHeight,
+ imageWidth: data.amsImgareaselectImageWidth,
+ imageHeight: data.amsImgareaselectImageHeight,
+ minWidth: 128,
+ minHeight: 128,
+ aspectRatio: data.amsImgareaselectRatio,
+ onSelectEnd: ams.getFunctionByName(data.amsImgareaselectSelectEnd) || function(img, selection) {
+ var target = data.amsImgareaselectTargetField || 'image_';
+ $('input[name="' + target + 'x1"]', parent).val(selection.x1);
+ $('input[name="' + target + 'y1"]', parent).val(selection.y1);
+ $('input[name="' + target + 'x2"]', parent).val(selection.x2);
+ $('input[name="' + target + 'y2"]', parent).val(selection.y2);
+ }
+ };
+ 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);
+ // Add update timeout when plug-in is displayed into a modal dialog
+ setTimeout(function() {
+ plugin.update();
+ }, 250);
+ });
+ });
+ });
}
},
@@ -4649,97 +4754,97 @@
fancybox: function(element) {
var fancyboxes = $('.fancybox', element);
if (fancyboxes.length > 0) {
- ams.ajax.check($.fn.fancybox,
- ams.baseURL + 'ext/jquery-fancybox-2.1.5' + ams.devext + '.js',
- function() {
- ams.getCSS(ams.baseURL + '../css/ext/jquery-fancybox-2.1.5' + ams.devext + '.css',
- 'jquery-fancybox',
- function() {
- fancyboxes.each(function () {
- var fancybox = $(this);
- var data = fancybox.data();
- var elements = fancybox;
- var index,
- helper;
- if (data.amsFancyboxElements) {
- elements = $(data.amsFancyboxElements, fancybox);
- }
- var helpers = (data.amsFancyboxHelpers || '').split(/\s+/);
- if (helpers.length > 0) {
- for (index = 0; index < helpers.length; index++) {
- helper = helpers[index];
- switch (helper) {
- case 'buttons':
- ams.ajax.check($.fancybox.helpers.buttons,
- ams.baseURL + 'ext/fancybox-helpers/fancybox-buttons' + ams.devext + '.js');
- break;
- case 'thumbs':
- ams.ajax.check($.fancybox.helpers.thumbs,
- ams.baseURL + 'ext/fancybox-helpers/fancybox-thumbs' + ams.devext + '.js');
- break;
- case 'media':
- ams.ajax.check($.fancybox.helpers.media,
- ams.baseURL + 'ext/fancybox-helpers/fancybox-media' + ams.devext + '.js');
- break;
- default:
- break;
- }
- }
- }
- var dataOptions = {
- type: data.amsFancyboxType,
- padding: data.amsFancyboxPadding || 10,
- margin: data.amsFancyboxMargin || 10,
- loop: data.amsFancyboxLoop,
- beforeLoad: ams.getFunctionByName(data.amsFancyboxBeforeLoad) || function () {
- var title;
- if (data.amsFancyboxTitleGetter) {
- title = ams.executeFunctionByName(data.amsFancyboxTitleGetter, this);
- }
- if (!title) {
- var content = $('*:first', this.element);
- title = content.attr('original-title') || content.attr('title');
- if (!title) {
- title = $(this.element).attr('original-title') || $(this.element).attr('title');
- }
- }
- this.title = title;
- },
- afterLoad: ams.getFunctionByName(data.amsFancyboxAfterLoad),
- helpers: {
- title: {
- type: 'inside'
- }
- }
- };
- if (helpers.length > 0) {
- for (index = 0; index < helpers.length; index++) {
- helper = helpers[index];
- switch (helper) {
- case 'buttons':
- dataOptions.helpers.buttons = {
- position: data.amsFancyboxButtonsPosition || 'top'
- };
- break;
- case 'thumbs':
- dataOptions.helpers.thumbs = {
- width: data.amsFancyboxThumbsWidth || 50,
- height: data.amsFancyboxThumbsHeight || 50
- };
- break;
- case 'media':
- dataOptions.helpers.media = true;
- break;
- }
- }
- }
- var settings = $.extend({}, dataOptions, data.amsFancyboxOptions);
- settings = ams.executeFunctionByName(data.amsFancyboxInitCallback, fancybox, settings) || settings;
- var plugin = elements.fancybox(settings);
- ams.executeFunctionByName(data.amsFancyboxAfterInitCallback, fancybox, plugin, settings);
- });
- });
- });
+ ams.ajax && ams.ajax.check($.fn.fancybox,
+ ams.baseURL + 'ext/jquery-fancybox-2.1.5' + ams.devext + '.js',
+ function() {
+ ams.getCSS(ams.baseURL + '../css/ext/jquery-fancybox-2.1.5' + ams.devext + '.css',
+ 'jquery-fancybox',
+ function() {
+ fancyboxes.each(function() {
+ var fancybox = $(this);
+ var data = fancybox.data();
+ var elements = fancybox;
+ var index,
+ helper;
+ if (data.amsFancyboxElements) {
+ elements = $(data.amsFancyboxElements, fancybox);
+ }
+ var helpers = (data.amsFancyboxHelpers || '').split(/\s+/);
+ if (helpers.length > 0) {
+ for (index = 0; index < helpers.length; index++) {
+ helper = helpers[index];
+ switch (helper) {
+ case 'buttons':
+ ams.ajax && ams.ajax.check($.fancybox.helpers.buttons,
+ ams.baseURL + 'ext/fancybox-helpers/fancybox-buttons' + ams.devext + '.js');
+ break;
+ case 'thumbs':
+ ams.ajax && ams.ajax.check($.fancybox.helpers.thumbs,
+ ams.baseURL + 'ext/fancybox-helpers/fancybox-thumbs' + ams.devext + '.js');
+ break;
+ case 'media':
+ ams.ajax && ams.ajax.check($.fancybox.helpers.media,
+ ams.baseURL + 'ext/fancybox-helpers/fancybox-media' + ams.devext + '.js');
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ var dataOptions = {
+ type: data.amsFancyboxType,
+ padding: data.amsFancyboxPadding || 10,
+ margin: data.amsFancyboxMargin || 10,
+ loop: data.amsFancyboxLoop,
+ beforeLoad: ams.getFunctionByName(data.amsFancyboxBeforeLoad) || function() {
+ var title;
+ if (data.amsFancyboxTitleGetter) {
+ title = ams.executeFunctionByName(data.amsFancyboxTitleGetter, this);
+ }
+ if (!title) {
+ var content = $('*:first', this.element);
+ title = content.attr('original-title') || content.attr('title');
+ if (!title) {
+ title = $(this.element).attr('original-title') || $(this.element).attr('title');
+ }
+ }
+ this.title = title;
+ },
+ afterLoad: ams.getFunctionByName(data.amsFancyboxAfterLoad),
+ helpers: {
+ title: {
+ type: 'inside'
+ }
+ }
+ };
+ if (helpers.length > 0) {
+ for (index = 0; index < helpers.length; index++) {
+ helper = helpers[index];
+ switch (helper) {
+ case 'buttons':
+ dataOptions.helpers.buttons = {
+ position: data.amsFancyboxButtonsPosition || 'top'
+ };
+ break;
+ case 'thumbs':
+ dataOptions.helpers.thumbs = {
+ width: data.amsFancyboxThumbsWidth || 50,
+ height: data.amsFancyboxThumbsHeight || 50
+ };
+ break;
+ case 'media':
+ dataOptions.helpers.media = true;
+ break;
+ }
+ }
+ }
+ var settings = $.extend({}, dataOptions, data.amsFancyboxOptions);
+ settings = ams.executeFunctionByName(data.amsFancyboxInitCallback, fancybox, settings) || settings;
+ var plugin = elements.fancybox(settings);
+ ams.executeFunctionByName(data.amsFancyboxAfterInitCallback, fancybox, plugin, settings);
+ });
+ });
+ });
}
},
@@ -4749,45 +4854,45 @@
chart: function(element) {
var charts = $('.chart', element);
if (charts.length > 0) {
- ams.ajax.check($.fn.plot,
- ams.baseURL + 'flot/jquery.flot' + ams.devext + '.js',
- function() {
- charts.each(function() {
-
- function checkPlugin(plugin) {
- for (var index in $.plot.plugins) {
- if ($.plot.plugins.hasOwnProperty(index)) {
- var pluginInfo = $.plot.plugins[index];
- if (pluginInfo.name === plugin) {
- return pluginInfo;
- }
- }
- }
- return null;
- }
-
- var chart = $(this);
- var data = chart.data();
- var dataOptions = {};
- var plugins = (data.amsChartPlugins || '').split(/\s+/);
- if (plugins.length > 0) {
- for (var index in plugins) {
- if (plugins.hasOwnProperty(index)) {
- var pluginName = plugins[index];
- if (!checkPlugin(pluginName)) {
- ams.getScript(ams.baseURL + 'flot/jquery.flot.' + pluginName + ams.devext + '.js');
- }
- }
- }
- }
- var settings = $.extend({}, dataOptions, data.amsChartOptions);
- settings = ams.executeFunctionByName(data.amsChartInitCallback, chart, settings) || settings;
- var chartData = data.amsChartData;
- chartData = ams.executeFunctionByName(data.amsChartInitData, chart, chartData) || chartData;
- var plugin = chart.plot(chartData, settings);
- ams.executeFunctionByName(data.amsChartAfterInitCallback, chart, plugin, settings);
- });
- });
+ ams.ajax && ams.ajax.check($.fn.plot,
+ ams.baseURL + 'flot/jquery.flot' + ams.devext + '.js',
+ function() {
+ charts.each(function() {
+
+ function checkPlugin(plugin) {
+ for (var index in $.plot.plugins) {
+ if ($.plot.plugins.hasOwnProperty(index)) {
+ var pluginInfo = $.plot.plugins[index];
+ if (pluginInfo.name === plugin) {
+ return pluginInfo;
+ }
+ }
+ }
+ return null;
+ }
+
+ var chart = $(this);
+ var data = chart.data();
+ var dataOptions = {};
+ var plugins = (data.amsChartPlugins || '').split(/\s+/);
+ if (plugins.length > 0) {
+ for (var index in plugins) {
+ if (plugins.hasOwnProperty(index)) {
+ var pluginName = plugins[index];
+ if (!checkPlugin(pluginName)) {
+ ams.getScript(ams.baseURL + 'flot/jquery.flot.' + pluginName + ams.devext + '.js');
+ }
+ }
+ }
+ }
+ var settings = $.extend({}, dataOptions, data.amsChartOptions);
+ settings = ams.executeFunctionByName(data.amsChartInitCallback, chart, settings) || settings;
+ var chartData = data.amsChartData;
+ chartData = ams.executeFunctionByName(data.amsChartInitData, chart, chartData) || chartData;
+ var plugin = chart.plot(chartData, settings);
+ ams.executeFunctionByName(data.amsChartAfterInitCallback, chart, plugin, settings);
+ });
+ });
}
},
@@ -4797,11 +4902,11 @@
graphs: function(element) {
var graphs = $('.sparkline', element);
if (graphs.length > 0) {
- ams.ajax.check(ams.graphs,
- ams.baseURL + 'myams-graphs' + ams.devext + '.js',
- function() {
- ams.graphs.init(graphs);
- });
+ ams.ajax && ams.ajax.check(ams.graphs,
+ ams.baseURL + 'myams-graphs' + ams.devext + '.js',
+ function() {
+ ams.graphs.init(graphs);
+ });
}
},
@@ -4811,29 +4916,29 @@
scrollbars: function(element) {
var scrollbars = $('.scrollbar', element);
if (scrollbars.length > 0) {
- ams.ajax.check($.event.special.mousewheel,
- ams.baseURL + 'ext/jquery-mousewheel.min.js',
- function() {
- ams.ajax.check($.fn.mCustomScrollbar,
- ams.baseURL + 'ext/jquery-mCustomScrollbar' + ams.devext + '.js',
- function() {
- ams.getCSS(ams.baseURL + '../css/ext/jquery-mCustomScrollbar.css',
- 'jquery-mCustomScrollbar',
- function () {
- scrollbars.each(function () {
- var scrollbar = $(this);
- var data = scrollbar.data();
- var dataOptions = {
- theme: data.amsScrollbarTheme || 'light'
- };
- 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);
- });
- });
- });
- });
+ ams.ajax && ams.ajax.check($.event.special.mousewheel,
+ ams.baseURL + 'ext/jquery-mousewheel.min.js',
+ function() {
+ ams.ajax.check($.fn.mCustomScrollbar,
+ ams.baseURL + 'ext/jquery-mCustomScrollbar' + ams.devext + '.js',
+ function() {
+ ams.getCSS(ams.baseURL + '../css/ext/jquery-mCustomScrollbar.css',
+ 'jquery-mCustomScrollbar',
+ function() {
+ scrollbars.each(function() {
+ var scrollbar = $(this);
+ var data = scrollbar.data();
+ var dataOptions = {
+ theme: data.amsScrollbarTheme || 'light'
+ };
+ 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);
+ });
+ });
+ });
+ });
}
}
});
@@ -4941,7 +5046,7 @@
var message = data.amsAlertMessage || settings.message;
var subtitle = data.amsAlertSubtitle || settings.subtitle;
var margin = data.amsAlertMargin === undefined ? (settings.margin === undefined ? false : settings.margin) : data.amsAlertMargin;
- ams.skin.alert(parent, status, header, message, subtitle, margin);
+ ams.skin && ams.skin.alert(parent, status, header, message, subtitle, margin);
},
/**
@@ -4970,7 +5075,7 @@
});
var status = data.amsMessageboxStatus || dataOptions.status || 'info';
var callback = ams.getFunctionByName(data.amsMessageboxCallback || dataOptions.callback);
- ams.skin.messageBox(status, settings, callback);
+ ams.skin && ams.skin.messageBox(status, settings, callback);
},
/**
@@ -4999,7 +5104,7 @@
});
var status = data.amsSmallboxStatus || dataOptions.status || 'info';
var callback = ams.getFunctionByName(data.amsSmallboxCallback || dataOptions.callback);
- ams.skin.smallBox(status, settings, callback);
+ ams.skin && ams.skin.smallBox(status, settings, callback);
}
};
@@ -5069,7 +5174,7 @@
deleteElement: function() {
return function() {
var link = $(this);
- ams.skin.bigBox({
+ ams.skin && ams.skin.bigBox({
title: ams.i18n.WARNING,
content: '<i class="text-danger fa fa-fw fa-bell"></i> ' + ams.i18n.DELETE_WARNING,
status: 'info',
@@ -5084,7 +5189,7 @@
}
var deleteTarget = tr.data('ams-delete-target') || table.data('ams-delete-target') || 'delete-element.json';
var objectName = tr.data('ams-element-name');
- ams.ajax.post(location + deleteTarget, {'object_name': objectName}, function(result, status) {
+ ams.ajax && ams.ajax.post(location + deleteTarget, {'object_name': objectName}, function(result, status) {
if (result.status === 'success') {
if (table.hasClass('datatable')) {
table.dataTable().fnDeleteRow(tr[0]);
@@ -5092,10 +5197,10 @@
tr.remove();
}
if (result.handle_json) {
- ams.ajax.handleJSON(result);
+ ams.ajax && ams.ajax.handleJSON(result);
}
} else {
- ams.ajax.handleJSON(result);
+ ams.ajax && ams.ajax.handleJSON(result);
}
});
}
@@ -5113,8 +5218,8 @@
var row = source.parents('tr').first();
var table = row.parents('table');
$('i', source).attr('class', 'fa fa-fw fa-spinner fa-pulse');
- ams.ajax.post(table.data('ams-location') + '/' +
- (cell.data('ams-attribute-switcher') || table.data('ams-attribute-switcher')),
+ ams.ajax && ams.ajax.post(table.data('ams-location') + '/' +
+ (cell.data('ams-attribute-switcher') || table.data('ams-attribute-switcher')),
{object_name: row.data('ams-element-name')},
function(result, status) {
if (result.visible) {
@@ -5137,8 +5242,8 @@
var row = source.parents('tr').first();
var table = row.parents('table');
$('i', source).attr('class', 'fa fa-fw fa-spinner fa-pulse');
- ams.ajax.post(table.data('ams-location') + '/' +
- (cell.data('ams-attribute-switcher') || table.data('ams-attribute-switcher')),
+ ams.ajax && ams.ajax.post(table.data('ams-location') + '/' +
+ (cell.data('ams-attribute-switcher') || table.data('ams-attribute-switcher')),
{object_name: row.data('ams-element-name')},
function(result, status) {
if (result[attribute] || result['on']) {
@@ -5189,7 +5294,7 @@
var sourceName = tr.data('ams-element-name');
switcher.removeClass('fa-plus-square-o')
.addClass('fa-cog fa-spin');
- ams.ajax.post(location + '/' + sourceName + '/' + treeNodesTarget, {
+ ams.ajax && ams.ajax.post(location + '/' + sourceName + '/' + treeNodesTarget, {
can_sort: !$('td.sorter', tr).is(':empty')
}, function(result, status) {
if (result.length > 0) {
@@ -5197,8 +5302,8 @@
for (var index = 0; index < result.length; index++) {
var new_row = $(result[index]);
new_row.insertAfter(old_row)
- .addClass('no-drag-handle');
- ams.initContent(new_row);
+ .addClass('no-drag-handle');
+ ams.initContent && ams.initContent(new_row);
old_row = new_row;
}
if (table.hasClass('table-dnd')) {
@@ -5206,7 +5311,7 @@
}
}
switcher.removeClass('fa-cog fa-spin')
- .addClass('fa-minus-square-o');
+ .addClass('fa-minus-square-o');
});
}
},
@@ -5222,14 +5327,14 @@
if (switcher.hasClass('fa-minus-square-o')) {
$('tr[data-ams-tree-node-parent-id]').filter('tr[data-ams-tree-node-parent-id!="' + tableID + '"]').remove();
$('i.switch', table).removeClass('fa-minus-square-o')
- .addClass('fa-plus-square-o');
+ .addClass('fa-plus-square-o');
} else {
var tr = $('tbody tr', table).first();
var location = table.data('ams-location') || '';
var target = table.data('ams-tree-nodes-target') || 'get-tree.json';
switcher.removeClass('fa-plus-square-o')
- .addClass('fa-cog fa-spin');
- ams.ajax.post(location + '/' + target, {
+ .addClass('fa-cog fa-spin');
+ ams.ajax && ams.ajax.post(location + '/' + target, {
can_sort: !$('td.sorter', tr).is(':empty')
}, function(result, status) {
$('tr[data-ams-tree-node-id]', table).remove();
@@ -5242,16 +5347,16 @@
new_row.insertAfter(old_row);
}
new_row.addClass('no-drag-handle');
- ams.initContent(new_row);
+ ams.initContent && ams.initContent(new_row);
old_row = new_row;
}
if (table.hasClass('table-dnd')) {
table.tableDnDUpdate();
}
$('i.switch', table).removeClass('fa-plus-square-o')
- .addClass('fa-minus-square-o');
+ .addClass('fa-minus-square-o');
switcher.removeClass('fa-cog fa-spin')
- .addClass('fa-minus-square-o');
+ .addClass('fa-minus-square-o');
});
}
},
@@ -5313,7 +5418,7 @@
}
// Call ordering target
var localTarget = ams.getFunctionByName(target);
- if (typeof(localTarget) === 'function') {
+ if (typeof (localTarget) === 'function') {
localTarget.call(table, dnd_table, post_data);
} else {
if (!target.startsWith(window.location.protocol)) {
@@ -5329,7 +5434,7 @@
order: JSON.stringify($('tr[data-ams-tree-node-id]').listattr('data-ams-tree-node-id')),
can_sort: !$('td.sorter', row).is(':empty')
};
- ams.ajax.post(target, post_data, function(result) {
+ ams.ajax && ams.ajax.post(target, post_data, function(result) {
function removeChildRows(rowID) {
var childs = $('tr[data-ams-tree-node-parent-id="' + rowID + '"]');
@@ -5361,7 +5466,7 @@
new_row.prependTo(body)
.addClass('no-drag-handle');
}
- ams.initContent(new_row);
+ ams.initContent && ams.initContent(new_row);
old_row = new_row;
}
}
@@ -5396,7 +5501,6 @@
*/
_setPageHeight: function() {
var mainHeight = $('#main').height();
- var menuHeight = ams.leftPanel.height();
var windowHeight = $(window).height() - ams.navbarHeight;
if (mainHeight > windowHeight) {
ams.root.css('min-height', mainHeight + ams.navbarHeight);
@@ -5422,16 +5526,16 @@
* Show/hide shortcut buttons
*/
_showShortcutButtons: function() {
- ams.shortcuts.animate({
- height: 'show'
- }, 200, 'easeOutCirc');
+ ams.shortcuts && ams.shortcuts.animate({
+ height: 'show'
+ }, 200, 'easeOutCirc');
ams.root.addClass('shortcut-on');
},
_hideShortcutButtons: function() {
- ams.shortcuts.animate({
- height: 'hide'
- }, 300, 'easeOutCirc');
+ ams.shortcuts && ams.shortcuts.animate({
+ height: 'hide'
+ }, 300, 'easeOutCirc');
ams.root.removeClass('shortcut-on');
},
@@ -5442,10 +5546,10 @@
var badge = $('.badge', '#user-activity >span');
if (parseInt(badge.text()) > 0) {
badge.removeClass("hidden")
- .addClass("bg-color-red bounceIn animated");
+ .addClass("bg-color-red bounceIn animated");
} else {
badge.addClass("hidden")
- .removeClass("bg-color-red bounceIn animated");
+ .removeClass("bg-color-red bounceIn animated");
}
},
@@ -5465,7 +5569,7 @@
var target = $('[id="' + options.object_id + '"]');
target.replaceWith($(options.content));
target = $('[id="' + options.object_id + '"]');
- ams.initContent(target);
+ ams.initContent && ams.initContent(target);
return target;
},
@@ -5487,7 +5591,7 @@
}
var label = widget.parents('.input').last();
label.html(options.content);
- ams.initContent(label);
+ ams.initContent && ams.initContent(label);
return label;
},
@@ -5498,7 +5602,7 @@
var widget = $('[id="' + options.object_id + '"]').parents('.ams-widget:first');
widget.replaceWith($(options.table));
widget = $('[id="' + options.object_id + '"]').parents('.ams-widget:first');
- ams.initContent(widget);
+ ams.initContent && ams.initContent(widget);
return widget;
},
@@ -5508,9 +5612,11 @@
*/
refreshSwitchedTable: function(options) {
var widget = ams.skin.refreshTable(options);
- var legend = widget.siblings('legend');
- if (legend.parents('fieldset:first').hasClass('switched')) {
- legend.click();
+ if (widget) {
+ var legend = widget.siblings('legend');
+ if (legend.parents('fieldset:first').hasClass('switched')) {
+ legend.click();
+ }
}
},
@@ -5522,7 +5628,7 @@
var table = tr.parents('table').first();
var new_tr = $(options.row);
tr.replaceWith(new_tr);
- ams.initContent(new_tr);
+ ams.initContent && ams.initContent(new_tr);
if (table.hasClass('table-dnd')) {
new_tr.addClass('no-drag-handle');
table.tableDnDUpdate();
@@ -5542,7 +5648,7 @@
if (index > -1) {
var cell = $($('td', tr).get(index));
cell.html(options.cell);
- ams.initContent(cell);
+ ams.initContent && ams.initContent(cell);
}
},
@@ -5555,21 +5661,21 @@
if (switcher.hasClass('fa-plus-square-o')) {
var container = datatype.parents('table');
innerdiv.html('<h1 class="loading"><i class="fa fa-gear fa-spin"></i></h1>');
- ams.ajax.post(container.data('ams-location') + '/' + source.data('ams-switch-handler'),
- {object_name: datatype.data('ams-element-name')},
- function (result) {
- innerdiv.html(result);
- if (result) {
- ams.initContent(innerdiv);
- switcher.removeClass('fa-plus-square-o')
- .addClass('fa-minus-square-o');
- }
- });
+ ams.ajax && ams.ajax.post(container.data('ams-location') + '/' + source.data('ams-switch-handler'),
+ {object_name: datatype.data('ams-element-name')},
+ function(result) {
+ innerdiv.html(result);
+ if (result) {
+ ams.initContent && ams.initContent(innerdiv);
+ switcher.removeClass('fa-plus-square-o')
+ .addClass('fa-minus-square-o');
+ }
+ });
} else {
ams.skin.cleanContainer(innerdiv);
innerdiv.empty();
switcher.removeClass('fa-minus-square-o')
- .addClass('fa-plus-square-o');
+ .addClass('fa-plus-square-o');
}
},
@@ -5580,22 +5686,22 @@
if (ams.enableWidgets) {
var widgets = $('.ams-widget', element);
if (widgets.length > 0) {
- ams.ajax.check($.fn.MyAMSWidget,
- ams.baseURL + 'myams-widgets' + ams.devext + '.js',
- function () {
- widgets.each(function () {
- var widget = $(this);
- var data = widget.data();
- var dataOptions = {
- deleteSettingsKey: '#deletesettingskey-options',
- deletePositionKey: '#deletepositionkey-options'
- };
- var settings = $.extend({}, dataOptions, data.amsWidgetOptions);
- settings = ams.executeFunctionByName(data.amsWidgetInitcallback, widget, settings) || settings;
- widget.MyAMSWidget(settings);
- });
- globals.MyAMSWidget.initWidgetsGrid($('.ams-widget-grid', element));
- });
+ ams.ajax && ams.ajax.check($.fn.MyAMSWidget,
+ ams.baseURL + 'myams-widgets' + ams.devext + '.js',
+ function() {
+ widgets.each(function() {
+ var widget = $(this);
+ var data = widget.data();
+ var dataOptions = {
+ deleteSettingsKey: '#deletesettingskey-options',
+ deletePositionKey: '#deletepositionkey-options'
+ };
+ var settings = $.extend({}, dataOptions, data.amsWidgetOptions);
+ settings = ams.executeFunctionByName(data.amsWidgetInitcallback, widget, settings) || settings;
+ widget.MyAMSWidget(settings);
+ });
+ globals.MyAMSWidget.initWidgetsGrid($('.ams-widget-grid', element));
+ });
}
}
},
@@ -5627,7 +5733,7 @@
'<i class="fa fa-fw fa-warning"></i> ' + header +
'</h4>' +
(subtitle ? ('<p>' + subtitle + '</p>') : '');
- if (typeof(message) === 'string') {
+ if (typeof (message) === 'string') {
content += '<ul><li>' + message + '</li></ul>';
} else if (message) {
content += '<ul>';
@@ -5650,73 +5756,73 @@
* Big message box
*/
bigBox: function(options, callback) {
- ams.ajax.check(ams.notify,
- ams.baseURL + 'myams-notify' + ams.devext + '.js',
- function() {
- ams.notify.messageBox(options, callback);
- });
+ ams.ajax && ams.ajax.check(ams.notify,
+ ams.baseURL + 'myams-notify' + ams.devext + '.js',
+ function() {
+ ams.notify.messageBox(options, callback);
+ });
},
/**
* Medium notification message box, displayed on page's bottom right
*/
messageBox: function(status, options, callback) {
- if (typeof(status) === 'object') {
+ if (typeof (status) === 'object') {
callback = options;
options = status || {};
status = 'info';
}
- ams.ajax.check(ams.notify,
- ams.baseURL + 'myams-notify' + ams.devext + '.js',
- function() {
- switch (status) {
- case 'error':
- case 'danger':
- options.color = '#C46A69';
- break;
- case 'warning':
- options.color = '#C79121';
- break;
- case 'success':
- options.color = '#739E73';
- break;
- default:
- options.color = options.color || '#3276B1';
- }
- options.sound = false;
- ams.notify.bigBox(options, callback);
- });
+ ams.ajax && ams.ajax.check(ams.notify,
+ ams.baseURL + 'myams-notify' + ams.devext + '.js',
+ function() {
+ switch (status) {
+ case 'error':
+ case 'danger':
+ options.color = '#C46A69';
+ break;
+ case 'warning':
+ options.color = '#C79121';
+ break;
+ case 'success':
+ options.color = '#739E73';
+ break;
+ default:
+ options.color = options.color || '#3276B1';
+ }
+ options.sound = false;
+ ams.notify.bigBox(options, callback);
+ });
},
/**
* Small notification message box, displayed on page's top right
*/
smallBox: function(status, options, callback) {
- if (typeof(status) === 'object') {
+ if (typeof (status) === 'object') {
callback = options;
options = status || {};
status = 'info';
}
- ams.ajax.check(ams.notify,
- ams.baseURL + 'myams-notify' + ams.devext + '.js',
- function () {
- switch (status) {
- case 'error':
- case 'danger':
- options.color = '#C46A69';
- break;
- case 'warning':
- options.color = '#C79121';
- break;
- case 'success':
- options.color = '#739E73';
- break;
- default:
- options.color = options.color || '#3276B1';
- }
- options.sound = false;
- ams.notify.smallBox(options, callback);
- });
+ ams.ajax && ams.ajax.check(ams.notify,
+ ams.baseURL + 'myams-notify' + ams.devext + '.js',
+ function() {
+ switch (status) {
+ case 'error':
+ case 'danger':
+ options.color = '#C46A69';
+ break;
+ case 'warning':
+ options.color = '#C79121';
+ break;
+ case 'success':
+ options.color = '#739E73';
+ break;
+ default:
+ options.color = options.color || '#3276B1';
+ }
+ options.sound = false;
+ ams.notify.smallBox(options, callback);
+ });
},
/**
@@ -5726,20 +5832,20 @@
* @param options: scroll options
*/
scrollTo: function(element, options) {
- ams.ajax.check($.scrollTo,
- ams.baseURL + 'ext/jquery-scrollto-2.1.2' + ams.devext + '.js',
- function() {
- var body = $('body');
- var offset = options.offset || 0;
- if (body.hasClass('fixed-header')) {
- offset -= $('#header').height();
- }
- if (body.hasClass('fixed-ribbon')) {
- offset -= $('#ribbon').height();
- }
- options = $.extend({}, options, {offset: offset});
- $.scrollTo(element, options);
- });
+ ams.ajax && ams.ajax.check($.scrollTo,
+ ams.baseURL + 'ext/jquery-scrollto-2.1.2' + ams.devext + '.js',
+ function() {
+ var body = $('body');
+ var offset = options.offset || 0;
+ if (body.hasClass('fixed-header')) {
+ offset -= $('#header').height();
+ }
+ if (body.hasClass('fixed-ribbon')) {
+ offset -= $('#ribbon').height();
+ }
+ options = $.extend({}, options, {offset: offset});
+ $.scrollTo(element, options);
+ });
},
/**
@@ -5750,8 +5856,8 @@
$('li', crumb).not('.parent').remove();
if (!$('li', crumb).exists()) {
crumb.append($('<li></li>').append($('<a></a>').text(ams.i18n.HOME)
- .addClass('padding-right-5')
- .attr('href', $('nav a[href!="#"]:first').attr('href'))));
+ .addClass('padding-right-5')
+ .attr('href', $('nav a[href!="#"]:first').attr('href'))));
}
$('LI.active >A', 'nav').each(function() {
var menu = $(this);
@@ -5761,8 +5867,8 @@
.end()
.text());
var item = $("<li></li>").append(menu.attr('href').replace(/^#/, '') ?
- $("<a></a>").html(body).attr('href', menu.attr('href'))
- : body);
+ $("<a></a>").html(body).attr('href', menu.attr('href'))
+ : body);
crumb.append(item);
});
},
@@ -5797,13 +5903,15 @@
if (menu.exists()) {
updateActiveMenus(menu);
}
- ams.skin.loadURL(url, container, {afterLoadCallback: function() {
- var prefix = $('html head title').data('ams-title-prefix');
- document.title = (prefix ? prefix + ' > ' : '') +
- ($('[data-ams-page-title]:first', container).data('ams-page-title') ||
- menu.attr('title') ||
- document.title);
- }});
+ ams.skin.loadURL(url, container, {
+ afterLoadCallback: function() {
+ var prefix = $('html head title').data('ams-title-prefix');
+ document.title = (prefix ? prefix + ' > ' : '') +
+ ($('[data-ams-page-title]:first', container).data('ams-page-title') ||
+ menu.attr('title') ||
+ document.title);
+ }
+ });
} else {
var activeUrl = $('[data-ams-active-menu]').data('ams-active-menu');
if (activeUrl) {
@@ -5855,7 +5963,7 @@
*/
cleanContainer: function(container) {
var callbacks = ams.skin._clean_callbacks;
- for (var index=0; index < callbacks.length; index++) {
+ for (var index = 0; index < callbacks.length; index++) {
callbacks[index].call(container);
}
},
@@ -5867,7 +5975,7 @@
if (url.startsWith('#')) {
url = url.substr(1);
}
- if (typeof(options) === 'function') {
+ if (typeof (options) === 'function') {
callback = options;
options = {};
} else if (options === undefined) {
@@ -5898,44 +6006,46 @@
if (callback) {
ams.executeFunctionByName(callback, this, data, status, request, options);
} else {
- var response = ams.ajax.getResponse(request);
- var dataType = response.contentType;
- var result = response.data;
- $('.loading', container).remove();
- switch (dataType) {
- case 'json':
- ams.ajax.handleJSON(result, container);
- break;
- case 'script':
- break;
- case 'xml':
- break;
- case 'html':
+ var response = ams.ajax && ams.ajax.getResponse(request);
+ if (response) {
+ var dataType = response.contentType;
+ var result = response.data;
+ $('.loading', container).remove();
+ switch (dataType) {
+ case 'json':
+ ams.ajax.handleJSON(result, container);
+ break;
+ case 'script':
+ break;
+ case 'xml':
+ break;
+ case 'html':
/* falls through */
- case 'text':
+ case 'text':
/* falls through */
- default:
- // Show and init container
- container.parents('.hidden').removeClass('hidden');
- $('.alert', container.parents('.alerts-container')).remove();
- container.css({opacity: '0.0'})
- .html(data)
- .removeClass('hidden')
- .delay(50)
- .animate({opacity: '1.0'}, 300);
- ams.initContent(container);
- ams.form.setFocus(container);
+ default:
+ // Show and init container
+ container.parents('.hidden').removeClass('hidden');
+ $('.alert', container.parents('.alerts-container')).remove();
+ container.css({opacity: '0.0'})
+ .html(data)
+ .removeClass('hidden')
+ .delay(50)
+ .animate({opacity: '1.0'}, 300);
+ ams.initContent && ams.initContent(container);
+ ams.form && ams.form.setFocus(container);
+ }
+ if (options && options.afterLoadCallback) {
+ ams.executeFunctionByName(options.afterLoadCallback, this, options.afterLoadCallbackOptions);
+ }
+ ams.stats && ams.stats.logPageview();
}
- if (options && options.afterLoadCallback) {
- ams.executeFunctionByName(options.afterLoadCallback, this, options.afterLoadCallbackOptions);
- }
- ams.stats.logPageview();
}
},
error: function(request, errorOptions, error) {
container.html('<h3 class="error"><i class="fa fa-warning txt-color-orangeDark"></i> ' +
- ams.i18n.ERROR + error + '</h3>' +
- request.responseText);
+ ams.i18n.ERROR + error + '</h3>' +
+ request.responseText);
if (options && options.afterErrorCallback) {
ams.executeFunctionByName(options.afterErrorCallback, this);
}
@@ -5955,13 +6065,13 @@
switch (handlerType) {
case 'json':
var method = options.method || 'setUserLanguage';
- ams.jsonrpc.post(method, {lang: lang}, function() {
+ ams.jsonrpc && ams.jsonrpc.post(method, {lang: lang}, function() {
window.location.reload(true);
});
break;
case 'ajax':
var href = options.href || 'setUserLanguage';
- ams.ajax.post(href, {lang: lang}, function() {
+ ams.ajax && ams.ajax.post(href, {lang: lang}, function() {
window.location.reload(true);
});
break;
@@ -6052,8 +6162,8 @@
}
}
},
- progress: ams.ajax.progress,
- progressUpload: ams.ajax.progress,
+ progress: ams.ajax && ams.ajax.progress,
+ progressUpload: ams.ajax && ams.ajax.progress,
xhr: function() {
var request = xhr();
if (request && (typeof(request.addEventListener) === "function")) {
@@ -6067,9 +6177,9 @@
return request;
}
});
- $(document).ajaxStart(ams.ajax.start);
- $(document).ajaxStop(ams.ajax.stop);
- $(document).ajaxError(ams.error.ajax);
+ $(document).ajaxStart(ams.ajax && ams.ajax.start);
+ $(document).ajaxStop(ams.ajax && ams.ajax.stop);
+ $(document).ajaxError(ams.error && ams.error.ajax);
// Check for minified state in local storage
var state = globals.localStorage && globals.localStorage.getItem('window-state');
@@ -6085,32 +6195,32 @@
ams.root.addClass('mobile-detected');
ams.device = 'mobile';
if (ams.enableFastclick) {
- ams.ajax.check($.fn.noClickDelay,
- ams.baseURL + '/ext/jquery-smartclick' + ams.devext + '.js',
- function() {
- $('NAV UL A').noClickDelay();
- $('A', '#hide-menu').noClickDelay();
- });
+ ams.ajax && ams.ajax.check($.fn.noClickDelay,
+ ams.baseURL + '/ext/jquery-smartclick' + ams.devext + '.js',
+ function() {
+ $('NAV UL A').noClickDelay();
+ $('A', '#hide-menu').noClickDelay();
+ });
}
}
// Switch shortcuts
$('#show-shortcuts').click(function(e) {
if (ams.shortcuts.is(":visible")) {
- ams.skin._hideShortcutButtons();
+ ams.skin && ams.skin._hideShortcutButtons();
} else {
- ams.skin._showShortcutButtons();
+ ams.skin && ams.skin._showShortcutButtons();
}
e.preventDefault();
});
ams.shortcuts.click(function(e) {
- ams.skin._hideShortcutButtons();
+ ams.skin && ams.skin._hideShortcutButtons();
});
$(document).mouseup(function(e) {
if (!ams.shortcuts.is(e.target) &&
ams.shortcuts.has(e.target).length === 0) {
- ams.skin._hideShortcutButtons();
+ ams.skin && ams.skin._hideShortcutButtons();
}
});
@@ -6137,7 +6247,7 @@
}
e.preventDefault();
});
- ams.skin.checkNotification();
+ ams.skin && ams.skin.checkNotification();
$(document).mouseup(function(e) {
var dropdown = $('.ajax-dropdown');
@@ -6162,7 +6272,7 @@
href.call(this);
} else {
var container = $('.ajax-notifications');
- ams.skin.loadURL(href, container);
+ ams.skin && ams.skin.loadURL(href, container);
}
}
});
@@ -6174,7 +6284,7 @@
//get the link
ams.loginURL = $(this).attr('href');
// ask verification
- ams.skin.bigBox({
+ ams.skin && ams.skin.bigBox({
title : "<i class='fa fa-sign-out txt-color-orangeDark'></i> " + ams.i18n.LOGOUT +
" <span class='txt-color-orangeDark'><strong>" + $('#show-shortcut').text() + "</strong></span> ?",
content : ams.i18n.LOGOUT_COMMENT,
@@ -6223,7 +6333,7 @@
// Reset widgets
$('#refresh').click(function(e) {
- ams.skin.bigBox({
+ ams.skin && ams.skin.bigBox({
title: "<i class='fa fa-refresh' style='color: green'></i> " + ams.i18n.CLEAR_STORAGE_TITLE,
content: ams.i18n.CLEAR_STORAGE_CONTENT,
buttons: '['+ams.i18n.BTN_CANCEL+']['+ams.i18n.BTN_OK+']'
@@ -6247,17 +6357,17 @@
});
// Resize events
- ams.ajax.check($.resize,
- ams.baseURL + 'ext/jquery-resize' + ams.devext + '.js',
- function() {
- $('#main').resize(function() {
- ams.skin._setPageHeight();
- ams.skin._checkMobileWidth();
- });
- nav.resize(function() {
- ams.skin._setPageHeight();
- });
- });
+ ams.ajax && ams.ajax.check($.resize,
+ ams.baseURL + 'ext/jquery-resize' + ams.devext + '.js',
+ function() {
+ $('#main').resize(function() {
+ ams.skin._setPageHeight();
+ ams.skin._checkMobileWidth();
+ });
+ nav.resize(function() {
+ ams.skin._setPageHeight();
+ });
+ });
// Init AJAX navigation
if (ams.ajaxNav) {
@@ -6304,16 +6414,16 @@
} else {
var target = link.data('ams-target');
if (target) {
- ams.form.confirmChangedForm(target, function () {
- ams.skin.loadURL(href, target, link.data('ams-link-options'), link.data('ams-link-callback'));
+ ams.form && ams.form.confirmChangedForm(target, function () {
+ ams.skin && ams.skin.loadURL(href, target, link.data('ams-link-options'), link.data('ams-link-callback'));
});
} else {
- ams.form.confirmChangedForm(function () {
+ ams.form && ams.form.confirmChangedForm(function() {
if (href.startsWith('#')) {
if (href !== location.hash) {
if (ams.root.hasClass('mobile-view-activated')) {
ams.root.removeClass('hidden-menu');
- window.setTimeout(function () {
+ window.setTimeout(function() {
window.location.hash = href;
}, 50);
} else {
@@ -6332,19 +6442,19 @@
e.preventDefault();
var target = $(e.currentTarget);
window.open(target.attr('href'));
- ams.stats.logEvent(target.data('ams-stats-category') || 'Navigation',
- target.data('ams-stats-action') || 'External',
- target.data('ams-stats-label') || target.attr('href'));
+ ams.stats && ams.stats.logEvent(target.data('ams-stats-category') || 'Navigation',
+ target.data('ams-stats-action') || 'External',
+ target.data('ams-stats-label') || target.attr('href'));
});
$(document).on('click', 'a[target="_top"]', function(e) {
e.preventDefault();
- ams.form.confirmChangedForm(function() {
+ ams.form && ams.form.confirmChangedForm(function() {
window.location = $(e.currentTarget).attr('href');
});
});
// Check URL when hash changed
- $(window).on('hashchange', ams.skin.checkURL);
+ $(window).on('hashchange', ams.skin && ams.skin.checkURL);
}
// Initialize modal dialogs links
@@ -6362,7 +6472,7 @@
e.stopPropagation();
}
e.preventDefault();
- ams.dialog.open(source);
+ ams.dialog && ams.dialog.open(source);
if (source.parents('#shortcut').exists()) {
setTimeout(ams.skin._hideShortcutButtons, 300);
}
@@ -6465,7 +6575,7 @@
}
});
}, 10);
- ams.form.setFocus(form);
+ ams.form && ams.form.setFocus(form);
});
// Initialize custom reset handlers
@@ -6547,7 +6657,7 @@
return;
}
link.append('<i class="fa fa-spin fa-cog margin-left-5"></i>');
- ams.skin.loadURL(data.amsUrl, link.attr('href'), {
+ ams.skin && ams.skin.loadURL(data.amsUrl, link.attr('href'), {
afterLoadCallback: function() {
if (data.amsTabLoadOnce) {
link.data('ams-tab-loaded', true);
@@ -6564,7 +6674,7 @@
// Check modal form dialogs on close
$(document).on('hide.bs.modal', function(e) {
var modal = $(e.target);
- ams.form.confirmChangedForm(modal, function() {
+ ams.form && ams.form.confirmChangedForm(modal, function() {
// Confirm closing if OK
var bsModal = modal.data('modal') || modal.data('bs.modal');
if (bsModal) {
@@ -6580,18 +6690,18 @@
// Enable custom MyAMS refresh events
$(document).on('myams.refresh', function(event, options) {
- ams.executeFunctionByName(options.handler || ams.skin.refreshContent, event.target, options);
+ ams.executeFunctionByName(options.handler || (ams.skin && ams.skin.refreshContent), event.target, options);
});
// Init page content
ams.initContent(document);
if (ams.ajaxNav && nav.exists()) {
- ams.skin.checkURL();
+ ams.skin && ams.skin.checkURL();
}
- ams.form.setFocus(document);
+ ams.form && ams.form.setFocus(document);
// Add unload event listener to check for modified forms
- $(window).on('beforeunload', ams.form.checkBeforeUnload);
+ $(window).on('beforeunload', ams.form && ams.form.checkBeforeUnload);
};
@@ -6616,108 +6726,19 @@
});
// Init registered plug-ins and callbacks
- ams.plugins.init(element);
- ams.callbacks.init(element);
- ams.events.init(element);
- ams.form.init(element);
+ ams.plugins && ams.plugins.init(element);
+ ams.callbacks && ams.callbacks.init(element);
+ ams.events && ams.events.init(element);
+ ams.form && ams.form.init(element);
// Initialize widgets
if (ams.device === 'desktop') {
- ams.skin._initDesktopWidgets(element);
+ ams.skin && ams.skin._initDesktopWidgets(element);
} else {
- ams.skin._initMobileWidgets(element);
+ ams.skin && ams.skin._initMobileWidgets(element);
}
- ams.skin._setPageHeight();
-
- };
-
-
- /**
- * MyAMS locale strings
- */
- ams.i18n = {
-
- INFO: "Information",
- WARNING: "!! WARNING !!",
- ERROR: "ERROR: ",
-
- LOADING: "Loading...",
- PROGRESS: "Processing",
-
- WAIT: "Please wait!",
- FORM_SUBMITTED: "This form was already submitted...",
- NO_SERVER_RESPONSE: "No response from server!",
-
- ERROR_OCCURED: "An error occured!",
- ERRORS_OCCURED: "Some errors occured!",
-
- BAD_LOGIN_TITLE: "Bad login!",
- BAD_LOGIN_MESSAGE: "Your anthentication credentials didn't allow you to open a session; " +
- "please check your credentials or contact administrator.",
-
- CONFIRM: "Confirm",
- CONFIRM_REMOVE: "Removing this content can't be undone. Do you confirm?",
-
- CLEAR_STORAGE_TITLE: "Clear Local Storage",
- CLEAR_STORAGE_CONTENT: "Would you like to RESET all your saved widgets and clear LocalStorage?",
-
- BTN_OK: "OK",
- BTN_CANCEL: "Cancel",
- BTN_OK_CANCEL: "[OK][Cancel]",
- BTN_YES: "Yes",
- BTN_NO: "No",
- BTN_YES_NO: "[Yes][No]",
-
- CLIPBOARD_COPY: "Copy to clipboard with Ctrl+C, and Enter",
- CLIPBOARD_CHARACTER_COPY_OK: "Character copied to clipboard",
- CLIPBOARD_TEXT_COPY_OK: "Text copied to clipboard",
-
- FORM_CHANGED_WARNING: "Some changes were not saved. These updates will be lost if you leave this page.",
- DELETE_WARNING: "This change can't be undone. Are you sure that you want to delete this element?",
- NO_UPDATE: "No changes were applied.",
- DATA_UPDATED: "Data successfully updated.",
-
- HOME: "Home",
- LOGOUT: "Logout?",
- LOGOUT_COMMENT: "You can improve your security further after logging out by closing this opened browser",
-
- SELECT2_PLURAL: 's',
- SELECT2_MATCH: "One result is available, press enter to select it.",
- SELECT2_MATCHES: " results are available, use up and down arrow keys to navigate.",
- SELECT2_NOMATCHES: "No matches found",
- SELECT2_SEARCHING: "Searching...",
- SELECT2_LOADMORE: "Loading more results...",
- SELECT2_INPUT_TOOSHORT: "Please enter {0} more character{1}",
- SELECT2_INPUT_TOOLONG: "Please delete {0} character{1}",
- SELECT2_SELECTION_TOOBIG: "You can only select {0} item{1}",
- SELECT2_FREETAG_PREFIX: "Free text: ",
-
- DT_COLUMNS: "Columns"
- }
-
- ams.plugins.i18n = {
- widgets: {},
- validate: {},
- datatables: {},
- fancybox: {
- ERROR: "Can't load requested content.",
- RETRY: "Please check URL or try again later.",
- CLOSE: "Close",
- NEXT: "Next",
- PREVIOUS: "Previous"
- },
- dndupload: {
- FILES_SELECTED: '{count} files selected',
- CHOOSE_FILE: 'Select file(s)',
- ADD_INFO: 'to add them to current folder,',
- DRAG_FILE: 'or drag and drop them here!',
- UPLOAD: 'Upload',
- UPLOADING: 'Uploading…',
- DONE: 'Done!',
- UPLOAD_MORE: 'Upload more?',
- ERROR: 'Error!',
- TRY_AGAIN: 'Try again?'
- }
+ ams.skin && ams.skin._setPageHeight();
+
};