diff --git a/ctrl/modopts.ini b/ctrl/modopts.ini index b59357a6afdcf5eda3c5ec5388bc5256beb40ffa..ed7e7d13b348a11e874ae4d90bd1413e8905fc4b 100644 --- a/ctrl/modopts.ini +++ b/ctrl/modopts.ini @@ -74,6 +74,11 @@ ; eval_before_exec = alert('Running ' + prog.name); ; eval_after_exec = load('../xtrn/twitter/tweet.js', user.alias, 'ran', prog.name); +; uncomment and modify any of the below to change the look of the main external sections menu +; section_fmt: \1-\1g%3d:\1n\1g %s +; section_header_fmt: \1-\1gSelect \1hExternal Program Section\1-\1g: +; section_which: \r\n\1-\1gWhich, \1w\1h~Q\1n\1guit or [1]: \1h + ; uncomment and modify any of the below to change the look of the external programs menu ; header_fmt: \1n\1c\1h%s \1n\1cExternal Programs:\r\n\r\n ; titles: \1n\1cNum \1h\xb3\1n\1c Name \1n\1c diff --git a/exec/xtrn_sec.js b/exec/xtrn_sec.js index b55d3f10cd7262667522f027a47986bd439ebd15..164b2dc8606d6a41218d3bed2b1799acf0afecd4 100644 --- a/exec/xtrn_sec.js +++ b/exec/xtrn_sec.js @@ -73,6 +73,16 @@ if(options.which === undefined) if(options.clear_screen === undefined) options.clear_screen = true; +if (options.section_fmt === undefined) + options.section_fmt = "\x01y\x01g%3d:\x01n\x01g %s" + +if (options.section_header_fmt === undefined) + options.section_header_fmt = "\x01-\x01gSelect \x01hExternal Program Section\x01-\x01g:" + +if(options.section_which === undefined) + options.section_which = "\r\n\x01-\x01gWhich, \x01w\x01h~Q\x01n\x01guit or [1]: \x01h" + + function sort_by_name(a, b) { if(a.name.toLowerCase()>b.name.toLowerCase()) return 1; @@ -87,10 +97,10 @@ function external_program_menu(xsec) while(bbs.online) { console.aborted = false; - if(user.security.restrictions&UFLAG_X) { - write(options.restricted_user_msg); - break; - } + if(user.security.restrictions&UFLAG_X) { + write(options.restricted_user_msg); + break; + } var prog_list=xtrn_area.sec_list[xsec].prog_list.slice(); /* prog_list is a possibly-sorted copy of xtrn_area.sec_list[x].prog_list */ @@ -211,16 +221,32 @@ function external_section_menu() xsec--; } else { + if(options.clear_screen) + console.clear(LIGHTGRAY); if(options.sort) sec_list.sort(sort_by_name); - for(i in sec_list) - console.uselect(Number(i),"External Program Section" - ,sec_list[i].name); - xsec=console.uselect(); + + printf(options.section_header_fmt); + console.crlf(); + console.crlf(); + + for (i in sec_list) { + printf(options.section_fmt, parseInt(i) + 1, sec_list[i].name); + console.crlf(); + } + + bbs.node_sync(); + console.mnemonics(options.section_which); + + xsec = console.getnum(sec_list.length); + xsec--; // match array index + + if(xsec == -1) + xsec = 0; // default option + else if(xsec == -2) + break; } - if(xsec<0) - break; external_program_menu(sec_list[xsec].index); }