mirror of https://github.com/gmbrax/Pilgrim.git
Add the modals to delete the diary and the diary contents
This commit is contained in:
parent
08a5030846
commit
40a2e727f8
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
from textual.widgets import Button
|
||||
|
||||
from textual import on
|
||||
|
||||
from pilgrim.ui.screens.modals.delete_yes_confirmation_modal import DeleteYesConfirmationModal
|
||||
|
||||
|
||||
class DeleteAllEntriesModal(DeleteYesConfirmationModal):
|
||||
def __init__(self,diary_id:int):
|
||||
super().__init__(diary_id)
|
||||
self.head_text.update("Are you sure you want to delete all entries from this diary?")
|
||||
|
||||
|
||||
|
||||
@on(Button.Pressed, "#DeleteDiaryModal-DeleteButton")
|
||||
def on_delete_button_pressed(self, event):
|
||||
self.result = True
|
||||
self.dismiss()
|
||||
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
from textual.widgets import Button
|
||||
|
||||
from textual import on
|
||||
|
||||
from pilgrim.ui.screens.modals.delete_yes_confirmation_modal import DeleteYesConfirmationModal
|
||||
|
||||
|
||||
class DeleteAllPhotosModal(DeleteYesConfirmationModal):
|
||||
def __init__(self,diary_id:int):
|
||||
super().__init__(diary_id)
|
||||
self.head_text.update("Are you sure you want to delete all photos from this diary?")
|
||||
|
||||
|
||||
|
||||
@on(Button.Pressed, "#DeleteDiaryModal-DeleteButton")
|
||||
def on_delete_button_pressed(self, event):
|
||||
self.result = True
|
||||
self.dismiss()
|
||||
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
from textual.containers import Container
|
||||
from textual.widgets import Header, Footer, Label, Button,Input
|
||||
from textual.screen import Screen
|
||||
from textual.binding import Binding
|
||||
from textual import on
|
||||
|
||||
|
||||
class DeleteDiaryModal(Screen):
|
||||
|
||||
BINDINGS = [
|
||||
Binding("escape","cancel","Cancel"),
|
||||
]
|
||||
def __init__(self, diary_id: int,diary_name:str):
|
||||
super().__init__()
|
||||
self.diary_id = diary_id
|
||||
self.diary_name = diary_name
|
||||
self.user_input = Input(placeholder=f"Type diary name to confirm: ({self.diary_name})",id="DeleteDiaryModal-UserInput")
|
||||
self.delete_button = Button("Delete Diary",id="DeleteDiaryModal-DeleteButton",disabled=True)
|
||||
self.cancel_button = Button("Cancel",id="DeleteDiaryModal-CancelButton")
|
||||
self.result = None
|
||||
|
||||
def compose(self):
|
||||
yield Header()
|
||||
yield Container(
|
||||
Label("Are you sure you want to delete this diary?"),
|
||||
self.user_input,
|
||||
Container(
|
||||
self.delete_button,
|
||||
self.cancel_button,
|
||||
id="DeleteDiaryModal-ButtonContainer",
|
||||
classes="DeleteDiaryModal-ButtonContainer"
|
||||
),
|
||||
id="DeleteDiaryModal-MainContainer",
|
||||
classes="DeleteDiaryModal-MainContainer"
|
||||
)
|
||||
yield Footer()
|
||||
|
||||
@on(Input.Changed,"#DeleteDiaryModal-UserInput")
|
||||
def on_user_input_changed(self, event):
|
||||
input_text = event.value.strip()
|
||||
|
||||
if input_text == self.diary_name:
|
||||
self.delete_button.disabled = False
|
||||
else:
|
||||
self.delete_button.disabled = True
|
||||
|
||||
@on(Button.Pressed,"#DeleteDiaryModal-DeleteButton")
|
||||
def on_delete_button_pressed(self, event):
|
||||
self.result = True
|
||||
self.dismiss()
|
||||
|
||||
|
||||
@on(Button.Pressed,"#DeleteDiaryModal-CancelButton")
|
||||
def on_cancel_button_pressed(self, event):
|
||||
self.action_cancel()
|
||||
|
||||
|
||||
def action_cancel(self):
|
||||
self.dismiss()
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
from textual.containers import Container
|
||||
from textual.widgets import Header, Footer, Label, Button,Input
|
||||
from textual.screen import Screen
|
||||
from textual.binding import Binding
|
||||
from textual import on
|
||||
|
||||
|
||||
class DeleteYesConfirmationModal(Screen):
|
||||
BINDINGS = [
|
||||
Binding("escape", "cancel", "Cancel"),
|
||||
]
|
||||
def __init__(self,diary_id:int):
|
||||
super().__init__()
|
||||
self.diary_id = diary_id
|
||||
self.user_input = Input(placeholder="Type 'Yes, I do ' to confirm",id="DeleteYesConfirmationModal-UserInput")
|
||||
self.delete_button = Button("Delete",id="DeleteYesConfirmationModal-DeleteButton",disabled=True)
|
||||
self.cancel_button = Button("Cancel",id="DeleteYesConfirmationModal-CancelButton")
|
||||
self.head_text = Label("Are you sure you want to delete this diary?",id="DeleteYesConfirmationModal-HeadText")
|
||||
self.second_head_text = Label("This action cannot be undone.",id="DeleteYesConfirmationModal-SecondHeadText")
|
||||
self.delete_modal_container = Container(
|
||||
self.head_text,
|
||||
self.second_head_text,
|
||||
self.user_input,
|
||||
Container(
|
||||
self.delete_button,
|
||||
self.cancel_button,
|
||||
id="DeleteYesConfirmationModal-DeleteButtonContainer",
|
||||
classes="DeleteYesConfirmationModal-DeleteButtonContainer"
|
||||
),
|
||||
id="DeleteYesConfirmationModal-DeleteModalContainer",
|
||||
classes="DeleteYesConfirmationModal-DeleteModalContainer"
|
||||
)
|
||||
self.result = None
|
||||
|
||||
@on(Input.Changed,"#DeleteYesConfirmationModal-UserInput")
|
||||
def on_user_input_changed(self, event):
|
||||
input_text = event.value.strip()
|
||||
if input_text == "Yes, I do":
|
||||
self.delete_button.disabled = False
|
||||
else:
|
||||
self.delete_button.disabled = True
|
||||
|
||||
@on(Button.Pressed,"#DeleteYesConfirmationModal-CancelButton")
|
||||
def on_cancel_button_pressed(self, event):
|
||||
self.action_cancel()
|
||||
|
||||
def action_cancel(self):
|
||||
self.dismiss()
|
||||
self.app.push_screen(SettingsScreen(diary=travel_diary[0]))
|
||||
|
||||
def compose(self):
|
||||
yield Header()
|
||||
yield Footer()
|
||||
yield self.delete_modal_container
|
||||
Loading…
Reference in New Issue