delete unused component file
This commit is contained in:
		
							parent
							
								
									8828681e8e
								
							
						
					
					
						commit
						238ee8f7ee
					
				| @ -1,180 +0,0 @@ | ||||
| import { state, property } from "lit/decorators.js"; | ||||
| import { msg, localized, str } from "@lit/localize"; | ||||
| import cronParser from "cron-parser"; | ||||
| 
 | ||||
| import type { AuthState } from "../../utils/AuthService"; | ||||
| import LiteElement, { html } from "../../utils/LiteElement"; | ||||
| import type { CrawlTemplate } from "./types"; | ||||
| 
 | ||||
| type RunningCrawlsMap = { | ||||
|   /** Map of configId: crawlId */ | ||||
|   [configId: string]: string; | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Usage: | ||||
|  * ```ts
 | ||||
|  * <btrix-crawl-templates-list></btrix-crawl-templates-list> | ||||
|  * ``` | ||||
|  */ | ||||
| @localized() | ||||
| export class CrawlTemplatesList extends LiteElement { | ||||
|   @property({ type: Object }) | ||||
|   authState!: AuthState; | ||||
| 
 | ||||
|   @property({ type: String }) | ||||
|   archiveId!: string; | ||||
| 
 | ||||
|   @state() | ||||
|   crawlTemplates?: CrawlTemplate[]; | ||||
| 
 | ||||
|   @state() | ||||
|   runningCrawlsMap: RunningCrawlsMap = {}; | ||||
| 
 | ||||
|   private get timeZone() { | ||||
|     return Intl.DateTimeFormat().resolvedOptions().timeZone; | ||||
|   } | ||||
| 
 | ||||
|   async firstUpdated() { | ||||
|     try { | ||||
|       this.crawlTemplates = await this.getCrawlTemplates(); | ||||
|       if (!this.crawlTemplates.length) { | ||||
|         this.navTo(`/archives/${this.archiveId}/crawl-templates/new`); | ||||
|       } | ||||
|     } catch (e) { | ||||
|       this.notify({ | ||||
|         message: msg("Sorry, couldn't retrieve crawl templates at this time."), | ||||
|         type: "danger", | ||||
|         icon: "exclamation-octagon", | ||||
|       }); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   render() { | ||||
|     if (!this.crawlTemplates) { | ||||
|       return html`<div
 | ||||
|         class="w-full flex items-center justify-center my-24 text-4xl" | ||||
|       > | ||||
|         <sl-spinner></sl-spinner> | ||||
|       </div>`;
 | ||||
|     } | ||||
| 
 | ||||
|     return html``; | ||||
|   } | ||||
| 
 | ||||
|   /** | ||||
|    * Fetch crawl templates and record running crawls | ||||
|    * associated with the crawl templates | ||||
|    **/ | ||||
|   private async getCrawlTemplates(): Promise<CrawlTemplate[]> { | ||||
|     type CrawlConfig = Omit<CrawlTemplate, "config"> & { | ||||
|       config: Omit<CrawlTemplate["config"], "seeds"> & { | ||||
|         seeds: (string | { url: string })[]; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     const data: { crawlConfigs: CrawlConfig[] } = await this.apiFetch( | ||||
|       `/archives/${this.archiveId}/crawlconfigs`, | ||||
|       this.authState! | ||||
|     ); | ||||
| 
 | ||||
|     const crawlConfigs: CrawlTemplate[] = []; | ||||
|     const runningCrawlsMap: RunningCrawlsMap = {}; | ||||
| 
 | ||||
|     data.crawlConfigs.forEach(({ config, ...configMeta }) => { | ||||
|       crawlConfigs.push({ | ||||
|         ...configMeta, | ||||
|         config: { | ||||
|           ...config, | ||||
|           // Normalize seed format
 | ||||
|           seeds: config.seeds.map((seed) => | ||||
|             typeof seed === "string" | ||||
|               ? { | ||||
|                   url: seed, | ||||
|                 } | ||||
|               : seed | ||||
|           ), | ||||
|         }, | ||||
|       }); | ||||
| 
 | ||||
|       if (configMeta.currCrawlId) { | ||||
|         runningCrawlsMap[configMeta.id] = configMeta.currCrawlId; | ||||
|       } | ||||
|     }); | ||||
| 
 | ||||
|     this.runningCrawlsMap = runningCrawlsMap; | ||||
| 
 | ||||
|     return crawlConfigs; | ||||
|   } | ||||
| 
 | ||||
|   private async deleteTemplate(template: CrawlTemplate): Promise<void> { | ||||
|     try { | ||||
|       await this.apiFetch( | ||||
|         `/archives/${this.archiveId}/crawlconfigs/${template.id}`, | ||||
|         this.authState!, | ||||
|         { | ||||
|           method: "DELETE", | ||||
|         } | ||||
|       ); | ||||
| 
 | ||||
|       this.notify({ | ||||
|         message: msg(html`Deleted <strong>${template.name}</strong>.`), | ||||
|         type: "success", | ||||
|         icon: "check2-circle", | ||||
|       }); | ||||
| 
 | ||||
|       this.crawlTemplates = this.crawlTemplates!.filter( | ||||
|         (t) => t.id !== template.id | ||||
|       ); | ||||
|     } catch { | ||||
|       this.notify({ | ||||
|         message: msg("Sorry, couldn't delete crawl template at this time."), | ||||
|         type: "danger", | ||||
|         icon: "exclamation-octagon", | ||||
|       }); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   private async runNow(template: CrawlTemplate): Promise<void> { | ||||
|     try { | ||||
|       const data = await this.apiFetch( | ||||
|         `/archives/${this.archiveId}/crawlconfigs/${template.id}/run`, | ||||
|         this.authState!, | ||||
|         { | ||||
|           method: "POST", | ||||
|         } | ||||
|       ); | ||||
| 
 | ||||
|       const crawlId = data.started; | ||||
| 
 | ||||
|       this.runningCrawlsMap = { | ||||
|         ...this.runningCrawlsMap, | ||||
|         [template.id]: crawlId, | ||||
|       }; | ||||
| 
 | ||||
|       this.notify({ | ||||
|         message: msg( | ||||
|           html`Started crawl from <strong>${template.name}</strong>. <br />
 | ||||
|             <a | ||||
|               class="underline hover:no-underline" | ||||
|               href="/archives/${this | ||||
|                 .archiveId}/crawls/crawl/${data.started}#watch" | ||||
|               @click=${this.navLink.bind(this)} | ||||
|               >View crawl</a | ||||
|             >` | ||||
|         ), | ||||
|         type: "success", | ||||
|         icon: "check2-circle", | ||||
|         duration: 8000, | ||||
|       }); | ||||
|     } catch { | ||||
|       this.notify({ | ||||
|         message: msg("Sorry, couldn't run crawl at this time."), | ||||
|         type: "danger", | ||||
|         icon: "exclamation-octagon", | ||||
|       }); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| customElements.define("btrix-crawl-templates-list", CrawlTemplatesList); | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user