mirror of
https://github.com/vrcx-team/VRCX.git
synced 2026-04-06 00:32:02 +02:00
add auto change status description
This commit is contained in:
@@ -546,7 +546,9 @@
|
||||
"auto_invite_request_accept_tooltip": "Automatically accept invite requests from favorite friends",
|
||||
"auto_invite_request_accept_off": "Off",
|
||||
"auto_invite_request_accept_favs": "All Favorites",
|
||||
"auto_invite_request_accept_selected_favs": "VRCX Favorites"
|
||||
"auto_invite_request_accept_selected_favs": "VRCX Favorites",
|
||||
"change_status_description": "Override status description",
|
||||
"status_description_placeholder": "Status description (max 32 characters)"
|
||||
},
|
||||
"legal_notice": {
|
||||
"header": "Legal Notice",
|
||||
|
||||
@@ -35,6 +35,10 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
|
||||
const autoStateChangeCompanyStatus = ref('busy');
|
||||
const autoStateChangeInstanceTypes = ref([]);
|
||||
const autoStateChangeNoFriends = ref(false);
|
||||
const autoStateChangeAloneDescEnabled = ref(false);
|
||||
const autoStateChangeAloneDesc = ref('');
|
||||
const autoStateChangeCompanyDescEnabled = ref(false);
|
||||
const autoStateChangeCompanyDesc = ref('');
|
||||
const autoAcceptInviteRequests = ref('Off');
|
||||
|
||||
async function initGeneralSettings() {
|
||||
@@ -56,6 +60,10 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
|
||||
autoStateChangeCompanyStatusConfig,
|
||||
autoStateChangeInstanceTypesStrConfig,
|
||||
autoStateChangeNoFriendsConfig,
|
||||
autoStateChangeAloneDescEnabledConfig,
|
||||
autoStateChangeAloneDescConfig,
|
||||
autoStateChangeCompanyDescEnabledConfig,
|
||||
autoStateChangeCompanyDescConfig,
|
||||
autoAcceptInviteRequestsConfig
|
||||
] = await Promise.all([
|
||||
configRepository.getBool('VRCX_StartAtWindowsStartup', false),
|
||||
@@ -84,6 +92,16 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
|
||||
'[]'
|
||||
),
|
||||
configRepository.getBool('VRCX_autoStateChangeNoFriends', false),
|
||||
configRepository.getBool(
|
||||
'VRCX_autoStateChangeAloneDescEnabled',
|
||||
false
|
||||
),
|
||||
configRepository.getString('VRCX_autoStateChangeAloneDesc', ''),
|
||||
configRepository.getBool(
|
||||
'VRCX_autoStateChangeCompanyDescEnabled',
|
||||
false
|
||||
),
|
||||
configRepository.getString('VRCX_autoStateChangeCompanyDesc', ''),
|
||||
configRepository.getString('VRCX_autoAcceptInviteRequests', 'Off')
|
||||
]);
|
||||
|
||||
@@ -122,6 +140,12 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
|
||||
autoStateChangeInstanceTypesStrConfig
|
||||
);
|
||||
autoStateChangeNoFriends.value = autoStateChangeNoFriendsConfig;
|
||||
autoStateChangeAloneDescEnabled.value =
|
||||
autoStateChangeAloneDescEnabledConfig;
|
||||
autoStateChangeAloneDesc.value = autoStateChangeAloneDescConfig;
|
||||
autoStateChangeCompanyDescEnabled.value =
|
||||
autoStateChangeCompanyDescEnabledConfig;
|
||||
autoStateChangeCompanyDesc.value = autoStateChangeCompanyDescConfig;
|
||||
autoAcceptInviteRequests.value = autoAcceptInviteRequestsConfig;
|
||||
}
|
||||
|
||||
@@ -262,6 +286,42 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
|
||||
autoStateChangeNoFriends.value
|
||||
);
|
||||
}
|
||||
function setAutoStateChangeAloneDescEnabled() {
|
||||
autoStateChangeAloneDescEnabled.value =
|
||||
!autoStateChangeAloneDescEnabled.value;
|
||||
configRepository.setBool(
|
||||
'VRCX_autoStateChangeAloneDescEnabled',
|
||||
autoStateChangeAloneDescEnabled.value
|
||||
);
|
||||
}
|
||||
/**
|
||||
* @param {string} value
|
||||
*/
|
||||
function setAutoStateChangeAloneDesc(value) {
|
||||
autoStateChangeAloneDesc.value = value;
|
||||
configRepository.setString(
|
||||
'VRCX_autoStateChangeAloneDesc',
|
||||
autoStateChangeAloneDesc.value
|
||||
);
|
||||
}
|
||||
function setAutoStateChangeCompanyDescEnabled() {
|
||||
autoStateChangeCompanyDescEnabled.value =
|
||||
!autoStateChangeCompanyDescEnabled.value;
|
||||
configRepository.setBool(
|
||||
'VRCX_autoStateChangeCompanyDescEnabled',
|
||||
autoStateChangeCompanyDescEnabled.value
|
||||
);
|
||||
}
|
||||
/**
|
||||
* @param {string} value
|
||||
*/
|
||||
function setAutoStateChangeCompanyDesc(value) {
|
||||
autoStateChangeCompanyDesc.value = value;
|
||||
configRepository.setString(
|
||||
'VRCX_autoStateChangeCompanyDesc',
|
||||
autoStateChangeCompanyDesc.value
|
||||
);
|
||||
}
|
||||
/**
|
||||
* @param {string} value
|
||||
*/
|
||||
@@ -334,6 +394,10 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
|
||||
autoStateChangeCompanyStatus,
|
||||
autoStateChangeInstanceTypes,
|
||||
autoStateChangeNoFriends,
|
||||
autoStateChangeAloneDescEnabled,
|
||||
autoStateChangeAloneDesc,
|
||||
autoStateChangeCompanyDescEnabled,
|
||||
autoStateChangeCompanyDesc,
|
||||
autoAcceptInviteRequests,
|
||||
|
||||
setIsStartAtWindowsStartup,
|
||||
@@ -352,6 +416,10 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
|
||||
setAutoStateChangeCompanyStatus,
|
||||
setAutoStateChangeInstanceTypes,
|
||||
setAutoStateChangeNoFriends,
|
||||
setAutoStateChangeAloneDescEnabled,
|
||||
setAutoStateChangeAloneDesc,
|
||||
setAutoStateChangeCompanyDescEnabled,
|
||||
setAutoStateChangeCompanyDesc,
|
||||
setAutoAcceptInviteRequests,
|
||||
promptProxySettings
|
||||
};
|
||||
|
||||
@@ -1628,22 +1628,33 @@ export const useUserStore = defineStore('User', () => {
|
||||
return;
|
||||
}
|
||||
|
||||
userRequest
|
||||
.saveCurrentUser({
|
||||
status: newStatus
|
||||
})
|
||||
.then(() => {
|
||||
const text = `Status automatically changed to ${newStatus}`;
|
||||
if (AppDebug.errorNoty) {
|
||||
AppDebug.errorNoty.close();
|
||||
}
|
||||
AppDebug.errorNoty = new Noty({
|
||||
type: 'info',
|
||||
text
|
||||
});
|
||||
AppDebug.errorNoty.show();
|
||||
console.log(text);
|
||||
const params = { status: newStatus };
|
||||
if (
|
||||
withCompany &&
|
||||
generalSettingsStore.autoStateChangeCompanyDescEnabled
|
||||
) {
|
||||
params.statusDescription =
|
||||
generalSettingsStore.autoStateChangeCompanyDesc;
|
||||
} else if (
|
||||
!withCompany &&
|
||||
generalSettingsStore.autoStateChangeAloneDescEnabled
|
||||
) {
|
||||
params.statusDescription =
|
||||
generalSettingsStore.autoStateChangeAloneDesc;
|
||||
}
|
||||
|
||||
userRequest.saveCurrentUser(params).then(() => {
|
||||
const text = `Status automatically changed to ${newStatus}`;
|
||||
if (AppDebug.errorNoty) {
|
||||
AppDebug.errorNoty.close();
|
||||
}
|
||||
AppDebug.errorNoty = new Noty({
|
||||
type: 'info',
|
||||
text
|
||||
});
|
||||
AppDebug.errorNoty.show();
|
||||
console.log(text);
|
||||
});
|
||||
}
|
||||
|
||||
function addCustomTag(data) {
|
||||
|
||||
@@ -36,6 +36,22 @@
|
||||
</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
|
||||
<SimpleSwitch
|
||||
style="margin-top: 8px"
|
||||
:label="t('view.settings.general.automation.change_status_description')"
|
||||
:value="autoStateChangeAloneDescEnabled"
|
||||
:disabled="!autoStateChangeEnabled"
|
||||
@change="setAutoStateChangeAloneDescEnabled" />
|
||||
<Input
|
||||
v-if="autoStateChangeAloneDescEnabled"
|
||||
:model-value="autoStateChangeAloneDesc"
|
||||
:disabled="!autoStateChangeEnabled"
|
||||
:maxlength="32"
|
||||
:placeholder="t('view.settings.general.automation.status_description_placeholder')"
|
||||
style="margin-top: 8px"
|
||||
size="sm"
|
||||
@update:modelValue="setAutoStateChangeAloneDesc" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
@@ -62,6 +78,22 @@
|
||||
</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
|
||||
<SimpleSwitch
|
||||
style="margin-top: 8px"
|
||||
:label="t('view.settings.general.automation.change_status_description')"
|
||||
:value="autoStateChangeCompanyDescEnabled"
|
||||
:disabled="!autoStateChangeEnabled"
|
||||
@change="setAutoStateChangeCompanyDescEnabled" />
|
||||
<Input
|
||||
v-if="autoStateChangeCompanyDescEnabled"
|
||||
:model-value="autoStateChangeCompanyDesc"
|
||||
:disabled="!autoStateChangeEnabled"
|
||||
:maxlength="32"
|
||||
:placeholder="t('view.settings.general.automation.status_description_placeholder')"
|
||||
style="margin-top: 8px"
|
||||
size="sm"
|
||||
@update:modelValue="setAutoStateChangeCompanyDesc" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
@@ -147,6 +179,7 @@
|
||||
import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';
|
||||
import { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group';
|
||||
import { Info } from 'lucide-vue-next';
|
||||
import { Input } from '@/components/ui/input';
|
||||
import { computed } from 'vue';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
@@ -172,6 +205,10 @@
|
||||
autoStateChangeCompanyStatus,
|
||||
autoStateChangeInstanceTypes,
|
||||
autoStateChangeNoFriends,
|
||||
autoStateChangeAloneDescEnabled,
|
||||
autoStateChangeAloneDesc,
|
||||
autoStateChangeCompanyDescEnabled,
|
||||
autoStateChangeCompanyDesc,
|
||||
autoAcceptInviteRequests
|
||||
} = storeToRefs(generalSettingsStore);
|
||||
|
||||
@@ -181,6 +218,10 @@
|
||||
setAutoStateChangeCompanyStatus,
|
||||
setAutoStateChangeInstanceTypes,
|
||||
setAutoStateChangeNoFriends,
|
||||
setAutoStateChangeAloneDescEnabled,
|
||||
setAutoStateChangeAloneDesc,
|
||||
setAutoStateChangeCompanyDescEnabled,
|
||||
setAutoStateChangeCompanyDesc,
|
||||
setAutoAcceptInviteRequests
|
||||
} = generalSettingsStore;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user