diff options
author | dteske <dteske@FreeBSD.org> | 2013-04-22 05:52:06 +0000 |
---|---|---|
committer | dteske <dteske@FreeBSD.org> | 2013-04-22 05:52:06 +0000 |
commit | 8f385d0e89111ca1716767f7dc0bdffe3225b3d0 (patch) | |
tree | cbdec6b0e95d9d7f693f2585627e66aaf3fa13ff /usr.sbin/bsdconfig/usermgmt | |
parent | 2cbbbe9342ffd4b6a5fc07b551f747bfb7d8172c (diff) | |
download | FreeBSD-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-x | usr.sbin/bsdconfig/usermgmt/groupdel | 4 | ||||
-rwxr-xr-x | usr.sbin/bsdconfig/usermgmt/groupedit | 4 | ||||
-rwxr-xr-x | usr.sbin/bsdconfig/usermgmt/groupinput | 20 | ||||
-rw-r--r-- | usr.sbin/bsdconfig/usermgmt/include/messages.subr | 3 | ||||
-rw-r--r-- | usr.sbin/bsdconfig/usermgmt/share/group_input.subr | 15 | ||||
-rw-r--r-- | usr.sbin/bsdconfig/usermgmt/share/user_input.subr | 13 | ||||
-rwxr-xr-x | usr.sbin/bsdconfig/usermgmt/userdel | 4 | ||||
-rwxr-xr-x | usr.sbin/bsdconfig/usermgmt/useredit | 4 | ||||
-rwxr-xr-x | usr.sbin/bsdconfig/usermgmt/userinput | 20 | ||||
-rwxr-xr-x | usr.sbin/bsdconfig/usermgmt/usermgmt | 23 |
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 } |