Skip to content

Commit 55ff31e

Browse files
dkd-lehnebachdkd-kaehm
authored andcommitted
[!!!][TASK] Remove jQuery dependency from frontend JavaScript
Replace jQuery and jQuery UI with vanilla JavaScript and autoComplete.js: - Remove all jQuery files (jquery, jquery-ui, jquery.URI, jquery.autocomplete, i18n datepickers) - Remove jQuery UI CSS (jquery-ui.custom.css) - Rewrite search_controller.js, suggest_controller.js, facet_options_controller.js, facet_daterange_controller.js, facet_numericrange_controller.js in vanilla JS - Add autoComplete.js library for suggest/autocomplete feature - Add daterange.css and numericrange.css to replace jQuery UI styles - Update TypoScript examples to drop jQuery asset includes - Update Fluid templates with data attributes for validation messages - Update static template titles and documentation to remove jQuery references - Add date range validation translation keys - Fix backend progress bar display in IndexQueueModule (Bootstrap d-flex) - Deactivate browser autocomplete (In search field partial) Fixes: #4082, #4000, #2708, #2832, #4615
1 parent c7cce3f commit 55ff31e

44 files changed

Lines changed: 1220 additions & 1087 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Classes/Domain/Search/ResultSet/Facets/RangeBased/AbstractRangeFacetItem.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,16 @@ public function __construct(
4343
);
4444
}
4545

46+
protected string $rawUrlValue = '';
47+
48+
public function setRawUrlValue(string $rawUrlValue): void
49+
{
50+
$this->rawUrlValue = $rawUrlValue;
51+
}
52+
4653
public function getUriValue(): string
4754
{
48-
return $this->getRangeString();
55+
return $this->rawUrlValue !== '' ? $this->rawUrlValue : $this->getRangeString();
4956
}
5057

5158
public function getCollectionKey(): string

Classes/Domain/Search/ResultSet/Facets/RangeBased/AbstractRangeFacetParser.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ protected function getParsedFacet(
112112
$rangeCounts,
113113
true,
114114
);
115+
if (isset($activeValue[0])) {
116+
$range->setRawUrlValue($activeValue[0]);
117+
}
115118
$facet->setRange($range);
116119
}
117120

Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeUrlDecoder.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\FacetUrlDecoderInterface;
2121
use ApacheSolrForTypo3\Solr\System\DateTime\FormatService;
22+
use DateTime;
2223
use TYPO3\CMS\Core\Utility\GeneralUtility;
2324

2425
/**
@@ -47,13 +48,16 @@ public function decode(string $value, array $configuration = []): string
4748
$formatService = GeneralUtility::makeInstance(FormatService::class);
4849
$fromPart = '*';
4950
if ($dateRangeStart !== '') {
50-
$fromPart = $formatService->timestampToIso(strtotime($dateRangeStart));
51+
$date = DateTime::createFromFormat('Ymd', substr($dateRangeStart, 0, 8));
52+
$date->setTime(0, 0, 0);
53+
$fromPart = $formatService->timestampToIso($date->getTimestamp());
5154
}
5255

5356
$toPart = '*';
5457
if ($dateRangeEnd !== '') {
55-
$dateRangeEnd .= '59'; // adding 59 seconds
56-
$toPart = $formatService->timestampToIso(strtotime($dateRangeEnd));
58+
$date = DateTime::createFromFormat('Ymd', substr($dateRangeEnd, 0, 8));
59+
$date->setTime(23, 59, 59);
60+
$toPart = $formatService->timestampToIso($date->getTimestamp());
5761
}
5862

5963
return '[' . $fromPart . ' TO ' . $toPart . ']';

Configuration/TCA/Overrides/sys_template.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
ExtensionManagementUtility::addStaticFile(
6868
'solr',
6969
'Configuration/TypoScript/Examples/Suggest/',
70-
'Search - (Example) Suggest/autocomplete with jquery',
70+
'Search - (Example) Suggest/autocomplete',
7171
);
7272

7373
ExtensionManagementUtility::addStaticFile(
@@ -108,17 +108,17 @@
108108
ExtensionManagementUtility::addStaticFile(
109109
'solr',
110110
'Configuration/TypoScript/Examples/Facets/DateRange/',
111-
'Search - (Example) DateRange facet with jquery ui datepicker on created field',
111+
'Search - (Example) DateRange facet with datepicker on created field',
112112
);
113113
ExtensionManagementUtility::addStaticFile(
114114
'solr',
115115
'Configuration/TypoScript/Examples/Facets/NumericRange/',
116-
'Search - (Example) NumericRange facet with jquery ui slider on pid field',
116+
'Search - (Example) NumericRange facet with slider on pid field',
117117
);
118118
ExtensionManagementUtility::addStaticFile(
119119
'solr',
120120
'Configuration/TypoScript/Examples/Ajaxify/',
121-
'Search - Ajaxify the search results with jQuery',
121+
'Search - Ajaxify the search results',
122122
);
123123

124124
// Solr Fluid Grouping Examples

Configuration/TypoScript/Examples/Ajaxify/setup.typoscript

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,5 @@ tx_solr_ajaxPage {
3232
}
3333

3434
page.includeJSFooterlibs {
35-
solr-jquery = EXT:solr/Resources/Public/JavaScript/JQuery/jquery.min.js
36-
solr-uri-jquery = EXT:solr/Resources/Public/JavaScript/JQuery/jquery.URI.min.js
3735
solr-ajaxify = EXT:solr/Resources/Public/JavaScript/search_controller.js
3836
}

Configuration/TypoScript/Examples/Facets/DateRange/setup.typoscript

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,9 @@ plugin.tx_solr.search.faceting.facets {
1818
}
1919
# Load js files
2020
page.includeJSFooterlibs {
21-
solr-jquery = EXT:solr/Resources/Public/JavaScript/JQuery/jquery.min.js
22-
solr-ui = EXT:solr/Resources/Public/JavaScript/JQuery/jquery-ui.min.js
2321
solr-daterange = EXT:solr/Resources/Public/JavaScript/facet_daterange_controller.js
2422
}
2523

2624
page.includeCSS {
27-
solr-ui = EXT:solr/Resources/Public/Css/JQueryUi/jquery-ui.custom.css
25+
solr-daterange = EXT:solr/Resources/Public/StyleSheets/Frontend/daterange.css
2826
}

Configuration/TypoScript/Examples/Facets/NumericRange/setup.typoscript

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,9 @@ plugin.tx_solr.search.faceting.facets {
1515
}
1616
# Load js files
1717
page.includeJSFooterlibs {
18-
solr-jquery = EXT:solr/Resources/Public/JavaScript/JQuery/jquery.min.js
19-
solr-ui = EXT:solr/Resources/Public/JavaScript/JQuery/jquery-ui.min.js
2018
solr-numericrange = EXT:solr/Resources/Public/JavaScript/facet_numericrange_controller.js
2119
}
2220

2321
page.includeCSS {
24-
solr-ui = EXT:solr/Resources/Public/Css/JQueryUi/jquery-ui.custom.css
22+
solr-numericrange = EXT:solr/Resources/Public/StyleSheets/Frontend/numericrange.css
2523
}

Configuration/TypoScript/Examples/Facets/Options/setup.typoscript

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,5 @@ plugin.tx_solr.search.faceting.facets {
77
}
88

99
page.includeJSFooterlibs {
10-
solr-jquery = EXT:solr/Resources/Public/JavaScript/JQuery/jquery.min.js
1110
solr-options = EXT:solr/Resources/Public/JavaScript/facet_options_controller.js
12-
}
11+
}

Configuration/TypoScript/Examples/Facets/OptionsFiltered/setup.typoscript

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,5 @@ plugin.tx_solr.search.faceting.facets {
88
}
99

1010
page.includeJSFooterlibs {
11-
solr-jquery = EXT:solr/Resources/Public/JavaScript/JQuery/jquery.min.js
1211
solr-options = EXT:solr/Resources/Public/JavaScript/facet_options_controller.js
13-
}
12+
}

Configuration/TypoScript/Examples/Facets/OptionsPrefixGrouped/setup.typoscript

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,5 @@ plugin.tx_solr.search.faceting.facets {
88
}
99

1010
page.includeJSFooterlibs {
11-
solr-jquery = EXT:solr/Resources/Public/JavaScript/JQuery/jquery.min.js
1211
solr-options = EXT:solr/Resources/Public/JavaScript/facet_options_controller.js
13-
}
12+
}

0 commit comments

Comments
 (0)