big ui update, page search + full text

- split file chooser from coll index, insert as header, make file chooser collapsible
- revamp collection index to be responsive
- add separate sorter component, used for collection index and pages
- combine 'curated lists' + pages, with page search + narrative
- ensure page + narrative lists are collapsible
- page search: support title, url and full text search if available, using flexsearch
- page search: keyword highlighting, load all pages, showing in increments of 100
- page and resource search: delay search to 1/4 sec of inactivity to avoid too many queries
- electron app: ensure noCache is set to true for local files
- embedding: remove separate embed.js, just use ui.js for embed as well
- embedding: support embedding iframe in a local origin with just sw.js and ui.js: sw.js serves index.html,
<replay-web-page> embed injects ui.js into iframe
- sw.js, new service worker entry point
- sw and ww inited only from <replay-app-main>, ui.js loaded from <replay-web-page> embed component
This commit is contained in:
Ilya Kreymer
2020-05-26 14:43:28 -07:00
parent ff6de51132
commit 03023523b7
21 changed files with 1743 additions and 1069 deletions
+12 -6
View File
@@ -1,12 +1,20 @@
import { LitElement, html, css } from 'lit-element';
import { wrapCss, dbworker } from './misc';
import { wrapCss } from './misc';
import { parseURLSchemeHostPath } from './pageutils';
let dbworker = null;
// ===========================================================================
class Loader extends LitElement
{
static initDBWorker() {
if (dbworker === null) {
dbworker = new Worker(__SW_NAME__);
}
}
constructor() {
super();
this.progress = 0;
@@ -15,6 +23,8 @@ class Loader extends LitElement
this.coll = "";
this.state = "waiting";
this.loadInfo = null;
Loader.initDBWorker();
}
static get properties() {
@@ -92,11 +102,7 @@ You can select a file to upload from the main page by clicking the \'Choose File
return;
}
source = {
sourceUrl: this.loadInfo.sourceUrl,
loadUrl: this.loadInfo.loadUrl,
name: this.loadInfo.name
}
source = this.loadInfo;
break;
}
} catch (e) {}