From 9224707de05124803f4e11d2b80689f5c9f1ff86 Mon Sep 17 00:00:00 2001 From: alicia pritchett Date: Tue, 28 Sep 2021 14:20:33 -0400 Subject: [PATCH 01/14] WIP Admin flag --- .../workflow-spec-category-dialog.component.ts | 11 +++++++++++ src/app/_interfaces/dialog-data.ts | 1 + .../workflow-spec-list.component.ts | 6 +++--- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/app/_dialogs/workflow-spec-category-dialog/workflow-spec-category-dialog.component.ts b/src/app/_dialogs/workflow-spec-category-dialog/workflow-spec-category-dialog.component.ts index 7b04c91..7b98244 100644 --- a/src/app/_dialogs/workflow-spec-category-dialog/workflow-spec-category-dialog.component.ts +++ b/src/app/_dialogs/workflow-spec-category-dialog/workflow-spec-category-dialog.component.ts @@ -50,6 +50,16 @@ export class WorkflowSpecCategoryDialogComponent { required: true, }, }, + { + key: 'admin', + type: 'checkbox', + defaultValue: this.data.admin ? this.data.admin : false, + templateOptions: { + label: 'Admin Category', + description: 'Should this category only be shown to Admins?', + indeterminate: false, + } + } ]; constructor( @@ -63,6 +73,7 @@ export class WorkflowSpecCategoryDialogComponent { } onSubmit() { + console.log('data is ', this.model); this.model.name = toSnakeCase(this.model.name); this.dialogRef.close(this.model); } diff --git a/src/app/_interfaces/dialog-data.ts b/src/app/_interfaces/dialog-data.ts index 9469f63..d5aed86 100644 --- a/src/app/_interfaces/dialog-data.ts +++ b/src/app/_interfaces/dialog-data.ts @@ -34,6 +34,7 @@ export interface WorkflowSpecCategoryDialogData { name: string; display_name: string; display_order?: number; + admin: boolean; } export interface DeleteFileDialogData { diff --git a/src/app/workflow-spec-list/workflow-spec-list.component.ts b/src/app/workflow-spec-list/workflow-spec-list.component.ts index 9697a2c..d654534 100644 --- a/src/app/workflow-spec-list/workflow-spec-list.component.ts +++ b/src/app/workflow-spec-list/workflow-spec-list.component.ts @@ -37,6 +37,7 @@ export interface WorkflowSpecCategoryGroup { display_name: string; workflow_specs?: WorkflowSpec[]; display_order: number; + admin: boolean, } @Component({ @@ -165,9 +166,9 @@ export class WorkflowSpecListComponent implements OnInit { name: this.selectedCat ? this.selectedCat.name || this.selectedCat.id : '', display_name: this.selectedCat ? this.selectedCat.display_name : '', display_order: this.selectedCat ? this.selectedCat.display_order : null, + admin: this.selectedCat ? this.selectedCat.admin : null, }, }); - dialogRef.afterClosed().subscribe((data: WorkflowSpecCategoryDialogData) => { if (data && isNumberDefined(data.id) && data.name && data.display_name) { this._upsertWorkflowSpecCategory(data); @@ -303,11 +304,9 @@ export class WorkflowSpecListComponent implements OnInit { display_name: data.display_name, description: data.description, category_id: data.category_id, - // display_order: data.display_order, standalone: data.standalone, library: data.library, }; - console.log('DO: ', data.display_order); if (isNew) { this._addWorkflowSpec(newSpec); @@ -329,6 +328,7 @@ export class WorkflowSpecListComponent implements OnInit { name: data.name, display_name: data.display_name, display_order: data.display_order, + admin: data.admin, }; if (isNumberDefined(catId)) { From 35785caa2e59e14ffede8bff5605365fcc3a3198 Mon Sep 17 00:00:00 2001 From: alicia pritchett Date: Wed, 29 Sep 2021 11:04:42 -0400 Subject: [PATCH 02/14] remove 'if' from cat_change breaks adding/removing categories --- src/app/workflow-spec-list/workflow-spec-list.component.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/app/workflow-spec-list/workflow-spec-list.component.ts b/src/app/workflow-spec-list/workflow-spec-list.component.ts index 9697a2c..23ea5c7 100644 --- a/src/app/workflow-spec-list/workflow-spec-list.component.ts +++ b/src/app/workflow-spec-list/workflow-spec-list.component.ts @@ -220,14 +220,12 @@ export class WorkflowSpecListComponent implements OnInit { editCategoryDisplayOrder(catId: number, direction: string) { this.api.reorderWorkflowCategory(catId, direction).subscribe(cat_change => { - if(cat_change) { this.workflowSpecsByCategory = this.workflowSpecsByCategory.map(cat => { let new_cat = cat_change.find(i2 => i2.id === cat.id); cat.display_order = new_cat.display_order; return cat; }); this.workflowSpecsByCategory.sort((x,y) => x.display_order - y.display_order); - } }); } From 76c55e0a916f6ff0bcaabe6e1f5aba80df562c72 Mon Sep 17 00:00:00 2001 From: alicia pritchett Date: Wed, 29 Sep 2021 11:15:00 -0400 Subject: [PATCH 03/14] ensure() array.find Makes sure we find an instance of the WFS id we want, when we are looking to add/delete it. (This gets us past karma tests sometimes bailing out) --- .../workflow-spec-list.component.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/app/workflow-spec-list/workflow-spec-list.component.ts b/src/app/workflow-spec-list/workflow-spec-list.component.ts index 23ea5c7..45cf082 100644 --- a/src/app/workflow-spec-list/workflow-spec-list.component.ts +++ b/src/app/workflow-spec-list/workflow-spec-list.component.ts @@ -221,7 +221,7 @@ export class WorkflowSpecListComponent implements OnInit { editCategoryDisplayOrder(catId: number, direction: string) { this.api.reorderWorkflowCategory(catId, direction).subscribe(cat_change => { this.workflowSpecsByCategory = this.workflowSpecsByCategory.map(cat => { - let new_cat = cat_change.find(i2 => i2.id === cat.id); + let new_cat = this.ensure(cat_change.find(i2 => i2.id === cat.id)); cat.display_order = new_cat.display_order; return cat; }); @@ -229,6 +229,15 @@ export class WorkflowSpecListComponent implements OnInit { }); } + // ensure that in array.find, we find what we are expecting. (Ensures TS type safety) + ensure(argument: T | undefined | null, message: string = 'Spec not found!'): T { + if (argument === undefined || argument === null) { + throw new TypeError(message); + } + return argument; + } + + editSpecDisplayOrder(cat: WorkflowSpecCategoryGroup, specId: string, direction: string) { this.api.reorderWorkflowSpecification(specId, direction).subscribe(wfs => { cat.workflow_specs= wfs; From ff60442e3afd1cdc293c661b3a14bc4d08215b9a Mon Sep 17 00:00:00 2001 From: alicia pritchett Date: Wed, 29 Sep 2021 12:22:35 -0400 Subject: [PATCH 04/14] Fixes category add/delete issue needed to clear out the categories object before re-filling it after an api call --- src/app/workflow-spec-list/workflow-spec-list.component.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/app/workflow-spec-list/workflow-spec-list.component.ts b/src/app/workflow-spec-list/workflow-spec-list.component.ts index 45cf082..6bf6552 100644 --- a/src/app/workflow-spec-list/workflow-spec-list.component.ts +++ b/src/app/workflow-spec-list/workflow-spec-list.component.ts @@ -247,6 +247,8 @@ export class WorkflowSpecListComponent implements OnInit { private _loadWorkflowSpecCategories(selectedSpecName: string = null) { this.api.getWorkflowSpecCategoryList().subscribe(cats => { this.categories = cats; + // Clear out this object before re-filling it + this.workflowSpecsByCategory = []; this.categories.forEach((cat, i) => { this.workflowSpecsByCategory.push(cat); From 2f6ea0dddadfb4654afd882db40da34b63e2750d Mon Sep 17 00:00:00 2001 From: alicia pritchett Date: Wed, 29 Sep 2021 16:27:22 -0400 Subject: [PATCH 05/14] Make admin cat text color orange --- .../workflow-spec-list.component.html | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/app/workflow-spec-list/workflow-spec-list.component.html b/src/app/workflow-spec-list/workflow-spec-list.component.html index 5aef44b..9a4276b 100644 --- a/src/app/workflow-spec-list/workflow-spec-list.component.html +++ b/src/app/workflow-spec-list/workflow-spec-list.component.html @@ -68,9 +68,14 @@ {{cat.display_name}} - - ({{cat.name}}) - + +
+ ({{cat.name}}) +
+
+ ({{cat.name}}) +
+
From 3abb00afe1feda96fc1ed412254514369da95085 Mon Sep 17 00:00:00 2001 From: alicia pritchett Date: Wed, 29 Sep 2021 16:54:54 -0400 Subject: [PATCH 06/14] update a test --- src/app/workflow-spec-list/workflow-spec-list.component.spec.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/app/workflow-spec-list/workflow-spec-list.component.spec.ts b/src/app/workflow-spec-list/workflow-spec-list.component.spec.ts index d5b096c..cde5f86 100644 --- a/src/app/workflow-spec-list/workflow-spec-list.component.spec.ts +++ b/src/app/workflow-spec-list/workflow-spec-list.component.spec.ts @@ -263,6 +263,7 @@ describe('WorkflowSpecListComponent', () => { id: null, name: '', display_name: '', + admin: null, }; const _upsertWorkflowSpecCategorySpy = spyOn((component as any), '_upsertWorkflowSpecCategory') From f4168e82545e5edbf31ceebba7275bf52c9cef72 Mon Sep 17 00:00:00 2001 From: alicia pritchett Date: Thu, 30 Sep 2021 10:28:13 -0400 Subject: [PATCH 07/14] Bump libs -> 567 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ec34fdd..c641079 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "ngx-markdown": "^12.0.1", "protractor": "^7.0.0", "rxjs": "^6.5.3", - "sartography-workflow-lib": "^0.0.563", + "sartography-workflow-lib": "0.0.567", "tslib": "^2.3.0", "uuid": "^8.3.2", "zone.js": "^0.11.4" From 12ad20511afce87629fd050a8b05db9c380922b0 Mon Sep 17 00:00:00 2001 From: alicia pritchett Date: Mon, 4 Oct 2021 10:00:39 -0400 Subject: [PATCH 08/14] Hide ID field from view (for specs and categories) --- .../workflow-spec-category-dialog.component.ts | 1 + .../workflow-spec-dialog/workflow-spec-dialog.component.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/app/_dialogs/workflow-spec-category-dialog/workflow-spec-category-dialog.component.ts b/src/app/_dialogs/workflow-spec-category-dialog/workflow-spec-category-dialog.component.ts index 7b98244..3ac7dd3 100644 --- a/src/app/_dialogs/workflow-spec-category-dialog/workflow-spec-category-dialog.component.ts +++ b/src/app/_dialogs/workflow-spec-category-dialog/workflow-spec-category-dialog.component.ts @@ -25,6 +25,7 @@ export class WorkflowSpecCategoryDialogComponent { placeholder: 'ID of workflow spec category', required: true, }, + hideExpression: true, }, { key: 'name', diff --git a/src/app/_dialogs/workflow-spec-dialog/workflow-spec-dialog.component.ts b/src/app/_dialogs/workflow-spec-dialog/workflow-spec-dialog.component.ts index b6ed230..1cc2e59 100644 --- a/src/app/_dialogs/workflow-spec-dialog/workflow-spec-dialog.component.ts +++ b/src/app/_dialogs/workflow-spec-dialog/workflow-spec-dialog.component.ts @@ -41,6 +41,7 @@ export class WorkflowSpecDialogComponent { required: true, disabled: true, }, + hideExpression: true, }, { key: 'name', From 6478231c0a0a513325d6ba292008e47f1d497215 Mon Sep 17 00:00:00 2001 From: alicia pritchett Date: Mon, 4 Oct 2021 11:36:06 -0400 Subject: [PATCH 09/14] Remove UUID & Id display from bpmn --- .../workflow-spec-dialog/workflow-spec-dialog.component.ts | 2 +- src/app/workflow-spec-card/workflow-spec-card.component.html | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/app/_dialogs/workflow-spec-dialog/workflow-spec-dialog.component.ts b/src/app/_dialogs/workflow-spec-dialog/workflow-spec-dialog.component.ts index 1cc2e59..ba46eea 100644 --- a/src/app/_dialogs/workflow-spec-dialog/workflow-spec-dialog.component.ts +++ b/src/app/_dialogs/workflow-spec-dialog/workflow-spec-dialog.component.ts @@ -33,7 +33,7 @@ export class WorkflowSpecDialogComponent { { key: 'id', type: 'input', - defaultValue: this.data.id || uuidv4(), + defaultValue: this.data.id, templateOptions: { label: 'ID', placeholder: 'UUID of workflow specification', diff --git a/src/app/workflow-spec-card/workflow-spec-card.component.html b/src/app/workflow-spec-card/workflow-spec-card.component.html index 9253585..ccf0609 100644 --- a/src/app/workflow-spec-card/workflow-spec-card.component.html +++ b/src/app/workflow-spec-card/workflow-spec-card.component.html @@ -16,7 +16,6 @@
-
ID
{{workflowSpec.id}}
Name
{{workflowSpec.name}}
Description
{{workflowSpec.description}}
Standalone
From 652ffdf55b6d3463d988df922a12ba33b83df2cb Mon Sep 17 00:00:00 2001 From: alicia pritchett Date: Wed, 6 Oct 2021 11:37:59 -0400 Subject: [PATCH 10/14] Name -> Id Changes get rid of cat and spec names, replace it with 'ID' --- .../delete-workflow-spec-category-dialog.component.html | 2 +- .../delete-workflow-spec-dialog.component.html | 2 +- src/app/_interfaces/dialog-data.ts | 2 -- src/app/modeler/modeler.component.html | 2 +- src/app/modeler/modeler.component.ts | 6 +++--- .../workflow-spec-card/workflow-spec-card.component.html | 2 +- .../workflow-spec-list/workflow-spec-list.component.html | 7 ++----- 7 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/app/_dialogs/delete-workflow-spec-category-dialog/delete-workflow-spec-category-dialog.component.html b/src/app/_dialogs/delete-workflow-spec-category-dialog/delete-workflow-spec-category-dialog.component.html index 2d4b161..51b5861 100644 --- a/src/app/_dialogs/delete-workflow-spec-category-dialog/delete-workflow-spec-category-dialog.component.html +++ b/src/app/_dialogs/delete-workflow-spec-category-dialog/delete-workflow-spec-category-dialog.component.html @@ -1,5 +1,5 @@
- Delete category {{data.category.name}}? + Delete category {{data.category.id}}?
diff --git a/src/app/_dialogs/delete-workflow-spec-dialog/delete-workflow-spec-dialog.component.html b/src/app/_dialogs/delete-workflow-spec-dialog/delete-workflow-spec-dialog.component.html index de54c9f..6d74c5e 100644 --- a/src/app/_dialogs/delete-workflow-spec-dialog/delete-workflow-spec-dialog.component.html +++ b/src/app/_dialogs/delete-workflow-spec-dialog/delete-workflow-spec-dialog.component.html @@ -1,5 +1,5 @@
- Delete workflow specification {{data.workflowSpec.name}}? + Delete workflow specification {{data.workflowSpec.id}}?
diff --git a/src/app/_interfaces/dialog-data.ts b/src/app/_interfaces/dialog-data.ts index d5aed86..4af9296 100644 --- a/src/app/_interfaces/dialog-data.ts +++ b/src/app/_interfaces/dialog-data.ts @@ -20,7 +20,6 @@ export interface OpenFileDialogData { export interface WorkflowSpecDialogData { id: string; - name: string; display_name: string; description: string; category_id: number; @@ -31,7 +30,6 @@ export interface WorkflowSpecDialogData { export interface WorkflowSpecCategoryDialogData { id: number; - name: string; display_name: string; display_order?: number; admin: boolean; diff --git a/src/app/modeler/modeler.component.html b/src/app/modeler/modeler.component.html index e4fffd4..152c747 100644 --- a/src/app/modeler/modeler.component.html +++ b/src/app/modeler/modeler.component.html @@ -5,7 +5,7 @@ Back {{workflowSpec.display_name}} - ({{workflowSpec.name}}) + ({{workflowSpec.id}})