diff --git a/role_control.h b/role_control.h index 6ce4744..1ac701d 100644 --- a/role_control.h +++ b/role_control.h @@ -1,7 +1,6 @@ //role control void add_role(); -void list_role(); void print_role(struct linkedlist* list,int cur,int end,struct Map* map); void showRole(struct linkedlist* list,int index); struct Map* sortRole(struct linkedlist* list,int choice); @@ -16,7 +15,7 @@ void role_control(){ }; choice = choices_selecter(items,2,"><\nRole control"); switch (choice){ - case 0: + case 3: break; case 1: add_role(); @@ -27,13 +26,13 @@ void role_control(){ "role", }; void * list = getLinkedList(role_list_db(),0); - // lister(list,NULL,sizeofLinkedlist(list),"Role",SortItems,2,print_role,sortRole,showRole); - list_role(db); + lister(list,NULL,sizeofLinkedlist(list),"Role",SortItems,2,print_role,sortRole,showRole); + //warning appears but can be ignore due to the fact that they are just pointer, no difference break; default: break; } - }while(choice != 0); + }while(choice != 3); } @@ -57,85 +56,6 @@ void add_role(){ return; } - - -void list_role(){ - struct linkedlist* list = getLinkedList(role_list_db(),0); - int list_size = sizeofLinkedlist(list); - int choice = -1; - int page = 0; - int page_size = PAGE_SIZE; - int total_pages = ceil( (double)list_size / page_size); - struct Map* map = NULL; - //list role - do{ - Cls(); - welcome_message(); - printf("Role list\n"); - printf("0 exit\n"); - printf("1 sort admin ascending\n"); - printf("2 sort admin descending\n"); - printf("3 sort role ascending\n"); - printf("4 sort role descending\n"); - if(page+1 == total_pages){ - print_role(list,page*page_size,list_size,map); - }else{ - print_role(list,page*page_size,(page+1)*page_size,map); - } - //page control - int current_page_size = page_size+2; - if(page+1 == total_pages){ - current_page_size = list_size - page*page_size + 4; - } - printf("%d next page\n",current_page_size+1); - printf("%d previous page\n",current_page_size+2); - printf("%d set page size\n",current_page_size+3); - printf("%d/%d/%d(page size/page number/total)\n",page_size,page+1,total_pages); - - bool valid = true; - do{ - valid = true; - printf("Please input your choice\n>"); - fflush_stdin(); - scanf("%d", &choice); - if(choice <=4 && choice > 0){ - printf("sorting...\n"); - map = sortRole(list,choice); - }else if(choice == current_page_size+1){ - if(page + 1 < total_pages){ - page++; - }else{ - printf("Already at last page\n"); - valid = false; - } - }else if(choice == current_page_size+2){ - if(page > 0){ - page--; - }else{ - printf("Already at first page\n"); - valid = false; - } - }else if(choice == current_page_size+3){ - printf("Enter page size: "); - fflush_stdin(); - scanf("%d", &page_size); - total_pages = ceil( (double)list_size / page_size); - page = 0; - - }else if(choice >= 5 && choice <= current_page_size){ - if(map == NULL){ - showRole(list,choice - 5 + page_size*page); - }else{ - showRole(list,map[choice - 5 + page_size*page].key); - } - }else if(choice != 0){ - printf("Invalid choice\n"); - valid = false; - } - }while(!valid); - }while(choice != 0); -} - void print_role(struct linkedlist* list,int cur,int end,struct Map* map){ printf("%-10s%-10s%-10s\n","No.","Role","Admin?"); if(map == NULL){