From a27173ee4a1cd8b35e0789c850ea35423e95c56a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Tue, 14 Apr 2026 15:24:34 +0200 Subject: [PATCH] Add `IsCurrentlyEdited` and `CurrentlyEditingIcon` components with lock display logic - Introduced `IsCurrentlyEdited.vue` and `CurrentlyEditingIcon.vue` to display lock status and editing users with modal support. - Refactored button components (`WopiEditButton.vue`, `DesktopEditButton.vue`) to dynamically compute classes based on lock and editor states. - Updated `DocumentActionButtonsGroup.vue` to include lock-related components for enhanced editing status visibility. - Added new localization keys for lock-related messages and implemented `localizeList` helper for list formatting. - Amended `package.json` with `tsc-check` script for stricter TypeScript checks. --- package.json | 3 +- .../vuejs/DocumentActionButtonsGroup.vue | 12 +++- .../CurrentlyEditingIcon.vue | 38 ++++++++++++ .../StoredObjectButton/DesktopEditButton.vue | 17 +++++- .../StoredObjectButton/IsCurrentlyEdited.vue | 61 +++++++++++++++++++ .../StoredObjectButton/WopiEditButton.vue | 17 +++++- .../translations/messages+intl-icu.fr.yml | 8 +++ .../localizationHelper/localizationHelper.ts | 10 +++ 8 files changed, 160 insertions(+), 6 deletions(-) create mode 100644 src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/CurrentlyEditingIcon.vue create mode 100644 src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/IsCurrentlyEdited.vue diff --git a/package.json b/package.json index cd4f23a07..c13054f52 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,8 @@ "specs-create-dir": "mkdir -p templates/api", "specs": "yarn run specs-create-dir && yarn run specs-build && yarn run specs-validate", "version": "node --version", - "eslint": "eslint-baseline --fix \"src/**/*.{js,ts,vue}\"" + "eslint": "eslint-baseline --fix \"src/**/*.{js,ts,vue}\"", + "tsc-check": "vue-tsc --noEmit" }, "private": true } diff --git a/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentActionButtonsGroup.vue b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentActionButtonsGroup.vue index baa99c5ab..226d748a0 100644 --- a/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentActionButtonsGroup.vue +++ b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentActionButtonsGroup.vue @@ -14,8 +14,13 @@ aria-expanded="false" > Actions + @@ -73,12 +79,14 @@ import { is_object_ready, } from "./StoredObjectButton/helpers"; import { - StoredObject, + StoredObject, StoredObjectLock, StoredObjectStatusChange, WopiEditButtonExecutableBeforeLeaveFunction, } from "../types"; import DesktopEditButton from "ChillDocStoreAssets/vuejs/StoredObjectButton/DesktopEditButton.vue"; import HistoryButton from "ChillDocStoreAssets/vuejs/StoredObjectButton/HistoryButton.vue"; +import CurrentlyEditingIcon from "ChillDocStoreAssets/vuejs/StoredObjectButton/CurrentlyEditingIcon.vue"; +import IsCurrentlyEdited from "ChillDocStoreAssets/vuejs/StoredObjectButton/IsCurrentlyEdited.vue"; interface DocumentActionButtonsGroupConfig { storedObject: StoredObject; diff --git a/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/CurrentlyEditingIcon.vue b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/CurrentlyEditingIcon.vue new file mode 100644 index 000000000..523560542 --- /dev/null +++ b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/CurrentlyEditingIcon.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/DesktopEditButton.vue b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/DesktopEditButton.vue index 9bb3c4c6f..8c4978729 100644 --- a/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/DesktopEditButton.vue +++ b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/DesktopEditButton.vue @@ -37,7 +37,7 @@ - + Éditer sur le bureau @@ -55,11 +55,13 @@ i.fa::before { + + + + diff --git a/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/WopiEditButton.vue b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/WopiEditButton.vue index 97073e4e1..0b428b3c0 100644 --- a/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/WopiEditButton.vue +++ b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/StoredObjectButton/WopiEditButton.vue @@ -1,8 +1,9 @@