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
|
2021-12-12
Checklist of design goals:
x * input field for pasting a bookmark, and also a drag-and-drop target.
* a setting in the webapp for making all links always open in a new tab (stored in cookie/session?)
* per-user settings
x * ldap integration (find my other flask demo app)
x * pluggable database (sqlite is default)
x * bookmark attributes: link, timestamp, user, tags (comma-delimited), notes, icon (optional), bid (bookmark id), order_id, always_open_in_new_tab
* customizable css theming
* rearrange order, group by category (includes duplicates), group by YYYY-MM, YYYY-MM-DD
* import from firefox/newmoon/librewolf profile (see my mbbmlib)
- * option to remember session forever at login
x * logout button
* server settings: always fetch favicons
* "server settings" page for admins
* userlist, so admin can add user or delete user (what happens to bookmarks for that user?)
* add "view all bookmarks" option for admins on view.html. Just add to the drop-down list '%'?
* add functionality of automatically adding users who successfully authenticate with ldap
* add about page?
* add to the user settings page the ability to control database value for per-user "always_open_in_new_tab" setting.
* actually follow the per-user AOINT
* add per-user setting for showing a "delete" button in view_list.html output
# Dependencies or bundled libs:
* mbbmlib
* session_app
# database schema:
USERS:
* uid (number)
* name (text, FK linked to [uid, configurable] from ldap)
* always_open_in_new_tab (boolean)
BM:
bid, url, title, uid FK, tags, notes, iid FK, timestamp, order_id, always_open_in_new_tab
ICONS:
iid, site (for deduping purposes, or write scheduled task to dedupe), icondata (that textual format?)
# References
* https://github.com/awesome-selfhosted/awesome-selfhosted#bookmarks-and-link-sharing
Good ideas:
* https://ungleich.ch/u/projects/ubookmark/
* https://nofussbm.herokuapp.com/signup.html
* https://datatables.net/
## future research:
* https://betterprogramming.pub/create-a-sortable-list-with-draggable-items-using-javascript-9ef38f96b258
Original design goals for my proposed bookmark webapp. from 2021-12-12
* input field for pasting a bookmark, and also a drag-and-drop target.
* a setting in the webapp for making all links always open in a new tab (stored in cookie/session?)
* per-user settings
* ldap integration (find my other flask demo app)
* pluggable database (sqlite is default)
* bookmark attributes: link, timestamp, user, tags (comma-delimited), notes, icon (optional), bid (bookmark id), order_id, always_open_in_new_tab
* customizable css theming
* rearrange order, group by category (includes duplicates), group by YYYY-MM, YYYY-MM-DD
* import from firefox/newmoon/librewolf profile (see my mbbmlib)
* option to remember session forever at login
* logout button
## 2021-12-18 downloaded for datatables:
wget https://code.jquery.com/jquery-3.6.0.min.js
wget https://cdn.datatables.net/1.11.3/js/jquery.dataTables.min.js
wget https://cdn.datatables.net/1.11.3/css/jquery.dataTables.min.css
# from https://datatables.net/download/ builder utility
wget https://datatables.net/download/builder?dt/dt-1.11.3/b-2.1.1/sl-1.3.4
|