mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-18 14:23:51 +02:00
Custom avatar tags and many fixes
This commit is contained in:
305
html/src/app.js
305
html/src/app.js
@@ -1700,6 +1700,14 @@ speechSynthesis.getVoices();
|
||||
return;
|
||||
}
|
||||
|
||||
if (groups.length !== this.currentUserGroups.size) {
|
||||
console.log(
|
||||
`applyPresenceGroups: size old: ${this.currentUserGroups.size} new: ${groups.length}`,
|
||||
this.currentUserGroups,
|
||||
groups
|
||||
);
|
||||
}
|
||||
|
||||
// update group list
|
||||
for (var groupId of groups) {
|
||||
if (!this.currentUserGroups.has(groupId)) {
|
||||
@@ -2047,7 +2055,7 @@ speechSynthesis.getVoices();
|
||||
}
|
||||
}
|
||||
for (var prop in ref) {
|
||||
if (Array.isArray(ref[prop])) {
|
||||
if (Array.isArray(ref[prop]) && Array.isArray($ref[prop])) {
|
||||
if (!arraysMatch(ref[prop], $ref[prop])) {
|
||||
props[prop] = true;
|
||||
}
|
||||
@@ -10263,29 +10271,44 @@ speechSynthesis.getVoices();
|
||||
currentAvatarTags = ref.currentAvatarTags;
|
||||
previousCurrentAvatarTags = ref.currentAvatarTags;
|
||||
}
|
||||
var avatarInfo = {
|
||||
ownerId: '',
|
||||
avatarName: ''
|
||||
};
|
||||
try {
|
||||
avatarInfo = await $app.getAvatarName(currentAvatarImageUrl);
|
||||
} catch (err) {}
|
||||
var feed = {
|
||||
created_at: new Date().toJSON(),
|
||||
type: 'Avatar',
|
||||
userId: ref.id,
|
||||
displayName: ref.displayName,
|
||||
ownerId: avatarInfo.ownerId,
|
||||
avatarName: avatarInfo.avatarName,
|
||||
currentAvatarImageUrl,
|
||||
currentAvatarThumbnailImageUrl,
|
||||
previousCurrentAvatarImageUrl,
|
||||
previousCurrentAvatarThumbnailImageUrl,
|
||||
currentAvatarTags,
|
||||
previousCurrentAvatarTags
|
||||
};
|
||||
$app.addFeed(feed);
|
||||
database.addAvatarToDatabase(feed);
|
||||
if (this.logEmptyAvatars || ref.currentAvatarImageUrl) {
|
||||
var avatarInfo = {
|
||||
ownerId: '',
|
||||
avatarName: ''
|
||||
};
|
||||
try {
|
||||
avatarInfo = await $app.getAvatarName(
|
||||
currentAvatarImageUrl
|
||||
);
|
||||
} catch (err) {}
|
||||
var previousAvatarInfo = {
|
||||
ownerId: '',
|
||||
avatarName: ''
|
||||
};
|
||||
try {
|
||||
previousAvatarInfo = await $app.getAvatarName(
|
||||
previousCurrentAvatarImageUrl
|
||||
);
|
||||
} catch (err) {}
|
||||
var feed = {
|
||||
created_at: new Date().toJSON(),
|
||||
type: 'Avatar',
|
||||
userId: ref.id,
|
||||
displayName: ref.displayName,
|
||||
ownerId: avatarInfo.ownerId,
|
||||
previousOwnerId: previousAvatarInfo.ownerId,
|
||||
avatarName: avatarInfo.avatarName,
|
||||
previousAvatarName: previousAvatarInfo.avatarName,
|
||||
currentAvatarImageUrl,
|
||||
currentAvatarThumbnailImageUrl,
|
||||
previousCurrentAvatarImageUrl,
|
||||
previousCurrentAvatarThumbnailImageUrl,
|
||||
currentAvatarTags,
|
||||
previousCurrentAvatarTags
|
||||
};
|
||||
$app.addFeed(feed);
|
||||
database.addAvatarToDatabase(feed);
|
||||
}
|
||||
}
|
||||
if (props.status || props.statusDescription) {
|
||||
var status = '';
|
||||
@@ -11979,7 +12002,7 @@ speechSynthesis.getVoices();
|
||||
var msg = data.Parameters[245]['2'];
|
||||
if (typeof msg === 'string') {
|
||||
var displayName =
|
||||
data.Parameters[254]['14']?.targetDisplayName;
|
||||
data.Parameters[245]['14']?.targetDisplayName;
|
||||
msg = msg.replace('{{targetDisplayName}}', displayName);
|
||||
}
|
||||
this.addEntryPhotonEvent({
|
||||
@@ -15587,11 +15610,19 @@ speechSynthesis.getVoices();
|
||||
'VRCX_logResourceLoad',
|
||||
false
|
||||
);
|
||||
$app.methods.saveGameLogOptions = async function () {
|
||||
$app.data.logEmptyAvatars = await configRepository.getBool(
|
||||
'VRCX_logEmptyAvatars',
|
||||
false
|
||||
);
|
||||
$app.methods.saveLoggingOptions = async function () {
|
||||
await configRepository.setBool(
|
||||
'VRCX_logResourceLoad',
|
||||
this.logResourceLoad
|
||||
);
|
||||
await configRepository.setBool(
|
||||
'VRCX_logEmptyAvatars',
|
||||
this.logEmptyAvatars
|
||||
);
|
||||
};
|
||||
$app.data.autoStateChange = await configRepository.getString(
|
||||
'VRCX_autoStateChange',
|
||||
@@ -18083,6 +18114,20 @@ speechSynthesis.getVoices();
|
||||
return avatars;
|
||||
};
|
||||
|
||||
$app.methods.lookupAvatarByImageFileId = async function (authorId, fileId) {
|
||||
var length = this.avatarRemoteDatabaseProviderList.length;
|
||||
for (var i = 0; i < length; ++i) {
|
||||
var url = this.avatarRemoteDatabaseProviderList[i];
|
||||
var avatarArray = await this.lookupAvatarsByAuthor(url, authorId);
|
||||
for (var avatar of avatarArray) {
|
||||
if (extractFileId(avatar.imageUrl) === fileId) {
|
||||
return avatar.id;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
$app.methods.lookupAvatarsByAuthor = async function (url, authorId) {
|
||||
var avatars = [];
|
||||
if (!url) {
|
||||
@@ -18577,7 +18622,7 @@ speechSynthesis.getVoices();
|
||||
}
|
||||
if (
|
||||
unityPackage.platform === 'standalonewindows' &&
|
||||
this.compareUnityVersion(unityPackage.unityVersion)
|
||||
this.compareUnityVersion(unityPackage.unitySortNumber)
|
||||
) {
|
||||
assetUrl = unityPackage.assetUrl;
|
||||
break;
|
||||
@@ -19345,7 +19390,7 @@ speechSynthesis.getVoices();
|
||||
!assetUrl &&
|
||||
unityPackage.platform === 'standalonewindows' &&
|
||||
unityPackage.variant === 'standard' &&
|
||||
this.compareUnityVersion(unityPackage.unityVersion)
|
||||
this.compareUnityVersion(unityPackage.unitySortNumber)
|
||||
) {
|
||||
assetUrl = unityPackage.assetUrl;
|
||||
}
|
||||
@@ -19560,18 +19605,14 @@ speechSynthesis.getVoices();
|
||||
};
|
||||
|
||||
$app.methods.checkAvatarCacheRemote = async function (fileId, ownerUserId) {
|
||||
var avatarId = '';
|
||||
if (this.avatarRemoteDatabase) {
|
||||
var data = await this.lookupAvatars('authorId', ownerUserId);
|
||||
if (data && typeof data === 'object') {
|
||||
data.forEach((avatar) => {
|
||||
if (extractFileId(avatar.imageUrl) === fileId) {
|
||||
avatarId = avatar.id;
|
||||
}
|
||||
});
|
||||
}
|
||||
var avatarId = await this.lookupAvatarByImageFileId(
|
||||
ownerUserId,
|
||||
fileId
|
||||
);
|
||||
return avatarId;
|
||||
}
|
||||
return avatarId;
|
||||
return null;
|
||||
};
|
||||
|
||||
$app.methods.showAvatarAuthorDialog = async function (
|
||||
@@ -20658,6 +20699,8 @@ speechSynthesis.getVoices();
|
||||
ownAvatars: [],
|
||||
selectedCount: 0,
|
||||
forceUpdate: 0,
|
||||
selectedTags: [],
|
||||
selectedTagsCsv: '',
|
||||
contentHorror: false,
|
||||
contentGore: false,
|
||||
contentViolence: false,
|
||||
@@ -20672,6 +20715,8 @@ speechSynthesis.getVoices();
|
||||
D.loading = false;
|
||||
D.ownAvatars = [];
|
||||
D.forceUpdate = 0;
|
||||
D.selectedTags = [];
|
||||
D.selectedTagsCsv = '';
|
||||
D.contentHorror = false;
|
||||
D.contentGore = false;
|
||||
D.contentViolence = false;
|
||||
@@ -20695,6 +20740,11 @@ speechSynthesis.getVoices();
|
||||
case 'content_sex':
|
||||
D.contentSex = true;
|
||||
break;
|
||||
default:
|
||||
if (tag.startsWith('content_')) {
|
||||
D.selectedTags.push(tag.substring(8));
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
for (var ref of API.cachedAvatars.values()) {
|
||||
@@ -20722,6 +20772,84 @@ speechSynthesis.getVoices();
|
||||
}
|
||||
}
|
||||
this.updateAvatarTagsSelection();
|
||||
this.updateSelectedAvatarTags();
|
||||
};
|
||||
|
||||
$app.methods.updateSelectedAvatarTags = function () {
|
||||
var D = this.setAvatarTagsDialog;
|
||||
if (D.contentHorror) {
|
||||
if (!D.selectedTags.includes('content_horror')) {
|
||||
D.selectedTags.push('content_horror');
|
||||
}
|
||||
} else if (D.selectedTags.includes('content_horror')) {
|
||||
D.selectedTags.splice(D.selectedTags.indexOf('content_horror'), 1);
|
||||
}
|
||||
if (D.contentGore) {
|
||||
if (!D.selectedTags.includes('content_gore')) {
|
||||
D.selectedTags.push('content_gore');
|
||||
}
|
||||
} else if (D.selectedTags.includes('content_gore')) {
|
||||
D.selectedTags.splice(D.selectedTags.indexOf('content_gore'), 1);
|
||||
}
|
||||
if (D.contentViolence) {
|
||||
if (!D.selectedTags.includes('content_violence')) {
|
||||
D.selectedTags.push('content_violence');
|
||||
}
|
||||
} else if (D.selectedTags.includes('content_violence')) {
|
||||
D.selectedTags.splice(
|
||||
D.selectedTags.indexOf('content_violence'),
|
||||
1
|
||||
);
|
||||
}
|
||||
if (D.contentAdult) {
|
||||
if (!D.selectedTags.includes('content_adult')) {
|
||||
D.selectedTags.push('content_adult');
|
||||
}
|
||||
} else if (D.selectedTags.includes('content_adult')) {
|
||||
D.selectedTags.splice(D.selectedTags.indexOf('content_adult'), 1);
|
||||
}
|
||||
if (D.contentSex) {
|
||||
if (!D.selectedTags.includes('content_sex')) {
|
||||
D.selectedTags.push('content_sex');
|
||||
}
|
||||
} else if (D.selectedTags.includes('content_sex')) {
|
||||
D.selectedTags.splice(D.selectedTags.indexOf('content_sex'), 1);
|
||||
}
|
||||
|
||||
D.selectedTagsCsv = D.selectedTags.join(',').replace(/content_/g, '');
|
||||
};
|
||||
|
||||
$app.methods.updateInputAvatarTags = function () {
|
||||
var D = this.setAvatarTagsDialog;
|
||||
D.contentHorror = false;
|
||||
D.contentGore = false;
|
||||
D.contentViolence = false;
|
||||
D.contentAdult = false;
|
||||
D.contentSex = false;
|
||||
var tags = D.selectedTagsCsv.split(',');
|
||||
D.selectedTags = [];
|
||||
for (var tag of tags) {
|
||||
switch (tag) {
|
||||
case 'horror':
|
||||
D.contentHorror = true;
|
||||
break;
|
||||
case 'gore':
|
||||
D.contentGore = true;
|
||||
break;
|
||||
case 'violence':
|
||||
D.contentViolence = true;
|
||||
break;
|
||||
case 'adult':
|
||||
D.contentAdult = true;
|
||||
break;
|
||||
case 'sex':
|
||||
D.contentSex = true;
|
||||
break;
|
||||
}
|
||||
if (!D.selectedTags.includes(`content_${tag}`)) {
|
||||
D.selectedTags.push(`content_${tag}`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$app.data.avatarContentTags = [
|
||||
@@ -20747,47 +20875,12 @@ speechSynthesis.getVoices();
|
||||
if (!ref.$selected) {
|
||||
continue;
|
||||
}
|
||||
var tags = ref.tags;
|
||||
if (D.contentHorror) {
|
||||
if (!tags.includes('content_horror')) {
|
||||
tags.push('content_horror');
|
||||
var tags = [...D.selectedTags];
|
||||
for (var tag of ref.tags) {
|
||||
if (!tag.startsWith('content_')) {
|
||||
tags.push(tag);
|
||||
}
|
||||
} else if (tags.includes('content_horror')) {
|
||||
tags.splice(tags.indexOf('content_horror'), 1);
|
||||
}
|
||||
|
||||
if (D.contentGore) {
|
||||
if (!tags.includes('content_gore')) {
|
||||
tags.push('content_gore');
|
||||
}
|
||||
} else if (tags.includes('content_gore')) {
|
||||
tags.splice(tags.indexOf('content_gore'), 1);
|
||||
}
|
||||
|
||||
if (D.contentViolence) {
|
||||
if (!tags.includes('content_violence')) {
|
||||
tags.push('content_violence');
|
||||
}
|
||||
} else if (tags.includes('content_violence')) {
|
||||
tags.splice(tags.indexOf('content_violence'), 1);
|
||||
}
|
||||
|
||||
if (D.contentAdult) {
|
||||
if (!tags.includes('content_adult')) {
|
||||
tags.push('content_adult');
|
||||
}
|
||||
} else if (tags.includes('content_adult')) {
|
||||
tags.splice(tags.indexOf('content_adult'), 1);
|
||||
}
|
||||
|
||||
if (D.contentSex) {
|
||||
if (!tags.includes('content_sex')) {
|
||||
tags.push('content_sex');
|
||||
}
|
||||
} else if (tags.includes('content_sex')) {
|
||||
tags.splice(tags.indexOf('content_sex'), 1);
|
||||
}
|
||||
|
||||
await API.saveAvatar({
|
||||
id: ref.id,
|
||||
tags
|
||||
@@ -24174,7 +24267,7 @@ speechSynthesis.getVoices();
|
||||
}
|
||||
if (
|
||||
unityPackage.platform === 'standalonewindows' &&
|
||||
this.compareUnityVersion(unityPackage.unityVersion)
|
||||
this.compareUnityVersion(unityPackage.unitySortNumber)
|
||||
) {
|
||||
assetUrl = unityPackage.assetUrl;
|
||||
break;
|
||||
@@ -24340,7 +24433,7 @@ speechSynthesis.getVoices();
|
||||
}
|
||||
if (
|
||||
unityPackage.platform === 'standalonewindows' &&
|
||||
this.compareUnityVersion(unityPackage.unityVersion)
|
||||
this.compareUnityVersion(unityPackage.unitySortNumber)
|
||||
) {
|
||||
assetUrl = unityPackage.assetUrl;
|
||||
break;
|
||||
@@ -24464,7 +24557,7 @@ speechSynthesis.getVoices();
|
||||
}
|
||||
if (
|
||||
unityPackage.platform === 'standalonewindows' &&
|
||||
this.compareUnityVersion(unityPackage.unityVersion)
|
||||
this.compareUnityVersion(unityPackage.unitySortNumber)
|
||||
) {
|
||||
assetUrl = unityPackage.assetUrl;
|
||||
break;
|
||||
@@ -24484,7 +24577,7 @@ speechSynthesis.getVoices();
|
||||
var unityPackage = unityPackages[i];
|
||||
if (
|
||||
unityPackage.platform === 'standalonewindows' &&
|
||||
this.compareUnityVersion(unityPackage.unityVersion)
|
||||
this.compareUnityVersion(unityPackage.unitySortNumber)
|
||||
) {
|
||||
assetUrl = unityPackage.assetUrl;
|
||||
break;
|
||||
@@ -25398,21 +25491,47 @@ speechSynthesis.getVoices();
|
||||
}
|
||||
};
|
||||
|
||||
$app.methods.compareUnityVersion = function (version) {
|
||||
$app.methods.compareUnityVersion = function (unitySortNumber) {
|
||||
if (!API.cachedConfig.sdkUnityVersion) {
|
||||
console.error('No cachedConfig.sdkUnityVersion');
|
||||
return false;
|
||||
}
|
||||
var currentUnityVersion = API.cachedConfig.sdkUnityVersion.replace(
|
||||
/\D/g,
|
||||
''
|
||||
);
|
||||
// limit to 8 characters because 2019.4.31f1c1 is a thing
|
||||
// limit to 7 characters because 2022361 is a thing
|
||||
currentUnityVersion = currentUnityVersion.slice(0, 7);
|
||||
var assetVersion = version.replace(/\D/g, '');
|
||||
assetVersion = assetVersion.slice(0, 7);
|
||||
if (parseInt(assetVersion, 10) <= parseInt(currentUnityVersion, 10)) {
|
||||
|
||||
// 2022.3.6f1 2022 03 06 000
|
||||
// 2019.4.31f1 2019 04 31 000
|
||||
// 5.3.4p1 5 03 04 010
|
||||
// 2019.4.31f1c1 is a thing
|
||||
var array = API.cachedConfig.sdkUnityVersion.split('.');
|
||||
if (array.length < 3) {
|
||||
console.error('Invalid cachedConfig.sdkUnityVersion');
|
||||
return false;
|
||||
}
|
||||
var currentUnityVersion = array[0];
|
||||
currentUnityVersion += array[1].padStart(2, '0');
|
||||
var indexFirstLetter = array[2].search(/[a-zA-Z]/);
|
||||
if (indexFirstLetter > -1) {
|
||||
currentUnityVersion += array[2]
|
||||
.substr(0, indexFirstLetter)
|
||||
.padStart(2, '0');
|
||||
currentUnityVersion += '0';
|
||||
var letter = array[2].substr(indexFirstLetter, 1);
|
||||
if (letter === 'p') {
|
||||
currentUnityVersion += '1';
|
||||
} else {
|
||||
// f
|
||||
currentUnityVersion += '0';
|
||||
}
|
||||
currentUnityVersion += '0';
|
||||
} else {
|
||||
// just in case
|
||||
currentUnityVersion += '000';
|
||||
}
|
||||
// just in case
|
||||
currentUnityVersion = currentUnityVersion.replace(/\D/g, '');
|
||||
|
||||
if (
|
||||
parseInt(unitySortNumber, 10) <= parseInt(currentUnityVersion, 10)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -30927,7 +31046,7 @@ speechSynthesis.getVoices();
|
||||
}
|
||||
if (
|
||||
unityPackage.platform === 'standalonewindows' &&
|
||||
this.compareUnityVersion(unityPackage.unityVersion)
|
||||
this.compareUnityVersion(unityPackage.unitySortNumber)
|
||||
) {
|
||||
assetUrl = unityPackage.assetUrl;
|
||||
break;
|
||||
|
||||
@@ -642,12 +642,15 @@ html
|
||||
el-tag.x-link(v-if="worldDialog.inCache" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px" @click="openFolderGeneric(worldDialog.cachePath)")
|
||||
span(v-text="worldDialog.cacheSize")
|
||||
| {{ $t('dialog.world.tags.cache')}}
|
||||
div
|
||||
el-tag(v-if="worldDialog.ref.tags?.includes('content_horror')" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.content_horror') }}
|
||||
el-tag(v-if="worldDialog.ref.tags?.includes('content_gore')" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.content_gore') }}
|
||||
el-tag(v-if="worldDialog.ref.tags?.includes('content_violence')" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.content_violence') }}
|
||||
el-tag(v-if="worldDialog.ref.tags?.includes('content_adult')" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.content_adult') }}
|
||||
el-tag(v-if="worldDialog.ref.tags?.includes('content_sex')" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.content_sex') }}
|
||||
div
|
||||
template(v-for="tag in worldDialog.ref.tags")
|
||||
el-tag(v-if="tag.startsWith('content_')" :key="tag" effect="plain" size="mini" style="margin-right:5px;margin-top:5px")
|
||||
template(v-if="tag === 'content_horror'") {{ $t('dialog.world.tags.content_horror') }}
|
||||
template(v-else-if="tag === 'content_gore'") {{ $t('dialog.world.tags.content_gore') }}
|
||||
template(v-else-if="tag === 'content_violence'") {{ $t('dialog.world.tags.content_violence') }}
|
||||
template(v-else-if="tag === 'content_adult'") {{ $t('dialog.world.tags.content_adult') }}
|
||||
template(v-else-if="tag === 'content_sex'") {{ $t('dialog.world.tags.content_sex') }}
|
||||
template(v-else) {{ tag.replace('content_', '') }}
|
||||
div(style="margin-top:5px")
|
||||
span(v-show="worldDialog.ref.name !== worldDialog.ref.description" v-text="worldDialog.ref.description" style="font-size:12px")
|
||||
div(style="flex:none;margin-left:10px")
|
||||
@@ -847,11 +850,14 @@ html
|
||||
span(v-text="avatarDialog.cacheSize")
|
||||
| {{ $t('dialog.avatar.tags.cache') }}
|
||||
div
|
||||
el-tag(v-if="avatarDialog.ref.tags?.includes('content_horror')" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.avatar.tags.content_horror') }}
|
||||
el-tag(v-if="avatarDialog.ref.tags?.includes('content_gore')" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.avatar.tags.content_gore') }}
|
||||
el-tag(v-if="avatarDialog.ref.tags?.includes('content_violence')" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.avatar.tags.content_violence') }}
|
||||
el-tag(v-if="avatarDialog.ref.tags?.includes('content_adult')" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.avatar.tags.content_adult') }}
|
||||
el-tag(v-if="avatarDialog.ref.tags?.includes('content_sex')" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.avatar.tags.content_sex') }}
|
||||
template(v-for="tag in avatarDialog.ref.tags")
|
||||
el-tag(v-if="tag.startsWith('content_')" :key="tag" effect="plain" size="mini" style="margin-right:5px;margin-top:5px")
|
||||
template(v-if="tag === 'content_horror'") {{ $t('dialog.avatar.tags.content_horror') }}
|
||||
template(v-else-if="tag === 'content_gore'") {{ $t('dialog.avatar.tags.content_gore') }}
|
||||
template(v-else-if="tag === 'content_violence'") {{ $t('dialog.avatar.tags.content_violence') }}
|
||||
template(v-else-if="tag === 'content_adult'") {{ $t('dialog.avatar.tags.content_adult') }}
|
||||
template(v-else-if="tag === 'content_sex'") {{ $t('dialog.avatar.tags.content_sex') }}
|
||||
template(v-else) {{ tag.replace('content_', '') }}
|
||||
div(style="margin-top:5px")
|
||||
span(v-show="avatarDialog.ref.name !== avatarDialog.ref.description" v-text="avatarDialog.ref.description" style="font-size:12px")
|
||||
div(style="flex:none;margin-left:10px")
|
||||
@@ -1639,16 +1645,17 @@ html
|
||||
//- dialog: Set Avatar Tags
|
||||
el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="setAvatarTagsDialog" :visible.sync="setAvatarTagsDialog.visible" :title="$t('dialog.set_avatar_tags.header')" width="770px")
|
||||
template(v-if="setAvatarTagsDialog.visible")
|
||||
el-checkbox(v-model="setAvatarTagsDialog.contentHorror") {{ $t('dialog.set_avatar_tags.content_horror') }}
|
||||
el-checkbox(v-model="setAvatarTagsDialog.contentHorror" @change="updateSelectedAvatarTags") {{ $t('dialog.set_avatar_tags.content_horror') }}
|
||||
br
|
||||
el-checkbox(v-model="setAvatarTagsDialog.contentGore") {{ $t('dialog.set_avatar_tags.content_gore') }}
|
||||
el-checkbox(v-model="setAvatarTagsDialog.contentGore" @change="updateSelectedAvatarTags") {{ $t('dialog.set_avatar_tags.content_gore') }}
|
||||
br
|
||||
el-checkbox(v-model="setAvatarTagsDialog.contentViolence") {{ $t('dialog.set_avatar_tags.content_violence') }}
|
||||
el-checkbox(v-model="setAvatarTagsDialog.contentViolence" @change="updateSelectedAvatarTags") {{ $t('dialog.set_avatar_tags.content_violence') }}
|
||||
br
|
||||
el-checkbox(v-model="setAvatarTagsDialog.contentAdult") {{ $t('dialog.set_avatar_tags.content_adult') }}
|
||||
el-checkbox(v-model="setAvatarTagsDialog.contentAdult" @change="updateSelectedAvatarTags") {{ $t('dialog.set_avatar_tags.content_adult') }}
|
||||
br
|
||||
el-checkbox(v-model="setAvatarTagsDialog.contentSex") {{ $t('dialog.set_avatar_tags.content_sex') }}
|
||||
el-checkbox(v-model="setAvatarTagsDialog.contentSex" @change="updateSelectedAvatarTags") {{ $t('dialog.set_avatar_tags.content_sex') }}
|
||||
br
|
||||
el-input(v-model="setAvatarTagsDialog.selectedTagsCsv" @input="updateInputAvatarTags" size="mini" :autosize="{ minRows:2, maxRows:5 }" :placeholder="$t('dialog.set_avatar_tags.custom_tags_placeholder')" style="margin-top:10px")
|
||||
template(v-if="setAvatarTagsDialog.ownAvatars.length === setAvatarTagsDialog.selectedCount")
|
||||
el-button(size="small" @click="setAvatarTagsSelectToggle") {{ $t('dialog.set_avatar_tags.select_none') }}
|
||||
template(v-else)
|
||||
@@ -1881,6 +1888,8 @@ html
|
||||
el-radio-button(label="Friends") {{ $t('dialog.shared_feed_filters.friends') }}
|
||||
.toggle-item
|
||||
span.toggle-name Group Change
|
||||
el-tooltip(placement="top" style="margin-left:5px" content="When you've left or been kicked from a group, group name changed, group owner changed, role added/removed")
|
||||
i.el-icon-info
|
||||
el-radio-group(v-model="sharedFeedFilters.noty.groupChange" size="mini" @change="saveSharedFeedFilters")
|
||||
el-radio-button(label="Off") {{ $t('dialog.shared_feed_filters.off') }}
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
@@ -1891,16 +1900,22 @@ html
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
.toggle-item
|
||||
span.toggle-name Group Join
|
||||
el-tooltip(placement="top" style="margin-left:5px" content="When your request to join a group has been approved")
|
||||
i.el-icon-info
|
||||
el-radio-group(v-model="sharedFeedFilters.noty['group.informative']" size="mini" @change="saveSharedFeedFilters")
|
||||
el-radio-button(label="Off") {{ $t('dialog.shared_feed_filters.off') }}
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
.toggle-item
|
||||
span.toggle-name Group Invite
|
||||
el-tooltip(placement="top" style="margin-left:5px" content="When someone invites you to join a group")
|
||||
i.el-icon-info
|
||||
el-radio-group(v-model="sharedFeedFilters.noty['group.invite']" size="mini" @change="saveSharedFeedFilters")
|
||||
el-radio-button(label="Off") {{ $t('dialog.shared_feed_filters.off') }}
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
.toggle-item
|
||||
span.toggle-name Group Join Request
|
||||
el-tooltip(placement="top" style="margin-left:5px" content="When someone requests to join a group you're a moderator for")
|
||||
i.el-icon-info
|
||||
el-radio-group(v-model="sharedFeedFilters.noty['group.joinRequest']" size="mini" @change="saveSharedFeedFilters")
|
||||
el-radio-button(label="Off") {{ $t('dialog.shared_feed_filters.off') }}
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
@@ -1916,6 +1931,8 @@ html
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
.toggle-item
|
||||
span.toggle-name Instance Closed
|
||||
el-tooltip(placement="top" style="margin-left:5px" content="When the instance you're in has been closed preventing anyone from joining")
|
||||
i.el-icon-info
|
||||
el-radio-group(v-model="sharedFeedFilters.noty['instance.closed']" size="mini" @change="saveSharedFeedFilters")
|
||||
el-radio-button(label="Off") {{ $t('dialog.shared_feed_filters.off') }}
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
@@ -1928,6 +1945,8 @@ html
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
.toggle-item
|
||||
span.toggle-name Miscellaneous Events
|
||||
el-tooltip(placement="top" style="margin-left:5px" content="Misc event from VRC game log: VRC crash auto rejoin, shader keyword limit, joining instance blocked by master, error loading video, audio device changed, error joining instance, kicked from instance, VRChat failing to start OSC server, etc...")
|
||||
i.el-icon-info
|
||||
el-radio-group(v-model="sharedFeedFilters.noty.Event" size="mini" @change="saveSharedFeedFilters")
|
||||
el-radio-button(label="Off") {{ $t('dialog.shared_feed_filters.off') }}
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
@@ -2118,6 +2137,8 @@ html
|
||||
el-radio-button(label="Friends") {{ $t('dialog.shared_feed_filters.friends') }}
|
||||
.toggle-item
|
||||
span.toggle-name Group Change
|
||||
el-tooltip(placement="top" style="margin-left:5px" content="When you've left or been kicked from a group, group name changed, group owner changed, role added/removed")
|
||||
i.el-icon-info
|
||||
el-radio-group(v-model="sharedFeedFilters.wrist.groupChange" size="mini" @change="saveSharedFeedFilters")
|
||||
el-radio-button(label="Off") {{ $t('dialog.shared_feed_filters.off') }}
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
@@ -2128,16 +2149,22 @@ html
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
.toggle-item
|
||||
span.toggle-name Group Join
|
||||
el-tooltip(placement="top" style="margin-left:5px" content="When your request to join a group has been approved")
|
||||
i.el-icon-info
|
||||
el-radio-group(v-model="sharedFeedFilters.wrist['group.informative']" size="mini" @change="saveSharedFeedFilters")
|
||||
el-radio-button(label="Off") {{ $t('dialog.shared_feed_filters.off') }}
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
.toggle-item
|
||||
span.toggle-name Group Invite
|
||||
el-tooltip(placement="top" style="margin-left:5px" content="When someone invites you to join a group")
|
||||
i.el-icon-info
|
||||
el-radio-group(v-model="sharedFeedFilters.wrist['group.invite']" size="mini" @change="saveSharedFeedFilters")
|
||||
el-radio-button(label="Off") {{ $t('dialog.shared_feed_filters.off') }}
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
.toggle-item
|
||||
span.toggle-name Group Join Request
|
||||
el-tooltip(placement="top" style="margin-left:5px" content="When someone requests to join a group you're a moderator for")
|
||||
i.el-icon-info
|
||||
el-radio-group(v-model="sharedFeedFilters.wrist['group.joinRequest']" size="mini" @change="saveSharedFeedFilters")
|
||||
el-radio-button(label="Off") {{ $t('dialog.shared_feed_filters.off') }}
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
@@ -2153,6 +2180,8 @@ html
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
.toggle-item
|
||||
span.toggle-name Instance Closed
|
||||
el-tooltip(placement="top" style="margin-left:5px" content="When the instance you're in has been closed preventing anyone from joining")
|
||||
i.el-icon-info
|
||||
el-radio-group(v-model="sharedFeedFilters.wrist['instance.closed']" size="mini" @change="saveSharedFeedFilters")
|
||||
el-radio-button(label="Off") {{ $t('dialog.shared_feed_filters.off') }}
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
@@ -2165,6 +2194,8 @@ html
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
.toggle-item
|
||||
span.toggle-name Miscellaneous Events
|
||||
el-tooltip(placement="top" style="margin-left:5px" content="Misc event from VRC game log: VRC crash auto rejoin, shader keyword limit, joining instance blocked by master, error loading video, audio device changed, error joining instance, kicked from instance, VRChat failing to start OSC server, etc...")
|
||||
i.el-icon-info
|
||||
el-radio-group(v-model="sharedFeedFilters.wrist.Event" size="mini" @change="saveSharedFeedFilters")
|
||||
el-radio-button(label="Off") {{ $t('dialog.shared_feed_filters.off') }}
|
||||
el-radio-button(label="On") {{ $t('dialog.shared_feed_filters.on') }}
|
||||
|
||||
@@ -217,9 +217,10 @@
|
||||
"header": "Favorite Friends",
|
||||
"group_placeholder": "Choose Groups"
|
||||
},
|
||||
"game_log": {
|
||||
"header": "Game Log",
|
||||
"resource_load": "Log Udon string/image load"
|
||||
"logging": {
|
||||
"header": "Logging",
|
||||
"resource_load": "Log Udon string/image load",
|
||||
"empty_avatar": "Log avatars in feed without names"
|
||||
},
|
||||
"automation": {
|
||||
"header": "Automation",
|
||||
@@ -1031,6 +1032,7 @@
|
||||
"content_violence": "Violence",
|
||||
"content_adult": "Adult",
|
||||
"content_sex": "Sexual",
|
||||
"custom_tags_placeholder": "Custom tags",
|
||||
"select_all": "Select All",
|
||||
"select_none": "Select None",
|
||||
"cancel": "Cancel",
|
||||
|
||||
@@ -29,13 +29,21 @@ mixin feedTab()
|
||||
location(v-if="scope.row.location" :location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName")
|
||||
template(v-else-if="scope.row.type === 'Avatar'")
|
||||
el-popover(placement="right" width="500px" trigger="click")
|
||||
img.x-link(slot="reference" v-lazy="scope.row.previousCurrentAvatarThumbnailImageUrl" style="flex:none;width:160px;height:120px;border-radius:4px")
|
||||
img.x-link(v-lazy="scope.row.previousCurrentAvatarImageUrl" style="width:500px;height:375px" @click="showAvatarAuthorDialog(scope.row.userId, '', scope.row.previousCurrentAvatarImageUrl)")
|
||||
span(style="position:relative;top:-50px;margin:0 5px")
|
||||
div(slot="reference" style="display:inline-block;vertical-align:top;width:160px")
|
||||
template(v-if="scope.row.previousCurrentAvatarThumbnailImageUrl")
|
||||
img.x-link(v-lazy="scope.row.previousCurrentAvatarImageUrl" style="flex:none;width:160px;height:120px;border-radius:4px")
|
||||
br
|
||||
avatar-info(:imageurl="scope.row.previousCurrentAvatarImageUrl" :userid="scope.row.userId" :hintownerid="scope.row.previousOwnerId" :hintavatarname="scope.row.previousAvatarName" :avatartags="scope.row.previousCurrentAvatarTags")
|
||||
img.x-link(v-lazy="scope.row.previousCurrentAvatarImageUrl" style="width:500px;height:375px" @click="showFullscreenImageDialog(scope.row.previousCurrentAvatarImageUrl)")
|
||||
span(style="position:relative;vertical-align:top;margin:0 5px")
|
||||
i.el-icon-right
|
||||
el-popover(placement="right" width="500px" trigger="click")
|
||||
img.x-link(slot="reference" v-lazy="scope.row.currentAvatarThumbnailImageUrl" style="flex:none;width:160px;height:120px;border-radius:4px")
|
||||
img.x-link(v-lazy="scope.row.currentAvatarImageUrl" style="width:500px;height:375px" @click="showAvatarAuthorDialog(scope.row.userId, '', scope.row.currentAvatarImageUrl)")
|
||||
div(slot="reference" style="display:inline-block;vertical-align:top;width:160px")
|
||||
template(v-if="scope.row.currentAvatarThumbnailImageUrl")
|
||||
img.x-link(v-lazy="scope.row.currentAvatarThumbnailImageUrl" style="flex:none;width:160px;height:120px;border-radius:4px")
|
||||
br
|
||||
avatar-info(:imageurl="scope.row.currentAvatarThumbnailImageUrl" :userid="scope.row.userId" :hintownerid="scope.row.ownerId" :hintavatarname="scope.row.avatarName" :avatartags="scope.row.currentAvatarTags")
|
||||
img.x-link(v-lazy="scope.row.currentAvatarImageUrl" style="width:500px;height:375px" @click="showFullscreenImageDialog(scope.row.currentAvatarImageUrl)")
|
||||
template(v-else-if="scope.row.type === 'Status'")
|
||||
el-tooltip(placement="top")
|
||||
template(#content)
|
||||
|
||||
@@ -93,8 +93,14 @@ mixin settingsTab()
|
||||
.detail
|
||||
span.name(v-text="group.displayName ? group.displayName : group.name")
|
||||
//- General | Game Log
|
||||
+simpleSettingsCategory("view.settings.general.game_log.header")
|
||||
+simpleSwitch("view.settings.general.game_log.resource_load", "logResourceLoad", "saveGameLogOptions")
|
||||
div.options-container
|
||||
span.header {{ $t('view.settings.general.logging.header') }}
|
||||
div.options-container-item
|
||||
span.name(style="min-width:225px") {{ $t('view.settings.general.logging.resource_load') }}
|
||||
el-switch(v-model="logResourceLoad" @change="saveLoggingOptions")
|
||||
div.options-container-item
|
||||
span.name(style="min-width:225px") {{ $t('view.settings.general.logging.empty_avatar') }}
|
||||
el-switch(v-model="logEmptyAvatars" @change="saveLoggingOptions")
|
||||
//- General | Automation
|
||||
+simpleSettingsCategory("view.settings.general.automation.header")
|
||||
+simpleRadioGroupWithTooltip("view.settings.general.automation.auto_state_change", "$t('view.settings.general.automation.auto_state_change_tooltip')", "autoStateChange", [
|
||||
@@ -317,6 +323,8 @@ mixin settingsTab()
|
||||
//- Wrist Overlay | SteamVR Wrist Overlay
|
||||
div.options-container(style="margin-top:0")
|
||||
span.header {{ $t('view.settings.wrist_overlay.steamvr_wrist_overlay.header') }}
|
||||
div.options-container-item
|
||||
el-button(size="small" icon="el-icon-notebook-2" @click="showWristFeedFiltersDialog" :disabled="!openVR || !overlayWrist") {{ $t('view.settings.wrist_overlay.steamvr_wrist_overlay.wrist_feed_filters') }}
|
||||
div.options-container-item
|
||||
span {{ $t('view.settings.wrist_overlay.steamvr_wrist_overlay.description') }}
|
||||
br
|
||||
@@ -364,8 +372,6 @@ mixin settingsTab()
|
||||
div.options-container-item
|
||||
span.name {{ $t('view.settings.wrist_overlay.steamvr_wrist_overlay.show_pc_uptime') }}
|
||||
el-switch(v-model="pcUptimeOnFeed" @change="saveOpenVROption" :disabled="!openVR || !overlayWrist")
|
||||
div.options-container-item
|
||||
el-button(size="small" icon="el-icon-notebook-2" @click="showWristFeedFiltersDialog" :disabled="!openVR || !overlayWrist") {{ $t('view.settings.wrist_overlay.steamvr_wrist_overlay.wrist_feed_filters') }}
|
||||
//- Discord Presence Tab
|
||||
el-tab-pane(:label="$t('view.settings.category.discord_presence')")
|
||||
div.options-container(style="margin-top:0")
|
||||
|
||||
@@ -321,6 +321,12 @@ button {
|
||||
border-left: 1px solid rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.el-radio-button.is-disabled .el-radio-button__inner {
|
||||
background-color: unset;
|
||||
border-color: unset;
|
||||
border: 1px solid #666666;
|
||||
}
|
||||
|
||||
.el-button {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user