@@ -18,6 +18,7 @@ import type { CrawlLog } from "@/features/archived-items/crawl-logs";
18
18
import { CrawlStatus } from "@/features/archived-items/crawl-status" ;
19
19
import { ExclusionEditor } from "@/features/crawl-workflows/exclusion-editor" ;
20
20
import { pageNav , type Breadcrumb } from "@/layouts/pageHeader" ;
21
+ import { deleteConfirmation } from "@/strings/ui" ;
21
22
import type { APIPaginatedList } from "@/types/api" ;
22
23
import { type CrawlState } from "@/types/crawlState" ;
23
24
import { isApiError } from "@/utils/api" ;
@@ -54,7 +55,13 @@ export class WorkflowDetail extends BtrixElement {
54
55
isCrawler ! : boolean ;
55
56
56
57
@property ( { type : String } )
57
- openDialogName ?: "scale" | "exclusions" | "cancel" | "stop" | "delete" ;
58
+ openDialogName ?:
59
+ | "scale"
60
+ | "exclusions"
61
+ | "cancel"
62
+ | "stop"
63
+ | "delete"
64
+ | "deleteCrawl" ;
58
65
59
66
@property ( { type : String } )
60
67
initialActivePanel ?: Tab ;
@@ -255,14 +262,14 @@ export class WorkflowDetail extends BtrixElement {
255
262
render ( ) {
256
263
if ( this . isEditing && this . isCrawler ) {
257
264
return html `
258
- <div class="grid grid-cols-1 gap-7">
265
+ <div class="grid grid-cols-1 gap-7 pb-7 ">
259
266
${ when ( this . workflow , this . renderEditor ) }
260
267
</div>
261
268
` ;
262
269
}
263
270
264
271
return html `
265
- <div class="grid grid-cols-1 gap-7">
272
+ <div class="grid grid-cols-1 gap-7 pb-7 ">
266
273
<div class="col-span-1">${ this . renderBreadcrumbs ( ) } </div>
267
274
268
275
<div>
@@ -355,7 +362,7 @@ export class WorkflowDetail extends BtrixElement {
355
362
</btrix-dialog>
356
363
<btrix-dialog
357
364
.label=${ msg ( "Delete Crawl?" ) }
358
- .open=${ this . openDialogName === "delete " }
365
+ .open=${ this . openDialogName === "deleteCrawl " }
359
366
@sl-request-close=${ ( ) => ( this . openDialogName = undefined ) }
360
367
@sl-show=${ this . showDialog }
361
368
@sl-after-hide=${ ( ) => ( this . isDialogVisible = false ) }
@@ -392,6 +399,32 @@ export class WorkflowDetail extends BtrixElement {
392
399
>
393
400
${ this . isDialogVisible ? this . renderEditScale ( ) : "" }
394
401
</btrix-dialog>
402
+ <btrix-dialog
403
+ .label=${ msg ( "Delete Workflow?" ) }
404
+ .open=${ this . openDialogName === "delete" }
405
+ @sl-request-close=${ ( ) => ( this . openDialogName = undefined ) }
406
+ @sl-show=${ this . showDialog }
407
+ @sl-after-hide=${ ( ) => ( this . isDialogVisible = false ) }
408
+ >
409
+ ${ deleteConfirmation ( this . renderName ( ) ) }
410
+ <div slot="footer" class="flex justify-between">
411
+ <sl-button
412
+ size="small"
413
+ .autofocus=${ true }
414
+ @click=${ ( ) => ( this . openDialogName = undefined ) }
415
+ >${ msg ( "Cancel" ) } </sl-button
416
+ >
417
+ <sl-button
418
+ size="small"
419
+ variant="danger"
420
+ @click=${ async ( ) => {
421
+ void this . delete ( ) ;
422
+ this . openDialogName = undefined ;
423
+ } }
424
+ >${ msg ( "Delete Workflow" ) } </sl-button
425
+ >
426
+ </div>
427
+ </btrix-dialog>
395
428
` ;
396
429
}
397
430
@@ -736,12 +769,12 @@ export class WorkflowDetail extends BtrixElement {
736
769
${ msg ( "Duplicate Workflow" ) }
737
770
</sl-menu-item>
738
771
${ when (
739
- ! this . lastCrawlId ,
772
+ ! workflow . crawlCount ,
740
773
( ) => html `
741
774
<sl-divider></sl-divider>
742
775
<sl-menu-item
743
776
style="--sl-color-neutral-700: var(--danger)"
744
- @click=${ ( ) => void this . delete ( ) }
777
+ @click=${ ( ) => ( this . openDialogName = " delete" ) }
745
778
>
746
779
<sl-icon name="trash3" slot="prefix"></sl-icon>
747
780
${ msg ( "Delete Workflow" ) }
@@ -842,7 +875,7 @@ export class WorkflowDetail extends BtrixElement {
842
875
843
876
private renderCrawls ( ) {
844
877
return html `
845
- <section>
878
+ <section class="h-56 min-h-max" >
846
879
<div
847
880
class="mb-3 flex items-center justify-end rounded-lg border bg-neutral-50 p-4"
848
881
>
@@ -1643,7 +1676,7 @@ export class WorkflowDetail extends BtrixElement {
1643
1676
1644
1677
private readonly confirmDeleteCrawl = ( crawl : Crawl ) => {
1645
1678
this . crawlToDelete = crawl ;
1646
- this . openDialogName = "delete " ;
1679
+ this . openDialogName = "deleteCrawl " ;
1647
1680
} ;
1648
1681
1649
1682
private async deleteCrawl ( crawl : Crawl ) {
@@ -1666,6 +1699,9 @@ export class WorkflowDetail extends BtrixElement {
1666
1699
id : "archived-item-delete-status" ,
1667
1700
} ) ;
1668
1701
void this . fetchCrawls ( ) ;
1702
+
1703
+ // Update crawl count
1704
+ void this . fetchWorkflow ( ) ;
1669
1705
} catch ( e ) {
1670
1706
if ( this . crawlToDelete ) {
1671
1707
this . confirmDeleteCrawl ( this . crawlToDelete ) ;
0 commit comments