summaryrefslogtreecommitdiffstats
path: root/ui/ncurses/nc-cui.c
diff options
context:
space:
mode:
authorSamuel Mendoza-Jonas <sam.mj@au1.ibm.com>2014-07-24 15:05:39 +1000
committerJeremy Kerr <jk@ozlabs.org>2014-07-28 16:12:13 +0800
commit254c2c4233377ba71d0f1c96a77d885c91f9ad4a (patch)
treef6e79dbeba93f7709be8a9a261dd101be73bbd03 /ui/ncurses/nc-cui.c
parent0f5d4481891467000c50bf14548c236cfb3e70ad (diff)
downloadtalos-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.c33
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);
OpenPOWER on IntegriCloud