Hack at metadata contenteditable until it works

This commit is contained in:
Shaunak Kishore
2015-09-30 00:21:01 -04:00
parent 5b2b1d2e30
commit 0d7f3516c0
2 changed files with 16 additions and 4 deletions

View File

@ -75,7 +75,8 @@
{{#each items}} {{#each items}}
<div class="field"> <div class="field">
<label class="control-label">{{label}}</label> <label class="control-label">{{label}}</label>
<span class="value" contenteditable="true">{{value}}</span> <span class="value" contenteditable="true"
data-field="{{field}}">{{value}}</span>
</div> </div>
{{/each}} {{/each}}
</div> </div>

View File

@ -89,12 +89,16 @@ Template.metadata.events({
} }
} }
const glyph = Session.get('editor.glyph'); const glyph = Session.get('editor.glyph');
if (glyph.metadata[this.field] !== value) { const defaults = cjklib.getCharacterData(glyph.character);
if (value === defaults[this.field]) {
value = null;
}
if (value !== glyph.metadata[this.field]) {
$(event.target).text(''); $(event.target).text('');
glyph.metadata[this.field] = value; glyph.metadata[this.field] = value;
Session.set('editor.glyph', glyph); Session.set('editor.glyph', glyph);
} else { } else {
$(event.target).text(value || unknown); $(event.target).text(value || defaults[this.field] || unknown);
} }
}, },
}); });
@ -110,10 +114,17 @@ Template.metadata.helpers({
if (!glyph) return; if (!glyph) return;
const defaults = cjklib.getCharacterData(glyph.character); const defaults = cjklib.getCharacterData(glyph.character);
const fields = ['definition', 'pinyin', 'strokes'] const fields = ['definition', 'pinyin', 'strokes']
return fields.map((x) => ({ const result = fields.map((x) => ({
field: x, field: x,
label: `${x[0].toUpperCase()}${x.substr(1)}:`, label: `${x[0].toUpperCase()}${x.substr(1)}:`,
value: glyph.metadata[x] || defaults[x] || unknown, value: glyph.metadata[x] || defaults[x] || unknown,
})); }));
for (let entry of result) {
const element = $(`.metadata .field [data-field="${entry.field}"]`);
if (element.text() != entry.value) {
element.text('');
}
}
return result;
}, },
}); });