mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-10-12 15:04:04 +00:00
Add fix for unconsistent translation options in news administration form
This commit is contained in:
@@ -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') ??
|
||||
|
||||
Reference in New Issue
Block a user