Улучшил работу расширенного поиска

master
Alexander Kondratyev 9 years ago
parent 7254777c93
commit 74cd600ea6
  1. 15
      trademark/static/trademark/js/modal.js
  2. 5
      trademark/static/trademark/js/nice_ctrl.js
  3. 60
      trademark/static/trademark/js/result.js
  4. 13
      trademark/static/trademark/less/result.less
  5. 4
      trademark/templates/trademark/modal.html
  6. 38
      trademark/templates/trademark/search_detail.html
  7. 24
      zsite/static/js/snippets.js

@ -1,10 +1,11 @@
angular.module('zuykov')
.controller('ModalTrademarkSearchCtrl', ['$scope', '$modal', function ($scope, $modal) {
.controller('ModalTrademarkSearchCtrl', ['$scope', '$modal', '$location', function ($scope, $modal, $location) {
var selected_nices = $location.search().nices || false;
$scope.nice = nicesRu;
$scope.classes_values = trademarkSearchFilter;
$scope.classes_values = selected_nices ? selected_nices.split(',') : [];
$scope.classes = $scope.classes_values.length;
$scope.animationsEnabled = true;
@ -17,9 +18,9 @@ angular.module('zuykov')
});
modalInstance.result.then(function (selectedItem) {
console.log('clooosed');
$scope.classes_values = trademarkSearchFilter;
var selected_nices = $location.search().nices || false;
$scope.classes_values = selected_nices ? selected_nices.split(',') : [];
$scope.classes = $scope.classes_values.length;
});
};
@ -38,7 +39,7 @@ angular.module('zuykov')
$scope.ok = function () {
trademarkSearchFilter = $scope.classes_values;
$.urlParamUpdate('nices', $scope.classes_values.join(','));
searchResults.expand();

@ -1,7 +1,7 @@
angular.module('zuykov')
.controller('TrademarkSearchNiceCtrl', ['$scope', '$rootScope', function ($scope, $rootScope) {
.controller('TrademarkSearchNiceCtrl', ['$scope', '$rootScope', '$location', function ($scope, $rootScope, $location) {
$scope.selectedCategory = 1;
@ -54,7 +54,8 @@ angular.module('zuykov')
$scope.getClasses = function () {
var classes = $rootScope.classes_values;
var selected_nices = $location.search().nices || false;
var classes = selected_nices ? selected_nices.split(',') : [];
for(var i in classes) {
var class_id = classes[i];

@ -1,4 +1,6 @@
TrademarkSearchResult = (function (resultContainer) {
var total_count = 0;
function prepare_nice_products ($nice) {
var product_id = $nice.attr('product-id')
$nice.click(function () {
@ -9,10 +11,14 @@ TrademarkSearchResult = (function (resultContainer) {
}
function prepare_load_more ($container, display_classes) {
var results_count = $container.find(".load-more-result.filtered").size(),
var all_count = $container.find(".load-more-result").size(),
results_count = $container.find(".load-more-result.filtered").size(),
showed = 6,
$this = $container,
$count = $container.find('.load-more-count');
$count = $container.find('.load-more-count'),
$detail_count = $container.find(".trademark-search-results-detail-count");
total_count += results_count;
function update_count() {
var count = results_count - showed;
@ -24,8 +30,14 @@ TrademarkSearchResult = (function (resultContainer) {
}
if ( results_count > 0 ){
if (all_count != results_count) {
$detail_count.text('Среди выбранных классов ' + GetAdj(results_count, 'найден', 'найдено', 'найдены') + ' ' + results_count + ' ' + GetNoun(results_count, 'товарный знак', 'товарных знака', 'товарных знаков') );
$detail_count.css('display', 'block');
}
$container.css('display', 'block');
} else {
$detail_count.css('display', 'none');
$container.css('display', 'none');
}
@ -65,25 +77,49 @@ TrademarkSearchResult = (function (resultContainer) {
prepare_nice_products($(this));
});
$(resultContainer + ' .trademark-search-flush-filter').click(function () {
$.urlParamUpdate('nices', '');
scope = angular.element($('.trademark-search-form')).scope();
scope.$apply(function () {
scope.classes_values = [];
scope.classes = 0;
});
prepare_all_blocks();
});
function prepare_all_blocks () {
var display_css_classes = trademarkSearchFilter.length == 0 ? resultContainer + ' .load-more-result' : resultContainer + ' .c' + trademarkSearchFilter.join(', ' + resultContainer +' .c');
$(function () {
var selected_nices = $.urlParamGet('nices') || false;
var trademarkSearchFilter = selected_nices ? selected_nices.split(',') : [];
var display_css_classes = trademarkSearchFilter.length == 0 ? resultContainer + ' .load-more-result' : resultContainer + ' .c' + trademarkSearchFilter.join(', ' + resultContainer +' .c');
total_count = 0;
$(resultContainer + ' .load-more').unbind('click');
$(resultContainer + ' .load-more-result').css('display', 'none');
$(resultContainer + ' .load-more-result').removeClass('filtered');
$(display_css_classes).addClass('filtered');
$(resultContainer + ' .load-more').unbind('click');
$(resultContainer + ' .load-more-result').css('display', 'none');
$(resultContainer + ' .load-more-result').removeClass('filtered');
$(display_css_classes).addClass('filtered');
$(resultContainer + ' .load-more-results').each(function () {
prepare_load_more($(this));
});
$(resultContainer + ' .load-more-results').each(function () {
prepare_load_more($(this));
});
console.log(total_count);
if (total_count == 0) {
$(resultContainer + ' .trademark-search-results-null').css('display', 'block');
} else {
$(resultContainer + ' .trademark-search-results-null').css('display', 'none');
}
});
}
return {
expand: function () {
prepare_all_blocks();
$(function () {
prepare_all_blocks();
});
}
}
});
trademarkSearchFilter = [];

@ -18,6 +18,10 @@
}
}
.trademark-search-results-null {
display: none;
}
.load-more-results, .trademark-search-results {
.load-more-result {
display: none;
@ -29,6 +33,15 @@
}
.trademark-search-results {
.trademark-search-results-detail {
display: block;
.trademark-search-results-detail-count {
display: none;
}
}
.trademark-search-result-identity {
width: 161px;
height: 185px;

@ -70,8 +70,8 @@
</div>
</script>
{% verbatim %}
<div ng-show="classes_values.length > 0">
<p>Поиск происходит в {{ classes + GetNoun(classes, ' классе', ' классах', ' классах') }}</p>
<div>
<p>Поиск происходит {{ classes == 0 ? 'во всех классах' : 'в ' + classes + GetNoun(classes, ' классе', ' классах', ' классах') }}</p>
<ul class="nice-selected list-unstyled list-inline">
<li ng-repeat="id in classes_values"><span class="label label-default"><strong>{{ nice[id-1].id }}</strong> – {{ nice[id-1].title }}</span></li>

@ -11,13 +11,18 @@
{% include 'trademark/modal.html' %}
<div class="row">
<div class="col-xs-12 col-sm-8">
{% if identity.count > 0 %}
<div class="trademark-search-results-null">
<h2>Товарный знак «{{ keyword.request|title }}» не зарегистрирован в выбранных классах</nobr> товаров и услуг</h2>
<button class="btn btn-default btn-xs trademark-search-flush-filter">Показать знаки по всем классам</button>
</div>
{% if identity.count > 0 %}
<ul class="trademark-search-results load-more-results list-inline list-unstyled">
<li><h2>Товарный знак «{{ keyword.request|title }}» зарегистрирован <nobr>{% if nice_busy.count == 45 %}во всех{% else %}в {{ nice_busy.count }}{% endif %} классах</nobr> товаров и услуг</h2>
<li class="trademark-search-results-detail">
<h2>Товарный знак «{{ keyword.request|title }}» зарегистрирован <nobr>{% if nice_busy.count == 45 %}во всех{% else %}в {{ nice_busy.count }}{% endif %} классах</nobr> товаров и услуг</h2>
<h3>{% if nice_busy.count == 45 %}Скорее всего, вы не можете зарегистрировать этот знак{% endif %}</h3>
<h3>{% if nice_busy.count == 45 %}Скорее всего, вы не можете зарегистрировать этот знак{% endif %}</h3>
<h5 class="trademark-search-results-detail-count"></h5>
</li>
{% for tm in identity %}
@ -55,10 +60,12 @@
</ul>
{% if identity_expired %}
<ul class="trademark-search-results load-more-results list-inline list-unstyled">
<li><h2>Недействующие товарные знаки «{{ keyword.request|title }}»</h2>
<p>Исключительные права на эти товарные знаки не продлили, поэтому они доступны для <a href="http://zuykov.com/ru/trademarks/registraciya-tovarnogo-znaka/">регистрации</a> в этих классах товаров и услуг.</p></li>
<li class="trademark-search-results-detail">
<h2>Недействующие товарные знаки «{{ keyword.request|title }}»</h2>
<h5 class="trademark-search-results-detail-count"></h5>
<p>Исключительные права на эти товарные знаки не продлили, поэтому они доступны для <a href="http://zuykov.com/ru/trademarks/registraciya-tovarnogo-znaka/">регистрации</a> в этих классах товаров и услуг.</p>
</li>
{% for tm in identity_expired %}
{% include 'trademark/search_list_item.html' with tm=tm %}
{% endfor %}
@ -98,9 +105,10 @@
{% if similar_expired.count > 0 %}
<ul class="trademark-search-results load-more-results list-inline list-unstyled">
<li>
<h2>Похожие на «{{ keyword.request|title }}» знаки, для которых возможна регистрация</h2>
<p>Исключительные права на эти товарные знаки не продлили, поэтому их <a href="http://zuykov.com/ru/trademarks/registraciya-tovarnogo-znaka/">регистрация</a> возможна после проведения <a href="http://zuykov.com/ru/trademarks/poisk-tovarnogo-znaka/">полного поиска</a>.</p>
<li class="trademark-search-results-detail">
<h2>Похожие на «{{ keyword.request|title }}» знаки, для которых возможна регистрация</h2>
<h5 class="trademark-search-results-detail-count"></h5>
<p>Исключительные права на эти товарные знаки не продлили, поэтому их <a href="http://zuykov.com/ru/trademarks/registraciya-tovarnogo-znaka/">регистрация</a> возможна после проведения <a href="http://zuykov.com/ru/trademarks/poisk-tovarnogo-znaka/">полного поиска</a>.</p>
</li>
{% for tm in similar_expired %}
{% include 'trademark/search_list_item.html' with tm=tm %}
@ -115,7 +123,10 @@
{% if contains.count > 0 %}
<ul class="trademark-search-results load-more-results list-inline list-unstyled">
<h2>Похожие на «{{ keyword.request|title }}» торговые марки</h2>
<li class="trademark-search-results-detail">
<h2>Похожие на «{{ keyword.request|title }}» торговые марки</h2>
<h5 class="trademark-search-results-detail-count"></h5>
</li>
{% for tm in contains %}
{% include 'trademark/search_list_item.html' with tm=tm %}
{% endfor %}
@ -129,7 +140,10 @@
{% if similar.count > 0 %}
<ul class="trademark-search-results load-more-results list-inline list-unstyled">
<h2>Знаки схожие с «{{ keyword.request|title }}»</h2>
<li class="trademark-search-results-detail">
<h2>Знаки схожие с «{{ keyword.request|title }}»</h2>
<h5 class="trademark-search-results-detail-count"></h5>
</li>
{% for tm in similar %}
{% include 'trademark/search_list_item.html' with tm=tm %}
{% endfor %}

@ -142,7 +142,29 @@ $(function() {
detectRegion();
$.urlParamGet = function (name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (results==null) {
return null;
}
else{
return results[1] || 0;
}
};
// Pr
$.urlParamUpdate = function (paramName, paramValue){
if(paramValue == null) {
paramValue = ''
}
var pattern = new RegExp('\\b('+paramName+'=).*?(&|$)'),
url = window.location.href;
if (url.search(pattern) >= 0){
window.location = url.replace(pattern,'$1' + paramValue + '$2');
return window.location;
}
window.location = url + (url.indexOf('?')>0 ? '&' : '?') + paramName + '=' + paramValue;
return window.location;
};
});
Loading…
Cancel
Save