mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-03 08:58:47 +01:00 
			
		
		
		
	Use custom inputs for date picker and amounts
This commit is contained in:
		
							
								
								
									
										55
									
								
								static/bootstrap_datepicker_plus/js/datepicker-widget.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								static/bootstrap_datepicker_plus/js/datepicker-widget.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
jQuery(function ($) {
 | 
			
		||||
    var datepickerDict = {};
 | 
			
		||||
    var isBootstrap4 = $.fn.collapse.Constructor.VERSION.split('.').shift() == "4";
 | 
			
		||||
    function fixMonthEndDate(e, picker) {
 | 
			
		||||
        e.date && picker.val().length && picker.val(e.date.endOf('month').format('YYYY-MM-DD'));
 | 
			
		||||
    }
 | 
			
		||||
    $("[dp_config]:not([disabled])").each(function (i, element) {
 | 
			
		||||
        var $element = $(element), data = {};
 | 
			
		||||
        try {
 | 
			
		||||
            data = JSON.parse($element.attr('dp_config'));
 | 
			
		||||
        }
 | 
			
		||||
        catch (x) { }
 | 
			
		||||
        if (data.id && data.options) {
 | 
			
		||||
            data.$element = $element.datetimepicker(data.options);
 | 
			
		||||
            data.datepickerdata = $element.data("DateTimePicker");
 | 
			
		||||
            datepickerDict[data.id] = data;
 | 
			
		||||
            data.$element.next('.input-group-addon').on('click', function(){
 | 
			
		||||
                data.datepickerdata.show();
 | 
			
		||||
            });
 | 
			
		||||
            if(isBootstrap4){
 | 
			
		||||
                data.$element.on("dp.show", function (e) {
 | 
			
		||||
                    $('.collapse.in').addClass('show');
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
    $.each(datepickerDict, function (id, to_picker) {
 | 
			
		||||
        if (to_picker.linked_to) {
 | 
			
		||||
            var from_picker = datepickerDict[to_picker.linked_to];
 | 
			
		||||
            from_picker.datepickerdata.maxDate(to_picker.datepickerdata.date() || false);
 | 
			
		||||
            to_picker.datepickerdata.minDate(from_picker.datepickerdata.date() || false);
 | 
			
		||||
            from_picker.$element.on("dp.change", function (e) {
 | 
			
		||||
                to_picker.datepickerdata.minDate(e.date || false);
 | 
			
		||||
            });
 | 
			
		||||
            to_picker.$element.on("dp.change", function (e) {
 | 
			
		||||
                if (to_picker.picker_type == 'MONTH') fixMonthEndDate(e, to_picker.$element);
 | 
			
		||||
                from_picker.datepickerdata.maxDate(e.date || false);
 | 
			
		||||
            });
 | 
			
		||||
            if (to_picker.picker_type == 'MONTH') {
 | 
			
		||||
                to_picker.$element.on("dp.hide", function (e) {
 | 
			
		||||
                    fixMonthEndDate(e, to_picker.$element);
 | 
			
		||||
                });
 | 
			
		||||
                fixMonthEndDate({ date: to_picker.datepickerdata.date() }, to_picker.$element);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
    if(isBootstrap4) {
 | 
			
		||||
        $('body').on('show.bs.collapse','.bootstrap-datetimepicker-widget .collapse',function(e){
 | 
			
		||||
            $(e.target).addClass('in');
 | 
			
		||||
        });
 | 
			
		||||
        $('body').on('hidden.bs.collapse','.bootstrap-datetimepicker-widget .collapse',function(e){
 | 
			
		||||
            $(e.target).removeClass('in');
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
		Reference in New Issue
	
	Block a user