diff --git a/ui/src/app/model/workflow-template.model.ts b/ui/src/app/model/workflow-template.model.ts index b50a0b6f87..0c5ec045f4 100644 --- a/ui/src/app/model/workflow-template.model.ts +++ b/ui/src/app/model/workflow-template.model.ts @@ -89,7 +89,7 @@ export class WorkflowTemplateInstance implements WithKey { if (!this.workflow) { return InstanceStatus.NOT_IMPORTED; } - return this.workflow_template_version === wt.version ? InstanceStatus.UP_TO_DATE : InstanceStatus.NOT_UP_TO_DATE; + return this.workflow_template_version === wt?.version ? InstanceStatus.UP_TO_DATE : InstanceStatus.NOT_UP_TO_DATE; } } diff --git a/ui/src/app/shared/favorite-cards/favorite-cards.component.html b/ui/src/app/shared/favorite-cards/favorite-cards.component.html index 760aec6a1a..b7803848ec 100644 --- a/ui/src/app/shared/favorite-cards/favorite-cards.component.html +++ b/ui/src/app/shared/favorite-cards/favorite-cards.component.html @@ -1,101 +1,101 @@ -
-
-
-
- {{'favorite_add' | translate}} -
-
- - - - - - - - - - - - - - - - - - - -
-
-
- -
- {{'favorite_add_btn' | translate}} -
-
- -
-
- - -
- -
- - - {{favorite.workflow_name}} - -
- {{'navbar_workflow_in' | translate}} {{favorite.key}} -
-
- {{favorite.description}} -
-
- -
- -
- - - {{favorite.name}} - -
- {{'common_project' | translate}} -
-
- {{favorite.description}} -
-
-
-
-
- -
-
- -
-
-
-
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + workflow logo + + + + project logo + + + + + + + {{favorite.workflow_name}} + + + + + {{favorite.name}} + + + + + +
+ Workflow in {{favorite.key}} +
+
+ {{favorite.description}} +
+
+ +
+ Project +
+
+ {{favorite.description}} +
+
+
+ + + + + + +
+
+
+ + diff --git a/ui/src/app/shared/favorite-cards/favorite-cards.component.scss b/ui/src/app/shared/favorite-cards/favorite-cards.component.scss index f20a590dc6..85d5df29c1 100644 --- a/ui/src/app/shared/favorite-cards/favorite-cards.component.scss +++ b/ui/src/app/shared/favorite-cards/favorite-cards.component.scss @@ -1,18 +1,7 @@ -.mt5 { +nz-select { + width: 100%; margin-top: 5px; } - -.projectLink { - color: rgba(0, 0, 0, 0.68); - &:hover { - text-decoration: underline; - } -} - -.ui.cards > .card { - margin-right: auto; -} - -.text-black { - color: black; +nz-card { + margin: 10px 10px; } diff --git a/ui/src/app/shared/repomanager/from/repomanager.form.component.ts b/ui/src/app/shared/repomanager/from/repomanager.form.component.ts index 7ad814c4fb..95b4050ca0 100644 --- a/ui/src/app/shared/repomanager/from/repomanager.form.component.ts +++ b/ui/src/app/shared/repomanager/from/repomanager.form.component.ts @@ -22,6 +22,7 @@ export class RepoManagerFormComponent { // project @Input() project: Project; + @Input() disableLabel: boolean = false; public ready = false; public connectLoading = false; diff --git a/ui/src/app/shared/repomanager/from/repomanager.form.html b/ui/src/app/shared/repomanager/from/repomanager.form.html index 589894379b..a893431561 100644 --- a/ui/src/app/shared/repomanager/from/repomanager.form.html +++ b/ui/src/app/shared/repomanager/from/repomanager.form.html @@ -2,7 +2,7 @@ - Add a repository manager + Add a repository manager @@ -11,9 +11,13 @@ - + + + + + diff --git a/ui/src/app/shared/shared.module.ts b/ui/src/app/shared/shared.module.ts index b4ba709046..8c37d6489d 100644 --- a/ui/src/app/shared/shared.module.ts +++ b/ui/src/app/shared/shared.module.ts @@ -123,7 +123,7 @@ import { en_US, NZ_I18N } from 'ng-zorro-antd/i18n'; import { NzIconModule } from 'ng-zorro-antd/icon'; import { IconDefinition } from '@ant-design/icons-angular'; import { ArrowDownOutline, ArrowRightOutline, BellFill, BookOutline, CalendarOutline, CaretDownFill, CaretRightFill, CaretUpFill, CheckOutline, CodeOutline, CopyOutline, DeleteOutline, DragOutline, EyeInvisibleOutline, EyeOutline, KeyOutline, - HighlightFill, HistoryOutline, InfoCircleOutline, PhoneFill, PlusOutline, PlusSquareOutline, QuestionOutline, QuestionCircleOutline, RestOutline, SaveOutline, SettingFill, ShareAltOutline, StarOutline, StarFill, SyncOutline, + HighlightFill, HistoryOutline, InfoCircleOutline, PhoneFill, PlusOutline, PlusSquareOutline, QuestionOutline, QuestionCircleOutline, RestOutline, SaveOutline, SettingFill, ShareAltOutline, StarOutline, StarFill, StopOutline, SyncOutline, TableOutline, TagsOutline, ToolFill, UnlockFill, UnorderedListOutline, UploadOutline, UserOutline, WarningOutline, WarningFill } from '@ant-design/icons-angular/icons' import { NzDropDownModule } from 'ng-zorro-antd/dropdown'; import { NzTagModule } from 'ng-zorro-antd/tag'; @@ -156,7 +156,7 @@ const ngZorroConfig: NzConfig = { const icons: IconDefinition[] = [ ArrowDownOutline, ArrowRightOutline, BellFill, BookOutline, CalendarOutline, CaretDownFill, CaretRightFill, CaretUpFill, CheckOutline, CodeOutline, CopyOutline, DeleteOutline, DragOutline, EyeInvisibleOutline, EyeOutline, KeyOutline, HighlightFill, HistoryOutline, InfoCircleOutline, PhoneFill, PlusOutline, PlusSquareOutline, QuestionOutline, QuestionCircleOutline, - RestOutline, SaveOutline, SettingFill, ShareAltOutline, StarOutline, StarFill, SyncOutline, TableOutline, TagsOutline, ToolFill, UnlockFill, UnorderedListOutline, UploadOutline, UserOutline, WarningOutline, WarningFill ]; + RestOutline, SaveOutline, SettingFill, ShareAltOutline, StarOutline, StarFill, StopOutline, SyncOutline, TableOutline, TagsOutline, ToolFill, UnlockFill, UnorderedListOutline, UploadOutline, UserOutline, WarningOutline, WarningFill ]; @NgModule({ imports: [ diff --git a/ui/src/app/shared/vcs/vcs.strategy.component.ts b/ui/src/app/shared/vcs/vcs.strategy.component.ts index 8836a7d020..0db33839cb 100644 --- a/ui/src/app/shared/vcs/vcs.strategy.component.ts +++ b/ui/src/app/shared/vcs/vcs.strategy.component.ts @@ -30,11 +30,11 @@ export class VCSStrategyComponent implements OnInit { @Input() project: Project; @Input() appName: string; @Input() loading: boolean; - @Input() hideBranch = false; @Input() hideButton = false; @Input() createOnProject = false; @Input() sshWarning = false; @Input() projectKeysOnly = false; + @Input() withoutForm = false; selectedPublicKey: string; diff --git a/ui/src/app/shared/vcs/vcs.strategy.html b/ui/src/app/shared/vcs/vcs.strategy.html index da3f9c6be5..ff61f49a2e 100644 --- a/ui/src/app/shared/vcs/vcs.strategy.html +++ b/ui/src/app/shared/vcs/vcs.strategy.html @@ -1,4 +1,4 @@ -
+ Connection @@ -16,7 +16,7 @@ SSH key* Create + *ngIf="createOnProject">(Create) - - + +
+ + + Connection: + + + + + + + + + + SSH key* + (Create) + + + + + + + + + + + + + + User: + + + + + + + + Password: + + + + + + + + PGP key: + + + + + +
+
diff --git a/ui/src/app/shared/vcs/vcs.strategy.scss b/ui/src/app/shared/vcs/vcs.strategy.scss index df4f6c3d6d..a3c516da11 100644 --- a/ui/src/app/shared/vcs/vcs.strategy.scss +++ b/ui/src/app/shared/vcs/vcs.strategy.scss @@ -5,3 +5,20 @@ padding-left: 10px; cursor: pointer; } + +.noform { + nz-radio-group { + margin-left: 10px; + } + + input { + width: 300px; + } + nz-select { + width: 300px; + } + nz-row { + margin-top: 5px; + margin-bottom: 10px; + } +} diff --git a/ui/src/app/shared/workflow-template/apply-form/workflow-template.apply-form.component.ts b/ui/src/app/shared/workflow-template/apply-form/workflow-template.apply-form.component.ts index dc8d83f075..ca1a9d5296 100644 --- a/ui/src/app/shared/workflow-template/apply-form/workflow-template.apply-form.component.ts +++ b/ui/src/app/shared/workflow-template/apply-form/workflow-template.apply-form.component.ts @@ -28,6 +28,7 @@ import { AutoUnsubscribe } from 'app/shared/decorator/autoUnsubscribe'; import { EventState } from 'app/store/event.state'; import { Subscription } from 'rxjs'; import { filter, finalize, first, map } from 'rxjs/operators'; +import { ToastService } from 'app/shared/toast/ToastService'; @Component({ selector: 'app-workflow-template-apply-form', @@ -61,7 +62,8 @@ export class WorkflowTemplateApplyFormComponent implements OnChanges, OnDestroy private _router: Router, private _cd: ChangeDetectorRef, private _eventService: EventService, - private _store: Store + private _store: Store, + private _toast: ToastService ) { } ngOnDestroy(): void {} // Should be set to use @AutoUnsubscribe with AOT @@ -99,6 +101,7 @@ export class WorkflowTemplateApplyFormComponent implements OnChanges, OnDestroy this._cd.markForCheck(); })) .subscribe(res => { + this._toast.success('', 'Template applied with success'); // if the workflow name changed move to new workflow page this.result = res; @@ -136,9 +139,15 @@ export class WorkflowTemplateApplyFormComponent implements OnChanges, OnDestroy } clickDetach() { + this.loading = true; this._workflowTemplateService.deleteInstance(this.workflowTemplate, this.workflowTemplateInstance) + .pipe(finalize(() => { + this.loading = false; + this._cd.markForCheck(); + })) .subscribe(() => { this.clickClose(); + this._toast.success('', 'workflow updated'); }); } diff --git a/ui/src/app/shared/workflow-template/apply-form/workflow-template.apply-form.html b/ui/src/app/shared/workflow-template/apply-form/workflow-template.apply-form.html index c50c7c96fa..b1d290d00f 100644 --- a/ui/src/app/shared/workflow-template/apply-form/workflow-template.apply-form.html +++ b/ui/src/app/shared/workflow-template/apply-form/workflow-template.apply-form.html @@ -1,46 +1,50 @@ -
-
-
-
- - -
- - -
- - -
-
-
-
    -
  • {{s}}
  • -
-
-
-
-
- -
- - -
- - - -
-
-
-
-
+ + + + Workflow name* + + + + + + + + + + + + + + + + + + + + +
    +
  • {{s}}
  • +
+
+
+ + + + + + + + + + + + diff --git a/ui/src/app/shared/workflow-template/apply-form/workflow-template.apply-form.scss b/ui/src/app/shared/workflow-template/apply-form/workflow-template.apply-form.scss index e017ac18f0..bee6f89497 100644 --- a/ui/src/app/shared/workflow-template/apply-form/workflow-template.apply-form.scss +++ b/ui/src/app/shared/workflow-template/apply-form/workflow-template.apply-form.scss @@ -1 +1,9 @@ @import '../../../../common'; + +.floatRight { + float: right; + margin-left: 15px; +} +.floatLeft { + float: left; +} diff --git a/ui/src/app/shared/workflow-template/apply-modal/workflow-template.apply-modal.component.ts b/ui/src/app/shared/workflow-template/apply-modal/workflow-template.apply-modal.component.ts index acf3b75d5d..a716984e12 100644 --- a/ui/src/app/shared/workflow-template/apply-modal/workflow-template.apply-modal.component.ts +++ b/ui/src/app/shared/workflow-template/apply-modal/workflow-template.apply-modal.component.ts @@ -4,11 +4,9 @@ import { Component, EventEmitter, Input, - OnChanges, + OnChanges, OnInit, Output, - ViewChild } from '@angular/core'; -import { ModalTemplate, SuiActiveModal, SuiModalService, TemplateModalConfig } from '@richardlt/ng2-semantic-ui'; import { LoadOpts, Project } from 'app/model/project.model'; import { WorkflowTemplate, WorkflowTemplateInstance } from 'app/model/workflow-template.model'; import { Workflow } from 'app/model/workflow.model'; @@ -19,6 +17,8 @@ import { calculateWorkflowTemplateDiff } from 'app/shared/diff/diff'; import { Item } from 'app/shared/diff/list/diff.list.component'; import { forkJoin } from 'rxjs'; import { finalize } from 'rxjs/operators'; +import { NzModalRef } from 'ng-zorro-antd/modal'; +import { ToastService } from 'app/shared/toast/ToastService'; @Component({ selector: 'app-workflow-template-apply-modal', @@ -26,12 +26,7 @@ import { finalize } from 'rxjs/operators'; styleUrls: ['./workflow-template.apply-modal.scss'], changeDetection: ChangeDetectionStrategy.OnPush }) -export class WorkflowTemplateApplyModalComponent implements OnChanges { - - @ViewChild('workflowTemplateApplyModal') workflowTemplateApplyModal: ModalTemplate; - - modal: SuiActiveModal; - open: boolean; +export class WorkflowTemplateApplyModalComponent implements OnInit, OnChanges { // eslint-disable-next-line @angular-eslint/no-input-rename @Input('project') projectIn: Project; @@ -53,44 +48,19 @@ export class WorkflowTemplateApplyModalComponent implements OnChanges { workflowTemplateInstance: WorkflowTemplateInstance; constructor( - private _modalService: SuiModalService, + private _modal: NzModalRef, private _projectService: ProjectService, private _workflowService: WorkflowService, private _templateService: WorkflowTemplateService, - private _cd: ChangeDetectorRef + private _cd: ChangeDetectorRef, + private _toast: ToastService ) { } ngOnChanges() { - if (this.open) { - this.load(); - } + this.ngOnInit(); } - show() { - if (this.open) { - return; - } - - this.open = true; - - const config = new TemplateModalConfig(this.workflowTemplateApplyModal); - config.mustScroll = true; - this.modal = this._modalService.open(config); - this.modal.onApprove(() => { - this.diffVisible = false; - this.open = false; - this.close.emit(); - }); - this.modal.onDeny(() => { - this.diffVisible = false; - this.open = false; - this.close.emit(); - }); - - this.load(); - } - - load() { + ngOnInit() { if (this.workflowTemplateIn && this.workflowTemplateInstanceIn) { this.workflowTemplate = this.workflowTemplateIn; this.workflowTemplateInstance = this.workflowTemplateInstanceIn; @@ -101,6 +71,7 @@ export class WorkflowTemplateApplyModalComponent implements OnChanges { .subscribe(p => { this.project = p; this.loadAudits(); + this._cd.markForCheck(); }); return; } @@ -130,13 +101,16 @@ export class WorkflowTemplateApplyModalComponent implements OnChanges { this.loadAudits(); }); } + this._cd.markForCheck(); } onApply() { this._workflowService.getWorkflow(this.workflowTemplateInstance.project.key, this.workflowTemplateInstance.workflow_name).subscribe(w => { - this.workflowTemplateInstance = w.template_instance; + this.workflowTemplateInstance = Object.assign({}, w.template_instance); + this._cd.markForCheck(); }); + } loadAudits() { @@ -157,7 +131,7 @@ export class WorkflowTemplateApplyModalComponent implements OnChanges { } clickClose() { - this.modal.approve(true); + this._modal.triggerOk(); } toggleDiff() { diff --git a/ui/src/app/shared/workflow-template/apply-modal/workflow-template.apply-modal.html b/ui/src/app/shared/workflow-template/apply-modal/workflow-template.apply-modal.html index 7027af26bb..88d6fc39ca 100644 --- a/ui/src/app/shared/workflow-template/apply-modal/workflow-template.apply-modal.html +++ b/ui/src/app/shared/workflow-template/apply-modal/workflow-template.apply-modal.html @@ -1,56 +1,63 @@ - -
- {{'workflow_template_update_title' | translate}} -
-
-
-
-
-
- {{'workflow_template_update_info_line_1' | translate}} -
-
- {{'workflow_template_update_info_line_2' | translate}} -
-
-
-
-
{{ 'common_loading' | translate }}
-
-
-
-
-
-
- - -
-
- - -
-
-
{{'common_up_to_date' | translate}}
- - {{'common_not_up_to_date' | translate }} -
-
-
-
- {{m}} -
-
-
- -
- -
-
-
-
-
-
+ + +
+ + + + + + + + + + + Name + + + + + + + + Group + + + + + + + Up to date + + + {{'common_not_up_to_date' | translate }} + + + + + + + + {{m}} + + + + + + + + + + + + + +
diff --git a/ui/src/app/shared/workflow-template/apply-modal/workflow-template.apply-modal.scss b/ui/src/app/shared/workflow-template/apply-modal/workflow-template.apply-modal.scss index 4433caebaf..b1ec10a987 100644 --- a/ui/src/app/shared/workflow-template/apply-modal/workflow-template.apply-modal.scss +++ b/ui/src/app/shared/workflow-template/apply-modal/workflow-template.apply-modal.scss @@ -2,3 +2,22 @@ .loading { height: 100px; } + +.content { + max-height: 900px; + padding: 0 10px; + overflow-y: auto; +} + +nz-row { + margin: 15px 0; +} + +nz-tag { + font-size: 1.1em; + float:right; +} + +nz-tag.pointer { + cursor: pointer; +} diff --git a/ui/src/app/shared/workflow-template/bulk-modal/workflow-template.bulk-modal.component.ts b/ui/src/app/shared/workflow-template/bulk-modal/workflow-template.bulk-modal.component.ts index dcd42fb43c..a1d635c804 100644 --- a/ui/src/app/shared/workflow-template/bulk-modal/workflow-template.bulk-modal.component.ts +++ b/ui/src/app/shared/workflow-template/bulk-modal/workflow-template.bulk-modal.component.ts @@ -4,11 +4,9 @@ import { Component, EventEmitter, Input, - OnDestroy, - Output, - ViewChild + OnDestroy, OnInit, + Output } from '@angular/core'; -import { ModalTemplate, SuiActiveModal, SuiModalService, TemplateModalConfig } from '@richardlt/ng2-semantic-ui'; import { InstanceStatus, InstanceStatusUtil, @@ -26,6 +24,7 @@ import { AutoUnsubscribe } from 'app/shared/decorator/autoUnsubscribe'; import { Column, ColumnType, Select } from 'app/shared/table/data-table.component'; import { interval, Observable, Subscription } from 'rxjs'; import { finalize } from 'rxjs/operators'; +import { NzModalRef } from 'ng-zorro-antd/modal'; @Component({ selector: 'app-workflow-template-bulk-modal', @@ -34,11 +33,7 @@ import { finalize } from 'rxjs/operators'; changeDetection: ChangeDetectionStrategy.OnPush }) @AutoUnsubscribe() -export class WorkflowTemplateBulkModalComponent implements OnDestroy { - @ViewChild('workflowTemplateBulkModal') workflowTemplateBulkModal: ModalTemplate; - modal: SuiActiveModal; - open: boolean; - +export class WorkflowTemplateBulkModalComponent implements OnInit, OnDestroy { @Input() workflowTemplate: WorkflowTemplate; @Output() close = new EventEmitter(); @@ -58,7 +53,7 @@ export class WorkflowTemplateBulkModalComponent implements OnDestroy { validFields: boolean; constructor( - private _modalService: SuiModalService, + private _modal: NzModalRef, private _workflowTemplateService: WorkflowTemplateService, private _cd: ChangeDetectorRef ) { @@ -104,31 +99,12 @@ export class WorkflowTemplateBulkModalComponent implements OnDestroy { ngOnDestroy(): void {} // Should be set to use @AutoUnsubscribe with AOT - show() { - if (this.open) { - return; - } - - this.open = true; - - const config = new TemplateModalConfig(this.workflowTemplateBulkModal); - config.mustScroll = true; - - this.modal = this._modalService.open(config); - this.modal.onApprove(() => { - this.open = false; - this.close.emit(); - }); - this.modal.onDeny(() => { - this.open = false; - this.close.emit(); - }); - + ngOnInit(): void { this.clickGoToInstanceReset(); } clickClose() { - this.modal.approve(true); + this._modal.destroy(); } selectFunc: Select = (d: WorkflowTemplateInstance): boolean => { @@ -151,6 +127,7 @@ export class WorkflowTemplateBulkModalComponent implements OnDestroy { clickGoToInstance() { this.moveToStep(0); + this._cd.markForCheck(); } clickGoToInstanceReset() { @@ -163,8 +140,8 @@ export class WorkflowTemplateBulkModalComponent implements OnDestroy { .subscribe(is => this.instances = is.sort((a, b) => a.key() < b.key() ? -1 : 1)); this.selectedInstanceKeys = []; - this.clickGoToInstance(); + this._cd.markForCheck(); } clickGoToParam() { @@ -177,6 +154,7 @@ export class WorkflowTemplateBulkModalComponent implements OnDestroy { } } this.moveToStep(1); + this._cd.markForCheck(); } clickRunBulk() { @@ -210,9 +188,10 @@ export class WorkflowTemplateBulkModalComponent implements OnDestroy { accordionOpen(e: any, index: number) { if (this.accordionOpenedIndex === index) { this.accordionOpenedIndex = -1; // close all accordion items - return; + } else { + this.accordionOpenedIndex = index; } - this.accordionOpenedIndex = index; + this._cd.markForCheck(); } changeParam(instanceID: number, params: ParamData) { diff --git a/ui/src/app/shared/workflow-template/bulk-modal/workflow-template.bulk-modal.html b/ui/src/app/shared/workflow-template/bulk-modal/workflow-template.bulk-modal.html index c0926a41b6..e492909d04 100644 --- a/ui/src/app/shared/workflow-template/bulk-modal/workflow-template.bulk-modal.html +++ b/ui/src/app/shared/workflow-template/bulk-modal/workflow-template.bulk-modal.html @@ -1,101 +1,68 @@ - -
- {{'workflow_template_bulk_create_title' | translate}} -
-
-
-
-
-
-
-
{{ 'workflow_template_bulk_select_instances' | translate }}
-
-
-
-
-
{{ 'workflow_template_bulk_fill_parameters' | translate }}
-
-
-
-
-
{{ 'workflow_template_bulk_fill_run' | translate }}
-
-
-
-
-
-
-
- -
-
- -
-
-
-
-
-
-
- {{'workflow_template_bulk_info_line_ascode' | translate}} -
- - -
-
-
- -
- {{instance.request.workflow_name}} -
-
- - -
-
-
-
-
- -
-
- -
-
-
-
-
-
-
- -
-
- -
-
- -
-
-
-
-
-
+
+ + + + + + + + + + + + + + + + +
+ + + +
+
+ + + + + + + +
+ + +
+ +
+
+
+
+ +
+ + + + + +
+
+ + + + + + + + + + + +
diff --git a/ui/src/app/shared/workflow-template/bulk-modal/workflow-template.bulk-modal.scss b/ui/src/app/shared/workflow-template/bulk-modal/workflow-template.bulk-modal.scss index 35fd85c963..0201d56742 100644 --- a/ui/src/app/shared/workflow-template/bulk-modal/workflow-template.bulk-modal.scss +++ b/ui/src/app/shared/workflow-template/bulk-modal/workflow-template.bulk-modal.scss @@ -12,4 +12,7 @@ } } } + nz-row { + margin-bottom: 20px; + } } diff --git a/ui/src/app/shared/workflow-template/param-form/workflow-template.param-form.component.ts b/ui/src/app/shared/workflow-template/param-form/workflow-template.param-form.component.ts index 84a8437701..0636d2df5c 100644 --- a/ui/src/app/shared/workflow-template/param-form/workflow-template.param-form.component.ts +++ b/ui/src/app/shared/workflow-template/param-form/workflow-template.param-form.component.ts @@ -9,7 +9,6 @@ import { Output, ViewChild } from '@angular/core'; -import { FormControl } from '@angular/forms'; import { Project } from 'app/model/project.model'; import { ParamData, @@ -54,6 +53,8 @@ export class WorkflowTemplateParamFormComponent implements OnInit, OnDestroy { result: WorkflowTemplateApplyResult; codeMirrorConfig: any; themeSubscription: Subscription; + focusParam: string; + filteredRepo: any[] = []; constructor( private _repoManagerService: RepoManagerService, @@ -177,15 +178,19 @@ export class WorkflowTemplateParamFormComponent implements OnInit, OnDestroy { } } - filterRepo(options: Array, query: string): Array | false { - if (!options) { - return false; - } + focusRepo(key: string) { + this.focusParam = key; + this.filteredRepo = this.parameterValues[this.focusParam + '-repositories'].splice(0, 100); + this._cd.markForCheck(); + } + + filterRepo(query: string): void { if (!query || query.length < 3) { - return options.slice(0, 100); + return; } let queryLowerCase = query.toLowerCase(); - return options.filter(name => name.toLowerCase().indexOf(queryLowerCase) !== -1); + this.filteredRepo = this.parameterValues[this.focusParam + '-repositories'].filter(name => name.toLowerCase().indexOf(queryLowerCase) !== -1) + this._cd.markForCheck() } changeParam() { diff --git a/ui/src/app/shared/workflow-template/param-form/workflow-template.param-form.html b/ui/src/app/shared/workflow-template/param-form/workflow-template.param-form.html index c7d2d4e2a2..895a1fe151 100644 --- a/ui/src/app/shared/workflow-template/param-form/workflow-template.param-form.html +++ b/ui/src/app/shared/workflow-template/param-form/workflow-template.param-form.html @@ -1,67 +1,57 @@ -
-
-
-
- -
- -
-
- {{parameter.key}}* -
-
- - - - - - - - - - - - - - - - - -
-
-
-
-
- - - - -
-
- -
-
-
+ Resynchronize + + +
-
-
+ + diff --git a/ui/src/app/shared/workflow-template/param-form/workflow-template.param-form.scss b/ui/src/app/shared/workflow-template/param-form/workflow-template.param-form.scss index e017ac18f0..219ebf9ab2 100644 --- a/ui/src/app/shared/workflow-template/param-form/workflow-template.param-form.scss +++ b/ui/src/app/shared/workflow-template/param-form/workflow-template.param-form.scss @@ -1 +1,8 @@ @import '../../../../common'; + +nz-row { + margin: 20px 0; +} +nz-select { + width: 100%; +} diff --git a/ui/src/app/views/application/show/admin/repository/application.repo.html b/ui/src/app/views/application/show/admin/repository/application.repo.html index 9e092cb758..b94015da89 100644 --- a/ui/src/app/views/application/show/admin/repository/application.repo.html +++ b/ui/src/app/views/application/show/admin/repository/application.repo.html @@ -68,9 +68,7 @@ - - - +
diff --git a/ui/src/app/views/home/heatmap/toolbar/toolbar.component.html b/ui/src/app/views/home/heatmap/toolbar/toolbar.component.html index 6960105e45..ff5e0ca57f 100644 --- a/ui/src/app/views/home/heatmap/toolbar/toolbar.component.html +++ b/ui/src/app/views/home/heatmap/toolbar/toolbar.component.html @@ -1,26 +1,20 @@ -
-
-
- - - -
-
-
- - -
-
-
- -
-
-
\ No newline at end of file +
+ + + + + + + + + + + + + + + + + + +
diff --git a/ui/src/app/views/home/heatmap/toolbar/toolbar.component.scss b/ui/src/app/views/home/heatmap/toolbar/toolbar.component.scss index e69de29bb2..fb79f8eb60 100644 --- a/ui/src/app/views/home/heatmap/toolbar/toolbar.component.scss +++ b/ui/src/app/views/home/heatmap/toolbar/toolbar.component.scss @@ -0,0 +1,16 @@ +.nzSegment { + padding: 5px; + + nz-col { + padding: 5px; + + nz-select { + width: 100%; + } + } + + nz-col.alignRight { + text-align: right; + } +} + diff --git a/ui/src/app/views/settings/queue/queue.component.html b/ui/src/app/views/settings/queue/queue.component.html index 8ef1d8fd9a..a82eb54f64 100644 --- a/ui/src/app/views/settings/queue/queue.component.html +++ b/ui/src/app/views/settings/queue/queue.component.html @@ -5,37 +5,33 @@

({{nodeJobRu jobs)

-
-
-
-
- - - - -
-
-
- - - + + + + + + + + + + + - - - - - - + + + + + - - - + + + - - - + + + @@ -46,50 +42,48 @@

({{nodeJobRu {{bookedOrBuildingByList[index]}}

- - -
sincestatusbyrunproject/workflow + sincestatusbyrunproject/workflow nodetriggered_byrequirementstriggered_byrequirements
{{wNodeJobRun.queued | amTimeAgo}} - + {{parametersMaps[index]['cds.run.number']}} - + {{parametersMaps[index]['cds.project']}}/{{parametersMaps[index]['cds.workflow']}} - + {{parametersMaps[index]['cds.node']}} {{parametersMaps[index]['cds.triggered_by'] || - parametersMaps[index]['cds.triggered_by.username']}} + parametersMaps[index]['cds.triggered_by.username']}} + *ngIf="wNodeJobRun.job != null && wNodeJobRun.job.action != null && wNodeJobRun.job.action.requirements != null"> {{requirementsList[index]}} - +
-
+ + + +
-
{{ 'common_loading' | translate }}
+
diff --git a/ui/src/app/views/settings/queue/queue.component.scss b/ui/src/app/views/settings/queue/queue.component.scss index be062b97eb..1380a76e08 100644 --- a/ui/src/app/views/settings/queue/queue.component.scss +++ b/ui/src/app/views/settings/queue/queue.component.scss @@ -1 +1,9 @@ @import '../../../../common.scss'; + +nz-select { + width: 100%; +} + +.alignRight { + text-align: right; +} diff --git a/ui/src/app/views/settings/workflow-template/edit/workflow-template.edit.component.ts b/ui/src/app/views/settings/workflow-template/edit/workflow-template.edit.component.ts index 4ed8293178..d291ff846b 100644 --- a/ui/src/app/views/settings/workflow-template/edit/workflow-template.edit.component.ts +++ b/ui/src/app/views/settings/workflow-template/edit/workflow-template.edit.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import { AuditWorkflowTemplate } from 'app/model/audit.model'; @@ -26,6 +26,7 @@ import { WorkflowTemplateBulkModalComponent } from 'app/shared/workflow-template import { Subscription } from 'rxjs'; import { finalize } from 'rxjs/operators'; import { first } from 'rxjs/operators'; +import { NzModalService } from 'ng-zorro-antd/modal'; @Component({ selector: 'app-workflow-template-edit', @@ -35,11 +36,6 @@ import { first } from 'rxjs/operators'; @AutoUnsubscribe() export class WorkflowTemplateEditComponent implements OnInit, OnDestroy { - @ViewChild('templateApplyModal') - templateApplyModal: WorkflowTemplateApplyModalComponent; - @ViewChild('templateBulkModal') - templateBulkModal: WorkflowTemplateBulkModalComponent; - oldWorkflowTemplate: WorkflowTemplate; workflowTemplate: WorkflowTemplate; groups: Array; @@ -69,7 +65,8 @@ export class WorkflowTemplateEditComponent implements OnInit, OnDestroy { private _toast: ToastService, private _translate: TranslateService, private _router: Router, - private _cd: ChangeDetectorRef + private _cd: ChangeDetectorRef, + private _modalService: NzModalService ) {} ngOnDestroy(): void {} // Should be set to use @AutoUnsubscribe with AOT @@ -358,12 +355,33 @@ export class WorkflowTemplateEditComponent implements OnInit, OnDestroy { } clickCreateBulk() { - this.templateBulkModal.show(); + this._modalService.create({ + nzTitle: 'Workflow template apply bulk request', + nzWidth: '1100px', + nzContent: WorkflowTemplateBulkModalComponent, + nzComponentParams: { + workflowTemplate: this.workflowTemplate + } + }); } clickUpdate(i: WorkflowTemplateInstance) { this.selectedWorkflowTemplateInstance = i; - this.templateApplyModal.show(); + this._cd.detectChanges(); + this._modalService.create({ + nzTitle: 'Update workflow from template', + nzWidth: '1100px', + nzContent: WorkflowTemplateApplyModalComponent, + nzComponentParams: { + workflowTemplateIn: this.workflowTemplate, + workflowTemplateInstanceIn: this.selectedWorkflowTemplateInstance + }, + nzFooter: null, + nzOnOk: () => { + // trigger page refresh + this.selectTab(this.selectedTab); + } + }); } modalClose() { diff --git a/ui/src/app/views/settings/workflow-template/edit/workflow-template.edit.html b/ui/src/app/views/settings/workflow-template/edit/workflow-template.edit.html index 9c5090a77b..cd39c50208 100644 --- a/ui/src/app/views/settings/workflow-template/edit/workflow-template.edit.html +++ b/ui/src/app/views/settings/workflow-template/edit/workflow-template.edit.html @@ -54,7 +54,3 @@

{{ "common_last_modified" | translate }}

- - - diff --git a/ui/src/app/views/settings/workflow-template/editor/workflow-template.editor.html b/ui/src/app/views/settings/workflow-template/editor/workflow-template.editor.html index 07954361d2..67cb1e2d3a 100644 --- a/ui/src/app/views/settings/workflow-template/editor/workflow-template.editor.html +++ b/ui/src/app/views/settings/workflow-template/editor/workflow-template.editor.html @@ -1,6 +1,6 @@ - -
{{this.error.message}}
+ diff --git a/ui/src/app/views/settings/workflow-template/editor/workflow-template.editor.scss b/ui/src/app/views/settings/workflow-template/editor/workflow-template.editor.scss index 9ce6e2111b..5a0f7def07 100644 --- a/ui/src/app/views/settings/workflow-template/editor/workflow-template.editor.scss +++ b/ui/src/app/views/settings/workflow-template/editor/workflow-template.editor.scss @@ -1,7 +1,7 @@ @import '../../../../../common'; .codeButton { position: absolute; - top: 2px; - right: -1px; + top: 4px; + right: 4px; z-index: 10; // to be over code mirror editor } diff --git a/ui/src/app/views/settings/workflow-template/form/workflow-template.form.html b/ui/src/app/views/settings/workflow-template/form/workflow-template.form.html index 1ee55be5a9..e1e3aa8787 100644 --- a/ui/src/app/views/settings/workflow-template/form/workflow-template.form.html +++ b/ui/src/app/views/settings/workflow-template/form/workflow-template.form.html @@ -1,175 +1,232 @@
-
-
-
-
- {{'common_help_no_group' | translate}} -
-
-
- - -
-
- - -
-
- + + + + + + + Name* + + + + + + + + Slug* + + + + + + + + Group* + - -
-
- - -
-
-
- - -
-
-
-
- -
-
-
- -
-
- - - - - -
-
-
- - -
-
- -
-
-
- -
-
- - - - -
-
-
- - -
-
- -
-
- + + + + + + + Version + + + + + + + + + + Description + + + + + + + + +

Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Workflow

+
+ + + [editable]="workflowTemplate.editable" [value]="workflowValue" + (changeValue)="workflowValueChange($event)" [error]="workflowError"> -
-
- -
+ + + + +

Pipelines

+
+ + + [editable]="workflowTemplate.editable" [removable]="true" + [value]="pipelineValues[k]" (changeValue)="pipelineValueChange(k, $event)" + (remove)="clickRemovePipeline(k)" [error]="pipelineErrors[k]"> -
- -
-
- -
+ + + + +

Applications

+
+ + + [editable]="workflowTemplate.editable" [removable]="true" + [value]="applicationValues[k]" (changeValue)="applicationValueChange(k, $event)" + (remove)="clickRemoveApplication(k)" [error]="applicationErrors[k]"> -
- -
-
- -
+ + + + +

Environments

+
+ + + [editable]="workflowTemplate.editable" [removable]="true" + [value]="environmentValues[k]" (changeValue)="environmentValueChange(k, $event)" + (remove)="clickRemoveEnvironment(k)" [error]="environmentErrors[k]"> -
- -
-
- -
-
-
-
- - -
-
-
+ + + + + + + + + + + + + +
-
{{ 'common_loading' | translate }}
+
diff --git a/ui/src/app/views/settings/workflow-template/form/workflow-template.form.scss b/ui/src/app/views/settings/workflow-template/form/workflow-template.form.scss index e717bb4dbd..8703f768dc 100644 --- a/ui/src/app/views/settings/workflow-template/form/workflow-template.form.scss +++ b/ui/src/app/views/settings/workflow-template/form/workflow-template.form.scss @@ -1,4 +1,7 @@ @import '../../../../../common'; +nz-form-item { + padding: 0 10px; +} .codeContainer { position: relative; } @@ -7,12 +10,17 @@ nz-select { width: 100%; } -h2 { - text-align: center; +h3 { + margin-bottom: 10px; +} + +.subItem { + margin-top: 10px; } -.centeredField { - display: flex; - flex-direction: row; - align-items: center; +button { + margin-left: 20px; +} +button.floatRight { + float: right; } diff --git a/ui/src/app/views/workflow/add/workflow.add.component.ts b/ui/src/app/views/workflow/add/workflow.add.component.ts index 17635ada75..d5c2da69a5 100644 --- a/ui/src/app/views/workflow/add/workflow.add.component.ts +++ b/ui/src/app/views/workflow/add/workflow.add.component.ts @@ -51,6 +51,7 @@ workflow: pipeline: test`; repos: Array; + filteredRepos: Array selectedRepoManager: string; selectedRepo: Repository; selectedStrategy: VCSStrategy; @@ -60,6 +61,7 @@ workflow: asCodeResult: PerformAsCodeResponse; projectSubscription: Subscription; templates: Array; + filteredTemplate: Array; selectedTemplatePath: string; selectedTemplate: WorkflowTemplate; descriptionRows: number; @@ -135,6 +137,9 @@ workflow: } goToNextStep(stepNum: number): void { + if (stepNum == 1 && (!this.workflow.name || this.duplicateWorkflowName)) { + return; + } if (Array.isArray(this.project.workflow_names) && this.project.workflow_names.find((w) => w.name === this.workflow.name)) { this.duplicateWorkflowName = true; return; @@ -169,33 +174,30 @@ workflow: this._cd.markForCheck(); })).subscribe(rs => { this.repos = rs; + this.filteredRepos = this.repos.slice(0, 100); }); } - filterRepo(options: Array, query: string): Array | false { - if (!options) { - return false; - } + filterRepo(query: string): void{ if (!query || query.length < 3) { - return options.slice(0, 100); + return; } - let lowerQuery = query.toLowerCase(); - return options.filter(repo => repo.fullname.toLowerCase().indexOf(lowerQuery) !== -1); + this.filteredRepos = this.repos.filter(repo => repo.fullname.toLowerCase().indexOf(query.toLowerCase()) !== -1); + this._cd.markForCheck(); } - filterTemplate(options: Array, query: string): Array | false { - if (!options) { - return false; - } + filterTemplate(query: string): void { if (!query) { - return options.sort(); - } + this.filteredTemplate = Object.assign([], this.templates); - let lowerQuery = query.toLowerCase(); - return options.filter(wt => wt.name.toLowerCase().indexOf(lowerQuery) !== -1 || - wt.slug.toLowerCase().indexOf(lowerQuery) !== -1 || - wt.group.name.toLowerCase().indexOf(lowerQuery) !== -1 || - `${wt.group.name}/${wt.slug}`.toLowerCase().indexOf(lowerQuery) !== -1).sort(); + } else { + let lowerQuery = query.toLowerCase(); + this.filteredTemplate = this.templates.filter(wt => wt.name.toLowerCase().indexOf(lowerQuery) !== -1 || + wt.slug.toLowerCase().indexOf(lowerQuery) !== -1 || + wt.group.name.toLowerCase().indexOf(lowerQuery) !== -1 || + `${wt.group.name}/${wt.slug}`.toLowerCase().indexOf(lowerQuery) !== -1).sort() + } + this._cd.markForCheck(); } createWorkflowFromRepo() { @@ -283,6 +285,7 @@ workflow: fetchTemplates() { this._workflowTemplateService.getAll().subscribe(ts => { this.templates = ts; + this.filteredTemplate = Object.assign([], this.templates); this._cd.markForCheck(); }); } diff --git a/ui/src/app/views/workflow/add/workflow.add.html b/ui/src/app/views/workflow/add/workflow.add.html index ae2e434cb3..fc99bfeb37 100644 --- a/ui/src/app/views/workflow/add/workflow.add.html +++ b/ui/src/app/views/workflow/add/workflow.add.html @@ -2,327 +2,296 @@
-

{{ 'workflow_create' | translate }}

-
-
-
-
-
- -
-
{{'common_workflow' | translate}}
-
{{'workflow_wizard_description' | translate}}
-
-
-
- -
-
{{'common_pipeline' | translate}}
-
{{'pipeline_wizard_description' | translate}}
-
-
-
-
-
- -
-
-
-
-
-
- - - - -
+

Create a workflow

+ + + + + + + + + + + + +
+ + + + + + + + + + + + + + Workflow name + + + + + + + + Workflow description + + + + + + Workflow icon (Optional) + +
+ icon
-
-
-
-
-
- - -

{{'workflow_name_error' | - translate}}

-

{{'workflow_name_error_duplicate' - | - translate}}

-
-
- - -
-
- -
-
- icon -
- - -
-
-
+ + + + + + + + + + -
- - -
-
-
-
-
- - -
-
-
-
-
-
- {{'common_or' | translate}} -
-
-
-
-
- - -
-
-
-
- - -
-
-
-
- -
-
- - - - - -
-
- - - -
-
-
-
- -
- {{'workflow_wizard_select_repo_loading' | translate - }} -
- - - - - - -
-
- -
-
-
- - -
-
- -
-
- -
- {{ 'workflow_wizard_repo_analyse' | translate }} -
+ + + + + + + + + + +
+ + + + + + + + + + + -
- {{pollingResponse.error_details.message}} - {{pollingResponse.error_details.from}}
- - {{ 'wizard_repo_files' | translate}} -
    -
  • - {{f}} -
  • -
+
+
+
+ + + + + + + + {{ 'workflow_wizard_select_repo_man' | translate}} + + + + + + + + + + + Or add a repository manager + + + + + + + + + + + + + + + + + + + + + + -
- -
-
-
- -
    -
  • {{s}}
  • -
-
- -
-
-
-
- -
-
-
- - - - - -
-
-
-
- - -
-
- - -
-
-
- - - -
- - -
-
-
-
-
-
-
- + + + + + + + + + + + + + + + + + + + {{ 'wizard_repo_files' | translate}} +
    +
  • + {{f}} +
  • +
+
+ + + +
+ + + + +
    +
  • {{s}}
  • +
+
+ + + +
+
+ + - - - - -
+ + + + + + {{ 'workflow_wizard_select_template' | translate}} + + + + + + + + + + + + Name + + + + + + + Group + + + + + + + + + Description + + + + + + + + + + + + + + + + +
-
-
-
+ + + + + + + +
diff --git a/ui/src/app/views/workflow/add/workflow.add.scss b/ui/src/app/views/workflow/add/workflow.add.scss index 209216f98c..3870a0bc1b 100644 --- a/ui/src/app/views/workflow/add/workflow.add.scss +++ b/ui/src/app/views/workflow/add/workflow.add.scss @@ -6,23 +6,38 @@ align-content: stretch; height: 100%; + .nzSegment { + padding: 10px; + } + h2 { text-align: center; } - .red { - color: #9F3A38; + nz-row { + margin-top: 10px; } - .ui.active.inline.loader { - margin-right: 5px; + nz-button-group { + width: 100%; + text-align: center; + + button { + width: 300px; + } } - .mt5 { - margin-top: 5px; + nz-form-item.alignCenter { + text-align: center; } - .resync { - margin-top: 1.6em; + nz-form-item.alignRight { + text-align: right; + button { + margin-left: 10px; + } + } + hr { + margin-bottom: 20px; } } diff --git a/ui/src/app/views/workflow/workflow.component.ts b/ui/src/app/views/workflow/workflow.component.ts index 5ea4250f50..a59dac0270 100644 --- a/ui/src/app/views/workflow/workflow.component.ts +++ b/ui/src/app/views/workflow/workflow.component.ts @@ -4,7 +4,6 @@ import { Component, OnDestroy, OnInit, - ViewChild, } from '@angular/core'; import { ActivatedRoute, NavigationStart, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; @@ -16,7 +15,6 @@ import { WorkflowCoreService } from 'app/service/workflow/workflow.core.service' import { AsCodeSaveModalComponent } from 'app/shared/ascode/save-modal/ascode.save-modal.component'; import { AutoUnsubscribe } from 'app/shared/decorator/autoUnsubscribe'; import { ToastService } from 'app/shared/toast/ToastService'; -import { WorkflowTemplateApplyModalComponent } from 'app/shared/workflow-template/apply-modal/workflow-template.apply-modal.component'; import { AddFeatureResult, FeaturePayload } from 'app/store/feature.action'; import { ProjectState, ProjectStateModel } from 'app/store/project.state'; import { @@ -30,6 +28,9 @@ import { WorkflowState } from 'app/store/workflow.state'; import { Observable, Subscription } from 'rxjs'; import { finalize } from 'rxjs/operators'; import { NzModalService } from 'ng-zorro-antd/modal'; +import { + WorkflowTemplateApplyModalComponent +} from 'app/shared/workflow-template/apply-modal/workflow-template.apply-modal.component'; @Component({ @@ -40,8 +41,6 @@ import { NzModalService } from 'ng-zorro-antd/modal'; }) @AutoUnsubscribe() export class WorkflowComponent implements OnInit, OnDestroy { - @ViewChild('templateApplyModal') - templateApplyModal: WorkflowTemplateApplyModalComponent; project: Project; @@ -211,9 +210,16 @@ export class WorkflowComponent implements OnInit, OnDestroy { } showTemplateFrom(): void { - if (this.templateApplyModal) { - this.templateApplyModal.show(); - } + this._modalService.create({ + nzTitle: 'Update workflow from template', + nzWidth: '1100px', + nzContent: WorkflowTemplateApplyModalComponent, + nzComponentParams: { + projectIn: this.project, + workflowIn: this.workflow + }, + nzFooter: null + }); } initTemplateFromWorkflow(): void { diff --git a/ui/src/app/views/workflow/workflow.html b/ui/src/app/views/workflow/workflow.html index 4d5f10a9ea..79c63d1943 100644 --- a/ui/src/app/views/workflow/workflow.html +++ b/ui/src/app/views/workflow/workflow.html @@ -79,10 +79,6 @@ - - - -
diff --git a/ui/src/assets/i18n/en.json b/ui/src/assets/i18n/en.json index ff20d7f9bc..a61ef701e2 100644 --- a/ui/src/assets/i18n/en.json +++ b/ui/src/assets/i18n/en.json @@ -80,14 +80,10 @@ "btn_cancel": "Cancel", "btn_close": "Close", "btn_create": "Create", - "btn_create_workflow": "Create workflow", "btn_delete": "Delete", "btn_goto_workflow": "See workflow", - "btn_inspect_repo": "Inspect repository", "btn_logs": "Display logs", - "btn_resync_repo": "Resynchronize", "btn_resync_ascode_event": "Resynchronize repository modifications", - "btn_run": "Run pipeline", "btn_save": "Save", "btn_save_application": "Save application", "btn_save_pipeline": "Save pipeline", @@ -96,7 +92,6 @@ "btn_next": "Next", "btn_add": "Add", "btn_back": "Back", - "btn_filter": "Filter", "cdsctl_choice_os": "Choose your OS", "cdsctl_choice_arch": "Choose your architecture", "cdsctl_choice_options": "Choose your options", @@ -143,7 +138,6 @@ "common_diff_to_much_item": "To much items to show", "common_settings": "Settings", "common_admin": "Admin", - "common_optional": "Optional", "common_all": "All", "common_read": "Read", "common_write": "Write", @@ -166,7 +160,7 @@ "common_loading_environments": "Loading environments", "common_see": "see", "common_name": "Name", - "common_slug": "Slug", + "common_group": "Group", "common_value": "Value", "common_no": "No", @@ -191,7 +185,6 @@ "common_workflow_title": "Workflow: ", "common_yes": "Yes", "common_click_here": "Click here", - "common_stop": "Stop", "common_deprecated": "Deprecated", "common_no_pipeline": "There is no pipeline linked", "common_no_application": "There is no application linked", @@ -201,8 +194,6 @@ "common_copy_clipboard": "Copy to clipboad", "common_select": "Select", "common_create": "Create", - "common_create_repo": "From repository", - "common_create_template": "From template", "common_import": "Import", "common_show_all": "Show all", "common_hide_all": "Hide all", @@ -211,12 +202,9 @@ "common_done": "Done", "common_error": "Error", "common_favorites_updated": "Bookmarks updated with success", - "common_favorites_delete": "Delete from bookmarks", "common_no_favorites": "You didn't add projects or workflows in your bookmarks yet.", "common_favorites_all": "All bookmarks", - "common_file_too_large": "Your file is too large (max 100Ko)", "common_no_data": "No data found", - "common_required": "Required", "common_created_by": "Created By", "common_last_modified": "Last modified", "common_up_to_date": "Up to date", @@ -226,7 +214,6 @@ "common_split": "Split", "common_unified": "Unified", "common_rollback": "Rollback", - "common_help_no_group": "No group can be found, you will not be able to save current resource.", "common_find_help": "Maybe you could find some help", "common_here": "here", "common_deleted": "Deleted with success", @@ -273,9 +260,6 @@ "favorite_title": "Bookmarks management", "favorite_add": "Add a bookmark", "favorite_add_btn": "Add to my bookmarks", - "favorite_select_type": "Select a favorite type", - "favorite_project_select": "Select a project", - "favorite_workflow_select": "Select a workflow", "graph_vulnerability_title": "Vulnerabilities", "graph_vulnerability_x": "N° workflow", "graph_vulnerability_y": "Total", @@ -376,7 +360,6 @@ "pipeline_run_test_skipped_title": " test skipped", "pipeline_stage_moved": "Stage moved", "pipeline_stage_no": "The pipeline has no stage", - "pipeline_wizard_description": "Create or select your first pipeline for your workflow", "project_list": "All projects", "project_advanced_title": "Project administration", "project_added": "Project has just been created", @@ -568,24 +551,18 @@ "workflow_added": "Workflow added", "workflow_run_scheduling": "Crafting workflow", "workflow_run_conditions_hook": "Pay attention, you can not use run conditions with variable as {{.cds.build...}} because conditions are checked before a run is created.", - "workflow_icon": "Workflow icon", - "workflow_create": "Create a workflow", "workflow_deleted": "Workflow deleted", - "workflow_description": "Workflow description", "workflow_from_repository": "Workflow imported from {{repo}}", "workflow_from_repository_btn": "Import workflow from repository", "workflow_from_repository_pending": "Accept the following pullrequest to use workflow as-code", "workflow_from_template": "Workflow generated from template", "workflow_from_template_btn": "Generate workflow from template", "workflow_name": "Workflow name", - "workflow_name_error": "Workflow name must follow this pattern ^[a-zA-Z0-9._-]{1,}$", - "workflow_name_error_duplicate": "This workflow name already exists in your project", "workflow_preview_mode": "Your workflow is in preview mode", "workflow_node_context_pipeline_parameter": "Pipeline parameters", "workflow_node_context_payload": "Default payload", "workflow_node_context_payload_read_only": "Current Payload (read-only)", "workflow_run_node_job_queued": "Queued {{time}} ago", - "workflow_wizard_description": "Choose your workflow options", "workflow_edit_as_code": "Edit as code", "workflow_hook_log_title": "Hook's log", "workflow_hook_log_workflow_run": "Workflow run", @@ -615,9 +592,6 @@ "workflow_event_explanation": "_Here you can configure one or more integrations of type `Event`. This allows you to send all technical data in a backend to make it accessible by third-party applications such as Kafka or ElasticSearch. See the [Event Notifications] (https://ovh.github.io/cds/docs/concepts/workflow/notifications/) documentation for more information._", "workflow_wizard_select_repo_man": "Select a repository manager", "workflow_wizard_select_repo": "Select a repository", - "workflow_wizard_select_repo_loading": "Loading repositories...", - "workflow_wizard_repo_analyse": "Analyzing repository...", - "workflow_wizard_select_repo_man_add": "Or add a repository manager", "workflow_wizard_select_template": "Select a workflow template", "wizard_repo_files": "Files found: ", "workflow_template_created": "Workflow template created", @@ -626,7 +600,6 @@ "workflow_template": "Workflow template", "workflow_templates": "Workflow templates", "workflow_template_help_line_2": "A workflow template allows you to quickly create then update a workflow and its components.", - "workflow_template_update_title": "Update workflow from template", "workflow_template_update_info_btn": "Show differences with new version", "workflow_template_update_info_line_1": "Apply will override your existing workflow and components according to the latest version of selected template.", "workflow_template_update_info_line_2": "Apply will create a pull request to the repository that hold your workflow with the latest version of selected template.", @@ -637,13 +610,7 @@ "workflow_template_change_message": "Add an optional description of your changes...", "workflow_template_no_usage": "This template isn't used on one of your workflow", "workflow_template_not_imported_yet": "Not imported yet", - "workflow_template_bulk_create_title": "Workflow template apply bulk request", "workflow_template_btn_create_bulk": "Update bulk", - "workflow_template_btn_run_bulk": "Run bulk update", - "workflow_template_bulk_select_instances": "Select instances", - "workflow_template_bulk_fill_parameters": "Fill parameters", - "workflow_template_bulk_fill_run": "Run", - "workflow_template_bulk_info_line_ascode": "Some selected instances refer to ascode workflow. A pull request will be made on each workflow's repository. Please fill the branch and commit message to proceed.", "workflow_template_detach": "Detach", "workflow_template_apply_detach": "Detach the generated workflow from the template.", "workflow_template_help_add_from": "Current workflow template was initialized with data from \"{{workflowName}}\" workflow in \"{{projectKey}}\" project. The data will not be stored until you save the template.",