mirror of
https://gitlab.com/KKlochko/tui-rsync.git
synced 2026-08-20 05:37:43 +00:00
(Added) better label prompt for choosing labels.
This commit is contained in:
+3
-1
@@ -39,6 +39,8 @@
|
|||||||
Added *remove all* option for sources.
|
Added *remove all* option for sources.
|
||||||
** 0.8.6 <2023-03-23 Thu>
|
** 0.8.6 <2023-03-23 Thu>
|
||||||
Added *remove all* option for groups.
|
Added *remove all* option for groups.
|
||||||
** 0.8.6 <2023-03-23 Thu>
|
** 0.8.7 <2023-03-24 Fri>
|
||||||
Added *update label* option for source.
|
Added *update label* option for source.
|
||||||
|
** 0.8.8 <2023-03-25 Sat>
|
||||||
|
Added better label prompt for choosing labels.
|
||||||
|
|
||||||
|
|||||||
@@ -47,16 +47,6 @@ def add(
|
|||||||
question = "Would you like to change [yellow b]the group label[/]?"
|
question = "Would you like to change [yellow b]the group label[/]?"
|
||||||
group_label = LabelPrompt.ask_uuid(question)
|
group_label = LabelPrompt.ask_uuid(question)
|
||||||
|
|
||||||
labels = []
|
labels = LabelPrompt.get_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)
|
|
||||||
Group.create_save(group_label, labels)
|
Group.create_save(group_label, labels)
|
||||||
|
|
||||||
|
|||||||
@@ -18,10 +18,11 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
from rich.console import Console
|
from rich.console import Console
|
||||||
from rich.prompt import Prompt
|
from rich.prompt import Confirm, Prompt, IntPrompt
|
||||||
from pyfzf import FzfPrompt
|
from pyfzf import FzfPrompt
|
||||||
import uuid
|
import uuid
|
||||||
from tui_rsync.models.models import all_labels, all_labels_except
|
from tui_rsync.models.models import all_labels, all_labels_except
|
||||||
|
from tui_rsync.models.models import count_all_labels_except
|
||||||
|
|
||||||
console = Console()
|
console = Console()
|
||||||
|
|
||||||
@@ -46,3 +47,24 @@ class LabelPrompt:
|
|||||||
def get_label_except_fzf(labels = None) -> str:
|
def get_label_except_fzf(labels = None) -> str:
|
||||||
fzf = FzfPrompt()
|
fzf = FzfPrompt()
|
||||||
return fzf.prompt(all_labels_except(labels).iterator())[0]
|
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