Added deleting Boards and Cards
This commit is contained in:
parent
4dde4f1596
commit
e580dc02dc
1 changed files with 88 additions and 8 deletions
|
@ -8,6 +8,7 @@ pub struct Interface<'a> {
|
|||
|
||||
pub running: bool,
|
||||
page: u32,
|
||||
mode: u32,
|
||||
on: u32
|
||||
}
|
||||
|
||||
|
@ -15,7 +16,7 @@ pub struct Interface<'a> {
|
|||
impl<'a> Interface<'a> {
|
||||
pub fn init(manager: &'a mut manager::Manager) -> Interface<'a>{
|
||||
// Return result
|
||||
return Interface {manager: manager, running: true, page: 0, on: 0};
|
||||
return Interface {manager: manager, running: true, page: 0, mode: 0, on: 0};
|
||||
}
|
||||
|
||||
fn p_0(&mut self) {
|
||||
|
@ -23,7 +24,7 @@ impl<'a> Interface<'a> {
|
|||
println!(" - Tasky - ");
|
||||
println!("1) Open Boards");
|
||||
println!("2) Exit");
|
||||
println!("Select option [1-2]: ");
|
||||
println!("\nSelect option [1-2]: ");
|
||||
|
||||
// Listening for option
|
||||
let mut user_input: String = String::new();
|
||||
|
@ -41,11 +42,10 @@ impl<'a> Interface<'a> {
|
|||
fn p_1(&mut self) {
|
||||
// Showing options
|
||||
println!(" - Open Board - ");
|
||||
println!("Select one of the following:");
|
||||
for i in 0..self.manager.boards.len() {
|
||||
println!("{}) {}", i+1, self.manager.boards[i].name);
|
||||
}
|
||||
println!("Select board [1-{}]: ", self.manager.boards.len());
|
||||
println!("\nSelect board [1-{}]: ", self.manager.boards.len());
|
||||
|
||||
|
||||
// Selecting option
|
||||
|
@ -63,11 +63,11 @@ impl<'a> Interface<'a> {
|
|||
let board: &board::TaskBoard = &self.manager.boards[self.on as usize];
|
||||
|
||||
// Title
|
||||
println!(" - {} - ", board.name);
|
||||
println!(" - {} - \n", board.name);
|
||||
|
||||
// Going through cards
|
||||
for card in &board.cards {
|
||||
println!("{} ({})", card.name, card.desc);
|
||||
println!("- {} ({})", card.name, card.desc);
|
||||
}
|
||||
|
||||
// Presenting options
|
||||
|
@ -75,24 +75,103 @@ impl<'a> Interface<'a> {
|
|||
println!("2) Delete Card");
|
||||
println!("3) Delete Board");
|
||||
println!("4) Exit");
|
||||
println!("\nSelect Option [1-4]: ");
|
||||
|
||||
// Selection option
|
||||
let mut user_input: String = String::new();
|
||||
io::stdin().read_line(&mut user_input).expect("Failed to read lines");
|
||||
user_input = String::from(user_input.to_lowercase().trim());
|
||||
println!("");
|
||||
|
||||
// What to do
|
||||
if user_input == "1"{
|
||||
|
||||
} else if user_input == "2"{
|
||||
|
||||
self.mode = 0;
|
||||
self.page = 4;
|
||||
} else if user_input == "3"{
|
||||
|
||||
self.mode = 1;
|
||||
self.page = 4;
|
||||
} else if user_input == "4"{
|
||||
self.page = 0;
|
||||
}
|
||||
}
|
||||
|
||||
fn p_4(&mut self){
|
||||
// Which title do we use
|
||||
let title: String = String::from(match self.mode {
|
||||
0 => "Card",
|
||||
1 => "Board",
|
||||
_ => "INVALID MODE"
|
||||
});
|
||||
|
||||
// Printing out the title
|
||||
println!(" - Delete {} - ", title);
|
||||
|
||||
// Active board
|
||||
let _active: &board::TaskBoard = &self.manager.boards[self.on as usize];
|
||||
|
||||
// Branching
|
||||
if self.mode == 0 {
|
||||
// Presenting all cards
|
||||
for i in 0.._active.cards.len() {
|
||||
println!("{}) {}", i+1, _active.cards[i].name);
|
||||
}
|
||||
|
||||
// Displaying prompt
|
||||
println!("\nSelect option [1-{}]: ", _active.cards.len());
|
||||
|
||||
// Getting user 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());
|
||||
|
||||
// Parse user input into a usize
|
||||
let card_index: usize = user_input.parse().unwrap();
|
||||
|
||||
// Reset user input
|
||||
user_input = String::new();
|
||||
|
||||
// Confirming
|
||||
println!("\nAre you sure?\nSelect option [y/n]: ");
|
||||
io::stdin().read_line(&mut user_input).expect("Failed to read line");
|
||||
user_input = String::from(user_input.to_lowercase().trim());
|
||||
println!("");
|
||||
|
||||
// If we don't want to do this:
|
||||
if user_input != "y" {
|
||||
self.page = 2;
|
||||
return;
|
||||
}
|
||||
|
||||
// Delete the card
|
||||
self.manager.boards[self.on as usize].cards.remove(card_index);
|
||||
|
||||
// Set page back to normal
|
||||
self.page = 2;
|
||||
} else if self.mode == 1 {
|
||||
// Confirming
|
||||
let mut user_input: String = String::new();
|
||||
println!("\nAre you sure?\nSelect option [y/n]: ");
|
||||
io::stdin().read_line(&mut user_input).expect("Failed to read line");
|
||||
user_input = String::from(user_input.to_lowercase().trim());
|
||||
println!("");
|
||||
|
||||
// If the user says no
|
||||
if user_input != "y" {
|
||||
self.page = 2;
|
||||
return;
|
||||
}
|
||||
|
||||
// Deleting the board
|
||||
self.manager.boards.remove(self.on as usize);
|
||||
|
||||
// Resetting all of the stuff
|
||||
self.page = 0;
|
||||
self.on = 0;
|
||||
}
|
||||
}
|
||||
|
||||
fn error(msg: &str){
|
||||
println!("INTERFACE ERROR: {}", msg);
|
||||
}
|
||||
|
@ -103,6 +182,7 @@ impl<'a> Interface<'a> {
|
|||
0 => self.p_0(),
|
||||
1 => self.p_1(),
|
||||
2 => self.p_2(),
|
||||
4 => self.p_4(),
|
||||
_ => Interface::error("Invalid Page")
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue