Skip to content

Commit

Permalink
Merge branch 'release/10.0.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastianstein committed Jul 11, 2023
2 parents c1b5bef + 5561f78 commit 8b0a175
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 15 deletions.
2 changes: 1 addition & 1 deletion Classes/Hooks/PluginPreview.php
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ protected function initialize(array $row): void
$this->row = $row;

$this->settings = ExtensionUtility::getExtensionSettings('in2studyfinder');
$this->templatePathAndFile = $this->settings['backend']['pluginPreviewTemplate'] ?? [];
$this->templatePathAndFile = $this->settings['backend']['pluginPreviewTemplate'] ?? '';

$flexFormService = GeneralUtility::makeInstance(FlexFormService::class);
$this->flexFormData = $flexFormService->convertFlexFormContentToArray($this->row['pi_flexform']);
Expand Down
12 changes: 12 additions & 0 deletions Documentation/Migration/9to10.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Migration

only required if the Resources/Private/Partials/Pagination.html template is overwritten:

The pagination links require now the additional data attribute "data-target-page" with the target page.

Example for the previous link:
```html
<a href="{in2studyfinder:pagination.uri(arguments:'{currentPage:pagination.previousPageNumber}',name:name)}" title="previous" data-target-page="{pagination.previousPageNumber}" class="in2studyfinder__pagebrowser-page js-in2studyfinder-pagination-link js-in2studyfinder-pagination-previous">
&laquo;
</a>
```
36 changes: 27 additions & 9 deletions Resources/Private/JavaScript/Frontend/components/pagination.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
import {UrlUtility} from "../utility/urlUtility";
import {LoaderUtility} from "../utility/loaderUtility";

class Pagination {

constructor(studyfinderElement) {
this.identifier = {
container: '.js-in2studyfinder-pagebrowser',
container: '.in2studyfinder',
paginationContainer: '.js-in2studyfinder-pagebrowser',
paginationLink: '.js-in2studyfinder-pagination-link',
}

this.studyfinderElement = studyfinderElement;
this.paginationElement = studyfinderElement.querySelector(this.identifier.container);
this.paginationElement = studyfinderElement.querySelector(this.identifier.paginationContainer);
}

init() {
Expand All @@ -22,7 +24,7 @@ class Pagination {

update(studyfinderElement) {
this.studyfinderElement = studyfinderElement;
this.paginationElement = studyfinderElement.querySelector(this.identifier.container);
this.paginationElement = studyfinderElement.querySelector(this.identifier.paginationContainer);

this.paginationElement.querySelectorAll(this.identifier.paginationLink).forEach(function(item) {
item.addEventListener('click', function(event) {
Expand All @@ -38,18 +40,34 @@ class Pagination {

this.afterClick(event);

let targetPage = 1;
let targetPage = event.target.getAttribute('data-target-page');
let url = event.target.href;
let instanceId = this.studyfinderElement.getAttribute('data-in2studyfinder-instance-id');

if (UrlUtility.getParameterFromUrl(url, 'tx_in2studyfinder_pi1[studyCoursesForPage][currentPage]') !== '') {
targetPage = UrlUtility.getParameterFromUrl(url, 'tx_in2studyfinder_pi1[studyCoursesForPage][currentPage]');
}
UrlUtility.addOrUpdateHash('page', [targetPage]);

let ajaxCall = new Promise((resolve) => {
window.in2studyfinder.getInstance(instanceId).filter.call(targetPage);
resolve('done');
if (window.in2studyfinder.getInstance(instanceId).hasFilter) {
window.in2studyfinder.getInstance(instanceId).filter.call(targetPage);
} else {
LoaderUtility.enableLoader();

fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
}).then((response) => {
return response.text();
}).then((html) => {
let tempElement = document.createElement('div');
tempElement.innerHTML = html;
this.studyfinderElement.innerHTML = tempElement.querySelector(this.identifier.container).innerHTML;

LoaderUtility.disableLoader();
window.in2studyfinder.getInstance(instanceId).update(this.studyfinderElement);
});
}
});

ajaxCall.then((message) => {
Expand Down
6 changes: 3 additions & 3 deletions Resources/Private/Partials/Pagination.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<ul class="in2studyfinder__pagebrowser js-in2studyfinder-pagebrowser">
<f:if condition="{pagination.previousPageNumber} && {pagination.previousPageNumber} >= {pagination.firstPageNumber}">
<li class="previous">
<a href="{in2studyfinder:pagination.uri(arguments:'{currentPage:pagination.previousPageNumber}',name:name)}" title="previous" class="in2studyfinder__pagebrowser-page js-in2studyfinder-pagination-link js-in2studyfinder-pagination-previous">
<a href="{in2studyfinder:pagination.uri(arguments:'{currentPage:pagination.previousPageNumber}',name:name)}" title="previous" data-target-page="{pagination.previousPageNumber}" class="in2studyfinder__pagebrowser-page js-in2studyfinder-pagination-link js-in2studyfinder-pagination-previous">
&laquo;
</a>
</li>
Expand All @@ -20,7 +20,7 @@
</f:then>
<f:else>
<li>
<a href="{in2studyfinder:pagination.uri(arguments:'{currentPage:page}',name:name)}" class="in2studyfinder__pagebrowser-page js-in2studyfinder-pagination-link">{page}</a>
<a href="{in2studyfinder:pagination.uri(arguments:'{currentPage:page}',name:name)}" class="in2studyfinder__pagebrowser-page js-in2studyfinder-pagination-link" data-target-page="{page}">{page}</a>
</li>
</f:else>
</f:if>
Expand All @@ -30,7 +30,7 @@
</f:if>
<f:if condition="{pagination.nextPageNumber} && {pagination.nextPageNumber} <= {pagination.lastPageNumber}">
<li class="next">
<a href="{in2studyfinder:pagination.uri(arguments:'{currentPage:pagination.nextPageNumber}',name:name)}" title="next" class="in2studyfinder__pagebrowser-page js-in2studyfinder-pagination-link js-in2studyfinder-pagination-next">
<a href="{in2studyfinder:pagination.uri(arguments:'{currentPage:pagination.nextPageNumber}',name:name)}" title="next" data-target-page="{pagination.nextPageNumber}" class="in2studyfinder__pagebrowser-page js-in2studyfinder-pagination-link js-in2studyfinder-pagination-next">
&raquo;
</a>
</li>
Expand Down
2 changes: 1 addition & 1 deletion Resources/Public/JavaScript/main.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion ext_emconf.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
'author' => 'Sebastian Stein',
'author_email' => '[email protected]',
'state' => 'stable',
'version' => '9.0.4',
'version' => '10.0.0',
'constraints' => [
'depends' => [
'typo3' => '11.5.0-11.5.99',
Expand Down
2 changes: 2 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ ddev ssh
### Migration

[Migrations from version 8 to 9](./Documentation/Migration/8to9.md)
[Migrations from version 9 to 10](./Documentation/Migration/9to10.md)

### External used libraries

Expand All @@ -222,6 +223,7 @@ ddev ssh

| Version | Date | State | Description |
|---------|------------|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 10.0.0 | 2023-07-11 | [!!!]BUGFIX | prevent javascript exception while paginate if no filter is present in the current template |
| 9.0.4 | 2023-01-20 | BUGFIX | Minor bugfixes, for further information see: [Commits](https://github.com/in2code-de/in2studyfinder/commits/9.0.4) |
| 9.0.3 | 2023-01-09 | BUGFIX | Minor bugfixes, for further information see: [Commits](https://github.com/in2code-de/in2studyfinder/commits/9.0.3) |
| 9.0.2 | 2023-01-09 | BUGFIX | Minor bugfixes, for further information see: [Commits](https://github.com/in2code-de/in2studyfinder/commits/9.0.2) |
Expand Down

0 comments on commit 8b0a175

Please sign in to comment.