diff --git a/android/tinySSB/app/src/main/assets/web/board.js b/android/tinySSB/app/src/main/assets/web/kanban/board.js
similarity index 99%
rename from android/tinySSB/app/src/main/assets/web/board.js
rename to android/tinySSB/app/src/main/assets/web/kanban/board.js
index b6c951e..b3a157f 100644
--- a/android/tinySSB/app/src/main/assets/web/board.js
+++ b/android/tinySSB/app/src/main/assets/web/kanban/board.js
@@ -293,7 +293,7 @@ function kanban_new_event(e) {
if (op == Operation.LEAVE && e.header.fid == myId) {
delete board.pendingInvitations[myId]
board.subscribed = false
- load_board_list()
+ load_kanban_list()
}
if (board.subscribed) {
@@ -318,7 +318,7 @@ function kanban_new_event(e) {
if (curr_scenario != 'board' || curr_board != bid)
board.unreadEvents++
- load_board_list()
+ load_kanban_list()
// invite selected users (during Kanban board creation)
if (op == Operation.BOARD_CREATE && e.header.fid == myId) {
@@ -366,7 +366,7 @@ function kanban_new_event(e) {
board.lastUpdate = Date.now()
board.unreadEvents++
board.curr_prev = board.sortedOperations.get_tips()
- load_board_list()
+ load_kanban_list()
return
}
diff --git a/android/tinySSB/app/src/main/assets/web/board_ui.js b/android/tinySSB/app/src/main/assets/web/kanban/board_ui.js
similarity index 99%
rename from android/tinySSB/app/src/main/assets/web/board_ui.js
rename to android/tinySSB/app/src/main/assets/web/kanban/board_ui.js
index 79022d4..bc35e83 100644
--- a/android/tinySSB/app/src/main/assets/web/board_ui.js
+++ b/android/tinySSB/app/src/main/assets/web/kanban/board_ui.js
@@ -69,7 +69,7 @@ function dragDrop(ev) {
}
}
-function load_board_list() {
+function load_kanban_list() {
document.getElementById('lst:kanban').innerHTML = '';
if (Object.keys(tremola.board).length === 0)
return
@@ -428,7 +428,7 @@ function menu_rename_board() {
function ui_update_board_title(bid) {
var board = tremola.board[bid]
// update board list
- load_board_list()
+ load_kanban_list()
// update title name
if (curr_board == bid) {
var title = document.getElementById("conversationTitle"), bg, box;
@@ -445,7 +445,7 @@ function board_toggle_forget() {
board.forgotten = !board.forgotten
persist()
closeOverlay()
- load_board_list()
+ load_kanban_list()
setScenario('kanban')
}
diff --git a/android/tinySSB/app/src/main/assets/web/tremola.css b/android/tinySSB/app/src/main/assets/web/tremola.css
index 36214b2..c833633 100644
--- a/android/tinySSB/app/src/main/assets/web/tremola.css
+++ b/android/tinySSB/app/src/main/assets/web/tremola.css
@@ -219,6 +219,29 @@ textarea {
display: inline-block;
}
+.app_icon {
+ height: 3em;
+ width: 3em;
+ border: none;
+ border-radius: 50%;
+ background: transparent;
+ font-size: medium;
+ box-shadow: 0 0 5px rgba(0,0,0,0.7);
+}
+
+.prod_item_button {
+ border: none;
+ text-align: left;
+ vertical-align: top;
+ width: calc(100%-10em);
+ font-size: medium;
+ border-radius: 4pt;
+ box-shadow: 0 0 5px rgba(0,0,0,0.7);
+ display: inline-block;
+ padding-top: 5px;
+ padding-bottom: 8px;
+}
+
.menu_item_button {
border: none;
text-align: left;
diff --git a/android/tinySSB/app/src/main/assets/web/tremola.html b/android/tinySSB/app/src/main/assets/web/tremola.html
index bcf7443..ff765b9 100644
--- a/android/tinySSB/app/src/main/assets/web/tremola.html
+++ b/android/tinySSB/app/src/main/assets/web/tremola.html
@@ -3,16 +3,16 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -48,7 +48,10 @@
-
+
+
+
+
-
@@ -341,10 +343,10 @@
About
- tinySSB, August 2023
+
tinySSB, August 2024
- Software (c) 2021-2023:
+
Software (c) 2021-2024:
Jannick Heisch
Etienne Mettaz
Cedrik Schimschar
@@ -355,6 +357,7 @@
https://www.flaticon.com/authors/kiranshastry
https://icon-icons.com/icon/kanban-board/120442
https://icon-icons.com/icon/paper-clip/102692
+ http://www.onlinewebfonts.com/icon
@@ -535,9 +538,10 @@
diff --git a/android/tinySSB/app/src/main/assets/web/tremola.js b/android/tinySSB/app/src/main/assets/web/tremola.js
index ceb8274..978031c 100644
--- a/android/tinySSB/app/src/main/assets/web/tremola.js
+++ b/android/tinySSB/app/src/main/assets/web/tremola.js
@@ -674,6 +674,64 @@ function save_content_alias() {
closeOverlay();
}
+// --- productivity
+
+function load_prod_list() {
+ document.getElementById("lst:prod").innerHTML = '';
+ load_prod_item('Kanban', 'img/kanban.svg', 'setScenario("kanban")',
+ 'text text text h aghjwd gldfhjs hlgsf hgljksf hgls fdhglf sdhgl hfgskj hls dfhgjl shgjkls hgl sfdhgjk sdfjklg hljs hfgl dfjlsfs');
+ load_prod_item('Scheduler', 'img/schedule.svg', 'xyz',
+ 'text text text h aghjwd gldfhjs hlgsf hgljksf hgls fdhglf sdhgl hfgskj hls dfhgjl shgjkls hgl sfdhgjk sdfjklg hljs hfgl dfjlsfs');
+ load_prod_item('Kahoot Quiz', 'img/quiz.svg', 'xyz',
+ 'text text text h aghjwd gldfhjs hlgsf hgljksf hgls fdhglf sdhgl hfgskj hls dfhgjl shgjkls hgl sfdhgjk sdfjklg hljs hfgl dfjlsfs');
+ load_prod_item('Lokens (coming soon)', 'img/hand_and_coins.svg', 'xyz',
+ 'crypto tokens based on CRDTs, no mining needed. Ideal for fidelity cards, bartering, recognition tokens in open SW communities, and more.');
+ load_prod_item('(dummy entry)', 'img/contacts.svg', 'xyz',
+ 'dah dah dah');
+}
+
+function load_prod_item(title, imageName, cb, descr) {
+ var row, item = document.createElement('div'), bg;
+ item.setAttribute('style', 'padding: 0px 5px 10px 5px;'); // old JS (SDK 23)
+ bg = ' light'; // c[1].forgotten ? ' gray' : ' light';
+ row = `