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