You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

86 lines
2.9 KiB

var EXPO = EXPO || {}; //isolated namespace
EXPO.organizer = EXPO.organizer || {};
if (EXPO.organizer.add) {
console.warn('WARNING: EXPO.eventsFeed is already defined!');
} else {
EXPO.organizer.add = (function () {
/**
* private (visible inside this module only) variables
*/
/**
* @type {Object} - module API interafce realization
*/
var that = {};
/**
* @type {Object} default setting
*/
that.opt = {};
/**
* dependencies.Place where you can switch on dependencies for module
* @type {EXPO.common|*} - mostly used in project functions and data (block.common.js)
*/
var com = EXPO.common;
/**
* current module general initialization
* @param {Object} options - options recieved from web page view
*/
that.init = function (options) {
// settings extending
$.extend(this.opt, options);
// begin of initialization
var self = this;
$(function () {
/* Если на страницах "Добавить событие" не выбран ни один из типов форму делаем неактивной и наоборот */
$('#'+self.opt.steps[0].id).each(function () {
var $form = $(this);
var $rads = $form.find('.'+self.opt.steps[0] .typeClass+' input[type="radio"]');
var $formBody = $('.'+self.opt.steps[0].formBodyClass, $form);
function formState () {
var radsChecked = $rads.filter(':checked').length > 0;
var $inputs = $formBody.find('input, select, textarea, button');
var $selectBox = $formBody.find('div.c-select-box');
if (radsChecked) {
$formBody.removeClass('disabled');
$selectBox.removeClass('disabled');
$inputs.prop('disabled', false);
} else {
$formBody.addClass('disabled');
$selectBox.addClass('disabled');
$inputs.prop('disabled', true);
}
}
formState();
$rads.on('change', formState);
for(var i =0;i< self.opt.steps[0].dateClasses.length; i++){
$('.'+self.opt.steps[0].dateClasses[i], $form).datepicker({
dateFormat: 'dd.mm.yy',
showOn: 'button',
showOtherMonths: true,
constrainInput: true,
onClose: function( selectedDate ) {
var $dateInput;
if($(this).hasClass('dateFrom')){
$dateInput = $(this).closest('.period').find('.'+self.opt.steps[0].dateClasses[1]);
$dateInput.datepicker( "option", "minDate", selectedDate );
}else if($(this).hasClass('dateTo')){
$dateInput = $(this).closest('.period').find('.'+self.opt.steps[0].dateClasses[0]);
$dateInput.datepicker( "option", "maxDate", selectedDate );
}else if($(this).hasClass('dateFromLast')){
$dateInput = $form.find('.date-to-date').find('.'+self.opt.steps[0].dateClasses[1]);
$dateInput.datepicker( "option", "minDate", selectedDate );
}
}
});
}
});
});
};
return that;
}());
}