Revision | 4 (tree) |
---|---|
Time | 2021-09-30 23:05:23 |
Author | mateuszviste |
items may be removed from sql
@@ -18,12 +18,13 @@ | ||
18 | 18 | function sql_load_item_by_id($type, $id) { |
19 | 19 | $db = new SQLite3('agenda.sqlite3', SQLITE3_OPEN_READONLY); |
20 | 20 | if (!$db) return(FALSE); |
21 | + $type = strtolower($type); | |
21 | 22 | |
22 | - if ($type === 'TODO') { | |
23 | + if ($type === 'todo') { | |
23 | 24 | $stmt = $db->prepare('SELECT * FROM todos WHERE id = :id'); |
24 | - } else if ($type === 'EVENT') { | |
25 | + } else if ($type === 'event') { | |
25 | 26 | $stmt = $db->prepare('SELECT * FROM events WHERE id = :id'); |
26 | - } else if ($type === 'MEMO') { | |
27 | + } else if ($type === 'memo') { | |
27 | 28 | $stmt = $db->prepare('SELECT * FROM memos WHERE id = :id'); |
28 | 29 | } |
29 | 30 | $stmt->bindvalue(':id', $id, SQLITE3_INTEGER); |
@@ -131,12 +132,49 @@ | ||
131 | 132 | } |
132 | 133 | echo '<textarea name="desc">' . htmlspecialchars($obj['description']) . "</textarea><br>\n"; |
133 | 134 | |
134 | - echo '<div class="btns"><a href="./?day=' . $day . '">cancel</a> <input type="submit" value="submit"></div>' . "\n"; | |
135 | + // buttons | |
136 | + echo '<div class="btns">'; | |
137 | + if ($id >= 0) { | |
138 | + echo '<a class="del" href="./?a=del' . strtolower($formtype) . '&id=' . $id . '&day=' . $day . '">delete</a>'; | |
139 | + } | |
140 | + echo '<a href="./?day=' . $day . '">cancel</a>'; | |
141 | + echo '<input type="submit" value="submit">'; | |
142 | + echo "</div>\n"; | |
143 | + | |
135 | 144 | echo "</form>\n"; |
136 | 145 | echo "</div>\n"; |
137 | 146 | } |
138 | 147 | |
139 | 148 | |
149 | +function formularz_usuwanie($a, $id, $day) { | |
150 | + if ($a === 'delevent') $formtype = 'event'; | |
151 | + if ($a === 'delmemo') $formtype = 'memo'; | |
152 | + if ($a === 'deltodo') $formtype = 'todo'; | |
153 | + | |
154 | + $obj = sql_load_item_by_id($formtype, $id); | |
155 | + | |
156 | + echo '<div class="column">' . "\n"; | |
157 | + echo '<div class="columntitle">WARNING</div><br>' . "\n"; | |
158 | + | |
159 | + echo '<form action="?day=' . $day . '" method="post" class="itemremoval">' . "\n"; | |
160 | + echo '<input type="hidden" name="a" value="removeitem">' . "\n"; | |
161 | + echo '<input type="hidden" name="removaltype" value="' . $formtype . '">' . "\n"; | |
162 | + echo '<input type="hidden" name="id" value="' . $id . '">' . "\n"; | |
163 | + | |
164 | + echo "This item will be DELETED:<br><br>\n"; | |
165 | + echo '<span class="itemtit">' . htmlspecialchars($obj['title']) . "</span><br><br>\n"; | |
166 | + echo "Do you wish to proceed?\n"; | |
167 | + | |
168 | + echo '<div class="btns">' . "\n"; | |
169 | + echo ' <a href="?day=' . $day . '">cancel</a>'; | |
170 | + echo ' <input type="submit" value="YES, DELETE">' . "\n"; | |
171 | + echo "</div>\n"; | |
172 | + echo "</form>\n"; | |
173 | + | |
174 | + echo "</div>\n"; | |
175 | +} | |
176 | + | |
177 | + | |
140 | 178 | function get_or_post($var, $fallback) { |
141 | 179 | $r = $fallback; |
142 | 180 | if (!empty($_GET[$var])) $r = $_GET[$var]; |
@@ -172,6 +210,31 @@ | ||
172 | 210 | goto GAMEOVER; |
173 | 211 | } |
174 | 212 | |
213 | +if (($a === 'deltodo') || ($a === 'delevent') || ($a === 'delmemo')) { | |
214 | + formularz_usuwanie($a, $id, $day); | |
215 | + goto GAMEOVER; | |
216 | +} | |
217 | + | |
218 | + | |
219 | +if ($a === 'removeitem') { | |
220 | + $db = new SQLite3('agenda.sqlite3'); | |
221 | + switch (strtolower($_POST['removaltype'])) { | |
222 | + case 'event': | |
223 | + $stmt = $db->prepare('DELETE FROM events WHERE id = :id'); | |
224 | + break; | |
225 | + case 'memo': | |
226 | + $stmt = $db->prepare('DELETE FROM memos WHERE id = :id'); | |
227 | + break; | |
228 | + case 'todo': | |
229 | + $stmt = $db->prepare('DELETE FROM todos WHERE id = :id'); | |
230 | + break; | |
231 | + } | |
232 | + $stmt->bindvalue(':id', $_POST['id'], SQLITE3_INTEGER); | |
233 | + $stmt->execute(); | |
234 | + $db->close(); | |
235 | +} | |
236 | + | |
237 | + | |
175 | 238 | if ($a === 'jmp') { |
176 | 239 | echo '<div class="column">' . "\n"; |
177 | 240 | echo ' <div class="columntitle">GO TO DATE</div><br>' . "\n"; |
@@ -151,6 +151,22 @@ | ||
151 | 151 | border-radius: 0.25em; |
152 | 152 | } |
153 | 153 | |
154 | +form div.btns a.del { | |
155 | + background: #f66; | |
156 | +} | |
157 | + | |
158 | +form.itemremoval { | |
159 | + text-align: center; | |
160 | +} | |
161 | + | |
162 | +form.itemremoval span.itemtit { | |
163 | + font-weight: bold; | |
164 | +} | |
165 | + | |
166 | +form.itemremoval div.btns { | |
167 | + margin-top: 3em; | |
168 | +} | |
169 | + | |
154 | 170 | div.nothingmsg { |
155 | 171 | color: #777; |
156 | 172 | text-align: center; |