diff --git a/crowdin.yml b/crowdin.yml index 818ddc187..114bcd3ff 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -69,4 +69,22 @@ files: [ "escape_special_characters": 0, "escape_quotes" : 0, }, + { + "source" : "/layout-webapp/src/main/resources/locale/portlet/Analytics_en.properties", + + "translation" : "%original_path%/%file_name%!_%locale_with_underscore%.%file_extension%", + "translation_replace" : { + "_en!": "","ar_SA": "ar","ar_OM": "aro","az_AZ": "az","ca_ES": "ca","ceb_PH": "ceb", + "co_FR": "co","cs_CZ": "cs","de_DE": "de","el_GR": "el","en_US": "en","es_ES": "es_ES","eu_ES": "eu","fa_IR": "fa", + "fi_FI": "fi","fil_PH": "fil","fr_FR": "fr","hi_IN": "hi","hu_HU": "hu","id_ID": "id","it_IT": "it","ja_JP": "ja", + "kab_KAB": "kab","ko_KR": "ko","lt_LT": "lt","ms_MY": "ms","nl_NL": "nl","no_NO": "no","pcm_NG": "pcm","pl_PL": "pl", + "pt_BR": "pt_BR","pt_PT": "pt_PT","ro_RO": "ro","ru_RU": "ru","sk_SK": "sk","sl_SI": "sl","sq_AL": "sq", + "sv_SE": "sv_SE","th_TH": "th","tl_PH": "tl","tr_TR": "tr","uk_UA": "uk","ur_IN": "ur_IN","vi_VN": "vi", + "zh_CN": "zh_CN","zh_TW": "zh_TW", + }, + "dest" : "add__ons/layout/portlet/Analytics.properties", + "update_option" : "update_as_unapproved", + "escape_special_characters": 0, + "escape_quotes" : 0, + }, ] \ No newline at end of file diff --git a/layout-webapp/src/main/resources/locale/portlet/Analytics_en.properties b/layout-webapp/src/main/resources/locale/portlet/Analytics_en.properties new file mode 100644 index 000000000..a8a372d30 --- /dev/null +++ b/layout-webapp/src/main/resources/locale/portlet/Analytics_en.properties @@ -0,0 +1,30 @@ +analytics.field.label.applicationName=Application Name + +analytics.field.label.pageTemplateId=Page Template Id +analytics.field.label.pageTemplateName=Page Template Name +analytics.field.label.pageTemplateCategory=Page Template Category +analytics.field.label.pageTemplateDisabled=Is Page Template Disabled +analytics.field.label.pageTemplateSystem=Is Page Template System +analytics.field.label.pageTemplateIllustrationId=Page Template illustration id +analytics.field.label.pageTemplatePage=Page Template originating page +analytics.field.label.pageReference=Page reference +analytics.field.label.siteName=Site name +analytics.field.label.siteType=Site type +analytics.field.label.pageType=Page type +analytics.field.label.pageName=Page name + +analytics.pageLayout=Page Layout +analytics.createPageLayout=Create Page Layout +analytics.createPageTemplate=Create Page Template +analytics.updatePageTemplate=Update Page Template +analytics.deletePageTemplate=Delete Page Template +analytics.enablePageTemplate=Enable Page Template +analytics.disablePageTemplate=Disable Page Template +analytics.siteNavigation=Site topbar navigation +analytics.siteManagement=Sites Management +analytics.pageTemplateManagement=Page Templates Management +analytics.pageLayoutEditor=Layout Editor + +analytics.customized=Customized +analytics.blank=Blank +analytics.analytics=Analytics \ No newline at end of file diff --git a/layout-webapp/src/main/webapp/vue-app/common-layout-components/components/site-navigation/SiteNavigationElementDrawer.vue b/layout-webapp/src/main/webapp/vue-app/common-layout-components/components/site-navigation/SiteNavigationElementDrawer.vue index 2f7b0cba6..e5777c582 100644 --- a/layout-webapp/src/main/webapp/vue-app/common-layout-components/components/site-navigation/SiteNavigationElementDrawer.vue +++ b/layout-webapp/src/main/webapp/vue-app/common-layout-components/components/site-navigation/SiteNavigationElementDrawer.vue @@ -247,7 +247,8 @@ export default { this.navigationNode.siteKey.name, this.navigationNode.siteKey.type, this.elementType, this.elementType === 'LINK' && this.link || null, - this.elementType === 'PAGE' && this.pageTemplate?.id || null) + this.elementType === 'PAGE' && this.pageTemplate?.id || null + ) .then((createdPage) => { const pageRef = createdPage?.key?.ref || `${createdPage?.key.site.typeName}::${createdPage?.key.site.name}::${createdPage?.pageContext?.key.name}`; this.$root.$emit('save-node-with-page', { @@ -257,6 +258,9 @@ export default { 'createdPage': createdPage, 'openEditLayout': this.elementType === 'PAGE', }); + return createdPage; + }).then(page => { + this.$root.$emit('page-layout-created', page, this.pageTemplate); }).catch(() => { this.$root.$emit('alert-message', this.$t('siteNavigation.label.pageCreation.error'), 'error'); }).finally(() => this.loading = false); diff --git a/layout-webapp/src/main/webapp/vue-app/common/components/LayoutAnalytics.vue b/layout-webapp/src/main/webapp/vue-app/common/components/LayoutAnalytics.vue new file mode 100644 index 000000000..d7c5312b0 --- /dev/null +++ b/layout-webapp/src/main/webapp/vue-app/common/components/LayoutAnalytics.vue @@ -0,0 +1,109 @@ + \ No newline at end of file diff --git a/layout-webapp/src/main/webapp/vue-app/common/initComponents.js b/layout-webapp/src/main/webapp/vue-app/common/initComponents.js new file mode 100644 index 000000000..aba8b87e3 --- /dev/null +++ b/layout-webapp/src/main/webapp/vue-app/common/initComponents.js @@ -0,0 +1,28 @@ +/* + * This file is part of the Meeds project (https://meeds.io/). + * + * Copyright (C) 2020 - 2024 Meeds Association contact@meeds.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import LayoutAnalytics from './components/LayoutAnalytics.vue'; + +const components = { + 'layout-analytics': LayoutAnalytics, +}; + +for (const key in components) { + Vue.component(key, components[key]); +} diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/LayoutEditor.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/LayoutEditor.vue index 4d73160d1..65dd5127e 100644 --- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/LayoutEditor.vue +++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/LayoutEditor.vue @@ -36,6 +36,8 @@ @modified="modified = true" /> +