diff --git a/locales/default.pot b/locales/default.pot
index 2d3c04601..730692e22 100644
--- a/locales/default.pot
+++ b/locales/default.pot
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: BEdita 4 \n"
-"POT-Creation-Date: 2025-10-29 11:08:16 \n"
+"POT-Creation-Date: 2025-12-31 09:53:48 \n"
"MIME-Version: 1.0 \n"
"Content-Transfer-Encoding: 8bit \n"
"Language-Team: BEdita I18N & I10N Team \n"
@@ -451,6 +451,9 @@ msgstr ""
msgid "Less"
msgstr ""
+msgid "Limit"
+msgstr ""
+
msgid "List"
msgstr ""
@@ -585,6 +588,9 @@ msgstr ""
msgid "Number of created objects"
msgstr ""
+msgid "Number of folders"
+msgstr ""
+
msgid "Number of login errors"
msgstr ""
@@ -876,6 +882,9 @@ msgstr ""
msgid "Temporary folder missing"
msgstr ""
+msgid "The number of folders is too high to be displayed in tree-compact view"
+msgstr ""
+
msgid "There were errors creating the thumbnail(s)"
msgstr ""
@@ -927,6 +936,12 @@ msgstr ""
msgid "Trashd"
msgstr ""
+msgid "Tree"
+msgstr ""
+
+msgid "Tree compact"
+msgstr ""
+
msgid "Tree view"
msgstr ""
@@ -1017,6 +1032,9 @@ msgstr ""
msgid "You are not authorized to access this resource"
msgstr ""
+msgid "You cannot see folders in tree-compact view"
+msgstr ""
+
msgid "You do not have the required permissions to view this page."
msgstr ""
@@ -1550,6 +1568,30 @@ msgstr ""
msgid "View"
msgstr ""
+msgid "New content"
+msgstr ""
+
+msgid "New folder"
+msgstr ""
+
+msgid "Open in new tab"
+msgstr ""
+
+msgid "Undo"
+msgstr ""
+
+msgid "Choose object type"
+msgstr ""
+
+msgid "Object type"
+msgstr ""
+
+msgid "Parent folder"
+msgstr ""
+
+msgid "/ (root)"
+msgstr ""
+
msgid "Add new tag"
msgstr ""
@@ -1612,9 +1654,6 @@ msgstr ""
msgid "Edit related objects"
msgstr ""
-msgid "Choose object type"
-msgstr ""
-
msgid "Choose relation"
msgstr ""
@@ -1922,9 +1961,6 @@ msgstr ""
msgid "Invalid date range"
msgstr ""
-msgid "Undo"
-msgstr ""
-
msgid "Copied!"
msgstr ""
@@ -1940,6 +1976,12 @@ msgstr ""
msgid "Error on deleting category"
msgstr ""
+msgid "Create new"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
msgid "Allowed types"
msgstr ""
diff --git a/locales/en_US/default.po b/locales/en_US/default.po
index 04a352a16..f253ceb9d 100644
--- a/locales/en_US/default.po
+++ b/locales/en_US/default.po
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: BEdita Manager \n"
-"POT-Creation-Date: 2025-10-29 11:08:16 \n"
+"POT-Creation-Date: 2025-12-31 09:53:48 \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: BEdita I18N & I10N Team \n"
@@ -454,6 +454,9 @@ msgstr ""
msgid "Less"
msgstr ""
+msgid "Limit"
+msgstr ""
+
msgid "List"
msgstr ""
@@ -588,6 +591,9 @@ msgstr ""
msgid "Number of created objects"
msgstr ""
+msgid "Number of folders"
+msgstr ""
+
msgid "Number of login errors"
msgstr ""
@@ -879,6 +885,9 @@ msgstr ""
msgid "Temporary folder missing"
msgstr ""
+msgid "The number of folders is too high to be displayed in tree-compact view"
+msgstr ""
+
msgid "There were errors creating the thumbnail(s)"
msgstr ""
@@ -930,6 +939,12 @@ msgstr ""
msgid "Trashd"
msgstr "Trashed"
+msgid "Tree"
+msgstr ""
+
+msgid "Tree compact"
+msgstr ""
+
msgid "Tree view"
msgstr ""
@@ -1020,6 +1035,9 @@ msgstr ""
msgid "You are not authorized to access this resource"
msgstr ""
+msgid "You cannot see folders in tree-compact view"
+msgstr ""
+
msgid "You do not have the required permissions to view this page."
msgstr ""
@@ -1553,6 +1571,30 @@ msgstr ""
msgid "View"
msgstr ""
+msgid "New content"
+msgstr ""
+
+msgid "New folder"
+msgstr ""
+
+msgid "Open in new tab"
+msgstr ""
+
+msgid "Undo"
+msgstr ""
+
+msgid "Choose object type"
+msgstr ""
+
+msgid "Object type"
+msgstr ""
+
+msgid "Parent folder"
+msgstr ""
+
+msgid "/ (root)"
+msgstr ""
+
msgid "Add new tag"
msgstr ""
@@ -1615,9 +1657,6 @@ msgstr ""
msgid "Edit related objects"
msgstr ""
-msgid "Choose object type"
-msgstr ""
-
msgid "Choose relation"
msgstr ""
@@ -1925,9 +1964,6 @@ msgstr ""
msgid "Invalid date range"
msgstr ""
-msgid "Undo"
-msgstr ""
-
msgid "Copied!"
msgstr ""
@@ -1943,6 +1979,12 @@ msgstr ""
msgid "Error on deleting category"
msgstr ""
+msgid "Create new"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
msgid "Allowed types"
msgstr ""
diff --git a/locales/it_IT/default.po b/locales/it_IT/default.po
index bf1b9d702..d30fad502 100644
--- a/locales/it_IT/default.po
+++ b/locales/it_IT/default.po
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: BEdita Manager \n"
-"POT-Creation-Date: 2025-10-29 11:08:16 \n"
+"POT-Creation-Date: 2025-12-31 09:53:48 \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: BEdita I18N & I10N Team \n"
@@ -457,6 +457,9 @@ msgstr "Tipi di sinistra"
msgid "Less"
msgstr "Meno"
+msgid "Limit"
+msgstr "Limite"
+
msgid "List"
msgstr "Lista"
@@ -593,6 +596,9 @@ msgstr "Non trovato"
msgid "Number of created objects"
msgstr "Numero di oggetti creati"
+msgid "Number of folders"
+msgstr "Numero di cartelle"
+
msgid "Number of login errors"
msgstr "Numero di errori di accesso"
@@ -887,6 +893,9 @@ msgstr "Tag"
msgid "Temporary folder missing"
msgstr "Cartella temporanea mancante"
+msgid "The number of folders is too high to be displayed in tree-compact view"
+msgstr "Il numero di cartelle è troppo alto per essere visualizzato nella vista ad albero compatta"
+
msgid "There were errors creating the thumbnail(s)"
msgstr "È avvenuto un errore nella creazione delle miniature"
@@ -938,6 +947,12 @@ msgstr "Cestino"
msgid "Trashd"
msgstr "Cancellato"
+msgid "Tree"
+msgstr "Albero"
+
+msgid "Tree compact"
+msgstr "Albero compatto"
+
msgid "Tree view"
msgstr "Vista ad albero"
@@ -1028,6 +1043,9 @@ msgstr "Non sei autorizzato ad accedere a quest'area."
msgid "You are not authorized to access this resource"
msgstr "Non sei autorizzato ad accedere a questa risorsa"
+msgid "You cannot see folders in tree-compact view"
+msgstr "Non puoi vedere le cartelle nella vista ad albero compatta"
+
msgid "You do not have the required permissions to view this page."
msgstr "Non hai i permessi necessari per visualizzare questa pagina."
@@ -1572,6 +1590,30 @@ msgstr "pagina"
msgid "View"
msgstr "Vedi"
+msgid "New content"
+msgstr "Nuovo contenuto"
+
+msgid "New folder"
+msgstr "Nuova cartella"
+
+msgid "Open in new tab"
+msgstr "Apri in una nuova scheda"
+
+msgid "Undo"
+msgstr "Annulla"
+
+msgid "Choose object type"
+msgstr "Scegli il tipo di oggetto"
+
+msgid "Object type"
+msgstr "Tipo di oggetto"
+
+msgid "Parent folder"
+msgstr "Cartella genitore"
+
+msgid "/ (root)"
+msgstr "/ (radice)"
+
msgid "Add new tag"
msgstr "Aggiungi un nuovo tag"
@@ -1634,9 +1676,6 @@ msgstr "Si è verificato un errore durante la creazione del nuovo oggetto."
msgid "Edit related objects"
msgstr "Modifica oggetti correlati"
-msgid "Choose object type"
-msgstr "Scegli il tipo di oggetto"
-
msgid "Choose relation"
msgstr "Scegli la relazione"
@@ -1950,9 +1989,6 @@ msgstr "Tutti i giorni"
msgid "Invalid date range"
msgstr "Intervallo date non valido"
-msgid "Undo"
-msgstr "Annulla"
-
msgid "Copied!"
msgstr "Copiato!"
@@ -1968,6 +2004,12 @@ msgstr "Errore durante il salvataggio della categoria"
msgid "Error on deleting category"
msgstr "Errore durante l'eliminazione della categoria"
+msgid "Create new"
+msgstr "Crea nuovo"
+
+msgid "Loading"
+msgstr "Caricamento in corso"
+
msgid "Allowed types"
msgstr "Tipi consentiti"
diff --git a/package.json b/package.json
index 6b6b14f51..86069126f 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,12 @@
},
"dependencies": {
"@chialab/typos": "^0.1.1",
+ "@fullcalendar/core": "^6.1.15",
+ "@fullcalendar/daygrid": "^6.1.15",
+ "@fullcalendar/interaction": "^6.1.15",
+ "@fullcalendar/list": "^6.1.15",
+ "@fullcalendar/timegrid": "^6.1.15",
+ "@fullcalendar/vue": "^6.1.15",
"@riophae/vue-treeselect": "^0.4.0",
"@trevoreyre/autocomplete-vue": "^2.4.1",
"abortcontroller-polyfill": "^1.7.6",
@@ -76,4 +82,4 @@
"webpack-watch-files-plugin": "^1.2.0"
},
"packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610"
-}
\ No newline at end of file
+}
diff --git a/resources/js/app/app.js b/resources/js/app/app.js
index f131e488d..d3dc74b73 100644
--- a/resources/js/app/app.js
+++ b/resources/js/app/app.js
@@ -113,6 +113,7 @@ const _vueInstance = new Vue({
FieldString: () => import(/* webpackChunkName: "field-string" */'app/components/form/field-string'),
FieldTextarea: () => import(/* webpackChunkName: "field-textarea" */'app/components/form/field-textarea'),
FieldTitle: () => import(/* webpackChunkName: "field-title" */'app/components/form/field-title'),
+ CalendarView: () => import(/* webpackChunkName: "calendar-view" */'app/components/calendar-view/calendar-view'),
ObjectInfo: () => import(/* webpackChunkName: "object-info" */'app/components/object-info/object-info'),
RelatedObjectsFilter: () => import(/* webpackChunkName: "related-objects-filter" */'app/components/related-objects-filter/related-objects-filter'),
ModuleProperties: () => import(/* webpackChunkName: "module-properties" */'app/components/module/module-properties'),
@@ -629,6 +630,7 @@ window._vueInstance = _vueInstance;
// use component everywhere in Manager
Vue.component('AppIcon', AppIcon);
+Vue.component('CalendarView', _vueInstance.$options.components.CalendarView);
Vue.component('ClipboardItem', _vueInstance.$options.components.ClipboardItem);
Vue.component('DateRangesView', _vueInstance.$options.components.DateRangesView);
Vue.component('FieldCheckbox', _vueInstance.$options.components.FieldCheckbox);
diff --git a/resources/js/app/components/calendar-view/calendar-view.vue b/resources/js/app/components/calendar-view/calendar-view.vue
new file mode 100644
index 000000000..02664e0a2
--- /dev/null
+++ b/resources/js/app/components/calendar-view/calendar-view.vue
@@ -0,0 +1,526 @@
+
+