| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -34,18 +34,30 @@ pub struct ListContext<'a> { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    pub pages: usize, | 
					 | 
					 | 
					 | 
					    pub pages: usize, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					const per_page: usize = 20; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					fn find_page_with_card(store : &Store, card_id : usize) -> Option<usize> { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    if let Some((n, _)) = store.data.cards.iter().enumerate().find(|(_n, (id, _card))| **id == card_id) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        Some(n / per_page) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    } else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        None | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#[get("/?<page>&<card>")] | 
					 | 
					 | 
					 | 
					#[get("/?<page>&<card>")] | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					fn route_index(store: State<RwLock<Store>>, page: Option<usize>, card: Option<usize>) -> Template { | 
					 | 
					 | 
					 | 
					fn route_index(store: State<RwLock<Store>>, page: Option<usize>, card: Option<usize>) -> Template { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    let rg = store.read(); | 
					 | 
					 | 
					 | 
					    let rg = store.read(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    let per_page: usize = 20; | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    let mut page = page.unwrap_or_default(); | 
					 | 
					 | 
					 | 
					    let mut page = page.unwrap_or_default(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    let n_pages = (rg.data.cards.len() as f64 / per_page as f64).ceil() as usize; | 
					 | 
					 | 
					 | 
					    let n_pages = (rg.data.cards.len() as f64 / per_page as f64).ceil() as usize; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if let Some(card_id) = card { | 
					 | 
					 | 
					 | 
					    if let Some(card_id) = card { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if let Some((n, _)) = rg.data.cards.iter().enumerate().find(|(_n, (id, _card))| **id == card_id) { | 
					 | 
					 | 
					 | 
					        page = find_page_with_card(&rg, card_id).unwrap_or(page); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            page = n / per_page; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    if page >= n_pages { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        page = n_pages - 1; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    let context = ListContext { | 
					 | 
					 | 
					 | 
					    let context = ListContext { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -250,9 +262,11 @@ fn route_edit_save(id: usize, form: Form<MapFromForm>, store: State<RwLock<Store | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					fn route_delete(id: usize, store: State<RwLock<Store>>) -> Redirect { | 
					 | 
					 | 
					 | 
					fn route_delete(id: usize, store: State<RwLock<Store>>) -> Redirect { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    let mut rg = store.write(); | 
					 | 
					 | 
					 | 
					    let mut rg = store.write(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    let page = find_page_with_card(&rg, id).unwrap_or(0); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    rg.delete_card(id); | 
					 | 
					 | 
					 | 
					    rg.delete_card(id); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    Redirect::found(uri!(route_index: page=_, card=_)) | 
					 | 
					 | 
					 | 
					    Redirect::found(uri!(route_index: page=page, card=_)) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					fn main() { | 
					 | 
					 | 
					 | 
					fn main() { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |