Icon
diff --git a/packages/builder/src/pages/builder/portal/users/groups/_components/EditUserPicker.svelte b/packages/builder/src/pages/builder/portal/users/groups/_components/EditUserPicker.svelte
new file mode 100644
index 0000000000..a71634b262
--- /dev/null
+++ b/packages/builder/src/pages/builder/portal/users/groups/_components/EditUserPicker.svelte
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ user._id)}
+ list={$users.data}
+ on:select={async e => {
+ await groups.actions.addUser(groupId, e.detail)
+ onUsersUpdated()
+ }}
+ on:deselect={async e => {
+ await groups.actions.removeUser(groupId, e.detail)
+ onUsersUpdated()
+ }}
+ />
+
diff --git a/packages/builder/src/pages/builder/portal/users/groups/_components/GroupUsers.svelte b/packages/builder/src/pages/builder/portal/users/groups/_components/GroupUsers.svelte
new file mode 100644
index 0000000000..9c18008e44
--- /dev/null
+++ b/packages/builder/src/pages/builder/portal/users/groups/_components/GroupUsers.svelte
@@ -0,0 +1,112 @@
+
+
+
+
+
$goto(`../users/${e.detail._id}`)}
+>
+
+ This user group doesn't have any users
+
+
+
+
+
+
diff --git a/packages/builder/src/pages/builder/portal/users/groups/index.svelte b/packages/builder/src/pages/builder/portal/users/groups/index.svelte
index 6abc63811f..f01d306df2 100644
--- a/packages/builder/src/pages/builder/portal/users/groups/index.svelte
+++ b/packages/builder/src/pages/builder/portal/users/groups/index.svelte
@@ -66,6 +66,8 @@
} catch (error) {
if (error.status === 400) {
notifications.error(error.message)
+ } else if (error.message) {
+ notifications.error(error.message)
} else {
notifications.error(`Failed to save group`)
}
diff --git a/packages/builder/src/stores/portal/groups.js b/packages/builder/src/stores/portal/groups.js
index eda3961e2b..c7a54c7e6d 100644
--- a/packages/builder/src/stores/portal/groups.js
+++ b/packages/builder/src/stores/portal/groups.js
@@ -28,7 +28,7 @@ export function createGroupsStore() {
// on the backend anyway
if (get(licensing).groupsEnabled) {
const groups = await API.getGroups()
- store.set(groups)
+ store.set(groups.data)
}
},
diff --git a/packages/frontend-core/src/api/groups.js b/packages/frontend-core/src/api/groups.js
index c27f11e0ea..cbc5bfd72a 100644
--- a/packages/frontend-core/src/api/groups.js
+++ b/packages/frontend-core/src/api/groups.js
@@ -52,6 +52,20 @@ export const buildGroupsEndpoints = API => {
})
},
+ /**
+ * Gets a group users by the group id
+ */
+ getGroupUsers: async ({ id, bookmark }) => {
+ let url = `/api/global/groups/${id}/users?`
+ if (bookmark) {
+ url += `bookmark=${bookmark}`
+ }
+
+ return await API.get({
+ url,
+ })
+ },
+
/**
* Adds users to a group
* @param groupId The group to update
diff --git a/packages/frontend-core/src/components/grid/cells/DataCell.svelte b/packages/frontend-core/src/components/grid/cells/DataCell.svelte
index 0aa0cd54f4..f39b820632 100644
--- a/packages/frontend-core/src/components/grid/cells/DataCell.svelte
+++ b/packages/frontend-core/src/components/grid/cells/DataCell.svelte
@@ -32,6 +32,7 @@
$: readonly =
column.schema.autocolumn ||
column.schema.disabled ||
+ column.schema.type === "formula" ||
(!$config.allowEditRows && row._id)
// Register this cell API if the row is focused
diff --git a/packages/frontend-core/src/components/grid/cells/DateCell.svelte b/packages/frontend-core/src/components/grid/cells/DateCell.svelte
index 0112bcda15..f5b1acb1c8 100644
--- a/packages/frontend-core/src/components/grid/cells/DateCell.svelte
+++ b/packages/frontend-core/src/components/grid/cells/DateCell.svelte
@@ -1,12 +1,17 @@
@@ -42,6 +67,10 @@
{timeOnly}
time24hr
ignoreTimezones={schema.ignoreTimezones}
+ bind:flatpickr
+ on:open={() => (isOpen = true)}
+ on:close={() => (isOpen = false)}
+ useKeyboardShortcuts={false}
/>
{/if}
diff --git a/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte b/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte
index 89e4d3503b..15ca08dbdf 100644
--- a/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte
+++ b/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte
@@ -1,6 +1,13 @@
{#if $menu.visible}
@@ -58,22 +72,38 @@
+
+