This is an automated email from the ASF dual-hosted git repository.

JHoelli pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/streampipes.git


The following commit(s) were added to refs/heads/dev by this push:
     new b96c2fce73 fix: Improve asset creation and editing workflow (#4686)
b96c2fce73 is described below

commit b96c2fce739580f7e32dddbee3d00e9ea69c4b79
Author: Jacqueline Höllig <[email protected]>
AuthorDate: Mon Jul 6 21:02:04 2026 +0200

    fix: Improve asset creation and editing workflow (#4686)
---
 ui/cypress/support/utils/asset/AssetUtils.ts       |  2 -
 .../asset-details-basics.component.html            | 58 ++++++++++----------
 .../asset-details-basics.component.ts              |  3 ++
 .../edit-asset/asset-details.component.html        | 61 ++++++++++------------
 .../edit-asset/asset-details.component.ts          |  4 --
 5 files changed, 62 insertions(+), 66 deletions(-)

diff --git a/ui/cypress/support/utils/asset/AssetUtils.ts 
b/ui/cypress/support/utils/asset/AssetUtils.ts
index c2f98b9319..d0f3a0eaca 100644
--- a/ui/cypress/support/utils/asset/AssetUtils.ts
+++ b/ui/cypress/support/utils/asset/AssetUtils.ts
@@ -89,7 +89,6 @@ export class AssetUtils {
         AssetUtils.addNewAsset(asset);
 
         AssetBtns.saveAssetBtn().click();
-        AssetBtns.createBtn().click();
 
         AssetBtns.createAssetBtn().should('be.visible');
     }
@@ -266,7 +265,6 @@ export class AssetUtils {
 
         AssetUtils.checkAmountOfLinkedResources(2);
         AssetBtns.saveAssetBtn().click();
-        AssetBtns.createBtn().click();
         cy.location('hash', { timeout: 10000 }).should(
             'include',
             '/assets/overview',
diff --git 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-basics.component.html
 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-basics.component.html
index 638f45fb4b..ee48085ffc 100644
--- 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-basics.component.html
+++ 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-basics.component.html
@@ -21,34 +21,36 @@
         [level]="2"
         [title]="('Basics' | translate) + ': ' + asset.assetName"
     >
-        <sp-form-field
-            [level]="2"
-            [label]="'Name' | translate"
-            [description]="'A short name of the asset' | translate"
-        >
-            <mat-form-field>
-                <input
-                    data-cy="asset-name"
-                    matInput
-                    [(ngModel)]="asset.assetName"
-                    [disabled]="!editMode"
-                />
-            </mat-form-field>
-        </sp-form-field>
-        <sp-form-field
-            fxFlex="100"
-            [level]="2"
-            [label]="'Description' | translate"
-            [description]="'A longer description of this asset' | translate"
-        >
-            <mat-form-field>
-                <input
-                    matInput
-                    [(ngModel)]="asset.assetDescription"
-                    [disabled]="!editMode"
-                />
-            </mat-form-field>
-        </sp-form-field>
+        @if (!rootNode || isNewAsset) {
+            <sp-form-field
+                [level]="2"
+                [label]="'Name' | translate"
+                [description]="'A short name of the asset' | translate"
+            >
+                <mat-form-field>
+                    <input
+                        data-cy="asset-name"
+                        matInput
+                        [(ngModel)]="asset.assetName"
+                        [disabled]="!editMode"
+                    />
+                </mat-form-field>
+            </sp-form-field>
+            <sp-form-field
+                fxFlex="100"
+                [level]="2"
+                [label]="'Description' | translate"
+                [description]="'A longer description of this asset' | 
translate"
+            >
+                <mat-form-field>
+                    <input
+                        matInput
+                        [(ngModel)]="asset.assetDescription"
+                        [disabled]="!editMode"
+                    />
+                </mat-form-field>
+            </sp-form-field>
+        }
         <sp-form-field
             fxFlex="100"
             [level]="2"
diff --git 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-basics.component.ts
 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-basics.component.ts
index f2a5bd0eb2..273729818b 100644
--- 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-basics.component.ts
+++ 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details-panel/asset-details-basics/asset-details-basics.component.ts
@@ -80,6 +80,9 @@ export class AssetDetailsBasicsComponent implements OnInit, 
OnChanges {
     @Input()
     editMode: boolean;
 
+    @Input()
+    isNewAsset: boolean;
+
     @Input()
     rootNode: boolean;
 
diff --git 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details.component.html
 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details.component.html
index 1dbc66d3f4..6be5d97bc6 100644
--- 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details.component.html
+++ 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details.component.html
@@ -45,44 +45,40 @@
                             (click)="saveAsset()"
                         >
                             <i class="material-icons">save</i
-                            ><span
-                                >&nbsp;{{
-                                    isNewAsset
-                                        ? ('Create' | translate)
-                                        : ('Save' | translate)
-                                }}</span
-                            >
+                            ><span>&nbsp;{{ 'Save' | translate }}</span>
                         </button>
                     </div>
                 </div>
-                <div fxFlex fxLayout="row" fxLayoutAlign="end center">
-                    <button
-                        mat-icon-button
-                        [matMenuTriggerFor]="optMenu"
-                        [attr.aria-label]="'Options' | translate"
-                        data-cy="options-asset"
-                    >
-                        <mat-icon>more_vert</mat-icon>
-                    </button>
-                    <mat-menu #optMenu="matMenu">
-                        <button
-                            mat-menu-item
-                            (click)="manageAsset()"
-                            data-cy="manage-asset-btn"
-                        >
-                            <mat-icon>settings</mat-icon>
-                            <span>{{ 'Manage' | translate }}</span>
-                        </button>
+                @if (!isNewAsset) {
+                    <div fxFlex fxLayout="row" fxLayoutAlign="end center">
                         <button
-                            mat-menu-item
-                            (click)="deleteAsset()"
-                            data-cy="delete-asset-btn"
+                            mat-icon-button
+                            [matMenuTriggerFor]="optMenu"
+                            [attr.aria-label]="'Options' | translate"
+                            data-cy="options-asset"
                         >
-                            <mat-icon>clear</mat-icon>
-                            <span>{{ 'Delete' | translate }}</span>
+                            <mat-icon>more_vert</mat-icon>
                         </button>
-                    </mat-menu>
-                </div>
+                        <mat-menu #optMenu="matMenu">
+                            <button
+                                mat-menu-item
+                                (click)="manageAsset()"
+                                data-cy="manage-asset-btn"
+                            >
+                                <mat-icon>settings</mat-icon>
+                                <span>{{ 'Manage' | translate }}</span>
+                            </button>
+                            <button
+                                mat-menu-item
+                                (click)="deleteAsset()"
+                                data-cy="delete-asset-btn"
+                            >
+                                <mat-icon>clear</mat-icon>
+                                <span>{{ 'Delete' | translate }}</span>
+                            </button>
+                        </mat-menu>
+                    </div>
+                }
             </div>
             @if (asset) {
                 <div fxFlex="100" fxLayout="column" class="p-10">
@@ -93,6 +89,7 @@
                         [sites]="sites"
                         [rootNode]="rootNode"
                         [editMode]="true"
+                        [isNewAsset]="isNewAsset"
                     >
                     </sp-asset-details-basics>
                 </div>
diff --git 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details.component.ts
 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details.component.ts
index 3abea23a87..49cd2d8cfc 100644
--- 
a/ui/src/app/assets/components/asset-details/edit-asset/asset-details.component.ts
+++ 
b/ui/src/app/assets/components/asset-details/edit-asset/asset-details.component.ts
@@ -93,10 +93,6 @@ export class SpAssetDetailsComponent
     private originalAsset: SpAssetModel;
 
     async saveAsset() {
-        if (this.isNewAsset && this.pendingManageAssetResult === undefined) {
-            this.openManageAssetDialog(true);
-            return;
-        }
         await this.saveAssetChanges();
         this.assetBrowserService.refreshBrowserAssetData();
         this.router.navigate(['assets'], {

Reply via email to