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, ' классе', ' классах', ' классах') }}