|
|
@ -60,6 +60,13 @@ |
|
|
|
<td class="py-2 text-center"> |
|
|
|
{{ getTruncatedRedeemedBy(invite.redeemedBy) }} |
|
|
|
</td> |
|
|
|
<td> |
|
|
|
<fa |
|
|
|
icon="trash-can" |
|
|
|
class="text-red-600 text-xl ml-2 mr-2 cursor-pointer" |
|
|
|
@click="deleteInvite(invite.inviteIdentifier)" |
|
|
|
/> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
@ -153,6 +160,27 @@ export default class InviteOneView extends Vue { |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
lookForErrorAndNotify(error, title, defaultMessage) { |
|
|
|
console.error(title, "-", error); |
|
|
|
let message = defaultMessage; |
|
|
|
if (error.response && error.response.data && error.response.data.error) { |
|
|
|
if (error.response.data.error.message) { |
|
|
|
message = error.response.data.error.message; |
|
|
|
} else { |
|
|
|
message = error.response.data.error; |
|
|
|
} |
|
|
|
} |
|
|
|
this.$notify( |
|
|
|
{ |
|
|
|
group: "alert", |
|
|
|
type: "danger", |
|
|
|
title: title, |
|
|
|
text: message, |
|
|
|
}, |
|
|
|
5000, |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
async createInvite() { |
|
|
|
const inviteIdentifier = |
|
|
|
Math.random().toString(36).substring(2) + |
|
|
@ -191,31 +219,56 @@ export default class InviteOneView extends Vue { |
|
|
|
}); |
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any |
|
|
|
} catch (error: any) { |
|
|
|
console.error("Error creating invite:", error); |
|
|
|
let message = "Got an error creating your invite."; |
|
|
|
if ( |
|
|
|
error.response && |
|
|
|
error.response.data && |
|
|
|
error.response.data.error |
|
|
|
) { |
|
|
|
if (error.response.data.error.message) { |
|
|
|
message = error.response.data.error.message; |
|
|
|
} else { |
|
|
|
message = error.response.data.error; |
|
|
|
} |
|
|
|
} |
|
|
|
this.$notify( |
|
|
|
{ |
|
|
|
group: "alert", |
|
|
|
type: "danger", |
|
|
|
title: "Error Creating Invite", |
|
|
|
text: message, |
|
|
|
}, |
|
|
|
5000, |
|
|
|
this.lookForErrorAndNotify( |
|
|
|
error, |
|
|
|
"Error Creating Invite", |
|
|
|
"Got an error creating your invite.", |
|
|
|
); |
|
|
|
} |
|
|
|
}, |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
deleteInvite(inviteId: string) { |
|
|
|
this.$notify( |
|
|
|
{ |
|
|
|
group: "modal", |
|
|
|
type: "confirm", |
|
|
|
title: "Delete Invite?", |
|
|
|
text: "Are you sure you want to erase this invite? (There is no undo.)", |
|
|
|
onYes: async () => { |
|
|
|
const headers = await getHeaders(this.activeDid); |
|
|
|
try { |
|
|
|
const result = await axios.delete( |
|
|
|
this.apiServer + "/api/userUtil/invite/" + inviteId, |
|
|
|
{ headers }, |
|
|
|
); |
|
|
|
if (result.status !== 204) { |
|
|
|
throw result.data; |
|
|
|
} |
|
|
|
this.invites = this.invites.filter( |
|
|
|
(invite) => invite.inviteIdentifier !== inviteId, |
|
|
|
); |
|
|
|
this.$notify( |
|
|
|
{ |
|
|
|
group: "alert", |
|
|
|
type: "success", |
|
|
|
title: "Deleted", |
|
|
|
text: "Invite deleted.", |
|
|
|
}, |
|
|
|
3000, |
|
|
|
); |
|
|
|
} catch (e) { |
|
|
|
this.lookForErrorAndNotify( |
|
|
|
e, |
|
|
|
"Error Deleting Invite", |
|
|
|
"Got an error deleting your invite.", |
|
|
|
); |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
-1, |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|