model.modal now a function and multiple sense labels

This commit is contained in:
2019-11-12 00:34:52 +01:00
parent 75755ef3c5
commit 58adffb104
10 changed files with 66 additions and 21 deletions

View File

@@ -1,7 +1,7 @@
from message.simple_messages import NoReset, Reset, ModalNotOkClose
from message.translation_edit import EditTranslation, MoveRight, MoveLeft, BinTranslation
from message.show_messages import ShowMenu, ShowEditTranslation, ShowSenseLabelEdit, ShowSenseDefinitionEdit, ShowCommentEdit, ShowAddTranslation
from message.simple_edits import EditSenseLabel, EditSenseDefinition, EditComment
from message.simple_edits import EditSenseLabel, EditSenseDefinition, EditComment, AddSenseLabel
from message.message import msg

View File

@@ -29,20 +29,22 @@ class ShowSenseLabelEdit(GenericShowModal):
def update_model(self, model):
super().update_model(model)
model.sense = self.arg
model.modal = modals.edit_sense_label(self.arg)
model.sense.temporary_labels = model.sense.labels[:]
model.modal = lambda: modals.edit_sense_label(model.sense)
class ShowSenseDefinitionEdit(GenericShowModal):
def update_model(self, model):
super().update_model(model)
model.sense = self.arg
model.modal = modals.edit_sense_definition(self.arg)
model.modal = lambda: modals.edit_sense_definition(self.arg)
class ShowCommentEdit(ClickMessage):
def update_model(self, model):
model.modal_shown = True
model.modal = modals.edit_comment(model.entry.comment)
model.modal = lambda: modals.edit_comment(model.entry.comment)
class ShowEditTranslation(GenericShowModal):
@@ -57,7 +59,8 @@ class ShowEditTranslation(GenericShowModal):
for t in cluster:
if t == translation:
# fount the one!
model.modal = modals.edit_translation(translation, cidx, num_clusters, EditTranslation, (translation, cidx))
model.modal = lambda: modals.edit_translation(
translation, cidx, num_clusters, EditTranslation, (translation, cidx))
return
console.log("Should not be here!")
@@ -70,7 +73,8 @@ class ShowAddTranslation(GenericShowModal):
for sense in model.entry.senses:
if sense == chosen_sense:
model.modal = modals.edit_translation(sense, -1, len(sense.translations), AddTranslation, sense)
model.modal = lambda: modals.edit_translation(
sense, -1, len(sense.translations), AddTranslation, sense)
return
console.log("Should not be here!")

View File

@@ -1,4 +1,5 @@
from message.message import Message
from message.simple_messages import NoReset
from browser import document
from model import Sense
@@ -10,11 +11,26 @@ class SimpleEditMessage(Message):
self.prop = prop
class EditSenseLabel(SimpleEditMessage):
class EditSenseLabel(Message):
def __init__(self, _, prop):
assert(type(prop) is Sense)
self.sense = prop
def update_model(self, model):
sense = self.prop
assert(type(sense) is Sense)
sense.label = self.new_text
self.sense.labels = []
for input_el in document.getElementsByClassName("sense-edit-input"):
new_sense_label = input_el.value
if new_sense_label != "":
self.sense.labels.append(new_sense_label)
class AddSenseLabel(NoReset):
def __init__(self, _, prop):
assert(type(prop) is Sense)
self.sense = prop
def update_model(self, model):
self.sense.temporary_labels.append("")
class EditSenseDefinition(SimpleEditMessage):

View File

@@ -19,7 +19,7 @@ class NoReset(Reset):
# after setting model.modal, do view update to actually update the DOM
class _ModalResetDelayed(Message):
def update_model(self, model):
model.modal = []
model.modal_reset()
class ModalNotOkClose(Reset):
def update_model(self, model):