2019-07-21 17:32:38 +08:00
|
|
|
const TPL = `
|
|
|
|
<table class="note-info-table">
|
|
|
|
<tr>
|
|
|
|
<th>Note ID</th>
|
|
|
|
<td class="note-info-note-id"></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<th>Created</th>
|
|
|
|
<td class="note-info-date-created"></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<th>Modified</th>
|
|
|
|
<td class="note-info-date-modified"></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<th>Type</th>
|
|
|
|
<td class="note-info-type"></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<th>MIME</th>
|
|
|
|
<td class="note-info-mime"></td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
`;
|
|
|
|
|
|
|
|
class NoteInfoWidget {
|
|
|
|
/**
|
|
|
|
* @param {TabContext} ctx
|
|
|
|
* @param {jQuery} $widget
|
|
|
|
*/
|
|
|
|
constructor(ctx, $widget) {
|
|
|
|
this.ctx = ctx;
|
|
|
|
this.$widget = $widget;
|
2019-08-15 16:04:03 +08:00
|
|
|
this.$widget.on('show.bs.collapse', () => this.renderBody());
|
|
|
|
this.$widget.on('show.bs.collapse', () => this.ctx.stateChanged());
|
|
|
|
this.$widget.on('hide.bs.collapse', () => this.ctx.stateChanged());
|
2019-07-21 17:32:38 +08:00
|
|
|
this.$title = this.$widget.find('.widget-title');
|
|
|
|
this.$title.text("Note info");
|
2019-08-15 16:04:03 +08:00
|
|
|
this.$bodyWrapper = this.$widget.find('.body-wrapper');
|
2019-07-21 17:32:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
async renderBody() {
|
2019-08-15 16:04:03 +08:00
|
|
|
if (!this.isVisible()) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-07-21 17:32:38 +08:00
|
|
|
const $body = this.$widget.find('.card-body');
|
|
|
|
|
|
|
|
$body.html(TPL);
|
|
|
|
|
|
|
|
const $noteId = $body.find(".note-info-note-id");
|
|
|
|
const $dateCreated = $body.find(".note-info-date-created");
|
|
|
|
const $dateModified = $body.find(".note-info-date-modified");
|
|
|
|
const $type = $body.find(".note-info-type");
|
|
|
|
const $mime = $body.find(".note-info-mime");
|
|
|
|
|
|
|
|
const note = this.ctx.note;
|
|
|
|
|
|
|
|
$noteId.text(note.noteId);
|
|
|
|
$dateCreated.text(note.dateCreated);
|
|
|
|
$dateModified.text(note.dateModified);
|
|
|
|
$type.text(note.type);
|
|
|
|
$mime.text(note.mime);
|
|
|
|
}
|
2019-08-07 04:39:27 +08:00
|
|
|
|
|
|
|
syncDataReceived(syncData) {
|
|
|
|
if (syncData.find(sd => sd.entityName === 'notes' && sd.entityId === this.ctx.note.noteId)) {
|
|
|
|
this.renderBody();
|
|
|
|
}
|
|
|
|
}
|
2019-08-15 16:04:03 +08:00
|
|
|
|
|
|
|
getWidgetState() {
|
|
|
|
return {
|
|
|
|
id: 'attributes',
|
|
|
|
visible: this.isVisible()
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
isVisible() {
|
|
|
|
return this.$bodyWrapper.is(":visible");
|
|
|
|
}
|
2019-07-21 17:32:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
export default NoteInfoWidget;
|