@ -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 . select ed) {
if ( ! this . check ed) {
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 = $ ( DOMS ublist) . children ( 'li' ) . children ( '.' + fakeCheckboxClass ) . find ( '.' + checkboxClass + ':checked' ) ;
var $selected = $ ( s ublist) . 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 ( 'chang e') ;
$ ( '#' + key , self . $selfContainer ) . prop ( 'checked' , false ) . closest ( '.custom-radio-check' ) . removeClass ( 'activ e') ;
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 ;
@ -1698,8 +1743,9 @@ if (EXPO.searchBlock){
}
}
} ) . inputmask ( "99.99.9999" , {
} ) . inputmask ( "99.99.9999" , {
showMaskOnHover : false ,
showMaskOnHover : false ,
insertMode : false ,
'oncomplete' : function ( ) {
'oncomplete' : function ( ) {
checkInterval ( this ) ;
$activeField = this ;
}
}
} ) ;
} ) ;
$dateTo . datepicker ( {
$dateTo . datepicker ( {
@ -1712,16 +1758,22 @@ if (EXPO.searchBlock){
}
}
} ) . inputmask ( "99.99.9999" , {
} ) . inputmask ( "99.99.9999" , {
showMaskOnHover : false ,
showMaskOnHover : false ,
insertMode : false ,
'oncomplete' : function ( ) {
'oncomplete' : function ( ) {
checkInterval ( this ) ;
$activeField = this ;
}
}
} ) ;
} ) ;
$ ( 'input[type="text"]' , $modal ) . on ( 'change' , function ( ) {
$ ( 'input[type="text"]' , $modal ) . on ( 'change' , function ( ) {
var stringToset = inputsTostring ( ) ;
var stringToset = inputsTostring ( ) ;
if ( self . validate ( ) ) {
triggerSetText ( stringToset ) ;
triggerSetText ( stringToset ) ;
}
} ) ;
} ) ;
$ ( '.' + applyBtnClass , $modal ) . on ( 'click' , function ( ) {
$ ( '.' + applyBtnClass , $modal ) . on ( 'click' , function ( ) {
if ( $activeField ) {
checkInterval ( $activeField ) ;
}
self . applyHandler ( this ) ;
self . applyHandler ( this ) ;
return false ;
return false ;
} ) ;
} ) ;
@ -1998,6 +2050,9 @@ if (EXPO.searchBlock){
* /
* /
pullData : function ( handler ) {
pullData : function ( handler ) {
} ,
clearValue : function ( ) {
this . $field . val ( '' ) ;
}
}
} ;
} ;