From fa921b67afc7e99cf8d4e37c5084399913fe9551 Mon Sep 17 00:00:00 2001 From: pavel Date: Tue, 27 Jan 2015 16:36:32 +0000 Subject: [PATCH] oraginxear profile --- .../js/_modules/page.organizer.add.js | 86 +++++++++++++++++++ .../js_min/_modules/page.organizer.add.min.js | 1 + 2 files changed, 87 insertions(+) create mode 100644 templates/client/static_client/js/_modules/page.organizer.add.js create mode 100644 templates/client/static_client/js_min/_modules/page.organizer.add.min.js diff --git a/templates/client/static_client/js/_modules/page.organizer.add.js b/templates/client/static_client/js/_modules/page.organizer.add.js new file mode 100644 index 00000000..ba980f49 --- /dev/null +++ b/templates/client/static_client/js/_modules/page.organizer.add.js @@ -0,0 +1,86 @@ +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; + }()); +} diff --git a/templates/client/static_client/js_min/_modules/page.organizer.add.min.js b/templates/client/static_client/js_min/_modules/page.organizer.add.min.js new file mode 100644 index 00000000..b3654e2f --- /dev/null +++ b/templates/client/static_client/js_min/_modules/page.organizer.add.min.js @@ -0,0 +1 @@ +var EXPO=EXPO||{};EXPO.organizer=EXPO.organizer||{},EXPO.organizer.add?console.warn("WARNING: EXPO.eventsFeed is already defined!"):EXPO.organizer.add=function(){var e={};e.opt={};EXPO.common;return e.init=function(e){$.extend(this.opt,e);var d=this;$(function(){$("#"+d.opt.steps[0].id+" ."+d.opt.steps[0].typeClass).each(function(){function e(){var e=a.filter(":checked").length>0,d=t.find("input, select, textarea, button"),s=t.find("div.c-select-box");e?(t.removeClass("disabled"),s.removeClass("disabled"),d.prop("disabled",!1)):(t.addClass("disabled"),s.addClass("disabled"),d.prop("disabled",!0))}var s=$(this),a=s.find('input[type="radio"]'),t=a.closest("form").children("."+d.opt.steps[0].formBodyClass);e(),a.on("change",e)})})},e}(); \ No newline at end of file