remotes/origin/1203
Назар Котюк 11 years ago
commit 7908fbce75
  1. 8
      templates/client/accounts/feed.html
  2. 2
      templates/client/includes/catalog_search.html
  3. 2
      templates/client/includes/catalog_search_main.html
  4. 5
      templates/client/popups/place.html
  5. 7
      templates/client/popups/theme.html
  6. 600
      templates/client/static_client/css/main.css
  7. 177
      templates/client/static_client/js/_modules/block.search.js
  8. 282
      templates/client/static_client/js/_modules/page.events.feed.js
  9. 2957
      templates/client/static_client/js/plugins/inputmask/jquery.inputmask.js
  10. 2
      templates/client/static_client/js_min/_modules/block.search.min.js
  11. 2
      templates/client/static_client/js_min/_modules/page.events.feed.min.js

@ -28,7 +28,7 @@
<div class="csb-selected-items " > <div class="csb-selected-items " >
<div class="csb-selected csb-subj-selected dna-template" id="filter-subject-tags"> <div class="csb-selected csb-subj-selected dna-template" id="filter-subject-tags">
<div class="csbs-text ">~~text~~</div> <div class="csbs-text ">~~text~~</div>
<a class="csbs-del" href="javascript:void(0);" data-checkbox-id="~~id~~" id="subject-tag-remove">x</a> <a class="csbs-del del-on-page" href="javascript:void(0);" data-checkbox-id="~~id~~">x</a>
</div> </div>
</div> </div>
@ -41,7 +41,7 @@
<div class="csb-selected-items" > <div class="csb-selected-items" >
<div class="csb-selected csb-subj-selected dna-template" id="filter-places-tags"> <div class="csb-selected csb-subj-selected dna-template" id="filter-places-tags">
<div class="csbs-text ">~~text~~</div> <div class="csbs-text ">~~text~~</div>
<a class="csbs-del " href="javascript:void(0);" data-checkbox-id="~~id~~" id="place-tag-remove">x</a> <a class="csbs-del del-on-page" href="javascript:void(0);" data-checkbox-id="~~id~~">x</a>
</div> </div>
</div> </div>
@ -106,7 +106,7 @@
filterInputId: 'filter-place-filter-input', filterInputId: 'filter-place-filter-input',
modalTrigger: 'filter-place-modal-trigger', modalTrigger: 'filter-place-modal-trigger',
selectedItemsContainer: 'filter-csb-selected-items', selectedItemsContainer: 'filter-csb-selected-items',
clearAllButtonClass: 'clear-all-button', clearAllButtonClass: 'modal-clear',
applyBtnClass: 'modal-approve', applyBtnClass: 'modal-approve',
tagsBoxId: 'filter-places-tags', tagsBoxId: 'filter-places-tags',
deleteTagClass: 'csbs-del', deleteTagClass: 'csbs-del',
@ -129,7 +129,7 @@
subjectTriggerWrapId: 'filter-subj-checks', subjectTriggerWrapId: 'filter-subj-checks',
//switched by default //switched by default
defaultOn: ['f-s-exhibition-check', 'f-s-conference-check'], defaultOn: ['f-s-exhibition-check', 'f-s-conference-check'],
clearAllButtonClass: 'clear-all-button', clearAllButtonClass: 'modal-clear',
applyBtnClass: 'modal-approve', applyBtnClass: 'modal-approve',
tagsBoxId: 'filter-subject-tags', tagsBoxId: 'filter-subject-tags',
deleteTagClass: 'csbs-del', deleteTagClass: 'csbs-del',

@ -1,7 +1,7 @@
{% load static %} {% load static %}
{% load i18n %} {% load i18n %}
<div class="in-search-form"> <div class="in-search-form mp-search">
<form action="{{ search_form.search_url }}" class="search_form" id="search-block-form"> <form action="{{ search_form.search_url }}" class="search_form" id="search-block-form">
<div class="s-title">{{ search_form.title }}</div> <div class="s-title">{{ search_form.title }}</div>
<div class="search-form-wrap"> <div class="search-form-wrap">

@ -35,7 +35,7 @@
</div> </div>
</div> </div>
<div class="sf-field-wrap"> <div class="sf-field-wrap">
<button type="submit"><span>{% trans 'найти' %}</span></button> <button type="submit" class="search_submit"><span>{% trans 'найти' %}</span></button>
</div> </div>
</div> </div>
<div class="search-line sl-options"> <div class="search-line sl-options">

@ -65,7 +65,6 @@
</div> </div>
<div class="q-sel"> <div class="q-sel">
<a class="clear" href="#">{% trans 'Сбросить выбранное' %}</a>
<div class="q-sel-title">{% trans 'Быстрый выбор' %}:</div> <div class="q-sel-title">{% trans 'Быстрый выбор' %}:</div>
<ul> <ul>
<li><a href="#" data-name="ci" data-id="-2960561">{% trans 'Москва' %}</a></li> <li><a href="#" data-name="ci" data-id="-2960561">{% trans 'Москва' %}</a></li>
@ -85,7 +84,9 @@
</div> </div>
</div> </div>
<div class="pwf-buttons-line"> <div class="pwf-buttons-line">
<button class="icon-check modal-approve" type="submit">{% if submitText %}{{ submitText }}{% else %}{% trans 'Искать' %}{% endif %}</button><a class="{% if filter %}{{ filter }}{% else %}search-{% endif %}modal-open specify-link" href="#{{ filter }}pwSubj">{% trans 'Уточнить тему' %}</a> <button class="icon-check modal-approve" type="submit">{% if submitText %}{{ submitText }}{% else %}{% trans 'Искать' %}{% endif %}</button>
<button class="gray modal-clear" type="submit">{% trans 'Очистить' %}</button>
<a class="{% if filter %}{{ filter }}{% else %}search-{% endif %}modal-open specify-link" href="#{{ filter }}pwSubj">{% trans 'Уточнить тему' %}</a>
{% if hasDate %}<a class=" search-modal-open specify-link" href="#pwPeriod">{% trans 'Уточнить дату' %}</a>{% endif %} {% if hasDate %}<a class=" search-modal-open specify-link" href="#pwPeriod">{% trans 'Уточнить дату' %}</a>{% endif %}
</div> </div>
</div> </div>

@ -68,15 +68,14 @@
</ul> </ul>
</div> </div>
<div class="q-sel">
<a class="clear" href="#">{% trans 'Сбросить выбранное' %}</a>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="pwf-buttons-line"> <div class="pwf-buttons-line">
<button class="icon-check modal-approve" type="submit">{% if submitText %}{{ submitText }}{% else %}{% trans 'Искать' %}{% endif %}</button><a class="{% if filter %}{{ filter }}{% else %}search-{% endif %}modal-open specify-link" href="#{{ filter }}pwPlace">{% trans 'Уточнить географию' %}</a> <button class="icon-check modal-approve" type="submit">{% if submitText %}{{ submitText }}{% else %}{% trans 'Искать' %}{% endif %}</button>
<button class="gray modal-clear" type="submit">{% trans 'Очистить' %}</button>
<a class="{% if filter %}{{ filter }}{% else %}search-{% endif %}modal-open specify-link" href="#{{ filter }}pwPlace">{% trans 'Уточнить географию' %}</a>
{% if hasDate %}<a class=" search-modal-open specify-link" href="#pwPeriod">{% trans 'Уточнить дату' %}</a>{% endif %} {% if hasDate %}<a class=" search-modal-open specify-link" href="#pwPeriod">{% trans 'Уточнить дату' %}</a>{% endif %}
</div> </div>
</div> </div>

@ -171,12 +171,12 @@ body {
height: 100%; height: 100%;
background: #f8f8f6; background: #f8f8f6;
color: #464646; color: #464646;
font-family: Arial, sans-serif; font-family: Arial,'Helvetica Neue', sans-serif;
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
font-size: 13px; font-size: 13px;
line-height: 18px; line-height: 18px;
/*-webkit-font-smoothing: antialiased;*/ -webkit-font-smoothing: antialiased;
} }
body { body {
@ -1902,298 +1902,305 @@ button.icon-save:before {
# форма поиска # форма поиска
\**************************/ \**************************/
.in-search-form { .in-search-form {
position: relative; position: relative;
/*display: none;*/ /*display: none;*/
font-family: 'dindisplay_pro', Arial, sans-serif; font-family: 'dindisplay_pro', Arial, sans-serif;
font-weight: normal; font-weight: normal;
font-size: 14px; font-size: 14px;
line-height: 18px; line-height: 18px;
color: #fff; color: #fff;
background: #ff6600 url(../img/search-bg.jpg) 100% 100% no-repeat; background: #ff6600 url(../img/search-bg.jpg) 100% 100% no-repeat;
height: 150px; height: 150px;
margin: 0 0 15px -40px; margin: 0 0 15px -40px;
padding: 30px 0 5px 40px; padding: 30px 0 5px 40px;
z-index: 3; z-index: 3;
border-radius: 4px; border-radius: 4px;
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
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;
}
.search-form .mcl { .modals .popup-window{
padding-right: 50px; display: none;
} }
.search-form-wrap { .search-form aside .s-title {
display: table; font-size: 25px;
width: 100%; line-height: 25px;
border-collapse: collapse; text-transform: uppercase;
} white-space: nowrap;
margin-right: -20px;
}
.search-form-wrap .search-line { .in-search-form .s-title {
display: table-row; font-size: 25px;
} line-height: 25px;
text-transform: uppercase;
margin-bottom: 15px;
}
.search-form-wrap .search-line .sf-field-wrap { .search-form .mcl {
display: table-cell; padding-right: 50px;
vertical-align: middle; }
padding: 0 10px 8px 0;
color: #ffd9bf;
line-height: 15px;
}
.search-form-wrap .search-line .sf-field-wrap:first-child { .search-form-wrap {
width: 48%; display: table;
} width: 100%;
border-collapse: collapse;
}
.search-form-wrap .search-line .sf-field-wrap + .sf-field-wrap { .search-form-wrap .search-line {
width: 32%; display: table-row;
} }
.search-form-wrap .search-line .sf-field-wrap + .sf-field-wrap + .sf-field-wrap { .search-form-wrap .search-line .sf-field-wrap {
width: 20%; display: table-cell;
} vertical-align: middle;
padding: 0 10px 8px 0;
color: #ffd9bf;
line-height: 15px;
}
.search-line.sl-options a { .search-form-wrap .search-line .sf-field-wrap:first-child {
display: inline-block; width: 48%;
color: #fff; }
text-decoration: none;
border-bottom: 1px dashed;
line-height: 13px;
}
.search-line.sl-options a:hover { .search-form-wrap .search-line .sf-field-wrap + .sf-field-wrap {
border-bottom: none; width: 32%;
} }
.search-line.sl-options a.sf-clear { .search-form-wrap .search-line .sf-field-wrap + .sf-field-wrap + .sf-field-wrap {
position: relative; width: 20%;
display: inline-block; }
vertical-align: middle;
border-bottom: none;
width: 16px;
height: 0;
padding-top: 24px;
margin: -5px 0 -5px 2px;
overflow: hidden;
}
.search-line.sl-options a.sf-clear:before { .search-line.sl-options a {
content: ''; display: inline-block;
display: block; color: #fff;
width: 6px; text-decoration: none;
height: 7px; border-bottom: 1px dashed;
background: url(../img/sprites.png) -135px -25px no-repeat; line-height: 13px;
position: absolute; }
left: 50%;
top: 50%;
margin: -3px 0 0 -3px;
}
.sf-field { .search-line.sl-options a:hover {
position: relative; border-bottom: none;
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-wrap:first-child .sf-field { .search-line.sl-options a.sf-clear {
border-radius: 4px 0 0 4px; 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 > * { .search-line.sl-options a.sf-clear:before {
display: table-cell; content: '';
vertical-align: middle; 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 { .sf-field {
font-size: 16px; position: relative;
line-height: 20px; display: table;
font-weight: normal; width: 100%;
padding: 10px 5px 10px 20px; height: 40px;
white-space: nowrap; 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 { .sf-field-wrap:first-child .sf-field {
width: 100%; border-radius: 4px 0 0 4px;
height: 100%; }
}
.sf-field .input-text input[type="text"] { .sf-field > * {
display: block; display: table-cell;
width: 100%; vertical-align: middle;
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;
}
.search-form button, .sf-field label {
.in-search-form button{ font-size: 16px;
display: inline-block; line-height: 20px;
vertical-align: top; font-weight: normal;
height: 40px; padding: 10px 5px 10px 20px;
border: 1px solid #fff; white-space: nowrap;
/*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;
}
.search-form button:before, .sf-field .input-text {
.in-search-form button:before { width: 100%;
content: ' '; height: 100%;
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, .sf-field .input-text input[type="text"] {
.in-search-form button:hover { display: block;
position: relative; width: 100%;
top: -1px; height: 100%;
/*background: none;*/ 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 { .search-form button.search_submit,
position: relative; .search-form button.modal-approve,
z-index: 3048; .in-search-form button.search_submit,
height: 40px; .in-search-form button.modal-approve{
display: none; display: inline-block;
} vertical-align: top;
.sf-autocomplete.show { height: 40px;
display: block; 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 { .search-form button.search_submit:before,
position: absolute; .search-form button.modal-approve:before,
left: 0; .in-search-form button.search_submit:before ,
width: 100%; .in-search-form button.modal-approve:before {
top: 0; content: ' ';
background: #fff; display: inline-block;
padding: 20px 20px 20px 20px; vertical-align: middle;
overflow: hidden; width: 15px;
-moz-box-sizing: border-box; height: 14px;
box-sizing: border-box; background: url(../img/sprites.png) -98px 0 no-repeat;
border-radius: 4px; margin: -2px 5px 0 -1px;
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:hover,
.in-search-form button:hover {
position: relative;
top: -1px;
/*background: none;*/
}
.sf-autocomplete .sfa-wrap { .sf-autocomplete {
border-radius: 4px 0 4px 4px; position: relative;
} z-index: 3048;
height: 40px;
display: none;
}
.sf-autocomplete.show {
display: block;
}
.sf-autocomplete .sfa-wrap.show { .sf-autocomplete .sfa-wrap {
visibility: visible; 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 { .sf-autocomplete .sfa-wrap {
padding: 0 10px 0 5px; border-radius: 4px 0 4px 4px;
margin-top: 2px; }
}
.ui-menu .ui-menu-item a { .sf-autocomplete .sfa-wrap.show {
color: #464646; visibility: visible;
font-size: 15px; }
line-height: 15px;
border: none;
padding: 2px 5px;
cursor: pointer;
}
.ui-menu .ui-menu-item a.ui-state-focus, .ui-autocomplete {
.ui-menu .ui-menu-item a.ui-state-active { position: relative;
color: #ff6600; width: 100%;
margin: 0; 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 { .ui-menu .ui-menu-item {
font-style: normal; padding: 0 10px 0 5px;
color: #a2a2a2; 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*/ /* end of search block*/
@ -4025,14 +4032,19 @@ form.s-message {
margin-bottom: 15px; 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; display: block;
} }
.c-select-box .csb-menu .q-sel { .c-select-box .csb-menu .q-sel {
width: 190px; width: 190px;
float: right; float: right;
margin-top: 1em;
} }
@ -11320,6 +11332,12 @@ hr + .rq-note {
.pw-subj{ .pw-subj{
min-height: 480px; 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{ .pw-subj .csb-menu .level1{
display: none; display: none;
} }
@ -12013,6 +12031,21 @@ hr + .rq-note {
.mt-0{ .mt-0{
margin-top: 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 +12053,16 @@ hr + .rq-note {
# Модальное окно выбора тематики # Модальное окно выбора тематики
\******************************/ \******************************/
.pw-subj .q-sel{ .pw-subj .q-sel{
top: 0; top: 0;
position: absolute; position: absolute;
right: 0; right: 0;
margin-top: 1em; margin-top: 1em;
} }
.search_form .scroll-container{ .search_form .scroll-container{
overflow: hidden; overflow: hidden;
} }
/******************************\ /******************************\
# Модальное окно общий вид # Модальное окно общий вид
\******************************/ \******************************/
@ -12246,7 +12279,7 @@ hr + .rq-note {
# блок умный поиск # блок умный поиск
catalog_search.html catalog_search.html
\************************/ \************************/
.in-search-form .clear-all-button, .search-form-wrap .clear-all-button{ .mp-search .clear-all-button, .search-form-wrap .clear-all-button{
display: none; display: none;
width: 17px; width: 17px;
height: 17px; height: 17px;
@ -12255,19 +12288,19 @@ hr + .rq-note {
vertical-align: top; vertical-align: top;
margin-top: 2px; margin-top: 2px;
} }
.in-search-form .clear-all-button.active, .search-form-wrap .clear-all-button.active{ .mp-search .clear-all-button.active, .search-form-wrap .clear-all-button.active{
display: inline-block; display: inline-block;
} }
.in-search-form .clear-all-button:active, .search-form-wrap .clear-all-button:active{ .mp-search .clear-all-button:active, .search-form-wrap .clear-all-button:active{
background-position: -385px -89px; background-position: -385px -89px;
} }
.in-search-form .pw-period .pwf-field.err input{ .mp-search .pw-period .pwf-field.err input{
border-width: 2px; border-width: 2px;
border-color: #D80000; border-color: #D80000;
} }
.in-search-form .ui-menu .ui-menu-item .subj-category{ .mp-search .ui-menu .ui-menu-item .subj-category{
display: inline-block; display: inline-block;
color: #a2a2a2; color: #a2a2a2;
font-size: 15px; font-size: 15px;
@ -12278,14 +12311,21 @@ hr + .rq-note {
text-decoration: none; text-decoration: none;
min-height: 0; min-height: 0;
font-weight: 400; font-weight: 400;
white-space: normal;
}
.mp-search .ui-autocomplete{
width: 533px;
}
.mp-search .ui-menu .ui-menu-item{
white-space: nowrap;
} }
.in-search-form .ui-menu .ui-menu-item a{ .mp-search .ui-menu .ui-menu-item a{
display: inline-block; display: inline-block;
} }
.in-search-form .ui-menu li{ .mp-search .ui-menu li{
margin-bottom: 4px; margin-bottom: 4px;
} }
.in-search-form .ui-menu{ .mp-search .ui-menu{
line-height: 15px; line-height: 15px;
} }

@ -257,12 +257,8 @@ if (EXPO.searchBlock){
$sublist = $parent.children('.sublist'); $sublist = $parent.children('.sublist');
if(!param){ if(!param){
if($label.hasClass('active')){
$label.removeClass('active');
}else{
$label.addClass('active');
}
if(this.checked){ if(this.checked){
$label.addClass('active');
var text = $(this).closest('.level').find('.trigger').first().text(), var text = $(this).closest('.level').find('.trigger').first().text(),
tplObj = {'text':text,'id':checkboxId}; tplObj = {'text':text,'id':checkboxId};
@ -307,6 +303,7 @@ if (EXPO.searchBlock){
//!uncheck event //!uncheck event
}else { }else {
$label.removeClass('active');
self._destroyTag(checkboxId); self._destroyTag(checkboxId);
if(!$selectedItemsWrap.children('.dna-clone').length){ if(!$selectedItemsWrap.children('.dna-clone').length){
$selectedItemsWrap.removeClass('visible'); $selectedItemsWrap.removeClass('visible');
@ -359,7 +356,7 @@ if (EXPO.searchBlock){
} }
return false; return false;
}); });
$('.clear', $modal).on('click', function () { $('.modal-clear', $modal).on('click', function () {
self.resetList(); self.resetList();
return false; return false;
}); });
@ -371,6 +368,8 @@ if (EXPO.searchBlock){
// кнопка "очистить параметры" // кнопка "очистить параметры"
$modalTrigger.siblings('.'+self.opt.clearAllButtonClass).on('click', function () { $modalTrigger.siblings('.'+self.opt.clearAllButtonClass).on('click', function () {
self.resetList(); self.resetList();
EXPO.searchBlock.exhibitionField.clearValue();
}); });
}); });
}; };
@ -702,8 +701,10 @@ if (EXPO.searchBlock){
$('#'+key, self.$selfContainer).prop('checked', false).trigger('change'); $('#'+key, self.$selfContainer).prop('checked', false).trigger('change');
dna.destroy(self.itemsSelected[key]); dna.destroy(self.itemsSelected[key]);
} }
} }
$('.level.active',self.$modalInst).removeClass('active');
self.$selectedItemsWrap.removeClass('visible'); self.$selectedItemsWrap.removeClass('visible');
}, },
// кнопка применить // кнопка применить
@ -789,12 +790,18 @@ if (EXPO.searchBlock){
DOMParentCheckbox = DOMParent.querySelector('.csb-menu-input'); DOMParentCheckbox = DOMParent.querySelector('.csb-menu-input');
$('.csb-menu-input', $sublist).each(function () { $('.csb-menu-input', $sublist).each(function () {
var DOMCheckboxWrap = common.closest(this,'custom-radio-check'); var DOMCheckboxWrap = common.closest(this,'custom-radio-check');
if(!this.selected){ if(!this.checked){
if(DOMParentCheckbox.checked){ if(DOMParentCheckbox.checked){
this.checked = true; this.checked = true;
common.addClass(DOMCheckboxWrap,'active'); common.addClass(DOMCheckboxWrap,'active');
} }
}else{
if(!DOMParentCheckbox.checked){
this.checked = false;
common.removeClass(DOMCheckboxWrap,'active');
}
} }
}); });
$waiter.hide(); $waiter.hide();
@ -848,6 +855,8 @@ if (EXPO.searchBlock){
DOMSublistInner = DOMParentRow.querySelector('.'+sublistClass), DOMSublistInner = DOMParentRow.querySelector('.'+sublistClass),
DOMHighestItem = common.closest(this, highestItemClass), DOMHighestItem = common.closest(this, highestItemClass),
DOMHighestCheckbox = DOMHighestItem.querySelector('.'+checkboxClass), DOMHighestCheckbox = DOMHighestItem.querySelector('.'+checkboxClass),
DOMHighestSublist = DOMHighestItem.querySelector('.'+sublistClass),
selectSublist = function (it) { selectSublist = function (it) {
var DOMParentItem = common.closest(it, itemClass) || this, var DOMParentItem = common.closest(it, itemClass) || this,
DOMSublist = DOMParentItem.querySelector('.'+sublistClass); DOMSublist = DOMParentItem.querySelector('.'+sublistClass);
@ -861,6 +870,7 @@ if (EXPO.searchBlock){
DOMSublist = DOMParentItem.querySelector('.'+sublistClass); DOMSublist = DOMParentItem.querySelector('.'+sublistClass);
$('.'+checkboxClass, DOMSublist).each(function () { $('.'+checkboxClass, DOMSublist).each(function () {
unSelectItem(this); unSelectItem(this);
}); });
}, },
@ -895,9 +905,14 @@ if (EXPO.searchBlock){
}, },
unSelectItem = function (it) { unSelectItem = function (it) {
var itFakeCheckbox = common.closest(it, fakeCheckboxClass); var itFakeCheckbox = common.closest(it, fakeCheckboxClass),
DOMitem = common.closest(it, itemClass);
common.removeClass(itFakeCheckbox, activeClass); common.removeClass(itFakeCheckbox, activeClass);
it.checked = false; it.checked = false;
// if there is children items
if(DOMitem.querySelector('.'+sublistClass) && !common.hasClass(DOMitem,highestItemClass)){
unSelectSublist(it);
}
}, },
allChildrenSelected = function () { allChildrenSelected = function () {
//var DOMselected = DOMSublist.querySelectorAll('.'+checkboxClass+':checked'), //var DOMselected = DOMSublist.querySelectorAll('.'+checkboxClass+':checked'),
@ -922,7 +937,7 @@ if (EXPO.searchBlock){
} }
}, },
// Функционал добавления тегов: если есть в панели выбранный элемент либо его дочерние то удалить эти эдементы и разместить выбранный; иначе разместить выбранные. // Функционал добавления тегов: если есть в панели выбранный элемент либо его дочерние то удалить эти эдементы;
refreshTags = function (it) { refreshTags = function (it) {
var DOMSublist = common.closest(it,sublistClass); var DOMSublist = common.closest(it,sublistClass);
var DOMItem = common.closest(it,itemClass); var DOMItem = common.closest(it,itemClass);
@ -957,7 +972,6 @@ if (EXPO.searchBlock){
} }
allTagsLength = ARRAllTagsIds.length; allTagsLength = ARRAllTagsIds.length;
sublistIdsLength = ARRSublistIds.length; sublistIdsLength = ARRSublistIds.length;
// добавить текущий тег
//если найден дочерний тег то он будет удален, либо текущий тег //если найден дочерний тег то он будет удален, либо текущий тег
for(i = 0; i < allTagsLength; i++){ for(i = 0; i < allTagsLength; i++){
@ -975,6 +989,13 @@ if (EXPO.searchBlock){
deleteTag(it); deleteTag(it);
} }
} }
// удаление дочерних тегов 2го уровня
if(DOMSublistInner.querySelectorAll('.final-tire')){
$('.'+fakeCheckboxClass+'.'+activeClass, DOMSublistInner.querySelectorAll('.final-tire')).each(function () {
deleteTag($('.'+checkboxClass,this)[0]);
});
}
}else{ }else{
// удаление дубликатов текущего элемента // удаление дубликатов текущего элемента
for(i = 0; i < allTagsLength; i++){ for(i = 0; i < allTagsLength; i++){
@ -1011,7 +1032,7 @@ if (EXPO.searchBlock){
} }
}, },
createTagList = function (sublist) { 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 () { $selected.each(function () {
createTag(this); createTag(this);
}); });
@ -1034,7 +1055,12 @@ if (EXPO.searchBlock){
if(!self.strictMode){ if(!self.strictMode){
if(this.checked){ if(this.checked){
if($(DOMSublistInner).find('.'+checkboxClass)[0]){
if(DOMSublistInner && $(DOMSublistInner).find('.'+checkboxClass)[0].value != '~~id~~'){
refreshTags(this);
}
}
//если выбраны все дочерние //если выбраны все дочерние
if(allChildrenSelected()){ if(allChildrenSelected()){
selectParent(this); selectParent(this);
@ -1056,9 +1082,7 @@ if (EXPO.searchBlock){
if(DOMSublistInner){ if(DOMSublistInner){
selectSublist(this); selectSublist(this);
} }
if(DOMSublistInner && $(DOMSublistInner).find('.'+checkboxClass)[0].value != '~~id~~'){
refreshTags(this);
}
}else{ }else{
//Если выбран родитель //Если выбран родитель
@ -1069,10 +1093,12 @@ if (EXPO.searchBlock){
deleteTag(DOMParentCheckbox); deleteTag(DOMParentCheckbox);
createTagList(DOMSublist); createTagList(DOMSublist);
if(DOMHighestCheckbox.checked){ if(DOMHighestCheckbox.checked){
unSelectItem(DOMHighestCheckbox); unSelectItem(DOMHighestCheckbox);
refreshTags(DOMHighestCheckbox);
deleteTag(DOMHighestCheckbox); deleteTag(DOMHighestCheckbox);
createTagList(DOMHighestSublist);
} }
}else{ }else{
unSelectItem(this); unSelectItem(this);
refreshTags(this); refreshTags(this);
@ -1116,7 +1142,7 @@ if (EXPO.searchBlock){
/** /**
* clear all button behavior * clear all button behavior
*/ */
$('.clear',$modal).on('click', function () { $('.modal-clear',$modal).on('click', function () {
self.resetList(); self.resetList();
return false; return false;
}); });
@ -1143,6 +1169,7 @@ if (EXPO.searchBlock){
}); });
$modalTrigger.siblings('.'+self.opt.clearAllButtonClass).on('click', function () { $modalTrigger.siblings('.'+self.opt.clearAllButtonClass).on('click', function () {
self.resetList(); self.resetList();
EXPO.searchBlock.placesField.clearValue()
}); });
}); });
@ -1390,11 +1417,13 @@ if (EXPO.searchBlock){
var self = this; var self = this;
for (var key in self.itemsSelected) { for (var key in self.itemsSelected) {
if (self.itemsSelected.hasOwnProperty(key)) { 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.itemsSelected[key]);
} }
} }
$('.level.active',this.$modal).removeClass('active');
this._refreshText();
self.selectedWrap.removeClass('visible'); self.selectedWrap.removeClass('visible');
}, },
/** /**
@ -1583,6 +1612,21 @@ if (EXPO.searchBlock){
* @public * @public
*/ */
applyHandler: function (it) { 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');
}
} }
}; };
@ -1599,6 +1643,7 @@ if (EXPO.searchBlock){
$modal = $('#'+self.opt.id), $modal = $('#'+self.opt.id),
$modalTrigger = $('#'+self.opt.modalTrigger), $modalTrigger = $('#'+self.opt.modalTrigger),
applyBtnClass = self.opt.applyBtnClass, applyBtnClass = self.opt.applyBtnClass,
$activeField,
/** /**
* make string from input:text values * make string from input:text values
* @returns {string} * @returns {string}
@ -1669,11 +1714,11 @@ if (EXPO.searchBlock){
/** /**
* swap values between date fields * swap values between date fields
*/ */
if(thatValInt > itValInt && thatValInt != 0 && thatValInt){ if(itValInt > thatValInt && itId == self.opt.dateFrom){
bfr = document.getElementById(itId).value; bfr = document.getElementById(itId).value;
document.getElementById(itId).value = document.getElementById(thatId).value; document.getElementById(itId).value = document.getElementById(thatId).value;
document.getElementById(thatId).value = bfr; document.getElementById(thatId).value = bfr;
}else if(thatValInt < itValInt && thatValInt != 0 && thatValInt){ }else if(itValInt < thatValInt && itId == self.opt.dateTo){
bfr = document.getElementById(thatId).value; bfr = document.getElementById(thatId).value;
document.getElementById(thatId).value = document.getElementById(itId).value; document.getElementById(thatId).value = document.getElementById(itId).value;
document.getElementById(itId).value = bfr; document.getElementById(itId).value = bfr;
@ -1685,51 +1730,58 @@ if (EXPO.searchBlock){
this.$dateTo = $dateTo; this.$dateTo = $dateTo;
this.$modalTrigger = $modalTrigger; this.$modalTrigger = $modalTrigger;
$(function () { $(function () {
$.datepicker.setDefaults($.datepicker.regional["ru"]); $.datepicker.setDefaults($.datepicker.regional["ru"]);
$dateFrom.datepicker({ $dateFrom.datepicker({
dateFormat: 'dd.mm.yy', dateFormat: 'dd.mm.yy',
showOn: 'button', showOn: 'button',
showOtherMonths: true, showOtherMonths: true,
constrainInput: true, constrainInput: true,
onClose: function( selectedDate ) { onClose: function( selectedDate ) {
$dateTo.datepicker( "option", "minDate", selectedDate ); $dateTo.datepicker( "option", "minDate", selectedDate );
} }
}).inputmask("99.99.9999",{ }).inputmask("99.99.9999",{
showMaskOnHover:false, showMaskOnHover:false,
'oncomplete': function () { insertMode:false,
checkInterval(this); 'oncomplete': function () {
} $activeField = this;
}); }
$dateTo.datepicker({ });
dateFormat: 'dd.mm.yy', $dateTo.datepicker({
showOn: 'button', dateFormat: 'dd.mm.yy',
showOtherMonths: true, showOn: 'button',
constrainInput: true, showOtherMonths: true,
onClose: function( selectedDate ) { constrainInput: true,
$dateFrom.datepicker( "option", "maxDate", selectedDate ); onClose: function( selectedDate ) {
} $dateFrom.datepicker( "option", "maxDate", selectedDate );
}).inputmask("99.99.9999",{ }
showMaskOnHover:false, }).inputmask("99.99.9999",{
'oncomplete': function () { showMaskOnHover:false,
checkInterval(this); insertMode:false,
} 'oncomplete': function () {
}); $activeField = this;
$('input[type="text"]',$modal).on('change', function () { }
var stringToset = inputsTostring(); });
$('input[type="text"]',$modal).on('change', function () {
var stringToset = inputsTostring();
if (self.validate()){
triggerSetText(stringToset); triggerSetText(stringToset);
}
});
$('.'+applyBtnClass, $modal).on('click', function () {
self.applyHandler(this);
return false;
});
$modalTrigger.siblings('.'+self.opt.clearAllButtonClass).on('click', function () {
$(this).removeClass('active');
self.resetList();
});
}); });
$('.'+applyBtnClass, $modal).on('click', function () {
if($activeField){
checkInterval($activeField);
}
self.applyHandler(this);
return false;
});
$modalTrigger.siblings('.'+self.opt.clearAllButtonClass).on('click', function () {
$(this).removeClass('active');
self.resetList();
});
});
}; };
/** /**
@ -1998,6 +2050,9 @@ if (EXPO.searchBlock){
*/ */
pullData: function (handler) { pullData: function (handler) {
},
clearValue: function () {
this.$field.val('');
} }
}; };

@ -312,12 +312,9 @@ if (EXPO.events.feed) {
} }
return false; return false;
}); });
$('#'+self.opt.deleteId).on('click',function () { $('.del-on-page').on('click',function () {
$('.' + self.opt.deleteTagClass, $modal).trigger('click'); var dataCheckboxId = $(this).attr('data-checkbox-id');
}); $('.' + self.opt.deleteTagClass+'[data-checkbox-id="'+dataCheckboxId+'"]', $modal).trigger('click');
$('.clear', $modal).on('click', function () {
self.resetList();
return false;
}); });
self._autocompleteInit(); self._autocompleteInit();
$('.' + applyBtnClass, $modal).on('click', function () { $('.' + 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(); self.resetList();
return false;
}); });
}); });
}; };
@ -665,14 +664,17 @@ if (EXPO.events.feed) {
var self = this; var self = this;
for (var key in self.itemsSelected) { for (var key in self.itemsSelected) {
if (self.itemsSelected.hasOwnProperty(key)) { 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.itemsSelected[key]);
dna.destroy(self.tagsBoxItems[key]);
} }
} }
$('.sublist', self.$modalInst).addClass('hidden'); $('.level.active',this.$modal).removeClass('active');
$('.level', self.$modalInst).removeClass('active'); this._refreshLabel();
self.$selectedItemsWrap.removeClass('visible');
this.$selectedItemsWrap.removeClass('visible');
}, },
/** /**
* render label text, if there is no selected element then text will be default * 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) { applyHandler: function (it) {
EXPO.events.feed.modalWindow.close();
} }
@ -827,39 +830,42 @@ if (EXPO.events.feed) {
DOMParentRow = com.closest(this, itemClass), DOMParentRow = com.closest(this, itemClass),
DOMParentItem = com.hasClass(DOMParentRow, highestItemClass) == false ? com.closest(DOMParentRow.parentNode, itemClass) : DOMParentRow, DOMParentItem = com.hasClass(DOMParentRow, highestItemClass) == false?com.closest(DOMParentRow.parentNode, itemClass):DOMParentRow,
DOMParentCheckbox = DOMParentItem.querySelector('.' + checkboxClass), DOMParentCheckbox = DOMParentItem.querySelector('.'+checkboxClass),
DOMSublist = DOMParentItem.querySelector('.' + sublistClass), DOMSublist = DOMParentItem.querySelector('.'+sublistClass),
DOMSublistInner = DOMParentRow.querySelector('.' + sublistClass), DOMSublistInner = DOMParentRow.querySelector('.'+sublistClass),
DOMHighestItem = com.closest(this, highestItemClass), DOMHighestItem = com.closest(this, highestItemClass),
DOMHighestCheckbox = DOMHighestItem.querySelector('.' + checkboxClass), DOMHighestCheckbox = DOMHighestItem.querySelector('.'+checkboxClass),
DOMHighestSublist = DOMHighestItem.querySelector('.'+sublistClass),
selectSublist = function (it) { selectSublist = function (it) {
var DOMParentItem = com.closest(it, itemClass) || this, var DOMParentItem = com.closest(it, itemClass) || this,
DOMSublist = DOMParentItem.querySelector('.' + sublistClass); DOMSublist = DOMParentItem.querySelector('.'+sublistClass);
$('.' + checkboxClass, DOMSublist).each(function () { $('.'+checkboxClass, DOMSublist).each(function () {
selectItem(this); selectItem(this);
}); });
}, },
unSelectSublist = function (it) { unSelectSublist = function (it) {
var DOMParentItem = com.closest(it, itemClass) || this, var DOMParentItem = com.closest(it, itemClass) || this,
DOMSublist = DOMParentItem.querySelector('.' + sublistClass); DOMSublist = DOMParentItem.querySelector('.'+sublistClass);
$('.' + checkboxClass, DOMSublist).each(function () { $('.'+checkboxClass, DOMSublist).each(function () {
unSelectItem(this); unSelectItem(this);
}); });
}, },
selectParent = function (it) { selectParent = function (it) {
var DOMParentRow = com.closest(it, itemClass), var DOMParentRow = com.closest(it, itemClass),
DOMParentItem; DOMParentItem;
if (com.hasClass(DOMParentRow, 'level1')) { if(com.hasClass(DOMParentRow,'level1')){
DOMParentItem = DOMParentRow; DOMParentItem = DOMParentRow;
} else { }else{
DOMParentItem = com.closest(DOMParentRow.parentNode, itemClass); DOMParentItem = com.closest(DOMParentRow.parentNode, itemClass);
} }
com.addClass(DOMParentItem.querySelector('.' + fakeCheckboxClass), activeClass); com.addClass(DOMParentItem.querySelector('.'+fakeCheckboxClass), activeClass);
DOMParentItem.querySelector('.' + checkboxClass).checked = true; DOMParentItem.querySelector('.'+checkboxClass).checked = true;
//it.selected = true; //it.selected = true;
@ -868,8 +874,8 @@ if (EXPO.events.feed) {
var DOMParentRow = com.closest(it, itemClass), var DOMParentRow = com.closest(it, itemClass),
DOMParentItem = com.closest(DOMParentRow.parentNode, itemClass) || DOMParentRow; DOMParentItem = com.closest(DOMParentRow.parentNode, itemClass) || DOMParentRow;
com.removeClass(DOMParentItem.querySelector('.' + fakeCheckboxClass), activeClass); com.removeClass(DOMParentItem.querySelector('.'+fakeCheckboxClass), activeClass);
DOMParentItem.querySelector('.' + checkboxClass).checked = false; DOMParentItem.querySelector('.'+checkboxClass).checked = false;
//it.checked = false; //it.checked = false;
}, },
@ -880,97 +886,110 @@ if (EXPO.events.feed) {
}, },
unSelectItem = function (it) { unSelectItem = function (it) {
var itFakeCheckbox = com.closest(it, fakeCheckboxClass); var itFakeCheckbox = com.closest(it, fakeCheckboxClass),
DOMitem = com.closest(it, itemClass);
com.removeClass(itFakeCheckbox, activeClass); com.removeClass(itFakeCheckbox, activeClass);
it.checked = false; it.checked = false;
// if there is children items
if(DOMitem.querySelector('.'+sublistClass) && !com.hasClass(DOMitem,highestItemClass)){
unSelectSublist(it);
}
}, },
allChildrenSelected = function () { allChildrenSelected = function () {
//var DOMselected = DOMSublist.querySelectorAll('.'+checkboxClass+':checked'), //var DOMselected = DOMSublist.querySelectorAll('.'+checkboxClass+':checked'),
var DOMSublistParent = com.closest(DOMSublist, sublistClass), var DOMSublistParent = com.closest(DOMSublist,sublistClass),
$selected = $(DOMSublist).children('li').children('.' + fakeCheckboxClass).find('.' + checkboxClass + ':checked'), $selected = $(DOMSublist).children('li').children('.'+fakeCheckboxClass).find('.'+checkboxClass+':checked'),
selectedCount = $selected.length, selectedCount = $selected.length,
//allCount = DOMSublist.querySelectorAll('.'+checkboxClass).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; return true;
} else { } else{
return false; return false;
} }
}, },
parentSelected = function () { parentSelected = function () {
var parentCheckbox = DOMParentItem.querySelector('.' + checkboxClass); var parentCheckbox = DOMParentItem.querySelector('.'+checkboxClass);
if (parentCheckbox.checked) { if(parentCheckbox.checked){
return true; return true;
} else { }else{
return false; return false;
} }
}, },
// Функционал добавления тегов: если есть в панели выбранный элемент либо его дочерние то удалить эти эдементы и разместить выбранный; иначе разместить выбранные. // Функционал добавления тегов: если есть в панели выбранный элемент либо его дочерние то удалить эти эдементы;
refreshTags = function (it) { refreshTags = function (it) {
var DOMSublist = com.closest(it, sublistClass); var DOMSublist = com.closest(it,sublistClass);
var DOMItem = com.closest(it, itemClass); var DOMItem = com.closest(it,itemClass);
var DOMSublistInner = DOMItem.querySelector('.' + sublistClass); var DOMSublistInner = DOMItem.querySelector('.'+sublistClass);
var DOMAllTags = DOMTagsWrapper.querySelectorAll('.' + tagClass); var DOMAllTags = DOMTagsWrapper.querySelectorAll('.'+tagClass);
var ARRsublist; var ARRsublist;
var ARRsublistChildren = DOMSublist.querySelector('.' + sublistClass) ? $('.' + checkboxClass + ':checked', DOMSublist.querySelector('.' + sublistClass)) : null; var ARRsublistChildren = DOMSublist.querySelector('.'+sublistClass)?$('.'+checkboxClass+':checked',DOMSublist.querySelector('.'+sublistClass)):null;
var ARRsublistChildrenLength = ARRsublistChildren ? ARRsublistChildren.length : null; var ARRsublistChildrenLength = ARRsublistChildren?ARRsublistChildren.length:null;
var ARRSublistIds = []; var ARRSublistIds = [];
var ARRAllTagsIds = []; var ARRAllTagsIds = [];
var allTagsLength = 0; var allTagsLength = 0;
var sublistIdsLength = 0; var sublistIdsLength = 0;
var itId = it.getAttribute('id'); 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 tagId;
var tagText = DOMParentRow.querySelector('.' + triggerClass).innerHTML; var tagText = DOMParentRow.querySelector('.'+triggerClass).innerHTML;
// если есть дочерние элементы // если есть дочерние элементы
if (DOMSublistInner) { if(DOMSublistInner){
ARRsublist = $(DOMSublistInner).children('li').children('.' + fakeCheckboxClass).find('.' + checkboxClass + ':checked') ARRsublist = $(DOMSublistInner).children('li').children('.'+fakeCheckboxClass).find('.'+checkboxClass+':checked')
//получаем массив id жлементовЮ для которых есть тег //получаем массив id жлементовЮ для которых есть тег
for (k; k < ARRsublist.length; k++) { for(k; k < ARRsublist.length; k++){
tmp = ARRsublist[k].getAttribute('id'); tmp = ARRsublist[k].getAttribute('id');
ARRSublistIds.push(tmp); ARRSublistIds.push(tmp);
} }
//очистк //очистк
for (t; t < DOMAllTags.length; t++) { for(t; t<DOMAllTags.length; t++){
tmp = DOMAllTags[t].querySelector('.' + tagButtonClass).getAttribute(tagIdAttribute); tmp = DOMAllTags[t].querySelector('.'+tagButtonClass).getAttribute(tagIdAttribute);
if (tmp != '~~id~~') { if(tmp != '~~id~~'){
ARRAllTagsIds.push(tmp); ARRAllTagsIds.push(tmp);
} }
} }
allTagsLength = ARRAllTagsIds.length; allTagsLength = ARRAllTagsIds.length;
sublistIdsLength = ARRSublistIds.length; sublistIdsLength = ARRSublistIds.length;
// добавить текущий тег
//если найден дочерний тег то он будет удален, либо текущий тег //если найден дочерний тег то он будет удален, либо текущий тег
for (i = 0; i < allTagsLength; i++) { for(i = 0; i < allTagsLength; i++){
tagId = ARRAllTagsIds[i]; tagId = ARRAllTagsIds[i];
for (j = 0; j < sublistIdsLength; j++) { for(j = 0; j< sublistIdsLength; j++){
if (tagId == ARRSublistIds[j]) { if( tagId == ARRSublistIds[j] ){
deleteTag(ARRsublist[j]); deleteTag(ARRsublist[j]);
} }
} }
} }
// удаление дубликатов текущего элемента // удаление дубликатов текущего элемента
for (i = 0; i < allTagsLength; i++) { for(i = 0; i < allTagsLength; i++){
tagId = ARRAllTagsIds[i]; tagId = ARRAllTagsIds[i];
if (tagId == itId) { if( tagId == itId){
deleteTag(it); deleteTag(it);
} }
} }
} else { // удаление дочерних тегов 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++) { for(i = 0; i < allTagsLength; i++){
tagId = ARRAllTagsIds[i]; tagId = ARRAllTagsIds[i];
if (tagId == itId) { if( tagId == itId){
deleteTag(itId); deleteTag(itId);
} }
} }
} }
}, },
deleteTag = function (it) { deleteTag = function (it) {
var id = it.getAttribute('id'); var id = it.getAttribute('id');
@ -978,84 +997,111 @@ if (EXPO.events.feed) {
tagsPanelToggle(); tagsPanelToggle();
}, },
createTag = function (it) { createTag = function (it) {
var item = com.closest(it, itemClass), var item = com.closest(it,itemClass),
tagTrigger = item.querySelector('.' + triggerClass), tagTrigger = item.querySelector('.'+triggerClass),
tagText = tagTrigger.innerHTML, tagText = tagTrigger.innerHTML,
id = it.getAttribute('id'), id = it.getAttribute('id'),
tagObj = {'id': id, 'text': tagText}; tagObj = {'id':id,'text':tagText};
self._addTag(id, tagObj); self._addTag(id, tagObj);
tagsPanelToggle(); tagsPanelToggle();
}, },
tagsPanelToggle = function () { tagsPanelToggle = function () {
if ($selectedItemsWrap.children('.' + tagClass).length && $selectedItemsWrap.children('.' + tagClass)[0].getAttribute(tagIdAttribute) != "~~id~~") { if($selectedItemsWrap.find('.'+tagButtonClass).length && $selectedItemsWrap.find('.'+tagButtonClass)[0].getAttribute(tagIdAttribute) != "~~id~~"){
$selectedItemsWrap.addClass('visible'); $selectedItemsWrap.addClass('visible');
} else { }else{
$selectedItemsWrap.removeClass('visible'); $selectedItemsWrap.removeClass('visible');
} }
}, },
createTagList = function (sublist) { 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 () { $selected.each(function () {
createTag(this); createTag(this);
}); });
}, },
deleteTagList = function () { deleteTagList = function () {
var $selected = $(DOMSublist).children('li').children('.' + fakeCheckboxClass).find('.' + checkboxClass + ':checked'); var $selected = $(DOMSublist).children('li').children('.'+fakeCheckboxClass).find('.'+checkboxClass+':checked');
$selected.each(function () { $selected.each(function () {
deleteTag(this); deleteTag(this);
}); });
}; };
//make fake checkbox active\passive //make fake checkbox active\passive
if (this.checked) { /**
* if modala is not in strict mode ( enable popping from children categories to parent)
*/
if(!self.strictMode){
//если выбраны все дочерние if(this.checked){
if (allChildrenSelected()) { if($(DOMSublistInner).find('.'+checkboxClass)[0]){
selectParent(this);
selectItem(this); if(DOMSublistInner && $(DOMSublistInner).find('.'+checkboxClass)[0].value != '~~id~~'){
refreshTags(DOMParentCheckbox); refreshTags(this);
createTag(DOMParentCheckbox); }
deleteTagList(DOMSublist);
if (DOMParentCheckbox.getAttribute('id') == DOMHighestCheckbox.getAttribute('id') && !DOMHighestCheckbox.checked) {
selectItem(DOMHighestCheckbox);
refreshTags(DOMHighestCheckbox);
createTag(DOMHighestCheckbox);
} }
} else { //если выбраны все дочерние
if(allChildrenSelected()){
selectParent(this);
selectItem(this);
refreshTags(DOMParentCheckbox);
createTag(DOMParentCheckbox);
deleteTagList(DOMSublist);
if(DOMParentCheckbox.getAttribute('id')== DOMHighestCheckbox.getAttribute('id') && !DOMHighestCheckbox.checked){
selectItem(DOMHighestCheckbox);
refreshTags(DOMHighestCheckbox);
createTag(DOMHighestCheckbox);
}
}else{
selectItem(this);
refreshTags(this);
createTag(this);
}
//выбрать все дочерние
if(DOMSublistInner){
selectSublist(this);
}
}else{
//Если выбран родитель
if(parentSelected()){
unSelectParent(this);
unSelectItem(this);
refreshTags(DOMParentCheckbox);
deleteTag(DOMParentCheckbox);
createTagList(DOMSublist);
if(DOMHighestCheckbox.checked){
unSelectItem(DOMHighestCheckbox);
deleteTag(DOMHighestCheckbox);
createTagList(DOMHighestSublist);
}
}else{
unSelectItem(this);
refreshTags(this);
deleteTag(this);
}
//убрать все дочерние
if(DOMSublistInner){
unSelectSublist(this);
refreshTags(this);
}
}
}else{
if(this.checked){
selectItem(this); selectItem(this);
refreshTags(this); refreshTags(this);
createTag(this); createTag(this);
} }else{
//выбрать все дочерние
if (DOMSublistInner) {
selectSublist(this);
}
} else {
//Если выбран родитель
if (parentSelected()) {
unSelectParent(this);
unSelectItem(this);
refreshTags(DOMParentCheckbox);
deleteTag(DOMParentCheckbox);
createTagList(DOMSublist);
if (DOMHighestCheckbox.checked) {
unSelectItem(DOMHighestCheckbox);
refreshTags(DOMHighestCheckbox);
deleteTag(DOMHighestCheckbox);
}
} else {
unSelectItem(this); unSelectItem(this);
refreshTags(this); refreshTags(this);
deleteTag(this); deleteTag(this);
} }
//убрать все дочерние
if (DOMSublistInner) {
unSelectSublist(this);
}
} }
triggerSetText(); triggerSetText();
}); });
@ -1075,8 +1121,9 @@ if (EXPO.events.feed) {
} }
return false; return false;
}); });
$('#'+self.opt.deleteId).on('click',function () { $('.del-on-page').on('click',function () {
$('.' + self.opt.deleteTagClass, $modal).trigger('click'); var dataCheckboxId = $(this).attr('data-checkbox-id');
$('.' + self.opt.deleteTagClass+'[data-checkbox-id="'+dataCheckboxId+'"]', $modal).trigger('click');
}); });
/** /**
* clear all button behavior * clear all button behavior
@ -1106,10 +1153,13 @@ if (EXPO.events.feed) {
self.applyHandler(this); self.applyHandler(this);
return false; return false;
}); });
$modalTrigger.siblings('.' + self.opt.clearAllButtonClass).on('click', function () { $('.'+self.opt.clearAllButtonClass,$modal).on('click', function (e) {
e.preventDefault();
self.resetList(); self.resetList();
return false;
}); });
}); });
@ -1367,14 +1417,15 @@ if (EXPO.events.feed) {
var self = this; var self = this;
for (var key in self.itemsSelected) { for (var key in self.itemsSelected) {
if (self.itemsSelected.hasOwnProperty(key)) { 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.itemsSelected[key]);
dna.destroy(self.tagsBoxItems[key]);
} }
} }
$('.sublist:not(.parent)', self.$modal).addClass('hidden'); $('.level.active',this.$modal).removeClass('active');
$('.level', self.$modal).removeClass('active'); this._refreshLabel();
self.selectedWrap.removeClass('visible'); this.selectedWrap.removeClass('visible');
}, },
/** /**
* initiliazing and setup autocomplete field for places list * initiliazing and setup autocomplete field for places list
@ -1575,6 +1626,7 @@ if (EXPO.events.feed) {
}, },
applyHandler: function (it) { applyHandler: function (it) {
EXPO.events.feed.modalWindow.close();
}, },
/** /**
* render label text, if there is no selected element then text will be default * render label text, if there is no selected element then text will be default
@ -1641,14 +1693,6 @@ if (EXPO.events.feed) {
this.placesModal = new PlacesModal(self.opt.place); this.placesModal = new PlacesModal(self.opt.place);
this.subjModal = new SubjectModal(self.opt.subject); this.subjModal = new SubjectModal(self.opt.subject);
this.placesModal.applyHandler = function () {
self.modalWindow.close();
$(self.DOMform).submit();
};
this.subjModal.applyHandler = function () {
self.modalWindow.close();
$(self.DOMform).submit();
};
// заполнение полей предыдущими значениями // заполнение полей предыдущими значениями
$(function () { $(function () {
if(self.previousSearch.inputs.length){ if(self.previousSearch.inputs.length){

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save