Fix invite stuff

This commit is contained in:
Natsumi
2025-05-26 04:53:17 +10:00
parent 2f019ac038
commit 8b93bf5d57
15 changed files with 136 additions and 147 deletions

View File

@@ -399,15 +399,15 @@
</el-table-column>
</data-tables>
<SendInviteResponseDialog
:send-invite-response-dialog="sendInviteResponseDialog"
:send-invite-response-dialog-visible.sync="sendInviteResponseDialogVisible"
:invite-response-message-table="inviteResponseMessageTable"
:upload-image="uploadImage"
@invite-image-upload="inviteImageUpload" />
:upload-image="uploadImage" />
<SendInviteRequestResponseDialog
:send-invite-response-dialog="sendInviteResponseDialog"
:send-invite-request-response-dialog-visible.sync="sendInviteRequestResponseDialogVisible"
:invite-request-response-message-table="inviteRequestResponseMessageTable"
:upload-image="uploadImage"
@invite-image-upload="inviteImageUpload" />
:upload-image="uploadImage" />
</div>
</template>
@@ -439,6 +439,7 @@
const showGroupDialog = inject('showGroupDialog');
const showUserDialog = inject('showUserDialog');
const showFullscreenImageDialog = inject('showFullscreenImageDialog');
const clearInviteImageUpload = inject('clearInviteImageUpload');
const props = defineProps({
menuActiveIndex: {
@@ -478,11 +479,8 @@
}
});
const emit = defineEmits(['inviteImageUpload', 'clearInviteImageUpload']);
const sendInviteResponseDialog = ref({
message: '',
messageSlot: 0,
messageSlot: {},
invite: {}
});
@@ -490,10 +488,6 @@
const sendInviteRequestResponseDialogVisible = ref(false);
function inviteImageUpload(event) {
emit('inviteImageUpload', event);
}
function saveTableFilters() {
configRepository.setString(
'VRCX_notificationTableFilters',
@@ -540,18 +534,13 @@
}
function showSendInviteResponseDialog(invite) {
sendInviteResponseDialog.value = {
invite
};
sendInviteResponseDialog.value.invite = invite;
sendInviteResponseDialog.value.messageSlot = {};
inviteMessagesRequest.refreshInviteMessageTableData('response');
clearInviteImageUpload();
sendInviteResponseDialogVisible.value = true;
}
function clearInviteImageUpload() {
emit('clearInviteImageUpload');
}
function acceptRequestInvite(row) {
$confirm('Continue? Send Invite', 'Confirm', {
confirmButtonText: 'Confirm',
@@ -594,9 +583,8 @@
}
function showSendInviteRequestResponseDialog(invite) {
sendInviteResponseDialog.value = {
invite
};
sendInviteResponseDialog.value.invite = invite;
sendInviteResponseDialog.value.messageSlot = {};
inviteMessagesRequest.refreshInviteMessageTableData('requestResponse');
clearInviteImageUpload();
sendInviteRequestResponseDialogVisible.value = true;

View File

@@ -61,11 +61,12 @@
}
async function saveEditAndSendInviteResponse() {
const I = props.sendInviteResponseDialog;
const D = props.editAndSendInviteResponseDialog;
D.visible = false;
const messageType = D.messageType;
const slot = D.inviteMessage.slot;
if (D.inviteMessage.message !== D.newMessage) {
const messageType = I.messageSlot.messageType;
const slot = I.messageSlot.slot;
if (I.messageSlot.message !== D.newMessage) {
const params = {
message: D.newMessage
};
@@ -88,7 +89,6 @@
return args;
});
}
const I = props.sendInviteResponseDialog;
const params = {
responseSlot: slot,
rsvp: true
@@ -107,9 +107,10 @@
message: 'Invite response message sent',
type: 'success'
});
emit('closeInviteDialog');
return args;
})
.finally(() => {
emit('closeInviteDialog');
});
} else {
notificationRequest
@@ -125,8 +126,10 @@
message: 'Invite response message sent',
type: 'success'
});
emit('closeInviteDialog');
return args;
})
.finally(() => {
emit('closeInviteDialog');
});
}
}

View File

@@ -33,7 +33,7 @@
type="text"
icon="el-icon-edit"
size="mini"
@click.stop="showEditAndSendInviteResponseDialog('requestResponse', scope.row)">
@click.stop="showEditAndSendInviteResponseDialog(scope.row)">
</el-button>
</template>
</el-table-column>
@@ -50,11 +50,13 @@
<EditAndSendInviteResponseDialog
:edit-and-send-invite-response-dialog.sync="editAndSendInviteResponseDialog"
:upload-image="uploadImage"
:send-invite-response-dialog="sendInviteResponseDialog" />
:send-invite-response-dialog.sync="sendInviteResponseDialog"
@closeInviteDialog="closeInviteDialog" />
<SendInviteResponseConfirmDialog
:send-invite-response-confirm-dialog="sendInviteResponseConfirmDialog"
:send-invite-response-dialog.sync="sendInviteResponseDialog"
:upload-image="uploadImage"
:send-invite-response-dialog.sync="sendInviteResponseDialog" />
:send-invite-response-confirm-dialog="sendInviteResponseConfirmDialog"
@closeInviteDialog="closeInviteDialog" />
</safe-dialog>
</template>
@@ -67,6 +69,7 @@
const { t } = useI18n();
const API = inject('API');
const inviteImageUpload = inject('inviteImageUpload');
defineProps({
sendInviteRequestResponseDialogVisible: {
@@ -82,12 +85,10 @@
}
});
const emit = defineEmits(['update:sendInviteRequestResponseDialogVisible', 'inviteImageUpload']);
const emit = defineEmits(['update:sendInviteRequestResponseDialogVisible']);
const editAndSendInviteResponseDialog = ref({
visible: false,
inviteMessage: {},
messageType: '',
newMessage: ''
});
@@ -96,27 +97,25 @@
});
const sendInviteResponseDialog = ref({
message: '',
messageSlot: 0,
messageSlot: {},
invite: {}
});
function inviteImageUpload(event) {
emit('inviteImageUpload', event);
function showEditAndSendInviteResponseDialog(row) {
props.sendInviteResponseDialog.messageSlot = row;
editAndSendInviteResponseDialog.value = {
newMessage: messageSlot.message,
visible: true
};
}
function showSendInviteResponseConfirmDialog(row) {
props.sendInviteResponseDialog.messageSlot = row;
sendInviteResponseConfirmDialog.value.visible = true;
sendInviteResponseDialog.value.messageSlot = row.slot;
}
function showEditAndSendInviteResponseDialog(messageType, inviteMessage) {
editAndSendInviteResponseDialog.value = {
newMessage: inviteMessage.message,
visible: true,
messageType,
inviteMessage
};
function closeInviteDialog() {
cancelSendInviteRequestResponse();
}
function cancelSendInviteRequestResponse() {

View File

@@ -31,16 +31,16 @@
const $message = instance.proxy.$message;
const props = defineProps({
sendInviteResponseConfirmDialog: {
sendInviteResponseDialog: {
type: Object,
required: true
default: () => ({})
},
uploadImage: {
type: String
},
sendInviteResponseDialog: {
sendInviteResponseConfirmDialog: {
type: Object,
default: () => ({})
required: true
}
});
@@ -48,17 +48,19 @@
function cancelInviteResponseConfirm() {
emit('update:sendInviteResponseConfirmDialog', { visible: false });
// TODO: temp fix to close dialog
props.sendInviteResponseConfirmDialog.visible = false;
}
function sendInviteResponseConfirm() {
const D = props.sendInviteResponseDialog;
const params = {
responseSlot: D.messageSlot,
responseSlot: D.messageSlot.slot,
rsvp: true
};
if (props.uploadImage) {
notificationRequest
.sendInviteResponsePhoto(params, D.invite.id, D.messageType)
.sendInviteResponsePhoto(params, D.invite.id, D.messageSlot.messageType)
.catch((err) => {
throw err;
})
@@ -71,10 +73,13 @@
type: 'success'
});
return args;
})
.finally(() => {
emit('closeInviteDialog');
});
} else {
notificationRequest
.sendInviteResponse(params, D.invite.id, D.messageType)
.sendInviteResponse(params, D.invite.id, D.messageSlot.messageType)
.catch((err) => {
throw err;
})
@@ -87,9 +92,11 @@
type: 'success'
});
return args;
})
.finally(() => {
emit('closeInviteDialog');
});
}
cancelInviteResponseConfirm();
emit('closeInviteDialog');
}
</script>

View File

@@ -36,7 +36,7 @@
type="text"
icon="el-icon-edit"
size="mini"
@click.stop="showEditAndSendInviteResponseDialog('response', scope.row)" />
@click.stop="showEditAndSendInviteResponseDialog(scope.row)" />
</template>
</el-table-column>
</data-tables>
@@ -52,11 +52,13 @@
<EditAndSendInviteResponseDialog
:edit-and-send-invite-response-dialog.sync="editAndSendInviteResponseDialog"
:upload-image="uploadImage"
:send-invite-response-confirm-dialog="sendInviteResponseDialog" />
:send-invite-response-dialog.sync="sendInviteResponseDialog"
@closeInviteDialog="closeInviteDialog" />
<SendInviteResponseConfirmDialog
:send-invite-response-dialog.sync="sendInviteResponseConfirmDialog"
:send-invite-response-dialog.sync="sendInviteResponseDialog"
:upload-image="uploadImage"
:send-invite-response-confirm-dialog="sendInviteResponseDialog" />
:send-invite-response-confirm-dialog="sendInviteResponseConfirmDialog"
@closeInviteDialog="closeInviteDialog" />
</safe-dialog>
</template>
@@ -69,7 +71,12 @@
const { t } = useI18n();
const API = inject('API');
defineProps({
const inviteImageUpload = inject('inviteImageUpload');
const props = defineProps({
sendInviteResponseDialog: {
type: Object,
default: () => ({})
},
sendInviteResponseDialogVisible: {
type: Boolean,
default: false
@@ -85,42 +92,33 @@
const editAndSendInviteResponseDialog = ref({
visible: false,
inviteMessage: {},
messageType: '',
newMessage: ''
});
const emit = defineEmits(['update:sendInviteResponseDialogVisible', 'inviteImageUpload']);
const emit = defineEmits(['update:sendInviteResponseDialogVisible']);
const sendInviteResponseConfirmDialog = ref({
visible: false
});
const sendInviteResponseDialog = ref({
message: '',
messageSlot: 0,
invite: {}
});
function closeInviteDialog() {
cancelSendInviteResponse();
}
function cancelSendInviteResponse() {
emit('update:sendInviteResponseDialogVisible', false);
}
function showEditAndSendInviteResponseDialog(messageType, inviteMessage) {
function showEditAndSendInviteResponseDialog(row) {
props.sendInviteResponseDialog.messageSlot = row;
editAndSendInviteResponseDialog.value = {
newMessage: inviteMessage.message,
visible: true,
messageType,
inviteMessage
newMessage: messageSlot.message,
visible: true
};
}
function inviteImageUpload(event) {
emit('inviteImageUpload', event);
}
function showSendInviteResponseConfirmDialog(row) {
props.sendInviteResponseDialog.messageSlot = row;
sendInviteResponseConfirmDialog.value.visible = true;
sendInviteResponseDialog.value.messageSlot = row.slot;
}
</script>