--- a/src/pyams_skin/resources/js/myams.js Wed Mar 11 12:16:52 2015 +0100
+++ b/src/pyams_skin/resources/js/myams.js Wed Mar 11 12:17:32 2015 +0100
@@ -7,7 +7,7 @@
*
* Custom administration and application skin tools
* Released under Zope Public License ZPL 1.1
- * ©2015 Thierry Florac <tflorac@ulthar.net>
+ * ©2014-2015 Thierry Florac <tflorac@ulthar.net>
*/
(function($) {
@@ -323,6 +323,7 @@
if (window.MyAMS === undefined) {
window.MyAMS = {
devmode: true,
+ lang: 'en',
throttle_delay: 350,
menu_speed: 235,
navbar_height: 49,
@@ -795,16 +796,28 @@
if (result.content) {
var content = result.content;
var container = $(content.target || target || form || '#content');
- container.html(content.html);
- ams.initContent(container);
+ if (content.raw == true) {
+ container.text(content.text);
+ } else {
+ container.html(content.html);
+ ams.initContent(container);
+ }
+ if (!content.keep_hidden)
+ container.removeClass('hidden');
}
if (result.contents) {
var contents = result.contents;
for (var index in contents) {
content = contents[index];
container = $(content.target);
- container.html(content.html);
- ams.initContent(container);
+ if (content.raw == true) {
+ container.text(content.text);
+ } else {
+ container.html(content.html);
+ ams.initContent(container);
+ }
+ if (!content.keep_hidden)
+ container.removeClass('hidden');
}
}
if (result.message) {
@@ -2214,27 +2227,94 @@
},
/**
- * JQuery-UI date picker
+ * JQuery date picker
*/
datepicker: function(element) {
var datepickers = $('.datepicker', element);
if (datepickers.length > 0) {
- datepickers.each(function() {
- var picker = $(this);
- var data = picker.data();
- var data_options = {
- dateFormat: data.amsDatepickerFormat || 'dd/mm/yy',
- prevText: '<i class="fa fa-chevron-left"></i>',
- nextText: '<i class="fa fa-chevron-right"></i>',
- changeMonth: data.amsDatepickerChangeMonth,
- changeYear: data.amsDatepickerChangeYear,
- showButtonPanel: !data.amsDatepickerHidePanel
- };
- var settings = $.extend({}, data_options, data.amsDatepickerOptions);
- settings = ams.executeFunctionByName(data.amsDatepickerInitCallback, picker, settings) || settings;
- var plugin = picker.datepicker(settings);
- ams.executeFunctionByName(data.amsDatepickerAfterInitCallback, picker, plugin, settings);
- });
+ ams.ajax.check($.fn.datetimepicker,
+ ams.baseURL + 'ext/jquery-datetimepicker' + (ams.devmode ? '.js': '.min.js'),
+ function(first_load) {
+ if (first_load) {
+ ams.getCSS(ams.baseURL + '../css/ext/jquery-datetimepicker' + (ams.devmode ? '.css' : '.min.css'), 'jquery-datetimepicker');
+ }
+ datepickers.each(function() {
+ var input = $(this);
+ var data = input.data();
+ var data_options = {
+ lang: data.amsDatetimepickerLang || ams.lang,
+ format: data.amsDatetimepickerFormat || 'd/m/y',
+ datepicker: true,
+ dayOfWeekStart: 1,
+ timepicker: false
+ };
+ var settings = $.extend({}, data_options, data.amsDatetimepickerOptions);
+ settings = ams.executeFunctionByName(data.amsDatetimepickerInitCallback, input, settings) || settings;
+ var plugin = input.datetimepicker(settings);
+ ams.executeFunctionByName(data.amsDatetimepickerAfterInitCallback, input, plugin, settings);
+ });
+ });
+ }
+ },
+
+ /**
+ * JQuery datetime picker
+ */
+ datetimepicker: function(element) {
+ var datetimepickers = $('.datetimepicker', element);
+ if (datetimepickers.length > 0) {
+ ams.ajax.check($.fn.datetimepicker,
+ ams.baseURL + 'ext/jquery-datetimepicker' + (ams.devmode ? '.js': '.min.js'),
+ function(first_load) {
+ if (first_load) {
+ ams.getCSS(ams.baseURL + '../css/ext/jquery-datetimepicker' + (ams.devmode ? '.css' : '.min.css'), 'jquery-datetimepicker');
+ }
+ datetimepickers.each(function() {
+ var input = $(this);
+ var data = input.data();
+ var data_options = {
+ lang: data.amsDatetimepickerLang || ams.lang,
+ format: data.amsDatetimepickerFormat || 'd/m/y H:i',
+ datepicker: true,
+ dayOfWeekStart: 1,
+ timepicker: true
+ };
+ var settings = $.extend({}, data_options, data.amsDatetimepickerOptions);
+ settings = ams.executeFunctionByName(data.amsDatetimepickerInitCallback, input, settings) || settings;
+ var plugin = input.datetimepicker(settings);
+ ams.executeFunctionByName(data.amsDatetimepickerAfterInitCallback, input, plugin, settings);
+ });
+ });
+ }
+ },
+
+ /**
+ * JQuery time picker
+ */
+ timepicker: function(element) {
+ var timepickers = $('.timepicker', element);
+ if (timepickers.length > 0) {
+ ams.ajax.check($.fn.datetimepicker,
+ ams.baseURL + 'ext/jquery-datetimepicker' + (ams.devmode ? '.js': '.min.js'),
+ function(first_load) {
+ if (first_load) {
+ ams.getCSS(ams.baseURL + '../css/ext/jquery-datetimepicker' + (ams.devmode ? '.css' : '.min.css'), 'jquery-datetimepicker');
+ }
+ timepickers.each(function() {
+ var input = $(this);
+ var data = input.data();
+ var data_options = {
+ lang: data.amsDatetimepickerLang || ams.lang,
+ format: data.amsDatetimepickerFormat || 'H:i',
+ datepicker: false,
+ timepicker: true
+ };
+ var settings = $.extend({}, data_options, data.amsDatetimepickerOptions);
+ settings = ams.executeFunctionByName(data.amsDatetimepickerInitCallback, input, settings) || settings;
+ var plugin = input.datetimepicker(settings);
+ ams.executeFunctionByName(data.amsDatetimepickerAfterInitCallback, input, plugin, settings);
+ });
+ });
}
},
@@ -3584,7 +3664,7 @@
$(document).off('click.modal')
.on('click', '[data-toggle="modal"]', function(e) {
var source = $(this);
- if (source.data('ams-click-stop-propagation') === true)
+ if (source.data('ams-stop-propagation') === true)
e.stopPropagation();
e.preventDefault();
ams.dialog.open(source);
@@ -3604,7 +3684,7 @@
var source = $(this);
var data = source.data();
if (data.amsClickHandler) {
- if (data.amsClickStopPropagation === true)
+ if ((data.amsStopPropagation === true) || (data.amsClickStopPropagation === true))
e.stopPropagation();
if (data.amsClickKeepDefault !== true)
e.preventDefault();
@@ -3780,11 +3860,12 @@
$(document).ready(function() {
$ = jQuery.noConflict();
var lang = $('HTML').attr('lang') || $('HTML').attr('xml:lang');
- if (lang && !lang.startsWith('en'))
- MyAMS.getScript(MyAMS.baseURL + 'i18n/myams_' + lang.substr(0,2) + '.js', function() {
+ if (lang && !lang.startsWith('en')) {
+ MyAMS.lang = lang;
+ MyAMS.getScript(MyAMS.baseURL + 'i18n/myams_' + lang.substr(0, 2) + '.js', function () {
MyAMS.initPage();
});
- else {
+ } else {
MyAMS.initPage();
}
});