updates TODO.md; gets rid of obsolete file_select
This commit is contained in:
@@ -6,6 +6,10 @@
|
|||||||
- [ ] File upload multiline description (window)
|
- [ ] File upload multiline description (window)
|
||||||
- [x] Permission checkboxes for file upload/edit
|
- [x] Permission checkboxes for file upload/edit
|
||||||
- [ ] More intuitive navigation between nested groups (by pressing left and right buttons)
|
- [ ] More intuitive navigation between nested groups (by pressing left and right buttons)
|
||||||
|
- [ ] Cancel upload/download
|
||||||
|
|
||||||
|
## Bugs:
|
||||||
|
- [ ] Sometimes segfaults while navigating through modal menu (try use controlling byte)
|
||||||
|
|
||||||
## Features:
|
## Features:
|
||||||
- [x] Search files
|
- [x] Search files
|
||||||
|
|||||||
+2
-59
@@ -48,7 +48,7 @@ void file_list(file_args_t *f_args, query_args_t *q_args) {
|
|||||||
}
|
}
|
||||||
draw_file_list(fui);
|
draw_file_list(fui);
|
||||||
free(query);
|
free(query);
|
||||||
q_args->state = S_FILE_SELECT;
|
q_args->state = WAIT_CLIENT;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
strcat(qbuf, query);
|
strcat(qbuf, query);
|
||||||
@@ -64,63 +64,6 @@ void file_list(file_args_t *f_args, query_args_t *q_args) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* file_select: old function, can be removed in the future */
|
|
||||||
void file_select(file_args_t *f_args, query_args_t *q_args) {
|
|
||||||
char *buf = q_args->buf;
|
|
||||||
fl_item_t *l_start = f_args->l_start;
|
|
||||||
// fl_item_t *l_current = f_args->l_current;
|
|
||||||
fl_item_t *l_selected; /* from the list */
|
|
||||||
fl_item_t *f_selected =
|
|
||||||
&(f_args->f_selected); /* new copy of file struct (list be cleared) */
|
|
||||||
uint32_t filenum;
|
|
||||||
uint32_t qlen;
|
|
||||||
char send_buf[256];
|
|
||||||
struct stat st = {0};
|
|
||||||
|
|
||||||
if (!(sscanf(buf, "%u", &filenum))) {
|
|
||||||
write(q_args->sd, buf, strlen(buf));
|
|
||||||
q_args->state = S_FILE_LIST;
|
|
||||||
fl_clear(&f_args->l_start, &f_args->l_current);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (filenum == 0) {
|
|
||||||
q_args->state = WAIT_CLIENT;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
l_selected = fl_select(l_start, filenum);
|
|
||||||
|
|
||||||
if (l_selected == NULL) {
|
|
||||||
printf("Selected number is not correct!\nPlease try again!\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy(f_selected, l_selected, sizeof(*f_selected));
|
|
||||||
|
|
||||||
if (stat(DOWNLOADS_DIR, &st) == -1) {
|
|
||||||
mkdir(DOWNLOADS_DIR, 0700);
|
|
||||||
}
|
|
||||||
char *file_path = malloc(sizeof(DOWNLOADS_DIR) + strlen(l_selected->name) +
|
|
||||||
2); // + '/' + '\0'
|
|
||||||
f_selected->name = NULL;
|
|
||||||
sprintf(file_path, "%s/%s", DOWNLOADS_DIR, l_selected->name);
|
|
||||||
f_selected->name = strdup(l_selected->name);
|
|
||||||
fl_clear(&f_args->l_start, &f_args->l_current);
|
|
||||||
f_args->file_d = open(file_path, O_WRONLY | O_CREAT | O_TRUNC, 0666);
|
|
||||||
if (f_args->file_d == -1) {
|
|
||||||
qlen = sprintf(send_buf, "error: %s\n", f_selected->name);
|
|
||||||
write(q_args->sd, send_buf, qlen);
|
|
||||||
perror(f_selected->name);
|
|
||||||
q_args->state = WAIT_CLIENT;
|
|
||||||
free(file_path);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
qlen = sprintf(send_buf, "file download %s\n", f_selected->name);
|
|
||||||
write(q_args->sd, send_buf, qlen);
|
|
||||||
q_args->state = S_FILE_DOWNLOAD;
|
|
||||||
free(file_path);
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t ui_file_select(file_args_t *f_args, query_args_t *q_args, int32_t idx) {
|
int32_t ui_file_select(file_args_t *f_args, query_args_t *q_args, int32_t idx) {
|
||||||
fl_item_t *l_selected; /* from the list */
|
fl_item_t *l_selected; /* from the list */
|
||||||
fl_item_t *f_selected =
|
fl_item_t *f_selected =
|
||||||
@@ -155,7 +98,7 @@ int32_t ui_file_select(file_args_t *f_args, query_args_t *q_args, int32_t idx) {
|
|||||||
free(file_path);
|
free(file_path);
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
qlen = sprintf(send_buf, "file download %s\n", f_selected->name);
|
qlen = sprintf(send_buf, "file download [%s]\n", f_selected->name);
|
||||||
write(q_args->sd, send_buf, qlen);
|
write(q_args->sd, send_buf, qlen);
|
||||||
q_args->state = S_FILE_DOWNLOAD;
|
q_args->state = S_FILE_DOWNLOAD;
|
||||||
free(file_path);
|
free(file_path);
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
void file_list(file_args_t *f_args, query_args_t *q_args);
|
void file_list(file_args_t *f_args, query_args_t *q_args);
|
||||||
void file_download(file_args_t *f_args, query_args_t *q_args);
|
void file_download(file_args_t *f_args, query_args_t *q_args);
|
||||||
void file_select(file_args_t *fargs, query_args_t *q_args);
|
|
||||||
void init_file_args(file_args_t *fargs);
|
void init_file_args(file_args_t *fargs);
|
||||||
int file_upload_request(char *, query_args_t *q_args);
|
int file_upload_request(char *, query_args_t *q_args);
|
||||||
int file_upload_start(query_args_t *q_args);
|
int file_upload_start(query_args_t *q_args);
|
||||||
|
|||||||
+1
-1
@@ -37,7 +37,7 @@ enum state {
|
|||||||
S_WAIT_SERVER,
|
S_WAIT_SERVER,
|
||||||
S_PRINT_SERVER_MESSAGE,
|
S_PRINT_SERVER_MESSAGE,
|
||||||
S_FILE_LIST,
|
S_FILE_LIST,
|
||||||
S_FILE_SELECT,
|
/* S_FILE_SELECT, */
|
||||||
S_FILE_DOWNLOAD,
|
S_FILE_DOWNLOAD,
|
||||||
S_UPLOAD_PARAMS,
|
S_UPLOAD_PARAMS,
|
||||||
S_UPLOAD_FILE,
|
S_UPLOAD_FILE,
|
||||||
|
|||||||
@@ -4,7 +4,9 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
void dwn_pr_modal_cb(callback_args_t *args) {}
|
void dwn_pr_modal_cb(callback_args_t *args) {
|
||||||
|
/* TODO: cancel action */
|
||||||
|
}
|
||||||
|
|
||||||
dialogue_t *init_dwn_pr_modal(app_t *app, bool is_upload) {
|
dialogue_t *init_dwn_pr_modal(app_t *app, bool is_upload) {
|
||||||
if (app == NULL)
|
if (app == NULL)
|
||||||
|
|||||||
@@ -169,13 +169,6 @@ int process_query(app_t *app) {
|
|||||||
case S_FILE_LIST:
|
case S_FILE_LIST:
|
||||||
file_list(file_args, query_args);
|
file_list(file_args, query_args);
|
||||||
break;
|
break;
|
||||||
case S_FILE_SELECT:
|
|
||||||
if (query_args->from_server) {
|
|
||||||
wait_side(app, NULL);
|
|
||||||
} else {
|
|
||||||
file_select(file_args, query_args);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case S_FILE_DOWNLOAD:
|
case S_FILE_DOWNLOAD:
|
||||||
file_download(file_args, query_args);
|
file_download(file_args, query_args);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user