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
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;
|
|
}());
|
|
}
|
|
|