mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-28 11:13:49 +02:00
Small changes and fixes
This commit is contained in:
@@ -179,8 +179,8 @@ namespace VRCX
|
|||||||
using (var stream = File.OpenRead(DownloadTempLocation))
|
using (var stream = File.OpenRead(DownloadTempLocation))
|
||||||
{
|
{
|
||||||
var hashBytes = sha256.ComputeHash(stream);
|
var hashBytes = sha256.ComputeHash(stream);
|
||||||
var hashString = BitConverter.ToString(hashBytes).Replace("-", "").ToLowerInvariant();
|
var hashString = BitConverter.ToString(hashBytes).Replace("-", "");
|
||||||
if (hashString != hash[0])
|
if (!hashString.Equals(hash[0], StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
logger.Error($"Updater: Hash check failed file:{hashString} remote:{hash[0]}");
|
logger.Error($"Updater: Hash check failed file:{hashString} remote:{hash[0]}");
|
||||||
// can't delete file yet because it's in use
|
// can't delete file yet because it's in use
|
||||||
|
|||||||
@@ -305,6 +305,8 @@ namespace VRCX
|
|||||||
|
|
||||||
var sb = new StringBuilder(256);
|
var sb = new StringBuilder(256);
|
||||||
var state = new VRControllerState_t();
|
var state = new VRControllerState_t();
|
||||||
|
var poses = new TrackedDevicePose_t[OpenVR.k_unMaxTrackedDeviceCount];
|
||||||
|
system.GetDeviceToAbsoluteTrackingPose(ETrackingUniverseOrigin.TrackingUniverseStanding, 0, poses);
|
||||||
for (var i = 0u; i < OpenVR.k_unMaxTrackedDeviceCount; ++i)
|
for (var i = 0u; i < OpenVR.k_unMaxTrackedDeviceCount; ++i)
|
||||||
{
|
{
|
||||||
var devClass = system.GetTrackedDeviceClass(i);
|
var devClass = system.GetTrackedDeviceClass(i);
|
||||||
@@ -393,7 +395,8 @@ namespace VRCX
|
|||||||
isCharging
|
isCharging
|
||||||
? "charging"
|
? "charging"
|
||||||
: "discharging",
|
: "discharging",
|
||||||
(batteryPercentage * 100).ToString()
|
(batteryPercentage * 100).ToString(),
|
||||||
|
poses[i].eTrackingResult.ToString()
|
||||||
};
|
};
|
||||||
_deviceListLock.EnterWriteLock();
|
_deviceListLock.EnterWriteLock();
|
||||||
try
|
try
|
||||||
|
|||||||
121
html/src/app.js
121
html/src/app.js
@@ -108,9 +108,12 @@ speechSynthesis.getVoices();
|
|||||||
this.Set(key, JSON.stringify(value));
|
this.Set(key, JSON.stringify(value));
|
||||||
};
|
};
|
||||||
|
|
||||||
workerTimers.setInterval(function () {
|
workerTimers.setInterval(
|
||||||
|
() => {
|
||||||
VRCXStorage.Flush();
|
VRCXStorage.Flush();
|
||||||
}, 5 * 60 * 1000);
|
},
|
||||||
|
5 * 60 * 1000
|
||||||
|
);
|
||||||
// #endregion
|
// #endregion
|
||||||
// #region | Init: Noty, Vue, Vue-Markdown, ElementUI, VueI18n, VueLazyLoad, Vue filters, dark stylesheet
|
// #region | Init: Noty, Vue, Vue-Markdown, ElementUI, VueI18n, VueLazyLoad, Vue filters, dark stylesheet
|
||||||
|
|
||||||
@@ -5485,10 +5488,39 @@ speechSynthesis.getVoices();
|
|||||||
pendingUpdate: false
|
pendingUpdate: false
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$app.data.updateSharedFeedTimer = null;
|
||||||
|
$app.data.updateSharedFeedPending = false;
|
||||||
|
$app.data.updateSharedFeedPendingForceUpdate = false;
|
||||||
$app.methods.updateSharedFeed = function (forceUpdate) {
|
$app.methods.updateSharedFeed = function (forceUpdate) {
|
||||||
if (!this.friendLogInitStatus) {
|
if (!this.friendLogInitStatus) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (this.updateSharedFeedTimer) {
|
||||||
|
if (forceUpdate) {
|
||||||
|
this.updateSharedFeedPendingForceUpdate = true;
|
||||||
|
}
|
||||||
|
this.updateSharedFeedPending = true;
|
||||||
|
} else {
|
||||||
|
this.updateSharedExecute(forceUpdate);
|
||||||
|
this.updateSharedFeedTimer = setTimeout(() => {
|
||||||
|
if (this.updateSharedFeedPending) {
|
||||||
|
this.updateSharedExecute(
|
||||||
|
this.updateSharedFeedPendingForceUpdate
|
||||||
|
);
|
||||||
|
}
|
||||||
|
this.updateSharedFeedTimer = null;
|
||||||
|
}, 150);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$app.methods.updateSharedExecute = function (forceUpdate) {
|
||||||
|
this.updateSharedFeedDebounce(forceUpdate);
|
||||||
|
this.updateSharedFeedTimer = null;
|
||||||
|
this.updateSharedFeedPending = false;
|
||||||
|
this.updateSharedFeedPendingForceUpdate = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
$app.methods.updateSharedFeedDebounce = function (forceUpdate) {
|
||||||
this.updateSharedFeedGameLog(forceUpdate);
|
this.updateSharedFeedGameLog(forceUpdate);
|
||||||
this.updateSharedFeedFeedTable(forceUpdate);
|
this.updateSharedFeedFeedTable(forceUpdate);
|
||||||
this.updateSharedFeedNotificationTable(forceUpdate);
|
this.updateSharedFeedNotificationTable(forceUpdate);
|
||||||
@@ -5684,6 +5716,14 @@ speechSynthesis.getVoices();
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// add tag colour
|
||||||
|
var tagColour = '';
|
||||||
|
if (ctx.userId) {
|
||||||
|
var tagRef = this.customUserTags.get(ctx.userId);
|
||||||
|
if (typeof tagRef !== 'undefined') {
|
||||||
|
tagColour = tagRef.colour;
|
||||||
|
}
|
||||||
|
}
|
||||||
// BlockedOnPlayerJoined, BlockedOnPlayerLeft, MutedOnPlayerJoined, MutedOnPlayerLeft
|
// BlockedOnPlayerJoined, BlockedOnPlayerLeft, MutedOnPlayerJoined, MutedOnPlayerLeft
|
||||||
if (ctx.type === 'OnPlayerJoined' || ctx.type === 'OnPlayerLeft') {
|
if (ctx.type === 'OnPlayerJoined' || ctx.type === 'OnPlayerLeft') {
|
||||||
for (var ref of this.playerModerationTable.data) {
|
for (var ref of this.playerModerationTable.data) {
|
||||||
@@ -5725,6 +5765,7 @@ speechSynthesis.getVoices();
|
|||||||
) {
|
) {
|
||||||
wristArr.push({
|
wristArr.push({
|
||||||
...ctx,
|
...ctx,
|
||||||
|
tagColour,
|
||||||
isFriend,
|
isFriend,
|
||||||
isFavorite
|
isFavorite
|
||||||
});
|
});
|
||||||
@@ -6043,6 +6084,12 @@ speechSynthesis.getVoices();
|
|||||||
}
|
}
|
||||||
var isFriend = this.friends.has(ctx.userId);
|
var isFriend = this.friends.has(ctx.userId);
|
||||||
var isFavorite = API.cachedFavoritesByObjectId.has(ctx.userId);
|
var isFavorite = API.cachedFavoritesByObjectId.has(ctx.userId);
|
||||||
|
// add tag colour
|
||||||
|
var tagColour = '';
|
||||||
|
var tagRef = this.customUserTags.get(ctx.userId);
|
||||||
|
if (typeof tagRef !== 'undefined') {
|
||||||
|
tagColour = tagRef.colour;
|
||||||
|
}
|
||||||
if (
|
if (
|
||||||
w < 20 &&
|
w < 20 &&
|
||||||
wristFilter[ctx.type] &&
|
wristFilter[ctx.type] &&
|
||||||
@@ -6051,7 +6098,8 @@ speechSynthesis.getVoices();
|
|||||||
wristArr.push({
|
wristArr.push({
|
||||||
...ctx,
|
...ctx,
|
||||||
isFriend,
|
isFriend,
|
||||||
isFavorite
|
isFavorite,
|
||||||
|
tagColour
|
||||||
});
|
});
|
||||||
++w;
|
++w;
|
||||||
}
|
}
|
||||||
@@ -7828,7 +7876,9 @@ speechSynthesis.getVoices();
|
|||||||
$app.methods.getAvatarMemo = async function (avatarId) {
|
$app.methods.getAvatarMemo = async function (avatarId) {
|
||||||
try {
|
try {
|
||||||
return await database.getAvatarMemoDB(avatarId);
|
return await database.getAvatarMemoDB(avatarId);
|
||||||
} catch (err) {console.error(err);}
|
} catch (err) {
|
||||||
|
console.error(err);
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
avatarId: '',
|
avatarId: '',
|
||||||
editedAt: '',
|
editedAt: '',
|
||||||
@@ -10121,6 +10171,13 @@ speechSynthesis.getVoices();
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (entry) {
|
if (entry) {
|
||||||
|
// add tag colour
|
||||||
|
if (entry.userId) {
|
||||||
|
var tagRef = this.customUserTags.get(entry.userId);
|
||||||
|
if (typeof tagRef !== 'undefined') {
|
||||||
|
entry.tagColour = tagRef.colour;
|
||||||
|
}
|
||||||
|
}
|
||||||
this.queueGameLogNoty(entry);
|
this.queueGameLogNoty(entry);
|
||||||
this.addGameLog(entry);
|
this.addGameLog(entry);
|
||||||
}
|
}
|
||||||
@@ -10523,7 +10580,7 @@ speechSynthesis.getVoices();
|
|||||||
var isFavorite = API.cachedFavoritesByObjectId.has(userId);
|
var isFavorite = API.cachedFavoritesByObjectId.has(userId);
|
||||||
var colour = '';
|
var colour = '';
|
||||||
var tagRef = this.customUserTags.get(userId);
|
var tagRef = this.customUserTags.get(userId);
|
||||||
if (typeof tagRef !== 'undefined' && tagRef.colour) {
|
if (typeof tagRef !== 'undefined') {
|
||||||
colour = tagRef.colour;
|
colour = tagRef.colour;
|
||||||
}
|
}
|
||||||
var feed = {
|
var feed = {
|
||||||
@@ -16348,7 +16405,32 @@ speechSynthesis.getVoices();
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$app.data.updatePlayerListTimer = null;
|
||||||
|
$app.data.updatePlayerListPending = false;
|
||||||
$app.methods.getCurrentInstanceUserList = function () {
|
$app.methods.getCurrentInstanceUserList = function () {
|
||||||
|
if (!this.friendLogInitStatus) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.updatePlayerListTimer) {
|
||||||
|
this.updatePlayerListPending = true;
|
||||||
|
} else {
|
||||||
|
this.updatePlayerListExecute();
|
||||||
|
this.updatePlayerListTimer = setTimeout(() => {
|
||||||
|
if (this.updatePlayerListPending) {
|
||||||
|
this.updatePlayerListExecute();
|
||||||
|
}
|
||||||
|
this.updatePlayerListTimer = null;
|
||||||
|
}, 150);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$app.methods.updatePlayerListExecute = function () {
|
||||||
|
this.updatePlayerListDebounce();
|
||||||
|
this.updatePlayerListTimer = null;
|
||||||
|
this.updatePlayerListPending = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
$app.methods.updatePlayerListDebounce = function () {
|
||||||
var users = [];
|
var users = [];
|
||||||
var pushUser = function (ref) {
|
var pushUser = function (ref) {
|
||||||
var photonId = '';
|
var photonId = '';
|
||||||
@@ -17880,7 +17962,7 @@ speechSynthesis.getVoices();
|
|||||||
|
|
||||||
$app.data.ignoreAvatarMemoSave = false;
|
$app.data.ignoreAvatarMemoSave = false;
|
||||||
|
|
||||||
$app.watch['avatarDialog.memo'] = function (value) {
|
$app.watch['avatarDialog.memo'] = function () {
|
||||||
if (this.ignoreAvatarMemoSave) {
|
if (this.ignoreAvatarMemoSave) {
|
||||||
this.ignoreAvatarMemoSave = false;
|
this.ignoreAvatarMemoSave = false;
|
||||||
return;
|
return;
|
||||||
@@ -17889,7 +17971,7 @@ speechSynthesis.getVoices();
|
|||||||
if (D.visible === false) {
|
if (D.visible === false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.saveAvatarMemo(D.id, value == null ? D.memo : value);
|
this.saveAvatarMemo(D.id, D.memo);
|
||||||
};
|
};
|
||||||
|
|
||||||
API.$on('LOGOUT', function () {
|
API.$on('LOGOUT', function () {
|
||||||
@@ -21586,8 +21668,7 @@ speechSynthesis.getVoices();
|
|||||||
}
|
}
|
||||||
var name = ref.displayName;
|
var name = ref.displayName;
|
||||||
if (ref.statusDescription) {
|
if (ref.statusDescription) {
|
||||||
var statusRegex =
|
var statusRegex = /(?:discord|dc|dis)(?: |=|:|˸|;)(.*)/gi.exec(
|
||||||
/(?:^|\n*)(?:(?:[^\n:])*(?::|˸|discord)[\t\v\f\r]*)?([^\n]*(#|#)(?: )?\d{4})/gi.exec(
|
|
||||||
ref.statusDescription
|
ref.statusDescription
|
||||||
);
|
);
|
||||||
if (statusRegex) {
|
if (statusRegex) {
|
||||||
@@ -21595,8 +21676,7 @@ speechSynthesis.getVoices();
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!discord && ref.bio) {
|
if (!discord && ref.bio) {
|
||||||
var bioRegex =
|
var bioRegex = /(?:discord|dc|dis)(?: |=|:|˸|;)(.*)/gi.exec(
|
||||||
/(?:^|\n*)(?:(?:[^\n:])*(?::|˸|discord)[\t\v\f\r]*)?([^\n]*(#|#)(?: )?\d{4})/gi.exec(
|
|
||||||
ref.bio
|
ref.bio
|
||||||
);
|
);
|
||||||
if (bioRegex) {
|
if (bioRegex) {
|
||||||
@@ -21606,10 +21686,7 @@ speechSynthesis.getVoices();
|
|||||||
if (!discord) {
|
if (!discord) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
discord = discord.replace('#', '#');
|
discord = discord.trim();
|
||||||
if (discord.substring(0, 1) === '#') {
|
|
||||||
discord = `${_(name)}${_(discord)}`;
|
|
||||||
}
|
|
||||||
lines.push(`${_(name)},${_(discord)}`);
|
lines.push(`${_(name)},${_(discord)}`);
|
||||||
}
|
}
|
||||||
this.discordNamesContent = lines.join('\n');
|
this.discordNamesContent = lines.join('\n');
|
||||||
@@ -21717,6 +21794,11 @@ speechSynthesis.getVoices();
|
|||||||
name: $t('dialog.config_json.cache_directory'),
|
name: $t('dialog.config_json.cache_directory'),
|
||||||
default: '%AppData%\\..\\LocalLow\\VRChat\\vrchat'
|
default: '%AppData%\\..\\LocalLow\\VRChat\\vrchat'
|
||||||
},
|
},
|
||||||
|
picture_output_folder: {
|
||||||
|
name: $t('dialog.config_json.picture_directory'),
|
||||||
|
// my pictures folder
|
||||||
|
default: `%UserProfile%\\Pictures\\VRChat`
|
||||||
|
},
|
||||||
// dynamic_bone_max_affected_transform_count: {
|
// dynamic_bone_max_affected_transform_count: {
|
||||||
// name: 'Dynamic Bones Limit Max Transforms (0 disable all transforms)',
|
// name: 'Dynamic Bones Limit Max Transforms (0 disable all transforms)',
|
||||||
// default: '32',
|
// default: '32',
|
||||||
@@ -21747,7 +21829,12 @@ speechSynthesis.getVoices();
|
|||||||
|
|
||||||
$app.methods.saveVRChatConfigFile = function () {
|
$app.methods.saveVRChatConfigFile = function () {
|
||||||
for (var item in this.VRChatConfigFile) {
|
for (var item in this.VRChatConfigFile) {
|
||||||
if (this.VRChatConfigFile[item] === '') {
|
if (item === 'picture_output_split_by_date') {
|
||||||
|
// this one is default true, it's special
|
||||||
|
if (this.VRChatConfigFile[item]) {
|
||||||
|
delete this.VRChatConfigFile[item];
|
||||||
|
}
|
||||||
|
} else if (this.VRChatConfigFile[item] === '') {
|
||||||
delete this.VRChatConfigFile[item];
|
delete this.VRChatConfigFile[item];
|
||||||
} else if (
|
} else if (
|
||||||
typeof this.VRChatConfigFile[item] === 'boolean' &&
|
typeof this.VRChatConfigFile[item] === 'boolean' &&
|
||||||
@@ -23417,6 +23504,7 @@ speechSynthesis.getVoices();
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
API.cachedAvatarNames = new Map();
|
API.cachedAvatarNames = new Map();
|
||||||
|
this.customUserTags = new Map();
|
||||||
this.updateInstanceInfo = 0;
|
this.updateInstanceInfo = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -23569,6 +23657,7 @@ speechSynthesis.getVoices();
|
|||||||
ref.$customTag = data.Tag;
|
ref.$customTag = data.Tag;
|
||||||
ref.$customTagColour = data.TagColour;
|
ref.$customTagColour = data.TagColour;
|
||||||
}
|
}
|
||||||
|
this.updateSharedFeed(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
$app.methods.eventVrcxMessage = function (data) {
|
$app.methods.eventVrcxMessage = function (data) {
|
||||||
|
|||||||
@@ -582,6 +582,7 @@ html
|
|||||||
el-tag.x-tag-platform-quest(v-if="worldDialog.isQuest" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") Quest
|
el-tag.x-tag-platform-quest(v-if="worldDialog.isQuest" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") Quest
|
||||||
el-tag.x-tag-platform-ios(v-if="worldDialog.isIos" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") iOS
|
el-tag.x-tag-platform-ios(v-if="worldDialog.isIos" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") iOS
|
||||||
el-tag(v-if="worldDialog.avatarScalingDisabled" type="warning" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.avatar_scaling_disabled') }}
|
el-tag(v-if="worldDialog.avatarScalingDisabled" type="warning" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.avatar_scaling_disabled') }}
|
||||||
|
el-tag(v-if="worldDialog.ref.unityPackageUrl" type="success" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.future_proofing') }}
|
||||||
el-tag(type="info" effect="plain" size="mini" v-text="worldDialog.fileSize" style="margin-right:5px;margin-top:5px")
|
el-tag(type="info" effect="plain" size="mini" v-text="worldDialog.fileSize" style="margin-right:5px;margin-top:5px")
|
||||||
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)")
|
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")
|
span(v-text="worldDialog.cacheSize")
|
||||||
@@ -757,6 +758,7 @@ html
|
|||||||
el-tag(v-if="avatarDialog.ref.releaseStatus === 'public'" type="success" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.avatar.tags.public') }}
|
el-tag(v-if="avatarDialog.ref.releaseStatus === 'public'" type="success" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.avatar.tags.public') }}
|
||||||
el-tag(v-else type="danger" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.avatar.tags.private') }}
|
el-tag(v-else type="danger" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.avatar.tags.private') }}
|
||||||
el-tag(v-if="avatarDialog.isQuestFallback" type="info" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.avatar.tags.fallback') }}
|
el-tag(v-if="avatarDialog.isQuestFallback" type="info" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.avatar.tags.fallback') }}
|
||||||
|
el-tag(v-if="avatarDialog.ref.unityPackageUrl" type="success" effect="plain" size="mini" style="margin-right:5px") {{ $t('dialog.avatar.tags.future_proofing') }}
|
||||||
el-tag(v-if="avatarDialog.fileSize" type="info" effect="plain" size="mini" v-text="avatarDialog.fileSize" style="margin-right:5px")
|
el-tag(v-if="avatarDialog.fileSize" type="info" effect="plain" size="mini" v-text="avatarDialog.fileSize" style="margin-right:5px")
|
||||||
el-tag.x-link(v-if="avatarDialog.inCache" type="info" effect="plain" size="mini" @click="openFolderGeneric(avatarDialog.cachePath)")
|
el-tag.x-link(v-if="avatarDialog.inCache" type="info" effect="plain" size="mini" @click="openFolderGeneric(avatarDialog.cachePath)")
|
||||||
span(v-text="avatarDialog.cacheSize")
|
span(v-text="avatarDialog.cacheSize")
|
||||||
@@ -1383,6 +1385,7 @@ html
|
|||||||
span #[span(v-text="getVRChatScreenshotResolution()")] #[i.el-icon-arrow-down.el-icon--right]
|
span #[span(v-text="getVRChatScreenshotResolution()")] #[i.el-icon-arrow-down.el-icon--right]
|
||||||
el-dropdown-menu(#default="dropdown")
|
el-dropdown-menu(#default="dropdown")
|
||||||
el-dropdown-item(v-for="row in VRChatScreenshotResolutions" :key="row.index" v-text="row.name" :command="row")
|
el-dropdown-item(v-for="row in VRChatScreenshotResolutions" :key="row.index" v-text="row.name" :command="row")
|
||||||
|
el-checkbox(v-model="VRChatConfigFile.picture_output_split_by_date" style="margin-top:5px;display:block" :checked="true") {{ $t('dialog.config_json.picture_sort_by_date') }}
|
||||||
el-checkbox(v-model="VRChatConfigFile.disableRichPresence" style="margin-top:5px;display:block") {{ $t('dialog.config_json.disable_discord_presence') }}
|
el-checkbox(v-model="VRChatConfigFile.disableRichPresence" style="margin-top:5px;display:block") {{ $t('dialog.config_json.disable_discord_presence') }}
|
||||||
template(#footer)
|
template(#footer)
|
||||||
el-button(size="small" @click="openExternalLink('https://docs.vrchat.com/docs/configuration-file')") {{ $t('dialog.config_json.vrchat_docs') }}
|
el-button(size="small" @click="openExternalLink('https://docs.vrchat.com/docs/configuration-file')") {{ $t('dialog.config_json.vrchat_docs') }}
|
||||||
|
|||||||
@@ -634,6 +634,7 @@
|
|||||||
"public": "Public",
|
"public": "Public",
|
||||||
"private": "Private",
|
"private": "Private",
|
||||||
"avatar_scaling_disabled": "Avatar Scaling Disabled",
|
"avatar_scaling_disabled": "Avatar Scaling Disabled",
|
||||||
|
"future_proofing": "Future Proofing",
|
||||||
"labs": "Labs",
|
"labs": "Labs",
|
||||||
"cache": "Cache"
|
"cache": "Cache"
|
||||||
},
|
},
|
||||||
@@ -701,6 +702,7 @@
|
|||||||
"public": "Public",
|
"public": "Public",
|
||||||
"private": "Private",
|
"private": "Private",
|
||||||
"fallback": "Fallback",
|
"fallback": "Fallback",
|
||||||
|
"future_proofing": "Future Proofing",
|
||||||
"cache": "Cache"
|
"cache": "Cache"
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
@@ -915,9 +917,11 @@
|
|||||||
"max_cache_size": "Max Cache Size [GB] (min 20)",
|
"max_cache_size": "Max Cache Size [GB] (min 20)",
|
||||||
"cache_expiry_delay": "Cache Expiry [Days] (30 - 150)",
|
"cache_expiry_delay": "Cache Expiry [Days] (30 - 150)",
|
||||||
"cache_directory": "Custom Cache Folder Location",
|
"cache_directory": "Custom Cache Folder Location",
|
||||||
|
"picture_directory": "Custom Picture Folder Location",
|
||||||
"fpv_steadycam_fov": "First-Person Steadycam FOV",
|
"fpv_steadycam_fov": "First-Person Steadycam FOV",
|
||||||
"camera_resolution": "Camera Resolution",
|
"camera_resolution": "Camera Resolution",
|
||||||
"screenshot_resolution": "Screenshot Resolution",
|
"screenshot_resolution": "Screenshot Resolution",
|
||||||
|
"picture_sort_by_date": "Sort pictures into folders by date",
|
||||||
"disable_discord_presence": "Disable Discord Rich Presence",
|
"disable_discord_presence": "Disable Discord Rich Presence",
|
||||||
"vrchat_docs": "VRChat Docs",
|
"vrchat_docs": "VRChat Docs",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
@@ -932,7 +936,7 @@
|
|||||||
},
|
},
|
||||||
"set_world_tags": {
|
"set_world_tags": {
|
||||||
"header": "Set World Tags",
|
"header": "Set World Tags",
|
||||||
"avatar_scaling_disabled": "Avatar Scaling Disabled",
|
"avatar_scaling_disabled": "Disable avatar scaling",
|
||||||
"enable_debugging": "Enable world debugging for others",
|
"enable_debugging": "Enable world debugging for others",
|
||||||
"seprator": "Enter tags comma separated",
|
"seprator": "Enter tags comma separated",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
|
|||||||
@@ -795,6 +795,23 @@ Vue.component('marquee-text', MarqueeText);
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$app.methods.trackingResultToClass = function (deviceStatus) {
|
||||||
|
switch (deviceStatus) {
|
||||||
|
case 'Uninitialized':
|
||||||
|
case 'Calibrating_OutOfRange':
|
||||||
|
case 'Fallback_RotationOnly':
|
||||||
|
return 'tracker-error';
|
||||||
|
|
||||||
|
case 'Calibrating_InProgress':
|
||||||
|
case 'Running_OutOfRange':
|
||||||
|
return 'tracker-warning';
|
||||||
|
|
||||||
|
case 'Running_OK':
|
||||||
|
default:
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
$app = new Vue($app);
|
$app = new Vue($app);
|
||||||
window.$app = $app;
|
window.$app = $app;
|
||||||
})();
|
})();
|
||||||
|
|||||||
100
html/src/vr.pug
100
html/src/vr.pug
@@ -48,12 +48,12 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| ▶️ #[span.name(v-text="feed.displayName")]
|
| ▶️ #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")]
|
||||||
div(v-else-if="feed.type === 'OnPlayerLeft'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'OnPlayerLeft'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| ◀️ #[span.name(v-text="feed.displayName")]
|
| ◀️ #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")]
|
||||||
div(v-else-if="feed.type === 'OnPlayerJoining'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'OnPlayerJoining'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
@@ -69,7 +69,7 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| 🎵 #[span.name(v-if="feed.displayName" v-text="feed.displayName" style="margin-right:5px")]
|
| 🎵 #[span.name(v-if="feed.displayName" v-text="feed.displayName" style="margin-right:5px" :style="{'color':feed.tagColour}")]
|
||||||
template(v-if="feed.videoName")
|
template(v-if="feed.videoName")
|
||||||
| #[span(v-text="feed.videoName")]
|
| #[span(v-text="feed.videoName")]
|
||||||
template(v-else)
|
template(v-else)
|
||||||
@@ -149,7 +149,7 @@ html
|
|||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
template(v-if="feed.displayName")
|
template(v-if="feed.displayName")
|
||||||
| ✨ #[span.name(v-text="feed.displayName" style="margin-right:5px")]
|
| ✨ #[span.name(v-text="feed.displayName" style="margin-right:5px" :style="{'color':feed.tagColour}")]
|
||||||
| #[location(:location="feed.instanceId" :hint="feed.worldName" :grouphint="feed.groupName")]
|
| #[location(:location="feed.instanceId" :hint="feed.worldName" :grouphint="feed.groupName")]
|
||||||
template(v-else)
|
template(v-else)
|
||||||
| ✨ User has spawned a portal
|
| ✨ User has spawned a portal
|
||||||
@@ -157,7 +157,7 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| 🧍 #[span.name(v-text="feed.displayName" style="margin-right:5px")]
|
| 🧍 #[span.name(v-text="feed.displayName" style="margin-right:5px" :style="{'color':feed.tagColour}")]
|
||||||
template(v-if="feed.releaseStatus === 'public'")
|
template(v-if="feed.releaseStatus === 'public'")
|
||||||
| #[i.x-user-status.online]
|
| #[i.x-user-status.online]
|
||||||
template(v-else)
|
template(v-else)
|
||||||
@@ -169,7 +169,7 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| 💬 #[span.name(v-text="feed.displayName")] #[span(v-text="feed.text")]
|
| 💬 #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")] #[span(v-text="feed.text")]
|
||||||
div(v-else-if="feed.type === 'Event'" class="x-friend-item")
|
div(v-else-if="feed.type === 'Event'" class="x-friend-item")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
@@ -179,7 +179,7 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| 🟠 #[span.name(v-text="feed.message")] #[span.name(v-text="feed.displayName")]
|
| 🟠 #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")] #[span.name(v-text="feed.message")]
|
||||||
div(v-else-if="feed.type === 'BlockedOnPlayerJoined'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'BlockedOnPlayerJoined'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
@@ -204,22 +204,22 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| 🚫 #[span.name(v-text="feed.displayName")]
|
| 🚫 #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")]
|
||||||
div(v-else-if="feed.type === 'Unblocked'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'Unblocked'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| ⭕ #[span.name(v-text="feed.displayName")]
|
| ⭕ #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")]
|
||||||
div(v-else-if="feed.type === 'Muted'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'Muted'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| 🔇 #[span.name(v-text="feed.displayName")]
|
| 🔇 #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")]
|
||||||
div(v-else-if="feed.type === 'Unmuted'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'Unmuted'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| 🎤 #[span.name(v-text="feed.displayName")]
|
| 🎤 #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")]
|
||||||
template(v-else)
|
template(v-else)
|
||||||
template(v-for="feed in wristFeed")
|
template(v-for="feed in wristFeed")
|
||||||
.x-friend-item(v-if="feed.type === 'GPS'" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
.x-friend-item(v-if="feed.type === 'GPS'" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
@@ -258,12 +258,12 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| #[span.name(v-text="feed.displayName")] has joined
|
| #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")] has joined
|
||||||
div(v-else-if="feed.type === 'OnPlayerLeft'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'OnPlayerLeft'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| #[span.name(v-text="feed.displayName")] has left
|
| #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")] has left
|
||||||
div(v-else-if="feed.type === 'OnPlayerJoining'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'OnPlayerJoining'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
@@ -278,7 +278,7 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| #[span.name(v-text="feed.displayName")]
|
| #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")]
|
||||||
span(style="margin-left:5px;margin-right:5px") changed video to
|
span(style="margin-left:5px;margin-right:5px") changed video to
|
||||||
template(v-if="feed.videoName")
|
template(v-if="feed.videoName")
|
||||||
| #[span(v-text="feed.videoName")]
|
| #[span(v-text="feed.videoName")]
|
||||||
@@ -359,7 +359,7 @@ html
|
|||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
template(v-if="feed.displayName")
|
template(v-if="feed.displayName")
|
||||||
| #[span.name(v-text="feed.displayName")] has spawned a portal to
|
| #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")] has spawned a portal to
|
||||||
| #[location(:location="feed.instanceId" :hint="feed.worldName" :grouphint="feed.groupName" style="margin-left:5px")]
|
| #[location(:location="feed.instanceId" :hint="feed.worldName" :grouphint="feed.groupName" style="margin-left:5px")]
|
||||||
template(v-else)
|
template(v-else)
|
||||||
| User has spawned a portal
|
| User has spawned a portal
|
||||||
@@ -367,7 +367,7 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| #[span.name(v-text="feed.displayName")]
|
| #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")]
|
||||||
span(style="margin-left:5px;margin-right:5px") changed into avatar
|
span(style="margin-left:5px;margin-right:5px") changed into avatar
|
||||||
template(v-if="feed.releaseStatus === 'public'")
|
template(v-if="feed.releaseStatus === 'public'")
|
||||||
| #[i.x-user-status.online]
|
| #[i.x-user-status.online]
|
||||||
@@ -380,7 +380,7 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| #[span.name(v-text="feed.displayName")] said #[span(v-text="feed.text")]
|
| #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")] said #[span(v-text="feed.text")]
|
||||||
div(v-else-if="feed.type === 'Event'" class="x-friend-item")
|
div(v-else-if="feed.type === 'Event'" class="x-friend-item")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
@@ -390,7 +390,7 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| External: #[span.name(v-text="feed.message")] #[span.name(v-text="feed.displayName")]
|
| External: #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")] #[span.name(v-text="feed.message")]
|
||||||
div(v-else-if="feed.type === 'BlockedOnPlayerJoined'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'BlockedOnPlayerJoined'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
@@ -415,58 +415,58 @@ html
|
|||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| #[span.name(v-text="feed.displayName")] has blocked you
|
| #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")] has blocked you
|
||||||
div(v-else-if="feed.type === 'Unblocked'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'Unblocked'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| #[span.name(v-text="feed.displayName")] has unblocked you
|
| #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")] has unblocked you
|
||||||
div(v-else-if="feed.type === 'Muted'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'Muted'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| #[span.name(v-text="feed.displayName")] has muted you
|
| #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")] has muted you
|
||||||
div(v-else-if="feed.type === 'Unmuted'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
div(v-else-if="feed.type === 'Unmuted'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
|
||||||
.detail
|
.detail
|
||||||
span.extra
|
span.extra
|
||||||
span.time {{ feed.created_at | formatDate }}
|
span.time {{ feed.created_at | formatDate }}
|
||||||
| #[span.name(v-text="feed.displayName")] has unmuted you
|
| #[span.name(v-text="feed.displayName" :style="{'color':feed.tagColour}")] has unmuted you
|
||||||
.x-containerbottom
|
.x-containerbottom
|
||||||
div(style="display:flex;flex-direction:row;flex-wrap:wrap")
|
div(style="display:flex;flex-direction:row;flex-wrap:wrap")
|
||||||
div(v-for="device in devices" class="tracker-container")
|
div(v-for="device in devices" class="tracker-container")
|
||||||
template(v-if="device[0] === 'leftController'")
|
div(v-if="device[0] === 'leftController'" class="tracker-device" :class="trackingResultToClass(device[4])")
|
||||||
img(v-if="device[1] !== 'connected'" src="images/left_controller_status_off.png" class="tracker-device")
|
img(v-if="device[1] !== 'connected'" src="images/left_controller_status_off.png" class="tracker-device" :class="trackingResultToClass(device[4])")
|
||||||
img(v-else-if="device[2] === 'charging'" src="images/left_controller_status_ready_charging.png" class="tracker-device")
|
img(v-else-if="device[2] === 'charging'" src="images/left_controller_status_ready_charging.png")
|
||||||
img(v-else-if="device[3] < 20" src="images/left_controller_status_ready_low.png" class="tracker-device")
|
img(v-else-if="device[3] < 20" src="images/left_controller_status_ready_low.png")
|
||||||
img(v-else src="images/left_controller_status_ready.png" class="tracker-device")
|
img(v-else src="images/left_controller_status_ready.png")
|
||||||
span {{ device[3] }}%
|
span {{ device[3] }}%
|
||||||
template(v-else-if="device[0] === 'rightController'")
|
div(v-else-if="device[0] === 'rightController'" class="tracker-device" :class="trackingResultToClass(device[4])")
|
||||||
img(v-if="device[1] !== 'connected'" src="images/right_controller_status_off.png" class="tracker-device")
|
img(v-if="device[1] !== 'connected'" src="images/right_controller_status_off.png")
|
||||||
img(v-else-if="device[2] === 'charging'" src="images/right_controller_status_ready_charging.png" class="tracker-device")
|
img(v-else-if="device[2] === 'charging'" src="images/right_controller_status_ready_charging.png")
|
||||||
img(v-else-if="device[3] < 20" src="images/right_controller_status_ready_low.png" class="tracker-device")
|
img(v-else-if="device[3] < 20" src="images/right_controller_status_ready_low.png")
|
||||||
img(v-else src="images/right_controller_status_ready.png" class="tracker-device")
|
img(v-else src="images/right_controller_status_ready.png")
|
||||||
span {{ device[3] }}%
|
span {{ device[3] }}%
|
||||||
template(v-else-if="device[0] === 'controller'")
|
div(v-else-if="device[0] === 'controller'" class="tracker-device" :class="trackingResultToClass(device[4])")
|
||||||
img(v-if="device[1] !== 'connected'" src="images/controller_status_off.png" class="tracker-device")
|
img(v-if="device[1] !== 'connected'" src="images/controller_status_off.png")
|
||||||
img(v-else-if="device[2] === 'charging'" src="images/controller_status_ready_charging.png" class="tracker-device")
|
img(v-else-if="device[2] === 'charging'" src="images/controller_status_ready_charging.png")
|
||||||
img(v-else-if="device[3] < 20" src="images/controller_status_ready_low.png" class="tracker-device")
|
img(v-else-if="device[3] < 20" src="images/controller_status_ready_low.png")
|
||||||
img(v-else src="images/controller_status_ready.png" class="tracker-device")
|
img(v-else src="images/controller_status_ready.png")
|
||||||
span {{ device[3] }}%
|
span {{ device[3] }}%
|
||||||
template(v-else-if="device[0] === 'tracker'")
|
div(v-else-if="device[0] === 'tracker'" class="tracker-device" :class="trackingResultToClass(device[4])")
|
||||||
img(v-if="device[1] !== 'connected'" src="images/tracker_status_off.png" class="tracker-device")
|
img(v-if="device[1] !== 'connected'" src="images/tracker_status_off.png")
|
||||||
img(v-else-if="device[2] === 'charging'" src="images/tracker_status_ready_charging.png" class="tracker-device")
|
img(v-else-if="device[2] === 'charging'" src="images/tracker_status_ready_charging.png")
|
||||||
img(v-else-if="device[3] < 20" src="images/tracker_status_ready_low.png" class="tracker-device")
|
img(v-else-if="device[3] < 20" src="images/tracker_status_ready_low.png")
|
||||||
img(v-else src="images/tracker_status_ready.png" class="tracker-device")
|
img(v-else src="images/tracker_status_ready.png")
|
||||||
span {{ device[3] }}%
|
span {{ device[3] }}%
|
||||||
template(v-else-if="device[0] === 'base'")
|
div(v-else-if="device[0] === 'base'" class="tracker-device" :class="trackingResultToClass(device[4])")
|
||||||
img(v-if="device[1] !== 'connected'" src="images/base_status_off.png" class="tracker-device")
|
img(v-if="device[1] !== 'connected'" src="images/base_status_off.png")
|
||||||
img(v-else src="images/base_status_ready.png" class="tracker-device")
|
img(v-else src="images/base_status_ready.png")
|
||||||
span(v-if="device[3] !== 100") {{ device[3] }}x
|
span(v-if="device[3] !== 100") {{ device[3] }}x
|
||||||
template(v-else)
|
div(v-else class="tracker-device" :class="trackingResultToClass(device[4])")
|
||||||
img(v-if="device[1] !== 'connected'" src="images/other_status_off.png" class="tracker-device")
|
img(v-if="device[1] !== 'connected'" src="images/other_status_off.png")
|
||||||
img(v-else-if="device[2] === 'charging'" src="images/other_status_ready_charging.png" class="tracker-device")
|
img(v-else-if="device[2] === 'charging'" src="images/other_status_ready_charging.png")
|
||||||
img(v-else-if="device[3] < 20" src="images/other_status_ready_low.png" class="tracker-device")
|
img(v-else-if="device[3] < 20" src="images/other_status_ready_low.png")
|
||||||
img(v-else src="images/other_status_ready.png" class="tracker-device")
|
img(v-else src="images/other_status_ready.png")
|
||||||
span {{ device[3] }}%
|
span {{ device[3] }}%
|
||||||
.x-containerbottom
|
.x-containerbottom
|
||||||
template(v-if="nowPlaying.playing")
|
template(v-if="nowPlaying.playing")
|
||||||
|
|||||||
@@ -178,8 +178,13 @@ button {
|
|||||||
font-family: 'Noto Sans JP', 'Noto Sans KR', 'Noto Sans TC', 'Noto Sans SC',
|
font-family: 'Noto Sans JP', 'Noto Sans KR', 'Noto Sans TC', 'Noto Sans SC',
|
||||||
'Meiryo UI', 'Malgun Gothic', 'Segoe UI', sans-serif;
|
'Meiryo UI', 'Malgun Gothic', 'Segoe UI', sans-serif;
|
||||||
line-height: normal;
|
line-height: normal;
|
||||||
text-shadow: #000 0px 0px 3px, #000 0px 0px 3px, #000 0px 0px 3px,
|
text-shadow:
|
||||||
#000 0px 0px 3px, #000 0px 0px 3px, #000 0px 0px 3px;
|
#000 0px 0px 3px,
|
||||||
|
#000 0px 0px 3px,
|
||||||
|
#000 0px 0px 3px,
|
||||||
|
#000 0px 0px 3px,
|
||||||
|
#000 0px 0px 3px,
|
||||||
|
#000 0px 0px 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.x-app {
|
.x-app {
|
||||||
@@ -411,4 +416,21 @@ i.x-user-status.busy {
|
|||||||
.tracker-device img {
|
.tracker-device img {
|
||||||
width: 32px;
|
width: 32px;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
|
transition: all 0.25s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tracker-warning {
|
||||||
|
color: #fcfb00;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tracker-warning img {
|
||||||
|
filter: saturate(250%) brightness(151%) hue-rotate(221deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.tracker-error {
|
||||||
|
color: #fd4444;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tracker-error img {
|
||||||
|
filter: saturate(160%) brightness(88%) hue-rotate(161deg);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user