+
+
+
+ toggleGroupSelection(group.id)" />
+
+
g.id);
+ userDialogGroupAllSelected.value = !allSelected;
+
+ // Toggle editMode off and back on to force checkbox UI update
+ userDialogGroupEditMode.value = false;
+ nextTick(() => {
+ userDialogGroupEditMode.value = true;
+ });
+ }
+
+ // Apply the given visibility to all selected groups
+ async function bulkSetVisibility(newVisibility) {
+ for (const groupId of userDialogGroupEditSelectedGroupIds.value) {
+ setGroupVisibility(groupId, newVisibility);
+ }
+ }
+
+ // Leave (remove user from) all selected groups
+ function bulkLeaveGroups() {
+ for (const groupId of userDialogGroupEditSelectedGroupIds.value) {
+ leaveGroupPrompt(groupId)
+ }
+ }
+
+ // Toggle individual group selection for bulk actions
+ function toggleGroupSelection(groupId) {
+ const index = userDialogGroupEditSelectedGroupIds.value.indexOf(groupId)
+ if (index === -1) {
+ userDialogGroupEditSelectedGroupIds.value.push(groupId)
+ } else {
+ userDialogGroupEditSelectedGroupIds.value.splice(index, 1)
+ }
+ }
+
function moveGroupUp(groupId) {
const index = props.inGameGroupOrder.indexOf(groupId);
if (index > 0) {
diff --git a/src/localization/en/en.json b/src/localization/en/en.json
index 5884c38d..13ce3e6b 100644
--- a/src/localization/en/en.json
+++ b/src/localization/en/en.json
@@ -1019,6 +1019,9 @@
"unsubscribe": "Unsubscribe From Announcements",
"subscribe": "Subscribe To Announcements",
"invite_to_group": "Invite To Group",
+ "manage_selected": "Manage Selected Groups",
+ "select_all": "Select All",
+ "deselect_all": "Deselect All",
"visibility_everyone": "Visibility Everyone",
"visibility_friends": "Visibility Friends",
"visibility_hidden": "Visibility Hidden",