summaryrefslogtreecommitdiff
path: root/includes/pages/admin_angel_types.php
blob: f9c39ebff6587c137bb0396cf4619d0aabc03438 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
function admin_angel_types() {
	$angel_types_source = sql_select("SELECT * FROM `AngelTypes` ORDER BY `name`");
	$angel_types = array ();
	foreach ($angel_types_source as $angel_type) {
		$angel_types[] = array (
			'id' => $angel_type['id'],
			'name' => $angel_type['name'],
			'restricted' => $angel_type['restricted'] == 1 ? '&#10003;' : '',
			'actions' => '<a class="action edit" href="' . page_link_to('admin_angel_types') . '&show=edit&id=' . $angel_type['id'] . '">edit</a> <a class="action delete" href="' . page_link_to('admin_angel_types') . '&show=delete&id=' . $angel_type['id'] . '">delete</a>'
		);
	}

	if (isset ($_REQUEST['show'])) {
		if (test_request_int('id')) {
			$angel_type = sql_select("SELECT * FROM `AngelTypes` WHERE `id`=" . sql_escape($_REQUEST['id']));
			if (count($angel_type) > 0) {
				$id = $_REQUEST['id'];
				$name = $angel_type[0]['name'];
				$restricted = $angel_type[0]['restricted'];
			} else
				redirect(page_link_to('admin_angel_types'));
		}

		if ($_REQUEST['show'] == 'edit') {
			$msg = "";
			$name = "";
			$restricted = 0;

			if (isset ($_REQUEST['submit'])) {
				$ok = true;

				if (isset ($_REQUEST['name']) && strlen(strip_request_item('name')) > 0) {
					$name = strip_request_item('name');
					if (sql_num_query("SELECT * FROM `AngelTypes` WHERE NOT `id`=" . sql_escape(isset ($id) ? $id : 0) . " AND `name`='" . sql_escape(strip_request_item('name')) . "' LIMIT 1") > 0) {
						$ok = false;
						$msg .= error("This angel type name is already given.", true);
					}
				} else {
					$ok = false;
					$msg .= error("Please enter a name.", true);
				}

				if (isset ($_REQUEST['restricted']))
					$restricted = 1;

				if ($ok) {
					if (isset ($id))
						sql_query("UPDATE `AngelTypes` SET `name`='" . sql_escape($name) . "', `restricted`=" . sql_escape($restricted) . " WHERE `id`=" . sql_escape($id) . " LIMIT 1");
					else
						sql_query("INSERT INTO `AngelTypes` SET `name`='" . sql_escape($name) . "', `restricted`=" . sql_escape($restricted));

					success("Angel type saved.");
					redirect(page_link_to('admin_angel_types'));
				}
			}

			return page(array (
				buttons(array (
					button(page_link_to('admin_angel_types'), "Back", 'back')
				)),
				$msg,
				form(array (
					form_text('name', 'Name', $name),
					form_checkbox('restricted', 'Restricted', $restricted),
					form_info("", "Restricted angel types can only be used by an angel if enabled by an archangel (double opt-in)."),
					form_submit('submit', 'Save')
				))
			));
		}
		elseif ($_REQUEST['show'] == 'delete') {
			if (isset ($_REQUEST['ack'])) {
				sql_query("DELETE FROM `NeededAngelTypes` WHERE `angel_type_id`=" . sql_escape($id) . " LIMIT 1");
				sql_query("DELETE FROM `ShiftEntry` WHERE `TID`=" . sql_escape($id) . " LIMIT 1");
				sql_query("DELETE FROM `AngelTypes` WHERE `id`=" . sql_escape($id) . " LIMIT 1");
				success(sprintf("Angel type %s deleted.", $name));
				redirect(page_link_to('admin_angel_types'));
			}

			return page(array (
				buttons(array (
					button(page_link_to('admin_angel_types'), "Back", 'back')
				)),
				sprintf("Do you want to delete angel type %s?", $name),
				buttons(array (
					button(page_link_to('admin_angel_types') . '&show=delete&id=' . $id . '&ack', "Delete", 'delete')
				))
			));
		} else
			redirect(page_link_to('admin_angel_types'));
	}

	return page(array (
		buttons(array (
			button(page_link_to('admin_angel_types') . '&show=edit', "Add", 'add')
		)),
		msg(),
		table(array (
			'name' => "Name",
			'restricted' => "Restricted",
			'actions' => ""
		), $angel_types)
	));
}
?>