summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bsdconfig/usermgmt/share
diff options
context:
space:
mode:
authordteske <dteske@FreeBSD.org>2013-04-22 05:52:06 +0000
committerdteske <dteske@FreeBSD.org>2013-04-22 05:52:06 +0000
commit8f385d0e89111ca1716767f7dc0bdffe3225b3d0 (patch)
treecbdec6b0e95d9d7f693f2585627e66aaf3fa13ff /usr.sbin/bsdconfig/usermgmt/share
parent2cbbbe9342ffd4b6a5fc07b551f747bfb7d8172c (diff)
downloadFreeBSD-src-8f385d0e89111ca1716767f7dc0bdffe3225b3d0.zip
FreeBSD-src-8f385d0e89111ca1716767f7dc0bdffe3225b3d0.tar.gz
UI improvements. First, implement --default-item whenever and wherever
possible to save keystrokes. Second, overhaul startup/rcdelete for much improved performance. Last, but not least, kill-off useage of --clear and implement --keep-tite in harmony to minimize jarring transitions. Also, fix local variable names where necessary while we're here with other minor comment-enhancements/typo-corrections.
Diffstat (limited to 'usr.sbin/bsdconfig/usermgmt/share')
-rw-r--r--usr.sbin/bsdconfig/usermgmt/share/group_input.subr15
-rw-r--r--usr.sbin/bsdconfig/usermgmt/share/user_input.subr13
2 files changed, 18 insertions, 10 deletions
diff --git a/usr.sbin/bsdconfig/usermgmt/share/group_input.subr b/usr.sbin/bsdconfig/usermgmt/share/group_input.subr
index 278e0a4..78b5f80 100644
--- a/usr.sbin/bsdconfig/usermgmt/share/group_input.subr
+++ b/usr.sbin/bsdconfig/usermgmt/share/group_input.subr
@@ -1,7 +1,7 @@
if [ ! "$_USERMGMT_GROUP_INPUT_SUBR" ]; then _USERMGMT_GROUP_INPUT_SUBR=1
#
# Copyright (c) 2012 Ron McDowell
-# Copyright (c) 2012 Devin Teske
+# Copyright (c) 2012-2013 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -58,12 +58,14 @@ f_input_group()
}' )
}
-# f_dialog_menu_group_list
+# f_dialog_menu_group_list [$default]
#
-# Allows the user to select a group from a list.
+# Allows the user to select a group from a list. Optionally, if present and
+# non-NULL, initially highlight $default group.
#
f_dialog_menu_group_list()
{
+ local defaultitem="$1"
local menu_list size
local hline="$hline_alnum_punc_tab_enter"
@@ -87,11 +89,12 @@ f_dialog_menu_group_list()
local dialog_menu
dialog_menu=$( eval $DIALOG \
- --clear --title \"\$DIALOG_TITLE\" \
+ --title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
--ok-label \"\$msg_ok\" \
--cancel-label \"\$msg_cancel\" \
+ --default-item \"\$defaultitem\" \
--menu \"\" $size $menu_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
@@ -299,7 +302,7 @@ f_dialog_input_group_members()
'2' '$msg_enter_group_members_manually'
" # END-QUOTE
- local dialog_menu
+ local dialog_menu defaultitem=
while :; do
msg="$msg_group_members:"
menu_size=$( eval f_dialog_menu_size \
@@ -314,12 +317,14 @@ f_dialog_input_group_members()
--hline \"\$hline\" \
--ok-label \"\$msg_ok\" \
--cancel-label \"\$msg_cancel\" \
+ --default-item \"\$defaultitem\" \
--menu \"\$msg\" $menu_size \
$menu_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
retval=$?
setvar DIALOG_MENU_$$ "$dialog_menu"
+ defaultitem="$dialog_menu"
menu_choice=$( f_dialog_menutag )
f_dprintf "retval=%u menu_choice=[%s]" $retval "$menu_choice"
diff --git a/usr.sbin/bsdconfig/usermgmt/share/user_input.subr b/usr.sbin/bsdconfig/usermgmt/share/user_input.subr
index e0281ed..db2c819 100644
--- a/usr.sbin/bsdconfig/usermgmt/share/user_input.subr
+++ b/usr.sbin/bsdconfig/usermgmt/share/user_input.subr
@@ -1,7 +1,7 @@
if [ ! "$_USERMGMT_USER_INPUT_SUBR" ]; then _USERMGMT_USER_INPUT_SUBR=1
#
# Copyright (c) 2012 Ron McDowell
-# Copyright (c) 2012 Devin Teske
+# Copyright (c) 2012-2013 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -83,12 +83,14 @@ f_input_user()
pw_member_groups=$( f_get_member_groups "$user" )
}
-# f_dialog_menu_user_list
+# f_dialog_menu_user_list [$default]
#
-# Allows the user to select a login from a list.
+# Allows the user to select a login from a list. Optionally, if present and
+# non-NULL, initially highlight $default user.
#
f_dialog_menu_user_list()
{
+ local defaultitem="$1"
local menu_list size
local hline="$hline_alnum_punc_tab_enter"
@@ -112,11 +114,12 @@ f_dialog_menu_user_list()
local dialog_menu
dialog_menu=$( eval $DIALOG \
- --clear --title \"\$DIALOG_TITLE\" \
+ --title \"\$DIALOG_TITLE\" \
--backtitle \"\$DIALOG_BACKTITLE\" \
--hline \"\$hline\" \
--ok-label \"\$msg_ok\" \
--cancel-label \"\$msg_cancel\" \
+ --default-item \"\$defaultitem\" \
--menu \"\" $size $menu_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
@@ -134,7 +137,7 @@ f_dialog_menu_user_list()
f_dialog_input_member_groups()
{
local msg="$( printf "$msg_member_of_groups" )"
- local hline="$hline_alnum_tab_enter"
+ local hline="$hline_alnum_space_tab_enter"
#
# Loop until the user provides taint-free/valid input
OpenPOWER on IntegriCloud