diff --git a/html/src/app.js b/html/src/app.js index c0ae5dd6..ac320b9e 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -3054,6 +3054,42 @@ speechSynthesis.getVoices(); }); }; + /* + params: { + avatarId: string + } + */ + API.createImposter = function (params) { + return this.call(`avatars/${params.avatarId}/impostor/enqueue`, { + method: 'POST' + }).then((json) => { + var args = { + json, + params + }; + this.$emit('AVATAR:IMPOSTER:CREATE', args); + return args; + }); + }; + + /* + params: { + avatarId: string + } + */ + API.deleteImposter = function (params) { + return this.call(`avatars/${params.avatarId}/impostor`, { + method: 'DELETE' + }).then((json) => { + var args = { + json, + params + }; + this.$emit('AVATAR:IMPOSTER:DELETE', args); + return args; + }); + }; + // #endregion // #region | API: Notification @@ -18626,6 +18662,28 @@ speechSynthesis.getVoices(); return args; }); break; + case 'Delete Imposter': + API.deleteImposter({ + avatarId: D.id + }).then((args) => { + this.$message({ + message: 'Imposter deleted', + type: 'success' + }); + return args; + }); + break; + case 'Create Imposter': + API.createImposter({ + avatarId: D.id + }).then((args) => { + this.$message({ + message: 'Imposter queued for creation', + type: 'success' + }); + return args; + }); + break; } } }); diff --git a/html/src/index.pug b/html/src/index.pug index 607aea20..b5db29d6 100644 --- a/html/src/index.pug +++ b/html/src/index.pug @@ -858,7 +858,9 @@ html el-dropdown-item(icon="el-icon-edit" command="Change Content Tags") {{ $t('dialog.avatar.actions.change_content_tags') }} el-dropdown-item(icon="el-icon-picture-outline" command="Change Image") {{ $t('dialog.avatar.actions.change_image') }} el-dropdown-item(v-if="avatarDialog.ref.unityPackageUrl" icon="el-icon-download" command="Download Unity Package") {{ $t('dialog.avatar.actions.download_package') }} - el-dropdown-item(icon="el-icon-user" command="Delete" style="color:#F56C6C" divided) {{ $t('dialog.avatar.actions.delete') }} + el-dropdown-item(v-if="avatarDialog.hasImposter" icon="el-icon-user" command="Delete Imposter" style="color:#F56C6C") {{ $t('dialog.avatar.actions.delete_impostor') }} + el-dropdown-item(v-else icon="el-icon-delete" command="Create Imposter") {{ $t('dialog.avatar.actions.create_impostor') }} + el-dropdown-item(icon="el-icon-delete" command="Delete" style="color:#F56C6C" divided) {{ $t('dialog.avatar.actions.delete') }} el-tabs el-tab-pane(:label="$t('dialog.avatar.info.header')") .x-friend-list diff --git a/html/src/localization/en/en.json b/html/src/localization/en/en.json index be70dd82..52aff269 100644 --- a/html/src/localization/en/en.json +++ b/html/src/localization/en/en.json @@ -753,7 +753,9 @@ "change_content_tags": "Change Content Tags", "change_image": "Change Image", "download_package": "Download Unity Package", - "delete": "Delete" + "delete": "Delete", + "delete_impostor": "Delete Impostor", + "create_impostor": "Create Impostor" }, "info": { "header": "Info",