• R/O
  • SSH
  • HTTPS

pworg: Commit


Commit MetaInfo

Revision4 (tree)
Time2021-09-30 23:05:23
Authormateuszviste

Log Message

items may be removed from sql

Change Summary

Incremental Difference

--- trunk/index.php (revision 3)
+++ trunk/index.php (revision 4)
@@ -18,12 +18,13 @@
1818 function sql_load_item_by_id($type, $id) {
1919 $db = new SQLite3('agenda.sqlite3', SQLITE3_OPEN_READONLY);
2020 if (!$db) return(FALSE);
21+ $type = strtolower($type);
2122
22- if ($type === 'TODO') {
23+ if ($type === 'todo') {
2324 $stmt = $db->prepare('SELECT * FROM todos WHERE id = :id');
24- } else if ($type === 'EVENT') {
25+ } else if ($type === 'event') {
2526 $stmt = $db->prepare('SELECT * FROM events WHERE id = :id');
26- } else if ($type === 'MEMO') {
27+ } else if ($type === 'memo') {
2728 $stmt = $db->prepare('SELECT * FROM memos WHERE id = :id');
2829 }
2930 $stmt->bindvalue(':id', $id, SQLITE3_INTEGER);
@@ -131,12 +132,49 @@
131132 }
132133 echo '<textarea name="desc">' . htmlspecialchars($obj['description']) . "</textarea><br>\n";
133134
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) . '&amp;id=' . $id . '&amp;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+
135144 echo "</form>\n";
136145 echo "</div>\n";
137146 }
138147
139148
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+
140178 function get_or_post($var, $fallback) {
141179 $r = $fallback;
142180 if (!empty($_GET[$var])) $r = $_GET[$var];
@@ -172,6 +210,31 @@
172210 goto GAMEOVER;
173211 }
174212
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+
175238 if ($a === 'jmp') {
176239 echo '<div class="column">' . "\n";
177240 echo ' <div class="columntitle">GO TO DATE</div><br>' . "\n";
--- trunk/style.css (revision 3)
+++ trunk/style.css (revision 4)
@@ -151,6 +151,22 @@
151151 border-radius: 0.25em;
152152 }
153153
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+
154170 div.nothingmsg {
155171 color: #777;
156172 text-align: center;
Show on old repository browser