diff --git a/Build/Sources/TypeScript/install/module/maintenance/language-packs.ts b/Build/Sources/TypeScript/install/module/maintenance/language-packs.ts index c3caddcdc8d9..8f60c0b1b5f6 100644 --- a/Build/Sources/TypeScript/install/module/maintenance/language-packs.ts +++ b/Build/Sources/TypeScript/install/module/maintenance/language-packs.ts @@ -328,41 +328,49 @@ class LanguagePacks extends AbstractInteractableModule { const activateIcon = this.findInModal(this.selectorActivateLanguageIcon).html(); const deactivateIcon = this.findInModal(this.selectorDeactivateLanguageIcon).html(); const updateIcon = this.findInModal(this.selectorLanguageUpdateIcon).html(); + const configurationIsWritable = this.getModuleContent().data('configuration-is-writable'); const $markupContainer = $('
'); const $tbody = $(''); data.languages.forEach((language: any): void => { + const availableMatrixActions = []; const active = language.active; + if (configurationIsWritable) { + availableMatrixActions.push($('', { + 'class': 'btn btn-default t3js-languagePacks-deactivateLanguage', + 'data-iso': language.iso, + 'title': 'Deactivate', + }).append(deactivateIcon)); + } + availableMatrixActions.push($('', { + 'class': 'btn btn-default t3js-languagePacks-update', + 'data-iso': language.iso, + 'title': 'Download language packs', + }).append(updateIcon)); const $tr = $(''); if (active) { $tbody.append( $tr.append( $('').text(' ' + language.name).prepend( $('
', { class: 'btn-group' }).append( - $('', { - 'class': 'btn btn-default t3js-languagePacks-deactivateLanguage', - 'data-iso': language.iso, - 'title': 'Deactivate', - }).append(deactivateIcon), - $('', { - 'class': 'btn btn-default t3js-languagePacks-update', - 'data-iso': language.iso, - 'title': 'Download language packs', - }).append(updateIcon), + availableMatrixActions ), ), ), ); } else { + if (configurationIsWritable) { + availableMatrixActions.push($('', { + 'class': 'btn btn-default t3js-languagePacks-activateLanguage', + 'data-iso': language.iso, + 'title': 'Activate', + }).append(activateIcon)); + } $tbody.append( $tr.addClass('t3-languagePacks-inactive t3js-languagePacks-inactive').css({ 'display': 'none' }).append( $('').text(' ' + language.name).prepend( $('
', { class: 'btn-group' }).append( - $('', { - 'class': 'btn btn-default t3js-languagePacks-activateLanguage', - 'data-iso': language.iso, - 'title': 'Activate', - }).append(activateIcon), + availableMatrixActions ), ), ), @@ -376,6 +384,24 @@ class LanguagePacks extends AbstractInteractableModule { ); $tbody.append($tr); }); + const globalActions = []; + if (configurationIsWritable) { + globalActions.push($('