Skip to content
Snippets Groups Projects
Commit 2793a902 authored by Georg Ringer's avatar Georg Ringer Committed by Benni Mack
Browse files

[BUGFIX] Always show download icons in language pack module

The Install Tool module "Manage Language Packs" is improved by the
following changes:

* If all language packs of an extension are available, the download icon
is still shown to make downloads of a single language pack per extension
possible.
* The icon itself changed from refresh to download as there is no
refresh possible. There is no lock on a specific date or version to
reload language packs. Every download can contain new or changed
translations.

Resolves: #86535
Releases: master, 9.5
Change-Id: I130c169b933b6e4b13c533928a46984bcb93979e
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64003


Tested-by: default avatarTYPO3com <noreply@typo3.com>
Tested-by: default avatarJosef Glatz <josefglatz@gmail.com>
Tested-by: default avatarOliver Bartsch <bo@cedev.de>
Tested-by: default avatarBenni Mack <benni@typo3.org>
Reviewed-by: default avatarJosef Glatz <josefglatz@gmail.com>
Reviewed-by: default avatarOliver Bartsch <bo@cedev.de>
Reviewed-by: default avatarBenni Mack <benni@typo3.org>
parent e60840c7
Branches
Tags
No related merge requests found
...@@ -38,7 +38,6 @@ class LanguagePacks extends AbstractInteractableModule { ...@@ -38,7 +38,6 @@ class LanguagePacks extends AbstractInteractableModule {
private selectorDeactivateLanguageIcon: string = '#t3js-languagePacks-deactivate-icon'; private selectorDeactivateLanguageIcon: string = '#t3js-languagePacks-deactivate-icon';
private selectorUpdate: string = '.t3js-languagePacks-update'; private selectorUpdate: string = '.t3js-languagePacks-update';
private selectorLanguageUpdateIcon: string = '#t3js-languagePacks-languageUpdate-icon'; private selectorLanguageUpdateIcon: string = '#t3js-languagePacks-languageUpdate-icon';
private selectorExtensionPackMissesIcon: string = '#t3js-languagePacks-extensionPack-misses-icon';
private selectorNotifications: string = '.t3js-languagePacks-notifications'; private selectorNotifications: string = '.t3js-languagePacks-notifications';
private activeLanguages: Array<any> = []; private activeLanguages: Array<any> = [];
...@@ -413,11 +412,9 @@ class LanguagePacks extends AbstractInteractableModule { ...@@ -413,11 +412,9 @@ class LanguagePacks extends AbstractInteractableModule {
private extensionMatrixHtml(data: any): any { private extensionMatrixHtml(data: any): any {
const securityUtility = new SecurityUtility(); const securityUtility = new SecurityUtility();
const packMissesIcon: string = this.findInModal(this.selectorExtensionPackMissesIcon).html();
const updateIcon: string = this.findInModal(this.selectorLanguageUpdateIcon).html(); const updateIcon: string = this.findInModal(this.selectorLanguageUpdateIcon).html();
let tooltip: string = ''; let tooltip: string = '';
let extensionTitle: JQuery; let extensionTitle: JQuery;
let allPackagesExist: boolean = true;
let rowCount: number = 0; let rowCount: number = 0;
const $markupContainer: JQuery = $('<div>'); const $markupContainer: JQuery = $('<div>');
...@@ -444,15 +441,6 @@ class LanguagePacks extends AbstractInteractableModule { ...@@ -444,15 +441,6 @@ class LanguagePacks extends AbstractInteractableModule {
const $tbody = $('<tbody>'); const $tbody = $('<tbody>');
data.extensions.forEach((extension: any): void => { data.extensions.forEach((extension: any): void => {
allPackagesExist = true;
extension.packs.forEach((pack: any): void => {
if (pack.exists === false) {
allPackagesExist = false;
}
});
if (allPackagesExist === true) {
return;
}
rowCount++; rowCount++;
if (extension.icon !== '') { if (extension.icon !== '') {
extensionTitle = $('<span>').append( extensionTitle = $('<span>').append(
...@@ -480,16 +468,22 @@ class LanguagePacks extends AbstractInteractableModule { ...@@ -480,16 +468,22 @@ class LanguagePacks extends AbstractInteractableModule {
} else { } else {
tooltip = 'Language pack not downloaded. Click to download'; tooltip = 'Language pack not downloaded. Click to download';
} }
$column.append( } else {
$('<a>', { if (pack.lastUpdate === null) {
'class': 'btn btn-default t3js-languagePacks-update', tooltip = 'Downloaded. Click to renew';
'data-extension': extension.key, } else {
'data-iso': pack.iso, tooltip = 'Language pack downloaded at ' + pack.lastUpdate + '. Click to renew';
'data-toggle': 'tooltip', }
'title': securityUtility.encodeHtml(tooltip),
}).append(packMissesIcon),
);
} }
$column.append(
$('<a>', {
'class': 'btn btn-default t3js-languagePacks-update',
'data-extension': extension.key,
'data-iso': pack.iso,
'data-toggle': 'tooltip',
'title': securityUtility.encodeHtml(tooltip),
}).append(updateIcon),
);
}); });
$tbody.append($tr); $tbody.append($tr);
}); });
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div style="display:none;"> <div style="display:none;">
<div id="t3js-languagePacks-activate-icon"><core:icon identifier="actions-add" /></div> <div id="t3js-languagePacks-activate-icon"><core:icon identifier="actions-add" /></div>
<div id="t3js-languagePacks-deactivate-icon"><core:icon identifier="actions-remove" /></div> <div id="t3js-languagePacks-deactivate-icon"><core:icon identifier="actions-remove" /></div>
<div id="t3js-languagePacks-languageUpdate-icon"><core:icon identifier="actions-system-refresh" /></div> <div id="t3js-languagePacks-languageUpdate-icon"><core:icon identifier="actions-download" /></div>
<div id="t3js-languagePacks-extensionPack-misses-icon"><core:icon identifier="actions-add" /></div> <div id="t3js-languagePacks-extensionPack-misses-icon"><core:icon identifier="actions-add" /></div>
</div> </div>
<div <div
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment