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,
|
pub running: bool,
|
||||||
page: u32,
|
page: u32,
|
||||||
|
mode: u32,
|
||||||
on: u32
|
on: u32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +16,7 @@ pub struct Interface<'a> {
|
||||||
impl<'a> Interface<'a> {
|
impl<'a> Interface<'a> {
|
||||||
pub fn init(manager: &'a mut manager::Manager) -> Interface<'a>{
|
pub fn init(manager: &'a mut manager::Manager) -> Interface<'a>{
|
||||||
// Return result
|
// 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) {
|
fn p_0(&mut self) {
|
||||||
|
@ -23,7 +24,7 @@ impl<'a> Interface<'a> {
|
||||||
println!(" - Tasky - ");
|
println!(" - Tasky - ");
|
||||||
println!("1) Open Boards");
|
println!("1) Open Boards");
|
||||||
println!("2) Exit");
|
println!("2) Exit");
|
||||||
println!("Select option [1-2]: ");
|
println!("\nSelect option [1-2]: ");
|
||||||
|
|
||||||
// Listening for option
|
// Listening for option
|
||||||
let mut user_input: String = String::new();
|
let mut user_input: String = String::new();
|
||||||
|
@ -41,11 +42,10 @@ impl<'a> Interface<'a> {
|
||||||
fn p_1(&mut self) {
|
fn p_1(&mut self) {
|
||||||
// Showing options
|
// Showing options
|
||||||
println!(" - Open Board - ");
|
println!(" - Open Board - ");
|
||||||
println!("Select one of the following:");
|
|
||||||
for i in 0..self.manager.boards.len() {
|
for i in 0..self.manager.boards.len() {
|
||||||
println!("{}) {}", i+1, self.manager.boards[i].name);
|
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
|
// Selecting option
|
||||||
|
@ -63,11 +63,11 @@ impl<'a> Interface<'a> {
|
||||||
let board: &board::TaskBoard = &self.manager.boards[self.on as usize];
|
let board: &board::TaskBoard = &self.manager.boards[self.on as usize];
|
||||||
|
|
||||||
// Title
|
// Title
|
||||||
println!(" - {} - ", board.name);
|
println!(" - {} - \n", board.name);
|
||||||
|
|
||||||
// Going through cards
|
// Going through cards
|
||||||
for card in &board.cards {
|
for card in &board.cards {
|
||||||
println!("{} ({})", card.name, card.desc);
|
println!("- {} ({})", card.name, card.desc);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Presenting options
|
// Presenting options
|
||||||
|
@ -75,24 +75,103 @@ impl<'a> Interface<'a> {
|
||||||
println!("2) Delete Card");
|
println!("2) Delete Card");
|
||||||
println!("3) Delete Board");
|
println!("3) Delete Board");
|
||||||
println!("4) Exit");
|
println!("4) Exit");
|
||||||
|
println!("\nSelect Option [1-4]: ");
|
||||||
|
|
||||||
// Selection option
|
// Selection option
|
||||||
let mut user_input: String = String::new();
|
let mut user_input: String = String::new();
|
||||||
io::stdin().read_line(&mut user_input).expect("Failed to read lines");
|
io::stdin().read_line(&mut user_input).expect("Failed to read lines");
|
||||||
user_input = String::from(user_input.to_lowercase().trim());
|
user_input = String::from(user_input.to_lowercase().trim());
|
||||||
|
println!("");
|
||||||
|
|
||||||
// What to do
|
// What to do
|
||||||
if user_input == "1"{
|
if user_input == "1"{
|
||||||
|
|
||||||
} else if user_input == "2"{
|
} else if user_input == "2"{
|
||||||
|
self.mode = 0;
|
||||||
|
self.page = 4;
|
||||||
} else if user_input == "3"{
|
} else if user_input == "3"{
|
||||||
|
self.mode = 1;
|
||||||
|
self.page = 4;
|
||||||
} else if user_input == "4"{
|
} else if user_input == "4"{
|
||||||
self.page = 0;
|
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){
|
fn error(msg: &str){
|
||||||
println!("INTERFACE ERROR: {}", msg);
|
println!("INTERFACE ERROR: {}", msg);
|
||||||
}
|
}
|
||||||
|
@ -103,6 +182,7 @@ impl<'a> Interface<'a> {
|
||||||
0 => self.p_0(),
|
0 => self.p_0(),
|
||||||
1 => self.p_1(),
|
1 => self.p_1(),
|
||||||
2 => self.p_2(),
|
2 => self.p_2(),
|
||||||
|
4 => self.p_4(),
|
||||||
_ => Interface::error("Invalid Page")
|
_ => Interface::error("Invalid Page")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue