From 0f7e280bb3d339cd332b871c9526937d5aa93ffa Mon Sep 17 00:00:00 2001
From: Michiel Scholten
Date: Tue, 6 May 2025 23:15:09 +0200
Subject: [PATCH] Show bookmarks in a grid
---
src/digimarks/static/css/digimarks.css | 15 +++++++++++++++
src/digimarks/static/css/digui.css | 12 ++++++++++++
src/digimarks/static/js/digimarks.js | 19 ++++++++++---------
src/digimarks/templates/user_index.html | 15 ++++++++++++++-
4 files changed, 51 insertions(+), 10 deletions(-)
diff --git a/src/digimarks/static/css/digimarks.css b/src/digimarks/static/css/digimarks.css
index 2ebe78e..8267190 100644
--- a/src/digimarks/static/css/digimarks.css
+++ b/src/digimarks/static/css/digimarks.css
@@ -15,3 +15,18 @@ button:hover {
button:focus {
border-color: #d57803;
}
+
+.cards {
+ grid-column-gap: 1rem;
+ grid-row-gap: 1rem;
+ grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
+}
+
+.card {
+ background-color: #fff;
+ border: 1px solid #d5d9d9;
+ border-radius: 8px;
+ box-shadow: rgba(213, 217, 217, .5) 0 2px 5px 0;
+ /*margin: 1em;*/
+ padding: 1em;
+}
\ No newline at end of file
diff --git a/src/digimarks/static/css/digui.css b/src/digimarks/static/css/digui.css
index 01a2fa9..89de6f1 100644
--- a/src/digimarks/static/css/digui.css
+++ b/src/digimarks/static/css/digui.css
@@ -3,6 +3,8 @@
* v0.0.1
*/
+/* Main structure */
+
body {
height: 125vh;
font-family: sans-serif;
@@ -45,6 +47,7 @@ header li a {
background-color: #cccccc;
}
+/* Buttons */
button {
background-color: #fff;
border: 1px solid #d5d9d9;
@@ -76,3 +79,12 @@ button:focus {
box-shadow: rgba(213, 217, 217, .5) 0 2px 5px 0;
outline: 0;
}
+
+/* Cards */
+.cards {
+ display: grid;
+}
+
+.card {
+ display: inline-grid;
+}
\ No newline at end of file
diff --git a/src/digimarks/static/js/digimarks.js b/src/digimarks/static/js/digimarks.js
index d78d81e..6ac72c7 100644
--- a/src/digimarks/static/js/digimarks.js
+++ b/src/digimarks/static/js/digimarks.js
@@ -10,6 +10,8 @@ document.addEventListener('alpine:init', () => {
tags: [],
show_bookmarks: Alpine.$persist(true).as('show_bookmarks'),
+ show_bookmarks_list: Alpine.$persist(true).as('show_bookmarks_list'),
+ show_bookmarks_cards: Alpine.$persist(false).as('show_bookmarks_cards'),
show_tags: Alpine.$persist(false).as('show_tags'),
/* Loading indicator */
@@ -36,6 +38,7 @@ document.addEventListener('alpine:init', () => {
// this.countDownTimer();
}, 1000);
},
+
async loadCache() {
if (this.userKey in this.cache) {
console.log('Loading bookmarks from cache for user "' + this.userKey + '"');
@@ -77,6 +80,7 @@ document.addEventListener('alpine:init', () => {
this.loading = false;
},
+
get filteredBookmarks() {
// return this.cache[this.userKey]['bookmarks'].filter(
// i => i.title.includes(this.search)
@@ -91,6 +95,7 @@ document.addEventListener('alpine:init', () => {
i => i.match(new RegExp(this.search, "i"))
)
},
+
async sortAlphabetically(order = 'asc') {
this.sort_created_asc = false;
this.sort_created_desc = false;
@@ -117,19 +122,15 @@ document.addEventListener('alpine:init', () => {
this.bookmarks.sort((a, b) => a.created_date.localeCompare(b.created_date));
}
},
+
async toggleTagPage() {
console.log('Toggle tag page');
this.show_bookmarks = !this.show_bookmarks;
this.show_tags = !this.show_bookmarks;
- /*
- if (this.show_bookmarks) {
- this.show_tags = true;
- this.show_bookmarks = false;
- } else {
- this.show_bookmarks = true;
- this.show_tags = false;
- }
- */
+ },
+ async toggleListOrGrid() {
+ this.show_bookmarks_list = !this.show_bookmarks_list;
+ this.show_bookmarks_cards = !this.show_bookmarks_list;
}
})
});
diff --git a/src/digimarks/templates/user_index.html b/src/digimarks/templates/user_index.html
index c1fb386..1431d9c 100644
--- a/src/digimarks/templates/user_index.html
+++ b/src/digimarks/templates/user_index.html
@@ -41,13 +41,26 @@
+
-
+
+
+
+
+
+
*
+{#
![]()
#}
+
+
+
+