diff options
author | Samuel Mendoza-Jonas <sam.mj@au1.ibm.com> | 2014-07-24 15:05:39 +1000 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2014-07-28 16:12:13 +0800 |
commit | 254c2c4233377ba71d0f1c96a77d885c91f9ad4a (patch) | |
tree | f6e79dbeba93f7709be8a9a261dd101be73bbd03 /ui/ncurses/nc-cui.c | |
parent | 0f5d4481891467000c50bf14548c236cfb3e70ad (diff) | |
download | talos-petitboot-254c2c4233377ba71d0f1c96a77d885c91f9ad4a.tar.gz talos-petitboot-254c2c4233377ba71d0f1c96a77d885c91f9ad4a.zip |
ui/ncurses: Add support for 'add-url' action
Creates a menu option to specify a remote conf file url to send to
the server for parsing.
Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'ui/ncurses/nc-cui.c')
-rw-r--r-- | ui/ncurses/nc-cui.c | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/ui/ncurses/nc-cui.c b/ui/ncurses/nc-cui.c index 4f03409..3f1e0a2 100644 --- a/ui/ncurses/nc-cui.c +++ b/ui/ncurses/nc-cui.c @@ -37,6 +37,7 @@ #include "nc-cui.h" #include "nc-boot-editor.h" #include "nc-config.h" +#include "nc-add-url.h" #include "nc-sysinfo.h" #include "nc-lang.h" #include "nc-helpscreen.h" @@ -281,6 +282,19 @@ void cui_show_lang(struct cui *cui) cui_set_current(cui, lang_screen_scr(cui->lang_screen)); } +static void cui_add_url_exit(struct cui *cui) +{ + cui_set_current(cui, &cui->main->scr); + talloc_free(cui->add_url_screen); + cui->add_url_screen = NULL; +} + +void cui_show_add_url(struct cui *cui) +{ + cui->add_url_screen = add_url_screen_init(cui, cui_add_url_exit); + cui_set_current(cui, add_url_screen_scr(cui->add_url_screen)); +} + static void cui_help_exit(struct cui *cui) { cui_set_current(cui, help_screen_return_scr(cui->help_screen)); @@ -684,6 +698,11 @@ int cui_send_config(struct cui *cui, struct config *config) return discover_client_send_config(cui->client, config); } +int cui_send_url(struct cui *cui, char * url) +{ + return discover_client_send_url(cui->client, url); +} + void cui_send_reinit(struct cui *cui) { discover_client_send_reinit(cui->client); @@ -713,6 +732,12 @@ static int menu_reinit_execute(struct pmenu_item *item) return 0; } +static int menu_add_url_execute(struct pmenu_item *item) +{ + cui_show_add_url(cui_from_item(item)); + return 0; +} + /** * pb_mm_init - Setup the main menu instance. */ @@ -722,7 +747,7 @@ static struct pmenu *main_menu_init(struct cui *cui) struct pmenu *m; int result; - m = pmenu_init(cui, 6, cui_on_exit); + m = pmenu_init(cui, 7, cui_on_exit); if (!m) { pb_log("%s: failed\n", __func__); return NULL; @@ -760,9 +785,13 @@ static struct pmenu *main_menu_init(struct cui *cui) i->on_execute = menu_reinit_execute; pmenu_item_insert(m, i, 4); + i = pmenu_item_create(m, _("Retrieve config from URL")); + i->on_execute = menu_add_url_execute; + pmenu_item_insert(m, i, 5); + i = pmenu_item_create(m, _("Exit to shell")); i->on_execute = pmenu_exit_cb; - pmenu_item_insert(m, i, 5); + pmenu_item_insert(m, i, 6); result = pmenu_setup(m); |