QoL & Edit Cards

This commit is contained in:
Maddox Werts 2024-06-23 14:52:31 -04:00
parent a421ccfbb1
commit dcbd030a48
4 changed files with 81 additions and 8 deletions

View file

@ -17,7 +17,7 @@ impl TaskBoard {
let mut cards: Vec<card::TaskCard> = Vec::new(); let mut cards: Vec<card::TaskCard> = Vec::new();
// Creating a new default card // Creating a new default card
cards.push(card::TaskCard::init_empty()); cards.push(card::TaskCard::init(String::new(), String::new()));
// Return the board! // Return the board!
return TaskBoard {name: name, cards: cards}; return TaskBoard {name: name, cards: cards};

View file

@ -8,10 +8,7 @@ pub struct TaskCard {
// Implementations // Implementations
impl TaskCard { impl TaskCard {
pub fn init_val(name: String, desc: String) -> TaskCard { pub fn init(name: String, desc: String) -> TaskCard {
return TaskCard{name: name, desc: desc}; return TaskCard{name: name, desc: desc};
} }
pub fn init_empty() -> TaskCard {
return TaskCard::init_val(String::from("New Card"), String::new());
}
} }

View file

@ -88,7 +88,7 @@ impl<'a> Interface<'a> {
if user_input == "1" { if user_input == "1" {
self.page = 3; self.page = 3;
} else if user_input == "2"{ } else if user_input == "2"{
self.page = 4;
} else if user_input == "3"{ } else if user_input == "3"{
self.mode = 0; self.mode = 0;
self.page = 5; self.page = 5;
@ -128,7 +128,7 @@ impl<'a> Interface<'a> {
println!(""); println!("");
// Creating a card // Creating a card
let _new_card: card::TaskCard = card::TaskCard::init_val(_name, _desc); let _new_card: card::TaskCard = card::TaskCard::init(_name, _desc);
// Throw this into our manager // Throw this into our manager
self.manager.boards[self.on as usize].cards.push(_new_card); self.manager.boards[self.on as usize].cards.push(_new_card);
@ -136,6 +136,79 @@ impl<'a> Interface<'a> {
// Finished! // Finished!
self.page = 2; self.page = 2;
} }
fn p_4(&mut self){
// Title
println!(" - Edit Card - \n");
// Getting active board
let _active: &mut board::TaskBoard = &mut self.manager.boards[self.on as usize];
// Showing all cards
for i in 0.._active.cards.len() {
println!("{}) {}", i+1, _active.cards[i].name);
}
// Asking for an option
println!("\nSelect card[1-{}]: ", _active.cards.len());
// Reading input
let mut user_input: String = String::new();
io::stdin().read_line(&mut user_input).expect("Failed to read line");
user_input = String::from(user_input.to_lowercase().trim());
println!("");
// Selecting the card
let _card_index: usize = user_input.parse::<usize>().unwrap() - 1;
let _card: &mut card::TaskCard = &mut _active.cards[_card_index];
// Printing options
println!(" - {} - ", _card.name);
println!("1) Change Name");
println!("2) Change Description");
println!("3) Exit");
println!("\nSelect option [1-3]: ");
// Reset input
user_input = String::new();
// Reading input
io::stdin().read_line(&mut user_input).expect("Failed to read line");
user_input = String::from(user_input.to_lowercase().trim());
// Decide what to do
if user_input == "1" {
// Printing prompt
println!("\nWhat should the new name be?");
println!("Select name:");
// Reset input
user_input = String::new();
// Reading input
io::stdin().read_line(&mut user_input).expect("Failed to read line");
user_input = String::from(user_input.trim());
// Setting the cards name
_card.name = user_input;
} else if user_input == "2" {
// Printing prompt
println!("\nWhat should the new description be?");
println!("Select description:");
// Reset input
user_input = String::new();
// Reading input
io::stdin().read_line(&mut user_input).expect("Failed to read line");
user_input = String::from(user_input.trim());
// Setting the cards name
_card.desc = user_input;
}
// Changing page
self.page = 2;
}
fn p_5(&mut self){ fn p_5(&mut self){
// Which title do we use // Which title do we use
let title: String = String::from(match self.mode { let title: String = String::from(match self.mode {
@ -222,8 +295,11 @@ impl<'a> Interface<'a> {
1 => self.p_1(), 1 => self.p_1(),
2 => self.p_2(), 2 => self.p_2(),
3 => self.p_3(), 3 => self.p_3(),
4 => self.p_4(),
5 => self.p_5(), 5 => self.p_5(),
_ => Interface::error("Invalid Page") _ => Interface::error("Invalid Page")
} }
// Save
} }
} }

View file

@ -31,7 +31,7 @@ impl Manager{
let _name: String = String::from(task["name"].as_str().unwrap()); let _name: String = String::from(task["name"].as_str().unwrap());
let _desc: String = String::from(task["desc"].as_str().unwrap()); let _desc: String = String::from(task["desc"].as_str().unwrap());
cards.push(card::TaskCard::init_val(_name, _desc)); cards.push(card::TaskCard::init(_name, _desc));
} }
// Creating the boards inside the manager // Creating the boards inside the manager