diff --git a/front/js/svelte/Channel.svelte b/front/js/svelte/Channel.svelte index aa6fd76..b41ac67 100644 --- a/front/js/svelte/Channel.svelte +++ b/front/js/svelte/Channel.svelte @@ -23,9 +23,11 @@ export let data; // export let layout; export let channel; + export let readableSchemas; setContext("channel", channel); + setContext("readableSchemas", channel.schemas.filter((s) => readableSchemas.includes(s.name))); setContext("user", user); diff --git a/front/js/svelte/Navbar.svelte b/front/js/svelte/Navbar.svelte index 0af90fd..27626d0 100644 --- a/front/js/svelte/Navbar.svelte +++ b/front/js/svelte/Navbar.svelte @@ -5,11 +5,12 @@ export let schema; const channel = getContext("channel"); + const readableSchemas = getContext("readableSchemas"); const user = getContext("user"); let contentIsOpen = false; - const fileSchemas = channel.schemas.filter((sc) => sc.type === "files"); - const otherSchemas = channel.schemas.filter((sc) => !sc.isEntry && sc.type === "collection"); + const fileSchemas = readableSchemas.filter((sc) => sc.type === "files"); + const otherSchemas = readableSchemas.filter((sc) => !sc.isEntry && sc.type === "collection"); @@ -57,7 +58,7 @@ aria-labelledby="panelsStayOpen-headingMain">
sc.isEntry)} + schemas={ readableSchemas.filter((sc) => sc.isEntry)} schema={schema} />
diff --git a/front/js/svelte/content/Index.svelte b/front/js/svelte/content/Index.svelte index 48a8b0c..77bfcc5 100644 --- a/front/js/svelte/content/Index.svelte +++ b/front/js/svelte/content/Index.svelte @@ -23,6 +23,7 @@ export let inModal; export let modalUrl; export let selected = []; + export let isWritable = false; function selectRecord(e, record) { @@ -62,68 +63,72 @@

{schema.label}

- {#if selected.length > 0 && !inModal} + {#if selected.length > 0 && !inModal && isWritable} {:else} {/if} {#if schema.type === "collection"} {:else}
{#each records as record (record.id)}
-
- selectRecord(e, record)} - class="form-check-input " - type="checkbox" - checked={selected.find( + {#if isWritable} +
+ selectRecord(e, record)} + class="form-check-input " + type="checkbox" + checked={selected.find( (r) => r.id === record.id )} - value={record} - /> -
+ value={record} + /> +
+ {/if}
{record._file.path} {record._file.mime}
@@ -134,12 +139,12 @@
diff --git a/front/js/svelte/content/Table.svelte b/front/js/svelte/content/Table.svelte index 595e76e..6e1f1f4 100644 --- a/front/js/svelte/content/Table.svelte +++ b/front/js/svelte/content/Table.svelte @@ -14,6 +14,7 @@ export let systemFields; export let sort; export let inModal; + export let isWritable; export let selected = []; function toggleAll(e) { @@ -44,16 +45,18 @@
- + checked={selected.length == records.length} + class="form-check-input" + type="checkbox" + /> + + {/if} {#each visibleColumns as field}
- 0 && + {#if isWritable} + + 0 && selected.length < records.length} - checked={selected.length == records.length} - class="form-check-input" - type="checkbox" - /> -
-
- + {#if isWritable} +
+ selectRecord(e, record)} - class="form-check-input " - type="checkbox" - checked={selected.find( + class="form-check-input " + type="checkbox" + checked={selected.find( (r) => r.id === record.id )} - value={record} - /> -
+ value={record} + /> +
+ {/if} {#if schema.type === "collection"} - {#if !inModal} + {#if !inModal && isWritable} {#if filter["status_in"] === "trashed"} -
  • - - Empty trash - -
  • + {#if isWritable} +
  • + + Empty trash + +
  • + {/if} {:else}
  • diff --git a/front/js/svelte/members/MemberSettingsCard.svelte b/front/js/svelte/members/MemberSettingsCard.svelte index 3a4a6df..63ec62c 100644 --- a/front/js/svelte/members/MemberSettingsCard.svelte +++ b/front/js/svelte/members/MemberSettingsCard.svelte @@ -7,11 +7,26 @@ export let member; export let roles; - function update(e, newRole) { + + function removeFrom(e, aRole) { e.preventDefault(); + let newRoles = member.roles.filter((r) => r !== aRole); dispatch("update", { user: member.id, - role: newRole, + roles: newRoles, + }); + } + + function addTo(e, aRole) { + e.preventDefault(); + + let newRoles = [...member.roles, aRole]; + console.log(member.roles) + console.log(aRole) + console.log(newRoles) + dispatch("update", { + user: member.id, + roles: newRoles, }); } @@ -19,11 +34,11 @@
    -
    - +
    +
    @@ -36,21 +51,37 @@