diff --git a/client/helpers.js b/client/helpers.js index 4b95dffa..bd83457f 100644 --- a/client/helpers.js +++ b/client/helpers.js @@ -2,3 +2,7 @@ Handlebars.registerHelper('selected', (current, value) => ({value: value, selected: current === value ? 'selected' : undefined})); Handlebars.registerHelper('equals', (a, b) => a === b); + +Handlebars.registerHelper('editable', (field, value) => + `
${value}
`); diff --git a/client/index.html b/client/index.html index 3f4b2ea3..f28150bb 100644 --- a/client/index.html +++ b/client/index.html @@ -75,8 +75,7 @@ {{#each items}}
-
{{value}}
{{extra}} + {{{editable field value}}}{{extra}}
{{/each}}
diff --git a/client/lib/analysis.js b/client/lib/analysis.js index 2d25f97f..8f6748ca 100644 --- a/client/lib/analysis.js +++ b/client/lib/analysis.js @@ -133,11 +133,14 @@ Template.analysis_stage.events({ // This line is not needed for correctness, so we ignore any errors in it. try { window.getSelection().removeAllRanges(); } catch (e) { } const target = $(event.target); + const field = target.attr('data-field'); const text = target.text(); - if (this.path) { + if (field === 'character') { updateCharacterValue(target, text, this.path); - } else { + } else if (field === 'radical') { updateRadicalValue(target, text); + } else { + assert(false, `Unexpected editable field: ${field}`); } }, 'click .value': function(event) { @@ -170,9 +173,7 @@ Template.analysis_stage.events({ Template.analysis_stage.helpers({ radical: () => { - const result = Session.get('stages.analysis.radical') || '?'; - $('.analysis_stage .radical .value').text(''); - return result; + return Session.get('stages.analysis.radical') || '?'; }, tree: () => { return Session.get('stages.analysis.tree'); diff --git a/client/metadata.js b/client/metadata.js index 69f904be..ad509a4a 100644 --- a/client/metadata.js +++ b/client/metadata.js @@ -96,7 +96,6 @@ Template.metadata.events({ } if (value !== glyph.metadata[this.field] && (value || glyph.metadata[this.field])) { - $(event.target).text(''); glyph.metadata[this.field] = value; Session.set('editor.glyph', glyph); } else { @@ -128,12 +127,6 @@ Template.metadata.helpers({ result[0].extra = `; ${variant ? 'variant of ' : ''}` + `Kangxi radical ${index} ${variant ? primary : ''}`; } - for (let entry of result) { - const element = $(`.metadata .field [data-field="${entry.field}"]`); - if (element.text() !== entry.value) { - element.text(''); - } - } return result; }, references() { diff --git a/client/templates.html b/client/templates.html index 4761065f..78a718d8 100644 --- a/client/templates.html +++ b/client/templates.html @@ -25,7 +25,7 @@ {{> decomposition_tree tree}}
-
{{radical}}
+ {{{editable "radical" radical}}}
@@ -44,7 +44,7 @@ {{#if (equals type "character")}} -
{{value}}
- + {{{editable "character" value}}} {{#if (equals value "?")}} (unknown) {{else}}