@ -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 . select ed) {
if ( ! this . check ed) {
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 = $ ( DOMS ublist) . children ( 'li' ) . children ( '.' + fakeCheckboxClass ) . find ( '.' + checkboxClass + ':checked' ) ;
var $selected = $ ( s ublist) . 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 ( 'chang e') ;
$ ( '#' + key , self . $selfContainer ) . prop ( 'checked' , false ) . closest ( '.custom-radio-check' ) . removeClass ( 'activ e') ;
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' ) ;
}
}
} ;