Add fix for unconsistent translation options in news administration form

This commit is contained in:
Ivymaster
2026-09-28 19:01:26 +02:00
parent e7127ae624
commit 43d5068cda
2 changed files with 27 additions and 9 deletions
@@ -587,6 +587,17 @@ class NewsAdministrationAPI extends FHCAPI_Controller
}
}
$submittedLanguages = array_column($data['translations'], 'sprache');
$this->db->where('content_id', $existingNews->content_id);
$this->db->where_not_in('sprache', $submittedLanguages);
if ($this->db->delete('campus.tbl_contentsprache') === false)
{
$error = $this->db->error();
$this->db->trans_rollback();
$this->terminateWithError($error, self::ERROR_TYPE_DB);
}
foreach ($data['translations'] as $translation)
{
$translation['content'] = $this->formatContentURLsToRelative($translation['content']);
@@ -246,13 +246,13 @@ export default {
const remainingLanguages = Object.values(contentFormItems)
.map((item) => item.config?.language)
.filter(Boolean);
contentFormItems.addLanguage = {
...addLanguageTab,
config: {
hasAvailableLanguages: this.availableLanguages.some(
(availableLanguage) =>
!remainingLanguages.includes(availableLanguage.value),
),
languages: this.availableLanguages.filter(
(language) => !remainingLanguages.includes(language.value),
)
},
};
@@ -280,15 +280,18 @@ export default {
const addLanguageTab = this.contentFormItems.addLanguage;
const contentFormItems = { ...this.contentFormItems };
delete contentFormItems.addLanguage;
contentFormItems[key] = this.createContentFormItem(language);
const remainingLanguages = Object.values(contentFormItems)
.map((item) => item.config?.language)
.filter(Boolean);
contentFormItems.addLanguage = {
...addLanguageTab,
config: {
hasAvailableLanguages: this.availableLanguages.some(
(availableLanguage) =>
availableLanguage.value !== language &&
!this.visibleContentLanguages.includes(availableLanguage.value),
),
languages: this.availableLanguages.filter(
(language) => !remainingLanguages.includes(language.value),
)
},
};
this.contentFormItems = contentFormItems;
@@ -360,6 +363,10 @@ export default {
});
contentFormItems.addLanguage = this.createAddLanguageTab();
if (contentFormItems.addLanguage?.config) {
contentFormItems.addLanguage.config.languages = this.languagesToAdd;
}
this.contentFormItems = contentFormItems;
this.activeContentFormKey =
Object.keys(contentFormItems).find((key) => key !== 'addLanguage') ??