Exosphere is a set of small, modular, self-hostable community tools built on the AT Protocol. app.exosphere.site
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: rename kanban to flux

Hugo 9efe93b6 ffa02e82

+28 -28
+1 -1
packages/app/src/pages/dashboard.tsx
··· 157 157 158 158 <div class={s.toolCard}> 159 159 <span class={s.toolCardLabelSoon}>Coming soon</span> 160 - <h3 class={s.toolCardTitle}>Public Kanban</h3> 160 + <h3 class={s.toolCardTitle}>Flux</h3> 161 161 <p class={s.toolCardDesc}> 162 162 A transparent project board your community can follow. Share progress and let people 163 163 see what's in the pipeline.
+3 -3
packages/app/src/pages/sphere.tsx
··· 22 22 description: "Submit, vote on, and track feature requests.", 23 23 }, 24 24 kanban: { 25 - label: "Board", 26 - path: "board", 27 - description: "Track tasks across columns with a simple kanban board.", 25 + label: "Flux", 26 + path: "flux", 27 + description: "Track tasks across columns with a visual project board.", 28 28 }, 29 29 }; 30 30
+4 -4
packages/app/src/ssr-prefetch.ts
··· 37 37 { key: "feature-request-votes", apiUrl: `${apiBase}/feature-requests/votes` }, 38 38 ]; 39 39 40 - // Kanban board 41 - if (modulePath === "/board") return [{ key: "kanban-tasks", apiUrl: `${apiBase}/kanban` }]; 42 - if (modulePath === "/board/settings") 40 + // Flux (kanban board) 41 + if (modulePath === "/flux") return [{ key: "kanban-tasks", apiUrl: `${apiBase}/kanban` }]; 42 + if (modulePath === "/flux/settings") 43 43 return [{ key: "kanban-columns", apiUrl: `${apiBase}/kanban/columns` }]; 44 - const taskMatch = modulePath.match(/^\/board\/(\d+)$/); 44 + const taskMatch = modulePath.match(/^\/flux\/(\d+)$/); 45 45 if (taskMatch) return [{ key: "kanban-task", apiUrl: `${apiBase}/kanban/${taskMatch[1]}` }]; 46 46 47 47 return [];
+4 -4
packages/kanban/src/client.ssr.ts
··· 4 4 import { BoardSettingsPage } from "./ui/pages/settings.tsx"; 5 5 6 6 export const kanbanModule: ClientModule = { 7 - name: "board", 7 + name: "flux", 8 8 routes: [ 9 - { path: "/board", component: BoardPage }, 10 - { path: "/board/settings", component: BoardSettingsPage }, 11 - { path: "/board/:number", component: TaskPage }, 9 + { path: "/flux", component: BoardPage }, 10 + { path: "/flux/settings", component: BoardSettingsPage }, 11 + { path: "/flux/:number", component: TaskPage }, 12 12 ], 13 13 };
+4 -4
packages/kanban/src/client.ts
··· 8 8 ); 9 9 10 10 export const kanbanModule: ClientModule = { 11 - name: "board", 11 + name: "flux", 12 12 routes: [ 13 - { path: "/board", component: BoardPage }, 14 - { path: "/board/settings", component: BoardSettingsPage }, 15 - { path: "/board/:number", component: TaskPage }, 13 + { path: "/flux", component: BoardPage }, 14 + { path: "/flux/settings", component: BoardSettingsPage }, 15 + { path: "/flux/:number", component: TaskPage }, 16 16 ], 17 17 };
+2 -2
packages/kanban/src/ui/pages/board.tsx
··· 61 61 <div class={ui.container}> 62 62 <div class={ui.section}> 63 63 <div class={kbUi.titleRow}> 64 - <h1 class={ui.pageTitle}>Board</h1> 64 + <h1 class={ui.pageTitle}>Flux</h1> 65 65 <div class={kbUi.titleRowActions}> 66 66 {isAuthenticated && canManageSettings.value && ( 67 - <a href={spherePath("/board/settings")} class={kbUi.iconBtn} title="Board settings"> 67 + <a href={spherePath("/flux/settings")} class={kbUi.iconBtn} title="Flux settings"> 68 68 <Settings size={18} /> 69 69 </a> 70 70 )}
+6 -6
packages/kanban/src/ui/pages/settings.tsx
··· 31 31 <div class={ui.container}> 32 32 <div class={ui.section}> 33 33 <div> 34 - <a href={spherePath("/board")} class={ui.muted}> 35 - &larr; Board 34 + <a href={spherePath("/flux")} class={ui.muted}> 35 + &larr; Flux 36 36 </a> 37 37 </div> 38 - <p class={ui.muted}>You don't have permission to manage board settings.</p> 38 + <p class={ui.muted}>You don't have permission to manage flux settings.</p> 39 39 </div> 40 40 </div> 41 41 ); ··· 45 45 <div class={ui.container}> 46 46 <div class={ui.section}> 47 47 <div> 48 - <a href={spherePath("/board")} class={ui.muted}> 49 - &larr; Board 48 + <a href={spherePath("/flux")} class={ui.muted}> 49 + &larr; Flux 50 50 </a> 51 51 </div> 52 - <h1 class={ui.pageTitle}>Board settings</h1> 52 + <h1 class={ui.pageTitle}>Flux settings</h1> 53 53 </div> 54 54 55 55 <div class={ui.section}>
+4 -4
packages/kanban/src/ui/pages/task.tsx
··· 377 377 if (!task) return; 378 378 try { 379 379 await deleteTask(task.id); 380 - route(spherePath("/board")); 380 + route(spherePath("/flux")); 381 381 } catch (err) { 382 382 console.error("Failed to delete task:", err); 383 383 } ··· 387 387 if (!task) return; 388 388 try { 389 389 await hideTask(task.id); 390 - route(spherePath("/board")); 390 + route(spherePath("/flux")); 391 391 } catch (err) { 392 392 console.error("Failed to hide task:", err); 393 393 } ··· 433 433 <div class={ui.container}> 434 434 <div class={ui.section}> 435 435 <div> 436 - <a href={spherePath("/board")} class={ui.muted}> 437 - &larr; Board 436 + <a href={spherePath("/flux")} class={ui.muted}> 437 + &larr; Flux 438 438 </a> 439 439 </div> 440 440