From 7b3d90cf6e693d74699f5a8f09ef42835e27f6d4 Mon Sep 17 00:00:00 2001 From: pavel Date: Tue, 13 Jan 2015 13:12:34 +0000 Subject: [PATCH 1/8] autocomplete word-wrap and width bug --- templates/client/includes/catalog_search.html | 2 +- templates/client/static_client/css/main.css | 23 ++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/templates/client/includes/catalog_search.html b/templates/client/includes/catalog_search.html index 0d9be6da..68302b11 100644 --- a/templates/client/includes/catalog_search.html +++ b/templates/client/includes/catalog_search.html @@ -1,7 +1,7 @@ {% load static %} {% load i18n %} -
+
- +
diff --git a/templates/client/popups/place.html b/templates/client/popups/place.html index baf50fba..2b3ab4d4 100644 --- a/templates/client/popups/place.html +++ b/templates/client/popups/place.html @@ -65,7 +65,6 @@
- {% trans 'Сбросить выбранное' %}
{% trans 'Быстрый выбор' %}:
- {% trans 'Уточнить тему' %} + + + {% trans 'Уточнить тему' %} {% if hasDate %}{% trans 'Уточнить дату' %}{% endif %}
diff --git a/templates/client/popups/theme.html b/templates/client/popups/theme.html index 2a4a7a4d..452707cc 100644 --- a/templates/client/popups/theme.html +++ b/templates/client/popups/theme.html @@ -68,15 +68,14 @@ -
- {% trans 'Сбросить выбранное' %} -
- {% trans 'Уточнить географию' %} + + + {% trans 'Уточнить географию' %} {% if hasDate %}{% trans 'Уточнить дату' %}{% endif %}
diff --git a/templates/client/static_client/css/main.css b/templates/client/static_client/css/main.css index d4367402..772e79da 100644 --- a/templates/client/static_client/css/main.css +++ b/templates/client/static_client/css/main.css @@ -1902,298 +1902,305 @@ button.icon-save:before { # форма поиска \**************************/ -.in-search-form { - position: relative; - /*display: none;*/ - font-family: 'dindisplay_pro', Arial, sans-serif; - font-weight: normal; - font-size: 14px; - line-height: 18px; - color: #fff; - background: #ff6600 url(../img/search-bg.jpg) 100% 100% no-repeat; - height: 150px; - margin: 0 0 15px -40px; - padding: 30px 0 5px 40px; - z-index: 3; - border-radius: 4px; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.modals .popup-window{ - display: none; -} - -.search-form aside .s-title { - font-size: 25px; - line-height: 25px; - text-transform: uppercase; - white-space: nowrap; - margin-right: -20px; -} - -.in-search-form .s-title { - font-size: 25px; - line-height: 25px; - text-transform: uppercase; - margin-bottom: 15px; -} + .in-search-form { + position: relative; + /*display: none;*/ + font-family: 'dindisplay_pro', Arial, sans-serif; + font-weight: normal; + font-size: 14px; + line-height: 18px; + color: #fff; + background: #ff6600 url(../img/search-bg.jpg) 100% 100% no-repeat; + height: 150px; + margin: 0 0 15px -40px; + padding: 30px 0 5px 40px; + z-index: 3; + border-radius: 4px; + -moz-box-sizing: border-box; + box-sizing: border-box; + } -.search-form .mcl { - padding-right: 50px; -} + .modals .popup-window{ + display: none; + } -.search-form-wrap { - display: table; - width: 100%; - border-collapse: collapse; -} + .search-form aside .s-title { + font-size: 25px; + line-height: 25px; + text-transform: uppercase; + white-space: nowrap; + margin-right: -20px; + } -.search-form-wrap .search-line { - display: table-row; -} + .in-search-form .s-title { + font-size: 25px; + line-height: 25px; + text-transform: uppercase; + margin-bottom: 15px; + } -.search-form-wrap .search-line .sf-field-wrap { - display: table-cell; - vertical-align: middle; - padding: 0 10px 8px 0; - color: #ffd9bf; - line-height: 15px; -} + .search-form .mcl { + padding-right: 50px; + } -.search-form-wrap .search-line .sf-field-wrap:first-child { - width: 48%; -} + .search-form-wrap { + display: table; + width: 100%; + border-collapse: collapse; + } -.search-form-wrap .search-line .sf-field-wrap + .sf-field-wrap { - width: 32%; -} + .search-form-wrap .search-line { + display: table-row; + } -.search-form-wrap .search-line .sf-field-wrap + .sf-field-wrap + .sf-field-wrap { - width: 20%; -} + .search-form-wrap .search-line .sf-field-wrap { + display: table-cell; + vertical-align: middle; + padding: 0 10px 8px 0; + color: #ffd9bf; + line-height: 15px; + } -.search-line.sl-options a { - display: inline-block; - color: #fff; - text-decoration: none; - border-bottom: 1px dashed; - line-height: 13px; -} + .search-form-wrap .search-line .sf-field-wrap:first-child { + width: 48%; + } -.search-line.sl-options a:hover { - border-bottom: none; -} + .search-form-wrap .search-line .sf-field-wrap + .sf-field-wrap { + width: 32%; + } -.search-line.sl-options a.sf-clear { - position: relative; - display: inline-block; - vertical-align: middle; - border-bottom: none; - width: 16px; - height: 0; - padding-top: 24px; - margin: -5px 0 -5px 2px; - overflow: hidden; -} + .search-form-wrap .search-line .sf-field-wrap + .sf-field-wrap + .sf-field-wrap { + width: 20%; + } -.search-line.sl-options a.sf-clear:before { - content: ''; - display: block; - width: 6px; - height: 7px; - background: url(../img/sprites.png) -135px -25px no-repeat; - position: absolute; - left: 50%; - top: 50%; - margin: -3px 0 0 -3px; -} + .search-line.sl-options a { + display: inline-block; + color: #fff; + text-decoration: none; + border-bottom: 1px dashed; + line-height: 13px; + } -.sf-field { - position: relative; - display: table; - width: 100%; - height: 40px; - border-collapse: collapse; - background: #fff; - color: #aaa; - box-shadow: inset 0 1px 0 #d9d9d9, 0 -1px 0 rgba(0, 0, 0, .2); - z-index: 1; -} + .search-line.sl-options a:hover { + border-bottom: none; + } -.sf-field-wrap:first-child .sf-field { - border-radius: 4px 0 0 4px; -} + .search-line.sl-options a.sf-clear { + position: relative; + display: inline-block; + vertical-align: middle; + border-bottom: none; + width: 16px; + height: 0; + padding-top: 24px; + margin: -5px 0 -5px 2px; + overflow: hidden; + } -.sf-field > * { - display: table-cell; - vertical-align: middle; -} + .search-line.sl-options a.sf-clear:before { + content: ''; + display: block; + width: 6px; + height: 7px; + background: url(../img/sprites.png) -135px -25px no-repeat; + position: absolute; + left: 50%; + top: 50%; + margin: -3px 0 0 -3px; + } -.sf-field label { - font-size: 16px; - line-height: 20px; - font-weight: normal; - padding: 10px 5px 10px 20px; - white-space: nowrap; -} + .sf-field { + position: relative; + display: table; + width: 100%; + height: 40px; + border-collapse: collapse; + background: #fff; + color: #aaa; + box-shadow: inset 0 1px 0 #d9d9d9, 0 -1px 0 rgba(0, 0, 0, .2); + z-index: 1; + } -.sf-field .input-text { - width: 100%; - height: 100%; -} + .sf-field-wrap:first-child .sf-field { + border-radius: 4px 0 0 4px; + } -.sf-field .input-text input[type="text"] { - display: block; - width: 100%; - height: 100%; - background: none; - border: none; - outline: none; - padding: 10px 10px 10px 0; - font-family: 'dindisplay_pro', Arial, sans-serif; - font-weight: normal; - font-size: 16px; - line-height: 20px; - -moz-box-sizing: border-box; - box-sizing: border-box; -} + .sf-field > * { + display: table-cell; + vertical-align: middle; + } -.search-form button, -.in-search-form button{ - display: inline-block; - vertical-align: top; - height: 40px; - border: 1px solid #fff; - /*background: none;*/ - outline: none; - color: #fff; - font-family: 'dindisplay_pro', Arial, sans-serif; - font-weight: bold; - font-size: 15px; - line-height: 41px; - text-transform: uppercase; - padding: 0 25px; - border-radius: 0 4px 4px 0; - -moz-box-sizing: border-box; - box-sizing: border-box; - box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 1px 0 rgba(0, 0, 0, .2); - -webkit-filter: none; - filter: none; -} -.pwf-buttons-line button{ - border-radius: 4px; -} + .sf-field label { + font-size: 16px; + line-height: 20px; + font-weight: normal; + padding: 10px 5px 10px 20px; + white-space: nowrap; + } -.search-form button:before, -.in-search-form button:before { - content: ' '; - display: inline-block; - vertical-align: middle; - width: 15px; - height: 14px; - background: url(../img/sprites.png) -98px 0 no-repeat; - margin: -2px 5px 0 -1px; -} + .sf-field .input-text { + width: 100%; + height: 100%; + } -.search-form button:hover, -.in-search-form button:hover { - position: relative; - top: -1px; - /*background: none;*/ -} + .sf-field .input-text input[type="text"] { + display: block; + width: 100%; + height: 100%; + background: none; + border: none; + outline: none; + padding: 10px 10px 10px 0; + font-family: 'dindisplay_pro', Arial, sans-serif; + font-weight: normal; + font-size: 16px; + line-height: 20px; + -moz-box-sizing: border-box; + box-sizing: border-box; + } -.sf-autocomplete { - position: relative; - z-index: 3048; - height: 40px; - display: none; -} -.sf-autocomplete.show { - display: block; -} + .search-form button.search_submit, + .search-form button.modal-approve, + .in-search-form button.search_submit, + .in-search-form button.modal-approve{ + display: inline-block; + vertical-align: top; + height: 40px; + border: 1px solid #fff; + /*background: none;*/ + outline: none; + color: #fff; + font-family: 'dindisplay_pro', Arial, sans-serif; + font-weight: bold; + font-size: 15px; + line-height: 41px; + text-transform: uppercase; + padding: 0 25px; + border-radius: 0 4px 4px 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 1px 0 rgba(0, 0, 0, .2); + -webkit-filter: none; + filter: none; + } + button.modal-approve{ + border-radius: 4px !important; + } -.sf-autocomplete .sfa-wrap { - position: absolute; - left: 0; - width: 100%; - top: 0; - background: #fff; - padding: 20px 20px 20px 20px; - overflow: hidden; - -moz-box-sizing: border-box; - box-sizing: border-box; - border-radius: 4px; - box-shadow: 0 0 0 3px rgba(0, 0, 0, .2); - visibility: hidden; - background: #ffffff; /* Old browsers */ /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(10%,#ffffff), color-stop(100%,#efefef)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #ffffff 10%,#efefef 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #ffffff 10%,#efefef 100%); /* Opera 11.10+ */ /* IE10+ */ - background: -webkit-linear-gradient(top, #ffffff 10%, #efefef 100%); - background: -o-linear-gradient(top, #ffffff 10%, #efefef 100%); - background: linear-gradient(to bottom, #ffffff 10%,#efefef 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#efefef',GradientType=0 ); /* IE6-9 */ + .search-form button.search_submit:before, + .search-form button.modal-approve:before, + .in-search-form button.search_submit:before , + .in-search-form button.modal-approve:before { + content: ' '; + display: inline-block; + vertical-align: middle; + width: 15px; + height: 14px; + background: url(../img/sprites.png) -98px 0 no-repeat; + margin: -2px 5px 0 -1px; + } -} + .search-form button:hover, + .in-search-form button:hover { + position: relative; + top: -1px; + /*background: none;*/ + } -.sf-autocomplete .sfa-wrap { - border-radius: 4px 0 4px 4px; -} + .sf-autocomplete { + position: relative; + z-index: 3048; + height: 40px; + display: none; + } + .sf-autocomplete.show { + display: block; + } -.sf-autocomplete .sfa-wrap.show { - visibility: visible; -} + .sf-autocomplete .sfa-wrap { + position: absolute; + left: 0; + width: 100%; + top: 0; + background: #fff; + padding: 20px 20px 20px 20px; + overflow: hidden; + -moz-box-sizing: border-box; + box-sizing: border-box; + border-radius: 4px; + box-shadow: 0 0 0 3px rgba(0, 0, 0, .2); + visibility: hidden; + background: #ffffff; /* Old browsers */ /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(10%,#ffffff), color-stop(100%,#efefef)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #ffffff 10%,#efefef 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #ffffff 10%,#efefef 100%); /* Opera 11.10+ */ /* IE10+ */ + background: -webkit-linear-gradient(top, #ffffff 10%, #efefef 100%); + background: -o-linear-gradient(top, #ffffff 10%, #efefef 100%); + background: linear-gradient(to bottom, #ffffff 10%,#efefef 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#efefef',GradientType=0 ); /* IE6-9 */ -.ui-autocomplete { - position: relative; - width: 100%; - max-height: 265px; - overflow-y: auto; - overflow-x: hidden; - left: 0 !important; - top: 0 !important; - padding: 5px 10px 0 0; - border-top: 1px dotted #ccc; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.ui-autocomplete-category { - font-size: 15px; - line-height: 17px; - color: #ff6600; - padding: 8px 10px 0 0; -} + } -.ui-menu .ui-menu-item { - padding: 0 10px 0 5px; - margin-top: 2px; -} + .sf-autocomplete .sfa-wrap { + border-radius: 4px 0 4px 4px; + } -.ui-menu .ui-menu-item a { - color: #464646; - font-size: 15px; - line-height: 15px; - border: none; - padding: 2px 5px; - cursor: pointer; -} + .sf-autocomplete .sfa-wrap.show { + visibility: visible; + } -.ui-menu .ui-menu-item a.ui-state-focus, -.ui-menu .ui-menu-item a.ui-state-active { - color: #ff6600; - margin: 0; -} + .ui-autocomplete { + position: relative; + width: 100%; + max-height: 265px; + overflow-y: auto; + overflow-x: hidden; + left: 0 !important; + top: 0 !important; + padding: 5px 10px 0 0; + border-top: 1px dotted #ccc; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .ui-autocomplete-category { + font-size: 15px; + line-height: 17px; + color: #ff6600; + padding: 8px 10px 0 0; + } -.ui-menu .ui-menu-item a i { - font-style: normal; - color: #a2a2a2; -} + .ui-menu .ui-menu-item { + padding: 0 10px 0 5px; + margin-top: 2px; + } + .ui-menu .ui-menu-item a { + color: #464646; + font-size: 15px; + line-height: 15px; + border: none; + padding: 2px 5px; + cursor: pointer; + } -.mp-catalog { + .ui-menu .ui-menu-item a.ui-state-focus, + .ui-menu .ui-menu-item a.ui-state-active { + color: #ff6600; + margin: 0; + } -} + .ui-menu .ui-menu-item a i { + font-style: normal; + color: #a2a2a2; + } + /* # clear all button*/ + .in-search-form .modal-clear, + .search-form .modal-clear{ + height: 40px; + border: 1px solid #fff; + padding: 0 25px; + box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 1px 0 rgba(0, 0, 0, .2); + } /* end of search block*/ @@ -4032,7 +4039,6 @@ form.s-message { .c-select-box .csb-menu .q-sel { width: 190px; float: right; - margin-top: 1em; } @@ -12013,6 +12019,21 @@ hr + .rq-note { .mt-0{ margin-top: 0; } + button.gray{ + background: #dbdbdb; /* Old browsers */ + background: -moz-linear-gradient(top, #dbdbdb 0%, #bdbdbd 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#dbdbdb), color-stop(100%,#bdbdbd)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #dbdbdb 0%,#bdbdbd 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #dbdbdb 0%,#bdbdbd 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #dbdbdb 0%,#bdbdbd 100%); /* IE10+ */ + background: linear-gradient(to bottom, #dbdbdb 0%,#bdbdbd 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dbdbdb', endColorstr='#bdbdbd',GradientType=0 ); /* IE6-9 */ + + } + button.gray:hover{ + background: #dbdbdb; /* Old browsers */ + + } @@ -12020,16 +12041,16 @@ hr + .rq-note { # Модальное окно выбора тематики \******************************/ -.pw-subj .q-sel{ - top: 0; - position: absolute; - right: 0; - margin-top: 1em; + .pw-subj .q-sel{ + top: 0; + position: absolute; + right: 0; + margin-top: 1em; -} -.search_form .scroll-container{ - overflow: hidden; -} + } + .search_form .scroll-container{ + overflow: hidden; + } /******************************\ # Модальное окно общий вид \******************************/ diff --git a/templates/client/static_client/js/_modules/block.search.js b/templates/client/static_client/js/_modules/block.search.js index 629fd4ed..e149ec34 100644 --- a/templates/client/static_client/js/_modules/block.search.js +++ b/templates/client/static_client/js/_modules/block.search.js @@ -359,7 +359,7 @@ if (EXPO.searchBlock){ } return false; }); - $('.clear', $modal).on('click', function () { + $('.modal-clear', $modal).on('click', function () { self.resetList(); return false; }); @@ -1118,7 +1118,7 @@ if (EXPO.searchBlock){ /** * clear all button behavior */ - $('.clear',$modal).on('click', function () { + $('.modal-clear',$modal).on('click', function () { self.resetList(); return false; }); diff --git a/templates/client/static_client/js_min/_modules/block.search.min.js b/templates/client/static_client/js_min/_modules/block.search.min.js index a5103e38..59919a5e 100644 --- a/templates/client/static_client/js_min/_modules/block.search.min.js +++ b/templates/client/static_client/js_min/_modules/block.search.min.js @@ -1 +1 @@ -var EXPO=EXPO||{};EXPO.searchBlock?console.warn("WARNING: EXPO.searchBlock is already defined!"):EXPO.searchBlock=function(){var e={};e.settings={place:{id:"pw-place",selectedItemTemplate:"csb-selected",ajaxUrl:"http://hit.expomap.ru/search-form/"},subject:{id:"pw-subj",ajaxUrl:"http://hit.expomap.ru/search-form/"}},e.lang={};var t=EXPO.common,i=function(e){var t=Object.keys(e).map(function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])}).join("&");return"?"+t},n=function(e,t,i){e||(e=""),$.ajax({type:"GET",url:t,data:e,success:function(e){return"function"!=typeof i?e:void i(e)}})},a=function(e,t,i){return e.hasOwnProperty(t)&&(e[i]=e[t]),this},s=function(e){var t,i=0;for(t in e)e.hasOwnProperty(t)&&i++;return i},l=function(e,t){var i=$("#"+e),n="",a=EXPO.searchBlock.settings.closerText,s=EXPO.searchBlock.settings.closerTextSingle,l="";return $element=i.find(".csbs-text"),$element.length>2?$element.eq(0).text().length2&&d?(n({term:t,form:o},l.opt.autoCompleteUrl,u),d=!1):0!=t.length||d||l.$inputFilter.hasClass("ui-autocomplete-input")&&(l.$inputFilter.placeComplete("destroy"),d=!0),!1}).click(function(){return!1})},_renderSublist:function(e,t,i){var n=this,a=0,s=t+"-sub",l=function(e){if(e.length){for(n.sublist[s]={},a;aT;T++)for(o=_[T],w=0;x>w;w++)o==C[w]&&M(a[w]);for(T=0;y>T;T++)o=_[T],o==S&&M(i)}else for(T=0;y>T;T++)o=_[T],o==S&&M(S)},M=function(e){var t=e.getAttribute("id");i._destroyTag(t),O()},A=function(e){var a=t.closest(e,n),s=a.querySelector("."+u),l=s.innerHTML,r=e.getAttribute("id"),o={id:r,text:l};i._addTag(r,o),O()},O=function(){o.find("."+h).length&&"~~id~~"!=o.find("."+h)[0].getAttribute(m)?o.addClass("visible"):o.removeClass("visible")},P=function(){var t=$(k).children("li").children("."+e).find("."+l+":checked");t.each(function(){A(this)})},q=function(){var t=$(k).children("li").children("."+e).find("."+l+":checked");t.each(function(){M(this)})};i.strictMode?this.checked?(w(this),D(this),A(this)):(I(this),D(this),M(this)):this.checked?(F()?(S(this),w(this),D(v),A(v),q(k),v.getAttribute("id")!=_.getAttribute("id")||_.checked||(w(_),D(_),A(_))):(w(this),D(this),A(this)),b&&y(this),b&&"~~id~~"!=$(b).find("."+l)[0].value&&D(this)):(B()?(T(this),I(this),D(v),M(v),P(k),_.checked&&(I(_),D(_),M(_))):(I(this),D(this),M(this)),b&&(x(this),D(this))),p()}),$(".csbs-del",o).on("click",function(){var e=$(this).attr("data-checkbox-id"),t=$("#"+e);return t.prop("checked",!1),t.trigger("change"),dna.destroy(i.itemsSelected[e]),o.children(".dna-clone").length||o.removeClass("visible"),!1}),$(".clear",a).on("click",function(){return i.resetList(),!1}),$(".q-sel a",a).on("click",function(){var e=$(this),t=e.attr("data-name"),a=e.attr("data-id"),s={name:t,id:a},l=function(e){i._loadParentTree(e,function(){i._checkCheckBox(a)})};return n(s,i.opt.getParentUrl,l),!1}),$("."+h,a).on("click",function(){return i.applyHandler(this),!1}),d.siblings("."+i.opt.clearAllButtonClass).on("click",function(){i.resetList(),EXPO.searchBlock.placesField.clearValue()})})};c.prototype={_getAjax:function(e,t){var i=this;e||(e=""),$.ajax({type:"GET",url:i.opt.ajaxUrl,data:e,success:function(e){return"function"!=typeof t?(i.rawData=e,e):(i.rawData=e,void t(e))}})},_renderSublist:function(e,t,i){var n=this,a=0,s=t+"-sub",l=function(e){if(e.length){for(n.curDNA[s]={},a;a2&&o?(n({term:t,form:l},s.opt.autoCompleteUrl,d),o=!1):0!=t.length||o||s.$inputFilter.hasClass("ui-autocomplete-input")&&(s.$inputFilter.autocomplete("destroy"),o=!0),!1}).click(function(){return!1})},_loadParentTree:function(e,t,i){var n,a,l,o,c=this,d=e,h=$("#id_"+d.id),u=function(e){var n=$("#id_"+d.id),h=function(){r.hide(),i||0===i?t(i):t()};r.hide(),n.length&&s(c.curDNA[a+"-sub"])==e&&(l={name:d.name,id:d.id},r.show(),o=$("#id_"+d.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderNested(l,h,o,d.id))},p=function(){r.hide(),i||0===i?t(i):t()};r.show(),d.hasOwnProperty("parent")?h.length?(l={name:d.name,id:d.id},o=h.closest(".level").children(".trigger").attr("data-template-id"),c._renderNested(l,function(){r.hide(),t()},o,d.id)):(n={name:d.parent.name,id:d.parent.id},a=$("#id_"+d.parent.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderSublist(n,a,u)):(n={name:d.name,id:d.id},a=$("#id_"+d.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderSublist(n,a,p))},applyHandler:function(){}};var d=function(e){this.opt=e;var t,i=this,n=$("#"+i.opt.dateFrom),a=$("#"+i.opt.dateTo),s=$("#"+i.opt.id),l=$("#"+i.opt.modalTrigger),r=i.opt.applyBtnClass,o=function(){var e="",t=l.data("lng-to"),i=l.data("lng-from"),s=$.trim(a.val()),r=$.trim(n.val());return""!=s&&""!=r?e=i+": "+r+" "+t+": "+s+".":""!=s&&""==r?e=t+": "+s+".":""==s&&""!=r&&(e=i+": "+r+"."),e},c=function(e){""!=e?(l.text(e).siblings(".trigger-label").addClass("hidden"),l.siblings("."+i.opt.clearAllButtonClass).addClass("active")):(l.text(l.data("default")).siblings(".trigger-label").removeClass("hidden"),l.siblings("."+i.opt.clearAllButtonClass).removeClass("active"))},d=function(e){var t,s,l,r,o=e.getAttribute("id"),c=e.value,d=Date.parse(c);i.validate()&&($(e).parent(".pwf-field").removeClass("err"),o==i.opt.dateFrom?(t=a[0].getAttribute("id"),s=a[0].value):(t=n[0].getAttribute("id"),s=n[0].value),l=Date.parse(s),d>l&&o==i.opt.dateFrom?(r=document.getElementById(o).value,document.getElementById(o).value=document.getElementById(t).value,document.getElementById(t).value=r):l>d&&o==i.opt.dateTo&&(r=document.getElementById(t).value,document.getElementById(t).value=document.getElementById(o).value,document.getElementById(o).value=r))};this.$dateFrom=n,this.$dateTo=a,this.$modalTrigger=l,$(function(){$.datepicker.setDefaults($.datepicker.regional.ru),n.datepicker({dateFormat:"dd.mm.yy",showOn:"button",showOtherMonths:!0,constrainInput:!0,onClose:function(e){a.datepicker("option","minDate",e)}}).inputmask("99.99.9999",{showMaskOnHover:!1,insertMode:!1,oncomplete:function(){t=this}}),a.datepicker({dateFormat:"dd.mm.yy",showOn:"button",showOtherMonths:!0,constrainInput:!0,onClose:function(e){n.datepicker("option","maxDate",e)}}).inputmask("99.99.9999",{showMaskOnHover:!1,insertMode:!1,oncomplete:function(){t=this}}),$('input[type="text"]',s).on("change",function(){var e=o();i.validate()&&c(e)}),$("."+r,s).on("click",function(){return t&&d(t),i.applyHandler(this),!1}),l.siblings("."+i.opt.clearAllButtonClass).on("click",function(){$(this).removeClass("active"),i.resetList()})})};d.prototype={resetList:function(){this.$dateFrom.val(""),this.$dateTo.val(""),this.$modalTrigger.text(this.$modalTrigger.attr("data-default"))},validate:function(){var e=this.$dateTo.val(),t=this.$dateFrom.val(),i=e.split("."),n=t.split("."),a=[],s=!0;return a[0]=Date.parse(i[1]+"."+i[0]+"."+i[2]),a[1]=Date.parse(n[1]+"."+n[0]+"."+n[2]),a[0]||""==$.trim(e)?this.$dateTo.parent(".pwf-field").removeClass("err"):(this.$dateTo.parent(".pwf-field").addClass("err"),s=!1),a[1]||""==$.trim(t)?this.$dateFrom.parent(".pwf-field").removeClass("err"):(this.$dateFrom.parent(".pwf-field").addClass("err"),s=!1),s},applyHandler:function(){}};var h=function(e){this.opt=e,this.opt.anyChar=!1;var i=this,s=!0;this.$field=$("#"+i.opt.id),this.DOMcompleteWrap=document.getElementById(i.opt.autoCompleteWrapId),this.afterClear,this.rawData={items:[],set:function(e){this.items=e,this._rawDataChange()},get:function(){return this.items},_rawDataChange:function(){var e,t=this;for(e=0;e2?n(a,i.opt.autoCompleteUrl,function(e){i.$field.hasClass("ui-autocomplete-input")&&i.$field[i.completeName]("destroy"),i.rawData.set(e),i._initAutoComplete(),i.showList("")}):0===text.length&&i.$field.hasClass("ui-autocomplete-input")&&(i.$field[i.completeName]("destroy"),t.removeClass(i.DOMcompleteWrap,"full-visible"),i._resetmodals(i.afterClear)):text.length>2&&s?(n(a,i.opt.autoCompleteUrl,function(e){i.rawData.set(e),i._initAutoComplete(),i.showList("")}),s=!1):0!=text.length||s?i.$field.hasClass("ui-autocomplete-input")&&i.showList(text):i.$field.hasClass("ui-autocomplete-input")&&(i.$field[i.completeName]("destroy"),t.removeClass(i.DOMcompleteWrap,"full-visible"),i._resetmodals(i.afterClear),s=!0),!1}).click(function(){return!1})};return h.prototype={_initAutoComplete:function(){var e=this;e.$field[e.completeName]({source:e.rawData.get(),minLength:0,appendTo:e.DOMcompleteWrap,select:function(t,i){e._afterSelect(t,i)},close:function(){t.removeClass(e.DOMcompleteWrap,"full-visible")},open:function(){t.addClass(e.DOMcompleteWrap,"full-visible")}})},_afterSelect:function(e,t){var i=this;e.preventDefault(),t.item.url?window.location=t.item.url:t.item.label.length&&(i.$field[0].value=t.item.label,i.selectCheckBoxes(t.item.id,t.item.name))},_resetmodals:function(e){return e?void e():0},selectHandler:function(){},selectCheckBoxes:function(){},showList:function(e){self=this,this.$field[self.completeName]("search",e)},pullData:function(){},clearValue:function(){this.$field.val("")}},e.init=function(e){$.extend(this.lang,e.lang),e.lang=null,$.extend(this.settings,e);var i=this,a=function(){$(i.DOMform).find('input[name="~~name~~"]').remove()};"None"!=this.settings.searchData&&this.settings.searchData&&(this.previousSearch=JSON.parse(this.settings.searchData)),this.DOMform=document.getElementById(this.settings.formId),$(this.DOMform).on("submit",function(){a()}),$.widget("custom.exibitionComplete",$.ui.autocomplete,{_renderMenu:function(e,t){var i=this,n="";$.each(t,function(t,a){a.cat!=n&&a.cat&&(e.append("
  • "+a.cat+"
  • "),n=a.cat),i._renderItemData(e,a)})}}),$.widget("custom.exibitionComplete",$.ui.autocomplete,{_renderMenu:function(e,t){var i=this,n="";$.each(t,function(t,a){a.cat!=n&&a.cat&&(e.append("
  • "+a.cat+"
  • "),n=a.cat),i._renderItemData(e,a)})}}),$.widget("custom.placeComplete",$.ui.autocomplete,{_renderItem:function(e,t){return $("
  • ").append($("").text(t.label)).append(' ('+t.cat+")").appendTo(e)}}),this.exhibitionField=new h(i.settings.firstField),this.exhibitionField.completeName="exibitionComplete",this.exhibitionField.opt.anyChar=!0,this.placesModal=new c(i.settings.place),this.subjModal=new o(i.settings.subject),this.periodModal=new d(i.settings.period),this.exhibitionField.selectCheckBoxes=function(e,t){var i,a,s=this,l=t;"th"==t?i=document.getElementById(s.opt.prefix+e):"tg"==t&&(i=document.getElementById(s.opt.prefixInner+e),l="th"),r.show(),i?(r.hide(),$(i).prop("checked",!0),$(i).trigger("change")):(a={name:t,id:e},n(a,EXPO.searchBlock.subjModal.opt.getParentUrl,function(i){EXPO.searchBlock.subjModal._loadParentTree(i,function(){EXPO.searchBlock.subjModal._checkCheckBox(e,t)})}))},this.placesField=new h(i.settings.placeField),this.placesField.dataForm=EXPO.searchBlock.placesModal.$inputFilter.attr("data-form"),this.placesField.selectCheckBoxes=function(e,t){var i,a,s=this;i=document.getElementById(s.opt.prefix+e),i?(r.hide(),$(i).prop("checked",!0),$(i).trigger("change")):(a={name:t,id:e},n(a,EXPO.searchBlock.placesModal.opt.getParentUrl,function(t){EXPO.searchBlock.placesModal._loadParentTree(t,function(){EXPO.searchBlock.placesModal._checkCheckBox(e,!0)})}))},this.exhibitionField.afterClear=function(){i.subjModal.resetList()},this.placesField.afterClear=function(){i.placesModal.resetList()},this.modalWindow=new t.Modal(i.settings.modal),this.periodModal.applyHandler=function(){this.validate()&&(r.show(),$(i.DOMform).submit())},this.placesModal.applyHandler=function(){r.show(),$(i.DOMform).submit()},this.subjModal.applyHandler=function(){r.show(),$(i.DOMform).submit()},$("."+i.settings.modalTriggerClass).on("click",function(e){return e.preventDefault(),i.modalWindow.pullData(this.getAttribute("href")),i.modalWindow.open(),!1}),$(function(){if(i.previousSearch)for(var e=0;e2?$element.eq(0).text().length2&&d?(n({term:t,form:o},l.opt.autoCompleteUrl,u),d=!1):0!=t.length||d||l.$inputFilter.hasClass("ui-autocomplete-input")&&(l.$inputFilter.placeComplete("destroy"),d=!0),!1}).click(function(){return!1})},_renderSublist:function(e,t,i){var n=this,a=0,s=t+"-sub",l=function(e){if(e.length){for(n.sublist[s]={},a;aT;T++)for(o=_[T],w=0;x>w;w++)o==C[w]&&M(a[w]);for(T=0;y>T;T++)o=_[T],o==S&&M(i)}else for(T=0;y>T;T++)o=_[T],o==S&&M(S)},M=function(e){var t=e.getAttribute("id");i._destroyTag(t),O()},A=function(e){var a=t.closest(e,n),s=a.querySelector("."+u),l=s.innerHTML,r=e.getAttribute("id"),o={id:r,text:l};i._addTag(r,o),O()},O=function(){o.find("."+h).length&&"~~id~~"!=o.find("."+h)[0].getAttribute(m)?o.addClass("visible"):o.removeClass("visible")},P=function(){var t=$(k).children("li").children("."+e).find("."+l+":checked");t.each(function(){A(this)})},q=function(){var t=$(k).children("li").children("."+e).find("."+l+":checked");t.each(function(){M(this)})};i.strictMode?this.checked?(w(this),D(this),A(this)):(I(this),D(this),M(this)):this.checked?(F()?(S(this),w(this),D(v),A(v),q(k),v.getAttribute("id")!=_.getAttribute("id")||_.checked||(w(_),D(_),A(_))):(w(this),D(this),A(this)),b&&y(this),b&&"~~id~~"!=$(b).find("."+l)[0].value&&D(this)):(B()?(T(this),I(this),D(v),M(v),P(k),_.checked&&(I(_),D(_),M(_))):(I(this),D(this),M(this)),b&&(x(this),D(this))),p()}),$(".csbs-del",o).on("click",function(){var e=$(this).attr("data-checkbox-id"),t=$("#"+e);return t.prop("checked",!1),t.trigger("change"),dna.destroy(i.itemsSelected[e]),o.children(".dna-clone").length||o.removeClass("visible"),!1}),$(".modal-clear",a).on("click",function(){return i.resetList(),!1}),$(".q-sel a",a).on("click",function(){var e=$(this),t=e.attr("data-name"),a=e.attr("data-id"),s={name:t,id:a},l=function(e){i._loadParentTree(e,function(){i._checkCheckBox(a)})};return n(s,i.opt.getParentUrl,l),!1}),$("."+h,a).on("click",function(){return i.applyHandler(this),!1}),d.siblings("."+i.opt.clearAllButtonClass).on("click",function(){i.resetList(),EXPO.searchBlock.placesField.clearValue()})})};c.prototype={_getAjax:function(e,t){var i=this;e||(e=""),$.ajax({type:"GET",url:i.opt.ajaxUrl,data:e,success:function(e){return"function"!=typeof t?(i.rawData=e,e):(i.rawData=e,void t(e))}})},_renderSublist:function(e,t,i){var n=this,a=0,s=t+"-sub",l=function(e){if(e.length){for(n.curDNA[s]={},a;a2&&o?(n({term:t,form:l},s.opt.autoCompleteUrl,d),o=!1):0!=t.length||o||s.$inputFilter.hasClass("ui-autocomplete-input")&&(s.$inputFilter.autocomplete("destroy"),o=!0),!1}).click(function(){return!1})},_loadParentTree:function(e,t,i){var n,a,l,o,c=this,d=e,h=$("#id_"+d.id),u=function(e){var n=$("#id_"+d.id),h=function(){r.hide(),i||0===i?t(i):t()};r.hide(),n.length&&s(c.curDNA[a+"-sub"])==e&&(l={name:d.name,id:d.id},r.show(),o=$("#id_"+d.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderNested(l,h,o,d.id))},p=function(){r.hide(),i||0===i?t(i):t()};r.show(),d.hasOwnProperty("parent")?h.length?(l={name:d.name,id:d.id},o=h.closest(".level").children(".trigger").attr("data-template-id"),c._renderNested(l,function(){r.hide(),t()},o,d.id)):(n={name:d.parent.name,id:d.parent.id},a=$("#id_"+d.parent.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderSublist(n,a,u)):(n={name:d.name,id:d.id},a=$("#id_"+d.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderSublist(n,a,p))},applyHandler:function(){}};var d=function(e){this.opt=e;var t,i=this,n=$("#"+i.opt.dateFrom),a=$("#"+i.opt.dateTo),s=$("#"+i.opt.id),l=$("#"+i.opt.modalTrigger),r=i.opt.applyBtnClass,o=function(){var e="",t=l.data("lng-to"),i=l.data("lng-from"),s=$.trim(a.val()),r=$.trim(n.val());return""!=s&&""!=r?e=i+": "+r+" "+t+": "+s+".":""!=s&&""==r?e=t+": "+s+".":""==s&&""!=r&&(e=i+": "+r+"."),e},c=function(e){""!=e?(l.text(e).siblings(".trigger-label").addClass("hidden"),l.siblings("."+i.opt.clearAllButtonClass).addClass("active")):(l.text(l.data("default")).siblings(".trigger-label").removeClass("hidden"),l.siblings("."+i.opt.clearAllButtonClass).removeClass("active"))},d=function(e){var t,s,l,r,o=e.getAttribute("id"),c=e.value,d=Date.parse(c);i.validate()&&($(e).parent(".pwf-field").removeClass("err"),o==i.opt.dateFrom?(t=a[0].getAttribute("id"),s=a[0].value):(t=n[0].getAttribute("id"),s=n[0].value),l=Date.parse(s),d>l&&o==i.opt.dateFrom?(r=document.getElementById(o).value,document.getElementById(o).value=document.getElementById(t).value,document.getElementById(t).value=r):l>d&&o==i.opt.dateTo&&(r=document.getElementById(t).value,document.getElementById(t).value=document.getElementById(o).value,document.getElementById(o).value=r))};this.$dateFrom=n,this.$dateTo=a,this.$modalTrigger=l,$(function(){$.datepicker.setDefaults($.datepicker.regional.ru),n.datepicker({dateFormat:"dd.mm.yy",showOn:"button",showOtherMonths:!0,constrainInput:!0,onClose:function(e){a.datepicker("option","minDate",e)}}).inputmask("99.99.9999",{showMaskOnHover:!1,insertMode:!1,oncomplete:function(){t=this}}),a.datepicker({dateFormat:"dd.mm.yy",showOn:"button",showOtherMonths:!0,constrainInput:!0,onClose:function(e){n.datepicker("option","maxDate",e)}}).inputmask("99.99.9999",{showMaskOnHover:!1,insertMode:!1,oncomplete:function(){t=this}}),$('input[type="text"]',s).on("change",function(){var e=o();i.validate()&&c(e)}),$("."+r,s).on("click",function(){return t&&d(t),i.applyHandler(this),!1}),l.siblings("."+i.opt.clearAllButtonClass).on("click",function(){$(this).removeClass("active"),i.resetList()})})};d.prototype={resetList:function(){this.$dateFrom.val(""),this.$dateTo.val(""),this.$modalTrigger.text(this.$modalTrigger.attr("data-default"))},validate:function(){var e=this.$dateTo.val(),t=this.$dateFrom.val(),i=e.split("."),n=t.split("."),a=[],s=!0;return a[0]=Date.parse(i[1]+"."+i[0]+"."+i[2]),a[1]=Date.parse(n[1]+"."+n[0]+"."+n[2]),a[0]||""==$.trim(e)?this.$dateTo.parent(".pwf-field").removeClass("err"):(this.$dateTo.parent(".pwf-field").addClass("err"),s=!1),a[1]||""==$.trim(t)?this.$dateFrom.parent(".pwf-field").removeClass("err"):(this.$dateFrom.parent(".pwf-field").addClass("err"),s=!1),s},applyHandler:function(){}};var h=function(e){this.opt=e,this.opt.anyChar=!1;var i=this,s=!0;this.$field=$("#"+i.opt.id),this.DOMcompleteWrap=document.getElementById(i.opt.autoCompleteWrapId),this.afterClear,this.rawData={items:[],set:function(e){this.items=e,this._rawDataChange()},get:function(){return this.items},_rawDataChange:function(){var e,t=this;for(e=0;e2?n(a,i.opt.autoCompleteUrl,function(e){i.$field.hasClass("ui-autocomplete-input")&&i.$field[i.completeName]("destroy"),i.rawData.set(e),i._initAutoComplete(),i.showList("")}):0===text.length&&i.$field.hasClass("ui-autocomplete-input")&&(i.$field[i.completeName]("destroy"),t.removeClass(i.DOMcompleteWrap,"full-visible"),i._resetmodals(i.afterClear)):text.length>2&&s?(n(a,i.opt.autoCompleteUrl,function(e){i.rawData.set(e),i._initAutoComplete(),i.showList("")}),s=!1):0!=text.length||s?i.$field.hasClass("ui-autocomplete-input")&&i.showList(text):i.$field.hasClass("ui-autocomplete-input")&&(i.$field[i.completeName]("destroy"),t.removeClass(i.DOMcompleteWrap,"full-visible"),i._resetmodals(i.afterClear),s=!0),!1}).click(function(){return!1})};return h.prototype={_initAutoComplete:function(){var e=this;e.$field[e.completeName]({source:e.rawData.get(),minLength:0,appendTo:e.DOMcompleteWrap,select:function(t,i){e._afterSelect(t,i)},close:function(){t.removeClass(e.DOMcompleteWrap,"full-visible")},open:function(){t.addClass(e.DOMcompleteWrap,"full-visible")}})},_afterSelect:function(e,t){var i=this;e.preventDefault(),t.item.url?window.location=t.item.url:t.item.label.length&&(i.$field[0].value=t.item.label,i.selectCheckBoxes(t.item.id,t.item.name))},_resetmodals:function(e){return e?void e():0},selectHandler:function(){},selectCheckBoxes:function(){},showList:function(e){self=this,this.$field[self.completeName]("search",e)},pullData:function(){},clearValue:function(){this.$field.val("")}},e.init=function(e){$.extend(this.lang,e.lang),e.lang=null,$.extend(this.settings,e);var i=this,a=function(){$(i.DOMform).find('input[name="~~name~~"]').remove()};"None"!=this.settings.searchData&&this.settings.searchData&&(this.previousSearch=JSON.parse(this.settings.searchData)),this.DOMform=document.getElementById(this.settings.formId),$(this.DOMform).on("submit",function(){a()}),$.widget("custom.exibitionComplete",$.ui.autocomplete,{_renderMenu:function(e,t){var i=this,n="";$.each(t,function(t,a){a.cat!=n&&a.cat&&(e.append("
  • "+a.cat+"
  • "),n=a.cat),i._renderItemData(e,a)})}}),$.widget("custom.exibitionComplete",$.ui.autocomplete,{_renderMenu:function(e,t){var i=this,n="";$.each(t,function(t,a){a.cat!=n&&a.cat&&(e.append("
  • "+a.cat+"
  • "),n=a.cat),i._renderItemData(e,a)})}}),$.widget("custom.placeComplete",$.ui.autocomplete,{_renderItem:function(e,t){return $("
  • ").append($("").text(t.label)).append(' ('+t.cat+")").appendTo(e)}}),this.exhibitionField=new h(i.settings.firstField),this.exhibitionField.completeName="exibitionComplete",this.exhibitionField.opt.anyChar=!0,this.placesModal=new c(i.settings.place),this.subjModal=new o(i.settings.subject),this.periodModal=new d(i.settings.period),this.exhibitionField.selectCheckBoxes=function(e,t){var i,a,s=this,l=t;"th"==t?i=document.getElementById(s.opt.prefix+e):"tg"==t&&(i=document.getElementById(s.opt.prefixInner+e),l="th"),r.show(),i?(r.hide(),$(i).prop("checked",!0),$(i).trigger("change")):(a={name:t,id:e},n(a,EXPO.searchBlock.subjModal.opt.getParentUrl,function(i){EXPO.searchBlock.subjModal._loadParentTree(i,function(){EXPO.searchBlock.subjModal._checkCheckBox(e,t)})}))},this.placesField=new h(i.settings.placeField),this.placesField.dataForm=EXPO.searchBlock.placesModal.$inputFilter.attr("data-form"),this.placesField.selectCheckBoxes=function(e,t){var i,a,s=this;i=document.getElementById(s.opt.prefix+e),i?(r.hide(),$(i).prop("checked",!0),$(i).trigger("change")):(a={name:t,id:e},n(a,EXPO.searchBlock.placesModal.opt.getParentUrl,function(t){EXPO.searchBlock.placesModal._loadParentTree(t,function(){EXPO.searchBlock.placesModal._checkCheckBox(e,!0)})}))},this.exhibitionField.afterClear=function(){i.subjModal.resetList()},this.placesField.afterClear=function(){i.placesModal.resetList()},this.modalWindow=new t.Modal(i.settings.modal),this.periodModal.applyHandler=function(){this.validate()&&(r.show(),$(i.DOMform).submit())},this.placesModal.applyHandler=function(){r.show(),$(i.DOMform).submit()},this.subjModal.applyHandler=function(){r.show(),$(i.DOMform).submit()},$("."+i.settings.modalTriggerClass).on("click",function(e){return e.preventDefault(),i.modalWindow.pullData(this.getAttribute("href")),i.modalWindow.open(),!1}),$(function(){if(i.previousSearch)for(var e=0;e Date: Wed, 14 Jan 2015 07:54:08 +0000 Subject: [PATCH 6/8] expo-33 --- .../client/static_client/js/_modules/block.search.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/templates/client/static_client/js/_modules/block.search.js b/templates/client/static_client/js/_modules/block.search.js index e149ec34..3a918c9a 100644 --- a/templates/client/static_client/js/_modules/block.search.js +++ b/templates/client/static_client/js/_modules/block.search.js @@ -1036,7 +1036,12 @@ if (EXPO.searchBlock){ if(!self.strictMode){ if(this.checked){ + if($(DOMSublistInner).find('.'+checkboxClass)[0]){ + if(DOMSublistInner && $(DOMSublistInner).find('.'+checkboxClass)[0].value != '~~id~~'){ + refreshTags(this); + } + } //если выбраны все дочерние if(allChildrenSelected()){ selectParent(this); @@ -1058,9 +1063,7 @@ if (EXPO.searchBlock){ if(DOMSublistInner){ selectSublist(this); } - if(DOMSublistInner && $(DOMSublistInner).find('.'+checkboxClass)[0].value != '~~id~~'){ - refreshTags(this); - } + }else{ //Если выбран родитель From d1a6d6577d2b317a1b4838214f673a83ff2f0b6c Mon Sep 17 00:00:00 2001 From: pavel Date: Wed, 14 Jan 2015 13:41:26 +0000 Subject: [PATCH 7/8] expo-33 bugs search field frontend complete --- templates/client/static_client/css/main.css | 18 +++++- .../static_client/js/_modules/block.search.js | 62 +++++++++++++++---- .../js_min/_modules/block.search.min.js | 2 +- 3 files changed, 66 insertions(+), 16 deletions(-) diff --git a/templates/client/static_client/css/main.css b/templates/client/static_client/css/main.css index 772e79da..4b06f2b7 100644 --- a/templates/client/static_client/css/main.css +++ b/templates/client/static_client/css/main.css @@ -171,12 +171,12 @@ body { height: 100%; background: #f8f8f6; color: #464646; - font-family: Arial, sans-serif; + font-family: Arial,'Helvetica Neue', sans-serif; font-weight: normal; font-style: normal; font-size: 13px; line-height: 18px; - /*-webkit-font-smoothing: antialiased;*/ + -webkit-font-smoothing: antialiased; } body { @@ -4032,7 +4032,13 @@ form.s-message { margin-bottom: 15px; } -.c-select-box .csb-menu .places-list > ul li.active ul { +.c-select-box .csb-menu .places-list .active > .sublist { + display: block; +} +.c-select-box .csb-menu .places-list .sublist { + display: none; +} +.c-select-box .csb-menu .places-list .sublist.parent { display: block; } @@ -11326,6 +11332,12 @@ hr + .rq-note { .pw-subj{ min-height: 480px; } +.pw-subj .csb-menu .level .sublist{ + display: none; +} +.pw-subj .csb-menu .level.active .sublist{ + display: block; +} .pw-subj .csb-menu .level1{ display: none; } diff --git a/templates/client/static_client/js/_modules/block.search.js b/templates/client/static_client/js/_modules/block.search.js index 3a918c9a..7975dfb6 100644 --- a/templates/client/static_client/js/_modules/block.search.js +++ b/templates/client/static_client/js/_modules/block.search.js @@ -257,12 +257,8 @@ if (EXPO.searchBlock){ $sublist = $parent.children('.sublist'); if(!param){ - if($label.hasClass('active')){ - $label.removeClass('active'); - }else{ - $label.addClass('active'); - } if(this.checked){ + $label.addClass('active'); var text = $(this).closest('.level').find('.trigger').first().text(), tplObj = {'text':text,'id':checkboxId}; @@ -307,6 +303,7 @@ if (EXPO.searchBlock){ //!uncheck event }else { + $label.removeClass('active'); self._destroyTag(checkboxId); if(!$selectedItemsWrap.children('.dna-clone').length){ $selectedItemsWrap.removeClass('visible'); @@ -704,8 +701,10 @@ if (EXPO.searchBlock){ $('#'+key, self.$selfContainer).prop('checked', false).trigger('change'); dna.destroy(self.itemsSelected[key]); + } } + $('.level.active',self.$modalInst).removeClass('active'); self.$selectedItemsWrap.removeClass('visible'); }, // кнопка применить @@ -791,12 +790,18 @@ if (EXPO.searchBlock){ DOMParentCheckbox = DOMParent.querySelector('.csb-menu-input'); $('.csb-menu-input', $sublist).each(function () { var DOMCheckboxWrap = common.closest(this,'custom-radio-check'); - if(!this.selected){ + if(!this.checked){ if(DOMParentCheckbox.checked){ this.checked = true; common.addClass(DOMCheckboxWrap,'active'); } + }else{ + if(!DOMParentCheckbox.checked){ + + this.checked = false; + common.removeClass(DOMCheckboxWrap,'active'); + } } }); $waiter.hide(); @@ -850,6 +855,8 @@ if (EXPO.searchBlock){ DOMSublistInner = DOMParentRow.querySelector('.'+sublistClass), DOMHighestItem = common.closest(this, highestItemClass), DOMHighestCheckbox = DOMHighestItem.querySelector('.'+checkboxClass), + DOMHighestSublist = DOMHighestItem.querySelector('.'+sublistClass), + selectSublist = function (it) { var DOMParentItem = common.closest(it, itemClass) || this, DOMSublist = DOMParentItem.querySelector('.'+sublistClass); @@ -863,6 +870,7 @@ if (EXPO.searchBlock){ DOMSublist = DOMParentItem.querySelector('.'+sublistClass); $('.'+checkboxClass, DOMSublist).each(function () { unSelectItem(this); + }); }, @@ -897,9 +905,14 @@ if (EXPO.searchBlock){ }, unSelectItem = function (it) { - var itFakeCheckbox = common.closest(it, fakeCheckboxClass); + var itFakeCheckbox = common.closest(it, fakeCheckboxClass), + DOMitem = common.closest(it, itemClass); common.removeClass(itFakeCheckbox, activeClass); it.checked = false; + // if there is children items + if(DOMitem.querySelector('.'+sublistClass) && !common.hasClass(DOMitem,highestItemClass)){ + unSelectSublist(it); + } }, allChildrenSelected = function () { //var DOMselected = DOMSublist.querySelectorAll('.'+checkboxClass+':checked'), @@ -924,7 +937,7 @@ if (EXPO.searchBlock){ } }, - // Функционал добавления тегов: если есть в панели выбранный элемент либо его дочерние то удалить эти эдементы и разместить выбранный; иначе разместить выбранные. + // Функционал добавления тегов: если есть в панели выбранный элемент либо его дочерние то удалить эти эдементы; refreshTags = function (it) { var DOMSublist = common.closest(it,sublistClass); var DOMItem = common.closest(it,itemClass); @@ -959,7 +972,6 @@ if (EXPO.searchBlock){ } allTagsLength = ARRAllTagsIds.length; sublistIdsLength = ARRSublistIds.length; - // добавить текущий тег //если найден дочерний тег то он будет удален, либо текущий тег for(i = 0; i < allTagsLength; i++){ @@ -977,6 +989,13 @@ if (EXPO.searchBlock){ deleteTag(it); } } + // удаление дочерних тегов 2го уровня + if(DOMSublistInner.querySelectorAll('.final-tire')){ + $('.'+fakeCheckboxClass+'.'+activeClass, DOMSublistInner.querySelectorAll('.final-tire')).each(function () { + deleteTag($('.'+checkboxClass,this)[0]); + + }); + } }else{ // удаление дубликатов текущего элемента for(i = 0; i < allTagsLength; i++){ @@ -1013,7 +1032,7 @@ if (EXPO.searchBlock){ } }, createTagList = function (sublist) { - var $selected = $(DOMSublist).children('li').children('.'+fakeCheckboxClass).find('.'+checkboxClass+':checked'); + var $selected = $(sublist).children('li').children('.'+fakeCheckboxClass).find('.'+checkboxClass+':checked'); $selected.each(function () { createTag(this); }); @@ -1074,10 +1093,12 @@ if (EXPO.searchBlock){ deleteTag(DOMParentCheckbox); createTagList(DOMSublist); if(DOMHighestCheckbox.checked){ + unSelectItem(DOMHighestCheckbox); - refreshTags(DOMHighestCheckbox); deleteTag(DOMHighestCheckbox); + createTagList(DOMHighestSublist); } + }else{ unSelectItem(this); refreshTags(this); @@ -1396,11 +1417,13 @@ if (EXPO.searchBlock){ var self = this; for (var key in self.itemsSelected) { if (self.itemsSelected.hasOwnProperty(key)) { - $('#'+key, self.$selfContainer).prop('checked', false).trigger('change'); + $('#'+key, self.$selfContainer).prop('checked', false).closest('.custom-radio-check').removeClass('active'); dna.destroy(self.itemsSelected[key]); } } + $('.level.active',this.$modal).removeClass('active'); + this._refreshText() self.selectedWrap.removeClass('visible'); }, /** @@ -1589,6 +1612,21 @@ if (EXPO.searchBlock){ * @public */ applyHandler: function (it) { + }, + _refreshText: function () { + var selectedString, + $modalTrigger = $('#'+this.opt.modalTrigger), + cutLength = 16; + selectedString = getSelectedToString(this.opt.selectedItemsContainer,cutLength); + if(selectedString && selectedString != '~~text~~' && selectedString != '~~text~~...'){ + $modalTrigger.text(selectedString); + $modalTrigger.siblings('.'+this.opt.clearAllButtonClass).addClass('active'); + + }else{ + $modalTrigger.text($modalTrigger.data('default')); + $modalTrigger.siblings('.'+this.opt.clearAllButtonClass).removeClass('active'); + + } } }; diff --git a/templates/client/static_client/js_min/_modules/block.search.min.js b/templates/client/static_client/js_min/_modules/block.search.min.js index 59919a5e..a40e0d17 100644 --- a/templates/client/static_client/js_min/_modules/block.search.min.js +++ b/templates/client/static_client/js_min/_modules/block.search.min.js @@ -1 +1 @@ -var EXPO=EXPO||{};EXPO.searchBlock?console.warn("WARNING: EXPO.searchBlock is already defined!"):EXPO.searchBlock=function(){var e={};e.settings={place:{id:"pw-place",selectedItemTemplate:"csb-selected",ajaxUrl:"http://hit.expomap.ru/search-form/"},subject:{id:"pw-subj",ajaxUrl:"http://hit.expomap.ru/search-form/"}},e.lang={};var t=EXPO.common,i=function(e){var t=Object.keys(e).map(function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])}).join("&");return"?"+t},n=function(e,t,i){e||(e=""),$.ajax({type:"GET",url:t,data:e,success:function(e){return"function"!=typeof i?e:void i(e)}})},a=function(e,t,i){return e.hasOwnProperty(t)&&(e[i]=e[t]),this},s=function(e){var t,i=0;for(t in e)e.hasOwnProperty(t)&&i++;return i},l=function(e,t){var i=$("#"+e),n="",a=EXPO.searchBlock.settings.closerText,s=EXPO.searchBlock.settings.closerTextSingle,l="";return $element=i.find(".csbs-text"),$element.length>2?$element.eq(0).text().length2&&d?(n({term:t,form:o},l.opt.autoCompleteUrl,u),d=!1):0!=t.length||d||l.$inputFilter.hasClass("ui-autocomplete-input")&&(l.$inputFilter.placeComplete("destroy"),d=!0),!1}).click(function(){return!1})},_renderSublist:function(e,t,i){var n=this,a=0,s=t+"-sub",l=function(e){if(e.length){for(n.sublist[s]={},a;aT;T++)for(o=_[T],w=0;x>w;w++)o==C[w]&&M(a[w]);for(T=0;y>T;T++)o=_[T],o==S&&M(i)}else for(T=0;y>T;T++)o=_[T],o==S&&M(S)},M=function(e){var t=e.getAttribute("id");i._destroyTag(t),O()},A=function(e){var a=t.closest(e,n),s=a.querySelector("."+u),l=s.innerHTML,r=e.getAttribute("id"),o={id:r,text:l};i._addTag(r,o),O()},O=function(){o.find("."+h).length&&"~~id~~"!=o.find("."+h)[0].getAttribute(m)?o.addClass("visible"):o.removeClass("visible")},P=function(){var t=$(k).children("li").children("."+e).find("."+l+":checked");t.each(function(){A(this)})},q=function(){var t=$(k).children("li").children("."+e).find("."+l+":checked");t.each(function(){M(this)})};i.strictMode?this.checked?(w(this),D(this),A(this)):(I(this),D(this),M(this)):this.checked?(F()?(S(this),w(this),D(v),A(v),q(k),v.getAttribute("id")!=_.getAttribute("id")||_.checked||(w(_),D(_),A(_))):(w(this),D(this),A(this)),b&&y(this),b&&"~~id~~"!=$(b).find("."+l)[0].value&&D(this)):(B()?(T(this),I(this),D(v),M(v),P(k),_.checked&&(I(_),D(_),M(_))):(I(this),D(this),M(this)),b&&(x(this),D(this))),p()}),$(".csbs-del",o).on("click",function(){var e=$(this).attr("data-checkbox-id"),t=$("#"+e);return t.prop("checked",!1),t.trigger("change"),dna.destroy(i.itemsSelected[e]),o.children(".dna-clone").length||o.removeClass("visible"),!1}),$(".modal-clear",a).on("click",function(){return i.resetList(),!1}),$(".q-sel a",a).on("click",function(){var e=$(this),t=e.attr("data-name"),a=e.attr("data-id"),s={name:t,id:a},l=function(e){i._loadParentTree(e,function(){i._checkCheckBox(a)})};return n(s,i.opt.getParentUrl,l),!1}),$("."+h,a).on("click",function(){return i.applyHandler(this),!1}),d.siblings("."+i.opt.clearAllButtonClass).on("click",function(){i.resetList(),EXPO.searchBlock.placesField.clearValue()})})};c.prototype={_getAjax:function(e,t){var i=this;e||(e=""),$.ajax({type:"GET",url:i.opt.ajaxUrl,data:e,success:function(e){return"function"!=typeof t?(i.rawData=e,e):(i.rawData=e,void t(e))}})},_renderSublist:function(e,t,i){var n=this,a=0,s=t+"-sub",l=function(e){if(e.length){for(n.curDNA[s]={},a;a2&&o?(n({term:t,form:l},s.opt.autoCompleteUrl,d),o=!1):0!=t.length||o||s.$inputFilter.hasClass("ui-autocomplete-input")&&(s.$inputFilter.autocomplete("destroy"),o=!0),!1}).click(function(){return!1})},_loadParentTree:function(e,t,i){var n,a,l,o,c=this,d=e,h=$("#id_"+d.id),u=function(e){var n=$("#id_"+d.id),h=function(){r.hide(),i||0===i?t(i):t()};r.hide(),n.length&&s(c.curDNA[a+"-sub"])==e&&(l={name:d.name,id:d.id},r.show(),o=$("#id_"+d.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderNested(l,h,o,d.id))},p=function(){r.hide(),i||0===i?t(i):t()};r.show(),d.hasOwnProperty("parent")?h.length?(l={name:d.name,id:d.id},o=h.closest(".level").children(".trigger").attr("data-template-id"),c._renderNested(l,function(){r.hide(),t()},o,d.id)):(n={name:d.parent.name,id:d.parent.id},a=$("#id_"+d.parent.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderSublist(n,a,u)):(n={name:d.name,id:d.id},a=$("#id_"+d.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderSublist(n,a,p))},applyHandler:function(){}};var d=function(e){this.opt=e;var t,i=this,n=$("#"+i.opt.dateFrom),a=$("#"+i.opt.dateTo),s=$("#"+i.opt.id),l=$("#"+i.opt.modalTrigger),r=i.opt.applyBtnClass,o=function(){var e="",t=l.data("lng-to"),i=l.data("lng-from"),s=$.trim(a.val()),r=$.trim(n.val());return""!=s&&""!=r?e=i+": "+r+" "+t+": "+s+".":""!=s&&""==r?e=t+": "+s+".":""==s&&""!=r&&(e=i+": "+r+"."),e},c=function(e){""!=e?(l.text(e).siblings(".trigger-label").addClass("hidden"),l.siblings("."+i.opt.clearAllButtonClass).addClass("active")):(l.text(l.data("default")).siblings(".trigger-label").removeClass("hidden"),l.siblings("."+i.opt.clearAllButtonClass).removeClass("active"))},d=function(e){var t,s,l,r,o=e.getAttribute("id"),c=e.value,d=Date.parse(c);i.validate()&&($(e).parent(".pwf-field").removeClass("err"),o==i.opt.dateFrom?(t=a[0].getAttribute("id"),s=a[0].value):(t=n[0].getAttribute("id"),s=n[0].value),l=Date.parse(s),d>l&&o==i.opt.dateFrom?(r=document.getElementById(o).value,document.getElementById(o).value=document.getElementById(t).value,document.getElementById(t).value=r):l>d&&o==i.opt.dateTo&&(r=document.getElementById(t).value,document.getElementById(t).value=document.getElementById(o).value,document.getElementById(o).value=r))};this.$dateFrom=n,this.$dateTo=a,this.$modalTrigger=l,$(function(){$.datepicker.setDefaults($.datepicker.regional.ru),n.datepicker({dateFormat:"dd.mm.yy",showOn:"button",showOtherMonths:!0,constrainInput:!0,onClose:function(e){a.datepicker("option","minDate",e)}}).inputmask("99.99.9999",{showMaskOnHover:!1,insertMode:!1,oncomplete:function(){t=this}}),a.datepicker({dateFormat:"dd.mm.yy",showOn:"button",showOtherMonths:!0,constrainInput:!0,onClose:function(e){n.datepicker("option","maxDate",e)}}).inputmask("99.99.9999",{showMaskOnHover:!1,insertMode:!1,oncomplete:function(){t=this}}),$('input[type="text"]',s).on("change",function(){var e=o();i.validate()&&c(e)}),$("."+r,s).on("click",function(){return t&&d(t),i.applyHandler(this),!1}),l.siblings("."+i.opt.clearAllButtonClass).on("click",function(){$(this).removeClass("active"),i.resetList()})})};d.prototype={resetList:function(){this.$dateFrom.val(""),this.$dateTo.val(""),this.$modalTrigger.text(this.$modalTrigger.attr("data-default"))},validate:function(){var e=this.$dateTo.val(),t=this.$dateFrom.val(),i=e.split("."),n=t.split("."),a=[],s=!0;return a[0]=Date.parse(i[1]+"."+i[0]+"."+i[2]),a[1]=Date.parse(n[1]+"."+n[0]+"."+n[2]),a[0]||""==$.trim(e)?this.$dateTo.parent(".pwf-field").removeClass("err"):(this.$dateTo.parent(".pwf-field").addClass("err"),s=!1),a[1]||""==$.trim(t)?this.$dateFrom.parent(".pwf-field").removeClass("err"):(this.$dateFrom.parent(".pwf-field").addClass("err"),s=!1),s},applyHandler:function(){}};var h=function(e){this.opt=e,this.opt.anyChar=!1;var i=this,s=!0;this.$field=$("#"+i.opt.id),this.DOMcompleteWrap=document.getElementById(i.opt.autoCompleteWrapId),this.afterClear,this.rawData={items:[],set:function(e){this.items=e,this._rawDataChange()},get:function(){return this.items},_rawDataChange:function(){var e,t=this;for(e=0;e2?n(a,i.opt.autoCompleteUrl,function(e){i.$field.hasClass("ui-autocomplete-input")&&i.$field[i.completeName]("destroy"),i.rawData.set(e),i._initAutoComplete(),i.showList("")}):0===text.length&&i.$field.hasClass("ui-autocomplete-input")&&(i.$field[i.completeName]("destroy"),t.removeClass(i.DOMcompleteWrap,"full-visible"),i._resetmodals(i.afterClear)):text.length>2&&s?(n(a,i.opt.autoCompleteUrl,function(e){i.rawData.set(e),i._initAutoComplete(),i.showList("")}),s=!1):0!=text.length||s?i.$field.hasClass("ui-autocomplete-input")&&i.showList(text):i.$field.hasClass("ui-autocomplete-input")&&(i.$field[i.completeName]("destroy"),t.removeClass(i.DOMcompleteWrap,"full-visible"),i._resetmodals(i.afterClear),s=!0),!1}).click(function(){return!1})};return h.prototype={_initAutoComplete:function(){var e=this;e.$field[e.completeName]({source:e.rawData.get(),minLength:0,appendTo:e.DOMcompleteWrap,select:function(t,i){e._afterSelect(t,i)},close:function(){t.removeClass(e.DOMcompleteWrap,"full-visible")},open:function(){t.addClass(e.DOMcompleteWrap,"full-visible")}})},_afterSelect:function(e,t){var i=this;e.preventDefault(),t.item.url?window.location=t.item.url:t.item.label.length&&(i.$field[0].value=t.item.label,i.selectCheckBoxes(t.item.id,t.item.name))},_resetmodals:function(e){return e?void e():0},selectHandler:function(){},selectCheckBoxes:function(){},showList:function(e){self=this,this.$field[self.completeName]("search",e)},pullData:function(){},clearValue:function(){this.$field.val("")}},e.init=function(e){$.extend(this.lang,e.lang),e.lang=null,$.extend(this.settings,e);var i=this,a=function(){$(i.DOMform).find('input[name="~~name~~"]').remove()};"None"!=this.settings.searchData&&this.settings.searchData&&(this.previousSearch=JSON.parse(this.settings.searchData)),this.DOMform=document.getElementById(this.settings.formId),$(this.DOMform).on("submit",function(){a()}),$.widget("custom.exibitionComplete",$.ui.autocomplete,{_renderMenu:function(e,t){var i=this,n="";$.each(t,function(t,a){a.cat!=n&&a.cat&&(e.append("
  • "+a.cat+"
  • "),n=a.cat),i._renderItemData(e,a)})}}),$.widget("custom.exibitionComplete",$.ui.autocomplete,{_renderMenu:function(e,t){var i=this,n="";$.each(t,function(t,a){a.cat!=n&&a.cat&&(e.append("
  • "+a.cat+"
  • "),n=a.cat),i._renderItemData(e,a)})}}),$.widget("custom.placeComplete",$.ui.autocomplete,{_renderItem:function(e,t){return $("
  • ").append($("").text(t.label)).append(' ('+t.cat+")").appendTo(e)}}),this.exhibitionField=new h(i.settings.firstField),this.exhibitionField.completeName="exibitionComplete",this.exhibitionField.opt.anyChar=!0,this.placesModal=new c(i.settings.place),this.subjModal=new o(i.settings.subject),this.periodModal=new d(i.settings.period),this.exhibitionField.selectCheckBoxes=function(e,t){var i,a,s=this,l=t;"th"==t?i=document.getElementById(s.opt.prefix+e):"tg"==t&&(i=document.getElementById(s.opt.prefixInner+e),l="th"),r.show(),i?(r.hide(),$(i).prop("checked",!0),$(i).trigger("change")):(a={name:t,id:e},n(a,EXPO.searchBlock.subjModal.opt.getParentUrl,function(i){EXPO.searchBlock.subjModal._loadParentTree(i,function(){EXPO.searchBlock.subjModal._checkCheckBox(e,t)})}))},this.placesField=new h(i.settings.placeField),this.placesField.dataForm=EXPO.searchBlock.placesModal.$inputFilter.attr("data-form"),this.placesField.selectCheckBoxes=function(e,t){var i,a,s=this;i=document.getElementById(s.opt.prefix+e),i?(r.hide(),$(i).prop("checked",!0),$(i).trigger("change")):(a={name:t,id:e},n(a,EXPO.searchBlock.placesModal.opt.getParentUrl,function(t){EXPO.searchBlock.placesModal._loadParentTree(t,function(){EXPO.searchBlock.placesModal._checkCheckBox(e,!0)})}))},this.exhibitionField.afterClear=function(){i.subjModal.resetList()},this.placesField.afterClear=function(){i.placesModal.resetList()},this.modalWindow=new t.Modal(i.settings.modal),this.periodModal.applyHandler=function(){this.validate()&&(r.show(),$(i.DOMform).submit())},this.placesModal.applyHandler=function(){r.show(),$(i.DOMform).submit()},this.subjModal.applyHandler=function(){r.show(),$(i.DOMform).submit()},$("."+i.settings.modalTriggerClass).on("click",function(e){return e.preventDefault(),i.modalWindow.pullData(this.getAttribute("href")),i.modalWindow.open(),!1}),$(function(){if(i.previousSearch)for(var e=0;e2?$element.eq(0).text().length2&&d?(a({term:t,form:o},l.opt.autoCompleteUrl,u),d=!1):0!=t.length||d||l.$inputFilter.hasClass("ui-autocomplete-input")&&(l.$inputFilter.placeComplete("destroy"),d=!0),!1}).click(function(){return!1})},_renderSublist:function(e,t,i){var a=this,n=0,s=t+"-sub",l=function(e){if(e.length){for(a.sublist[s]={},n;nw;w++)for(p=y[w],I=0;S>I;I++)p==_[I]&&M(r[I]);for(w=0;x>w;w++)p=y[w],p==T&&M(i);C.querySelectorAll(".final-tire")&&$("."+e+"."+n,C.querySelectorAll(".final-tire")).each(function(){M($("."+l,this)[0])})}else for(w=0;x>w;w++)p=y[w],p==T&&M(T)},M=function(e){var t=e.getAttribute("id");i._destroyTag(t),P()},O=function(e){var n=t.closest(e,a),s=n.querySelector("."+u),l=s.innerHTML,r=e.getAttribute("id"),o={id:r,text:l};i._addTag(r,o),P()},P=function(){o.find("."+h).length&&"~~id~~"!=o.find("."+h)[0].getAttribute(m)?o.addClass("visible"):o.removeClass("visible")},q=function(t){var i=$(t).children("li").children("."+e).find("."+l+":checked");i.each(function(){O(this)})},E=function(){var t=$(C).children("li").children("."+e).find("."+l+":checked");t.each(function(){M(this)})};i.strictMode?this.checked?(I(this),D(this),O(this)):(B(this),D(this),M(this)):this.checked?($(k).find("."+l)[0]&&k&&"~~id~~"!=$(k).find("."+l)[0].value&&D(this),F()?(T(this),I(this),D(v),O(v),E(C),v.getAttribute("id")!=_.getAttribute("id")||_.checked||(I(_),D(_),O(_))):(I(this),D(this),O(this)),k&&x(this)):(A()?(w(this),B(this),D(v),M(v),q(C),_.checked&&(B(_),M(_),q(y))):(B(this),D(this),M(this)),k&&(S(this),D(this))),p()}),$(".csbs-del",o).on("click",function(){var e=$(this).attr("data-checkbox-id"),t=$("#"+e);return t.prop("checked",!1),t.trigger("change"),dna.destroy(i.itemsSelected[e]),o.children(".dna-clone").length||o.removeClass("visible"),!1}),$(".modal-clear",n).on("click",function(){return i.resetList(),!1}),$(".q-sel a",n).on("click",function(){var e=$(this),t=e.attr("data-name"),n=e.attr("data-id"),s={name:t,id:n},l=function(e){i._loadParentTree(e,function(){i._checkCheckBox(n)})};return a(s,i.opt.getParentUrl,l),!1}),$("."+h,n).on("click",function(){return i.applyHandler(this),!1}),d.siblings("."+i.opt.clearAllButtonClass).on("click",function(){i.resetList(),EXPO.searchBlock.placesField.clearValue()})})};c.prototype={_getAjax:function(e,t){var i=this;e||(e=""),$.ajax({type:"GET",url:i.opt.ajaxUrl,data:e,success:function(e){return"function"!=typeof t?(i.rawData=e,e):(i.rawData=e,void t(e))}})},_renderSublist:function(e,t,i){var a=this,n=0,s=t+"-sub",l=function(e){if(e.length){for(a.curDNA[s]={},n;n2&&o?(a({term:t,form:l},s.opt.autoCompleteUrl,d),o=!1):0!=t.length||o||s.$inputFilter.hasClass("ui-autocomplete-input")&&(s.$inputFilter.autocomplete("destroy"),o=!0),!1}).click(function(){return!1})},_loadParentTree:function(e,t,i){var a,n,l,o,c=this,d=e,h=$("#id_"+d.id),u=function(e){var a=$("#id_"+d.id),h=function(){r.hide(),i||0===i?t(i):t()};r.hide(),a.length&&s(c.curDNA[n+"-sub"])==e&&(l={name:d.name,id:d.id},r.show(),o=$("#id_"+d.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderNested(l,h,o,d.id))},p=function(){r.hide(),i||0===i?t(i):t()};r.show(),d.hasOwnProperty("parent")?h.length?(l={name:d.name,id:d.id},o=h.closest(".level").children(".trigger").attr("data-template-id"),c._renderNested(l,function(){r.hide(),t()},o,d.id)):(a={name:d.parent.name,id:d.parent.id},n=$("#id_"+d.parent.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderSublist(a,n,u)):(a={name:d.name,id:d.id},n=$("#id_"+d.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderSublist(a,n,p))},applyHandler:function(){},_refreshText:function(){var e,t=$("#"+this.opt.modalTrigger),i=16;e=l(this.opt.selectedItemsContainer,i),e&&"~~text~~"!=e&&"~~text~~..."!=e?(t.text(e),t.siblings("."+this.opt.clearAllButtonClass).addClass("active")):(t.text(t.data("default")),t.siblings("."+this.opt.clearAllButtonClass).removeClass("active"))}};var d=function(e){this.opt=e;var t,i=this,a=$("#"+i.opt.dateFrom),n=$("#"+i.opt.dateTo),s=$("#"+i.opt.id),l=$("#"+i.opt.modalTrigger),r=i.opt.applyBtnClass,o=function(){var e="",t=l.data("lng-to"),i=l.data("lng-from"),s=$.trim(n.val()),r=$.trim(a.val());return""!=s&&""!=r?e=i+": "+r+" "+t+": "+s+".":""!=s&&""==r?e=t+": "+s+".":""==s&&""!=r&&(e=i+": "+r+"."),e},c=function(e){""!=e?(l.text(e).siblings(".trigger-label").addClass("hidden"),l.siblings("."+i.opt.clearAllButtonClass).addClass("active")):(l.text(l.data("default")).siblings(".trigger-label").removeClass("hidden"),l.siblings("."+i.opt.clearAllButtonClass).removeClass("active"))},d=function(e){var t,s,l,r,o=e.getAttribute("id"),c=e.value,d=Date.parse(c);i.validate()&&($(e).parent(".pwf-field").removeClass("err"),o==i.opt.dateFrom?(t=n[0].getAttribute("id"),s=n[0].value):(t=a[0].getAttribute("id"),s=a[0].value),l=Date.parse(s),d>l&&o==i.opt.dateFrom?(r=document.getElementById(o).value,document.getElementById(o).value=document.getElementById(t).value,document.getElementById(t).value=r):l>d&&o==i.opt.dateTo&&(r=document.getElementById(t).value,document.getElementById(t).value=document.getElementById(o).value,document.getElementById(o).value=r))};this.$dateFrom=a,this.$dateTo=n,this.$modalTrigger=l,$(function(){$.datepicker.setDefaults($.datepicker.regional.ru),a.datepicker({dateFormat:"dd.mm.yy",showOn:"button",showOtherMonths:!0,constrainInput:!0,onClose:function(e){n.datepicker("option","minDate",e)}}).inputmask("99.99.9999",{showMaskOnHover:!1,insertMode:!1,oncomplete:function(){t=this}}),n.datepicker({dateFormat:"dd.mm.yy",showOn:"button",showOtherMonths:!0,constrainInput:!0,onClose:function(e){a.datepicker("option","maxDate",e)}}).inputmask("99.99.9999",{showMaskOnHover:!1,insertMode:!1,oncomplete:function(){t=this}}),$('input[type="text"]',s).on("change",function(){var e=o();i.validate()&&c(e)}),$("."+r,s).on("click",function(){return t&&d(t),i.applyHandler(this),!1}),l.siblings("."+i.opt.clearAllButtonClass).on("click",function(){$(this).removeClass("active"),i.resetList()})})};d.prototype={resetList:function(){this.$dateFrom.val(""),this.$dateTo.val(""),this.$modalTrigger.text(this.$modalTrigger.attr("data-default"))},validate:function(){var e=this.$dateTo.val(),t=this.$dateFrom.val(),i=e.split("."),a=t.split("."),n=[],s=!0;return n[0]=Date.parse(i[1]+"."+i[0]+"."+i[2]),n[1]=Date.parse(a[1]+"."+a[0]+"."+a[2]),n[0]||""==$.trim(e)?this.$dateTo.parent(".pwf-field").removeClass("err"):(this.$dateTo.parent(".pwf-field").addClass("err"),s=!1),n[1]||""==$.trim(t)?this.$dateFrom.parent(".pwf-field").removeClass("err"):(this.$dateFrom.parent(".pwf-field").addClass("err"),s=!1),s},applyHandler:function(){}};var h=function(e){this.opt=e,this.opt.anyChar=!1;var i=this,s=!0;this.$field=$("#"+i.opt.id),this.DOMcompleteWrap=document.getElementById(i.opt.autoCompleteWrapId),this.afterClear,this.rawData={items:[],set:function(e){this.items=e,this._rawDataChange()},get:function(){return this.items},_rawDataChange:function(){var e,t=this;for(e=0;e2?a(n,i.opt.autoCompleteUrl,function(e){i.$field.hasClass("ui-autocomplete-input")&&i.$field[i.completeName]("destroy"),i.rawData.set(e),i._initAutoComplete(),i.showList("")}):0===text.length&&i.$field.hasClass("ui-autocomplete-input")&&(i.$field[i.completeName]("destroy"),t.removeClass(i.DOMcompleteWrap,"full-visible"),i._resetmodals(i.afterClear)):text.length>2&&s?(a(n,i.opt.autoCompleteUrl,function(e){i.rawData.set(e),i._initAutoComplete(),i.showList("")}),s=!1):0!=text.length||s?i.$field.hasClass("ui-autocomplete-input")&&i.showList(text):i.$field.hasClass("ui-autocomplete-input")&&(i.$field[i.completeName]("destroy"),t.removeClass(i.DOMcompleteWrap,"full-visible"),i._resetmodals(i.afterClear),s=!0),!1}).click(function(){return!1})};return h.prototype={_initAutoComplete:function(){var e=this;e.$field[e.completeName]({source:e.rawData.get(),minLength:0,appendTo:e.DOMcompleteWrap,select:function(t,i){e._afterSelect(t,i)},close:function(){t.removeClass(e.DOMcompleteWrap,"full-visible")},open:function(){t.addClass(e.DOMcompleteWrap,"full-visible")}})},_afterSelect:function(e,t){var i=this;e.preventDefault(),t.item.url?window.location=t.item.url:t.item.label.length&&(i.$field[0].value=t.item.label,i.selectCheckBoxes(t.item.id,t.item.name))},_resetmodals:function(e){return e?void e():0},selectHandler:function(){},selectCheckBoxes:function(){},showList:function(e){self=this,this.$field[self.completeName]("search",e)},pullData:function(){},clearValue:function(){this.$field.val("")}},e.init=function(e){$.extend(this.lang,e.lang),e.lang=null,$.extend(this.settings,e);var i=this,n=function(){$(i.DOMform).find('input[name="~~name~~"]').remove()};"None"!=this.settings.searchData&&this.settings.searchData&&(this.previousSearch=JSON.parse(this.settings.searchData)),this.DOMform=document.getElementById(this.settings.formId),$(this.DOMform).on("submit",function(){n()}),$.widget("custom.exibitionComplete",$.ui.autocomplete,{_renderMenu:function(e,t){var i=this,a="";$.each(t,function(t,n){n.cat!=a&&n.cat&&(e.append("
  • "+n.cat+"
  • "),a=n.cat),i._renderItemData(e,n)})}}),$.widget("custom.exibitionComplete",$.ui.autocomplete,{_renderMenu:function(e,t){var i=this,a="";$.each(t,function(t,n){n.cat!=a&&n.cat&&(e.append("
  • "+n.cat+"
  • "),a=n.cat),i._renderItemData(e,n)})}}),$.widget("custom.placeComplete",$.ui.autocomplete,{_renderItem:function(e,t){return $("
  • ").append($("").text(t.label)).append(' ('+t.cat+")").appendTo(e)}}),this.exhibitionField=new h(i.settings.firstField),this.exhibitionField.completeName="exibitionComplete",this.exhibitionField.opt.anyChar=!0,this.placesModal=new c(i.settings.place),this.subjModal=new o(i.settings.subject),this.periodModal=new d(i.settings.period),this.exhibitionField.selectCheckBoxes=function(e,t){var i,n,s=this,l=t;"th"==t?i=document.getElementById(s.opt.prefix+e):"tg"==t&&(i=document.getElementById(s.opt.prefixInner+e),l="th"),r.show(),i?(r.hide(),$(i).prop("checked",!0),$(i).trigger("change")):(n={name:t,id:e},a(n,EXPO.searchBlock.subjModal.opt.getParentUrl,function(i){EXPO.searchBlock.subjModal._loadParentTree(i,function(){EXPO.searchBlock.subjModal._checkCheckBox(e,t)})}))},this.placesField=new h(i.settings.placeField),this.placesField.dataForm=EXPO.searchBlock.placesModal.$inputFilter.attr("data-form"),this.placesField.selectCheckBoxes=function(e,t){var i,n,s=this;i=document.getElementById(s.opt.prefix+e),i?(r.hide(),$(i).prop("checked",!0),$(i).trigger("change")):(n={name:t,id:e},a(n,EXPO.searchBlock.placesModal.opt.getParentUrl,function(t){EXPO.searchBlock.placesModal._loadParentTree(t,function(){EXPO.searchBlock.placesModal._checkCheckBox(e,!0)})}))},this.exhibitionField.afterClear=function(){i.subjModal.resetList()},this.placesField.afterClear=function(){i.placesModal.resetList()},this.modalWindow=new t.Modal(i.settings.modal),this.periodModal.applyHandler=function(){this.validate()&&(r.show(),$(i.DOMform).submit())},this.placesModal.applyHandler=function(){r.show(),$(i.DOMform).submit()},this.subjModal.applyHandler=function(){r.show(),$(i.DOMform).submit()},$("."+i.settings.modalTriggerClass).on("click",function(e){return e.preventDefault(),i.modalWindow.pullData(this.getAttribute("href")),i.modalWindow.open(),!1}),$(function(){if(i.previousSearch)for(var e=0;e Date: Wed, 14 Jan 2015 19:36:10 +0000 Subject: [PATCH 8/8] expo-34 bugs fontend part ready --- templates/client/accounts/feed.html | 8 +- .../static_client/js/_modules/block.search.js | 2 +- .../js/_modules/page.events.feed.js | 282 ++++++++++-------- .../js_min/_modules/page.events.feed.min.js | 2 +- 4 files changed, 169 insertions(+), 125 deletions(-) diff --git a/templates/client/accounts/feed.html b/templates/client/accounts/feed.html index b4974111..4237fb73 100644 --- a/templates/client/accounts/feed.html +++ b/templates/client/accounts/feed.html @@ -28,7 +28,7 @@ @@ -41,7 +41,7 @@
    ~~text~~
    - x + x
    @@ -106,7 +106,7 @@ filterInputId: 'filter-place-filter-input', modalTrigger: 'filter-place-modal-trigger', selectedItemsContainer: 'filter-csb-selected-items', - clearAllButtonClass: 'clear-all-button', + clearAllButtonClass: 'modal-clear', applyBtnClass: 'modal-approve', tagsBoxId: 'filter-places-tags', deleteTagClass: 'csbs-del', @@ -129,7 +129,7 @@ subjectTriggerWrapId: 'filter-subj-checks', //switched by default defaultOn: ['f-s-exhibition-check', 'f-s-conference-check'], - clearAllButtonClass: 'clear-all-button', + clearAllButtonClass: 'modal-clear', applyBtnClass: 'modal-approve', tagsBoxId: 'filter-subject-tags', deleteTagClass: 'csbs-del', diff --git a/templates/client/static_client/js/_modules/block.search.js b/templates/client/static_client/js/_modules/block.search.js index 7975dfb6..3762241d 100644 --- a/templates/client/static_client/js/_modules/block.search.js +++ b/templates/client/static_client/js/_modules/block.search.js @@ -1423,7 +1423,7 @@ if (EXPO.searchBlock){ } } $('.level.active',this.$modal).removeClass('active'); - this._refreshText() + this._refreshText(); self.selectedWrap.removeClass('visible'); }, /** diff --git a/templates/client/static_client/js/_modules/page.events.feed.js b/templates/client/static_client/js/_modules/page.events.feed.js index c62afba8..ec85b645 100644 --- a/templates/client/static_client/js/_modules/page.events.feed.js +++ b/templates/client/static_client/js/_modules/page.events.feed.js @@ -312,12 +312,9 @@ if (EXPO.events.feed) { } return false; }); - $('#'+self.opt.deleteId).on('click',function () { - $('.' + self.opt.deleteTagClass, $modal).trigger('click'); - }); - $('.clear', $modal).on('click', function () { - self.resetList(); - return false; + $('.del-on-page').on('click',function () { + var dataCheckboxId = $(this).attr('data-checkbox-id'); + $('.' + self.opt.deleteTagClass+'[data-checkbox-id="'+dataCheckboxId+'"]', $modal).trigger('click'); }); self._autocompleteInit(); $('.' + applyBtnClass, $modal).on('click', function () { @@ -326,8 +323,10 @@ if (EXPO.events.feed) { }); // кнопка "очистить параметры" - $modalTrigger.siblings('.' + self.opt.clearAllButtonClass).on('click', function () { + $('.'+self.opt.clearAllButtonClass,$modal).on('click', function (e) { + e.preventDefault(); self.resetList(); + return false; }); }); }; @@ -665,14 +664,17 @@ if (EXPO.events.feed) { var self = this; for (var key in self.itemsSelected) { if (self.itemsSelected.hasOwnProperty(key)) { - $('#' + key, self.$selfContainer).prop('checked', false).trigger('change'); + $('#'+key, self.$selfContainer).prop('checked', false).closest('.custom-radio-check').removeClass('active'); dna.destroy(self.itemsSelected[key]); + dna.destroy(self.tagsBoxItems[key]); + } } - $('.sublist', self.$modalInst).addClass('hidden'); - $('.level', self.$modalInst).removeClass('active'); - self.$selectedItemsWrap.removeClass('visible'); + $('.level.active',this.$modal).removeClass('active'); + this._refreshLabel(); + + this.$selectedItemsWrap.removeClass('visible'); }, /** * render label text, if there is no selected element then text will be default @@ -689,6 +691,7 @@ if (EXPO.events.feed) { }, // кнопка применить applyHandler: function (it) { + EXPO.events.feed.modalWindow.close(); } @@ -827,39 +830,42 @@ if (EXPO.events.feed) { DOMParentRow = com.closest(this, itemClass), - DOMParentItem = com.hasClass(DOMParentRow, highestItemClass) == false ? com.closest(DOMParentRow.parentNode, itemClass) : DOMParentRow, - DOMParentCheckbox = DOMParentItem.querySelector('.' + checkboxClass), - DOMSublist = DOMParentItem.querySelector('.' + sublistClass), - DOMSublistInner = DOMParentRow.querySelector('.' + sublistClass), + DOMParentItem = com.hasClass(DOMParentRow, highestItemClass) == false?com.closest(DOMParentRow.parentNode, itemClass):DOMParentRow, + DOMParentCheckbox = DOMParentItem.querySelector('.'+checkboxClass), + DOMSublist = DOMParentItem.querySelector('.'+sublistClass), + DOMSublistInner = DOMParentRow.querySelector('.'+sublistClass), DOMHighestItem = com.closest(this, highestItemClass), - DOMHighestCheckbox = DOMHighestItem.querySelector('.' + checkboxClass), + DOMHighestCheckbox = DOMHighestItem.querySelector('.'+checkboxClass), + DOMHighestSublist = DOMHighestItem.querySelector('.'+sublistClass), + selectSublist = function (it) { var DOMParentItem = com.closest(it, itemClass) || this, - DOMSublist = DOMParentItem.querySelector('.' + sublistClass); - $('.' + checkboxClass, DOMSublist).each(function () { + DOMSublist = DOMParentItem.querySelector('.'+sublistClass); + $('.'+checkboxClass, DOMSublist).each(function () { selectItem(this); }); }, unSelectSublist = function (it) { var DOMParentItem = com.closest(it, itemClass) || this, - DOMSublist = DOMParentItem.querySelector('.' + sublistClass); - $('.' + checkboxClass, DOMSublist).each(function () { + DOMSublist = DOMParentItem.querySelector('.'+sublistClass); + $('.'+checkboxClass, DOMSublist).each(function () { unSelectItem(this); + }); }, selectParent = function (it) { var DOMParentRow = com.closest(it, itemClass), DOMParentItem; - if (com.hasClass(DOMParentRow, 'level1')) { + if(com.hasClass(DOMParentRow,'level1')){ DOMParentItem = DOMParentRow; - } else { + }else{ DOMParentItem = com.closest(DOMParentRow.parentNode, itemClass); } - com.addClass(DOMParentItem.querySelector('.' + fakeCheckboxClass), activeClass); - DOMParentItem.querySelector('.' + checkboxClass).checked = true; + com.addClass(DOMParentItem.querySelector('.'+fakeCheckboxClass), activeClass); + DOMParentItem.querySelector('.'+checkboxClass).checked = true; //it.selected = true; @@ -868,8 +874,8 @@ if (EXPO.events.feed) { var DOMParentRow = com.closest(it, itemClass), DOMParentItem = com.closest(DOMParentRow.parentNode, itemClass) || DOMParentRow; - com.removeClass(DOMParentItem.querySelector('.' + fakeCheckboxClass), activeClass); - DOMParentItem.querySelector('.' + checkboxClass).checked = false; + com.removeClass(DOMParentItem.querySelector('.'+fakeCheckboxClass), activeClass); + DOMParentItem.querySelector('.'+checkboxClass).checked = false; //it.checked = false; }, @@ -880,97 +886,110 @@ if (EXPO.events.feed) { }, unSelectItem = function (it) { - var itFakeCheckbox = com.closest(it, fakeCheckboxClass); + var itFakeCheckbox = com.closest(it, fakeCheckboxClass), + DOMitem = com.closest(it, itemClass); com.removeClass(itFakeCheckbox, activeClass); it.checked = false; + // if there is children items + if(DOMitem.querySelector('.'+sublistClass) && !com.hasClass(DOMitem,highestItemClass)){ + unSelectSublist(it); + } }, allChildrenSelected = function () { //var DOMselected = DOMSublist.querySelectorAll('.'+checkboxClass+':checked'), - var DOMSublistParent = com.closest(DOMSublist, sublistClass), - $selected = $(DOMSublist).children('li').children('.' + fakeCheckboxClass).find('.' + checkboxClass + ':checked'), + var DOMSublistParent = com.closest(DOMSublist,sublistClass), + $selected = $(DOMSublist).children('li').children('.'+fakeCheckboxClass).find('.'+checkboxClass+':checked'), selectedCount = $selected.length, //allCount = DOMSublist.querySelectorAll('.'+checkboxClass).length; - allCount = $(DOMSublist).children('li').children('.' + fakeCheckboxClass).find('.' + checkboxClass).length; + allCount = $(DOMSublist).children('li').children('.'+fakeCheckboxClass).find('.'+checkboxClass).length; - if (allCount == selectedCount && selectedCount != 0) { + if(allCount == selectedCount && selectedCount != 0){ return true; - } else { + } else{ return false; } }, parentSelected = function () { - var parentCheckbox = DOMParentItem.querySelector('.' + checkboxClass); - if (parentCheckbox.checked) { + var parentCheckbox = DOMParentItem.querySelector('.'+checkboxClass); + if(parentCheckbox.checked){ return true; - } else { + }else{ return false; } }, - // Функционал добавления тегов: если есть в панели выбранный элемент либо его дочерние то удалить эти эдементы и разместить выбранный; иначе разместить выбранные. + // Функционал добавления тегов: если есть в панели выбранный элемент либо его дочерние то удалить эти эдементы; refreshTags = function (it) { - var DOMSublist = com.closest(it, sublistClass); - var DOMItem = com.closest(it, itemClass); - var DOMSublistInner = DOMItem.querySelector('.' + sublistClass); - var DOMAllTags = DOMTagsWrapper.querySelectorAll('.' + tagClass); + var DOMSublist = com.closest(it,sublistClass); + var DOMItem = com.closest(it,itemClass); + var DOMSublistInner = DOMItem.querySelector('.'+sublistClass); + var DOMAllTags = DOMTagsWrapper.querySelectorAll('.'+tagClass); var ARRsublist; - var ARRsublistChildren = DOMSublist.querySelector('.' + sublistClass) ? $('.' + checkboxClass + ':checked', DOMSublist.querySelector('.' + sublistClass)) : null; - var ARRsublistChildrenLength = ARRsublistChildren ? ARRsublistChildren.length : null; + var ARRsublistChildren = DOMSublist.querySelector('.'+sublistClass)?$('.'+checkboxClass+':checked',DOMSublist.querySelector('.'+sublistClass)):null; + var ARRsublistChildrenLength = ARRsublistChildren?ARRsublistChildren.length:null; var ARRSublistIds = []; var ARRAllTagsIds = []; var allTagsLength = 0; var sublistIdsLength = 0; var itId = it.getAttribute('id'); - var i = 0, j = 0, t = 0, tmp, k = 0; + var i = 0, j= 0, t= 0, tmp, k = 0; var tagId; - var tagText = DOMParentRow.querySelector('.' + triggerClass).innerHTML; + var tagText = DOMParentRow.querySelector('.'+triggerClass).innerHTML; // если есть дочерние элементы - if (DOMSublistInner) { - ARRsublist = $(DOMSublistInner).children('li').children('.' + fakeCheckboxClass).find('.' + checkboxClass + ':checked') + if(DOMSublistInner){ + ARRsublist = $(DOMSublistInner).children('li').children('.'+fakeCheckboxClass).find('.'+checkboxClass+':checked') //получаем массив id жлементовЮ для которых есть тег - for (k; k < ARRsublist.length; k++) { + for(k; k < ARRsublist.length; k++){ tmp = ARRsublist[k].getAttribute('id'); ARRSublistIds.push(tmp); } //очистк - for (t; t < DOMAllTags.length; t++) { - tmp = DOMAllTags[t].querySelector('.' + tagButtonClass).getAttribute(tagIdAttribute); - if (tmp != '~~id~~') { + for(t; t2&&d?(n({term:t,form:l},o.opt.autoCompleteUrl,u),d=!1):0!=t.length||d||o.$inputFilter.hasClass("ui-autocomplete-input")&&(o.$inputFilter.autocomplete("destroy"),d=!0),!1}).click(function(){return!1})},_renderSublist:function(e,t,i){var n=this,s=0,a=t+"-sub",o=function(e){if(e.length){for(n.sublist[a]={},s;sS;S++)for(c=y[S],T=0;x>T;T++)c==C[T]&&B(s[T]);for(S=0;_>S;S++)c=y[S],c==I&&B(i)}else for(S=0;_>S;S++)c=y[S],c==I&&B(I)},B=function(e){var t=e.getAttribute("id");i._destroyTag(t),A()},M=function(e){var s=t.closest(e,n),a=s.querySelector("."+p),r=a.innerHTML,o=e.getAttribute("id"),l={id:o,text:r};i._addTag(o,l),A()},A=function(){o.children("."+d).length&&"~~id~~"!=o.children("."+d)[0].getAttribute(f)?o.addClass("visible"):o.removeClass("visible")},F=function(){var t=$(b).children("li").children("."+e).find("."+r+":checked");t.each(function(){M(this)})},E=function(){var t=$(b).children("li").children("."+e).find("."+r+":checked");t.each(function(){B(this)})};this.checked?(w()?(I(this),T(this),P(v),M(v),E(b),v.getAttribute("id")!=y.getAttribute("id")||y.checked||(T(y),P(y),M(y))):(T(this),P(this),M(this)),k&&_(this)):(D()?(S(this),O(this),P(v),B(v),F(b),y.checked&&(O(y),P(y),B(y))):(O(this),P(this),B(this)),k&&x(this)),u()}),$("."+i.opt.deleteTagClass,s).on("click",function(){var e=$(this).attr("data-checkbox-id"),t=$("#"+e);return t.prop("checked",!1),t.trigger("change"),i._refreshLabel(),o.children(".dna-clone").length||o.removeClass("visible"),!1}),$("#"+i.opt.deleteId).on("click",function(){$("."+i.opt.deleteTagClass,s).trigger("click")}),$(".clear",s).on("click",function(){return i.resetList(),!1}),$(".q-sel a",s).on("click",function(){var e=$(this),t=e.attr("data-name"),s=e.attr("data-id"),a={name:t,id:s},r=function(e){i._loadParentTree(e,function(){i._checkCheckBox(s)})};return n(a,i.opt.getParentUrl,r),!1}),$("."+d,s).on("click",function(){return i.applyHandler(this),!1}),c.siblings("."+i.opt.clearAllButtonClass).on("click",function(){i.resetList()})})};return c.prototype={_getAjax:function(e,t){var i=this;e||(e=""),$.ajax({type:"GET",url:i.opt.ajaxUrl,data:e,success:function(e){return"function"!=typeof t?(i.rawData=e,e):(i.rawData=e,void t(e))}})},_renderSublist:function(e,t,i){var n=this,s=0,a=t+"-sub",o=function(e){if(e.length){for(n.curDNA[a]={},s;s2&&c?(r.show(),n({term:t,form:o},a.opt.autoCompleteUrl,h),c=!1):0!=t.length||c||a.$inputFilter.hasClass("ui-autocomplete-input")&&(a.$inputFilter.autocomplete("destroy"),c=!0),!1}).click(function(){return!1})},_loadParentTree:function(e,t,i){var n,s,o,l,c=this,d=e,h=$("#id_"+c.opt.prefix+d.id),u=function(e){var n=$("#id_"+c.opt.prefix+d.id),h=function(){r.hide(),i||0===i?t(i):t()};r.hide(),n.length&&a(c.curDNA[s+"-sub"])==e&&(o={name:d.name,id:d.id},r.show(),l=$("#id_"+c.opt.prefix+d.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderNested(o,h,l,d.id))},p=function(){r.hide(),i||0===i?t(i):t()};r.show(),d.hasOwnProperty("parent")?h.length?(o={name:d.name,id:d.id},l=h.closest(".level").children(".trigger").attr("data-template-id"),c._renderNested(o,function(){r.hide(),t()},l,d.id)):(n={name:d.parent.name,id:d.parent.id},s=$("#id_"+c.opt.prefix+d.parent.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderSublist(n,s,u)):(n={name:d.name,id:d.id},s=$("#id_"+c.opt.prefix+d.id).closest(".level").children(".trigger").attr("data-template-id"),c._renderSublist(n,s,p))},applyHandler:function(){},_refreshLabel:function(){var e=this.selectedWrap.children().length;this.$label.text(this.$label.attr(e?"data-selected":"data-default"))}},e.init=function(e){$.extend(this.opt,e);var n=this,s=function(){$(n.DOMform).find('input[name="~~name~~"]').remove()};"None"!=this.opt.searchData&&this.opt.searchData&&(this.previousSearch=JSON.parse(this.opt.searchData)),this.DOMform=document.getElementById(this.opt.formId),this.DOMhint=document.getElementById(this.opt.filter.hintId),$(this.DOMform).on("submit",function(){s()}),this.DOMapplyButton=document.getElementById(this.opt.applyButtonId),this.filterPane=new i(this.opt.filter),$("#"+this.opt.filter.buttonId).on("click",function(){return t.hasClass(this,n.opt.activeClass)?(t.removeClass(this,n.opt.activeClass),n.filterPane.hide()):(t.addClass(this,n.opt.activeClass),n.filterPane.show()),!1}),$("#"+n.opt.bodyId+" ."+n.opt.modalTriggerClass).on("click",function(e){return e.preventDefault(),n.modalWindow.pullData(this.getAttribute("href")),n.modalWindow.open(),!1}),$("#"+n.opt.applyButtonId).on("click",function(){return $(n.DOMform).submit(),!1}),this.modalWindow=new t.Modal(n.opt.modal),this.placesModal=new c(n.opt.place),this.subjModal=new l(n.opt.subject),this.placesModal.applyHandler=function(){n.modalWindow.close(),$(n.DOMform).submit()},this.subjModal.applyHandler=function(){n.modalWindow.close(),$(n.DOMform).submit()},$(function(){if(n.previousSearch.inputs.length){$(n.DOMhint).hide();for(var e=0;e2&&d?(n({term:t,form:c},o.opt.autoCompleteUrl,u),d=!1):0!=t.length||d||o.$inputFilter.hasClass("ui-autocomplete-input")&&(o.$inputFilter.autocomplete("destroy"),d=!0),!1}).click(function(){return!1})},_renderSublist:function(e,t,i){var n=this,s=0,a=t+"-sub",o=function(e){if(e.length){for(n.sublist[a]={},s;sT;T++)for(h=_[T],O=0;S>O;O++)h==C[O]&&A(o[O]);for(T=0;x>T;T++)h=_[T],h==I&&A(i);b.querySelectorAll(".final-tire")&&$("."+e+"."+s,b.querySelectorAll(".final-tire")).each(function(){A($("."+r,this)[0])})}else for(T=0;x>T;T++)h=_[T],h==I&&A(I)},A=function(e){var t=e.getAttribute("id");i._destroyTag(t),q()},M=function(e){var s=t.closest(e,n),a=s.querySelector("."+p),r=a.innerHTML,o=e.getAttribute("id"),c={id:o,text:r};i._addTag(o,c),q()},q=function(){o.find("."+u).length&&"~~id~~"!=o.find("."+u)[0].getAttribute(f)?o.addClass("visible"):o.removeClass("visible")},F=function(t){var i=$(t).children("li").children("."+e).find("."+r+":checked");i.each(function(){M(this)})},E=function(){var t=$(b).children("li").children("."+e).find("."+r+":checked");t.each(function(){A(this)})};i.strictMode?this.checked?(O(this),D(this),M(this)):(P(this),D(this),A(this)):this.checked?($(k).find("."+r)[0]&&k&&"~~id~~"!=$(k).find("."+r)[0].value&&D(this),w()?(I(this),O(this),D(m),M(m),E(b),m.getAttribute("id")!=C.getAttribute("id")||C.checked||(O(C),D(C),M(C))):(O(this),D(this),M(this)),k&&x(this)):(B()?(T(this),P(this),D(m),A(m),F(b),C.checked&&(P(C),A(C),F(_))):(P(this),D(this),A(this)),k&&(S(this),D(this))),h()}),$("."+i.opt.deleteTagClass,s).on("click",function(){var e=$(this).attr("data-checkbox-id"),t=$("#"+e);return t.prop("checked",!1),t.trigger("change"),i._refreshLabel(),o.children(".dna-clone").length||o.removeClass("visible"),!1}),$(".del-on-page").on("click",function(){var e=$(this).attr("data-checkbox-id");$("."+i.opt.deleteTagClass+'[data-checkbox-id="'+e+'"]',s).trigger("click")}),$(".clear",s).on("click",function(){return i.resetList(),!1}),$(".q-sel a",s).on("click",function(){var e=$(this),t=e.attr("data-name"),s=e.attr("data-id"),a={name:t,id:s},r=function(e){i._loadParentTree(e,function(){i._checkCheckBox(s)})};return n(a,i.opt.getParentUrl,r),!1}),$("."+l,s).on("click",function(){return i.applyHandler(this),!1}),$("."+i.opt.clearAllButtonClass,s).on("click",function(e){return e.preventDefault(),i.resetList(),!1})})};return l.prototype={_getAjax:function(e,t){var i=this;e||(e=""),$.ajax({type:"GET",url:i.opt.ajaxUrl,data:e,success:function(e){return"function"!=typeof t?(i.rawData=e,e):(i.rawData=e,void t(e))}})},_renderSublist:function(e,t,i){var n=this,s=0,a=t+"-sub",o=function(e){if(e.length){for(n.curDNA[a]={},s;s2&&l?(r.show(),n({term:t,form:o},a.opt.autoCompleteUrl,h),l=!1):0!=t.length||l||a.$inputFilter.hasClass("ui-autocomplete-input")&&(a.$inputFilter.autocomplete("destroy"),l=!0),!1}).click(function(){return!1})},_loadParentTree:function(e,t,i){var n,s,o,c,l=this,d=e,h=$("#id_"+l.opt.prefix+d.id),u=function(e){var n=$("#id_"+l.opt.prefix+d.id),h=function(){r.hide(),i||0===i?t(i):t()};r.hide(),n.length&&a(l.curDNA[s+"-sub"])==e&&(o={name:d.name,id:d.id},r.show(),c=$("#id_"+l.opt.prefix+d.id).closest(".level").children(".trigger").attr("data-template-id"),l._renderNested(o,h,c,d.id))},p=function(){r.hide(),i||0===i?t(i):t()};r.show(),d.hasOwnProperty("parent")?h.length?(o={name:d.name,id:d.id},c=h.closest(".level").children(".trigger").attr("data-template-id"),l._renderNested(o,function(){r.hide(),t()},c,d.id)):(n={name:d.parent.name,id:d.parent.id},s=$("#id_"+l.opt.prefix+d.parent.id).closest(".level").children(".trigger").attr("data-template-id"),l._renderSublist(n,s,u)):(n={name:d.name,id:d.id},s=$("#id_"+l.opt.prefix+d.id).closest(".level").children(".trigger").attr("data-template-id"),l._renderSublist(n,s,p))},applyHandler:function(){EXPO.events.feed.modalWindow.close()},_refreshLabel:function(){var e=this.selectedWrap.children().length;this.$label.text(this.$label.attr(e?"data-selected":"data-default"))}},e.init=function(e){$.extend(this.opt,e);var n=this,s=function(){$(n.DOMform).find('input[name="~~name~~"]').remove()};"None"!=this.opt.searchData&&this.opt.searchData&&(this.previousSearch=JSON.parse(this.opt.searchData)),this.DOMform=document.getElementById(this.opt.formId),this.DOMhint=document.getElementById(this.opt.filter.hintId),$(this.DOMform).on("submit",function(){s()}),this.DOMapplyButton=document.getElementById(this.opt.applyButtonId),this.filterPane=new i(this.opt.filter),$("#"+this.opt.filter.buttonId).on("click",function(){return t.hasClass(this,n.opt.activeClass)?(t.removeClass(this,n.opt.activeClass),n.filterPane.hide()):(t.addClass(this,n.opt.activeClass),n.filterPane.show()),!1}),$("#"+n.opt.bodyId+" ."+n.opt.modalTriggerClass).on("click",function(e){return e.preventDefault(),n.modalWindow.pullData(this.getAttribute("href")),n.modalWindow.open(),!1}),$("#"+n.opt.applyButtonId).on("click",function(){return $(n.DOMform).submit(),!1}),this.modalWindow=new t.Modal(n.opt.modal),this.placesModal=new l(n.opt.place),this.subjModal=new c(n.opt.subject),$(function(){if(n.previousSearch.inputs.length){$(n.DOMhint).hide();for(var e=0;e