@@ -110,12 +110,12 @@ import {
110110 type WorkflowDefaults ,
111111} from "@/utils/workflow" ;
112112
113- type NewCrawlConfigParams = WorkflowParams & {
114- runNow : boolean ;
113+ type CrawlConfigParams = WorkflowParams & {
115114 config : WorkflowParams [ "config" ] & {
116115 seeds : Seed [ ] ;
117116 } ;
118117} ;
118+ type WorkflowRunParams = { runNow : boolean ; updateRunning ?: boolean } ;
119119
120120const STEPS = SECTIONS ;
121121type StepName = ( typeof STEPS ) [ number ] ;
@@ -626,28 +626,28 @@ export class WorkflowEditor extends BtrixElement {
626626 type="button"
627627 ?disabled=${ this . isSubmitting }
628628 ?loading=${ this . isSubmitting }
629- @click=${ this . save }
629+ @click=${ ( ) => void this . save ( ) }
630630 >
631631 ${ msg ( "Save" ) }
632632 </sl-button>
633633 </sl-tooltip>
634634 <sl-tooltip
635635 content=${ this . isCrawlRunning
636- ? msg ( "Crawl is already running " )
636+ ? msg ( "Save and apply settings to current crawl " )
637637 : msg ( "Save and run with new settings" ) }
638638 ?disabled=${ this . isCrawlRunning === null }
639639 >
640640 <sl-button
641641 size="small"
642642 variant="primary"
643643 type="submit"
644- ?disabled=${ isArchivingDisabled ( this . org , true ) ||
644+ ?disabled=${ ( ! this . isCrawlRunning &&
645+ isArchivingDisabled ( this . org , true ) ) ||
645646 this . isSubmitting ||
646- this . isCrawlRunning ||
647647 this . isCrawlRunning === null }
648648 ?loading=${ this . isSubmitting || this . isCrawlRunning === null }
649649 >
650- ${ msg ( html ` Run Crawl` ) }
650+ ${ msg ( this . isCrawlRunning ? "Update Crawl" : " Run Crawl" ) }
651651 </sl-button>
652652 </sl-tooltip>
653653 </footer>
@@ -2191,14 +2191,13 @@ https://archiveweb.page/images/${"logo.svg"}`}
21912191 private async onSubmit ( event : SubmitEvent ) {
21922192 event . preventDefault ( ) ;
21932193
2194- this . updateFormState ( {
2195- runNow : true ,
2194+ void this . save ( {
2195+ runNow : ! this . isCrawlRunning ,
2196+ updateRunning : Boolean ( this . isCrawlRunning ) ,
21962197 } ) ;
2197-
2198- void this . save ( ) ;
21992198 }
22002199
2201- private async save ( ) {
2200+ private async save ( opts ?: WorkflowRunParams ) {
22022201 if ( ! this . formElem ) return ;
22032202
22042203 // TODO Move away from manual validation check
@@ -2235,7 +2234,15 @@ https://archiveweb.page/images/${"logo.svg"}`}
22352234 return ;
22362235 }
22372236
2238- const config = this . parseConfig ( ) ;
2237+ const config : CrawlConfigParams & WorkflowRunParams = {
2238+ ...this . parseConfig ( ) ,
2239+ runNow : Boolean ( opts ?. runNow ) ,
2240+ } ;
2241+
2242+ if ( this . configId ) {
2243+ config . updateRunning = Boolean ( opts ?. updateRunning ) ;
2244+ }
2245+
22392246 this . isSubmitting = true ;
22402247
22412248 try {
@@ -2412,15 +2419,14 @@ https://archiveweb.page/images/${"logo.svg"}`}
24122419 }
24132420 }
24142421
2415- private parseConfig ( ) : NewCrawlConfigParams {
2416- const config : NewCrawlConfigParams = {
2422+ private parseConfig ( ) : CrawlConfigParams {
2423+ const config : CrawlConfigParams = {
24172424 // Job types are now merged into a single type
24182425 jobType : "custom" ,
24192426 name : this . formState . jobName || "" ,
24202427 description : this . formState . description ,
24212428 scale : this . formState . scale ,
24222429 profileid : this . formState . browserProfile ?. id || "" ,
2423- runNow : this . formState . runNow ,
24242430 schedule : this . formState . scheduleType === "cron" ? this . utcSchedule : "" ,
24252431 crawlTimeout : this . formState . crawlTimeoutMinutes * 60 ,
24262432 maxCrawlSize : this . formState . maxCrawlSizeGB * BYTES_PER_GB ,
@@ -2471,7 +2477,7 @@ https://archiveweb.page/images/${"logo.svg"}`}
24712477 }
24722478
24732479 private parseUrlListConfig ( ) : Pick <
2474- NewCrawlConfigParams [ "config" ] ,
2480+ CrawlConfigParams [ "config" ] ,
24752481 "seeds" | "scopeType" | "extraHops" | "useSitemap" | "failOnFailedSeed"
24762482 > {
24772483 const config = {
@@ -2489,7 +2495,7 @@ https://archiveweb.page/images/${"logo.svg"}`}
24892495 }
24902496
24912497 private parseSeededConfig ( ) : Pick <
2492- NewCrawlConfigParams [ "config" ] ,
2498+ CrawlConfigParams [ "config" ] ,
24932499 "seeds" | "scopeType" | "useSitemap" | "failOnFailedSeed"
24942500 > {
24952501 const primarySeedUrl = this . formState . primarySeedUrl ;
0 commit comments