mirror of
https://gitlab.com/KKlochko/tui-rsync.git
synced 2026-08-12 17:57:43 +00:00
(Added) better label prompt for choosing labels.
This commit is contained in:
@@ -47,16 +47,6 @@ def add(
|
||||
question = "Would you like to change [yellow b]the group label[/]?"
|
||||
group_label = LabelPrompt.ask_uuid(question)
|
||||
|
||||
labels = []
|
||||
while True:
|
||||
is_empty = count_all_labels_except(labels) == 0
|
||||
if is_empty:
|
||||
break
|
||||
is_fzf = Confirm.ask("Would you like to add a source to the group? ",
|
||||
default=True)
|
||||
if not is_fzf:
|
||||
break
|
||||
option = LabelPrompt.get_label_except_fzf(labels)
|
||||
labels.append(option)
|
||||
labels = LabelPrompt.get_labels()
|
||||
Group.create_save(group_label, labels)
|
||||
|
||||
|
||||
@@ -18,10 +18,11 @@
|
||||
################################################################################
|
||||
|
||||
from rich.console import Console
|
||||
from rich.prompt import Prompt
|
||||
from rich.prompt import Confirm, Prompt, IntPrompt
|
||||
from pyfzf import FzfPrompt
|
||||
import uuid
|
||||
from tui_rsync.models.models import all_labels, all_labels_except
|
||||
from tui_rsync.models.models import count_all_labels_except
|
||||
|
||||
console = Console()
|
||||
|
||||
@@ -46,3 +47,24 @@ class LabelPrompt:
|
||||
def get_label_except_fzf(labels = None) -> str:
|
||||
fzf = FzfPrompt()
|
||||
return fzf.prompt(all_labels_except(labels).iterator())[0]
|
||||
|
||||
@staticmethod
|
||||
def get_labels(labels = None) -> list:
|
||||
confirm_question = "Would you like to add a source/sources to the group?"
|
||||
is_fzf = Confirm.ask(confirm_question, default=True)
|
||||
|
||||
if not is_fzf:
|
||||
return []
|
||||
|
||||
count_question = "How much would you like to add sources to the group?"
|
||||
count = IntPrompt.ask(count_question, default=1)
|
||||
|
||||
count_max = count_all_labels_except(labels)
|
||||
count = count_max if count > count_max else count
|
||||
|
||||
labels = []
|
||||
for i in range(count):
|
||||
option = LabelPrompt.get_label_except_fzf(labels)
|
||||
labels.append(option)
|
||||
|
||||
return labels
|
||||
|
||||
Reference in New Issue
Block a user