adding of multiword examples, still some cleanup to do.

This commit is contained in:
2020-06-11 22:34:04 +02:00
parent fcd6f158a1
commit 887eb37d20
8 changed files with 56 additions and 7 deletions

View File

@@ -3,11 +3,11 @@ from message.translation_edit import EditTranslation, MoveRight, MoveLeft, BinTr
from message.show_messages import ShowEntryLabelsEdit, ShowEditTranslation, ShowSenseLabelEdit, ShowSenseDefinitionEdit, ShowCommentEdit, ShowAddTranslation, ShowExampleEdit, ShowVariantsEdit, ShowRelatedEntriesEdit
from message.simple_edits import EditSenseLabel, EditSenseDefinition, EditComment, AddSenseLabel, AddSense, AddExampleTranslation, DoChosenExamples, AddToLabelList, AddToGenericList, EditVariants, EditRelatedEntries, EditEntryLabels, ExampleClusterEdit, ExampleClusterAdd
from message.show_menu import ShowTranslationMenu, ShowSenseMenu, ShowExampleMenu
from message.sense_edit import SenseMoveUp, SenseMoveDown, SenseBin
from message.sense_edit import SenseMoveUp, SenseMoveDown, SenseBin, AddMultiwordExample
from message.example_edit import ExampleMoveUp, ExampleMoveDown, ExampleBin, ExampleRoleChange, ExampleComponentSpace, ExampleComponentAdd, ExampleComponentRemove, EditExampleText, ToggleExamples, ToggleClusters
from message.delete_messages import DeleteComment, DeleteVariants, DeleteRelatedEntries, DeleteEntryLabels
from message.ske_messages import ShowSkeModal, SearchInSkeModal, SkeInsert
from message.message import msg
from message.message import msg, delayed_msg

View File

@@ -2,6 +2,7 @@ from browser import document
from message.simple_messages import DataChgClickMessage, ClickMessage, NoReset
from message.message import Message
from model.example import Example, ComponentLexeme
from model.sense import Sense
@@ -48,14 +49,22 @@ class ExampleBin(DataChgClickMessage):
class EditExampleText(Message):
def update_model(self, model):
example = self.get_arg(0, Example)
sense = self.get_arg(1, Sense)
example.overwrite_with_copy()
example.edited = True
# if this was a newly created example, now we can add it to the sense
# easier to add here than to add before editing and checking if the user
# canceled the operation
if example.newly_created:
example.newly_created = False
sense.examples.append(example)
idx = 0
for txt in document.getElementsByClassName("example-component-text"):
example.components[idx].text = txt.value
idx += 1
class ExampleRoleChange(NoReset):
def update_model(self, model):

View File

@@ -54,3 +54,7 @@ def msg(message_class, *params):
message.on_event(event)
update.update_model(message)
return callback
def delayed_msg(message_class, event, timeout_ms, *params):
window.setTimeout(lambda: msg(message_class, *params)(event), timeout_ms)

View File

@@ -1,5 +1,8 @@
from message.simple_messages import DataChgClickMessage
from message.message import delayed_msg
from message.show_messages import ShowExampleEdit
from model import Sense
from model import Example
def _get_sense_idx(sense, model):
@@ -38,3 +41,18 @@ class SenseBin(DataChgClickMessage):
assert(sidx >= 0)
model.entry.senses.splice(sidx, 1)
class AddMultiwordExample(DataChgClickMessage):
def on_event(self, event):
super().on_event(event)
self.event_copy = event
def update_model(self, model):
sense = self.get_arg(0, Sense)
new_example = Example.new_multiword()
# open up an edit example dialog
delayed_msg(ShowExampleEdit, self.event_copy, 0, new_example, sense)

View File

@@ -1,5 +1,5 @@
from browser import window, document
from message.message import Message, msg
from message.message import Message, msg, delayed_msg
# click messages stuff
@@ -78,8 +78,8 @@ class _ModalResetDelayed(Message):
class ModalNotOkClose(Reset):
def update_model(self, model):
# msg just creates a callback, need to actually run it!
window.setTimeout(lambda: msg(_ModalResetDelayed)(None), 100)
# modal reset should be called a bit later for shoother transition
delayed_msg(_ModalResetDelayed, None, 100)
def data_change(self):
return False