diff --git a/cms-templates/src/main/java/com/condation/cms/templates/CMSTemplateEngine.java b/cms-templates/src/main/java/com/condation/cms/templates/CMSTemplateEngine.java index e6d549986..84790e17b 100644 --- a/cms-templates/src/main/java/com/condation/cms/templates/CMSTemplateEngine.java +++ b/cms-templates/src/main/java/com/condation/cms/templates/CMSTemplateEngine.java @@ -30,6 +30,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.jexl3.JexlBuilder; import org.apache.commons.jexl3.JexlEngine; +import org.apache.commons.jexl3.JexlFeatures; @Slf4j public class CMSTemplateEngine { @@ -54,9 +55,14 @@ public CMSTemplateEngine(TemplateConfiguration configuration) { } private JexlEngine createJexlEngine() { + JexlFeatures features = new JexlFeatures() + .sideEffect(true) + .sideEffectGlobal(true); + JexlBuilder builder = new JexlBuilder(); builder + .features(features) .cache(configuration.getExpressionCacheSize()) .safe(configuration.isJexlSafeMode()) .strict(configuration.isJexlStrict()) diff --git a/cms-templates/src/main/java/com/condation/cms/templates/expression/CMSPermissions.java b/cms-templates/src/main/java/com/condation/cms/templates/expression/CMSPermissions.java index 02f49e951..031b4700d 100644 --- a/cms-templates/src/main/java/com/condation/cms/templates/expression/CMSPermissions.java +++ b/cms-templates/src/main/java/com/condation/cms/templates/expression/CMSPermissions.java @@ -29,6 +29,7 @@ public class CMSPermissions { public static JexlPermissions PERMISSIONS = JexlPermissions.parse( "# Restricted Uberspect Permissions", "com.condation.cms.*", + "com.google.gson.*", "java.nio.*", "java.io.*", "java.lang.*", diff --git a/modules/ui-module/src/main/java/com/condation/cms/modules/ui/extensionpoints/remotemethods/RemoteTaxonomyEnpoints.java b/modules/ui-module/src/main/java/com/condation/cms/modules/ui/extensionpoints/remotemethods/RemoteTaxonomyEnpoints.java new file mode 100644 index 000000000..00f2f2868 --- /dev/null +++ b/modules/ui-module/src/main/java/com/condation/cms/modules/ui/extensionpoints/remotemethods/RemoteTaxonomyEnpoints.java @@ -0,0 +1,75 @@ +package com.condation.cms.modules.ui.extensionpoints.remotemethods; + +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ +import com.condation.cms.api.auth.Permissions; +import com.condation.cms.api.db.DB; +import com.condation.cms.api.feature.features.DBFeature; +import com.condation.cms.api.ui.extensions.UIRemoteMethodExtensionPoint; +import com.condation.modules.api.annotation.Extension; +import java.util.HashMap; +import java.util.Map; +import lombok.extern.slf4j.Slf4j; +import com.condation.cms.api.ui.annotations.RemoteMethod; +import com.condation.cms.api.ui.rpc.RPCException; + +/** + * + * @author thorstenmarx + */ +@Slf4j +@Extension(UIRemoteMethodExtensionPoint.class) +public class RemoteTaxonomyEnpoints extends AbstractRemoteMethodeExtension { + + @RemoteMethod(name = "taxonomy.get", permissions = {Permissions.CONTENT_EDIT}) + public Object get(Map parameters) throws RPCException { + final DB db = getDB(parameters); + Map result = new HashMap<>(); + + db.getTaxonomies().all().forEach(tax -> { + result.put(tax.getSlug(), tax.getTitle()); + }); + + return result; + } + + @RemoteMethod(name = "taxonomy.values", permissions = {Permissions.CONTENT_EDIT}) + public Object remove(Map parameters) { + final DB db = getContext().get(DBFeature.class).db(); + + Map result = new HashMap<>(); + + var slug = (String) parameters.get("slug"); + + var taxonomy = db.getTaxonomies().forSlug(slug); + + taxonomy.ifPresent(tax -> { + tax.getValues().forEach((key, val) -> { + Map entry = new HashMap<>(); + entry.put("id", val.getId()); + entry.put("title", val.getTitle()); + result.put(key, entry); + }); + }); + + return result; + } +} diff --git a/modules/ui-module/src/main/resources/manager/actions/media/edit-focal-point.d.ts b/modules/ui-module/src/main/resources/manager/actions/media/edit-focal-point.d.ts index 85620d3ab..6dc2ed246 100644 --- a/modules/ui-module/src/main/resources/manager/actions/media/edit-focal-point.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/media/edit-focal-point.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export declare function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/media/edit-media-form.d.ts b/modules/ui-module/src/main/resources/manager/actions/media/edit-media-form.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/media/edit-media-form.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/media/edit-media-form.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/media/select-content-media.d.ts b/modules/ui-module/src/main/resources/manager/actions/media/select-content-media.d.ts index 85620d3ab..6dc2ed246 100644 --- a/modules/ui-module/src/main/resources/manager/actions/media/select-content-media.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/media/select-content-media.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export declare function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/media/select-media.d.ts b/modules/ui-module/src/main/resources/manager/actions/media/select-media.d.ts index 85620d3ab..6dc2ed246 100644 --- a/modules/ui-module/src/main/resources/manager/actions/media/select-media.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/media/select-media.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export declare function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/add-section.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/add-section.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/add-section.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/add-section.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/create-node.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/create-node.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/create-node.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/create-node.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/create-page.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/create-page.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/create-page.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/create-page.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/delete-section.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/delete-section.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/delete-section.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/delete-section.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/edit-content.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/edit-content.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/edit-content.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/edit-content.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/edit-metaattribute-form.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/edit-metaattribute-form.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/edit-metaattribute-form.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/edit-metaattribute-form.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/edit-metaattribute-list.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/edit-metaattribute-list.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/edit-metaattribute-list.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/edit-metaattribute-list.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/edit-metaattribute.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/edit-metaattribute.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/edit-metaattribute.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/edit-metaattribute.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/edit-page-settings.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/edit-page-settings.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/edit-page-settings.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/edit-page-settings.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/edit-sections.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/edit-sections.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/edit-sections.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/edit-sections.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/list-unpublished-pages.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/list-unpublished-pages.d.ts index 8052ef2c6..44d1f6c2a 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/list-unpublished-pages.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/list-unpublished-pages.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ interface ListUnpublishedPagesOptions { page?: number; } diff --git a/modules/ui-module/src/main/resources/manager/actions/page/manage-assets.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/manage-assets.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/manage-assets.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/manage-assets.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/section-set-published.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/section-set-published.d.ts index 85620d3ab..6dc2ed246 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/section-set-published.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/section-set-published.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export declare function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/page/translations.d.ts b/modules/ui-module/src/main/resources/manager/actions/page/translations.d.ts index 85620d3ab..6dc2ed246 100644 --- a/modules/ui-module/src/main/resources/manager/actions/page/translations.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/page/translations.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export declare function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/reload-preview.d.ts b/modules/ui-module/src/main/resources/manager/actions/reload-preview.d.ts index 85620d3ab..6dc2ed246 100644 --- a/modules/ui-module/src/main/resources/manager/actions/reload-preview.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/reload-preview.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export declare function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/site-change.d.ts b/modules/ui-module/src/main/resources/manager/actions/site-change.d.ts index ba8a4fff2..672d1f3de 100644 --- a/modules/ui-module/src/main/resources/manager/actions/site-change.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/site-change.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(parameters: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/actions/test-command.d.ts b/modules/ui-module/src/main/resources/manager/actions/test-command.d.ts index 6abc321a1..1dc39e464 100644 --- a/modules/ui-module/src/main/resources/manager/actions/test-command.d.ts +++ b/modules/ui-module/src/main/resources/manager/actions/test-command.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function runAction(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/index.html b/modules/ui-module/src/main/resources/manager/index.html index 6f17f32ea..e39b2d1ad 100644 --- a/modules/ui-module/src/main/resources/manager/index.html +++ b/modules/ui-module/src/main/resources/manager/index.html @@ -68,6 +68,12 @@ + + + diff --git a/modules/ui-module/src/main/resources/manager/js/manager-globals.d.ts b/modules/ui-module/src/main/resources/manager/js/manager-globals.d.ts index 255f59f32..7818ef73c 100644 --- a/modules/ui-module/src/main/resources/manager/js/manager-globals.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/manager-globals.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function executeScriptAction(action: any): Promise; export function executeHookAction(action: any): Promise; /** diff --git a/modules/ui-module/src/main/resources/manager/js/manager-inject-init.d.ts b/modules/ui-module/src/main/resources/manager/js/manager-inject-init.d.ts index de2be067b..5f66dedac 100644 --- a/modules/ui-module/src/main/resources/manager/js/manager-inject-init.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/manager-inject-init.d.ts @@ -1,2 +1,22 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function initIframe(): void; export function isSectionPublishedExpired(section: any): boolean; diff --git a/modules/ui-module/src/main/resources/manager/js/manager-inject.d.ts b/modules/ui-module/src/main/resources/manager/js/manager-inject.d.ts index e69de29bb..802d6a315 100644 --- a/modules/ui-module/src/main/resources/manager/js/manager-inject.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/manager-inject.d.ts @@ -0,0 +1,20 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ diff --git a/modules/ui-module/src/main/resources/manager/js/manager.d.ts b/modules/ui-module/src/main/resources/manager/js/manager.d.ts index cb0ff5c3b..4562057ed 100644 --- a/modules/ui-module/src/main/resources/manager/js/manager.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/manager.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export {}; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/alerts.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/alerts.d.ts index 629a61d8f..c25caa88d 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/alerts.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/alerts.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function alertSelect(options: any): Promise; export function alertError(options: any): void; export function alertConfirm(options: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/event-bus.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/event-bus.d.ts index d44295919..462f38dae 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/event-bus.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/event-bus.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export namespace EventBus { function on(event: any, handler: any): void; function emit(event: any, payload: any): void; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.actions.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.actions.d.ts index 7dc80374c..f8d509a6b 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.actions.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.actions.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function renameFileAction({ state, getTargetFolder, filename }: { state: any; getTargetFolder: any; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.create.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.create.d.ts index fb627bf7e..db898301c 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.create.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.create.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function openCreateContentBrowser(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.d.ts index 34d9f9cb9..0c529bf7f 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function openFileBrowser(optionsParam: any): Promise; export namespace state { let options: any; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.template.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.template.d.ts index 72c47da10..e21fdb20e 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.template.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/filebrowser/filebrowser.template.d.ts @@ -1,2 +1,22 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export { template as filebrowserTemplate }; declare const template: any; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.checkbox.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.checkbox.d.ts index d2a0c9280..a930d60c6 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.checkbox.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.checkbox.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface CheckboxOptions extends FieldOptions { key?: string; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.checkbox.js b/modules/ui-module/src/main/resources/manager/js/modules/form/field.checkbox.js index 3efa4721d..6bbe7a57b 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.checkbox.js +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.checkbox.js @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { createID } from "@cms/modules/form/utils.js"; const createCheckboxField = (options, value = []) => { const id = createID(); diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.code.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.code.d.ts index ada1f20f1..4118facce 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.code.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.code.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export namespace CodeField { export { createCodeField as markup }; export { init }; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.color.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.color.d.ts index cab0d2e87..0225e9768 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.color.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.color.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface ColorFieldOptions extends FieldOptions { } diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.date.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.date.d.ts index f07e3cc6e..e45cc358c 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.date.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.date.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface DateFieldOptions extends FieldOptions { placeholder?: string; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.datetime.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.datetime.d.ts index 272202696..13130d6a8 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.datetime.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.datetime.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface DateTimeFieldOptions extends FieldOptions { placeholder?: string; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.divider.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.divider.d.ts index f57944c90..d52208432 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.divider.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.divider.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface DividerOptions extends FieldOptions { } diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.easymde.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.easymde.d.ts index 9ac807575..8b94a8e15 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.easymde.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.easymde.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface EasyMDEFieldOptions extends FieldOptions { } diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.list.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.list.d.ts index 7bfcc69a9..eac48f3db 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.list.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.list.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface ListFieldOptions extends FieldOptions { options: { diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.mail.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.mail.d.ts index 36f178178..df6a6ab49 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.mail.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.mail.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface MailFieldOptions extends FieldOptions { placeholder?: string; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.markdown.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.markdown.d.ts index 32fc0b8bf..21c39aafe 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.markdown.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.markdown.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; declare global { interface HTMLInputElement { diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.media.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.media.d.ts index b359b73f0..1350f89f2 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.media.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.media.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface MediaFieldOptions extends FieldOptions { } diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.number.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.number.d.ts index c034ebbc7..50b700cb0 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.number.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.number.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface NumberFieldOptions extends FieldOptions { options: { diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.radio.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.radio.d.ts index a238a4826..344bb4fda 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.radio.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.radio.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface RadioFieldOptions extends FieldOptions { options?: { diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.range.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.range.d.ts index 47e6c847c..e57f403cf 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.range.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.range.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface RangeFieldOptions extends FieldOptions { options?: { diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.reference.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.reference.d.ts index 7f1b0b8c4..fc0de6ab4 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.reference.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.reference.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface ReferenceFieldOptions extends FieldOptions { options?: { diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.select.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.select.d.ts index c781deccb..5ae22bd43 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.select.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.select.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface SelectFieldOptions extends FieldOptions { options?: { diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.tags.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.tags.d.ts new file mode 100644 index 000000000..634fb842a --- /dev/null +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.tags.d.ts @@ -0,0 +1,27 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ +import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; +export interface TagsFieldOptions extends FieldOptions { + options?: { + taxonomy: string; + }; +} +export declare const TagsField: FormField; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.tags.js b/modules/ui-module/src/main/resources/manager/js/modules/form/field.tags.js new file mode 100644 index 000000000..ca61fd5a7 --- /dev/null +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.tags.js @@ -0,0 +1,94 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ +import { createID } from "@cms/modules/form/utils.js"; +import { i18n } from "@cms/modules/localization.js"; +import { getTaxonomyValues } from "@cms/modules/rpc/rpc-taxonomy.js"; +const createTagsField = (options, value = []) => { + const id = createID(); + const key = "field." + options.name; + const title = i18n.t(key, options.title); + const slug = options.options?.taxonomy || ''; + const valueArray = Array.isArray(value) ? value : (value ? [value] : []); + const selectedJson = JSON.stringify(valueArray); + return ` +
+ + +
+ `; +}; +const init = (context) => { + if (!context.formElement) { + return; + } + context.formElement.querySelectorAll("[data-cms-form-field-type='tags']").forEach(async (wrapper) => { + const slug = wrapper.dataset.taxonomySlug || ''; + const selectedRaw = wrapper.dataset.selectedValues || '[]'; + const selected = JSON.parse(selectedRaw); + const select = wrapper.querySelector('select'); + if (!select || !slug) { + return; + } + try { + const values = await getTaxonomyValues(slug); + values.forEach(val => { + const option = document.createElement('option'); + option.value = val.id; + option.text = val.title; + option.selected = selected.includes(val.id); + select.appendChild(option); + }); + if (typeof Tags !== 'undefined') { + Tags.init(`#${select.id}`); + } + else { + console.error('bootstrap5-tags not loaded — falling back to native multi-select'); + } + } + catch (e) { + console.error('Failed to load taxonomy values for slug:', slug, e); + const errorMsg = document.createElement('div'); + errorMsg.className = 'text-danger small mt-1'; + errorMsg.textContent = 'Could not load taxonomy values.'; + wrapper.appendChild(errorMsg); + } + }); +}; +const getData = (context) => { + const data = {}; + if (!context.formElement) { + return data; + } + context.formElement.querySelectorAll("[data-cms-form-field-type='tags'] select").forEach((el) => { + const select = el; + const values = Array.from(select.selectedOptions).map(opt => opt.value); + data[select.name] = { + type: 'tags', + value: values + }; + }); + return data; +}; +export const TagsField = { + markup: createTagsField, + init: init, + data: getData +}; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.text.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.text.d.ts index b406c7cf8..7a72faae8 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.text.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.text.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface TextFieldOptions extends FieldOptions { placeholder?: string; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/field.textarea.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/field.textarea.d.ts index f83d21361..4b4659e7b 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/field.textarea.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/field.textarea.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { FieldOptions, FormField } from "@cms/modules/form/forms.js"; export interface TextAreaFieldOptions extends FieldOptions { rows?: number; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/forms.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/forms.d.ts index a20eefd41..a162fe5d9 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/forms.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/forms.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ declare const createForm: (options: any) => Form; export { createForm }; export interface FormContext { diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/forms.js b/modules/ui-module/src/main/resources/manager/js/modules/form/forms.js index ea091c80c..b2e449408 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/forms.js +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/forms.js @@ -37,6 +37,7 @@ import { MediaField } from "@cms/modules/form/field.media.js"; import { ListField } from "@cms/modules/form/field.list.js"; import { TextAreaField } from "@cms/modules/form/field.textarea.js"; import { ReferenceField } from "@cms/modules/form/field.reference.js"; +import { TagsField } from "@cms/modules/form/field.tags.js"; const createForm = (options) => { const fields = options.fields || []; const values = options.values || {}; @@ -84,6 +85,8 @@ const createForm = (options) => { return TextAreaField.markup(field, val); case 'reference': return ReferenceField.markup(field, val); + case 'tags': + return TagsField.markup(field, val); default: return ''; } @@ -123,6 +126,7 @@ const createForm = (options) => { MediaField.init(context); ListField.init(context); ReferenceField.init(context); + TagsField.init(context); }; const getData = () => { if (!context.formElement) { @@ -146,7 +150,8 @@ const createForm = (options) => { ...MediaField.data(context), ...ListField.data(context), ...TextAreaField.data(context), - ...ReferenceField.data(context) + ...ReferenceField.data(context), + ...TagsField.data(context) }; return data; }; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/form/utils.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/form/utils.d.ts index 79c944de7..7d3d89dcb 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/form/utils.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/form/utils.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ declare const createID: () => string; declare const utcToLocalDateTimeInputValue: (utcString: string) => string; declare function getUTCDateTimeFromInput(inputElement: HTMLInputElement): string; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/frameMessenger.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/frameMessenger.d.ts index 1d74a5193..b50f99006 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/frameMessenger.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/frameMessenger.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ declare namespace _default { export { send }; export { on }; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/locale-utils.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/locale-utils.d.ts index 98374290b..aca04a87b 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/locale-utils.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/locale-utils.d.ts @@ -1,2 +1,22 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function getLocale(): any; export function setLocale(locale: any): void; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/localization-actions.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/localization-actions.d.ts index 43acad38a..6db9e8af0 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/localization-actions.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/localization-actions.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export namespace ACTION_LOCALIZATIONS { let en: {}; let de: { diff --git a/modules/ui-module/src/main/resources/manager/js/modules/localization-loader.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/localization-loader.d.ts index ea5b0a075..5cca57e0f 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/localization-loader.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/localization-loader.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function loadLocalizationsWithDefaults(): Promise<{ en: { "ui.filebrowser.filename": string; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/localization-modules.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/localization-modules.d.ts index 4a0c49e47..1061b15e9 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/localization-modules.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/localization-modules.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export namespace MODULE_LOCALIZATIONS { let en: {}; let de: { diff --git a/modules/ui-module/src/main/resources/manager/js/modules/localization.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/localization.d.ts index 0b22efabb..b1e393873 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/localization.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/localization.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function localizeUi(): Promise; export namespace i18n { let _locale: any; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/manager-ui.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/manager-ui.d.ts index d25e9cb32..247c12e7c 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/manager-ui.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/manager-ui.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function updateStateButton(): void; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/manager/manager.message.handlers.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/manager/manager.message.handlers.d.ts index dd88b9fe0..5b7c71b35 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/manager/manager.message.handlers.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/manager/manager.message.handlers.d.ts @@ -1,2 +1,22 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ declare const initMessageHandlers: () => void; export { initMessageHandlers }; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/manager/media.inject.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/manager/media.inject.d.ts index ebd61d27b..067619660 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/manager/media.inject.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/manager/media.inject.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export declare const initMediaUploadOverlay: (img: HTMLImageElement) => void; export declare const initContentMediaToolbar: (img: HTMLImageElement) => void; export declare const initMediaToolbar: (img: HTMLImageElement) => void; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/manager/toolbar-icons.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/manager/toolbar-icons.d.ts index 570269ca5..3ae76b89a 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/manager/toolbar-icons.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/manager/toolbar-icons.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export declare const EDIT_PAGE_ICON = "\n\n \n \n"; export declare const EDIT_ATTRIBUTES_ICON = "\n\n \n\n"; export declare const SECTION_SORT_ICON = "\n\n \n \n\n"; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/manager/toolbar.inject.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/manager/toolbar.inject.d.ts index 6e3a61bf4..8a082a5df 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/manager/toolbar.inject.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/manager/toolbar.inject.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export declare const initToolbar: (container: HTMLElement) => void; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.actions.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.actions.d.ts index 8d9d29343..688d73a00 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.actions.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.actions.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function renameMediaAction({ state, getTargetFolder, filename }: { state: any; getTargetFolder: any; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.create.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.create.d.ts index fb627bf7e..db898301c 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.create.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.create.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function openCreateContentBrowser(params: any): Promise; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.d.ts index 9d2fc70aa..f75edbb59 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function openMediaBrowser(optionsParam: any): Promise; export namespace state { let options: any; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.template.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.template.d.ts index 2c8ff55fe..2caff5efc 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.template.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.template.d.ts @@ -1,2 +1,22 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export { template as mediabrowserTemplate }; declare const template: any; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.upload.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.upload.d.ts index 5b1bd46d8..954f1b3fc 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.upload.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/media/mediabrowser.upload.d.ts @@ -1,2 +1,22 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function initDragAndDropUpload(): void; export function handleFileUpload(): Promise; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/modal.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/modal.d.ts index a6bc8574c..4f6c59a03 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/modal.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/modal.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function openModal(optionsParam: any): any; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/node.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/node.d.ts index ade17f827..81527fd56 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/node.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/node.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ /** * Retrieves a nested value from an object using a dot-notated path like "meta.title" * @param {object} sourceObj - The object to retrieve the value from diff --git a/modules/ui-module/src/main/resources/manager/js/modules/preview.history.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/preview.history.d.ts index 02a1aa102..520ce2957 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/preview.history.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/preview.history.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export namespace PreviewHistory { export { init }; export { navigatePreview }; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/preview.utils.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/preview.utils.d.ts index f2f167f34..e7c2a28ba 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/preview.utils.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/preview.utils.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function activatePreviewOverlay(): void; export function deActivatePreviewOverlay(): void; export function getPreviewUrl(): any; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-content.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-content.d.ts index 500f28b21..0df37da31 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-content.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-content.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ import { RPCResponse } from '@cms/modules/rpc/rpc.js'; declare const getContentNode: (options: any) => Promise; declare const getContent: (options: any) => Promise; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-files.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-files.d.ts index 19350eb0f..4b1d33075 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-files.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-files.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ declare const listFiles: (options: any) => Promise; declare const deleteFile: (options: any) => Promise; declare const deleteFolder: (options: any) => Promise; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-i18n.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-i18n.d.ts index 97184c7b3..e28dcc439 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-i18n.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-i18n.d.ts @@ -1,2 +1,22 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ declare const loadLocalizations: (options: any) => Promise; export { loadLocalizations }; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-manager.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-manager.d.ts index 09de5e435..e473c39fc 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-manager.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-manager.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ declare const getSectionEntryTemplates: (options: any) => Promise; declare const getPageTemplates: (options: any) => Promise; declare const getListItemTypes: (options: any) => Promise; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-media.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-media.d.ts index e333405cb..cdd474bef 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-media.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-media.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ declare const getMediaMetaData: (options: any) => Promise; declare const setMediaMetaData: (options: any) => Promise; declare const renameMedia: (options: any) => Promise; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-page.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-page.d.ts index 5e9c6f05a..617c1efe9 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-page.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-page.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export interface CreatePageOptions { uri: string; name: string; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-taxonomy.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-taxonomy.d.ts new file mode 100644 index 000000000..646050132 --- /dev/null +++ b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-taxonomy.d.ts @@ -0,0 +1,27 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ +export interface TaxonomyValue { + id: string; + title: string; +} +declare const getTaxonomies: () => Promise>; +declare const getTaxonomyValues: (slug: string) => Promise; +export { getTaxonomies, getTaxonomyValues }; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-taxonomy.js b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-taxonomy.js new file mode 100644 index 000000000..eb74f0622 --- /dev/null +++ b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-taxonomy.js @@ -0,0 +1,36 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ +import { executeRemoteCall } from '@cms/modules/rpc/rpc.js'; +const getTaxonomies = async () => { + const response = await executeRemoteCall({ + method: 'taxonomy.get', + parameters: {} + }); + return response.result || {}; +}; +const getTaxonomyValues = async (slug) => { + const response = await executeRemoteCall({ + method: 'taxonomy.values', + parameters: { slug } + }); + return Object.values(response.result || {}); +}; +export { getTaxonomies, getTaxonomyValues }; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-translation.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-translation.d.ts index 0f2b8e64a..dd3eb8c8e 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-translation.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc-translation.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export interface GetTranslationsOptions { uri: string; } diff --git a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc.d.ts index 121bc30e4..753fc6d82 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/rpc/rpc.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ interface Options { method: string; parameters?: any; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/sidebar.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/sidebar.d.ts index 268aae235..cdfd08d7f 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/sidebar.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/sidebar.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function openSidebar(options: any): void; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/state.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/state.d.ts index 7d224a238..80f03d1b9 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/state.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/state.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ declare class State { constructor(initialState?: {}); state: {}; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/toast.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/toast.d.ts index 0fcd8a129..f5a574c37 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/toast.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/toast.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function showToast(options: any): void; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/ui-state.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/ui-state.d.ts index cf3faa9ae..65018962d 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/ui-state.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/ui-state.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export namespace UIStateManager { function setTabState(key: any, value: any): void; function getTabState(key: any, defaultValue?: any): any; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/upload.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/upload.d.ts index 760c8f380..757755054 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/upload.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/upload.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function uploadFileWithProgress({ uploadEndpoint, file, uri, onProgress, onSuccess, onError }: { uploadEndpoint: any; file: any; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/utils.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/utils.d.ts index 73eff8a4d..366bf425d 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/utils.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/utils.d.ts @@ -1,2 +1,22 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export declare function getCSRFToken(): string | null; export declare function setCSRFToken(token: string): void; diff --git a/modules/ui-module/src/main/resources/manager/js/modules/wizard.d.ts b/modules/ui-module/src/main/resources/manager/js/modules/wizard.d.ts index 13b63e736..bb3a3b4b0 100644 --- a/modules/ui-module/src/main/resources/manager/js/modules/wizard.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/modules/wizard.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export function openWizard(optionsParam: any): { wizardId: string; modalInstance: any; diff --git a/modules/ui-module/src/main/resources/manager/js/ui-actions.d.ts b/modules/ui-module/src/main/resources/manager/js/ui-actions.d.ts index cb0ff5c3b..4562057ed 100644 --- a/modules/ui-module/src/main/resources/manager/js/ui-actions.d.ts +++ b/modules/ui-module/src/main/resources/manager/js/ui-actions.d.ts @@ -1 +1,21 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ export {}; diff --git a/modules/ui-module/src/main/resources/manager/public/manager-login.d.ts b/modules/ui-module/src/main/resources/manager/public/manager-login.d.ts index 5b5817d8a..ce810c5cb 100644 --- a/modules/ui-module/src/main/resources/manager/public/manager-login.d.ts +++ b/modules/ui-module/src/main/resources/manager/public/manager-login.d.ts @@ -1,3 +1,23 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ declare const ui: { state: string; }; diff --git a/modules/ui-module/src/main/ts/src/js/modules/form/field.tags.ts b/modules/ui-module/src/main/ts/src/js/modules/form/field.tags.ts new file mode 100644 index 000000000..d5a51584c --- /dev/null +++ b/modules/ui-module/src/main/ts/src/js/modules/form/field.tags.ts @@ -0,0 +1,113 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ +import { createID } from "@cms/modules/form/utils.js"; +import { i18n } from "@cms/modules/localization.js"; +import { FieldOptions, FormContext, FormField } from "@cms/modules/form/forms.js"; +import { getTaxonomyValues } from "@cms/modules/rpc/rpc-taxonomy.js"; + +declare const Tags: any; + +export interface TagsFieldOptions extends FieldOptions { + options?: { + taxonomy: string; + }; +} + +const createTagsField = (options: TagsFieldOptions, value: string | string[] = []): string => { + const id = createID(); + const key = "field." + options.name; + const title = i18n.t(key, options.title); + const slug = options.options?.taxonomy || ''; + const valueArray: string[] = Array.isArray(value) ? value : (value ? [value] : []); + const selectedJson = JSON.stringify(valueArray); + + return ` +
+ + +
+ `; +}; + +const init = (context: FormContext): void => { + if (!context.formElement) { + return; + } + + context.formElement.querySelectorAll("[data-cms-form-field-type='tags']").forEach(async (wrapper: Element) => { + const slug = (wrapper as HTMLElement).dataset.taxonomySlug || ''; + const selectedRaw = (wrapper as HTMLElement).dataset.selectedValues || '[]'; + const selected: string[] = JSON.parse(selectedRaw); + const select = wrapper.querySelector('select') as HTMLSelectElement; + + if (!select || !slug) { + return; + } + + try { + const values = await getTaxonomyValues(slug); + values.forEach(val => { + const option = document.createElement('option'); + option.value = val.id; + option.text = val.title; + option.selected = selected.includes(val.id); + select.appendChild(option); + }); + + if (typeof Tags !== 'undefined') { + Tags.init(`#${select.id}`); + } else { + console.error('bootstrap5-tags not loaded — falling back to native multi-select'); + } + } catch (e) { + console.error('Failed to load taxonomy values for slug:', slug, e); + const errorMsg = document.createElement('div'); + errorMsg.className = 'text-danger small mt-1'; + errorMsg.textContent = 'Could not load taxonomy values.'; + wrapper.appendChild(errorMsg); + } + }); +}; + +const getData = (context: FormContext): Record => { + const data: Record = {}; + + if (!context.formElement) { + return data; + } + + context.formElement.querySelectorAll("[data-cms-form-field-type='tags'] select").forEach((el: Element) => { + const select = el as HTMLSelectElement; + const values = Array.from(select.selectedOptions).map(opt => opt.value); + data[select.name] = { + type: 'tags', + value: values + }; + }); + + return data; +}; + +export const TagsField = { + markup: createTagsField, + init: init, + data: getData +} as FormField; diff --git a/modules/ui-module/src/main/ts/src/js/modules/form/forms.ts b/modules/ui-module/src/main/ts/src/js/modules/form/forms.ts index 7f1bbe532..c4709a4cf 100644 --- a/modules/ui-module/src/main/ts/src/js/modules/form/forms.ts +++ b/modules/ui-module/src/main/ts/src/js/modules/form/forms.ts @@ -37,6 +37,7 @@ import { MediaField } from "@cms/modules/form/field.media.js"; import { ListField } from "@cms/modules/form/field.list.js"; import { TextAreaField } from "@cms/modules/form/field.textarea.js"; import { ReferenceField } from "@cms/modules/form/field.reference.js"; +import { TagsField } from "@cms/modules/form/field.tags.js"; const createForm = (options : any) : Form => { @@ -88,6 +89,8 @@ const createForm = (options : any) : Form => { return TextAreaField.markup(field, val) case 'reference': return ReferenceField.markup(field, val) + case 'tags': + return TagsField.markup(field, val) default: return ''; } @@ -132,6 +135,7 @@ const createForm = (options : any) : Form => { MediaField.init(context) ListField.init(context) ReferenceField.init(context) + TagsField.init(context) }; const getData = () => { @@ -156,7 +160,8 @@ const createForm = (options : any) : Form => { ...MediaField.data(context), ...ListField.data(context), ...TextAreaField.data(context), - ...ReferenceField.data(context) + ...ReferenceField.data(context), + ...TagsField.data(context) }; return data }; diff --git a/modules/ui-module/src/main/ts/src/js/modules/rpc/rpc-taxonomy.ts b/modules/ui-module/src/main/ts/src/js/modules/rpc/rpc-taxonomy.ts new file mode 100644 index 000000000..2d765a76a --- /dev/null +++ b/modules/ui-module/src/main/ts/src/js/modules/rpc/rpc-taxonomy.ts @@ -0,0 +1,44 @@ +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ +import { executeRemoteCall } from '@cms/modules/rpc/rpc.js'; + +export interface TaxonomyValue { + id: string; + title: string; +} + +const getTaxonomies = async (): Promise> => { + const response = await executeRemoteCall({ + method: 'taxonomy.get', + parameters: {} + }); + return response.result || {}; +}; + +const getTaxonomyValues = async (slug: string): Promise => { + const response = await executeRemoteCall({ + method: 'taxonomy.values', + parameters: { slug } + }); + return Object.values(response.result || {}) as TaxonomyValue[]; +}; + +export { getTaxonomies, getTaxonomyValues }; diff --git a/modules/ui-module/src/test/java/com/condation/cms/modules/ui/extensionpoints/remotemethods/RemoteTaxonomyEnpointsTest.java b/modules/ui-module/src/test/java/com/condation/cms/modules/ui/extensionpoints/remotemethods/RemoteTaxonomyEnpointsTest.java new file mode 100644 index 000000000..fbf4310cb --- /dev/null +++ b/modules/ui-module/src/test/java/com/condation/cms/modules/ui/extensionpoints/remotemethods/RemoteTaxonomyEnpointsTest.java @@ -0,0 +1,126 @@ +package com.condation.cms.modules.ui.extensionpoints.remotemethods; + +/*- + * #%L + * UI Module + * %% + * Copyright (C) 2023 - 2026 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * #L% + */ + +import com.condation.cms.api.db.DB; +import com.condation.cms.api.db.taxonomy.Taxonomies; +import com.condation.cms.api.db.taxonomy.Taxonomy; +import com.condation.cms.api.db.taxonomy.Value; +import com.condation.cms.api.feature.features.DBFeature; +import com.condation.cms.api.module.SiteModuleContext; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.when; + +@ExtendWith(MockitoExtension.class) +public class RemoteTaxonomyEnpointsTest { + + @Mock + private SiteModuleContext moduleContext; + + @Mock + private DB db; + + @Mock + private Taxonomies taxonomies; + + private RemoteTaxonomyEnpoints endpoints; + + @BeforeEach + public void setUp() { + endpoints = new RemoteTaxonomyEnpoints(); + endpoints.setContext(moduleContext); + when(moduleContext.get(DBFeature.class)).thenReturn(new DBFeature(db)); + when(db.getTaxonomies()).thenReturn(taxonomies); + } + + @Test + public void testGet_returnsTaxonomySlugToTitleMap() throws Exception { + Taxonomy t1 = new Taxonomy("Categories", "categories", "category"); + Taxonomy t2 = new Taxonomy("Tags", "tags", "tag"); + when(taxonomies.all()).thenReturn(List.of(t1, t2)); + + Map params = new HashMap<>(); + @SuppressWarnings("unchecked") + Map result = (Map) endpoints.get(params); + + assertThat(result).containsEntry("categories", "Categories"); + assertThat(result).containsEntry("tags", "Tags"); + } + + @Test + public void testGet_emptyWhenNoTaxonomies() throws Exception { + when(taxonomies.all()).thenReturn(List.of()); + + Map params = new HashMap<>(); + @SuppressWarnings("unchecked") + Map result = (Map) endpoints.get(params); + + assertThat(result).isEmpty(); + } + + @Test + public void testValues_returnsIdAndTitleForEachValue() { + Map values = new HashMap<>(); + values.put("cat1", new Value("cat1", "Category One")); + values.put("cat2", new Value("cat2", "Category Two")); + + Taxonomy taxonomy = new Taxonomy("Categories", "categories", "category"); + taxonomy.setValues(values); + + when(taxonomies.forSlug("categories")).thenReturn(Optional.of(taxonomy)); + + Map params = new HashMap<>(); + params.put("slug", "categories"); + + @SuppressWarnings("unchecked") + Map result = (Map) endpoints.remove(params); + + assertThat(result).containsKey("cat1"); + @SuppressWarnings("unchecked") + Map entry = (Map) result.get("cat1"); + assertThat(entry).containsEntry("id", "cat1"); + assertThat(entry).containsEntry("title", "Category One"); + } + + @Test + public void testValues_emptyWhenSlugNotFound() { + when(taxonomies.forSlug("unknown")).thenReturn(Optional.empty()); + + Map params = new HashMap<>(); + params.put("slug", "unknown"); + + @SuppressWarnings("unchecked") + Map result = (Map) endpoints.remove(params); + + assertThat(result).isEmpty(); + } +} diff --git a/pom.xml b/pom.xml index c36dd9214..091c7cc89 100644 --- a/pom.xml +++ b/pom.xml @@ -150,7 +150,7 @@ org.apache.commons commons-jexl3 - 3.6.4 + 3.7.0 @@ -261,17 +261,17 @@ org.apache.logging.log4j log4j-api - 2.26.0 + 2.26.1 org.apache.logging.log4j log4j-core - 2.26.0 + 2.26.1 org.apache.logging.log4j log4j-slf4j2-impl - 2.26.0 + 2.26.1 diff --git a/test-server/hosts/demo/config/taxonomy.tags.yaml b/test-server/hosts/demo/config/taxonomy.tags.yaml new file mode 100644 index 000000000..49e5dca95 --- /dev/null +++ b/test-server/hosts/demo/config/taxonomy.tags.yaml @@ -0,0 +1,11 @@ +## YAML Template. +--- +values: + - id: schuhe + title: Schuhe + - id: kinderkleidung + title: Kinderkleidung + - id: kleidung + title: Kleidung + - id: hoodies_sweatshirts + title: Hoodies & Sweatshirts \ No newline at end of file diff --git a/test-server/hosts/demo/config/taxonomy.yaml b/test-server/hosts/demo/config/taxonomy.yaml index d16038d18..96ca68210 100644 --- a/test-server/hosts/demo/config/taxonomy.yaml +++ b/test-server/hosts/demo/config/taxonomy.yaml @@ -8,4 +8,8 @@ taxonomies: - title: Produkte slug: produkte field: taxonomy.products + array: true + - title: Tags + slug: tags + field: taxonomy.tags array: true \ No newline at end of file diff --git a/test-server/hosts/demo/content/index.md b/test-server/hosts/demo/content/index.md index 3aa94b4e4..6624da296 100644 --- a/test-server/hosts/demo/content/index.md +++ b/test-server/hosts/demo/content/index.md @@ -30,6 +30,11 @@ seo: linked_page: about translations: de: / +taxonomy: + tags: + - kleidung + - hoodies_sweatshirts + - kinderkleidung --- # Demo Project @@ -66,4 +71,4 @@ System.out.println("Hello world!"); ### example from module -[[ext:example /]] \ No newline at end of file +[[ext:example /]] diff --git a/test-server/themes/demo/extensions/theme.manager.js b/test-server/themes/demo/extensions/theme.manager.js index 5dcc0cda6..b97e9c482 100644 --- a/test-server/themes/demo/extensions/theme.manager.js +++ b/test-server/themes/demo/extensions/theme.manager.js @@ -105,6 +105,14 @@ $hooks.registerFilter("manager/contentTypes/register", (contentTypes) => { name: "object.values", title: "Objekt-Liste", type: "list" + }, + { + name: "taxonomy.tags", + title: "Tags", + type: "tags", + options: { + taxonomy: "tags" + } } ] },