src/pyams_skin/resources/js/myams.js
changeset 121 2c87fbbec680
parent 118 391ad752903e
child 125 d294083fb28c
equal deleted inserted replaced
120:703d0f789bb7 121:2c87fbbec680
  1264 			var focused = $('[data-ams-focus-target]', container).first();
  1264 			var focused = $('[data-ams-focus-target]', container).first();
  1265 			if (!focused.exists()) {
  1265 			if (!focused.exists()) {
  1266 				focused = $('input, select', container).first();
  1266 				focused = $('input, select', container).first();
  1267 			}
  1267 			}
  1268 			if (focused.exists()) {
  1268 			if (focused.exists()) {
       
  1269 				if (focused.hasClass('select2-input')) {
       
  1270 					focused = focused.parents('.select2');
       
  1271 				}
  1269 				if (focused.hasClass('select2')) {
  1272 				if (focused.hasClass('select2')) {
  1270 					setTimeout(function() {
  1273 					setTimeout(function() {
  1271 						focused.select2('focus');
  1274 						focused.select2('focus');
  1272 						focused.select2('open');
  1275 						if (focused.data('ams-focus-open') === true) {
       
  1276 							focused.select2('open');
       
  1277 						}
  1273 					}, 100);
  1278 					}, 100);
  1274 				} else {
  1279 				} else {
  1275 					focused.focus();
  1280 					focused.focus();
  1276 				}
  1281 				}
  1277 			}
  1282 			}
  2061 
  2066 
  2062 		/**
  2067 		/**
  2063 		 * Close modal dialog associated with given context
  2068 		 * Close modal dialog associated with given context
  2064 		 */
  2069 		 */
  2065 		close: function(context) {
  2070 		close: function(context) {
       
  2071 			if (typeof(context) === 'string') {
       
  2072 				context = $(context);
       
  2073 			}
  2066 			var modal = context.parents('.modal').data('modal');
  2074 			var modal = context.parents('.modal').data('modal');
  2067 			if (modal) {
  2075 			if (modal) {
  2068 				var manager = $('body').data('modalmanager');
  2076 				var manager = $('body').data('modalmanager');
  2069 				if (manager && (manager.getOpenModals().indexOf(modal) >= 0)) {
  2077 				if (manager && (manager.getOpenModals().indexOf(modal) >= 0)) {
  2070 					modal.hide();
  2078 					modal.hide();
  2689 			 */
  2697 			 */
  2690 			slider: function(element) {
  2698 			slider: function(element) {
  2691 				var sliders = $('.slider', element);
  2699 				var sliders = $('.slider', element);
  2692 				if (sliders.length > 0) {
  2700 				if (sliders.length > 0) {
  2693 					ams.ajax.check($.fn.slider,
  2701 					ams.ajax.check($.fn.slider,
  2694 								   ams.baseURL + 'ext/bootstrap-slider.min.js',
  2702 								   ams.baseURL + 'ext/bootstrap-slider-2.0.0' + ams.devext + '.js',
  2695 								   function() {
  2703 								   function() {
  2696 										sliders.each(function() {
  2704 										sliders.each(function() {
  2697 											var slider = $(this);
  2705 											var slider = $(this);
  2698 											var data = slider.data();
  2706 											var data = slider.data();
  2699 											var data_options = {};
  2707 											var data_options = {};
  3005 			 */
  3013 			 */
  3006 			maskedit: function(element) {
  3014 			maskedit: function(element) {
  3007 				var masks = $('[data-mask]', element);
  3015 				var masks = $('[data-mask]', element);
  3008 				if (masks.length > 0) {
  3016 				if (masks.length > 0) {
  3009 					ams.ajax.check($.fn.mask,
  3017 					ams.ajax.check($.fn.mask,
  3010 								   ams.baseURL + 'ext/jquery-maskedinput-1.3.1.min.js',
  3018 								   ams.baseURL + 'ext/jquery-maskedinput-1.4.1' + ams.devext + '.js',
  3011 								   function() {
  3019 								   function() {
  3012 										masks.each(function() {
  3020 										masks.each(function() {
  3013 											var mask = $(this);
  3021 											var mask = $(this);
  3014 											var data = mask.data();
  3022 											var data = mask.data();
  3015 											var data_options = {
  3023 											var data_options = {
  3398 																							plugin.columnFilter(cf_settings)
  3406 																							plugin.columnFilter(cf_settings)
  3399 																							: ams.executeFunctionByName(data.amsDatatableColumnfilterConstructor, table, plugin, cf_settings));
  3407 																							: ams.executeFunctionByName(data.amsDatatableColumnfilterConstructor, table, plugin, cf_settings));
  3400 																break;
  3408 																break;
  3401 															case 'editable':
  3409 															case 'editable':
  3402 																var ed_settings = $.extend({}, data.amsDatatableEditableOptions, settings.editable);
  3410 																var ed_settings = $.extend({}, data.amsDatatableEditableOptions, settings.editable);
  3403 																ed_settings = ams.executeFunctionByName(data.amsDatatableEditableInitCallback, table, ed_settings) || ed_settings;
  3411 														ed_settings = ams.executeFunctionByName(data.amsDatatableEditableInitCallback, table, ed_settings) || ed_settings;
  3404 																table.data('ams-editable', data.amsDatatableEditableConstructor === undefined ?
  3412 																table.data('ams-editable', data.amsDatatableEditableConstructor === undefined ?
  3405 																							table.makeEditable(ed_settings)
  3413 																							table.makeEditable(ed_settings)
  3406 																							: ams.executeFunctionByName(data.amsDatatableEditableConstructor, table, plugin, ed_settings));
  3414 																							: ams.executeFunctionByName(data.amsDatatableEditableConstructor, table, plugin, ed_settings));
  3407 																break;
  3415 																break;
  3408 															case 'fixedcolumns':
  3416 															case 'fixedcolumns':
  3597 			 */
  3605 			 */
  3598 			imgareaselect: function(element) {
  3606 			imgareaselect: function(element) {
  3599 				var images = $('.imgareaselect', element);
  3607 				var images = $('.imgareaselect', element);
  3600 				if (images.length > 0) {
  3608 				if (images.length > 0) {
  3601 					ams.ajax.check($.fn.imgAreaSelect,
  3609 					ams.ajax.check($.fn.imgAreaSelect,
  3602 								   ams.baseURL + 'ext/jquery-imgareaselect-0.9.10' + ams.devext + '.js',
  3610 								   ams.baseURL + 'ext/jquery-imgareaselect-0.9.11-rc1' + ams.devext + '.js',
  3603 								   function(first_load) {
  3611 								   function(first_load) {
  3604 									   if (first_load) {
  3612 									   if (first_load) {
  3605 										   ams.getCSS(ams.baseURL + '../css/ext/jquery-imgareaselect' + ams.devext + '.css');
  3613 										   ams.getCSS(ams.baseURL + '../css/ext/jquery-imgareaselect' + ams.devext + '.css');
  3606 									   }
  3614 									   }
  3607 									   images.each(function() {
  3615 									   images.each(function() {
  4643 				e.preventDefault();
  4651 				e.preventDefault();
  4644 			});
  4652 			});
  4645 			$(document).on('click', 'a[href!="#"]:not([data-toggle]), [data-ams-url]:not([data-toggle])', function(e) {
  4653 			$(document).on('click', 'a[href!="#"]:not([data-toggle]), [data-ams-url]:not([data-toggle])', function(e) {
  4646 				var link = $(e.currentTarget);
  4654 				var link = $(e.currentTarget);
  4647 				var handlers = link.data('ams-disabled-handlers');
  4655 				var handlers = link.data('ams-disabled-handlers');
  4648 				if ((handlers == true) || (handlers == 'click')) {
  4656 				if ((handlers === true) || (handlers === 'click') || (handlers === 'all')) {
  4649 					return;
  4657 					return;
  4650 				}
  4658 				}
  4651 				var href = link.attr('href') || link.data('ams-url');
  4659 				var href = link.attr('href') || link.data('ams-url');
  4652 				if (!href || href.startsWith('javascript') || link.attr('target') || (link.data('ams-context-menu') === true)) {
  4660 				if (!href || href.startsWith('javascript') || link.attr('target') || (link.data('ams-context-menu') === true)) {
  4653 					return;
  4661 					return;
  4708 		// Initialize modal dialogs links
  4716 		// Initialize modal dialogs links
  4709 		$(document).off('click.modal')
  4717 		$(document).off('click.modal')
  4710 				   .on('click', '[data-toggle="modal"]', function(e) {
  4718 				   .on('click', '[data-toggle="modal"]', function(e) {
  4711 			var source = $(this);
  4719 			var source = $(this);
  4712 			var handlers = source.data('ams-disabled-handlers');
  4720 			var handlers = source.data('ams-disabled-handlers');
  4713 			if ((handlers == true) || (handlers == 'click')) {
  4721 			if ((handlers === true) || (handlers === 'click') || (handlers === 'all')) {
  4714 				return;
  4722 				return;
  4715 			}
  4723 			}
  4716 			if (source.data('ams-context-menu') === true) {
  4724 			if (source.data('ams-context-menu') === true) {
  4717 				return;
  4725 				return;
  4718 			}
  4726 			}
  4734 
  4742 
  4735 		// Initialize custom click handlers
  4743 		// Initialize custom click handlers
  4736 		$(document).on('click', '[data-ams-click-handler]', function(e) {
  4744 		$(document).on('click', '[data-ams-click-handler]', function(e) {
  4737 			var source = $(this);
  4745 			var source = $(this);
  4738 			var handlers = source.data('ams-disabled-handlers');
  4746 			var handlers = source.data('ams-disabled-handlers');
  4739 			if ((handlers == true) || (handlers == 'click')) {
  4747 			if ((handlers === true) || (handlers === 'click') || (handlers === 'all')) {
  4740 				return;
  4748 				return;
  4741 			}
  4749 			}
  4742 			var data = source.data();
  4750 			var data = source.data();
  4743 			if (data.amsClickHandler) {
  4751 			if (data.amsClickHandler) {
  4744 				if ((data.amsStopPropagation === true) || (data.amsClickStopPropagation === true)) {
  4752 				if ((data.amsStopPropagation === true) || (data.amsClickStopPropagation === true)) {
  4756 
  4764 
  4757 		// Initialize custom change handlers
  4765 		// Initialize custom change handlers
  4758 		$(document).on('change', '[data-ams-change-handler]', function(e) {
  4766 		$(document).on('change', '[data-ams-change-handler]', function(e) {
  4759 			var source = $(this);
  4767 			var source = $(this);
  4760 			var handlers = source.data('ams-disabled-handlers');
  4768 			var handlers = source.data('ams-disabled-handlers');
  4761 			if ((handlers == true) || (handlers == 'change')) {
  4769 			if ((handlers === true) || (handlers === 'change') || (handlers === 'all')) {
  4762 				return;
  4770 				return;
  4763 			}
  4771 			}
  4764 			var data = source.data();
  4772 			var data = source.data();
  4765 			if (data.amsChangeHandler) {
  4773 			if (data.amsChangeHandler) {
  4766 				if (data.amsChangeKeepDefault !== true) {
  4774 				if (data.amsChangeKeepDefault !== true) {