summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bsdconfig/usermgmt
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
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')
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/groupdel4
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/groupedit4
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/groupinput20
-rw-r--r--usr.sbin/bsdconfig/usermgmt/include/messages.subr3
-rw-r--r--usr.sbin/bsdconfig/usermgmt/share/group_input.subr15
-rw-r--r--usr.sbin/bsdconfig/usermgmt/share/user_input.subr13
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/userdel4
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/useredit4
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/userinput20
-rwxr-xr-xusr.sbin/bsdconfig/usermgmt/usermgmt23
10 files changed, 68 insertions, 42 deletions
diff --git a/usr.sbin/bsdconfig/usermgmt/groupdel b/usr.sbin/bsdconfig/usermgmt/groupdel
index 38fe311..ff6b702 100755
--- a/usr.sbin/bsdconfig/usermgmt/groupdel
+++ b/usr.sbin/bsdconfig/usermgmt/groupdel
@@ -67,11 +67,13 @@ f_mustberoot_init
#
# Loop until the user Exits, Cancels or presses ESC
#
+defaultitem=""
while :; do
- f_dialog_menu_group_list
+ f_dialog_menu_group_list "$defaultitem"
retval=$?
mtag=$( f_dialog_menutag )
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
+ defaultitem="$mtag"
[ $retval -eq 0 ] || f_die
diff --git a/usr.sbin/bsdconfig/usermgmt/groupedit b/usr.sbin/bsdconfig/usermgmt/groupedit
index 93036e1..7cd70c6 100755
--- a/usr.sbin/bsdconfig/usermgmt/groupedit
+++ b/usr.sbin/bsdconfig/usermgmt/groupedit
@@ -67,11 +67,13 @@ f_mustberoot_init
#
# Loop until the user Exits, Cancels or presses ESC
#
+defaultitem=""
while :; do
- f_dialog_menu_group_list
+ f_dialog_menu_group_list "$defaultitem"
retval=$?
mtag=$( f_dialog_menutag )
f_dprintf "retval=%s mtag=[%s]" $retval "$mtag"
+ defaultitem="$mtag"
[ $retval -eq 0 ] || f_die
diff --git a/usr.sbin/bsdconfig/usermgmt/groupinput b/usr.sbin/bsdconfig/usermgmt/groupinput
index c459224..a307a93 100755
--- a/usr.sbin/bsdconfig/usermgmt/groupinput
+++ b/usr.sbin/bsdconfig/usermgmt/groupinput
@@ -1,7 +1,7 @@
#!/bin/sh
#-
# 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
@@ -229,17 +229,19 @@ while :; do
$menu_items )
dialog_menu=$( eval $DIALOG \
- --title \"\$DIALOG_TITLE\" \
- --backtitle \"\$DIALOG_BACKTITLE\" \
- --hline \"\$hline\" \
- --ok-label \"\$msg_ok\" \
- --cancel-label \"\$msg_cancel\" \
- --menu \"\$menu_text\" $size \
- $menu_items \
+ --title \"\$DIALOG_TITLE\" \
+ --backtitle \"\$DIALOG_BACKTITLE\" \
+ --hline \"\$hline\" \
+ --ok-label \"\$msg_ok\" \
+ --cancel-label \"\$msg_cancel\" \
+ --default-item \"\$DEFAULTITEM_$$\" \
+ --menu \"\$menu_text\" $size \
+ $menu_items \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
retval=$?
+ setvar DEFAULTITEM_$$ "$dialog_menu"
setvar DIALOG_MENU_$$ "$dialog_menu"
mtag=$( f_dialog_menutag )
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
@@ -258,7 +260,7 @@ while :; do
case "$mode" in
Add) f_dialog_input_group_name "$group_name" ;;
Edit/View|Delete)
- f_dialog_menu_group_list
+ f_dialog_menu_group_list "$group_name"
retval=$?
mtag=$( f_dialog_menutag )
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
diff --git a/usr.sbin/bsdconfig/usermgmt/include/messages.subr b/usr.sbin/bsdconfig/usermgmt/include/messages.subr
index e2e7bf3..24d7a95 100644
--- a/usr.sbin/bsdconfig/usermgmt/include/messages.subr
+++ b/usr.sbin/bsdconfig/usermgmt/include/messages.subr
@@ -1,5 +1,5 @@
# 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
@@ -26,6 +26,7 @@
# $FreeBSD$
hline_alnum_punc_tab_enter="Use alpha-numeric, punctuation, TAB or ENTER"
+hline_alnum_space_tab_enter="Use alpha-numeric, SPACE, TAB or ENTER"
hline_alnum_tab_enter="Use alpha-numeric, TAB or ENTER"
hline_arrows_space_tab_enter="Use arrows, SPACE, TAB or ENTER"
hline_arrows_tab_enter="Press arrows, TAB or ENTER"
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
diff --git a/usr.sbin/bsdconfig/usermgmt/userdel b/usr.sbin/bsdconfig/usermgmt/userdel
index 02f6e65..3847a1a 100755
--- a/usr.sbin/bsdconfig/usermgmt/userdel
+++ b/usr.sbin/bsdconfig/usermgmt/userdel
@@ -67,11 +67,13 @@ f_mustberoot_init
#
# Loop until the user Exits, Cancels or presses ESC
#
+defaultitem=""
while :; do
- f_dialog_menu_user_list
+ f_dialog_menu_user_list "$defaultitem"
retval=$?
mtag=$( f_dialog_menutag )
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
+ defaultitem="$mtag"
[ $retval -eq 0 ] || f_die
diff --git a/usr.sbin/bsdconfig/usermgmt/useredit b/usr.sbin/bsdconfig/usermgmt/useredit
index 00e6ae5..60e1476 100755
--- a/usr.sbin/bsdconfig/usermgmt/useredit
+++ b/usr.sbin/bsdconfig/usermgmt/useredit
@@ -67,11 +67,13 @@ f_mustberoot_init
#
# Loop until the user Exits, Cancels or presses ESC
#
+defaultitem=""
while :; do
- f_dialog_menu_user_list
+ f_dialog_menu_user_list "$defaultitem"
retval=$?
mtag=$( f_dialog_menutag )
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
+ defaultitem="$mtag"
[ $retval -eq 0 ] || f_die
diff --git a/usr.sbin/bsdconfig/usermgmt/userinput b/usr.sbin/bsdconfig/usermgmt/userinput
index ad62a09..ed7e841 100755
--- a/usr.sbin/bsdconfig/usermgmt/userinput
+++ b/usr.sbin/bsdconfig/usermgmt/userinput
@@ -1,7 +1,7 @@
#!/bin/sh
#-
# 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
@@ -392,17 +392,19 @@ while :; do
$menu_items )
dialog_menu=$( eval $DIALOG \
- --title \"\$DIALOG_TITLE\" \
- --backtitle \"\$DIALOG_BACKTITLE\" \
- --hline \"\$hline\" \
- --ok-label \"\$msg_ok\" \
- --cancel-label \"\$msg_cancel\" \
- --menu \"\$menu_text\" $size \
- $menu_items \
+ --title \"\$DIALOG_TITLE\" \
+ --backtitle \"\$DIALOG_BACKTITLE\" \
+ --hline \"\$hline\" \
+ --ok-label \"\$msg_ok\" \
+ --cancel-label \"\$msg_cancel\" \
+ --default-item \"\$DEFAULTITEM_$$\" \
+ --menu \"\$menu_text\" $size \
+ $menu_items \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
retval=$?
+ setvar DEFAULTITEM_$$ "$dialog_menu"
setvar DIALOG_MENU_$$ "$dialog_menu"
mtag=$( f_dialog_menutag )
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
@@ -421,7 +423,7 @@ while :; do
case "$mode" in
Add) f_dialog_input_name "$pw_name" ;;
Edit/View|Delete)
- f_dialog_menu_user_list
+ f_dialog_menu_user_list "$pw_name"
retval=$?
mtag=$( f_dialog_menutag )
f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
diff --git a/usr.sbin/bsdconfig/usermgmt/usermgmt b/usr.sbin/bsdconfig/usermgmt/usermgmt
index d7849ae..3c5a5ef 100755
--- a/usr.sbin/bsdconfig/usermgmt/usermgmt
+++ b/usr.sbin/bsdconfig/usermgmt/usermgmt
@@ -82,19 +82,24 @@ dialog_menu_main()
local dialog_menu
dialog_menu=$( eval $DIALOG \
- --clear --title \"\$DIALOG_TITLE\" \
- --backtitle \"\$DIALOG_BACKTITLE\" \
- --hline \"\$hline\" \
- --ok-label \"\$msg_ok\" \
- --cancel-label \"\$msg_cancel\" \
- --help-button \
- --help-label \"\$msg_help\" \
- ${USE_XDIALOG:+--help \"\"} \
- --menu \"\" $size $menu_list \
+ --title \"\$DIALOG_TITLE\" \
+ --backtitle \"\$DIALOG_BACKTITLE\" \
+ --hline \"\$hline\" \
+ --ok-label \"\$msg_ok\" \
+ --cancel-label \"\$msg_cancel\" \
+ --help-button \
+ --help-label \"\$msg_help\" \
+ ${USE_XDIALOG:+--help \"\"} \
+ --default-item \"\$DEFAULTITEM_$$\" \
+ --menu \"\" $size $menu_list \
2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
)
local retval=$?
setvar DIALOG_MENU_$$ "$dialog_menu"
+
+ # Only update default-item on success
+ [ $retval -eq 0 ] && setvar DEFAULTITEM_$$ "$dialog_menu"
+
return $retval
}
OpenPOWER on IntegriCloud