book and search fixes

This commit is contained in:
zadam 2020-01-22 22:05:28 +01:00
parent eacefeb08b
commit 34bc02965f
3 changed files with 38 additions and 27 deletions

View File

@ -3,24 +3,24 @@ import toastService from "../services/toast.js";
import server from "../services/server.js";
const TPL = `
<style>
.search-results {
padding: 0 5px 5px 15px;
flex-basis: 40%;
flex-grow: 1;
flex-shrink: 1;
margin-top: 10px;
display: none;
overflow: auto;
border-bottom: 2px solid var(--main-border-color);
}
<div>
<style>
.search-results {
padding: 0 5px 5px 15px;
flex-basis: 40%;
flex-grow: 1;
flex-shrink: 1;
margin-top: 10px;
display: none;
overflow: auto;
border-bottom: 2px solid var(--main-border-color);
}
.search-results ul {
padding: 5px 5px 5px 15px;
}
</style>
.search-results ul {
padding: 5px 5px 5px 15px;
}
</style>
<div class="search-results">
<strong>Search results:</strong>
<ul class="search-results-inner"></ul>
@ -29,15 +29,17 @@ const TPL = `
export default class SearchResultsWidget extends BasicWidget {
doRender() {
const $widget = $(TPL);
this.$widget = $(TPL);
this.$searchResults = $widget.find(".search-results");
this.$searchResultsInner = $widget.find(".search-results-inner");
this.$searchResults = this.$widget;
this.$searchResultsInner = this.$widget.find(".search-results-inner");
return $widget;
return this.$widget;
}
async searchForResultsListener({searchText}) {
this.toggle(true);
const response = await server.get('search/' + encodeURIComponent(searchText));
if (!response.success) {

View File

@ -193,7 +193,7 @@ export default class BookTypeWidget extends TypeWidget {
this.$content.find('.note-book-content').css("max-height", ZOOMS[zoomLevel].height);
}
async doRefresh() {
async doRefresh(note) {
this.$content.empty();
this.$help.hide();
@ -208,10 +208,10 @@ export default class BookTypeWidget extends TypeWidget {
.append(' if you want to add some text.'))
}
const zoomLevel = parseInt(await this.tabContext.note.getLabelValue('bookZoomLevel')) || this.getDefaultZoomLevel();
const zoomLevel = parseInt(await note.getLabelValue('bookZoomLevel')) || this.getDefaultZoomLevel();
this.setZoom(zoomLevel);
await this.renderIntoElement(this.tabContext.note, this.$content);
await this.renderIntoElement(note, this.$content);
}
async renderIntoElement(note, $container) {

View File

@ -4,15 +4,24 @@ export default class TypeWidget extends TabAwareWidget {
// for overriding
static getType() {}
doRefresh() {}
/**
* @param {NoteFull} note
*/
doRefresh(note) {}
refresh() {
if (!this.tabContext.note || this.tabContext.note.type !== this.constructor.getType()) {
const note = this.tabContext.note;
const widgetType = this.constructor.getType();
if (!note
|| (note.type !== widgetType
&& (note.type !== 'text' || widgetType !== 'book') // text can be rendered as book if it does not have content
&& (widgetType !== 'protected-session' || !note.isProtected))) {
this.toggle(false);
return;
}
this.doRefresh();
this.doRefresh(note);
}
}