diff --git a/html/src/app.js b/html/src/app.js
index 5e549316..6f1a3c54 100644
--- a/html/src/app.js
+++ b/html/src/app.js
@@ -4497,6 +4497,10 @@ speechSynthesis.getVoices();
if (typeof ref !== 'undefined') {
ctx.name = ref.displayName;
}
+ if (!this.friendLogInitStatus) {
+ this.updateFriendDelayedCheck(ctx, location, $location_at);
+ return;
+ }
// prevent status flapping
if (ctx.pendingOffline) {
if (this.debugFriendState) {
@@ -11328,6 +11332,9 @@ speechSynthesis.getVoices();
case 'Change Tags':
this.showSetWorldTagsDialog();
break;
+ case 'Change Allowed Domains':
+ this.showWorldAllowedDomainsDialog();
+ break;
case 'Download Unity Package':
this.openExternalLink(
this.replaceVrcPackageUrl(
@@ -15805,7 +15812,7 @@ speechSynthesis.getVoices();
this.VRChatConfigList = {
cache_size: {
name: $t('dialog.config_json.max_cache_size'),
- default: '20',
+ default: '30',
type: 'number',
min: 20
},
@@ -21858,6 +21865,37 @@ speechSynthesis.getVoices();
// #endregion
+ $app.data.worldAllowedDomainsDialog = {
+ visible: false,
+ worldId: '',
+ urlList: []
+ };
+
+ $app.methods.showWorldAllowedDomainsDialog = function () {
+ this.$nextTick(() =>
+ $app.adjustDialogZ(this.$refs.worldAllowedDomainsDialog.$el)
+ );
+ var D = this.worldAllowedDomainsDialog;
+ D.worldId = this.worldDialog.id;
+ D.urlList = this.worldDialog.ref?.urlList ?? [];
+ D.visible = true;
+ };
+
+ $app.methods.saveWorldAllowedDomains = function () {
+ var D = this.worldAllowedDomainsDialog;
+ API.saveWorld({
+ id: D.worldId,
+ urlList: D.urlList
+ }).then((args) => {
+ this.$message({
+ message: 'Allowed Video Player Domains updated',
+ type: 'success'
+ });
+ return args;
+ });
+ D.visible = false;
+ };
+
$app.data.ossDialog = false;
// "$app" is being replaced by Vue, update references inside all the classes
diff --git a/html/src/localization/en/en.json b/html/src/localization/en/en.json
index 1fa24060..87d6b21f 100644
--- a/html/src/localization/en/en.json
+++ b/html/src/localization/en/en.json
@@ -724,6 +724,7 @@
"change_preview": "Change Youtube Preview",
"change_tags": "Change Tags",
"change_image": "Change Image",
+ "change_allowed_video_player_domains": "Change Allowed Video Player Domains",
"download_package": "Download Unity Package",
"publish_to_labs": "Publish To Labs",
"unpublish": "Unpublish",
@@ -1408,6 +1409,11 @@
"default_emojis": "Default Emojis",
"cancel": "Cancel",
"send": "Send"
+ },
+ "allowed_video_player_domains": {
+ "header": "Allowed Video Player Domains",
+ "add_domain": "Add Domain",
+ "save": "Save"
}
},
"prompt": {
diff --git a/html/src/mixins/dialogs/worldDialog.pug b/html/src/mixins/dialogs/worldDialog.pug
index aec03762..eaab6451 100644
--- a/html/src/mixins/dialogs/worldDialog.pug
+++ b/html/src/mixins/dialogs/worldDialog.pug
@@ -67,6 +67,7 @@ mixin worldDialog()
el-dropdown-item(icon="el-icon-edit" command="Change Recommended Capacity") {{ $t('dialog.world.actions.change_recommended_capacity') }}
el-dropdown-item(icon="el-icon-edit" command="Change YouTube Preview") {{ $t('dialog.world.actions.change_preview') }}
el-dropdown-item(icon="el-icon-edit" command="Change Tags") {{ $t('dialog.world.actions.change_tags') }}
+ el-dropdown-item(icon="el-icon-edit" command="Change Allowed Domains") {{ $t('dialog.world.actions.change_allowed_video_player_domains') }}
el-dropdown-item(icon="el-icon-picture-outline" command="Change Image") {{ $t('dialog.world.actions.change_image') }}
el-dropdown-item(v-if="worldDialog.ref.unityPackageUrl" icon="el-icon-download" command="Download Unity Package") {{ $t('dialog.world.actions.download_package') }}
el-dropdown-item(v-if="worldDialog.ref.tags.includes('system_approved') || worldDialog.ref.tags.includes('system_labs')" icon="el-icon-view" command="Unpublish" divided) {{ $t('dialog.world.actions.unpublish') }}
@@ -215,3 +216,12 @@ mixin worldDialog()
span
span(v-text="scope.data.key" style="font-weight:bold;margin-right:5px")
span(v-if="!scope.data.children" v-text="scope.data.value")
+
+ //- dialog: change Allowed Video Player Domains
+ el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="worldAllowedDomainsDialog" :visible.sync="worldAllowedDomainsDialog.visible" :title="$t('dialog.allowed_video_player_domains.header')" width="600px")
+ div(v-loading="bioDialog.loading")
+ el-input(v-for="(domain, index) in worldAllowedDomainsDialog.urlList" :key="index" :value="domain" v-model="worldAllowedDomainsDialog.urlList[index]" size="small" style="margin-top:5px")
+ el-button(slot="append" icon="el-icon-delete" @click="worldAllowedDomainsDialog.urlList.splice(index, 1)")
+ el-button(@click="worldAllowedDomainsDialog.urlList.push('')" size="mini" style="margin-top:5px") {{ $t('dialog.allowed_video_player_domains.add_domain') }}
+ template(#footer)
+ el-button(type="primary" size="small" :disabled="!worldAllowedDomainsDialog.worldId" @click="saveWorldAllowedDomains") {{ $t('dialog.allowed_video_player_domains.save') }}
\ No newline at end of file
diff --git a/html/src/mixins/tabs/notifications.pug b/html/src/mixins/tabs/notifications.pug
index 2acc0dbf..f51073e3 100644
--- a/html/src/mixins/tabs/notifications.pug
+++ b/html/src/mixins/tabs/notifications.pug
@@ -4,7 +4,7 @@ mixin notificationsTab()
template(#tool)
div(style="margin:0 0 10px;display:flex;align-items:center")
el-select(v-model="notificationTable.filters[0].value" @change="saveTableFilters" multiple clearable collapse-tags style="flex:1" :placeholder="$t('view.notification.filter_placeholder')")
- el-option(v-once v-for="type in ['requestInvite', 'invite', 'requestInviteResponse', 'inviteResponse', 'friendRequest', 'ignoredFriendRequest', 'message', 'boop', 'groupChange', 'group.announcement', 'group.informative', 'group.invite', 'group.joinRequest', 'group.transfer', 'group.queueReady', 'moderation.warning.group', 'instance.closed']" :key="type" :label="type" :value="type")
+ el-option(v-once v-for="type in ['requestInvite', 'invite', 'requestInviteResponse', 'inviteResponse', 'friendRequest', 'ignoredFriendRequest', 'message', 'boop', 'groupChange', 'group.announcement', 'group.informative', 'group.invite', 'group.joinRequest', 'group.transfer', 'group.queueReady', 'moderation.warning.group', 'moderation.report.closed', 'instance.closed']" :key="type" :label="type" :value="type")
el-input(v-model="notificationTable.filters[1].value" :placeholder="$t('view.notification.search_placeholder')" style="flex:none;width:150px;margin:0 10px")
el-tooltip(placement="bottom" :content="$t('view.notification.refresh_tooltip')" :disabled="hideTooltips")
el-button(type="default" :loading="API.isNotificationsLoading" @click="API.refreshNotifications()" icon="el-icon-refresh" circle style="flex:none")
@@ -14,7 +14,7 @@ mixin notificationsTab()
template(#content)
span {{ scope.row.created_at | formatDate('long') }}
span {{ scope.row.created_at | formatDate('short') }}
- el-table-column(:label="$t('table.notification.type')" prop="type" width="160")
+ el-table-column(:label="$t('table.notification.type')" prop="type" width="180")
template(v-once #default="scope")
el-tooltip(v-if="scope.row.type === 'invite'" placement="top")
template(#content)