Przeglądaj źródła

Simplification of control panel menus

Bob Mottram 9 lat temu
rodzic
commit
448e15c766
1 zmienionych plików z 101 dodań i 33 usunięć
  1. 101
    33
      src/freedombone-controlpanel

+ 101
- 33
src/freedombone-controlpanel Wyświetl plik

@@ -366,30 +366,21 @@ function restore_gpg_key {
366 366
     any_key
367 367
 }
368 368
 
369
-function menu_top_level {
369
+function menu_backup_restore {
370 370
     while true
371 371
     do
372 372
         data=$(tempfile 2>/dev/null)
373 373
         trap "rm -f $data" 0 1 2 5 15
374 374
         dialog --backtitle "Freedombone Control Panel" \
375
-               --title "Control Panel" \
376
-               --radiolist "Choose an operation:" 24 70 16 \
375
+               --title "Backup and Restore" \
376
+               --radiolist "Choose an operation:" 14 70 7 \
377 377
                1 "Backup data to USB drive" off \
378
-               2 "Restore data from USB drive" off \
379
-               3 "Restore from remote backup" off \
380
-               4 "Add a user" off \
381
-               5 "Delete a user" off \
382
-               6 "Change user password" off \
383
-               7 "Add a user to a mailing list" off \
384
-               8 "Add an email rule" off \
385
-               9 "Block/Unblock an email address" off \
386
-               10 "Block/Unblock email with subject text" off \
387
-               11 "Change security settings" off \
388
-               12 "Backup GPG key to USB drive (master keydrive)" off \
389
-               13 "Backup GPG key to USB drive (fragment keydrive)" off \
390
-               14 "Restore GPG key from USB drive" off \
391
-               15 "Turn logging on/off" off \
392
-               16 "Exit" on 2> $data
378
+               2 "Restore GPG key from USB keydrive" off \
379
+               3 "Restore data from USB drive" off \
380
+               4 "Restore from remote backup" off \
381
+               5 "Backup GPG key to USB (master keydrive)" off \
382
+               6 "Backup GPG key to USB (fragment keydrive)" off \
383
+               7 "Back to main menu" on 2> $data
393 384
         sel=$?
394 385
         case $sel in
395 386
             1) exit 1;;
@@ -397,21 +388,98 @@ function menu_top_level {
397 388
         esac
398 389
         case $(cat $data) in
399 390
             1) backup_data;;
400
-            2) restore_data;;
401
-            3) restore_data_remote;;
402
-            4) add_user;;
403
-            5) delete_user;;
404
-            6) change_password;;
405
-            7) add_to_mailing_list;;
406
-            8) email_rule;;
407
-            9) block_unblock_email;;
408
-            10) block_unblock_subject;;
409
-            11) freedombone-sec;;
410
-            12) create_keydrive_master;;
411
-            13) create_keydrive_fragment;;
412
-            14) restore_gpg_key;;
413
-            15) logging_on_off;;
414
-            16) break;;
391
+            2) restore_gpg_key;;
392
+            3) restore_data;;
393
+            4) restore_data_remote;;
394
+            5) create_keydrive_master;;
395
+            6) create_keydrive_fragment;;
396
+            7) break;;
397
+        esac
398
+    done
399
+}
400
+
401
+function menu_email {
402
+    while true
403
+    do
404
+        data=$(tempfile 2>/dev/null)
405
+        trap "rm -f $data" 0 1 2 5 15
406
+        dialog --backtitle "Freedombone Control Panel" \
407
+               --title "Email Filtering Rules" \
408
+               --radiolist "Choose an operation:" 12 70 5 \
409
+               1 "Add a user to a mailing list" off \
410
+               2 "Add an email rule" off \
411
+               3 "Block/Unblock an email address" off \
412
+               4 "Block/Unblock email with subject text" off \
413
+               5 "Back to main menu" on 2> $data
414
+        sel=$?
415
+        case $sel in
416
+            1) exit 1;;
417
+            255) exit 1;;
418
+        esac
419
+        case $(cat $data) in
420
+            1) add_to_mailing_list;;
421
+            2) email_rule;;
422
+            3) block_unblock_email;;
423
+            4) block_unblock_subject;;
424
+            5) break;;
425
+        esac
426
+    done
427
+}
428
+
429
+function menu_users {
430
+    while true
431
+    do
432
+        data=$(tempfile 2>/dev/null)
433
+        trap "rm -f $data" 0 1 2 5 15
434
+        dialog --backtitle "Freedombone Control Panel" \
435
+               --title "Control Panel" \
436
+               --radiolist "Choose an operation:" 12 70 5 \
437
+               1 "Add a user" off \
438
+               2 "Delete a user" off \
439
+               3 "Change user password" off \
440
+               4 "Change user ssh public key" off \
441
+               5 "Back to main menu" on 2> $data
442
+        sel=$?
443
+        case $sel in
444
+            1) exit 1;;
445
+            255) exit 1;;
446
+        esac
447
+        case $(cat $data) in
448
+            1) add_user;;
449
+            2) delete_user;;
450
+            3) change_password;;
451
+            4) change_ssh_public_key;;
452
+            5) break;;
453
+        esac
454
+    done
455
+}
456
+
457
+function menu_top_level {
458
+    while true
459
+    do
460
+        data=$(tempfile 2>/dev/null)
461
+        trap "rm -f $data" 0 1 2 5 15
462
+        dialog --backtitle "Freedombone Control Panel" \
463
+               --title "Control Panel" \
464
+               --radiolist "Choose an operation:" 13 70 6 \
465
+               1 "Backup or Restore" off \
466
+               2 "Turn logging on/off" off \
467
+               3 "Manage users" off \
468
+               4 "Email filtering rules" off \
469
+               5 "Security settings" off \
470
+               6 "Exit" on 2> $data
471
+        sel=$?
472
+        case $sel in
473
+            1) exit 1;;
474
+            255) exit 1;;
475
+        esac
476
+        case $(cat $data) in
477
+            1) menu_backup_restore;;
478
+            2) logging_on_off;;
479
+            3) menu_users;;
480
+            4) menu_email;;
481
+            5) freedombone-sec;;
482
+            6) break;;
415 483
         esac
416 484
     done
417 485
 }