My personal-knowledge-system, with deeply integrated task tracking and long term goal planning capabilities.
2
fork

Configure Feed

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

feat: change color of group!

+45 -5
+3 -2
.config/config.ron
··· 28 28 "3": SwitchTo( 29 29 page: Todo(TaskList), 30 30 ), 31 - "g": NewSubGroup, 32 31 "enter": SwitchTo( 33 32 page: Todo(Inspector), 34 33 ), 35 34 "shift-g": NewGroup, 35 + "g": NewSubGroup, 36 36 "t": NewTask, 37 37 "j": MoveDown, 38 38 "2": SwitchTo( ··· 59 59 ), 60 60 "o": OpenZettel, 61 61 "f": ToggleFinish, 62 + "r": RandomColor 62 63 }, 63 64 ), 64 65 tasklist: ( ··· 83 84 }, 84 85 ), 85 86 ), 86 - ) 87 + )
+2 -1
.config/default_config.ron
··· 38 38 "p": EditPriority, 39 39 "d": EditDue, 40 40 "o": OpenZettel, 41 - "f": ToggleFinish 41 + "f": ToggleFinish, 42 + "r": RandomColor 42 43 }, 43 44 ), 44 45 tasklist: (
+1 -1
src/tui/app.rs
··· 45 45 46 46 impl Default for Page { 47 47 fn default() -> Self { 48 - Self::Todo(TodoRegion::Explorer) 48 + Self::Todo(TodoRegion::TaskList) 49 49 } 50 50 } 51 51
+15 -1
src/tui/components/todo/inspector/mod.rs
··· 15 15 Signal, 16 16 components::{Component, DEFAULT_NAME}, 17 17 }, 18 - types::{Due, Group, KastenHandle, Priority, Task, TodoNode, TodoNodeKind}, 18 + types::{Due, Group, KastenHandle, Priority, Tag, Task, TodoNode, TodoNodeKind}, 19 19 }; 20 20 21 21 mod rootview; ··· 307 307 308 308 Task::toggle_finish(t.id.clone(), &kt).await?; 309 309 310 + drop(kt); 311 + return Ok(Some(Signal::Refresh)); 312 + } 313 + 314 + Signal::RandomColor if self.is_active => { 315 + let Some(ref curr) = self.inspecting else { 316 + return Ok(None); 317 + }; 318 + let kt = self.kh.write().await; 319 + let node = kt.todo_tree.get_node_by_nano_id(curr).data(); 320 + let TodoNodeKind::Group(g) = &node.kind else { 321 + return Ok(None); 322 + }; 323 + Tag::randomize_color(g.tag.id.clone(), &kt).await?; 310 324 drop(kt); 311 325 return Ok(Some(Signal::Refresh)); 312 326 }
+3
src/tui/signal.rs
··· 89 89 /// as signals 90 90 EnterRawText, 91 91 92 + /// Randomly change the color of a `Group`! 93 + RandomColor, 94 + 92 95 /// this is fucking temporary 93 96 Helix { 94 97 path: PathBuf,
+5
src/types/color.rs
··· 20 20 Self(value) 21 21 } 22 22 } 23 + impl From<Color> for ColorDTO { 24 + fn from(value: Color) -> Self { 25 + value.0 26 + } 27 + } 23 28 24 29 impl From<Color> for RatColor { 25 30 fn from(value: Color) -> Self {
+16
src/types/tag.rs
··· 55 55 56 56 Ok(()) 57 57 } 58 + 59 + pub async fn randomize_color(id: NanoId, kt: &Kasten) -> Result<()> { 60 + let new_color = Color::default(); 61 + 62 + TagEntity::load() 63 + .filter_by_nano_id(id.clone()) 64 + .one(&kt.db) 65 + .await? 66 + .expect("Invariant Broken: Must exist") 67 + .into_active_model() 68 + .set_color(new_color) 69 + .update(&kt.db) 70 + .await?; 71 + 72 + Ok(()) 73 + } 58 74 } 59 75 60 76 impl From<TagModel> for Tag {