You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.5 KiB
86 lines
2.5 KiB
from message.message import Message
|
|
from message.simple_messages import NoReset
|
|
from browser import document
|
|
from model import Sense, Example
|
|
|
|
|
|
class SimpleEditMessage(Message):
|
|
def __init__(self, event, prop):
|
|
input_element = document.getElementById("modal-input")
|
|
self.new_text = input_element.value
|
|
self.prop = prop
|
|
|
|
|
|
class EditSenseLabel(Message):
|
|
def __init__(self, _, prop):
|
|
assert(type(prop) is Sense)
|
|
self.sense = prop
|
|
|
|
def update_model(self, model):
|
|
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):
|
|
# just adding to the copy to show in the modal
|
|
self.sense.copy().labels.append("")
|
|
|
|
|
|
class AddExampleTranslation(NoReset):
|
|
def __init__(self, _, prop):
|
|
assert(type(prop) is Example)
|
|
self.example = prop
|
|
|
|
def update_model(self, model):
|
|
# just adding to the copy to show in the modal
|
|
self.example.copy().translations.append("")
|
|
|
|
|
|
class EditExampleTranslation(Message):
|
|
def __init__(self, _, prop):
|
|
assert(type(prop) is Example)
|
|
self.example = prop
|
|
|
|
def update_model(self, model):
|
|
self.example.translations = []
|
|
for input_el in document.getElementsByClassName("list-adder-input"):
|
|
new_example_translation = input_el.value
|
|
if new_example_translation != "":
|
|
self.example.translations.append(new_example_translation)
|
|
|
|
|
|
|
|
class AddSense(SimpleEditMessage):
|
|
def update_model(self, model):
|
|
sense = self.prop
|
|
sense.labels = [self.new_text]
|
|
model.entry.senses.append(sense)
|
|
|
|
|
|
class EditSenseDefinition(SimpleEditMessage):
|
|
def update_model(self, model):
|
|
sense = self.prop
|
|
assert(type(sense) is Sense)
|
|
sense.definition = self.new_text
|
|
|
|
|
|
class EditComment(SimpleEditMessage):
|
|
def update_model(self, model):
|
|
model.entry.comment = self.new_text
|
|
|
|
|
|
class EditExample(SimpleEditMessage):
|
|
def update_model(self, model):
|
|
example = self.prop
|
|
assert(type(example) is Example)
|
|
example.example = self.new_text
|
|
|