expo-33, expo-34 frontend bugs all together

remotes/origin/1203
pavel 11 years ago
parent a391884bb3
commit 81c5cd7644
  1. 11
      templates/client/includes/catalog_search.html
  2. 11
      templates/client/includes/catalog_search_main.html
  3. 19
      templates/client/static_client/css/main.css
  4. 139
      templates/client/static_client/js/_modules/block.search.js
  5. 95
      templates/client/static_client/js/_modules/page.events.feed.js
  6. 2
      templates/client/static_client/js_min/_modules/block.search.min.js
  7. 2
      templates/client/static_client/js_min/_modules/page.events.feed.min.js

@ -105,13 +105,19 @@
<!--<script src="{% static 'client/js' %}{% if debug %}/{% else %}_min/{% endif %}_modules/block.search{% if debug %}{% else %}.min{% endif %}.js"></script>-->
<script src="{% static 'client/js/_modules/block.search.js' %}"></script>
<script>
var closerTextSingle = "{% trans ' и еще _ позиция' %}",
closerText = "{% trans ' и еще _ позиции' %}";
if($(window).width() < 1086){
closerTextSingle = "{% trans ' и еще _' %}";
closerText = "{% trans ' и еще _' %}";
}
EXPO.searchBlock.init({
formId: 'search-block-form',
modalTriggerClass:'search-modal-open',
searchData:'{{ form_data_with_parents|safe }}',
closerText: "{% trans ' и еще _ позиции' %}",
closerTextSingle:"{% trans ' и еще _ позиция' %}",
closerText: closerText,
closerTextSingle: closerTextSingle,
place:{
id:'pwPlace',
selectedItemTemplate:'csb-selected',
@ -186,6 +192,7 @@
}
});
</script>
{% endblock %}

@ -111,12 +111,19 @@
<script src="{% static 'client/js/plugins/inputmask/jquery.inputmask.js' %}"></script>
<script src="{% static 'client/js' %}{% if debug %}/{% else %}_min/{% endif %}_modules/block.search{% if debug %}{% else %}.min{% endif %}.js"></script>
<script>
var closerTextSingle = "{% trans ' и еще _ позиция' %}",
closerText = "{% trans ' и еще _ позиции' %}";
if($(window).width() < 1086){
closerTextSingle = "{% trans ' и еще _' %}";
closerText = "{% trans ' и еще _' %}";
}
EXPO.searchBlock.init({
formId: 'search-block-form',
modalTriggerClass:'search-modal-open',
searchData:'{{ search_form.data_with_parents|safe }}',
closerText:' и еще _ позиции',
closerTextSingle:' и еще _ позиция',
closerText: closerText,
closerTextSingle: closerTextSingle,
place:{
id:'pwPlace',
selectedItemTemplate:'csb-selected',

@ -12328,6 +12328,25 @@ hr + .rq-note {
.mp-search .ui-menu{
line-height: 15px;
}
@media (max-width: 1086px){
.mp-search .search-form-wrap{
max-width: 764px;
overflow: hidden;
display: block;
}
.mp-search .search-form-wrap .search-line{
display: block;
word-spacing: -4px;
}
.mp-search .search-form-wrap .search-line .sf-field-wrap{
display: inline-block;
word-spacing: normal;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
}
/******************************\
# form validation

@ -104,7 +104,7 @@ if (EXPO.searchBlock){
$element = $container.find('.csbs-text');
if($element.length > 2){
if($element.eq(0).text().length < cutLength){
dividerSymbol = ',';
dividerSymbol = ', ';
stringToReturn += $element.eq(0).text() + dividerSymbol + $element.eq(1).text() + closerText.replace('_',$element.length-2);
}else{
stringToReturn += $element.eq(0).text() + closerText.replace('_',$element.length-1);
@ -112,17 +112,18 @@ if (EXPO.searchBlock){
} else if($element.length == 2){
if(($element.eq(0).text().length+$element.eq(1).text().length) < cutLength){
dividerSymbol = ',';
stringToReturn += $element.eq(0).text() + dividerSymbol + $element.eq(1).text();
dividerSymbol = ', ';
// если даже 2 первых слова вместе меньше чем порог, то не указывать количество позиций
stringToReturn += $element.eq(0).text() + dividerSymbol + $element.eq(1).text()+' ';
} else if($element.eq(0).text().length < cutLength){
dividerSymbol = ',';
stringToReturn += $element.eq(0).text() + dividerSymbol + $element.eq(1).text() + closerTextSingle.replace('_',$element.length-2);
dividerSymbol = ', ';
stringToReturn += $element.eq(0).text() + dividerSymbol + $element.eq(1).text()+' ';
}else{
stringToReturn += $element.eq(0).text() + closerTextSingle.replace('_',$element.length-1);
}
}else if($element.length){
stringToReturn += $element.eq(0).text();
stringToReturn += $element.eq(0).text()+' ';
}else{
stringToReturn = false;
}
@ -170,6 +171,9 @@ if (EXPO.searchBlock){
triggerSetText = function () {
var selectedString,
cutLength = 16;
if($(window).width() < 1086){
cutLength = 12;
}
selectedString = getSelectedToString(self.opt.selectedItemsContainer,cutLength);
if(selectedString && selectedString != '~~text~~' && selectedString != '~~text~~...'){
@ -203,6 +207,11 @@ if (EXPO.searchBlock){
*/
this.$inputFilter = $('#'+self.opt.filterInputId);
this.$selectedItemsWrap = $selectedItemsWrap;
/**
* flag for management of turn of asynchronous requests
* @type {boolean}
*/
this.isReceived = true;
$(function () {
// topic checkbox selected event
@ -621,8 +630,8 @@ if (EXPO.searchBlock){
self._getAjax(dataObj, ajaxHandler);
},
/**
* if there is no children element in list, loads list that is parent to children element
* @param {Object} data
* if there is no children element in list, loads ITS Children sublist
* @param {Object} data - current (children) object data
* @param {number|string} handler
* @param {function} counter
* @private
@ -706,10 +715,92 @@ if (EXPO.searchBlock){
}
$('.level.active',self.$modalInst).removeClass('active');
self.$selectedItemsWrap.removeClass('visible');
$(this.$modalInst).find('input:checkbox:checked').prop('checked',false);
},
// кнопка применить
applyHandler: function (it) {
$waiter.show();
},
/**
* select particular item and render its tag and check checkbox
* @param {Object} item
* @public
*/
selectTag:function (item) {
//check of repeating execution
var firstTime = true,
self = this,
waitHandler = function () {
self.isReceived = false;
if(!item.children){
for (var prop in self.itemsSelected) {
if (prop == 'tid_'+item.id){
firstTime = false;
}
}
if($('#tid_'+item.id+':checked').length){
firstTime = false;
}
if(firstTime){
self.check(item.id, item.name);
self.isReceived = true;
}else{
$('#tid_' + item.id).prop('checked', true);
$('#tid_' + item.id).trigger('change');
self.isReceived = true;
}
}else{
if($('#tgid_'+item.children.id).length){
firstTime = false;
}
//Если выбран родитель
if($('#tid_'+item.id+':checked').length){
firstTime = false;
}
if(firstTime) {
self._loadParentTree({name: item.name, id: item.id}, function () {
self.check(item.children.id, item.children.name);
self.isReceived = true;
});
}else if(!$('#tgid_'+item.id+':checked').length){
$('#tgid_' + item.children.id).prop('checked', true);
$('#tgid_' + item.children.id).trigger('change');
self.isReceived = true;
}
}
};
this.wait(waitHandler);
},
/**
* waits so far the previous request will be executed and execute a method
* @param {function} method
* @param {Object|Array} args
* @public
*/
wait:function(method, args) {
var self = this,
waitImages,
waitHandler = function(self, method, args) {
if (self.isReceived) {
if (args) {
method(args);
}
else{
method();
}
clearInterval(waitImages);
}
};
waitImages = setInterval(function() {waitHandler(self, method, args)}, 100);
}
@ -741,6 +832,9 @@ if (EXPO.searchBlock){
triggerSetText = function () {
var selectedString,
cutLength = 16;
if($(window).width() < 1086){
cutLength = 6;
}
selectedString = getSelectedToString(self.opt.selectedItemsContainer,cutLength);
if(selectedString && selectedString != '~~text~~' && selectedString != '~~text~~...'){
$modalTrigger.text(selectedString);
@ -1442,6 +1536,7 @@ if (EXPO.searchBlock){
$('.level.active',this.$modal).removeClass('active');
this._refreshText();
self.selectedWrap.removeClass('visible');
$(this.$modal).find('input:checkbox:checked').prop('checked',false);
},
/**
* initiliazing and setup autocomplete field for places list
@ -1629,6 +1724,8 @@ if (EXPO.searchBlock){
* @public
*/
applyHandler: function (it) {
console.log(this);
},
_refreshText: function () {
var selectedString,
@ -1674,7 +1771,11 @@ if (EXPO.searchBlock){
toVal = $.trim($dateTo.val()),
fromVal = $.trim($dateFrom.val());
if(toVal != ''&& fromVal != ''){
stringToReturn = fromChar+': '+fromVal+' '+toChar+': '+toVal+'.';
if($(window).width() < 1086){
stringToReturn = fromChar+': '+fromVal+'<br/>'+toChar+': '+toVal+'.';
}else{
stringToReturn = fromChar+': '+fromVal+' '+toChar+': '+toVal+'.';
}
} else if (toVal != ''&& fromVal == ''){
stringToReturn = toChar+': '+toVal+'.';
} else if (toVal == ''&& fromVal != ''){
@ -1690,14 +1791,17 @@ if (EXPO.searchBlock){
*/
triggerSetText = function (selectedString) {
var cutLength = 24;
if($(window).width() < 1086){
cutLength = 6;
}
if(selectedString != ''){
$modalTrigger.text(selectedString).siblings('.trigger-label').addClass('hidden');
$modalTrigger.html(selectedString).siblings('.trigger-label').addClass('hidden');
$modalTrigger.siblings('.'+self.opt.clearAllButtonClass).addClass('active');
}else{
$modalTrigger.text($modalTrigger.data('default')).siblings('.trigger-label').removeClass('hidden');
$modalTrigger.html($modalTrigger.data('default')).siblings('.trigger-label').removeClass('hidden');
$modalTrigger.siblings('.'+self.opt.clearAllButtonClass).removeClass('active');
}
},
@ -2245,16 +2349,9 @@ if (EXPO.searchBlock){
for (var i = 0; i < self.previousSearch.inputs.length; i++) {
// окно выбора тематики
if (self.previousSearch.inputs[i].name == 'th'){
self.subjModal._loadParentTree(self.previousSearch.inputs[i], function (innerI) {
if(self.previousSearch.inputs[innerI].children){
self.subjModal.selectTag(self.previousSearch.inputs[i]);
self.subjModal.check(self.previousSearch.inputs[innerI].children.id, self.previousSearch.inputs[innerI].children.name);
}else{
self.subjModal.check(self.previousSearch.inputs[innerI].id, self.previousSearch.inputs[innerI].name);
}
}, i);
// окно выбора мест
// окно выбора мест
} else if (self.previousSearch.inputs[i].name == 'area'){
if(self.previousSearch.inputs[i].children && self.previousSearch.inputs[i].children.children){
@ -2266,8 +2363,6 @@ if (EXPO.searchBlock){
} else if(self.previousSearch.inputs[i]){
self.placesModal.selectTag(self.previousSearch.inputs[i]);
}
}
}

@ -157,6 +157,11 @@ if (EXPO.events.feed) {
this.$label = $(document.getElementById(this.opt.labelId));
this.$selectedItemsWrap = $selectedItemsWrap;
/**
* flag for management of turn of asynchronous requests
* @type {boolean}
*/
this.isReceived = true;
$(function () {
// topic checkbox selected event
@ -547,7 +552,6 @@ if (EXPO.events.feed) {
});
},
//
/**
* render first level sublist
* @param {Object} dataObj
@ -693,6 +697,86 @@ if (EXPO.events.feed) {
applyHandler: function (it) {
EXPO.events.feed.modalWindow.close();
},
/**
* select particular item and render its tag and check checkbox
* @param {Object} item
* @public
*/
selectTag:function (item) {
//check of repeating execution
var firstTime = true,
self = this,
waitHandler = function () {
self.isReceived = false;
if(!item.children){
for (var prop in self.itemsSelected) {
if (prop == 'tid_'+ self.opt.prefix+item.id){
firstTime = false;
}
}
if($('#tid_'+ self.opt.prefix+item.id+':checked').length){
firstTime = false;
}
if(firstTime){
self.check(item.id, item.name);
self.isReceived = true;
}else{
$('#tid_'+ self.opt.prefix + item.id).prop('checked', true);
$('#tid_'+ self.opt.prefix + item.id).trigger('change');
self.isReceived = true;
}
}else{
if($('#tgid_'+ self.opt.prefix+item.children.id).length){
firstTime = false;
}
//Если выбран родитель
if($('#tid_'+ self.opt.prefix+item.id+':checked').length){
firstTime = false;
}
if(firstTime) {
self._loadParentTree({name: item.name, id: item.id}, function () {
self.check(item.children.id, item.children.name);
self.isReceived = true;
});
}else if(!$('#tgid_'+ self.opt.prefix+item.id+':checked').length){
$('#tgid_'+ self.opt.prefix + item.children.id).prop('checked', true);
$('#tgid_'+ self.opt.prefix + item.children.id).trigger('change');
self.isReceived = true;
}
}
};
this.wait(waitHandler);
},
/**
* waits so far the previous request will be executed and execute a method
* @param {function} method
* @param {Object|Array} args
* @public
*/
wait:function(method, args) {
var self = this,
waitImages,
waitHandler = function(self, method, args) {
if (self.isReceived) {
if (args) {
method(args);
}
else{
method();
}
clearInterval(waitImages);
}
};
waitImages = setInterval(function() {waitHandler(self, method, args)}, 100);
}
@ -1717,15 +1801,8 @@ if (EXPO.events.feed) {
for (var i = 0; i < self.previousSearch.inputs.length; i++) {
// окно выбора тематики
if (self.previousSearch.inputs[i].name == 'th'){
self.subjModal._loadParentTree(self.previousSearch.inputs[i], function (innerI) {
if(self.previousSearch.inputs[innerI].children){
self.subjModal.check(self.previousSearch.inputs[innerI].children.id, self.previousSearch.inputs[innerI].children.name);
}else{
self.subjModal.check(self.previousSearch.inputs[innerI].id, self.previousSearch.inputs[innerI].name);
self.subjModal.selectTag(self.previousSearch.inputs[i]);
}
}, i);
// окно выбора мест
} else if (self.previousSearch.inputs[i].name == 'area'){

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