diff --git a/cookbook/views/api.py b/cookbook/views/api.py
index 13b12d42d..4e24d6108 100644
--- a/cookbook/views/api.py
+++ b/cookbook/views/api.py
@@ -1654,7 +1654,8 @@ class AutomationViewSet(LoggingMixin, StandardFilterModelViewSet):
@extend_schema_view(list=extend_schema(parameters=[
- OpenApiParameter(name='internal_note', description=_('Text field to store data that gets carried over to the UserSpace created from the InviteLink'), type=str)
+ OpenApiParameter(name='internal_note', description=_('Text field to store data that gets carried over to the UserSpace created from the InviteLink'), type=str),
+ OpenApiParameter(name='unused', description=_('Only return InviteLinks that have not been used yet.'), type=bool),
]))
class InviteLinkViewSet(LoggingMixin, StandardFilterModelViewSet):
queryset = InviteLink.objects
@@ -1667,6 +1668,10 @@ class InviteLinkViewSet(LoggingMixin, StandardFilterModelViewSet):
if internal_note is not None:
self.queryset = self.queryset.filter(internal_note=internal_note)
+ unused = self.request.query_params.get('unused', False)
+ if unused:
+ self.queryset = self.queryset.filter(used_by=None)
+
if is_space_owner(self.request.user, self.request.space):
self.queryset = self.queryset.filter(space=self.request.space).all()
return super().get_queryset()
diff --git a/vue3/src/components/model_editors/InviteLinkEditor.vue b/vue3/src/components/model_editors/InviteLinkEditor.vue
index 911918eeb..38801ad3a 100644
--- a/vue3/src/components/model_editors/InviteLinkEditor.vue
+++ b/vue3/src/components/model_editors/InviteLinkEditor.vue
@@ -16,6 +16,11 @@
+
+
+
+
+
@@ -31,6 +36,7 @@ import {ErrorMessageType, useMessageStore} from "@/stores/MessageStore";
import {DateTime} from "luxon";
import ModelEditorBase from "@/components/model_editors/ModelEditorBase.vue";
import {useModelEditorFunctions} from "@/composables/useModelEditorFunctions";
+import BtnCopy from "@/components/buttons/BtnCopy.vue";
const props = defineProps({
@@ -79,6 +85,16 @@ function initializeEditor(){
useMessageStore().addError(ErrorMessageType.FETCH_ERROR, err)
})
}
+
+/**
+ * returns url for invite link
+ * @param inviteLink InviteLink object to create url for
+ */
+function inviteLinkUrl(inviteLink: InviteLink) {
+ return `${location.protocol}//${location.host}/invite/${inviteLink.uuid}`
+}
+
+