expo-34 bugs fontend part ready

remotes/origin/1203
pavel 11 years ago
parent d1a6d6577d
commit dd320943e3
  1. 8
      templates/client/accounts/feed.html
  2. 2
      templates/client/static_client/js/_modules/block.search.js
  3. 108
      templates/client/static_client/js/_modules/page.events.feed.js
  4. 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',

@ -1423,7 +1423,7 @@ if (EXPO.searchBlock){
} }
} }
$('.level.active',this.$modal).removeClass('active'); $('.level.active',this.$modal).removeClass('active');
this._refreshText() this._refreshText();
self.selectedWrap.removeClass('visible'); self.selectedWrap.removeClass('visible');
}, },
/** /**

@ -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();
} }
@ -833,6 +836,8 @@ if (EXPO.events.feed) {
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);
@ -846,6 +851,7 @@ if (EXPO.events.feed) {
DOMSublist = DOMParentItem.querySelector('.'+sublistClass); DOMSublist = DOMParentItem.querySelector('.'+sublistClass);
$('.'+checkboxClass, DOMSublist).each(function () { $('.'+checkboxClass, DOMSublist).each(function () {
unSelectItem(this); unSelectItem(this);
}); });
}, },
@ -880,9 +886,14 @@ 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'),
@ -907,7 +918,7 @@ if (EXPO.events.feed) {
} }
}, },
// Функционал добавления тегов: если есть в панели выбранный элемент либо его дочерние то удалить эти эдементы и разместить выбранный; иначе разместить выбранные. // Функционал добавления тегов: если есть в панели выбранный элемент либо его дочерние то удалить эти эдементы;
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);
@ -942,7 +953,6 @@ if (EXPO.events.feed) {
} }
allTagsLength = ARRAllTagsIds.length; allTagsLength = ARRAllTagsIds.length;
sublistIdsLength = ARRSublistIds.length; sublistIdsLength = ARRSublistIds.length;
// добавить текущий тег
//если найден дочерний тег то он будет удален, либо текущий тег //если найден дочерний тег то он будет удален, либо текущий тег
for(i = 0; i < allTagsLength; i++){ for(i = 0; i < allTagsLength; i++){
@ -960,6 +970,13 @@ if (EXPO.events.feed) {
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++){
@ -971,6 +988,8 @@ if (EXPO.events.feed) {
} }
}, },
deleteTag = function (it) { deleteTag = function (it) {
var id = it.getAttribute('id'); var id = it.getAttribute('id');
@ -987,14 +1006,14 @@ if (EXPO.events.feed) {
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);
}); });
@ -1008,9 +1027,21 @@ if (EXPO.events.feed) {
}; };
//make fake checkbox active\passive //make fake checkbox active\passive
/**
* if modala is not in strict mode ( enable popping from children categories to parent)
*/
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);
@ -1032,6 +1063,7 @@ if (EXPO.events.feed) {
if(DOMSublistInner){ if(DOMSublistInner){
selectSublist(this); selectSublist(this);
} }
}else{ }else{
//Если выбран родитель //Если выбран родитель
@ -1042,10 +1074,12 @@ if (EXPO.events.feed) {
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);
@ -1054,9 +1088,21 @@ if (EXPO.events.feed) {
//убрать все дочерние //убрать все дочерние
if(DOMSublistInner){ if(DOMSublistInner){
unSelectSublist(this); unSelectSublist(this);
refreshTags(this);
} }
} }
}else{
if(this.checked){
selectItem(this);
refreshTags(this);
createTag(this);
}else{
unSelectItem(this);
refreshTags(this);
deleteTag(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
Loading…
Cancel
Save