From 74cd600ea6316705bce38a40f9924111cad734ea Mon Sep 17 00:00:00 2001 From: Alexander Kondratyev Date: Tue, 21 Feb 2017 17:49:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=83=20=D1=80=D0=B0=D1=81=D1=88?= =?UTF-8?q?=D0=B8=D1=80=D0=B5=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B8=D1=81=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- trademark/static/trademark/js/modal.js | 15 ++--- trademark/static/trademark/js/nice_ctrl.js | 5 +- trademark/static/trademark/js/result.js | 62 +++++++++++++++---- trademark/static/trademark/less/result.less | 13 ++++ trademark/templates/trademark/modal.html | 4 +- .../templates/trademark/search_detail.html | 38 ++++++++---- zsite/static/js/snippets.js | 26 +++++++- 7 files changed, 125 insertions(+), 38 deletions(-) diff --git a/trademark/static/trademark/js/modal.js b/trademark/static/trademark/js/modal.js index 41a7586..251a719 100644 --- a/trademark/static/trademark/js/modal.js +++ b/trademark/static/trademark/js/modal.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(); diff --git a/trademark/static/trademark/js/nice_ctrl.js b/trademark/static/trademark/js/nice_ctrl.js index 65ce113..7d997e8 100644 --- a/trademark/static/trademark/js/nice_ctrl.js +++ b/trademark/static/trademark/js/nice_ctrl.js @@ -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]; diff --git a/trademark/static/trademark/js/result.js b/trademark/static/trademark/js/result.js index 6c2c12e..c23110e 100644 --- a/trademark/static/trademark/js/result.js +++ b/trademark/static/trademark/js/result.js @@ -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 = []; \ No newline at end of file +}); \ No newline at end of file diff --git a/trademark/static/trademark/less/result.less b/trademark/static/trademark/less/result.less index 8879956..07798be 100644 --- a/trademark/static/trademark/less/result.less +++ b/trademark/static/trademark/less/result.less @@ -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; diff --git a/trademark/templates/trademark/modal.html b/trademark/templates/trademark/modal.html index 437cda2..8240afc 100644 --- a/trademark/templates/trademark/modal.html +++ b/trademark/templates/trademark/modal.html @@ -70,8 +70,8 @@ {% verbatim %} -
-

Поиск происходит в {{ classes + GetNoun(classes, ' классе', ' классах', ' классах') }}

+
+

Поиск происходит {{ classes == 0 ? 'во всех классах' : 'в ' + classes + GetNoun(classes, ' классе', ' классах', ' классах') }}

  • {{ nice[id-1].id }} – {{ nice[id-1].title }}
  • diff --git a/trademark/templates/trademark/search_detail.html b/trademark/templates/trademark/search_detail.html index 55a58a6..1806db6 100644 --- a/trademark/templates/trademark/search_detail.html +++ b/trademark/templates/trademark/search_detail.html @@ -11,13 +11,18 @@ {% include 'trademark/modal.html' %}
    -{% if identity.count > 0 %} - +
    +

    Товарный знак «{{ keyword.request|title }}» не зарегистрирован в выбранных классах товаров и услуг

    + +
    + {% if identity.count > 0 %}
      -
    • Товарный знак «{{ keyword.request|title }}» зарегистрирован {% if nice_busy.count == 45 %}во всех{% else %}в {{ nice_busy.count }}{% endif %} классах товаров и услуг

      +
    • +

      Товарный знак «{{ keyword.request|title }}» зарегистрирован {% if nice_busy.count == 45 %}во всех{% else %}в {{ nice_busy.count }}{% endif %} классах товаров и услуг

      -

      {% if nice_busy.count == 45 %}Скорее всего, вы не можете зарегистрировать этот знак{% endif %}

      +

      {% if nice_busy.count == 45 %}Скорее всего, вы не можете зарегистрировать этот знак{% endif %}

      +
    • {% for tm in identity %} @@ -55,10 +60,12 @@
    {% if identity_expired %} -
      -
    • Недействующие товарные знаки «{{ keyword.request|title }}»

      -

      Исключительные права на эти товарные знаки не продлили, поэтому они доступны для регистрации в этих классах товаров и услуг.

    • +
    • +

      Недействующие товарные знаки «{{ keyword.request|title }}»

      +
      +

      Исключительные права на эти товарные знаки не продлили, поэтому они доступны для регистрации в этих классах товаров и услуг.

      +
    • {% for tm in identity_expired %} {% include 'trademark/search_list_item.html' with tm=tm %} {% endfor %} @@ -98,9 +105,10 @@ {% if similar_expired.count > 0 %}
        -
      • -

        Похожие на «{{ keyword.request|title }}» знаки, для которых возможна регистрация

        -

        Исключительные права на эти товарные знаки не продлили, поэтому их регистрация возможна после проведения полного поиска.

        +
      • +

        Похожие на «{{ keyword.request|title }}» знаки, для которых возможна регистрация

        +
        +

        Исключительные права на эти товарные знаки не продлили, поэтому их регистрация возможна после проведения полного поиска.

      • {% for tm in similar_expired %} {% include 'trademark/search_list_item.html' with tm=tm %} @@ -115,7 +123,10 @@ {% if contains.count > 0 %}
          -

          Похожие на «{{ keyword.request|title }}» торговые марки

          +
        • +

          Похожие на «{{ keyword.request|title }}» торговые марки

          +
          +
        • {% for tm in contains %} {% include 'trademark/search_list_item.html' with tm=tm %} {% endfor %} @@ -129,7 +140,10 @@ {% if similar.count > 0 %}
            -

            Знаки схожие с «{{ keyword.request|title }}»

            +
          • +

            Знаки схожие с «{{ keyword.request|title }}»

            +
            +
          • {% for tm in similar %} {% include 'trademark/search_list_item.html' with tm=tm %} {% endfor %} diff --git a/zsite/static/js/snippets.js b/zsite/static/js/snippets.js index 4c5bda9..e97e444 100644 --- a/zsite/static/js/snippets.js +++ b/zsite/static/js/snippets.js @@ -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; + }; +}); \ No newline at end of file