Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • project/facets
  • issue/facets-3182762
  • issue/facets-2937191
  • issue/facets-3073444
  • issue/facets-3187388
  • issue/facets-3189343
  • issue/facets-3190076
  • issue/facets-3190111
  • issue/facets-3190240
  • issue/facets-3057943
  • issue/facets-3153889
  • issue/facets-3015387
  • issue/facets-3197615
  • issue/facets-3199135
  • issue/facets-3199156
  • issue/facets-3200659
  • issue/facets-3204072
  • issue/facets-3205381
  • issue/facets-3162984
  • issue/facets-3208580
  • issue/facets-3211155
  • issue/facets-3168241
  • issue/facets-3058314
  • issue/facets-3214662
  • issue/facets-3212932
  • issue/facets-2979223
  • issue/facets-3213733
  • issue/facets-3216756
  • issue/facets-3221545
  • issue/facets-3223956
  • issue/facets-3052574
  • issue/facets-3173865
  • issue/facets-3231934
  • issue/facets-3226284
  • issue/facets-3100620
  • issue/facets-3283166
  • issue/facets-3281408
  • issue/facets-3225189
  • issue/facets-3153622
  • issue/facets-3186953
  • issue/facets-3248297
  • issue/facets-3220140
  • issue/facets-3252806
  • issue/facets-3046872
  • issue/facets-3254732
  • issue/facets-3255454
  • issue/facets-3255596
  • issue/facets-3256305
  • issue/facets-3256222
  • issue/facets-3257441
  • issue/facets-3257445
  • issue/facets-3173972
  • issue/facets-3259958
  • issue/facets-3261140
  • issue/facets-3262863
  • issue/facets-3264045
  • issue/facets-3264196
  • issue/facets-3264284
  • issue/facets-3265768
  • issue/facets-2939710
  • issue/facets-3031544
  • issue/facets-3266265
  • issue/facets-3047910
  • issue/facets-2908937
  • issue/facets-3270514
  • issue/facets-3008061
  • issue/facets-3272851
  • issue/facets-2993101
  • issue/facets-3273431
  • issue/facets-3190289
  • issue/facets-2937619
  • issue/facets-3285728
  • issue/facets-3106111
  • issue/facets-3291943
  • issue/facets-3260603
  • issue/facets-3293266
  • issue/facets-3294991
  • issue/facets-3296120
  • issue/facets-2873480
  • issue/facets-3298956
  • issue/facets-3299603
  • issue/facets-3111903
  • issue/facets-3300227
  • issue/facets-3303927
  • issue/facets-3116236
  • issue/facets-3297168
  • issue/facets-3301075
  • issue/facets-3295536
  • issue/facets-3303305
  • issue/facets-3305120
  • issue/facets-2837729
  • issue/facets-3310812
  • issue/facets-3310894
  • issue/facets-3306634
  • issue/facets-3307082
  • issue/facets-3307968
  • issue/facets-3308371
  • issue/facets-3309309
  • issue/facets-3310848
  • issue/facets-3310857
  • issue/facets-3311242
  • issue/facets-3311500
  • issue/facets-3311856
  • issue/facets-3251920
  • issue/facets-3317585
  • issue/facets-3317783
  • issue/facets-2978248
  • issue/facets-3314702
  • issue/facets-3318667
  • issue/facets-3326080
  • issue/facets-3326809
  • issue/facets-3327596
  • issue/facets-3320629
  • issue/facets-3327246
  • issue/facets-3327613
  • issue/facets-3327629
  • issue/facets-3172373
  • issue/facets-3327604
  • issue/facets-3327592
  • issue/facets-3323372
  • issue/facets-3336646
  • issue/facets-3343860
  • issue/facets-3331219
  • issue/facets-3260155
  • issue/facets-3206427
  • issue/facets-3342656
  • issue/facets-3349266
  • issue/facets-3352687
  • issue/facets-3355614
  • issue/facets-3318636
  • issue/facets-3332128
  • issue/facets-3356573
  • issue/facets-2986981
  • issue/facets-2984641
  • issue/facets-3350613
  • issue/facets-3360010
  • issue/facets-3360426
  • issue/facets-3365579
  • issue/facets-3367124
  • issue/facets-3368253
  • issue/facets-3368327
  • issue/facets-3133309
  • issue/facets-3360920
  • issue/facets-3395766
  • issue/facets-3402720
  • issue/facets-3404340
  • issue/facets-3211200
  • issue/facets-3374554
  • issue/facets-3385696
  • issue/facets-2997417
  • issue/facets-3387254
  • issue/facets-3386518
  • issue/facets-3117495
  • issue/facets-3390004
  • issue/facets-3387250
  • issue/facets-3390365
  • issue/facets-3391052
  • issue/facets-3391322
  • issue/facets-3391614
  • issue/facets-3394866
  • issue/facets-3214153
  • issue/facets-3408085
  • issue/facets-3395567
  • issue/facets-3313850
  • issue/facets-3410049
  • issue/facets-3420142
  • issue/facets-3373338
  • issue/facets-3412573
  • issue/facets-3413405
  • issue/facets-3414606
  • issue/facets-3415552
  • issue/facets-3416017
  • issue/facets-3415900
  • issue/facets-3258992
  • issue/facets-3408001
  • issue/facets-3254496
  • issue/facets-3254497
  • issue/facets-3421560
  • issue/facets-3422013
  • issue/facets-3419501
  • issue/facets-3364560
  • issue/facets-3423195
  • issue/facets-3276669
  • issue/facets-3425883
  • issue/facets-3426667
  • issue/facets-3426673
  • issue/facets-3426675
  • issue/facets-3427300
  • issue/facets-3427383
  • issue/facets-3112463
  • issue/facets-3428646
  • issue/facets-3446053
  • issue/facets-3444352
  • issue/facets-3436160
  • issue/facets-3440551
  • issue/facets-3430401
  • issue/facets-3285575
  • issue/facets-3446781
  • issue/facets-3436010
  • issue/facets-3326234
  • issue/facets-3365166
  • issue/facets-3431226
  • issue/facets-3437814
  • issue/facets-3446211
  • issue/facets-3432718
  • issue/facets-3390386
  • issue/facets-3438980
  • issue/facets-3259123
  • issue/facets-3447859
  • issue/facets-3447884
  • issue/facets-3449029
  • issue/facets-3449596
  • issue/facets-3451106
  • issue/facets-3451557
  • issue/facets-3452863
  • issue/facets-3008561
  • issue/facets-3406085
  • issue/facets-3283106
  • issue/facets-3455217
  • issue/facets-3195236
  • issue/facets-3458558
  • issue/facets-3459093
  • issue/facets-3460346
  • issue/facets-3462302
  • issue/facets-3259836
  • issue/facets-3463418
  • issue/facets-3459885
  • issue/facets-3008615
  • issue/facets-3466566
  • issue/facets-2811331
  • issue/facets-3467119
  • issue/facets-3467173
  • issue/facets-3469997
  • issue/facets-2950054
  • issue/facets-3092320
  • issue/facets-3473690
  • issue/facets-3386783
  • issue/facets-3469754
  • issue/facets-3477332
  • issue/facets-3477929
  • issue/facets-3479103
  • issue/facets-3049100
  • issue/facets-3480277
  • issue/facets-3282290
  • issue/facets-3481448
  • issue/facets-3482015
  • issue/facets-3482326
  • issue/facets-3095160
  • issue/facets-3495860
  • issue/facets-3484320
  • issue/facets-3484946
  • issue/facets-3485860
  • issue/facets-3487006
  • issue/facets-3487270
  • issue/facets-3488396
  • issue/facets-3488547
  • issue/facets-3489712
  • issue/facets-3490006
  • issue/facets-3490556
  • issue/facets-3492078
  • issue/facets-3492924
  • issue/facets-3492410
  • issue/facets-3495743
  • issue/facets-3497166
  • issue/facets-3252416
  • issue/facets-3499673
  • issue/facets-3501351
  • issue/facets-3501981
  • issue/facets-3195462
  • issue/facets-3161773
  • issue/facets-3502922
  • issue/facets-3502957
  • issue/facets-3503603
  • issue/facets-3504337
  • issue/facets-3504573
  • issue/facets-3446040
  • issue/facets-3506376
  • issue/facets-3508123
  • issue/facets-3013795
  • issue/facets-3509068
  • issue/facets-3508981
  • issue/facets-3509670
282 results
Show changes
Commits on Source (17)
Showing
with 62 additions and 32 deletions
......@@ -50,6 +50,9 @@ include:
################
variables:
_PHPUNIT_CONCURRENT: '1'
OPT_IN_TEST_PREVIOUS_MINOR: '1'
OPT_IN_TEST_NEXT_MINOR: '1'
OPT_IN_TEST_NEXT_MAJOR: '1'
###################################################################################
......
......@@ -12,19 +12,19 @@
"support": {
"issues": "https://www.drupal.org/project/issues/facets",
"irc": "irc://irc.freenode.org/drupal-search-api",
"source": "git://git.drupal.org/project/facets.git"
"source": "https://git.drupalcode.org/project/facets"
},
"license": "GPL-2.0+",
"require-dev": {
"drupal/search_api": "^1.28||1.x-dev",
"drupal/jquery_ui_slider": "~2.0",
"drupal/jquery_ui_touch_punch": "~1.1"
"drupal/search_api": "1.x-dev",
"drupal/jquery_ui_slider": "^2.1",
"drupal/jquery_ui_touch_punch": "^1.1"
},
"suggest": {
"drupal/jquery_ui_slider": "Required for the 'Facets Range Widget' module to work",
"drupal/jquery_ui_touch_punch": "Required for the 'Facets Range Widget' module to work"
},
"conflict": {
"drupal/search_api": "<1.14"
"drupal/search_api": "<1.30"
}
}
......@@ -52,7 +52,7 @@ facets.facet.*:
type: string
label: 'Plugin id'
config:
type: facets.facet.[%parent.type]
type: plugin.plugin_configuration.facets_hierarchy.[%parent.type]
label: 'Configuration'
expand_hierarchy:
type: boolean
......
plugin.plugin_configuration.facets_processor.*:
type: config_object
type: mapping
plugin.plugin_configuration.facets_hierarchy.*:
type: mapping
plugin.plugin_configuration.facets_processor.count_widget_widget_order:
type: mapping
......
name: 'Facets'
type: module
description: 'Faceted search interfaces that can be used on Search API searchers.'
core_version_requirement: ^9.3 || ^10.0
core_version_requirement: ^10 || ^11
package: Search
configure: entity.facets_facet.collection
test_dependencies:
......
......@@ -3,7 +3,7 @@
* Transforms links into a dropdown list.
*/
(function ($, once) {
(function ($, Drupal, once) {
'use strict';
......@@ -101,4 +101,4 @@
});
};
})(jQuery, once);
})(jQuery, Drupal, once);
......@@ -65,6 +65,10 @@
// Helper function to update views output & Ajax facets.
var updateFacetsView = function (href, current_dom_id, view_path) {
// Update url.
window.historyInitiated = true;
window.history.pushState(null, document.title, href);
// Refresh view.
var views_parameters = Drupal.Views.parseQueryString(href);
var views_arguments = Drupal.Views.parseViewArgs(href, 'search');
......@@ -82,10 +86,6 @@
Drupal.ajax(views_ajax_settings).execute();
// Update url.
window.historyInitiated = true;
window.history.pushState(null, document.title, href);
// ToDo: Update views+facets with ajax on history back.
// For now we will reload the full page.
window.addEventListener("popstate", function (e) {
......
name: 'Facets Range Widget'
type: module
description: 'Provides a range widget and solid slider.'
core_version_requirement: ^9.2 || ^10.0
core_version_requirement: ^10 || ^11
package: Search
dependencies:
- facets:facets
......
views.style.facets_serializer:
type: views.style.serializer
label: 'Facets serializer'
mapping:
show_facets:
type: boolean
label: 'Show facets'
name: 'Rest Facets'
type: module
description: 'Adds facets to rest views based on a Search API index.'
core_version_requirement: ^9.2 || ^10.0
core_version_requirement: ^10 || ^11
package: Search
dependencies:
- facets:facets
......
......@@ -3,7 +3,6 @@ type: module
description: 'Provides a Search API + rest dependency to execute tests.'
package: 'Testing'
hidden: true
core_version_requirement: ^9.2 || ^10.0
dependencies:
- drupal:rest
- drupal:views
......
name: 'Facets Searchbox Widget'
type: module
description: 'Provides a input to search and filter facet items.'
core_version_requirement: ^9.2 || ^10.0
core_version_requirement: ^10 || ^11
package: Search
dependencies:
- facets:facets
......
......@@ -39,7 +39,7 @@
function search(filter, display, $targetList, $context) {
let value = $(this).find('.facet-item__value').html();
if (value.toUpperCase().indexOf(filter) === 0) {
if (value.toUpperCase().indexOf(filter) !== -1) {
if (!$(this).hasClass('hide-if-no-result')) {
$(this).css('display', display);
}
......
......@@ -17,8 +17,6 @@ class SearchboxCheckboxWidgetTest extends CheckboxWidgetTest {
*/
protected function setUp(): void {
parent::setUp();
$this->widget = new CheckboxWidget(['show_numbers' => TRUE], 'checkbox_widget', []);
}
/**
......
......@@ -3,18 +3,20 @@
namespace Drupal\facets_searchbox_widget\tests\Unit\Plugin\widget;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\facets\Entity\Facet;
use Drupal\facets\Plugin\facets\widget\LinksWidget;
use Drupal\facets\Result\Result;
use Drupal\Core\Entity\EntityStorageInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\facets\Entity\Facet;
use Drupal\facets\FacetSource\FacetSourcePluginManager;
use Drupal\facets\Plugin\facets\widget\LinksWidget;
use Drupal\facets\Result\Result;
use Drupal\facets\UrlProcessor\UrlProcessorInterface;
use Drupal\facets\UrlProcessor\UrlProcessorPluginManager;
use Drupal\facets\Utility\FacetsUrlGenerator;
use Drupal\Tests\Core\Routing\TestRouterInterface;
use Drupal\Tests\facets\Unit\Plugin\widget\LinksWidgetTest;
use Symfony\Component\HttpFoundation\ParameterBag;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\ParameterBag;
use Drupal\Tests\Core\Routing\TestRouterInterface;
/**
* Unit test for widget.
......@@ -28,8 +30,6 @@ class SearchboxLinksWidgetTest extends LinksWidgetTest {
*/
protected function setUp(): void {
parent::setUp();
$this->widget = new LinksWidget([], 'links_widget', []);
}
/**
......@@ -212,6 +212,9 @@ class SearchboxLinksWidgetTest extends LinksWidgetTest {
$this->createContainer();
$container = \Drupal::getContainer();
$container->set('request_stack', $request_stack);
$urlProcessor = $this->createMock(UrlProcessorPluginManager::class);
$entityTypeManager = $this->createMock(EntityTypeManagerInterface::class);
$container->set('facets.utility.url_generator', new FacetsUrlGenerator($urlProcessor, $entityTypeManager));
\Drupal::setContainer($container);
// Enable the show reset link.
......
plugin.plugin_configuration.facets_summary_processor.show_summary:
type: config_object
type: mapping
plugin.plugin_configuration.facets_summary_processor.show_count:
type: config_object
type: mapping
plugin.plugin_configuration.facets_summary_processor.hide_when_not_rendered:
type: config_object
type: mapping
plugin.plugin_configuration.facets_summary_processor.show_text_when_empty:
type: mapping
......
name: 'Facets summary (Experimental)'
type: module
description: 'Exposes a Facets block summary showing the current search.'
core_version_requirement: ^9.2 || ^10.0
core_version_requirement: ^10 || ^11
package: Search
configure: entity.facets_facet.collection
dependencies:
......
......@@ -11,6 +11,7 @@ use Drupal\facets_summary\Processor\BuildProcessorInterface;
use Drupal\facets_summary\Processor\ProcessorInterface;
use Drupal\facets_summary\Processor\ProcessorPluginManager;
use Drupal\facets_summary\FacetsSummaryInterface;
use Drupal\Component\Utility\Xss;
/**
* The facet summary manager.
......@@ -118,6 +119,11 @@ class DefaultFacetsSummaryManager {
],
];
// Order results by the $facets_config.
usort($facets, function ($a, $b) use ($facets_config) {
return $facets_config[$a->id()]['weight'] <=> $facets_config[$b->id()]['weight'];
});
$results = [];
foreach ($facets as $facet) {
$show_count = $facets_config[$facet->id()]['show_count'];
......@@ -134,6 +140,14 @@ class DefaultFacetsSummaryManager {
$build = $processor->build($facets_summary, $build, $facets);
}
if (isset($build["#items"])) {
foreach ($build["#items"] as &$item) {
if (isset($item["#title"]) and is_string($item["#title"])) {
$item["#title"] = Xss::filter($item["#title"]);
}
}
}
return $build;
}
......
......@@ -141,6 +141,7 @@ class FacetsSummaryForm extends EntityForm {
'label' => $facet->getName(),
'separator' => ', ',
'show_count' => FALSE,
'weight' => 0,
];
}
$facets[$facet->id()]['name'] = $facet->getName();
......@@ -174,6 +175,7 @@ class FacetsSummaryForm extends EntityForm {
'#title' => $this->t('Weight for @title', ['@title' => $facet['name']]),
'#title_display' => 'invisible',
'#attributes' => ['class' => ['facets-order-weight']],
'#default_value' => $facet['weight'],
],
'#attributes' => ['class' => ['draggable']],
];
......
......@@ -26,6 +26,7 @@ class ProcessorPluginManager extends DefaultPluginManager {
*/
public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, TranslationInterface $translation) {
parent::__construct('Plugin/facets_summary/processor', $namespaces, $module_handler, ProcessorInterface::class, SummaryProcessor::class);
$this->alterInfo('facets_summary_processor_info');
$this->setCacheBackend($cache_backend, 'facets_summary_processors');
$this->setStringTranslation($translation);
}
......