mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-11-22 21:09:21 +00:00
Can delete group
This commit is contained in:
parent
9646cb7a70
commit
df111e393a
@ -238,11 +238,22 @@ class GroupsHelper {
|
|||||||
.execWithFilesAndThrow();
|
.execWithFilesAndThrow();
|
||||||
|
|
||||||
/// Delete group logo
|
/// Delete group logo
|
||||||
|
///
|
||||||
|
/// Throws in case of error
|
||||||
static Future<void> deleteLogo(int groupID) async =>
|
static Future<void> deleteLogo(int groupID) async =>
|
||||||
await APIRequest(uri: "groups/delete_logo", needLogin: true)
|
await APIRequest(uri: "groups/delete_logo", needLogin: true)
|
||||||
.addInt("id", groupID)
|
.addInt("id", groupID)
|
||||||
.execWithThrow();
|
.execWithThrow();
|
||||||
|
|
||||||
|
/// Delete a group
|
||||||
|
///
|
||||||
|
/// Throws in case of error
|
||||||
|
static Future<void> deleteGroup(int groupID, String password) async =>
|
||||||
|
await APIRequest(uri: "groups/delete", needLogin: true)
|
||||||
|
.addInt("groupID", groupID)
|
||||||
|
.addString("password", password)
|
||||||
|
.execWithThrow();
|
||||||
|
|
||||||
/// Turn an API entry into a group object
|
/// Turn an API entry into a group object
|
||||||
Group _getGroupFromAPI(Map<String, dynamic> map) {
|
Group _getGroupFromAPI(Map<String, dynamic> map) {
|
||||||
return Group(
|
return Group(
|
||||||
|
@ -3,8 +3,10 @@ import 'dart:typed_data';
|
|||||||
import 'package:comunic/helpers/groups_helper.dart';
|
import 'package:comunic/helpers/groups_helper.dart';
|
||||||
import 'package:comunic/models/advanced_group_info.dart';
|
import 'package:comunic/models/advanced_group_info.dart';
|
||||||
import 'package:comunic/models/group.dart';
|
import 'package:comunic/models/group.dart';
|
||||||
|
import 'package:comunic/ui/dialogs/input_user_password_dialog.dart';
|
||||||
import 'package:comunic/ui/dialogs/multi_choices_dialog.dart';
|
import 'package:comunic/ui/dialogs/multi_choices_dialog.dart';
|
||||||
import 'package:comunic/ui/dialogs/virtual_directory_dialog.dart';
|
import 'package:comunic/ui/dialogs/virtual_directory_dialog.dart';
|
||||||
|
import 'package:comunic/ui/routes/main_route.dart';
|
||||||
import 'package:comunic/ui/widgets/async_screen_widget.dart';
|
import 'package:comunic/ui/widgets/async_screen_widget.dart';
|
||||||
import 'package:comunic/ui/widgets/comunic_back_button_widget.dart';
|
import 'package:comunic/ui/widgets/comunic_back_button_widget.dart';
|
||||||
import 'package:comunic/ui/widgets/group_icon_widget.dart';
|
import 'package:comunic/ui/widgets/group_icon_widget.dart';
|
||||||
@ -81,7 +83,8 @@ class _GroupSettingsScreenState extends SafeState<GroupSettingsScreen> {
|
|||||||
sections: [
|
sections: [
|
||||||
_buildGeneralSection(),
|
_buildGeneralSection(),
|
||||||
_buildAccessRestrictions(),
|
_buildAccessRestrictions(),
|
||||||
_buildGroupLogoArea()
|
_buildGroupLogoArea(),
|
||||||
|
_buildDangerZone(),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -316,4 +319,38 @@ class _GroupSettingsScreenState extends SafeState<GroupSettingsScreen> {
|
|||||||
showSimpleSnack(context, tr("Could not delete group logo!"));
|
showSimpleSnack(context, tr("Could not delete group logo!"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget _buildDangerZone() {
|
||||||
|
return SettingsSection(
|
||||||
|
title: tr("Danger zone"),
|
||||||
|
tiles: [
|
||||||
|
SettingsTile(
|
||||||
|
title: tr("Delete group"),
|
||||||
|
onTap: _deleteGroup,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Delete the group
|
||||||
|
void _deleteGroup() async {
|
||||||
|
try {
|
||||||
|
final password = await showUserPasswordDialog(context);
|
||||||
|
|
||||||
|
if (password == null) return;
|
||||||
|
|
||||||
|
if (!await showConfirmDialog(
|
||||||
|
context: context,
|
||||||
|
message: tr(
|
||||||
|
"Do you really want to delete this group ? All the posts related to it will be permanently deleted!")))
|
||||||
|
return;
|
||||||
|
|
||||||
|
await GroupsHelper.deleteGroup(_groupSettings.id, password);
|
||||||
|
|
||||||
|
MainController.of(context).popPage();
|
||||||
|
} catch (e, s) {
|
||||||
|
print("Could not delete the group! $e\n$s");
|
||||||
|
showSimpleSnack(context, tr("Could not delete the group"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user