Profile + Settings page

This commit is contained in:
Natsumi
2021-02-02 15:36:49 +13:00
parent ef88ad79d4
commit 352ce3cf1d
2 changed files with 102 additions and 98 deletions
+2 -2
View File
@@ -3434,7 +3434,7 @@ speechSynthesis.getVoices();
onClick: () => AppApi.OpenLink('https://github.com/pypy-vrc/VRCX/releases') onClick: () => AppApi.OpenLink('https://github.com/pypy-vrc/VRCX/releases')
} }
}).show(); }).show();
this.notifyMenu('more'); this.notifyMenu('settings');
} }
} else { } else {
this.latestAppVersion = 'Error occured'; this.latestAppVersion = 'Error occured';
@@ -5723,7 +5723,7 @@ speechSynthesis.getVoices();
}); });
}; };
// App: More // App: Profile + Settings
$app.data.configTreeData = []; $app.data.configTreeData = [];
$app.data.currentUserTreeData = []; $app.data.currentUserTreeData = [];
+100 -96
View File
@@ -62,7 +62,8 @@ html
+menuitem('friendLog', 'Friend Log', 'el-icon-notebook-2') +menuitem('friendLog', 'Friend Log', 'el-icon-notebook-2')
+menuitem('moderation', 'Moderation', 'el-icon-finished') +menuitem('moderation', 'Moderation', 'el-icon-finished')
+menuitem('notification', 'Notification', 'el-icon-bell') +menuitem('notification', 'Notification', 'el-icon-bell')
+menuitem('more', 'More', 'el-icon-s-tools') +menuitem('profile', 'Profile', 'el-icon-user')
+menuitem('settings', 'Settings', 'el-icon-s-tools')
//- feed //- feed
.x-container(v-show="$refs.menu && $refs.menu.activeIndex === 'feed'") .x-container(v-show="$refs.menu && $refs.menu.activeIndex === 'feed'")
@@ -389,44 +390,10 @@ html
el-button(v-if="scope.row.type === 'friendRequest'" type="text" icon="el-icon-check" size="mini" @click="acceptNotification(scope.row)") el-button(v-if="scope.row.type === 'friendRequest'" type="text" icon="el-icon-check" size="mini" @click="acceptNotification(scope.row)")
el-button(type="text" icon="el-icon-close" size="mini" @click="hideNotification(scope.row)") el-button(type="text" icon="el-icon-close" size="mini" @click="hideNotification(scope.row)")
//- more //- profile
.x-container(v-show="$refs.menu && $refs.menu.activeIndex === 'more'") .x-container(v-show="$refs.menu && $refs.menu.activeIndex === 'profile'")
div.options-container(style="margin-top:0") div.options-container(style="margin-top:0")
span.header VRCX span.header Profile
.x-friend-list(style="margin-top:10px")
.x-friend-item(style="cursor:default")
.detail
span.name Version
span.extra(v-text="appVersion")
.x-friend-item(@click="checkAppVersion()")
.detail
span.name Latest Version
span.extra(v-if="latestAppVersion" v-text="latestAppVersion")
span.extra(v-else) Click to refresh
.x-friend-item(@click="openExternalLink('https://github.com/pypy-vrc/VRCX')")
.detail
span.name Repository URL
span.extra https://github.com/pypy-vrc/VRCX
div.options-container
span.header Game Info
.x-friend-list(style="margin-top:10px")
.x-friend-item
.detail(@click="API.getVisits()")
span.name Online Users
span.extra(v-if="visits") {{visits}} users online.
span.extra(v-else) Click to refresh
div(style="margin-top:5px")
el-button-group
el-button(size="small" icon="el-icon-s-operation" @click="showLaunchOptions()") Launch Options
div.options-container
span.header Direct Access
div(style="margin-top:10px")
el-button-group
el-button(size="small" @click="promptUserDialog()") User
el-button(size="small" @click="promptWorldDialog()") World
el-button(size="small" @click="promptAvatarDialog()") Avatar
div.options-container
span.header My Profile
.x-friend-list(style="margin-top:10px") .x-friend-list(style="margin-top:10px")
.x-friend-item(@click="showUserDialog(API.currentUser.id)") .x-friend-item(@click="showUserDialog(API.currentUser.id)")
.avatar .avatar
@@ -446,66 +413,100 @@ html
div(style="margin-top:10px") div(style="margin-top:10px")
el-button(size="small" icon="el-icon-switch-button" @click="logout()") Logout el-button(size="small" icon="el-icon-switch-button" @click="logout()") Logout
el-button(size="small" icon="el-icon-printer" @click="showExportFriendsListDialog()") Export Friends List el-button(size="small" icon="el-icon-printer" @click="showExportFriendsListDialog()") Export Friends List
div(v-if="API.currentUser.$isVRCPlus" style="margin-top:30px") div.options-container
span.header VRCPlus Icons span.header Game Info
.x-friend-list(style="margin-top:10px")
.x-friend-item
.detail(@click="API.getVisits()")
span.name Online Users
span.extra(v-if="visits") {{visits}} users online.
span.extra(v-else) Click to refresh
div.options-container
span.header Direct Access
div(style="margin-top:10px")
el-button-group
el-button(size="small" @click="promptUserDialog()") User
el-button(size="small" @click="promptWorldDialog()") World
el-button(size="small" @click="promptAvatarDialog()") Avatar
div.options-container(v-if="API.currentUser.$isVRCPlus" style="margin-top:30px")
span.header VRCPlus Icons
el-tooltip(placement="top")
template(#content)
span Refresh
el-button(type="default" @click="displayVRCPlusIconsTable()" size="mini" icon="el-icon-refresh" circle style="margin-left:5px")
el-tooltip(placement="top")
template(#content)
span Clear results
el-button(type="default" @click="VRCPlusIconsTable = []" size="mini" icon="el-icon-delete" circle style="margin-left:0")
el-tooltip(placement="top")
template(#content)
span Reset icon
el-button(type="default" @click="setVRCPlusIcon('')" size="mini" icon="el-icon-close" circle style="margin:0" :disabled="!API.currentUser.userIcon")
//- input(type="file" @change="onFileChangeVRCPlusIcon")
br
.x-friend-item(v-for="icon in VRCPlusIconsTable" :key="icon.id" style="display:inline-block;margin-top:10px;cursor:default")
.vrcplus-icon(style="" @click="setVRCPlusIcon(icon.id)" :class="{ 'current-vrcplus-icon': compareCurrentVRCPlusIcon(icon.id) }")
img.avatar(v-if="icon.versions[1].file.url" v-lazy="icon.versions[1].file.url")
el-tooltip(placement="top") el-tooltip(placement="top")
template(#content) template(#content)
span Refresh span Delete
el-button(type="default" @click="displayVRCPlusIconsTable()" size="mini" icon="el-icon-refresh" circle style="margin-left:5px") el-button(type="default" @click="deleteVRCPlusIcon(icon.id)" size="mini" icon="el-icon-delete" circle style="float:right;")
el-tooltip(placement="top") div.options-container
template(#content) span.header Past Display Names
span Clear results data-tables(v-bind="pastDisplayNameTable" style="margin-top:10px")
el-button(type="default" @click="VRCPlusIconsTable = []" size="mini" icon="el-icon-delete" circle style="margin-left:0") el-table-column(label="Date" prop="updated_at" sortable="custom")
el-tooltip(placement="top") template(v-once #default="scope")
template(#content) span {{ scope.row.updated_at | formatDate('YYYY-MM-DD HH24:MI:SS') }}
span Reset icon el-table-column(label="Name" prop="displayName")
el-button(type="default" @click="setVRCPlusIcon('')" size="mini" icon="el-icon-close" circle style="margin:0" :disabled="!API.currentUser.userIcon") div.options-container
//- input(type="file" @change="onFileChangeVRCPlusIcon") span.header Config JSON
br el-tooltip(placement="top")
.x-friend-item(v-for="icon in VRCPlusIconsTable" :key="icon.id" style="display:inline-block;margin-top:10px;cursor:default") template(#content)
.vrcplus-icon(style="" @click="setVRCPlusIcon(icon.id)" :class="{ 'current-vrcplus-icon': compareCurrentVRCPlusIcon(icon.id) }") span Refresh
img.avatar(v-if="icon.versions[1].file.url" v-lazy="icon.versions[1].file.url") el-button(type="default" @click="refreshConfigTreeData()" size="mini" icon="el-icon-refresh" circle style="margin-left:5px")
el-tooltip(placement="top") el-tooltip(placement="top")
template(#content) template(#content)
span Delete span Clear results
el-button(type="default" @click="deleteVRCPlusIcon(icon.id)" size="mini" icon="el-icon-delete" circle style="float:right;") el-button(type="default" @click="configTreeData = []" size="mini" icon="el-icon-delete" circle style="margin-left:0")
div.options-container el-tree(:data="configTreeData" style="margin-top:10px;font-size:12px")
span.header Past Display Names template(#default="scope")
data-tables(v-bind="pastDisplayNameTable" style="margin-top:10px") span
el-table-column(label="Date" prop="updated_at" sortable="custom") span(v-text="scope.data.key" style="font-weight:bold;margin-right:5px")
template(v-once #default="scope") span(v-if="!scope.data.children" v-text="scope.data.value")
span {{ scope.row.updated_at | formatDate('YYYY-MM-DD HH24:MI:SS') }} div.options-container
el-table-column(label="Name" prop="displayName") span.header Current User JSON
div.options-container el-tooltip(placement="top")
span.header Config JSON template(#content)
el-tooltip(placement="top") span Refresh
template(#content) el-button(type="default" @click="refreshCurrentUserTreeData()" size="mini" icon="el-icon-refresh" circle style="margin-left:5px")
span Refresh el-tooltip(placement="top")
el-button(type="default" @click="refreshConfigTreeData()" size="mini" icon="el-icon-refresh" circle style="margin-left:5px") template(#content)
el-tooltip(placement="top") span Clear results
template(#content) el-button(type="default" @click="currentUserTreeData = []" size="mini" icon="el-icon-delete" circle style="margin-left:0")
span Clear results el-tree(:data="currentUserTreeData" style="margin-top:10px;font-size:12px")
el-button(type="default" @click="configTreeData = []" size="mini" icon="el-icon-delete" circle style="margin-left:0") template(#default="scope")
el-tree(:data="configTreeData" style="margin-top:10px;font-size:12px") span
template(#default="scope") span(v-text="scope.data.key" style="font-weight:bold;margin-right:5px")
span span(v-if="!scope.data.children" v-text="scope.data.value")
span(v-text="scope.data.key" style="font-weight:bold;margin-right:5px")
span(v-if="!scope.data.children" v-text="scope.data.value") //- settings
div.options-container .x-container(v-show="$refs.menu && $refs.menu.activeIndex === 'settings'")
span.header Current User JSON div.options-container(style="margin-top:0")
el-tooltip(placement="top") span.header Settings
template(#content) .x-friend-list(style="margin-top:10px")
span Refresh .x-friend-item(style="cursor:default")
el-button(type="default" @click="refreshCurrentUserTreeData()" size="mini" icon="el-icon-refresh" circle style="margin-left:5px") .detail
el-tooltip(placement="top") span.name Version
template(#content) span.extra(v-text="appVersion")
span Clear results .x-friend-item(@click="checkAppVersion()")
el-button(type="default" @click="currentUserTreeData = []" size="mini" icon="el-icon-delete" circle style="margin-left:0") .detail
el-tree(:data="currentUserTreeData" style="margin-top:10px;font-size:12px") span.name Latest Version
template(#default="scope") span.extra(v-if="latestAppVersion" v-text="latestAppVersion")
span span.extra(v-else) Click to refresh
span(v-text="scope.data.key" style="font-weight:bold;margin-right:5px") .x-friend-item(@click="openExternalLink('https://github.com/pypy-vrc/VRCX')")
span(v-if="!scope.data.children" v-text="scope.data.value") .detail
span.name Repository URL
span.extra https://github.com/pypy-vrc/VRCX
div.options-container div.options-container
span.header Appearance span.header Appearance
div.options-container-item div.options-container-item
@@ -637,6 +638,9 @@ html
div.options-container-item div.options-container-item
span.name Auto login span.name Auto login
el-switch(v-model="isAutoLogin") el-switch(v-model="isAutoLogin")
div.options-container-item
el-button-group
el-button(size="small" icon="el-icon-s-operation" @click="showLaunchOptions()") Launch Options
div.options-container(style="margin-top:45px;border-top:1px solid #eee;padding-top:30px") div.options-container(style="margin-top:45px;border-top:1px solid #eee;padding-top:30px")
span.header Legal Notice span.header Legal Notice
div.options-container-item div.options-container-item