-
-
-
- {{ icon }}
-
-
-
-
-
-
-
-
-
- {{ navigationNode.label }}
-
-
- {{ navigationNode.label }}
-
-
-
-
- {{ navigationNodeUri }}
-
-
- {{ navigationNodeUri }}
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ icon }}
+
+
+
+
+
+
+
+
+
+ {{ navigationNode.label }}
+
+
+ {{ navigationNode.label }}
+
+
+
+
+ {{ navigationNodeUri }}
+
+
+ {{ navigationNodeUri }}
+
+
+
+
+
+
+
+
+
@@ -96,12 +97,12 @@
+ v-on="on">
{{ visibilityIcon.icon }}
@@ -112,12 +113,12 @@
+ v-on="on">
{{ accessIcon.icon }}
@@ -129,192 +130,192 @@
+ :hide-children="hideChildren"
+ :navigation-node="child" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/NodeItemMenu.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/NodeItemMenu.vue
index 3abf53921..d37183a3f 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/NodeItemMenu.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/NodeItemMenu.vue
@@ -19,18 +19,18 @@
+ offset-y
+ :right="!$vuetify.rtl"
+ transition="slide-x-reverse-transition">
- fas fa-ellipsis-v
+ fas fa-ellipsis-v
@@ -39,8 +39,8 @@
@click="$root.$emit('open-site-navigation-add-node-drawer', navigationNode)">
+ class="pe-1"
+ size="16">
fas fa-plus
@@ -53,8 +53,8 @@
+ class="pe-1"
+ size="16">
fas fa-link
@@ -68,8 +68,8 @@
@click="editLayout">
+ class="pe-1"
+ size="16">
fas fa-table
@@ -81,8 +81,8 @@
@click="$root.$emit('open-site-navigation-edit-node-drawer', navigationNode)">
+ class="pe-1"
+ size="16">
fas fa-edit
@@ -95,8 +95,8 @@
@click="cutNode">
+ class="pe-1"
+ size="16">
fas fa-cut
@@ -108,8 +108,8 @@
@click="copyNode">
+ class="pe-1"
+ size="16">
fas fa-copy
@@ -122,8 +122,8 @@
@click="pasteNode">
+ class="pe-1"
+ size="16">
fas fa-paste
@@ -136,8 +136,8 @@
@click="moveUpNode()">
+ class="pe-1"
+ size="21">
mdi-mouse-move-up
@@ -150,8 +150,8 @@
@click="moveDownNode()">
+ class="pe-1"
+ size="21">
mdi-mouse-move-down
@@ -164,8 +164,8 @@
@click="openManagePermissionsDrawer">
+ class="pe-1"
+ size="16">
fas fa-shield-alt
@@ -186,10 +186,10 @@
}">
+ width="50">
fas fa-trash
@@ -207,207 +207,207 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/NodesList.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/NodesList.vue
index 454a0c3a5..c13079f04 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/NodesList.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/NodesList.vue
@@ -20,18 +20,18 @@
-
+ :loading="loading">
+
@@ -40,111 +40,111 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationDrawer.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationDrawer.vue
index 8339a9487..dd67560e3 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationDrawer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationDrawer.vue
@@ -21,9 +21,9 @@
id="siteNavigationDrawer"
ref="drawer"
v-model="drawer"
- :right="!$vuetify.rtl"
- eager
allow-expand
+ eager
+ :right="!$vuetify.rtl"
@closed="close">
{{ $t('siteNavigation.drawer.title') }}
@@ -33,8 +33,8 @@
+ outlined
+ type="info">
@@ -47,8 +47,8 @@
+ icon
+ target="_blank">
fa-edit
@@ -58,25 +58,25 @@
+ dense
+ flat>
+ class="font-weight-bold text-truncate"
+ :title="siteName">
{{ label }}
+ class="btn btn-primary ms-2"
+ @click="createNode">
{{ $t('siteNavigation.label.btn.createNode') }}
+ :navigation-nodes="navigationNodesToDisplay" />
@@ -105,142 +105,142 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationElementDrawer.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationElementDrawer.vue
index 14f9966b2..96eda860f 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationElementDrawer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationElementDrawer.vue
@@ -18,20 +18,20 @@
-->
fas fa-arrow-left
@@ -47,18 +47,18 @@
-
+
{{ $t('siteNavigation.label.btn.cancel') }}
{{ $t('siteNavigation.label.btn.save') }}
@@ -67,101 +67,101 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationExistingPageElement.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationExistingPageElement.vue
index a41628226..abd0940c5 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationExistingPageElement.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationExistingPageElement.vue
@@ -33,39 +33,39 @@
:all-sites="allSites"
:class="!allSites && 'mb-8'" />
+ :page="selectedPage"
+ :site-name="selectedSiteNavigation?.name"
+ :site-type="selectedSiteNavigation?.siteType" />
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNewPageElement.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNewPageElement.vue
index f8584e36f..f034e1f80 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNewPageElement.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNewPageElement.vue
@@ -22,62 +22,62 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNewPageElementItem.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNewPageElementItem.vue
index 0ad19b096..cb2ba7a88 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNewPageElementItem.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNewPageElementItem.vue
@@ -22,22 +22,22 @@
+ :style="containerStyle">
+ class="overflow-hidden"
+ :style="imageContainerStyle">
+ class="align-center mx-auto object-fit-cover"
+ :src="illustrationSrc"
+ :style="imageStyle">
{{ $t('siteNavigation.label.use') }}
{{ $t('siteNavigation.label.templatePreview') }}
@@ -73,74 +73,74 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNewPageElementItemsList.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNewPageElementItemsList.vue
index fab598c18..1cdfa61b4 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNewPageElementItemsList.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNewPageElementItemsList.vue
@@ -24,8 +24,8 @@
v-if="seeMore"
:aria-label="$t('siteNavigation.label.seeMore')"
color="primary"
- text
plain
+ text
@click="displayItems(maxItemsToDisplay+8)">
{{ $t('siteNavigation.label.seeMore') }}
@@ -34,93 +34,93 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNodeDrawer.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNodeDrawer.vue
index 844ff5277..ef139f8c6 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNodeDrawer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationNodeDrawer.vue
@@ -22,12 +22,12 @@
id="siteNavigationAddNodeDrawer"
ref="siteNavigationAddNodeDrawer"
v-model="drawer"
- :loading="loading"
- go-back-button
allow-expand
+ go-back-button
+ :loading="loading"
right
- @expand-updated="expanded = $event"
- @closed="close">
+ @closed="close"
+ @expand-updated="expanded = $event">
{{ title }}
@@ -42,14 +42,14 @@
+ :placeholder="$t('siteNavigation.label.nodeId.placeholder')"
+ required="required"
+ :rules="nodeIdRules"
+ type="text" />
@@ -113,9 +113,9 @@
+ true-value="SAME_TAB" />
+ :placeholder="$t('siteNavigation.label.enterUrl') "
+ required
+ :rules="linkRules"
+ type="text" />
{{ $t('siteNavigation.label.openSameTab') }}
+ true-value="SAME_TAB" />
+ class="icon-default-color"
+ size="32">
{{ icon }}
{{ $t('siteNavigation.label.icon.upload') }}
@@ -194,8 +194,8 @@
class="mt-0 me-0" />
+ v-if="visible"
+ class="d-flex align-center justify-space-between flex-row">
{{ $t('siteNavigation.label.visibility.scheduleVisibility') }}
@@ -204,17 +204,21 @@
class="mt-0 me-0" />
-
+
+ :start-schedule-date="startScheduleDate"
+ :start-schedule-time="startScheduleTime"
+ @change="updateDates"
+ @end-date="endScheduleDate = $event"
+ @end-time="endScheduleTime = $event"
+ @start-date="startScheduleDate = $event"
+ @start-time="startScheduleTime = $event" />
-
+
{{ $t('siteNavigation.label.btn.next') }}
+ @click="saveNode">
{{ $t('siteNavigation.label.btn.save') }}
@@ -251,358 +255,358 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationPageElement.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationPageElement.vue
index c510f3b07..91aaef19d 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationPageElement.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationPageElement.vue
@@ -24,41 +24,41 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationPageSuggester.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationPageSuggester.vue
index ca452bd50..2d99e1799 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationPageSuggester.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationPageSuggester.vue
@@ -21,28 +21,28 @@
-
+ return-object
+ width="100%"
+ @blur="$refs.selectPage.isFocused = false"
+ @update:search-input="searchTerm = $event">
+
@@ -50,21 +50,21 @@
-
+
{{ item.displayName }}
-
-
+
+
@@ -73,120 +73,120 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationScheduleDatePickers.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationScheduleDatePickers.vue
index 25314b275..5f4154bbd 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationScheduleDatePickers.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationScheduleDatePickers.vue
@@ -19,109 +19,141 @@
+ width="100%">
far fa-clock
+ v-model="startScheduleDateValue"
+ class="scheduleStartDatePicker flex-grow-1 flex-shrink-1 input-width-full pa-0"
+ :min-value="minimumStartDate" />
+ v-model="startScheduleTimeValue"
+ class="flex-grow-0 flex-shrink-0 mb-3"
+ :min="minimumStartTime" />
+ v-model="endScheduleDateValue"
+ class="scheduleEndDatePicker flex-grow-1 flex-shrink-1 input-width-full pa-0"
+ :min-value="minimumEndDate" />
+ v-model="endScheduleTimeValue"
+ class="flex-grow-0 flex-shrink-0 mb-3"
+ :min="minimumEndTime" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationSiteSuggester.vue b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationSiteSuggester.vue
index 29be9f1e4..cf21daa8c 100644
--- a/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationSiteSuggester.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common-sites/components/site-navigation/SiteNavigationSiteSuggester.vue
@@ -20,29 +20,29 @@
-
+ return-object
+ width="100%"
+ @blur="$refs.selectSiteNavigation.isFocused = false"
+ @update:search-input="searchTerm = $event">
+
@@ -50,21 +50,21 @@
-
+
{{ item.displayName }}
-
-
+
+
@@ -74,57 +74,65 @@
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
index d7c5312b0..1d5fe221f 100644
--- a/layout-webapp/src/main/webapp/vue-app/common/components/LayoutAnalytics.vue
+++ b/layout-webapp/src/main/webapp/vue-app/common/components/LayoutAnalytics.vue
@@ -1,109 +1,109 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/common/js/ApplicationUtils.js b/layout-webapp/src/main/webapp/vue-app/common/js/ApplicationUtils.js
index ff0df2ad9..57f458b7a 100644
--- a/layout-webapp/src/main/webapp/vue-app/common/js/ApplicationUtils.js
+++ b/layout-webapp/src/main/webapp/vue-app/common/js/ApplicationUtils.js
@@ -17,12 +17,12 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-export function installApplication(navUri, applicationStorageId, applicationElement, applicationMode, showSite, fullRender) {
+export function installApplication (navUri, applicationStorageId, applicationElement, applicationMode, showSite, fullRender) {
return getApplicationContent(navUri, applicationStorageId, applicationMode, showSite, fullRender)
.then(applicationContent => handleApplicationContent(applicationContent, applicationElement, applicationMode));
}
-export function getStyle(container, options) {
+export function getStyle (container, options) {
const style = {};
if (container.marginTop === 0
|| container.marginTop
@@ -338,13 +338,13 @@ export function getStyle(container, options) {
return style;
}
-export function getApplicationContent(navUri, applicationStorageId, applicationMode, showSite, fullRender) {
+export function getApplicationContent (navUri, applicationStorageId, applicationMode, showSite, fullRender) {
const spaceOption = eXo.env.portal.previewSpaceId && `&previewSpaceId=${eXo.env.portal.previewSpaceId}` || '';
const fullRenderOption = fullRender && '&fullRender=true' || '';
return fetch(`/portal${navUri}?maximizedPortletId=${applicationStorageId}&showMaxWindow=${!showSite}&hideSharedLayout=true&maximizedPortletMode=${applicationMode || 'VIEW'}${spaceOption}${fullRenderOption}`, {
credentials: 'include',
method: 'GET',
- redirect: 'manual'
+ redirect: 'manual',
})
.then(resp => {
if (resp?.status === 200) {
@@ -355,7 +355,7 @@ export function getApplicationContent(navUri, applicationStorageId, applicationM
});
}
-export function handleApplicationContent(applicationContent, applicationElement) {
+export function handleApplicationContent (applicationContent, applicationElement) {
const newHeadContent = applicationContent.search(' -1 && applicationContent.substring(applicationContent.search('/g)[0].length, applicationContent.search('')) || '';
let newBodyContent = applicationContent.substring(applicationContent.search('/g)[0].length, applicationContent.lastIndexOf(''));
newBodyContent = installNewCSS(newHeadContent, newBodyContent);
@@ -383,7 +383,7 @@ export function handleApplicationContent(applicationContent, applicationElement)
}, 10);
}
-function installNewCSS(newHeadContent, newBodyContent) {
+function installNewCSS (newHeadContent, newBodyContent) {
const headCSSLinks = newHeadContent.match(//g);
if (headCSSLinks?.length) {
headCSSLinks.forEach(link => {
@@ -424,7 +424,7 @@ function installNewCSS(newHeadContent, newBodyContent) {
return newBodyContent;
}
-function installNewJS(scriptsContent, specificId, forceReload) {
+function installNewJS (scriptsContent, specificId, forceReload) {
const replacableScriptsIterator = scriptsContent.matchAll(/
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/content/Content.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/content/Content.vue
index 0e7f1b3f6..3fd7d9f62 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/content/Content.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/content/Content.vue
@@ -20,12 +20,12 @@
-->
+ class="layout-page-body no-border-radius"
+ :container="pageLayout" />
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/content/container/PageBody.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/content/container/PageBody.vue
index 845b4fa52..506e0f106 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/content/container/PageBody.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/content/container/PageBody.vue
@@ -22,32 +22,32 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/drawer/AddSectionDrawer.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/drawer/AddSectionDrawer.vue
index aa55af79d..a4a6fa1ae 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/drawer/AddSectionDrawer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/drawer/AddSectionDrawer.vue
@@ -21,13 +21,13 @@
-->
+ disable-pull-to-refresh
+ :loading="loading"
+ right>
{{ $t('layout.addSectionTitle') }}
@@ -44,9 +44,9 @@
@@ -58,9 +58,9 @@
@@ -72,9 +72,9 @@
@@ -89,8 +89,8 @@
{{ $t('layout.cancel') }}
{{ $t('layout.create') }}
@@ -99,48 +99,48 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/Toolbar.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/Toolbar.vue
index 72a3d259b..f72c1ceb8 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/Toolbar.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/Toolbar.vue
@@ -21,10 +21,10 @@
+ width="100vw">
fa-pager
{{ $t('layout.editPageTemplate', {0: pageTemplate.name}) }}
{{ $t('layout.editPageName', {0: pageName}) }}
@@ -53,40 +53,40 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/HistoryButtons.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/HistoryButtons.vue
index a4d27d41e..a017c84a4 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/HistoryButtons.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/HistoryButtons.vue
@@ -28,7 +28,7 @@
:disabled="!canUndo"
icon
@click="undo">
- fa-undo
+ fa-undo
@@ -42,7 +42,7 @@
:disabled="!canRedo"
icon
@click="redo">
- fa-redo
+ fa-redo
@@ -51,37 +51,37 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/MobilePreviewButton.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/MobilePreviewButton.vue
index 910be4816..45b0c0184 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/MobilePreviewButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/MobilePreviewButton.vue
@@ -27,7 +27,7 @@
:aria-label="label"
icon
@click="switchMode">
- {{ mobileDisplayMode ? 'fa-desktop' :'fa-mobile-alt' }}
+ {{ mobileDisplayMode ? 'fa-desktop' :'fa-mobile-alt' }}
@@ -36,19 +36,19 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/PagePreviewButton.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/PagePreviewButton.vue
index 4a79a6f18..56f18186b 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/PagePreviewButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/PagePreviewButton.vue
@@ -24,13 +24,13 @@
- fa-eye
+ fa-eye
@@ -39,30 +39,30 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/PagePropertiesButton.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/PagePropertiesButton.vue
index 46c314d4d..cdb52f08c 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/PagePropertiesButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/PagePropertiesButton.vue
@@ -26,10 +26,10 @@
- fa-palette
+ fa-palette
@@ -38,11 +38,11 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/PageSpacePreviewButton.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/PageSpacePreviewButton.vue
index b5aa0e871..bdfc41d57 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/PageSpacePreviewButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/PageSpacePreviewButton.vue
@@ -22,36 +22,36 @@
+ transition="slide-x-reverse-transition">
- fa-eye
+ fa-eye
+ max-width="450"
+ width="450">
{{ $t('layout.previewAsASpace') }}
+ :search-options="searchOptions" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveAsTemplateButton.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveAsTemplateButton.vue
index 3db8c0296..3bbb4a545 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveAsTemplateButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveAsTemplateButton.vue
@@ -23,13 +23,13 @@
+ class="me-3"
+ v-on="on">
fa-columns
@@ -39,58 +39,58 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveButton.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveButton.vue
index ec71cd739..07a7496fb 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveButton.vue
@@ -22,14 +22,14 @@
+ v-bind="attrs"
+ v-on="on">
{{ $t('layout.publish') }}
@@ -39,33 +39,33 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveDraftButton.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveDraftButton.vue
index 5bb97ff5c..2c7309643 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveDraftButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveDraftButton.vue
@@ -23,11 +23,11 @@
{{ $t('layout.saveDraft') }}
@@ -36,36 +36,36 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveTemplateButton.vue b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveTemplateButton.vue
index 766a04b55..0b83158a4 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveTemplateButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/components/toolbar/actions/SaveTemplateButton.vue
@@ -20,67 +20,67 @@
-->
{{ $t('layout.save') }}
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/layout-editor/main.js b/layout-webapp/src/main/webapp/vue-app/layout-editor/main.js
index 62fd0b0f3..20c424161 100644
--- a/layout-webapp/src/main/webapp/vue-app/layout-editor/main.js
+++ b/layout-webapp/src/main/webapp/vue-app/layout-editor/main.js
@@ -45,17 +45,17 @@ const lang = eXo?.env.portal.language || 'en';
//should expose the locale ressources as REST API
const url = `/layout/i18n/locale.portlet.LayoutEditor?lang=${lang}`;
-export function init() {
+export function init () {
exoi18n.loadLanguageAsync(lang, url)
.then(i18n => {
// init Vue app when locale ressources are ready
Vue.createApp({
template: `
`,
- vuetify: Vue.prototype.vuetifyOptions,
+ vuetify: eXo.vuetify,
i18n,
data: () => ({
containerTypes: extensionRegistry.loadExtensions('layout-editor', 'container'),
- collator: new Intl.Collator(eXo.env.portal.language, {numeric: true, sensitivity: 'base'}),
+ collator: new Intl.Collator(eXo.env.portal.language, { numeric: true, sensitivity: 'base' }),
hoveredParentId: null,
hoveredSectionId: null,
hoveredSection: null,
@@ -100,67 +100,67 @@ export function init() {
isAdministrator: eXo.env.portal.isAdministrator,
}),
computed: {
- parentAppX() {
+ parentAppX () {
return this.parentAppDimensions?.x || 0;
},
- parentAppY() {
+ parentAppY () {
return this.parentAppDimensions?.y || 0;
},
- defaultContainer() {
+ defaultContainer () {
return this.containerTypes.find(extension => extension.type === 'default');
},
- isResize() {
+ isResize () {
return this.moveType === 'resize';
},
- isMove() {
+ isMove () {
return this.moveType === 'drag';
},
- isMultiSelect() {
+ isMultiSelect () {
return this.moveType === 'multiSelect';
},
- selectedFirstRowIndex() {
+ selectedFirstRowIndex () {
return Math.min(...this.selectedCellCoordinates.map(c => c.rowIndex));
},
- selectedFirstColIndex() {
+ selectedFirstColIndex () {
return Math.min(...this.selectedCellCoordinates.map(c => c.colIndex));
},
- mobileDisplayMode() {
+ mobileDisplayMode () {
return this.$root.displayMode === 'mobile';
},
- desktopDisplayMode() {
+ desktopDisplayMode () {
return this.$root.displayMode === 'desktop';
},
- pageId() {
+ pageId () {
return this.$root.page?.state?.storageId?.replace?.('page_', '');
},
- isSpaceSiteTemplate() {
+ isSpaceSiteTemplate () {
return this.pageRef?.toLowerCase?.()?.indexOf('group_template::') === 0;
},
},
watch: {
- movingParentId() {
+ movingParentId () {
if (this.movingParentId) {
this.$root.$emit('layout-editor-moving-start', this.movingParentId);
} else {
this.$root.$emit('layout-editor-moving-end', this.movingParentId);
}
},
- nodeUri() {
+ nodeUri () {
if (window.opener) {
eXo.env.portal.webPageUrl = window.opener.location.pathname;
} else {
eXo.env.portal.webPageUrl = `/portal${this.nodeUri}`;
}
},
- layout(newVal, oldVal) {
+ layout (newVal, oldVal) {
if (!oldVal) {
window.setTimeout(() => document.dispatchEvent(new CustomEvent('hideTopBarLoading')), 200);
}
- const parentContainer = this.$layoutUtils.getParentContainer(newVal);
+ const parentContainer = eXo.$layoutUtils.getParentContainer(newVal);
this.pageFullWindow = parentContainer?.width !== 'singlePageApplication' && (parentContainer?.width === 'fullWindow' || !!document.body.style.getPropertyValue('--allPagesWidth'));
},
},
- created() {
+ created () {
// Some applications will change the window location state when displayed
// This will ensure to preserve the original Page location URI
new MutationObserver(this.setOriginalUri).observe(document, { subtree: true, childList: true });
@@ -169,57 +169,57 @@ export function init() {
document.addEventListener('drawerOpened', this.setDrawerOpened);
document.addEventListener('drawerClosed', this.setDrawerClosed);
this.refreshPortletInstances();
- this.$brandingService.getBrandingInformation()
+ eXo.$brandingService.getBrandingInformation()
.then(data => this.branding = data);
},
- mounted() {
+ mounted () {
this.$el?.closest?.('.PORTLET-FRAGMENT')?.classList?.remove?.('PORTLET-FRAGMENT');
},
methods: {
- setOriginalUri() {
+ setOriginalUri () {
if (window.location.href !== this.originalHref) {
window.history.replaceState('', window.document.title, this.originalUri);
}
},
- setDrawerOpened() {
+ setDrawerOpened () {
this.drawerOpened++;
},
- setDrawerClosed() {
+ setDrawerClosed () {
this.drawerOpened--;
},
- refreshPortletInstances() {
+ refreshPortletInstances () {
this.loadingPortletInstances = true;
- return this.$portletInstanceCategoryService.getPortletInstanceCategories()
+ return eXo.$portletInstanceCategoryService.getPortletInstanceCategories()
.then(categories => this.portletInstanceCategories = categories)
- .then(() => this.$portletInstanceService.getPortletInstances())
+ .then(() => eXo.$portletInstanceService.getPortletInstances())
.then(applications => this.portletInstances = applications.filter(a => !a.disabled))
.finally(() => this.loadingPortletInstances = false);
},
- refreshContainerTypes() {
+ refreshContainerTypes () {
this.containerTypes = extensionRegistry.loadExtensions('layout-editor', 'container');
},
- updateParentAppDimensions() {
+ updateParentAppDimensions () {
this.parentAppDimensions = document.querySelector('#layoutEditor').getBoundingClientRect();
},
- initScrollPosition() {
+ initScrollPosition () {
this.updateParentAppDimensions();
this.startScrollX = this.parentAppDimensions.x;
this.startScrollY = this.parentAppDimensions.y;
this.diffScrollX = 0;
this.diffScrollY = 0;
},
- updateScrollPosition() {
+ updateScrollPosition () {
this.updateParentAppDimensions();
this.diffScrollX = this.parentAppDimensions.x - this.startScrollX;
this.diffScrollY = this.parentAppDimensions.y - this.startScrollY;
},
- initCellsSelection() {
+ initCellsSelection () {
this.selectedSectionId = null;
this.moveType = null;
this.selectedCells = [];
this.selectedCellCoordinates = [];
},
- resetMoving() {
+ resetMoving () {
this.parentAppDimensions = null;
this.moveType = null;
this.multiCellsSelect = false;
@@ -228,7 +228,7 @@ export function init() {
}, `#${appId}`, 'Layout Editor');
})
.finally(() => {
- Vue.prototype.$utils.includeExtensions('LayoutEditorExtension');
+ eXo.$utils.includeExtensions('LayoutEditorExtension');
document.dispatchEvent(new CustomEvent('displayTopBarLoading'));
});
}
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/PageLayout.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/PageLayout.vue
index 5f21dc9e6..d50a599f7 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/PageLayout.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/PageLayout.vue
@@ -20,13 +20,17 @@
-->
+ :class="!$root.siteId && 'layout-page-parent'"
+ flat
+ role="main">
-
+
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/base/ContainerBase.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/base/ContainerBase.vue
index e28b95796..681d1ac39 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/base/ContainerBase.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/base/ContainerBase.vue
@@ -35,87 +35,87 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/base/ContainerExtension.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/base/ContainerExtension.vue
index be255df6d..5529573f8 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/base/ContainerExtension.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/base/ContainerExtension.vue
@@ -20,38 +20,38 @@
-->
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/Application.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/Application.vue
index bf7b74c93..50c71658f 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/Application.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/Application.vue
@@ -20,95 +20,95 @@
-->
+ :style="cssStyle">
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/CellContainer.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/CellContainer.vue
index ec43ec7c1..b445368cb 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/CellContainer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/CellContainer.vue
@@ -24,16 +24,16 @@
:parent-id="parentId" />
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/Container.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/Container.vue
index ee515482f..06660c921 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/Container.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/Container.vue
@@ -25,21 +25,21 @@
:parent-id="parentId" />
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/DynamicSection.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/DynamicSection.vue
index 3cc381c9b..ed87f4c0f 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/DynamicSection.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/DynamicSection.vue
@@ -20,54 +20,54 @@
-->
+ :style="cssStyle">
+ :parent-id="parentId" />
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/FixedSection.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/FixedSection.vue
index efa1e4309..7f9527657 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/FixedSection.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/FixedSection.vue
@@ -20,34 +20,34 @@
-->
+ class="layout-section"
+ :style="cssStyle">
+ :parent-id="parentId" />
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/PageBody.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/PageBody.vue
index a0ca24883..2b3742d99 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/PageBody.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/PageBody.vue
@@ -21,22 +21,22 @@
-->
+ :container="container"
+ page-style
+ :parent-id="parentId" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/PageContainer.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/PageContainer.vue
index effe5ad18..b00ff47d1 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/PageContainer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/PageContainer.vue
@@ -20,21 +20,21 @@
-->
+ :container="container" />
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/Site.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/Site.vue
index c3e0a545b..d62291555 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/Site.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/Site.vue
@@ -21,22 +21,22 @@
-->
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteBannerCell.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteBannerCell.vue
index c7f49bbdc..5e8792484 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteBannerCell.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteBannerCell.vue
@@ -21,22 +21,22 @@
-->
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteBannerSection.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteBannerSection.vue
index 359d050d1..0bd1215e5 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteBannerSection.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteBannerSection.vue
@@ -21,30 +21,30 @@
-->
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteMiddle.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteMiddle.vue
index 0ed958733..ec91514d6 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteMiddle.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteMiddle.vue
@@ -21,26 +21,26 @@
-->
+ :parent-id="parentId" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteMiddleCenter.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteMiddleCenter.vue
index 50659ee86..23d1d1b48 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteMiddleCenter.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteMiddleCenter.vue
@@ -21,22 +21,22 @@
-->
+ :container="container"
+ page-style
+ :parent-id="parentId" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteSidebarCell.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteSidebarCell.vue
index 014e707d3..a069fdd7e 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteSidebarCell.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteSidebarCell.vue
@@ -21,31 +21,31 @@
-->
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteSidebarSection.vue b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteSidebarSection.vue
index 28989a9a6..e59864256 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteSidebarSection.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/components/container/SiteSidebarSection.vue
@@ -22,27 +22,27 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/page-layout/main.js b/layout-webapp/src/main/webapp/vue-app/page-layout/main.js
index 77bd3a167..8012c7f25 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-layout/main.js
+++ b/layout-webapp/src/main/webapp/vue-app/page-layout/main.js
@@ -32,11 +32,11 @@ if (extensionRegistry) {
}
const appId = 'PageLayout';
-export function init(pageRef, siteId) {
+export function init (pageRef, siteId) {
const containerTypes = extensionRegistry.loadExtensions('page-layout', 'container');
Vue.createApp({
template: ` `,
- vuetify: Vue.prototype.vuetifyOptions,
+ vuetify: eXo.vuetify,
data: () => ({
pageRef,
siteId,
@@ -45,10 +45,10 @@ export function init(pageRef, siteId) {
page: null,
}),
computed: {
- defaultContainer() {
+ defaultContainer () {
return this.containerTypes.find(extension => extension.type === 'default');
},
- layout() {
+ layout () {
if (this.page?.template === 'system:/groovy/portal/webui/container/UISiteLayout.gtmpl') {
return this.page;
} else if (this.page?.children?.[0]?.children?.[0]?.template === 'system:/groovy/portal/webui/container/UIPageLayout.gtmpl') {
@@ -57,25 +57,25 @@ export function init(pageRef, siteId) {
return this.page?.children?.[0];
}
},
- isMobile() {
- return this.$vuetify.breakpoint.smAndDown;
+ isMobile () {
+ return eXo.vuetify.display.smAndDown.value;
},
},
- async created() {
+ async created () {
document.addEventListener('extension-page-layout-container-updated', this.refreshContainerTypes);
- this.$root.page = await this.$pageLayoutService.getPageLayout({
+ this.$root.page = await eXo.$pageLayoutService.getPageLayout({
pageRef: this.$root.pageRef,
siteId: this.$root.siteId,
});
},
- mounted() {
+ mounted () {
this.$el?.closest?.('.PORTLET-FRAGMENT')?.classList?.remove?.('PORTLET-FRAGMENT');
},
methods: {
- refreshContainerTypes() {
+ refreshContainerTypes () {
this.containerTypes = extensionRegistry.loadExtensions('page-layout', 'container');
},
},
}, `#${appId}`, 'Page Layout');
- Vue.prototype.$utils.includeExtensions('PageLayoutExtension');
+ eXo.$utils.includeExtensions('PageLayoutExtension');
}
diff --git a/layout-webapp/src/main/webapp/vue-app/page-template/components/PageTemplatesManagement.vue b/layout-webapp/src/main/webapp/vue-app/page-template/components/PageTemplatesManagement.vue
index 7c11805ce..7c38b16ce 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-template/components/PageTemplatesManagement.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-template/components/PageTemplatesManagement.vue
@@ -39,10 +39,10 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/page-template/components/header/Toolbar.vue b/layout-webapp/src/main/webapp/vue-app/page-template/components/header/Toolbar.vue
index e56c0d98c..57a597451 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-template/components/header/Toolbar.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-template/components/header/Toolbar.vue
@@ -21,20 +21,20 @@
@@ -50,15 +50,15 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/page-template/components/list/PageTemplateItem.vue b/layout-webapp/src/main/webapp/vue-app/page-template/components/list/PageTemplateItem.vue
index c1500e8de..34bae4778 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-template/components/list/PageTemplateItem.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-template/components/list/PageTemplateItem.vue
@@ -3,18 +3,18 @@
+ :value="pageTemplate" />
+ align="left"
+ :width="$root.isMobile && '100%' || 'auto'">
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/page-template/components/list/PageTemplateItemMenu.vue b/layout-webapp/src/main/webapp/vue-app/page-template/components/list/PageTemplateItemMenu.vue
index 5a531d1eb..8742e23ac 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-template/components/list/PageTemplateItemMenu.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-template/components/list/PageTemplateItemMenu.vue
@@ -1,28 +1,28 @@
+ :left="!$vuetify.rtl"
+ offset-y
+ :right="$vuetify.rtl">
- fas fa-ellipsis-v
+ fas fa-ellipsis-v
+ @focusout="menu = false"
+ @mouseout="menu = false">
@@ -41,23 +41,23 @@
+ bottom
+ :disabled="!pageTemplate.system">
+ v-bind="attrs"
+ v-on="on">
+ target="_blank">
+ color="transparent"
+ flat
+ min-width="15">
@@ -76,10 +76,10 @@
dense
@click="$root.$emit('layout-page-template-drawer-open', pageTemplate)">
+ color="transparent"
+ flat
+ min-width="15">
fa-edit
@@ -92,10 +92,10 @@
dense
@click="$root.$emit('layout-page-template-drawer-open', pageTemplate, true)">
+ color="transparent"
+ flat
+ min-width="15">
fa-copy
@@ -104,20 +104,20 @@
{{ $t('pageTemplate.label.duplicate') }}
-
+
+ v-bind="attrs"
+ v-on="on">
+ color="transparent"
+ flat
+ min-width="15">
@@ -138,73 +138,73 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/page-template/components/list/PageTemplates.vue b/layout-webapp/src/main/webapp/vue-app/page-template/components/list/PageTemplates.vue
index ff637b4c7..35ea27ffc 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-template/components/list/PageTemplates.vue
+++ b/layout-webapp/src/main/webapp/vue-app/page-template/components/list/PageTemplates.vue
@@ -1,17 +1,17 @@
-
+ :hide-default-header="$root.isMobile"
+ :items="filteredPageTemplates"
+ :loading="loading"
+ must-sort>
+
@@ -19,207 +19,207 @@
+ :title="$t('pageTemplate.label.confirmDeleteTitle')"
+ @closed="pageTemplateToDelete = null"
+ @ok="deletePageTemplate(pageTemplateToDelete)" />
diff --git a/layout-webapp/src/main/webapp/vue-app/page-template/main.js b/layout-webapp/src/main/webapp/vue-app/page-template/main.js
index c3dbcf973..0af501235 100644
--- a/layout-webapp/src/main/webapp/vue-app/page-template/main.js
+++ b/layout-webapp/src/main/webapp/vue-app/page-template/main.js
@@ -35,16 +35,16 @@ const lang = eXo?.env.portal.language || 'en';
const url = `/layout/i18n/locale.portlet.LayoutEditor?lang=${lang}`;
const appId = 'pageTemplatesManagement';
-export function init() {
+export function init () {
exoi18n.loadLanguageAsync(lang, url)
.then(i18n =>
Vue.createApp({
template: ` `,
- vuetify: Vue.prototype.vuetifyOptions,
+ vuetify: eXo.vuetify,
i18n,
computed: {
- isMobile() {
- return this.$vuetify.breakpoint.smAndDown;
+ isMobile () {
+ return eXo.vuetify.display.smAndDown.value;
},
},
}, `#${appId}`, 'Page Layout')
diff --git a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/PortletEditor.vue b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/PortletEditor.vue
index 883a6c57d..26ee5f61d 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/PortletEditor.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/PortletEditor.vue
@@ -30,9 +30,9 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/content/Application.vue b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/content/Application.vue
index 6fa31b25f..6dc6a2694 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/content/Application.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/content/Application.vue
@@ -20,107 +20,107 @@
-->
+ :style="cssStyle">
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/content/Cell.vue b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/content/Cell.vue
index d6ef90c2c..0348c48ee 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/content/Cell.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/content/Cell.vue
@@ -21,13 +21,14 @@
+ class="d-flex position-relative"
+ :style="cssStyle">
+ flat>
+ {{ displayEmptyMessage && $t('portlets.emptyPortletInstanceContent') || '' }}
+
-
fab fa-readme
+
fab fa-readme
{{ $t('layout.readonlyPortletContent') }}
@@ -60,94 +61,94 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/content/CellResizeButton.vue b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/content/CellResizeButton.vue
index c1b50ac18..c2e324b2e 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/content/CellResizeButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/content/CellResizeButton.vue
@@ -21,37 +21,37 @@
+ @mouseover="hoverSeparator = true" />
diff --git a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/toolbar/Toolbar.vue b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/toolbar/Toolbar.vue
index 531a7dde8..463c3580a 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/toolbar/Toolbar.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/toolbar/Toolbar.vue
@@ -21,12 +21,12 @@
+ width="100vw">
fa-pager
-
+
diff --git a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/toolbar/actions/EditButton.vue b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/toolbar/actions/EditButton.vue
index 43bd628a1..1ad30e5ec 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/toolbar/actions/EditButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/toolbar/actions/EditButton.vue
@@ -20,29 +20,29 @@
-->
{{ label }}
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/toolbar/actions/SaveButton.vue b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/toolbar/actions/SaveButton.vue
index 8760d0a1e..926bbadeb 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/toolbar/actions/SaveButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlet-editor/components/toolbar/actions/SaveButton.vue
@@ -20,85 +20,85 @@
-->
{{ $t('layout.save') }}
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlet-editor/main.js b/layout-webapp/src/main/webapp/vue-app/portlet-editor/main.js
index 350c7e42e..2b17641f3 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlet-editor/main.js
+++ b/layout-webapp/src/main/webapp/vue-app/portlet-editor/main.js
@@ -38,13 +38,13 @@ const lang = eXo?.env.portal.language || 'en';
//should expose the locale ressources as REST API
const url = `/layout/i18n/locale.portlet.LayoutEditor?lang=${lang}`;
-export function init() {
+export function init () {
exoi18n.loadLanguageAsync(lang, url)
.then(i18n => {
// init Vue app when locale ressources are ready
Vue.createApp({
template: `
`,
- vuetify: Vue.prototype.vuetifyOptions,
+ vuetify: eXo.vuetify,
i18n,
data: {
portletInstanceId: null,
@@ -53,33 +53,33 @@ export function init() {
portletMode: 'view',
},
computed: {
- editablePortlet() {
+ editablePortlet () {
return this.portletInstance?.editable || false;
},
},
watch: {
portletInstanceId: {
immediate: true,
- handler() {
+ handler () {
eXo.env.portal.portletInstanceId = this.portletInstanceId;
- }
+ },
},
portletMode: {
immediate: true,
- handler() {
+ handler () {
eXo.env.portal.maximizedPortletMode = this.portletMode;
- }
+ },
},
},
- created() {
+ created () {
this.portletInstanceId = this.getQueryParam('id');
this.portletMode = this.getQueryParam('portletMode') || 'view';
- this.$portletInstanceService.getPortletInstance(this.portletInstanceId)
+ eXo.$portletInstanceService.getPortletInstance(this.portletInstanceId)
.then(data => this.portletInstance = data)
- .finally(() => this.$applicationLoaded());
+ .finally(() => this.aapplicationLoaded());
},
methods: {
- getQueryParam(paramName) {
+ getQueryParam (paramName) {
const uri = window.location.search.substring(1);
const params = new URLSearchParams(uri);
return params.get(paramName);
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/PortletsManagement.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/PortletsManagement.vue
index d1ac8b8c2..904ccef61 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/PortletsManagement.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/PortletsManagement.vue
@@ -25,8 +25,8 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/header/Toolbar.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/header/Toolbar.vue
index 9af58500f..2c3d5c450 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/header/Toolbar.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/header/Toolbar.vue
@@ -33,20 +33,20 @@
icon: 'fa-grip-horizontal',
}]
}"
+ class="border-box-sizing px-1"
:right-text-filter="{
minCharacters: 1,
placeholder: $t('portlets.filter.placeholder'),
tooltip: $t('portlets.filter.placeholder'),
}"
- class="border-box-sizing px-1"
- @toggle-select="$emit('select-tab', $event)"
- @filter-text-input="$emit('portlet-instance-filter', $event)">
+ @filter-text-input="$emit('portlet-instance-filter', $event)"
+ @toggle-select="$emit('select-tab', $event)">
@@ -62,12 +62,12 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Categories.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Categories.vue
index ae53ca306..7d073cda2 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Categories.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Categories.vue
@@ -20,40 +20,40 @@
-->
-
+ :role="null">
+
- fa-plus
+ fa-plus
+ mandatory
+ role="list">
+ flat
+ width="30">
fa-braille
@@ -68,62 +68,62 @@
+ :title="$t('portlets.label.confirmDeleteCategoryTitle')"
+ @closed="portletInstanceCategoryToDelete = null"
+ @ok="deletePortletInstanceCategory(portletInstanceCategoryToDelete)" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/CategoryItem.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/CategoryItem.vue
index 47f2469d4..092eace86 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/CategoryItem.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/CategoryItem.vue
@@ -21,27 +21,27 @@
+ role="listitem"
+ :value="category.id">
-
+ flat
+ width="30">
+ {{ category.icon }}
-
+
+ {{ category.name }}
+
+ flat
+ width="30">
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/CategoryMenu.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/CategoryMenu.vue
index 9a55fc2b4..08956099d 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/CategoryMenu.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/CategoryMenu.vue
@@ -21,27 +21,27 @@
+ :left="!$vuetify.rtl"
+ offset-y
+ :right="$vuetify.rtl">
- fas fa-ellipsis-v
+ fas fa-ellipsis-v
+ @focusout="menu = false"
+ @mouseout="menu = false">
-
+
+ v-bind="attrs"
+ v-on="on">
+ class="ps-2"
+ :class="!category.system && 'error--text' || 'disabled--text'">
{{ $t('portlets.label.delete') }}
@@ -83,78 +83,78 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Item.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Item.vue
index b22736f16..51381ac51 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Item.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Item.vue
@@ -23,12 +23,12 @@
+ align="center"
+ class="px-0">
+ :value="portletInstance" />
@@ -40,18 +40,18 @@
+ class="text-break">
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/List.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/List.vue
index 87109471f..c901524cb 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/List.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/List.vue
@@ -21,17 +21,17 @@
-
+ :hide-default-header="$root.isMobile"
+ :items="filteredPortletInstances"
+ :loading="loading"
+ must-sort>
+
@@ -39,183 +39,183 @@
+ :title="$t('portlets.label.confirmDeleteTitle')"
+ @closed="portletInstanceToDelete = null"
+ @ok="deletePortletInstance(portletInstanceToDelete)" />
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Main.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Main.vue
index 2fb769d93..c787c23fb 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Main.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Main.vue
@@ -22,20 +22,20 @@
+ class="hidden-sm-and-down me-5"
+ :keyword="keyword" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Menu.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Menu.vue
index 6c590270f..ce51b64ce 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Menu.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/Menu.vue
@@ -21,33 +21,33 @@
+ :left="!$vuetify.rtl"
+ offset-y
+ :right="$vuetify.rtl">
- fas fa-ellipsis-v
+ fas fa-ellipsis-v
+ @focusout="menu = false"
+ @mouseout="menu = false">
+ target="_blank">
fa-edit
@@ -65,14 +65,14 @@
{{ $t('portlets.label.editProperties') }}
-
+
+ v-bind="attrs"
+ v-on="on">
+ class="ps-2"
+ :class="!portletInstance.system && 'error--text' || 'disabled--text'">
{{ $t('portlets.label.delete') }}
@@ -95,76 +95,76 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/drawer/CategoryDrawer.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/drawer/CategoryDrawer.vue
index 448b9387b..6424a1c5b 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/drawer/CategoryDrawer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/drawer/CategoryDrawer.vue
@@ -20,11 +20,11 @@
-->
{{ isNew && $t('layout.portletInstance.category.drawerTitie.add') || $t('layout.portletInstance.category.drawerTitie.edit') }}
@@ -32,18 +32,18 @@
@@ -65,8 +65,8 @@
{{ $t('layout.cancel') }}
{{ $t('layout.save') }}
@@ -75,76 +75,76 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/drawer/InstanceDrawer.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/drawer/InstanceDrawer.vue
index 80a6e079c..643d302af 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/drawer/InstanceDrawer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/drawer/InstanceDrawer.vue
@@ -20,12 +20,12 @@
-->
{{ isNew && $t('layout.portletInstance.drawerTitie.add') || $t('layout.portletInstance.drawerTitie.edit') }}
@@ -33,18 +33,18 @@
@@ -55,14 +55,14 @@
@@ -73,11 +73,11 @@
id="portletInstanceDescription"
ref="portletInstanceDescriptionEditor"
v-model="descriptionTranslations[lang]"
- :placeholder="$t('layout.portletInstance.descriptionTranslationDrawerTitle')"
- :max-length="maxDescriptionLength"
- :tag-enabled="false"
ck-editor-type="portletInstanceDescription"
disable-suggester
+ :max-length="maxDescriptionLength"
+ :placeholder="$t('layout.portletInstance.descriptionTranslationDrawerTitle')"
+ :tag-enabled="false"
@ready="checkCKEdtiorDisplay" />
+ class="mt-4"
+ :disabled="!isNew || disableSelectedPortlet" />
{{ $t('portlets.selectWhoCanAddIt') }}
+ v-bind="attrs"
+ v-on="on">
+ disabled
+ :label="$t('portlets.administrators')" />
{{ $t('portlets.administratorsMandatorySelectionTooltip') }}
+ class="ma-0 pa-0"
+ :label="$t('portlets.contentManagers')" />
+ class="ma-0 pa-0"
+ :label="$t('portlets.spaceHost')" />
{{ $t('layout.save') }}
@@ -141,172 +141,172 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/form/CategoryInput.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/form/CategoryInput.vue
index 013189bab..856833e47 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/form/CategoryInput.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/form/CategoryInput.vue
@@ -24,60 +24,60 @@
+ :placeholder="$t('layout.category.placeholder')" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/form/InstancePreview.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/form/InstancePreview.vue
index 5231cc603..46ee5eb21 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/form/InstancePreview.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/form/InstancePreview.vue
@@ -28,17 +28,17 @@
+ v-bind="attrs"
+ v-on="on">
@@ -46,98 +46,98 @@
+ transition="none" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/form/PortletInput.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/form/PortletInput.vue
index d83457500..13c38e987 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/form/PortletInput.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/instances/form/PortletInput.vue
@@ -26,88 +26,88 @@
v-model="portletType"
class="my-auto text-no-wrap ms-n1">
+ value="new" />
+ value="existing" />
+ :placeholder="$t('layout.portlet.placeholder')" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/Item.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/Item.vue
index 220f8bcaf..cb796d205 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/Item.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/Item.vue
@@ -23,27 +23,27 @@
+ align="center"
+ class="px-0">
+ align="left"
+ class="text-break">
+ class="text-break">
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/List.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/List.vue
index 173e036e3..9030bd34e 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/List.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/List.vue
@@ -21,17 +21,17 @@
-
+ :hide-default-header="$root.isMobile"
+ :items="filteredPortlets"
+ :loading="loading"
+ must-sort>
+
@@ -40,144 +40,144 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/Menu.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/Menu.vue
index 31c667801..862b3ede4 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/Menu.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/Menu.vue
@@ -20,10 +20,10 @@
-->
fa-plus
@@ -31,73 +31,73 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/drawer/InstancesDrawer.vue b/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/drawer/InstancesDrawer.vue
index 063ba2249..afa33d0d6 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/drawer/InstancesDrawer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/components/portlets/drawer/InstancesDrawer.vue
@@ -20,8 +20,8 @@
-->
@@ -32,8 +32,8 @@
{{ $t('layout.portletInstance.add') }}
@@ -44,10 +44,10 @@
+ }">
{{ application.name }}
@@ -56,11 +56,11 @@
+ v-bind="attrs"
+ v-on="on">
fa-eye
@@ -73,12 +73,12 @@
-
fa-braille
+
fa-braille
{{ $t('portlets.noPortletInstancesYet') }}
{{ $t('layout.portletInstance.add') }}
@@ -87,40 +87,40 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/portlets/main.js b/layout-webapp/src/main/webapp/vue-app/portlets/main.js
index 931c42202..e054b5208 100644
--- a/layout-webapp/src/main/webapp/vue-app/portlets/main.js
+++ b/layout-webapp/src/main/webapp/vue-app/portlets/main.js
@@ -35,12 +35,12 @@ const lang = eXo?.env.portal.language || 'en';
const url = `/layout/i18n/locale.portlet.LayoutEditor?lang=${lang}`;
const appId = 'portletsManagement';
-export function init() {
+export function init () {
exoi18n.loadLanguageAsync(lang, url)
.then(i18n =>
Vue.createApp({
template: `
`,
- vuetify: Vue.prototype.vuetifyOptions,
+ vuetify: eXo.vuetify,
i18n,
data: () => ({
portlets: [],
@@ -48,26 +48,26 @@ export function init() {
portletInstanceCategories: [],
selectedCategoryId: null,
loading: 0,
- collator: new Intl.Collator(eXo.env.portal.language, {numeric: true, sensitivity: 'base'}),
+ collator: new Intl.Collator(eXo.env.portal.language, { numeric: true, sensitivity: 'base' }),
}),
computed: {
- isMobile() {
- return this.$vuetify.breakpoint.smAndDown;
+ isMobile () {
+ return eXo.vuetify.display.smAndDown.value;
},
- categoriesById() {
+ categoriesById () {
return this.portletInstanceCategories.reduce((a, v) => {
a[v.id] = v;
return a;
}, {});
},
- portletsById() {
+ portletsById () {
return this.portlets.reduce((a, v) => {
a[v.contentId] = v;
return a;
}, {});
},
},
- created() {
+ created () {
this.$root.$on('portlet-instance-enabled', this.refreshPortletInstances);
this.$root.$on('portlet-instance-disabled', this.refreshPortletInstances);
this.$root.$on('portlet-instance-saved', this.refreshPortletInstances);
@@ -83,30 +83,30 @@ export function init() {
this.refreshPortletInstanceCategories();
},
methods: {
- propagateEventListenerLocally(event) {
+ propagateEventListenerLocally (event) {
this.$root.$emit(event.type, event.detail);
},
- selectCategory(categoryId) {
+ selectCategory (categoryId) {
this.selectedCategoryId = categoryId;
},
- refreshPortlets() {
+ refreshPortlets () {
this.loading++;
- return this.$portletService.getPortlets()
- .then(data => this.portlets = data.map(p => ({...p,
+ return eXo.$portletService.getPortlets()
+ .then(data => this.portlets = data.map(p => ({ ...p,
name: this.$te(`layout.portletInstance.${p?.portletName}.name`) ? this.$t(`layout.portletInstance.${p?.portletName}.name`) : p?.name,
description: this.$te(`layout.portletInstance.${p?.portletName}.description`) ? this.$t(`layout.portletInstance.${p?.portletName}.description`) : p?.description,
})) || [])
.finally(() => this.loading--);
},
- refreshPortletInstances() {
+ refreshPortletInstances () {
this.loading++;
- return this.$portletInstanceService.getPortletInstances()
+ return eXo.$portletInstanceService.getPortletInstances()
.then(data => this.portletInstances = data || [])
.finally(() => this.loading--);
},
- refreshPortletInstanceCategories() {
+ refreshPortletInstanceCategories () {
this.loading++;
- return this.$portletInstanceCategoryService.getPortletInstanceCategories()
+ return eXo.$portletInstanceCategoryService.getPortletInstanceCategories()
.then(data => this.portletInstanceCategories = data || [])
.finally(() => this.loading--);
},
diff --git a/layout-webapp/src/main/webapp/vue-app/section-editor/components/SectionEditor.vue b/layout-webapp/src/main/webapp/vue-app/section-editor/components/SectionEditor.vue
index 6dbb9bd37..2c286f07d 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-editor/components/SectionEditor.vue
+++ b/layout-webapp/src/main/webapp/vue-app/section-editor/components/SectionEditor.vue
@@ -25,13 +25,13 @@
flat>
+ :node="node"
+ :page="pageContext" />
+ :page="pageContext" />
@@ -39,128 +39,128 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/section-editor/components/content/Content.vue b/layout-webapp/src/main/webapp/vue-app/section-editor/components/content/Content.vue
index 34f026884..68561db23 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-editor/components/content/Content.vue
+++ b/layout-webapp/src/main/webapp/vue-app/section-editor/components/content/Content.vue
@@ -21,12 +21,12 @@
-->
+ class="layout-page-body no-border-radius"
+ :container="pageLayout" />
diff --git a/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/Toolbar.vue b/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/Toolbar.vue
index 641480e48..f293b85ef 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/Toolbar.vue
+++ b/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/Toolbar.vue
@@ -22,10 +22,10 @@
+ width="100vw">
fa-pager
{{ $t('layout.editSectionTemplate') }}
@@ -36,43 +36,43 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/actions/HistoryButtons.vue b/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/actions/HistoryButtons.vue
index 456bcef18..27384c864 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/actions/HistoryButtons.vue
+++ b/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/actions/HistoryButtons.vue
@@ -29,7 +29,7 @@
:disabled="!canUndo"
icon
@click="undo">
-
fa-undo
+
fa-undo
@@ -43,7 +43,7 @@
:disabled="!canRedo"
icon
@click="redo">
- fa-redo
+ fa-redo
@@ -52,37 +52,37 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/actions/MobilePreviewButton.vue b/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/actions/MobilePreviewButton.vue
index cfefccf55..6f4f8078c 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/actions/MobilePreviewButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/actions/MobilePreviewButton.vue
@@ -28,7 +28,7 @@
:aria-label="label"
icon
@click="switchMode">
- {{ mobileDisplayMode ? 'fa-desktop' :'fa-mobile-alt' }}
+ {{ mobileDisplayMode ? 'fa-desktop' :'fa-mobile-alt' }}
@@ -37,19 +37,19 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/actions/SaveButton.vue b/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/actions/SaveButton.vue
index 3accf47a1..a9599c28b 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/actions/SaveButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/section-editor/components/toolbar/actions/SaveButton.vue
@@ -23,14 +23,14 @@
+ v-bind="attrs"
+ v-on="on">
{{ $t('layout.save') }}
@@ -40,45 +40,45 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/section-editor/main.js b/layout-webapp/src/main/webapp/vue-app/section-editor/main.js
index 0e2451027..9eaa9d235 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-editor/main.js
+++ b/layout-webapp/src/main/webapp/vue-app/section-editor/main.js
@@ -45,17 +45,17 @@ const lang = eXo?.env.portal.language || 'en';
//should expose the locale ressources as REST API
const url = `/layout/i18n/locale.portlet.LayoutEditor?lang=${lang}`;
-export function init() {
+export function init () {
exoi18n.loadLanguageAsync(lang, url)
.then(i18n => {
// init Vue app when locale ressources are ready
Vue.createApp({
template: ` `,
- vuetify: Vue.prototype.vuetifyOptions,
+ vuetify: eXo.vuetify,
i18n,
data: () => ({
containerTypes: extensionRegistry.loadExtensions('layout-editor', 'container'),
- collator: new Intl.Collator(eXo.env.portal.language, {numeric: true, sensitivity: 'base'}),
+ collator: new Intl.Collator(eXo.env.portal.language, { numeric: true, sensitivity: 'base' }),
hoveredParentId: null,
hoveredSectionId: null,
hoveredSection: null,
@@ -101,73 +101,73 @@ export function init() {
originalHref: window.location.href,
}),
computed: {
- sectionTemplateId() {
- return this.$layoutUtils.getQueryParam('id');
+ sectionTemplateId () {
+ return eXo.$layoutUtils.getQueryParam('id');
},
- sectionTemplateContainer() {
+ sectionTemplateContainer () {
return this.sectionTemplate?.content && JSON.parse(this.sectionTemplate.content);
},
- parentAppX() {
+ parentAppX () {
return this.parentAppDimensions?.x || 0;
},
- parentAppY() {
+ parentAppY () {
return this.parentAppDimensions?.y || 0;
},
- defaultContainer() {
+ defaultContainer () {
return this.containerTypes.find(extension => extension.type === 'default');
},
- isResize() {
+ isResize () {
return this.moveType === 'resize';
},
- isMove() {
+ isMove () {
return this.moveType === 'drag';
},
- isMultiSelect() {
+ isMultiSelect () {
return this.moveType === 'multiSelect';
},
- selectedFirstRowIndex() {
+ selectedFirstRowIndex () {
return Math.min(...this.selectedCellCoordinates.map(c => c.rowIndex));
},
- selectedFirstColIndex() {
+ selectedFirstColIndex () {
return Math.min(...this.selectedCellCoordinates.map(c => c.colIndex));
},
- mobileDisplayMode() {
+ mobileDisplayMode () {
return this.$root.displayMode === 'mobile';
},
- desktopDisplayMode() {
+ desktopDisplayMode () {
return this.$root.displayMode === 'desktop';
},
- pageId() {
+ pageId () {
return this.$root.page?.state?.storageId?.replace?.('page_', '');
},
- isSpaceSiteTemplate() {
+ isSpaceSiteTemplate () {
return this.pageRef?.toLowerCase?.()?.indexOf('group_template::') === 0;
},
},
watch: {
- movingParentId() {
+ movingParentId () {
if (this.movingParentId) {
this.$root.$emit('layout-editor-moving-start', this.movingParentId);
} else {
this.$root.$emit('layout-editor-moving-end', this.movingParentId);
}
},
- nodeUri() {
+ nodeUri () {
if (window.opener) {
eXo.env.portal.webPageUrl = window.opener.location.pathname;
} else {
eXo.env.portal.webPageUrl = `/portal${this.nodeUri}`;
}
},
- layout(newVal, oldVal) {
+ layout (newVal, oldVal) {
if (!oldVal) {
window.setTimeout(() => document.dispatchEvent(new CustomEvent('hideTopBarLoading')), 200);
}
},
},
- async created() {
- this.sectionTemplate = await this.$sectionTemplateService.getSectionTemplate(this.sectionTemplateId);
- this.nodeId = await this.$sectionTemplateService.generateSectionTemplateNodeId(this.sectionTemplateId);
+ async created () {
+ this.sectionTemplate = await eXo.$sectionTemplateService.getSectionTemplate(this.sectionTemplateId);
+ this.nodeId = await eXo.$sectionTemplateService.generateSectionTemplateNodeId(this.sectionTemplateId);
// Some applications will change the window location state when displayed
// This will ensure to preserve the original Page location URI
new MutationObserver(this.setOriginalUri).observe(document, { subtree: true, childList: true });
@@ -176,57 +176,57 @@ export function init() {
document.addEventListener('drawerOpened', this.setDrawerOpened);
document.addEventListener('drawerClosed', this.setDrawerClosed);
this.refreshPortletInstances();
- this.branding = await this.$brandingService.getBrandingInformation();
+ this.branding = await eXo.$brandingService.getBrandingInformation();
},
- mounted() {
+ mounted () {
this.$el?.closest?.('.PORTLET-FRAGMENT')?.classList?.remove?.('PORTLET-FRAGMENT');
this.$root.$applicationLoaded();
},
methods: {
- setOriginalUri() {
+ setOriginalUri () {
if (window.location.href !== this.originalHref) {
window.history.replaceState('', window.document.title, this.originalUri);
}
},
- setDrawerOpened() {
+ setDrawerOpened () {
this.drawerOpened++;
},
- setDrawerClosed() {
+ setDrawerClosed () {
this.drawerOpened--;
},
- refreshPortletInstances() {
+ refreshPortletInstances () {
this.loadingPortletInstances = true;
- return this.$portletInstanceCategoryService.getPortletInstanceCategories()
+ return eXo.$portletInstanceCategoryService.getPortletInstanceCategories()
.then(categories => this.portletInstanceCategories = categories)
- .then(() => this.$portletInstanceService.getPortletInstances())
+ .then(() => eXo.$portletInstanceService.getPortletInstances())
.then(applications => this.portletInstances = applications.filter(a => !a.disabled))
.finally(() => this.loadingPortletInstances = false);
},
- refreshContainerTypes() {
+ refreshContainerTypes () {
this.containerTypes = extensionRegistry.loadExtensions('layout-editor', 'container');
},
- updateParentAppDimensions() {
+ updateParentAppDimensions () {
this.parentAppDimensions = document.querySelector(`#${appId}`).getBoundingClientRect();
},
- initScrollPosition() {
+ initScrollPosition () {
this.updateParentAppDimensions();
this.startScrollX = this.parentAppDimensions.x;
this.startScrollY = this.parentAppDimensions.y;
this.diffScrollX = 0;
this.diffScrollY = 0;
},
- updateScrollPosition() {
+ updateScrollPosition () {
this.updateParentAppDimensions();
this.diffScrollX = this.parentAppDimensions.x - this.startScrollX;
this.diffScrollY = this.parentAppDimensions.y - this.startScrollY;
},
- initCellsSelection() {
+ initCellsSelection () {
this.selectedSectionId = null;
this.moveType = null;
this.selectedCells = [];
this.selectedCellCoordinates = [];
},
- resetMoving() {
+ resetMoving () {
this.parentAppDimensions = null;
this.moveType = null;
this.multiCellsSelect = false;
@@ -235,7 +235,7 @@ export function init() {
}, `#${appId}`, 'Section Editor');
})
.finally(() => {
- Vue.prototype.$utils.includeExtensions('LayoutEditorExtension');
+ eXo.$utils.includeExtensions('LayoutEditorExtension');
document.dispatchEvent(new CustomEvent('displayTopBarLoading'));
});
}
diff --git a/layout-webapp/src/main/webapp/vue-app/section-template/components/SectionTemplateManagement.vue b/layout-webapp/src/main/webapp/vue-app/section-template/components/SectionTemplateManagement.vue
index 233a5cfd3..90a90a588 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-template/components/SectionTemplateManagement.vue
+++ b/layout-webapp/src/main/webapp/vue-app/section-template/components/SectionTemplateManagement.vue
@@ -40,27 +40,27 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/section-template/components/drawer/AddSectionTemplateDrawer.vue b/layout-webapp/src/main/webapp/vue-app/section-template/components/drawer/AddSectionTemplateDrawer.vue
index aa3846122..394dc1f04 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-template/components/drawer/AddSectionTemplateDrawer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/section-template/components/drawer/AddSectionTemplateDrawer.vue
@@ -21,11 +21,11 @@
-->
+ disable-pull-to-refresh
+ right>
{{ $t('layout.addSectionTitle') }}
@@ -36,26 +36,26 @@
+ value="FlexContainer" />
+ value="GridContainer" />
+ :cols-count="cols"
+ :rows-count="rows"
+ @cols-updated="cols = $event"
+ @rows-updated="rows = $event" />
@@ -63,14 +63,14 @@
{{ $t('layout.cancel') }}
{{ $t('layout.next') }}
@@ -79,54 +79,54 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/section-template/components/header/Toolbar.vue b/layout-webapp/src/main/webapp/vue-app/section-template/components/header/Toolbar.vue
index aa91ec977..34a88a1c9 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-template/components/header/Toolbar.vue
+++ b/layout-webapp/src/main/webapp/vue-app/section-template/components/header/Toolbar.vue
@@ -22,19 +22,19 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/section-template/components/main/Item.vue b/layout-webapp/src/main/webapp/vue-app/section-template/components/main/Item.vue
index 3b3e301ff..0fb155a50 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-template/components/main/Item.vue
+++ b/layout-webapp/src/main/webapp/vue-app/section-template/components/main/Item.vue
@@ -24,11 +24,11 @@
+ align="center"
+ class="px-0">
+ object-type="sectionTemplate"
+ :value="sectionTemplate" />
@@ -40,12 +40,12 @@
+ class="text-break">
{{ $t(`sectionTemplates.label.category.${sectionTemplate.category}`) }}
@@ -54,10 +54,10 @@
align="center">
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/section-template/components/main/List.vue b/layout-webapp/src/main/webapp/vue-app/section-template/components/main/List.vue
index 6820675cb..f853b97cb 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-template/components/main/List.vue
+++ b/layout-webapp/src/main/webapp/vue-app/section-template/components/main/List.vue
@@ -22,17 +22,17 @@
-
+ :hide-default-header="$root.isMobile"
+ :items="filteredSectionTemplates"
+ :loading="loading"
+ must-sort>
+
@@ -40,183 +40,183 @@
+ :title="$t('sectionTemplates.label.confirmDeleteTitle')"
+ @closed="sectionTemplateToDelete = null"
+ @ok="deleteSectionTemplate(sectionTemplateToDelete)" />
diff --git a/layout-webapp/src/main/webapp/vue-app/section-template/components/main/Menu.vue b/layout-webapp/src/main/webapp/vue-app/section-template/components/main/Menu.vue
index 437d72d17..570992a40 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-template/components/main/Menu.vue
+++ b/layout-webapp/src/main/webapp/vue-app/section-template/components/main/Menu.vue
@@ -22,44 +22,44 @@
+ :left="!$vuetify.rtl"
+ offset-y
+ :right="$vuetify.rtl">
- fas fa-ellipsis-v
+ fas fa-ellipsis-v
+ @focusout="menu = false"
+ @mouseout="menu = false">
-
+
+ v-bind="attrs"
+ v-on="on">
+ target="_blank">
+ flat
+ min-width="15">
@@ -79,8 +79,8 @@
@click="$root.$emit('section-template-edit', sectionTemplate)">
+ flat
+ min-width="15">
fa-edit
@@ -94,8 +94,8 @@
@click="duplicateSectionTemplate">
+ flat
+ min-width="15">
fa-copy
@@ -104,18 +104,18 @@
{{ $t('sectionTemplates.label.duplicate') }}
-
+
+ v-bind="attrs"
+ v-on="on">
+ flat
+ min-width="15">
@@ -136,130 +136,130 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/section-template/main.js b/layout-webapp/src/main/webapp/vue-app/section-template/main.js
index f181ed675..b07427462 100644
--- a/layout-webapp/src/main/webapp/vue-app/section-template/main.js
+++ b/layout-webapp/src/main/webapp/vue-app/section-template/main.js
@@ -36,24 +36,24 @@ const lang = eXo?.env.portal.language || 'en';
const url = `/layout/i18n/locale.portlet.LayoutEditor?lang=${lang}`;
const appId = 'sectionTemplateManagement';
-export function init() {
+export function init () {
exoi18n.loadLanguageAsync(lang, url)
.then(i18n =>
Vue.createApp({
template: ` `,
- vuetify: Vue.prototype.vuetifyOptions,
+ vuetify: eXo.vuetify,
i18n,
data: () => ({
sectionTemplates: [],
loading: 0,
- collator: new Intl.Collator(eXo.env.portal.language, {numeric: true, sensitivity: 'base'}),
+ collator: new Intl.Collator(eXo.env.portal.language, { numeric: true, sensitivity: 'base' }),
}),
computed: {
- isMobile() {
- return this.$vuetify.breakpoint.smAndDown;
+ isMobile () {
+ return eXo.vuetify.display.smAndDown.value;
},
},
- created() {
+ created () {
this.$root.$on('section-template-enabled', this.refreshSectionTemplates);
this.$root.$on('section-template-disabled', this.refreshSectionTemplates);
this.$root.$on('section-template-saved', this.refreshSectionTemplates);
@@ -63,12 +63,12 @@ export function init() {
this.refreshSectionTemplates();
},
methods: {
- propagateEventListenerLocally(event) {
+ propagateEventListenerLocally (event) {
this.$root.$emit(event.type, event.detail);
},
- refreshSectionTemplates() {
+ refreshSectionTemplates () {
this.loading++;
- return this.$sectionTemplateService.getSectionTemplates()
+ return eXo.$sectionTemplateService.getSectionTemplates()
.then(data => this.sectionTemplates = data || [])
.finally(() => this.loading--);
},
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/SiteLayoutEditor.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/SiteLayoutEditor.vue
index 7037e6699..c44d8213a 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/SiteLayoutEditor.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/SiteLayoutEditor.vue
@@ -29,7 +29,6 @@
+ @initialized="initDraftSite"
+ @locked="stopLoading">
@@ -60,41 +60,41 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/Content.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/Content.vue
index 3df4de92a..532b51c29 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/Content.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/Content.vue
@@ -21,12 +21,12 @@
+ class="layout-page-body d-flex no-border-radius"
+ :container="$root.layout" />
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/PageBody.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/PageBody.vue
index 96f9c0438..a11842e5e 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/PageBody.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/PageBody.vue
@@ -22,19 +22,19 @@
+ class="position-relative layout-page-parent d-flex flex-column flex-shrink-1 z-index-zero"
+ :data-storage-id="storageId">
+ flat
+ min-height="30"
+ min-width="220">
{{ $t('layout.editSite.portalPage') }}
@@ -43,32 +43,32 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/Site.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/Site.vue
index 1cf2027e6..4c98ad3eb 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/Site.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/Site.vue
@@ -22,51 +22,51 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteBannerCell.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteBannerCell.vue
index 66222540e..77f3a6d6d 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteBannerCell.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteBannerCell.vue
@@ -23,26 +23,26 @@
+ :section="container"
+ @move-end="moveEnd"
+ @move-start="moveStart" />
- fab fa-readme
+ :height="isDynamicSection && 'calc(100% - 20px)' || '100%'">
+ fab fa-readme
{{ $t('layout.readonlyPortletContent') }}
@@ -63,42 +63,42 @@
+ class="position-absolute full-height t-0"
+ :class="$vuetify.rtl && 'l-0' || 'r-0'">
+ flat
+ height="100%"
+ min-height="100%"
+ :title="$t('layout.addApplicationButton')">
+ }">
fa-plus
{{ $t('layout.addApp') }}
@@ -110,150 +110,150 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteBannerSection.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteBannerSection.vue
index 3d0343452..509740317 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteBannerSection.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteBannerSection.vue
@@ -23,17 +23,17 @@
+ @move-end="movingSection = false"
+ @move-start="movingSection = true" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteMiddle.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteMiddle.vue
index b5ed41093..853bd57a1 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteMiddle.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteMiddle.vue
@@ -22,66 +22,66 @@
+ :parent-id="parentId"
+ type="site-middle-container" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteMiddleCenter.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteMiddleCenter.vue
index 6cd726740..1f01f7561 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteMiddleCenter.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteMiddleCenter.vue
@@ -22,73 +22,73 @@
+ type="site-middle-center-container" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteSidebarCell.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteSidebarCell.vue
index 64cf5a70d..9c78c12a1 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteSidebarCell.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/container/SiteSidebarCell.vue
@@ -22,38 +22,38 @@
+ :title="$t('layout.addApplicationButton')">
-
+
+
+
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/menu/BannerSectionMenu.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/menu/BannerSectionMenu.vue
index 76e2c5ae3..77a27821a 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/menu/BannerSectionMenu.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/menu/BannerSectionMenu.vue
@@ -27,26 +27,26 @@
+ @mouseout="hoverArea = false"
+ @mouseover="hoverArea = true">
+ }">
+ v-bind="attrs"
+ v-on="on">
fa-plus
@@ -63,34 +63,34 @@
+ @mouseout="hoverArea = false"
+ @mouseover="hoverArea = true">
-
+ :style="leftButtonStyle">
+
+ v-bind="attrs"
+ v-on="on">
+ @mouseup="$emit('move-end')">
fa-arrows-alt
@@ -106,26 +106,26 @@
+ @mouseout="hoverArea = false"
+ @mouseover="hoverArea = true">
+ }">
+ v-bind="attrs"
+ v-on="on">
fa-edit
@@ -142,22 +142,22 @@
+ @mouseout="hoverArea = false"
+ @mouseover="hoverArea = true">
+ v-bind="attrs"
+ v-on="on">
fa-plus
@@ -172,102 +172,102 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/menu/SidebarSectionMenu.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/menu/SidebarSectionMenu.vue
index 09b0f1af2..d9bc3d297 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/menu/SidebarSectionMenu.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/content/menu/SidebarSectionMenu.vue
@@ -30,13 +30,13 @@
+ v-bind="attrs"
+ v-on="on">
fa-edit
@@ -50,67 +50,67 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/drawer/EditApplicationDrawer.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/drawer/EditApplicationDrawer.vue
index deb1c8c99..095cc8afc 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/drawer/EditApplicationDrawer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/drawer/EditApplicationDrawer.vue
@@ -21,14 +21,14 @@
-->
-
+
{{ drawerTitle }}
@@ -41,9 +41,9 @@
+ flat
+ max-width="100%">
{{ $t('layout.applicationStyling') }}
@@ -53,10 +53,10 @@
v-if="initialized"
ref="marginInput"
v-model="container"
+ class="mt-4"
+ :diff="0"
:max="60"
:min="-60"
- :diff="0"
- class="mt-4"
@refresh="refresh++" />
+ on-icon="fa-check-square" />
+ class="mx-0"
+ value="150px">
{{ $t('layout.fixedHeight150') }}
+ class="mx-0"
+ value="300px">
{{ $t('layout.fixedHeight300') }}
+ class="mx-0"
+ value="500px">
{{ $t('layout.fixedHeight500') }}
+ class="mx-0"
+ :value="customHeight">
{{ $t('layout.fixedHeightCustom') }}
@@ -153,10 +153,10 @@
+ on-icon="fa-check-square" />
+ class="mx-0"
+ value="fit-content">
{{ $t('layout.fixedWidthAutoFill') }}
+ class="mx-0"
+ :value="customWidth">
{{ $t('layout.fixedWidthCustom') }}
@@ -199,10 +199,10 @@
+ on-icon="fa-check-square" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/MobilePreviewButton.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/MobilePreviewButton.vue
index cfefccf55..6f4f8078c 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/MobilePreviewButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/MobilePreviewButton.vue
@@ -28,7 +28,7 @@
:aria-label="label"
icon
@click="switchMode">
- {{ mobileDisplayMode ? 'fa-desktop' :'fa-mobile-alt' }}
+ {{ mobileDisplayMode ? 'fa-desktop' :'fa-mobile-alt' }}
@@ -37,19 +37,19 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SaveButton.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SaveButton.vue
index a9579736f..68dd43953 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SaveButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SaveButton.vue
@@ -23,14 +23,14 @@
+ v-bind="attrs"
+ v-on="on">
{{ $t('layout.publish') }}
@@ -40,33 +40,33 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SaveDraftButton.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SaveDraftButton.vue
index 5d9c1b02f..7af0467c3 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SaveDraftButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SaveDraftButton.vue
@@ -23,11 +23,11 @@
{{ $t('layout.saveDraft') }}
@@ -36,31 +36,31 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SiteEditSectionsButton.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SiteEditSectionsButton.vue
index da5c51a1b..c37070742 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SiteEditSectionsButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SiteEditSectionsButton.vue
@@ -26,10 +26,10 @@
- fa-edit
+ fa-edit
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SitePreviewButton.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SitePreviewButton.vue
index 53519091f..095eadd11 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SitePreviewButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SitePreviewButton.vue
@@ -25,13 +25,13 @@
- fa-eye
+ fa-eye
@@ -40,30 +40,30 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SitePropertiesButton.vue b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SitePropertiesButton.vue
index f120ffa59..9e049fecf 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SitePropertiesButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/components/toolbar/actions/SitePropertiesButton.vue
@@ -26,10 +26,10 @@
- fa-palette
+ fa-palette
diff --git a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/main.js b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/main.js
index de1f4902f..112a5ec5a 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-layout-editor/main.js
+++ b/layout-webapp/src/main/webapp/vue-app/site-layout-editor/main.js
@@ -45,17 +45,17 @@ const lang = eXo?.env.portal.language || 'en';
//should expose the locale ressources as REST API
const url = `/layout/i18n/locale.portlet.LayoutEditor?lang=${lang}`;
-export function init() {
+export function init () {
exoi18n.loadLanguageAsync(lang, url)
.then(i18n => {
// init Vue app when locale ressources are ready
Vue.createApp({
template: ` `,
- vuetify: Vue.prototype.vuetifyOptions,
+ vuetify: eXo.vuetify,
i18n,
data: () => ({
containerTypes: extensionRegistry.loadExtensions('layout-editor', 'container'),
- collator: new Intl.Collator(eXo.env.portal.language, {numeric: true, sensitivity: 'base'}),
+ collator: new Intl.Collator(eXo.env.portal.language, { numeric: true, sensitivity: 'base' }),
hoveredParentId: null,
hoveredSectionId: null,
hoveredSection: null,
@@ -91,145 +91,145 @@ export function init() {
middleCenterContainersMinHeight: 0,
}),
computed: {
- parentAppX() {
+ parentAppX () {
return this.parentAppDimensions?.x || 0;
},
- parentAppY() {
+ parentAppY () {
return this.parentAppDimensions?.y || 0;
},
- defaultContainer() {
+ defaultContainer () {
return this.containerTypes.find(extension => extension.type === 'default');
},
- isResize() {
+ isResize () {
return this.moveType === 'resize';
},
- isMove() {
+ isMove () {
return this.moveType === 'drag';
},
- mobileDisplayMode() {
+ mobileDisplayMode () {
return this.$root.displayMode === 'mobile';
},
- desktopDisplayMode() {
+ desktopDisplayMode () {
return this.$root.displayMode === 'desktop';
},
- siteId() {
- return this.$layoutUtils.getQueryParam('siteId');
+ siteId () {
+ return eXo.$layoutUtils.getQueryParam('siteId');
},
- siteType() {
+ siteType () {
return this.site?.siteType?.toUpperCase?.();
},
- siteName() {
+ siteName () {
return this.site?.name;
},
- isSiteTemplate() {
+ isSiteTemplate () {
return this.siteType === 'PORTAL_TEMPLATE' || this.siteType === 'GROUP_TEMPLATE';
},
- siteUri() {
+ siteUri () {
return this.isSiteTemplate ? `${eXo.env.portal.context}/t/${this.siteId}` : `${eXo.env.portal.context}/${this.siteName}`;
},
- draftSiteType() {
+ draftSiteType () {
return this.draftSite?.siteType;
},
- draftSiteName() {
+ draftSiteName () {
return this.draftSite?.name;
},
- draftNodeUri() {
+ draftNodeUri () {
return `/d/${this.draftSiteId}/`;
},
- leftContainer() {
+ leftContainer () {
return this.layout?.children?.[0];
},
- middleContainer() {
- return this.layout?.children?.find(c => c.template === this.$layoutUtils.siteBodyMiddleTemplate);
+ middleContainer () {
+ return this.layout?.children?.find(c => c.template === eXo.$layoutUtils.siteBodyMiddleTemplate);
},
- middleContainerBannersHeight() {
+ middleContainerBannersHeight () {
return this.$root.middleContainer?.children?.map?.(c => (c.height && Number(c.height) || 57) + (c.marginTop || 0) + (c.marginBottom || 0))?.reduce?.((acc, v) => acc + v, 0) || 0;
},
- rightContainer() {
+ rightContainer () {
return this.layout?.children?.[2];
},
- middleCenterContainer() {
- return this.middleContainer?.children?.find(c => c.template === this.$layoutUtils.siteBodyMiddleCenterTemplate);
+ middleCenterContainer () {
+ return this.middleContainer?.children?.find(c => c.template === eXo.$layoutUtils.siteBodyMiddleCenterTemplate);
},
- middleCenterContainerIndex() {
- return this.middleContainer?.children?.findIndex(c => c.template === this.$layoutUtils.siteBodyMiddleCenterTemplate);
+ middleCenterContainerIndex () {
+ return this.middleContainer?.children?.findIndex(c => c.template === eXo.$layoutUtils.siteBodyMiddleCenterTemplate);
},
- internalLeftContainer() {
+ internalLeftContainer () {
return this.middleCenterContainer?.children?.[0];
},
- pageBodyContainer() {
+ pageBodyContainer () {
return this.middleCenterContainer?.children?.[1];
},
- internalRightContainer() {
+ internalRightContainer () {
return this.middleCenterContainer?.children?.[2];
},
},
watch: {
- movingParentId() {
+ movingParentId () {
if (this.movingParentId) {
this.$root.$emit('layout-editor-moving-start', this.movingParentId);
} else {
this.$root.$emit('layout-editor-moving-end', this.movingParentId);
}
},
- async siteType() {
+ async siteType () {
if (this.isSiteTemplate) {
- this.siteTemplate = await this.$siteTemplateService.getSiteTemplate(this.siteId);
+ this.siteTemplate = await eXo.$siteTemplateService.getSiteTemplate(this.siteId);
}
},
},
- created() {
+ created () {
document.addEventListener('extension-layout-editor-container-updated', this.refreshContainerTypes);
this.$on('layout-editor-portlet-instances-refresh', this.refreshPortletInstances);
document.addEventListener('drawerOpened', this.setDrawerOpened);
document.addEventListener('drawerClosed', this.setDrawerClosed);
this.refreshPortletInstances();
- this.$siteLayoutService.getSiteById(this.siteId)
+ eXo.$siteLayoutService.getSiteById(this.siteId)
.then(site => this.site = site);
- this.$brandingService.getBrandingInformation()
+ eXo.$brandingService.getBrandingInformation()
.then(data => this.branding = data);
},
- mounted() {
+ mounted () {
this.$el?.closest?.('.PORTLET-FRAGMENT')?.classList?.remove?.('PORTLET-FRAGMENT');
},
methods: {
- setDrawerOpened() {
+ setDrawerOpened () {
this.drawerOpened++;
},
- setDrawerClosed() {
+ setDrawerClosed () {
this.drawerOpened--;
},
- refreshPortletInstances() {
+ refreshPortletInstances () {
this.loadingPortletInstances = true;
- return this.$portletInstanceCategoryService.getPortletInstanceCategories()
+ return eXo.$portletInstanceCategoryService.getPortletInstanceCategories()
.then(categories => this.portletInstanceCategories = categories)
- .then(() => this.$portletInstanceService.getPortletInstances())
+ .then(() => eXo.$portletInstanceService.getPortletInstances())
.then(applications => this.portletInstances = applications.filter(a => !a.disabled))
.finally(() => this.loadingPortletInstances = false);
},
- refreshContainerTypes() {
+ refreshContainerTypes () {
this.containerTypes = extensionRegistry.loadExtensions('layout-editor', 'container');
},
- updateParentAppDimensions() {
+ updateParentAppDimensions () {
this.parentAppDimensions = document.querySelector('#siteLayoutEditor').getBoundingClientRect();
},
- initScrollPosition() {
+ initScrollPosition () {
this.updateParentAppDimensions();
this.startScrollX = this.parentAppDimensions.x;
this.startScrollY = this.parentAppDimensions.y;
this.diffScrollX = 0;
this.diffScrollY = 0;
},
- updateScrollPosition() {
+ updateScrollPosition () {
this.updateParentAppDimensions();
this.diffScrollX = this.parentAppDimensions.x - this.startScrollX;
this.diffScrollY = this.parentAppDimensions.y - this.startScrollY;
},
- initCellsSelection() {
+ initCellsSelection () {
this.selectedSectionId = null;
this.moveType = null;
},
- resetMoving() {
+ resetMoving () {
this.parentAppDimensions = null;
this.moveType = null;
},
@@ -237,7 +237,7 @@ export function init() {
}, `#${appId}`, 'Site Layout Editor');
})
.finally(() => {
- Vue.prototype.$utils.includeExtensions('LayoutEditorExtension');
+ eXo.$utils.includeExtensions('LayoutEditorExtension');
document.dispatchEvent(new CustomEvent('displayTopBarLoading'));
});
}
diff --git a/layout-webapp/src/main/webapp/vue-app/site-management/components/SiteManagement.vue b/layout-webapp/src/main/webapp/vue-app/site-management/components/SiteManagement.vue
index 4d9f97905..5e68790f2 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-management/components/SiteManagement.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-management/components/SiteManagement.vue
@@ -26,16 +26,16 @@
ref="toolbar"
@site-filter="keyword = $event" />
+ :sites="sites" />
@@ -52,71 +52,71 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/site-management/components/drawer/SiteFormDrawer.vue b/layout-webapp/src/main/webapp/vue-app/site-management/components/drawer/SiteFormDrawer.vue
index 5d5f11002..33d47d33b 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-management/components/drawer/SiteFormDrawer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-management/components/drawer/SiteFormDrawer.vue
@@ -21,12 +21,12 @@
id="sitePropertiesDrawer"
ref="drawer"
v-model="drawer"
- :loading="loading"
- :right="!$vuetify.rtl"
:allow-expand="!$root.isMobile"
:go-back-button="isNew && step && !initialStep"
- @expand-updated="expanded = $event"
+ :loading="loading"
+ :right="!$vuetify.rtl"
@closed="close"
+ @expand-updated="expanded = $event"
@go-back="step = 0">
{{ isNew && $t('siteManagement.drawer.addSite.title') || $t('siteManagement.drawer.properties.title') }}
@@ -41,15 +41,15 @@
{{ $t('sites.stepper.start') }}
@@ -59,21 +59,21 @@
+ flat
+ vertical>
+ editable
+ :step="1">
{{ $t('sites.stepper.properties') }}
-
+
+ :max-length="maxDescriptionLength"
+ :no-expand-icon="!expanded"
+ :object-id="siteId"
+ object-type="site"
+ :placeholder="$t('siteManagement.label.siteDescription.placeholder')"
+ rich-editor
+ :supported-languages="supportedLanguages">
{{ $t('siteManagement.label.siteDescription.title') }}
@@ -152,11 +152,11 @@
id="siteDescription"
ref="siteDescriptionEditor"
v-model="siteDescription"
- :placeholder="$t('siteManagement.label.siteDescription.placeholder')"
- :max-length="maxDescriptionLength"
- :tag-enabled="false"
+ ck-editor-type="site"
disable-suggester
- ck-editor-type="site" />
+ :max-length="maxDescriptionLength"
+ :placeholder="$t('siteManagement.label.siteDescription.placeholder')"
+ :tag-enabled="false" />
+ :banner-data="bannerData"
+ :banner-url="siteBannerUrl" />
+ :step="2">
{{ $t('sites.stepper.permissions') }}
-
+
-
+
+ @click="step++">
{{ $t('siteManagement.label.btn.next') }}
+ @click="saveSite">
{{ $t('siteManagement.label.btn.save') }}
@@ -228,192 +228,192 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/site-management/components/drawer/SiteTemplateDrawer.vue b/layout-webapp/src/main/webapp/vue-app/site-management/components/drawer/SiteTemplateDrawer.vue
index 35d32aca4..cd860ff4a 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-management/components/drawer/SiteTemplateDrawer.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-management/components/drawer/SiteTemplateDrawer.vue
@@ -18,42 +18,42 @@
-->
-
+
fas fa-arrow-left
{{ $t('siteManagement.label.siteTemplate.drawer.title') }}
-
+
{{ $t('siteManagement.label.siteTemplate') }}
+ max-width="500"
+ :src="siteTemplateSkeleton" />
-
+
{{ $t('siteManagement.label.btn.save') }}
@@ -71,45 +71,45 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-management/components/form/SiteBanner.vue b/layout-webapp/src/main/webapp/vue-app/site-management/components/form/SiteBanner.vue
index 9c946ddee..164645515 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-management/components/form/SiteBanner.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-management/components/form/SiteBanner.vue
@@ -35,17 +35,17 @@
+ v-bind="attrs"
+ v-on="on">
@@ -53,80 +53,80 @@
+ transition="none" />
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-management/components/form/SiteTemplate.vue b/layout-webapp/src/main/webapp/vue-app/site-management/components/form/SiteTemplate.vue
index 3d2c81130..32d9309a0 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-management/components/form/SiteTemplate.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-management/components/form/SiteTemplate.vue
@@ -24,19 +24,19 @@
-
{{ siteTemplate.icon || 'fa-globe' }}
+
{{ siteTemplate.icon || 'fa-globe' }}
{{ $t('layout.use') }}
{{ $t('layout.preview') }}
@@ -74,43 +74,43 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-management/components/header/SiteToolbar.vue b/layout-webapp/src/main/webapp/vue-app/site-management/components/header/SiteToolbar.vue
index 817ed1eab..b34860d8b 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-management/components/header/SiteToolbar.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-management/components/header/SiteToolbar.vue
@@ -22,19 +22,19 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/site-management/components/main/Item.vue b/layout-webapp/src/main/webapp/vue-app/site-management/components/main/Item.vue
index 356c7622b..76383d266 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-management/components/main/Item.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-management/components/main/Item.vue
@@ -24,15 +24,15 @@
+ class="pe-0"
+ colspan="2">
+ color="transparent"
+ flat
+ min-width="35">
{{ site.icon || 'fa-globe' }}
@@ -45,7 +45,7 @@
width="50%">
-
+
fa-project-diagram
-
+
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-management/components/main/List.vue b/layout-webapp/src/main/webapp/vue-app/site-management/components/main/List.vue
index 97a6ee9b6..e305b3e5f 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-management/components/main/List.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-management/components/main/List.vue
@@ -21,17 +21,17 @@
-->
-
+ :hide-default-header="$root.isMobile"
+ :items="filteredSites"
+ :loading="loading"
+ :must-sort="!$root.isMobile">
+
@@ -39,157 +39,157 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/site-management/components/main/Menu.vue b/layout-webapp/src/main/webapp/vue-app/site-management/components/main/Menu.vue
index 59c55531b..a35dbf911 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-management/components/main/Menu.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-management/components/main/Menu.vue
@@ -21,42 +21,42 @@
+ :right="!$vuetify.rtl"
+ transition="slide-x-reverse-transition">
- fas fa-ellipsis-v
+ fas fa-ellipsis-v
+ bottom
+ :disabled="canEditSiteLayout">
+ v-bind="attrs"
+ v-on="on">
+ target="_blank">
+ flat
+ min-width="15">
@@ -77,10 +77,10 @@
class="px-3"
@click="handelAction(extension)">
+ color="transparent"
+ flat
+ min-width="15">
{{ extension?.icon }}
@@ -93,13 +93,13 @@
+ flat
+ min-width="15">
fa fa-cog
@@ -110,13 +110,13 @@
+ flat
+ min-width="15">
fas fa-project-diagram
@@ -128,14 +128,14 @@
+ flat
+ min-width="15">
fas fa-shield-alt
@@ -150,8 +150,8 @@
+ flat
+ min-width="15">
fa-copy
@@ -166,8 +166,8 @@
+ flat
+ min-width="15">
fa-columns
@@ -183,8 +183,8 @@
+ flat
+ min-width="15">
fa-undo
@@ -200,8 +200,8 @@
+ flat
+ min-width="15">
fa-undo
@@ -212,21 +212,21 @@
+ bottom
+ :disabled="canDelete">
+ v-bind="attrs"
+ v-on="on">
+ flat
+ min-width="15">
@@ -245,133 +245,133 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-management/main.js b/layout-webapp/src/main/webapp/vue-app/site-management/main.js
index a0d317ba6..6fc95eb78 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-management/main.js
+++ b/layout-webapp/src/main/webapp/vue-app/site-management/main.js
@@ -40,27 +40,27 @@ const lang = eXo?.env.portal.language || 'en';
const urls = [
`/layout/i18n/locale.portlet.SiteManagement?lang=${lang}`,
`/layout/i18n/locale.portlet.SiteNavigation?lang=${lang}`,
- `/layout/i18n/locale.portlet.LayoutEditor?lang=${lang}`
+ `/layout/i18n/locale.portlet.LayoutEditor?lang=${lang}`,
];
-export function init() {
+export function init () {
exoi18n.loadLanguageAsync(lang, urls)
.then(i18n => {
// init Vue app when locale ressources are ready
Vue.createApp({
template: ` `,
- vuetify: Vue.prototype.vuetifyOptions,
+ vuetify: eXo.vuetify,
i18n,
data: () => ({
pageTemplates: null,
- collator: new Intl.Collator(eXo.env.portal.language, {numeric: true, sensitivity: 'base'}),
+ collator: new Intl.Collator(eXo.env.portal.language, { numeric: true, sensitivity: 'base' }),
}),
computed: {
- isMobile() {
- return this.$vuetify.breakpoint.smAndDown;
+ isMobile () {
+ return eXo.vuetify.display.smAndDown.value;
},
},
}, `#${appId}`, 'site-management');
- }).finally(() => Vue.prototype.$utils?.includeExtensions?.('SiteManagementExtension'));
+ }).finally(() => eXo.$utils?.includeExtensions?.('SiteManagementExtension'));
}
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SiteNavigation.vue b/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SiteNavigation.vue
index f2de2b973..f1878d131 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SiteNavigation.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SiteNavigation.vue
@@ -24,17 +24,17 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SiteNavigationButton.vue b/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SiteNavigationButton.vue
index 52a03646a..29e2f22bb 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SiteNavigationButton.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SiteNavigationButton.vue
@@ -19,25 +19,25 @@
fa-project-diagram
diff --git a/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SiteNavigationDrawersActions.vue b/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SiteNavigationDrawersActions.vue
index 69b974977..486070130 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SiteNavigationDrawersActions.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SiteNavigationDrawersActions.vue
@@ -26,24 +26,24 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SpaceTemplateCreateListener.vue b/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SpaceTemplateCreateListener.vue
index 80b4b5391..fa2e8e8ea 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SpaceTemplateCreateListener.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SpaceTemplateCreateListener.vue
@@ -19,32 +19,32 @@
-->
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SpaceTemplateEditLayoutSpaceMenuItem.vue b/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SpaceTemplateEditLayoutSpaceMenuItem.vue
index c3bf95248..d0bf87813 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SpaceTemplateEditLayoutSpaceMenuItem.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-navigation/components/SpaceTemplateEditLayoutSpaceMenuItem.vue
@@ -21,15 +21,15 @@
+ bottom
+ :disabled="!spaceTemplate.system">
+ v-bind="attrs"
+ v-on="on">
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-navigation/main.js b/layout-webapp/src/main/webapp/vue-app/site-navigation/main.js
index d073aaee8..494d2b950 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-navigation/main.js
+++ b/layout-webapp/src/main/webapp/vue-app/site-navigation/main.js
@@ -33,19 +33,19 @@ if (extensionRegistry) {
extensionRegistry.registerComponent('manageSpaceActions', 'manage-space-actions', {
id: 'manage-space-actions',
- vueComponent: Vue.options.components['site-navigation-button'],
+ vueComponent: Vue.component['site-navigation-button'],
rank: 20,
});
extensionRegistry.registerComponent('manageSpaceDrawers', 'manage-space-drawers', {
id: 'manage-space-drawers',
- vueComponent: Vue.options.components['site-navigation-drawers-actions'],
+ vueComponent: Vue.component['site-navigation-drawers-actions'],
rank: 20,
});
extensionRegistry.registerComponent('space-templates', 'space-templates-drawers', {
id: 'manage-space-drawers',
- vueComponent: Vue.options.components['site-navigation-drawers-actions'],
+ vueComponent: Vue.component['site-navigation-drawers-actions'],
rank: 10,
});
@@ -70,12 +70,12 @@ const lang = eXo && eXo.env.portal.language || 'en';
const url = `/layout/i18n/locale.portlet.SiteNavigation?lang=${lang}`;
const i18nPromise = exoi18n.loadLanguageAsync(lang, url);
-export function init(canManageSiteNavigation) {
+export function init (canManageSiteNavigation) {
i18nPromise.then(i18n => {
// init Vue app when locale ressources are ready
Vue.createApp({
template: ` `,
- vuetify: Vue.prototype.vuetifyOptions,
+ vuetify: eXo.vuetify,
i18n,
data: () => ({
pageTemplates: null,
diff --git a/layout-webapp/src/main/webapp/vue-app/site-template/components/SiteTemplateManagement.vue b/layout-webapp/src/main/webapp/vue-app/site-template/components/SiteTemplateManagement.vue
index 3757cd6ae..49b1168a9 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-template/components/SiteTemplateManagement.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-template/components/SiteTemplateManagement.vue
@@ -38,9 +38,9 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/site-template/components/header/Toolbar.vue b/layout-webapp/src/main/webapp/vue-app/site-template/components/header/Toolbar.vue
index 54be9b81a..ef7408de0 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-template/components/header/Toolbar.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-template/components/header/Toolbar.vue
@@ -22,19 +22,19 @@
diff --git a/layout-webapp/src/main/webapp/vue-app/site-template/components/main/Item.vue b/layout-webapp/src/main/webapp/vue-app/site-template/components/main/Item.vue
index 877ded174..dcb04989b 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-template/components/main/Item.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-template/components/main/Item.vue
@@ -24,15 +24,15 @@
+ class="pe-0"
+ colspan="2">
+ color="transparent"
+ flat
+ min-width="35">
{{ siteTemplate.icon || 'fa-globe' }}
@@ -40,7 +40,7 @@
@@ -50,10 +50,10 @@
align="center">
@@ -62,66 +62,66 @@
\ No newline at end of file
diff --git a/layout-webapp/src/main/webapp/vue-app/site-template/components/main/List.vue b/layout-webapp/src/main/webapp/vue-app/site-template/components/main/List.vue
index 0c3e899ab..69b6ab1f4 100644
--- a/layout-webapp/src/main/webapp/vue-app/site-template/components/main/List.vue
+++ b/layout-webapp/src/main/webapp/vue-app/site-template/components/main/List.vue
@@ -22,17 +22,17 @@