--- a/src/ztfy/myams/resources/js/myams.js Wed Oct 05 17:33:07 2016 +0200
+++ b/src/ztfy/myams/resources/js/myams.js Wed Oct 05 17:35:51 2016 +0200
@@ -1400,7 +1400,8 @@
function _submitAjaxForm(form, options) {
var button,
- button_data;
+ button_data,
+ button_target;
var data = form.data();
var form_options = data.amsFormOptions;
var form_data;
@@ -1480,6 +1481,7 @@
button = $(form.data('ams-submit-button'));
if (button && button.exists()) {
button_data = button.data();
+ button_target = button_data.amsFormSubmitTarget;
} else {
button_data = {};
}
@@ -1509,7 +1511,7 @@
ams.executeFunctionByName(submit_options.initSubmitTarget, form);
} else {
if (data.amsFormInitSubmitTarget) {
- target = $(buttonTarget || data.amsFormSubmitTarget || '#content');
+ target = $(button_target || data.amsFormSubmitTarget || '#content');
ams.executeFunctionByName(data.amsFormInitSubmit || 'MyAMS.form.initSubmit', form, target);
} else if (!data.amsFormHideSubmitFooter) {
ams.executeFunctionByName(data.amsFormInitSubmit || 'MyAMS.form.initSubmitFooter', form);
@@ -1522,11 +1524,12 @@
}
// Check progress handler
+ var hasUpload;
if (progress_handler) {
form_data.progress_id = ams.generateUUID();
} else {
// Check progress meter via Apache progress module
- var hasUpload = typeof(options.uuid) !== 'undefined';
+ hasUpload = typeof(options.uuid) !== 'undefined';
if (hasUpload) {
if (url.indexOf('X-Progress-ID') < 0) {
url += "?X-Progress-ID=" + options.uuid;
@@ -1554,15 +1557,7 @@
if (target) {
ams.executeFunctionByName(data.amsFormSubmitError || 'MyAMS.form.finalizeSubmitOnError', form, target);
}
- if (form.is(':visible')) {
- var button = form.data('ams-submit-button');
- if (button) {
- button.button('reset');
- }
- ams.form.finalizeSubmitFooter.call(form);
- }
- form.data('submitted', false);
- form.removeData('ams-submit-button');
+ ams.form.resetAfterSubmit(form);
},
iframe: hasUpload
};
@@ -1595,11 +1590,7 @@
try {
callback.call(form, result, status, request, form);
} finally {
- if (form.is(':visible') && button) {
- button.button('reset');
- }
- form.data('submitted', false);
- form.removeData('ams-submit-button');
+ ams.form.resetAfterSubmit(form);
ams.form.resetChanged(form);
}
}
@@ -1611,15 +1602,7 @@
if (target) {
ams.executeFunctionByName(data.amsFormSubmitError || 'MyAMS.form.finalizeSubmitOnError', form, target);
}
- if (form.is(':visible')) {
- var button = form.data('ams-submit-button');
- if (button) {
- button.button('reset');
- }
- ams.form.finalizeSubmitFooter.call(form);
- }
- form.data('submitted', false);
- form.removeData('ams-submit-button');
+ ams.form.resetAfterSubmit(form);
},
success: function(result, status, request, form) {
var callback;
@@ -1633,11 +1616,7 @@
try {
callback.call(form, result, status, request, form);
} finally {
- if (form.is(':visible') && button) {
- button.button('reset');
- }
- form.data('submitted', false);
- form.removeData('ams-submit-button');
+ ams.form.resetAfterSubmit(form);
ams.form.resetChanged(form);
}
},
@@ -1657,17 +1636,12 @@
// If external download target is specified, reset form submit button and footer
if (download_target) {
var modal = $(form).parents('.modal-dialog');
- var keep_modal = modal.exists() && button && button.data('ams-keep-modal');
- if (keep_modal !== true) {
+ var keep_modal = modal.exists() && button.exists() && button.data('ams-keep-modal');
+ if (modal.exists() && (keep_modal !== true)) {
ams.dialog.close(form);
} else {
setTimeout(function() {
- ams.form.finalizeSubmitFooter.call(form);
- if (button) {
- button.button('reset');
- }
- form.data('submitted', false);
- form.removeData('ams-submit-button');
+ ams.form.resetAfterSubmit(form, button);
ams.form.resetChanged(form);
}, button.data('ams-form-reset-timeout') || 2000);
}
@@ -1715,6 +1689,23 @@
},
/**
+ * Reset form status after submit
+ *
+ * @param form: the submitted form
+ */
+ resetAfterSubmit: function(form) {
+ if (form.is(':visible')) {
+ var button = form.data('ams-submit-button');
+ if (button) {
+ button.button('reset');
+ }
+ ams.form.finalizeSubmitFooter.call(form);
+ }
+ form.data('submitted', false);
+ form.removeData('ams-submit-button');
+ },
+
+ /**
* Finalize AJAX submit call
*
* @param target: the form submit container target
@@ -1818,6 +1809,7 @@
case 'text':
/* falls through */
default:
+ ams.form.resetChanged(form);
if (button && (button.data('ams-keep-modal') !== true)) {
ams.dialog.close(form);
}
@@ -2109,6 +2101,9 @@
.on('shown', ams.dialog.shown)
.on('hidden', ams.dialog.hidden);
ams.initContent(content);
+ if (source_data.amsLogEvent !== false) {
+ ams.stats.logPageview(url);
+ }
}
}
});
@@ -4455,6 +4450,7 @@
if (options && options.afterLoadCallback) {
ams.executeFunctionByName(options.afterLoadCallback, this);
}
+ ams.stats.logPageview();
}
},
error: function(request, options, error) {
@@ -4505,6 +4501,17 @@
MyAMS.stats = {
/**
+ * Log current or specified page load
+ */
+ logPageview: function(url) {
+ if (typeof(globals._gaq) === 'undefined') {
+ return;
+ }
+ var location = globals.window.location;
+ globals._gaq.push(['_trackPageview', url || location.pathname + location.hash]);
+ },
+
+ /**
* Send event to Google Analytics platform
*
* @param category
@@ -4782,7 +4789,11 @@
});
$(document).on('click', 'a[target="_blank"]', function(e) {
e.preventDefault();
- window.open($(e.currentTarget).attr('href'));
+ 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'));
});
$(document).on('click', 'a[target="_top"]', function(e) {
e.preventDefault();