add auto change status description

This commit is contained in:
pa
2026-02-12 14:40:57 +09:00
parent 2d5a8bae7d
commit 8a4cc88e39
4 changed files with 138 additions and 16 deletions
+3 -1
View File
@@ -546,7 +546,9 @@
"auto_invite_request_accept_tooltip": "Automatically accept invite requests from favorite friends", "auto_invite_request_accept_tooltip": "Automatically accept invite requests from favorite friends",
"auto_invite_request_accept_off": "Off", "auto_invite_request_accept_off": "Off",
"auto_invite_request_accept_favs": "All Favorites", "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": { "legal_notice": {
"header": "Legal Notice", "header": "Legal Notice",
+68
View File
@@ -35,6 +35,10 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
const autoStateChangeCompanyStatus = ref('busy'); const autoStateChangeCompanyStatus = ref('busy');
const autoStateChangeInstanceTypes = ref([]); const autoStateChangeInstanceTypes = ref([]);
const autoStateChangeNoFriends = ref(false); const autoStateChangeNoFriends = ref(false);
const autoStateChangeAloneDescEnabled = ref(false);
const autoStateChangeAloneDesc = ref('');
const autoStateChangeCompanyDescEnabled = ref(false);
const autoStateChangeCompanyDesc = ref('');
const autoAcceptInviteRequests = ref('Off'); const autoAcceptInviteRequests = ref('Off');
async function initGeneralSettings() { async function initGeneralSettings() {
@@ -56,6 +60,10 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
autoStateChangeCompanyStatusConfig, autoStateChangeCompanyStatusConfig,
autoStateChangeInstanceTypesStrConfig, autoStateChangeInstanceTypesStrConfig,
autoStateChangeNoFriendsConfig, autoStateChangeNoFriendsConfig,
autoStateChangeAloneDescEnabledConfig,
autoStateChangeAloneDescConfig,
autoStateChangeCompanyDescEnabledConfig,
autoStateChangeCompanyDescConfig,
autoAcceptInviteRequestsConfig autoAcceptInviteRequestsConfig
] = await Promise.all([ ] = await Promise.all([
configRepository.getBool('VRCX_StartAtWindowsStartup', false), configRepository.getBool('VRCX_StartAtWindowsStartup', false),
@@ -84,6 +92,16 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
'[]' '[]'
), ),
configRepository.getBool('VRCX_autoStateChangeNoFriends', false), 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') configRepository.getString('VRCX_autoAcceptInviteRequests', 'Off')
]); ]);
@@ -122,6 +140,12 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
autoStateChangeInstanceTypesStrConfig autoStateChangeInstanceTypesStrConfig
); );
autoStateChangeNoFriends.value = autoStateChangeNoFriendsConfig; autoStateChangeNoFriends.value = autoStateChangeNoFriendsConfig;
autoStateChangeAloneDescEnabled.value =
autoStateChangeAloneDescEnabledConfig;
autoStateChangeAloneDesc.value = autoStateChangeAloneDescConfig;
autoStateChangeCompanyDescEnabled.value =
autoStateChangeCompanyDescEnabledConfig;
autoStateChangeCompanyDesc.value = autoStateChangeCompanyDescConfig;
autoAcceptInviteRequests.value = autoAcceptInviteRequestsConfig; autoAcceptInviteRequests.value = autoAcceptInviteRequestsConfig;
} }
@@ -262,6 +286,42 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
autoStateChangeNoFriends.value 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 * @param {string} value
*/ */
@@ -334,6 +394,10 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
autoStateChangeCompanyStatus, autoStateChangeCompanyStatus,
autoStateChangeInstanceTypes, autoStateChangeInstanceTypes,
autoStateChangeNoFriends, autoStateChangeNoFriends,
autoStateChangeAloneDescEnabled,
autoStateChangeAloneDesc,
autoStateChangeCompanyDescEnabled,
autoStateChangeCompanyDesc,
autoAcceptInviteRequests, autoAcceptInviteRequests,
setIsStartAtWindowsStartup, setIsStartAtWindowsStartup,
@@ -352,6 +416,10 @@ export const useGeneralSettingsStore = defineStore('GeneralSettings', () => {
setAutoStateChangeCompanyStatus, setAutoStateChangeCompanyStatus,
setAutoStateChangeInstanceTypes, setAutoStateChangeInstanceTypes,
setAutoStateChangeNoFriends, setAutoStateChangeNoFriends,
setAutoStateChangeAloneDescEnabled,
setAutoStateChangeAloneDesc,
setAutoStateChangeCompanyDescEnabled,
setAutoStateChangeCompanyDesc,
setAutoAcceptInviteRequests, setAutoAcceptInviteRequests,
promptProxySettings promptProxySettings
}; };
+26 -15
View File
@@ -1628,22 +1628,33 @@ export const useUserStore = defineStore('User', () => {
return; return;
} }
userRequest const params = { status: newStatus };
.saveCurrentUser({ if (
status: newStatus withCompany &&
}) generalSettingsStore.autoStateChangeCompanyDescEnabled
.then(() => { ) {
const text = `Status automatically changed to ${newStatus}`; params.statusDescription =
if (AppDebug.errorNoty) { generalSettingsStore.autoStateChangeCompanyDesc;
AppDebug.errorNoty.close(); } else if (
} !withCompany &&
AppDebug.errorNoty = new Noty({ generalSettingsStore.autoStateChangeAloneDescEnabled
type: 'info', ) {
text params.statusDescription =
}); generalSettingsStore.autoStateChangeAloneDesc;
AppDebug.errorNoty.show(); }
console.log(text);
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) { function addCustomTag(data) {
@@ -36,6 +36,22 @@
</SelectItem> </SelectItem>
</SelectContent> </SelectContent>
</Select> </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>
<div> <div>
@@ -62,6 +78,22 @@
</SelectItem> </SelectItem>
</SelectContent> </SelectContent>
</Select> </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>
<div> <div>
@@ -147,6 +179,7 @@
import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';
import { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group'; import { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group';
import { Info } from 'lucide-vue-next'; import { Info } from 'lucide-vue-next';
import { Input } from '@/components/ui/input';
import { computed } from 'vue'; import { computed } from 'vue';
import { storeToRefs } from 'pinia'; import { storeToRefs } from 'pinia';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
@@ -172,6 +205,10 @@
autoStateChangeCompanyStatus, autoStateChangeCompanyStatus,
autoStateChangeInstanceTypes, autoStateChangeInstanceTypes,
autoStateChangeNoFriends, autoStateChangeNoFriends,
autoStateChangeAloneDescEnabled,
autoStateChangeAloneDesc,
autoStateChangeCompanyDescEnabled,
autoStateChangeCompanyDesc,
autoAcceptInviteRequests autoAcceptInviteRequests
} = storeToRefs(generalSettingsStore); } = storeToRefs(generalSettingsStore);
@@ -181,6 +218,10 @@
setAutoStateChangeCompanyStatus, setAutoStateChangeCompanyStatus,
setAutoStateChangeInstanceTypes, setAutoStateChangeInstanceTypes,
setAutoStateChangeNoFriends, setAutoStateChangeNoFriends,
setAutoStateChangeAloneDescEnabled,
setAutoStateChangeAloneDesc,
setAutoStateChangeCompanyDescEnabled,
setAutoStateChangeCompanyDesc,
setAutoAcceptInviteRequests setAutoAcceptInviteRequests
} = generalSettingsStore; } = generalSettingsStore;