Add empty state for crawls (#121)
This commit is contained in:
parent
7777a22829
commit
b93ca4e833
@ -221,7 +221,7 @@ export class CrawlTemplatesList extends LiteElement {
|
|||||||
name="slash-circle"
|
name="slash-circle"
|
||||||
></sl-icon
|
></sl-icon
|
||||||
><span class="inline-block align-middle text-0-400"
|
><span class="inline-block align-middle text-0-400"
|
||||||
>${msg("No crawls")}</span
|
>${msg("No finished crawls")}</span
|
||||||
>
|
>
|
||||||
`}
|
`}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -239,12 +239,11 @@ export class CrawlTemplatesNew extends LiteElement {
|
|||||||
</sl-select>
|
</sl-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid grid-flow-col gap-2 items-center mt-2">
|
<div class="flex items-center mt-2">
|
||||||
<span class="px-1">${msg("At")}</span>
|
<span class="px-3">${msg("At")}</span>
|
||||||
<sl-select
|
<sl-select
|
||||||
name="scheduleHour"
|
name="scheduleHour"
|
||||||
value=${this.scheduleTime.hour}
|
value=${this.scheduleTime.hour}
|
||||||
class="w-24"
|
|
||||||
?disabled=${!this.scheduleInterval}
|
?disabled=${!this.scheduleInterval}
|
||||||
@sl-select=${(e: any) =>
|
@sl-select=${(e: any) =>
|
||||||
(this.scheduleTime = {
|
(this.scheduleTime = {
|
||||||
@ -257,11 +256,11 @@ export class CrawlTemplatesNew extends LiteElement {
|
|||||||
html`<sl-menu-item value=${value}>${label}</sl-menu-item>`
|
html`<sl-menu-item value=${value}>${label}</sl-menu-item>`
|
||||||
)}
|
)}
|
||||||
</sl-select>
|
</sl-select>
|
||||||
<span>:</span>
|
<span class="px-1">:</span>
|
||||||
<sl-select
|
<sl-select
|
||||||
name="scheduleMinute"
|
name="scheduleMinute"
|
||||||
|
class="mr-2"
|
||||||
value=${this.scheduleTime.minute}
|
value=${this.scheduleTime.minute}
|
||||||
class="w-24"
|
|
||||||
?disabled=${!this.scheduleInterval}
|
?disabled=${!this.scheduleInterval}
|
||||||
@sl-select=${(e: any) =>
|
@sl-select=${(e: any) =>
|
||||||
(this.scheduleTime = {
|
(this.scheduleTime = {
|
||||||
@ -276,7 +275,6 @@ export class CrawlTemplatesNew extends LiteElement {
|
|||||||
</sl-select>
|
</sl-select>
|
||||||
<sl-select
|
<sl-select
|
||||||
value=${this.scheduleTime.period}
|
value=${this.scheduleTime.period}
|
||||||
class="w-24"
|
|
||||||
?disabled=${!this.scheduleInterval}
|
?disabled=${!this.scheduleInterval}
|
||||||
@sl-select=${(e: any) =>
|
@sl-select=${(e: any) =>
|
||||||
(this.scheduleTime = {
|
(this.scheduleTime = {
|
||||||
@ -291,7 +289,7 @@ export class CrawlTemplatesNew extends LiteElement {
|
|||||||
>${msg("PM", { desc: "Time AM/PM" })}</sl-menu-item
|
>${msg("PM", { desc: "Time AM/PM" })}</sl-menu-item
|
||||||
>
|
>
|
||||||
</sl-select>
|
</sl-select>
|
||||||
<span class="px-1">${this.timeZoneShortName}</span>
|
<span class="px-3">${this.timeZoneShortName}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-sm text-gray-500 mt-2">
|
<div class="text-sm text-gray-500 mt-2">
|
||||||
${this.formattededNextCrawlDate
|
${this.formattededNextCrawlDate
|
||||||
@ -374,8 +372,7 @@ export class CrawlTemplatesNew extends LiteElement {
|
|||||||
<sl-menu-item value="host">Host</sl-menu-item>
|
<sl-menu-item value="host">Host</sl-menu-item>
|
||||||
<sl-menu-item value="any">Any</sl-menu-item>
|
<sl-menu-item value="any">Any</sl-menu-item>
|
||||||
</sl-select>
|
</sl-select>
|
||||||
<sl-checkbox
|
<sl-checkbox name="extraHopsOne"
|
||||||
name="extraHopsOne"
|
|
||||||
>${msg("Include External Links ('one hop out')")}
|
>${msg("Include External Links ('one hop out')")}
|
||||||
</sl-checkbox>
|
</sl-checkbox>
|
||||||
<sl-input
|
<sl-input
|
||||||
|
|||||||
@ -135,7 +135,15 @@ export class CrawlsList extends LiteElement {
|
|||||||
return html`
|
return html`
|
||||||
<main>
|
<main>
|
||||||
<header class="pb-4">${this.renderControls()}</header>
|
<header class="pb-4">${this.renderControls()}</header>
|
||||||
<section>${this.renderCrawlList()}</section>
|
<section>
|
||||||
|
${this.crawls.length
|
||||||
|
? this.renderCrawlList()
|
||||||
|
: html`
|
||||||
|
<div class="border-t border-b py-5">
|
||||||
|
<p class="text-center text-0-500">${msg("No crawls yet.")}</p>
|
||||||
|
</div>
|
||||||
|
`}
|
||||||
|
</section>
|
||||||
<footer class="mt-2">
|
<footer class="mt-2">
|
||||||
<span class="text-0-400 text-sm">
|
<span class="text-0-400 text-sm">
|
||||||
${this.lastFetched
|
${this.lastFetched
|
||||||
@ -166,6 +174,7 @@ export class CrawlsList extends LiteElement {
|
|||||||
placeholder=${msg("Search by Crawl Template name or ID")}
|
placeholder=${msg("Search by Crawl Template name or ID")}
|
||||||
pill
|
pill
|
||||||
clearable
|
clearable
|
||||||
|
?disabled=${!this.crawls?.length}
|
||||||
@sl-input=${this.onSearchInput}
|
@sl-input=${this.onSearchInput}
|
||||||
>
|
>
|
||||||
<sl-icon name="search" slot="prefix"></sl-icon>
|
<sl-icon name="search" slot="prefix"></sl-icon>
|
||||||
@ -186,7 +195,11 @@ export class CrawlsList extends LiteElement {
|
|||||||
};
|
};
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<sl-button slot="trigger" pill caret
|
<sl-button
|
||||||
|
slot="trigger"
|
||||||
|
pill
|
||||||
|
caret
|
||||||
|
?disabled=${!this.crawls?.length}
|
||||||
>${(sortableFieldLabels as any)[this.orderBy.field] ||
|
>${(sortableFieldLabels as any)[this.orderBy.field] ||
|
||||||
sortableFieldLabels[
|
sortableFieldLabels[
|
||||||
`${this.orderBy.field}_${this.orderBy.direction}`
|
`${this.orderBy.field}_${this.orderBy.direction}`
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import "./crawl-templates-list";
|
|||||||
import "./crawl-templates-new";
|
import "./crawl-templates-new";
|
||||||
import "./crawls-list";
|
import "./crawls-list";
|
||||||
|
|
||||||
export type ArchiveTab = "crawls" | "crawl-templates" | "settings" | "members";
|
export type ArchiveTab = "crawls" | "crawl-templates" | "members";
|
||||||
|
|
||||||
const defaultTab = "crawls";
|
const defaultTab = "crawls";
|
||||||
|
|
||||||
@ -114,12 +114,6 @@ export class Archive extends LiteElement {
|
|||||||
this.navTo(`/archives/${this.archiveId}/crawl-templates`)}
|
this.navTo(`/archives/${this.archiveId}/crawl-templates`)}
|
||||||
>${msg("Crawl Templates")}
|
>${msg("Crawl Templates")}
|
||||||
</sl-tab>
|
</sl-tab>
|
||||||
<sl-tab
|
|
||||||
slot="nav"
|
|
||||||
panel="settings"
|
|
||||||
?active=${this.archiveTab === "settings"}
|
|
||||||
>${msg("Settings")}</sl-tab
|
|
||||||
>
|
|
||||||
${showMembersTab
|
${showMembersTab
|
||||||
? html`<sl-tab
|
? html`<sl-tab
|
||||||
slot="nav"
|
slot="nav"
|
||||||
@ -137,11 +131,6 @@ export class Archive extends LiteElement {
|
|||||||
?active=${this.archiveTab === "crawl-templates"}
|
?active=${this.archiveTab === "crawl-templates"}
|
||||||
>${this.renderCrawlTemplates()}</sl-tab-panel
|
>${this.renderCrawlTemplates()}</sl-tab-panel
|
||||||
>
|
>
|
||||||
<sl-tab-panel
|
|
||||||
name="settings"
|
|
||||||
?active=${this.archiveTab === "settings"}
|
|
||||||
>${this.renderSettings()}</sl-tab-panel
|
|
||||||
>
|
|
||||||
${showMembersTab
|
${showMembersTab
|
||||||
? html`<sl-tab-panel
|
? html`<sl-tab-panel
|
||||||
name="members"
|
name="members"
|
||||||
@ -170,24 +159,8 @@ export class Archive extends LiteElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private renderCrawlTemplates() {
|
private renderCrawlTemplates() {
|
||||||
const crawlConfig = this.viewStateData?.crawlConfig;
|
if (this.crawlConfigId) {
|
||||||
|
|
||||||
if (this.isNewResourceTab || this.crawlConfigId) {
|
|
||||||
return html`
|
return html`
|
||||||
<div class="md:grid grid-cols-6 gap-6">
|
|
||||||
<nav class="col-span-1 mb-6">
|
|
||||||
<a
|
|
||||||
class="font-medium text-sm text-primary hover:opacity-80 flex items-center"
|
|
||||||
href=${`/archives/${this.archiveId}/crawl-templates`}
|
|
||||||
@click=${this.navLink}
|
|
||||||
><sl-icon class="mr-1" name="arrow-left"></sl-icon> ${msg(
|
|
||||||
"Back to templates"
|
|
||||||
)}</a
|
|
||||||
>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
${this.crawlConfigId
|
|
||||||
? html`
|
|
||||||
<btrix-crawl-templates-detail
|
<btrix-crawl-templates-detail
|
||||||
class="col-span-5 mt-6"
|
class="col-span-5 mt-6"
|
||||||
.authState=${this.authState!}
|
.authState=${this.authState!}
|
||||||
@ -195,15 +168,18 @@ export class Archive extends LiteElement {
|
|||||||
.crawlConfigId=${this.crawlConfigId}
|
.crawlConfigId=${this.crawlConfigId}
|
||||||
.isEditing=${this.isEditing}
|
.isEditing=${this.isEditing}
|
||||||
></btrix-crawl-templates-detail>
|
></btrix-crawl-templates-detail>
|
||||||
`
|
`;
|
||||||
: html` <btrix-crawl-templates-new
|
}
|
||||||
|
|
||||||
|
if (this.isNewResourceTab) {
|
||||||
|
const crawlConfig = this.viewStateData?.crawlConfig;
|
||||||
|
|
||||||
|
return html` <btrix-crawl-templates-new
|
||||||
class="col-span-5 mt-6"
|
class="col-span-5 mt-6"
|
||||||
.authState=${this.authState!}
|
.authState=${this.authState!}
|
||||||
.archiveId=${this.archiveId!}
|
.archiveId=${this.archiveId!}
|
||||||
.initialCrawlConfig=${crawlConfig}
|
.initialCrawlConfig=${crawlConfig}
|
||||||
></btrix-crawl-templates-new>`}
|
></btrix-crawl-templates-new>`;
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return html`<btrix-crawl-templates-list
|
return html`<btrix-crawl-templates-list
|
||||||
|
|||||||
@ -69,7 +69,7 @@ export class Archives extends LiteElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
makeOnArchiveClick(archive: ArchiveData): Function {
|
makeOnArchiveClick(archive: ArchiveData): Function {
|
||||||
const navigate = () => this.navTo(`/archives/${archive.id}/settings`);
|
const navigate = () => this.navTo(`/archives/${archive.id}/crawls`);
|
||||||
|
|
||||||
if (typeof window.getSelection !== undefined) {
|
if (typeof window.getSelection !== undefined) {
|
||||||
return () => {
|
return () => {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user