expo-33 bugs search field frontend complete

remotes/origin/1203
pavel 11 years ago
parent 05ae70ef83
commit d1a6d6577d
  1. 18
      templates/client/static_client/css/main.css
  2. 62
      templates/client/static_client/js/_modules/block.search.js
  3. 2
      templates/client/static_client/js_min/_modules/block.search.min.js

@ -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;
}

@ -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');
}
}
};

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