From 7107caf50bf284f3bec293f366cfa97346614e44 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Thu, 18 Apr 2024 13:23:00 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=B8(app-impress)=20warning=20when=20re?= =?UTF-8?q?source=20not=20editable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a resource is public, the users can see it but not edit it. This commit adds a warning message to the user to tell them that the resource is not editable. --- .../features/pads/pad/components/BlockNoteEditor.tsx | 10 ++++++++++ .../apps/impress/src/features/pads/pad/types.tsx | 1 + .../templates/template/components/TemplateEditor.tsx | 10 +++++++++- .../impress/src/features/templates/template/types.tsx | 1 + 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/frontend/apps/impress/src/features/pads/pad/components/BlockNoteEditor.tsx b/src/frontend/apps/impress/src/features/pads/pad/components/BlockNoteEditor.tsx index c628e285..4ee4a5d1 100644 --- a/src/frontend/apps/impress/src/features/pads/pad/components/BlockNoteEditor.tsx +++ b/src/frontend/apps/impress/src/features/pads/pad/components/BlockNoteEditor.tsx @@ -1,5 +1,6 @@ import { BlockNoteView, useCreateBlockNote } from '@blocknote/react'; import '@blocknote/react/style.css'; +import { Alert, VariantType } from '@openfun/cunningham-react'; import React, { useEffect, useState } from 'react'; import { WebrtcProvider } from 'y-webrtc'; @@ -57,6 +58,8 @@ export const BlockNoteContent = ({ pad, provider }: BlockNoteContentProps) => { }, }); + editor.isEditable = pad.abilities.partial_update; + useEffect(() => { setEditor(pad.id, editor); }, [setEditor, pad.id, editor]); @@ -69,6 +72,13 @@ export const BlockNoteContent = ({ pad, provider }: BlockNoteContentProps) => { }; `} > + {!pad.abilities.partial_update && ( + + {`Read only, you don't have the right to update this pad.`} + + )} diff --git a/src/frontend/apps/impress/src/features/pads/pad/types.tsx b/src/frontend/apps/impress/src/features/pads/pad/types.tsx index 97343beb..50fe75ea 100644 --- a/src/frontend/apps/impress/src/features/pads/pad/types.tsx +++ b/src/frontend/apps/impress/src/features/pads/pad/types.tsx @@ -28,5 +28,6 @@ export interface Pad { retrieve: boolean; manage_accesses: boolean; update: boolean; + partial_update: boolean; }; } diff --git a/src/frontend/apps/impress/src/features/templates/template/components/TemplateEditor.tsx b/src/frontend/apps/impress/src/features/templates/template/components/TemplateEditor.tsx index f62502c2..9863d6c3 100644 --- a/src/frontend/apps/impress/src/features/templates/template/components/TemplateEditor.tsx +++ b/src/frontend/apps/impress/src/features/templates/template/components/TemplateEditor.tsx @@ -52,7 +52,7 @@ export const TemplateEditor = ({ template }: TemplateEditorProps) => { ? template.code_editor : editor.getProjectData(); - editor.loadProjectData(projectData); + editor?.loadProjectData(projectData); editor.Storage.add('remote', { load() { @@ -118,6 +118,14 @@ export const TemplateEditor = ({ template }: TemplateEditorProps) => { )} + {!template.abilities.partial_update && ( + + {`Read only, you don't have the right to update this template.`} + + )} +