delete unused component file

This commit is contained in:
sua yoo 2022-04-11 13:18:23 -07:00
parent 8828681e8e
commit 238ee8f7ee
No known key found for this signature in database
GPG Key ID: 5AD1B4C02D4F0567

View File

@ -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);