Added display_status_list func
This commit is contained in:
parent
bcf1c17bf7
commit
daabdcbfac
131
src/dodo.c
131
src/dodo.c
@ -41,8 +41,9 @@ int callback(void *NotUsed, int argc, char **argv, char **azColName){
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FOR DEBUG
|
// FOR DEBUG
|
||||||
int view_all(sqlite3 *db, char *errmsg){
|
int view_all(sqlite3 *db){
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
char* errmsg;
|
||||||
|
|
||||||
//rc = sqlite3_exec(db, "SELECT * FROM all_info;", print_select, 0, &errmsg);
|
//rc = sqlite3_exec(db, "SELECT * FROM all_info;", print_select, 0, &errmsg);
|
||||||
rc = sqlite3_exec(db, "SELECT * FROM tasks;", callback, 0, &errmsg);
|
rc = sqlite3_exec(db, "SELECT * FROM tasks;", callback, 0, &errmsg);
|
||||||
@ -78,22 +79,23 @@ sqlite3_stmt *print_select_test(sqlite3 *db, char* colnames, char* table, char*
|
|||||||
|
|
||||||
snprintf(sql_query, SQLQUERY_MAX, "SELECT %s FROM %s WHERE status='%s'", colnames, table, status);
|
snprintf(sql_query, SQLQUERY_MAX, "SELECT %s FROM %s WHERE status='%s'", colnames, table, status);
|
||||||
rc = sqlite3_prepare_v2(db, sql_query, -1, &out_stmt, NULL);
|
rc = sqlite3_prepare_v2(db, sql_query, -1, &out_stmt, NULL);
|
||||||
|
checksqlerr(rc, "prepare broken");
|
||||||
|
|
||||||
return out_stmt;
|
return out_stmt;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get number of tasks from tasks table give status
|
// Get number of tasks from tasks table give status
|
||||||
// TODO: Gotta make the error checking not broken
|
// TODO: Gotta make the error checking not broken
|
||||||
int get_num_rows(sqlite3 *db, char* table, char* status, char *errmsg){
|
int get_num_rows(sqlite3 *db, char* table, char* status){
|
||||||
char *sql_query = "SELECT COUNT(*) FROM tasks WHERE status = ?";
|
char *sql_query = "SELECT COUNT(*) FROM tasks WHERE status = ?";
|
||||||
sqlite3_stmt *out_stmt;
|
sqlite3_stmt *out_stmt;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
rc = sqlite3_prepare_v2(db, sql_query, -1, &out_stmt, NULL);
|
rc = sqlite3_prepare_v2(db, sql_query, -1, &out_stmt, NULL);
|
||||||
checksqlerr(rc, errmsg);
|
checksqlerr(rc, "prepare broken");
|
||||||
|
|
||||||
rc = sqlite3_bind_text(out_stmt, 1, status, -1, SQLITE_STATIC);
|
rc = sqlite3_bind_text(out_stmt, 1, status, -1, SQLITE_STATIC);
|
||||||
checksqlerr(rc, errmsg);
|
checksqlerr(rc, "bind broken");
|
||||||
|
|
||||||
while ( rc = sqlite3_step(out_stmt) == SQLITE_ROW ){
|
while ( rc = sqlite3_step(out_stmt) == SQLITE_ROW ){
|
||||||
return sqlite3_column_int(out_stmt, 0);
|
return sqlite3_column_int(out_stmt, 0);
|
||||||
@ -102,131 +104,82 @@ int get_num_rows(sqlite3 *db, char* table, char* status, char *errmsg){
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO error checking needs done
|
// Print columns
|
||||||
int print_fixed_width(const unsigned char* str){
|
int print_fixed_width(const unsigned char* str){
|
||||||
if (str){
|
if (str){
|
||||||
printf("%-19.19s", str);
|
printf("%-19.19s", str);
|
||||||
}else{
|
}else{
|
||||||
printf("%-19.19s","");
|
printf("%-19.19s","");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void display_status_list(int start_col, sqlite3 *db, char* colnames, char* table, char* status){
|
||||||
|
int rc = 0;
|
||||||
|
int i = 0;
|
||||||
|
int numrows = 0;
|
||||||
|
int num_cols = 0;
|
||||||
|
char* errmsg;
|
||||||
|
const unsigned char* col_val;
|
||||||
|
sqlite3_stmt* out_stmt;
|
||||||
|
|
||||||
|
X_goright(start_col);
|
||||||
|
numrows = get_num_rows(db, table, status);
|
||||||
|
out_stmt = print_select_test(db, colnames, table, status);
|
||||||
|
while ( rc = sqlite3_step(out_stmt) == SQLITE_ROW ){
|
||||||
|
num_cols = sqlite3_column_count(out_stmt);
|
||||||
|
for (i = 0; i < num_cols; i++){
|
||||||
|
col_val = sqlite3_column_text(out_stmt, i);
|
||||||
|
print_fixed_width(col_val);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
X_goright(start_col);
|
||||||
|
}
|
||||||
|
X_goup(numrows);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Print kanban table
|
// Print kanban table
|
||||||
// All lists with task name and due date
|
// All lists with task name and due date
|
||||||
|
|
||||||
// TODO just gotta use snprintf because can't bind column or table names
|
// TODO just gotta use snprintf because can't bind column or table names
|
||||||
int view(sqlite3 *db, char *errmsg){
|
int view(sqlite3 *db){
|
||||||
int rc = 0;
|
|
||||||
int i = 0;
|
|
||||||
int num_cols = 0;
|
|
||||||
const unsigned char* col_val;
|
|
||||||
sqlite3_stmt* out_stmt;
|
|
||||||
|
|
||||||
int numrows = -1;
|
|
||||||
int* currcol = malloc(sizeof(int));
|
|
||||||
//char sql_query[SQLQUERY_MAX];
|
|
||||||
char* table = "tasks";
|
char* table = "tasks";
|
||||||
char* status = "today";
|
char* status = "today";
|
||||||
char* colnames = "title,due_date";
|
char* colnames = "title,creation_date";
|
||||||
//char *sql_query = "SELECT title,due_date ? tasks WHERE status='?'";
|
|
||||||
|
|
||||||
// Print Heading
|
// Print Heading
|
||||||
view_heading();
|
view_heading();
|
||||||
|
|
||||||
|
|
||||||
// Print "today" tasks
|
// Print "today" tasks
|
||||||
X_goup(numrows);
|
display_status_list(-1, db, colnames, table, status);
|
||||||
X_goright(-1);
|
|
||||||
numrows = get_num_rows(db, table, status, errmsg);
|
|
||||||
out_stmt = print_select_test(db, colnames, table, status);
|
|
||||||
while ( rc = sqlite3_step(out_stmt) == SQLITE_ROW ){
|
|
||||||
num_cols = sqlite3_column_count(out_stmt);
|
|
||||||
for (i = 0; i < num_cols; i++){
|
|
||||||
col_val = sqlite3_column_text(out_stmt, i);
|
|
||||||
print_fixed_width(col_val);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
X_goup(numrows);
|
|
||||||
X_goright(33);
|
|
||||||
|
|
||||||
|
// Print "backlog" tasks
|
||||||
status = "backlog";
|
status = "backlog";
|
||||||
numrows = get_num_rows(db, table, status, errmsg);
|
display_status_list(33, db, colnames, table, status);
|
||||||
out_stmt = print_select_test(db, colnames, table, status);
|
|
||||||
while ( rc = sqlite3_step(out_stmt) == SQLITE_ROW ){
|
|
||||||
num_cols = sqlite3_column_count(out_stmt);
|
|
||||||
for (i = 0; i < num_cols; i++){
|
|
||||||
col_val = sqlite3_column_text(out_stmt, i);
|
|
||||||
print_fixed_width(col_val);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
X_goright(33);
|
|
||||||
}
|
|
||||||
X_goup(numrows);
|
|
||||||
X_goright(66);
|
|
||||||
|
|
||||||
status = "blocked";
|
|
||||||
numrows = get_num_rows(db, table, status, errmsg);
|
|
||||||
out_stmt = print_select_test(db, colnames, table, status);
|
|
||||||
while ( rc = sqlite3_step(out_stmt) == SQLITE_ROW ){
|
|
||||||
num_cols = sqlite3_column_count(out_stmt);
|
|
||||||
for (i = 0; i < num_cols; i++){
|
|
||||||
col_val = sqlite3_column_text(out_stmt, i);
|
|
||||||
print_fixed_width(col_val);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
X_goright(66);
|
|
||||||
}
|
|
||||||
//*currcol = -1;
|
|
||||||
//numrows = get_num_rows(db, table, status, errmsg);
|
|
||||||
//rc = sqlite3_exec(db, sql_query, print_select, (void *)currcol, &errmsg);
|
|
||||||
//checksqlerr(rc, errmsg);
|
|
||||||
//X_goup(numrows);
|
|
||||||
|
|
||||||
//// Print "backlog" tasks
|
|
||||||
//*currcol = 25;
|
|
||||||
//status = "backlog";
|
|
||||||
//sql_query = "SELECT title,due_date FROM tasks WHERE status='backlog'";
|
|
||||||
//numrows = get_num_rows(db, table, status, errmsg);
|
|
||||||
//rc = sqlite3_exec(db, sql_query, print_select, (void *)currcol, &errmsg);
|
|
||||||
//checksqlerr(rc, errmsg);
|
|
||||||
//X_goup(numrows);
|
|
||||||
//X_goright(50);
|
|
||||||
|
|
||||||
// Print "blocked" tasks
|
// Print "blocked" tasks
|
||||||
//status = "blocked";
|
status = "blocked";
|
||||||
//sql_query = "SELECT title,due_date FROM tasks WHERE status='blocked'";
|
display_status_list(66, db, colnames, table, status);
|
||||||
//numrows = get_num_rows(db, table, status, errmsg);
|
|
||||||
//rc = sqlite3_exec(db, sql_query, print_select, 0, &errmsg);
|
|
||||||
//checksqlerr(rc, errmsg);
|
|
||||||
//X_godown(2);
|
|
||||||
|
|
||||||
//printf("%d\n", numrows);
|
|
||||||
|
|
||||||
|
|
||||||
//get_num_rows(db, errmsg);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main( int argc, char **argv ){
|
int main( int argc, char **argv ){
|
||||||
sqlite3 *db;
|
sqlite3 *db;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
char *errmsg;
|
|
||||||
char* home_dir = getenv("HOME");
|
char* home_dir = getenv("HOME");
|
||||||
char* filename = x_strconcat(home_dir, DB_PATH);
|
char* filename = x_strconcat(home_dir, DB_PATH);
|
||||||
|
|
||||||
puts(filename);
|
//puts(filename);
|
||||||
|
|
||||||
puts(filename);
|
//puts(filename);
|
||||||
|
|
||||||
rc = opendb(&db, filename);
|
rc = opendb(&db, filename);
|
||||||
rc = view(db, errmsg);
|
rc = view(db);
|
||||||
|
|
||||||
puts("");
|
puts("");
|
||||||
puts("");
|
puts("");
|
||||||
puts("");
|
puts("");
|
||||||
puts("");
|
puts("");
|
||||||
rc = view_all(db, errmsg);
|
rc = view_all(db);
|
||||||
sqlite3_close(db);
|
sqlite3_close(db);
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user