Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
178 commits
Select commit Hold shift + click to select a range
6e9c691
added working stepper
JHoelli Sep 24, 2025
8cb101a
getting data from popup
JHoelli Sep 24, 2025
10ab85c
page
JHoelli Sep 24, 2025
823ddfb
get working
JHoelli Sep 24, 2025
d570e02
select ID workd
JHoelli Sep 24, 2025
6dba050
added boxes
JHoelli Sep 24, 2025
7bcc921
links are in view
JHoelli Sep 24, 2025
3ff06ec
better, still UI Fixes needed
JHoelli Sep 24, 2025
9fb3cc1
added Link Type
JHoelli Sep 24, 2025
6a60170
working on first level
JHoelli Sep 25, 2025
8e235c0
first level working
JHoelli Sep 25, 2025
9e0ff7e
second level api works
JHoelli Sep 25, 2025
f779956
refactored Logic
JHoelli Sep 25, 2025
5ecd45d
eliminated log in asset service
JHoelli Sep 25, 2025
041f7fa
added Button Functionality
JHoelli Sep 25, 2025
4061e24
small fix in addToAsset
JHoelli Sep 25, 2025
3ec5132
everything seems to be working
JHoelli Sep 26, 2025
e9cb6a2
basic ui
JHoelli Sep 26, 2025
1c575e8
eliminated from Start Page
JHoelli Sep 26, 2025
6331023
tree draft
JHoelli Sep 29, 2025
a82692f
draft
JHoelli Sep 29, 2025
8c4565f
select works
JHoelli Sep 29, 2025
248009f
returned button
JHoelli Sep 29, 2025
8eacf83
Emit works
JHoelli Sep 29, 2025
943cedd
first working fraft
JHoelli Sep 29, 2025
71a9325
first draft running
JHoelli Sep 29, 2025
77c4026
save
JHoelli Sep 29, 2025
2bae75c
Message
JHoelli Sep 29, 2025
40caec7
DataLake Endpoint
JHoelli Sep 29, 2025
06eaee3
first part of DL works
JHoelli Sep 29, 2025
e9bf628
dataLake is running
JHoelli Sep 29, 2025
0425d39
some cleanup
JHoelli Sep 29, 2025
3153cfb
refactored some methods for easier readability
JHoelli Sep 29, 2025
37b44d7
cleaned up some more
JHoelli Sep 29, 2025
c9b296e
finished first cleanup
JHoelli Sep 29, 2025
e22d4c5
fixed css
JHoelli Sep 30, 2025
430e3b6
deleted comments
JHoelli Sep 30, 2025
1bc8d8a
fixed checkbox
JHoelli Sep 30, 2025
582741c
Final
JHoelli Sep 30, 2025
e6bda8b
rewrote first path to path
JHoelli Sep 30, 2025
35b0b34
inbetween saver
JHoelli Sep 30, 2025
8dc026f
rewrote to path
JHoelli Sep 30, 2025
b7e67bc
deleted comments
JHoelli Sep 30, 2025
9f1c04e
moved Asset
JHoelli Sep 30, 2025
940a333
resolved mapping issue
JHoelli Sep 30, 2025
b471c2d
elimnated console logs
JHoelli Sep 30, 2025
1f480ee
save inbetween
JHoelli Oct 1, 2025
efafc00
working
JHoelli Oct 1, 2025
1e657be
now working
JHoelli Oct 1, 2025
a7a352e
cleanup now working
JHoelli Oct 1, 2025
311440f
renamed asset model
JHoelli Oct 1, 2025
3f62ab2
deleted unneccessary loop
JHoelli Oct 1, 2025
c89e18d
easy case works
JHoelli Oct 1, 2025
c2353fe
fixed the overwriting issue
JHoelli Oct 1, 2025
2f6894c
everything working
JHoelli Oct 1, 2025
3ec5bb0
eliminated logs
JHoelli Oct 1, 2025
629a90b
imported model
JHoelli Oct 1, 2025
093ac46
Merge branch 'apache:dev' into AddAssetsToAdapter
JHoelli Oct 1, 2025
909ad51
layout has gotten better
JHoelli Oct 1, 2025
5625593
layout
JHoelli Oct 1, 2025
69b4f2f
adapterID to asset config
JHoelli Oct 1, 2025
58c3fa7
preselect works
JHoelli Oct 1, 2025
7c96b99
select / deselect seems to work
JHoelli Oct 1, 2025
2c6cc4d
small change in select so that only data is emiited not contained in …
JHoelli Oct 2, 2025
5612f27
removed debugging comments
JHoelli Oct 2, 2025
cf481fd
delete works in edit mode
JHoelli Oct 2, 2025
8582624
added message in edit
JHoelli Oct 2, 2025
dec0299
first edit version working
JHoelli Oct 2, 2025
f7264e8
rename saver
JHoelli Oct 2, 2025
fb077d6
fixed minor issue in filtering assets
JHoelli Oct 2, 2025
cf8d9c1
fixed minor issue in filtering assets
JHoelli Oct 2, 2025
15c96db
renaming is working
JHoelli Oct 2, 2025
06b1561
Merge branch 'dev' into AddAssetsToAdapter
tenthe Oct 2, 2025
b0f199f
fixed success messages
JHoelli Oct 2, 2025
71e85ec
just to be save
JHoelli Oct 6, 2025
ae5a0d2
removed_polling
JHoelli Oct 6, 2025
e902922
pollign in model
JHoelli Oct 6, 2025
d9ca8f9
removed from Promise
JHoelli Oct 6, 2025
b90a7e9
translation
JHoelli Oct 6, 2025
4f2871d
prep translation of config
JHoelli Oct 6, 2025
c1d1e33
css
JHoelli Oct 6, 2025
b012c00
more translation
JHoelli Oct 6, 2025
ec772f6
merged AddToAdapter
JHoelli Oct 6, 2025
26bbb58
save
JHoelli Oct 6, 2025
8a86b28
working
JHoelli Oct 6, 2025
32fdfc2
i18n translation files
JHoelli Oct 6, 2025
ac56c3a
i18n translation files
JHoelli Oct 6, 2025
440ede6
Merge branch 'AddAssetsToAdapter' into editAdapterAsset
JHoelli Oct 6, 2025
7b0db02
Merge branch 'dev' into editAdapterAsset
JHoelli Oct 6, 2025
40b9fed
merged dev
JHoelli Oct 6, 2025
6b4db81
removed i18n again
JHoelli Oct 6, 2025
ef4cf0c
fixed linting issue
JHoelli Oct 6, 2025
822776d
Merge branch 'dev' into editAdapterAsset
JHoelli Oct 7, 2025
01f5f5d
Merge branch 'dev' into editAdapterAsset
dominikriemer Oct 7, 2025
615d721
expansion if assets were selected working
JHoelli Oct 8, 2025
04c0f80
any typisierung
JHoelli Oct 8, 2025
2ddad57
deleted unused imports
JHoelli Oct 8, 2025
634a17a
edit preselect of assets
JHoelli Oct 8, 2025
d37fc04
moved first part of assets to shared ui
JHoelli Oct 10, 2025
26f2912
Merge branch 'editAdapterAsset' into AssetInPipeline
JHoelli Oct 10, 2025
6c5bd20
succesfully merged edit ?
JHoelli Oct 10, 2025
5781fe9
replicated changes to adapter started
JHoelli Oct 10, 2025
ab13df1
eliminated Adapter specific logic on assetlinkconfig
JHoelli Oct 10, 2025
0ce33ee
pipelineid fixed
JHoelli Oct 13, 2025
5c25196
adding pipelines works
JHoelli Oct 13, 2025
6efe8a1
edit pipeline works
JHoelli Oct 13, 2025
357e8a7
constructor to inject
JHoelli Oct 13, 2025
2cae0e7
working datalake
JHoelli Oct 13, 2025
1af577a
eliminated logs
JHoelli Oct 13, 2025
4ff89b8
Merge branch 'dev' into AssetInPipeline
JHoelli Oct 13, 2025
cc870c6
add is working
JHoelli Oct 13, 2025
53d0e8f
removed dublication of this.addToAsset()
JHoelli Oct 13, 2025
3d6ffa4
Edit Pipeline works
JHoelli Oct 13, 2025
f0efd07
eliminated console logs
JHoelli Oct 13, 2025
d70ccb3
deleted some usused variables
JHoelli Oct 13, 2025
2521d12
scrollable tree
JHoelli Oct 13, 2025
c7907ad
updated ngif notation
JHoelli Oct 13, 2025
0dcfdfd
first part of add adapter asset test
JHoelli Oct 14, 2025
969f230
first test
JHoelli Oct 14, 2025
b1a2ae3
cleaned up
JHoelli Oct 14, 2025
57d6d14
loop works
JHoelli Oct 14, 2025
ff9903b
refactored tests
JHoelli Oct 14, 2025
0a43723
test runs
JHoelli Oct 14, 2025
4a58a4a
edit select not working anymore
JHoelli Oct 14, 2025
480e91e
Merge branch 'dev' into tests_for_Assets
JHoelli Oct 14, 2025
804cce1
first part running again
JHoelli Oct 14, 2025
e2114a4
save
JHoelli Oct 14, 2025
2ddc530
test for adapter are runnign
JHoelli Oct 14, 2025
b5e5a17
eliminated waits
JHoelli Oct 14, 2025
b44ad15
adapter asset test are running
JHoelli Oct 14, 2025
093813a
first part pipeline working
JHoelli Oct 14, 2025
b25ebc7
first draft works
JHoelli Oct 14, 2025
b89de9c
second pipeline test
JHoelli Oct 14, 2025
c18f682
tests running
JHoelli Oct 14, 2025
b2300ed
adapter asset test running
JHoelli Oct 15, 2025
0134fc1
pipeline test running
JHoelli Oct 15, 2025
2650538
adapter test
JHoelli Oct 15, 2025
30d0f92
pipeline assets
JHoelli Oct 15, 2025
32ce2cf
changed test to smoke
JHoelli Oct 15, 2025
0202933
Merge branch 'dev' into AssetsInCharts
JHoelli Oct 15, 2025
a5fba9b
Merge branch 'dev' into tests_for_Assets
JHoelli Oct 15, 2025
4f28091
Merge branch 'tests_for_Assets' into AssetsInCharts
JHoelli Oct 15, 2025
10074b4
save
JHoelli Oct 15, 2025
20a4542
ui for charts
JHoelli Oct 15, 2025
0487865
easy case works
JHoelli Oct 15, 2025
a0568c9
easy case works
JHoelli Oct 15, 2025
5d3aa1d
select works
JHoelli Oct 15, 2025
0d114ea
everything looking good
JHoelli Oct 15, 2025
900f9c5
Assets for Charts is working
JHoelli Oct 15, 2025
3bca93e
changed data-cy
JHoelli Oct 15, 2025
ed1a681
renamed some tests
JHoelli Oct 15, 2025
5a8e7df
small fix to get the old tests to run with new dialog
JHoelli Oct 15, 2025
ed33eac
Add Chart Test running
JHoelli Oct 15, 2025
103bc8e
edit test works
JHoelli Oct 15, 2025
51eaa22
tests run
JHoelli Oct 15, 2025
9156767
small fix in timerOrderDataView
JHoelli Oct 15, 2025
5a4b4d3
small fix in heatmap test
JHoelli Oct 16, 2025
e67fbbb
Merge branch 'dev' into AssetsInCharts
JHoelli Oct 16, 2025
9d6e645
first Asset Draft for Dashboard
JHoelli Oct 16, 2025
ed3538d
began rewriting the dashboard cpd
JHoelli Oct 16, 2025
948fbc1
save
JHoelli Oct 16, 2025
042a42f
moved create DataView with Asset
JHoelli Oct 16, 2025
2cd0967
some renaming
JHoelli Oct 16, 2025
ca7602e
renaming part2
JHoelli Oct 16, 2025
0a7328d
finished reanming
JHoelli Oct 16, 2025
26274e9
eliminated comment
JHoelli Oct 16, 2025
ffae5be
Merge branch 'AssetsInCharts' into AssetsInDashboard
JHoelli Oct 16, 2025
eaf92fd
minor change in API to get the dashboardId
JHoelli Oct 16, 2025
11ff2de
minor change in API to get the dashboardId
JHoelli Oct 16, 2025
dc15265
eliminated console logs
JHoelli Oct 16, 2025
2a87e1f
deleted dialog
JHoelli Oct 16, 2025
ccca9e0
some cleanup
JHoelli Oct 16, 2025
604103d
started writing tests
JHoelli Oct 16, 2025
d70074e
fixed: renaming
JHoelli Oct 16, 2025
087b17a
merged AssetsInCHarts
JHoelli Oct 16, 2025
da72ccd
Dashboard Tests
JHoelli Oct 16, 2025
673d717
small fix for chart test
JHoelli Oct 16, 2025
f4347db
Merge branch 'dev' into AssetsInDashboard
JHoelli Oct 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,12 @@ public ResponseEntity<Void> deleteDashboard(@PathVariable("dashboardId") String

@PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE)
@PreAuthorize("this.hasWriteAuthority()")
public ResponseEntity<Void> createDashboard(@RequestBody DashboardModel dashboardModel) {
getResourceManager().create(dashboardModel, getAuthenticatedUserSid());
return ok();
public ResponseEntity<DashboardModel> createDashboard(@RequestBody DashboardModel dashboardModel) {
var response = getResourceManager().create(dashboardModel, getAuthenticatedUserSid());
return ok(response);
}


private DataExplorerResourceManager getResourceManager() {
return getSpResourceManager().manageDataExplorer();
}
Expand Down
4 changes: 4 additions & 0 deletions ui/cypress/support/utils/dataExplorer/DataExplorerBtns.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ export class DataLakeBtns {
return cy.dataCy('save-data-view-btn').click();
}

public static saveDashboard() {
return cy.dataCy('save-data-view').click();
}

public static editDataViewButton(widgetName: string) {
GeneralUtils.openMenuForRow(widgetName);
return cy
Expand Down
60 changes: 60 additions & 0 deletions ui/cypress/support/utils/dataExplorer/DataExplorerUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,54 @@ export class DataExplorerUtils {

cy.wait(1000);
}
public static addAssetsToDashboard(assetNameList) {
cy.dataCy('sp-show-dashboard-asset-checkbox')
.find('input[type="checkbox"]')
.then($checkbox => {
if (!$checkbox.prop('checked')) {
cy.wrap($checkbox).click();
}
});

cy.get('mat-tree.asset-tree', { timeout: 10000 }).should('exist');
assetNameList.forEach(assetName => {
console.log(assetName);
cy.get('mat-tree.asset-tree')
.find('.mat-tree-node')
.contains(assetName)
.click();
});
}

public static createDashboard(name) {
// Create new data view
cy.dataCy('open-new-dashboard-dialog').click();

// Configure data view
cy.dataCy('data-view-name').type(name);
}
public static createDashboardWithLinkedAssets(
dataView,
name,
assetNameList,
) {
DataExplorerUtils.goToDatalake();

DataExplorerUtils.addDataViewAndTableWidget(dataView, 'Persist');

DataExplorerUtils.saveDataViewConfiguration();

DataExplorerUtils.goToDashboard();

//ADD Assets
DataExplorerUtils.createDashboard(name);
DataExplorerUtils.addAssetsToDashboard(assetNameList);
DataExplorerUtils.saveDashboard();
}

public static saveDashboard() {
return cy.dataCy('save-data-view').click();
}
public static addDataViewAndTableWidget(
dataViewName: string,
dataSet: string,
Expand Down Expand Up @@ -144,6 +191,11 @@ export class DataExplorerUtils {
);
}

public static renameDashboard(newName: string) {
cy.dataCy('data-view-name').clear().type(newName);
cy.dataCy('data-view-name').should('have.value', newName);
}

public static loadRandomDataSetIntoDataLake() {
PrepareTestDataUtils.loadDataIntoDataLake('fileTest/random.csv');
}
Expand Down Expand Up @@ -186,6 +238,11 @@ export class DataExplorerUtils {
cy.dataCy('edit-dashboard-' + dashboardName).click();
}

public static editDashboardSettings(dashboardName: string) {
GeneralUtils.openMenuForRow(dashboardName);
cy.dataCy('edit-dashboard-settings-' + dashboardName).click();
}

public static editDataView(dataViewName: string) {
// Click edit button
// following only works if single view is available
Expand Down Expand Up @@ -225,7 +282,9 @@ export class DataExplorerUtils {
.contains(assetName)
.click();
});
}

public static saveAssetLinkFromChart() {
cy.dataCy('asset-dialog-confirm-delete', { timeout: 10000 }).click({
force: true,
});
Expand Down Expand Up @@ -606,5 +665,6 @@ export class DataExplorerUtils {
//Save
DataExplorerUtils.saveToAddAssets();
DataExplorerUtils.addToAsset(assetNames);
DataExplorerUtils.saveAssetLinkFromChart();
}
}
81 changes: 81 additions & 0 deletions ui/cypress/tests/dataExplorer/addAssetToDashboard.smoke.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
import { AssetBtns } from '../../support/utils/asset/AssetBtns';
import { AssetUtils } from '../../support/utils/asset/AssetUtils';
import { DataExplorerUtils } from '../../support/utils/dataExplorer/DataExplorerUtils';

describe('Test add Assets To Dashboard', () => {
const assetName1 = 'TestAsset1';
const assetName2 = 'TestAsset2';
const assetName3 = 'TestAsset3';
beforeEach('Setup Test', () => {
cy.initStreamPipesTest();
AssetUtils.goToAssets();
AssetUtils.addAndSaveAsset(assetName3);
AssetUtils.addAndSaveAsset(assetName2);
AssetUtils.addAndSaveAsset(assetName1);
DataExplorerUtils.loadDataIntoDataLake('datalake/sample.csv');
});

it('Create Dashboard and add Assets', () => {
const dataView = 'TestView';

const name = 'Dashboard1';

const assetNameList = [assetName1, assetName2];
DataExplorerUtils.createDashboardWithLinkedAssets(
dataView,
name,
assetNameList,
);

//Go Back to Asset
AssetUtils.goToAssets();
AssetUtils.checkAmountOfAssetsGreaterThan(0);

AssetUtils.editAsset(assetName1);
AssetBtns.assetLinksTab().click();

//Check if Link is there
AssetUtils.checkAmountOfLinkedResources(1);
});

it('Edit Dashboard and edit Asset Links', () => {
const dataView = 'TestView';

const name = 'Dashboard1';

const assetNameList = [assetName1, assetName2];
DataExplorerUtils.createDashboardWithLinkedAssets(
dataView,
name,
assetNameList,
);
DataExplorerUtils.editDashboardSettings(name);
DataExplorerUtils.renameDashboard('NEW');
const assetNameList2 = [assetName2, assetName3];
DataExplorerUtils.addToAsset(assetNameList2);
DataExplorerUtils.saveDashboard();

AssetUtils.checkAmountOfLinkedResourcesByAssetName(assetName1, 1);
AssetUtils.checkAmountOfLinkedResourcesByAssetName(assetName3, 1);

// Test Renaming
AssetUtils.checkResourceNamingByAssetName(assetName1, 'NEW');
});
});
61 changes: 61 additions & 0 deletions ui/cypress/tests/dataExplorer/addAssetsToDataView.smoke.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

import { AssetUtils } from '../../support/utils/asset/AssetUtils';
import { DataExplorerUtils } from '../../support/utils/dataExplorer/DataExplorerUtils';

describe('Creates a new adapter with a linked asset', () => {
const assetName1 = 'TestAsset1';
const assetName2 = 'TestAsset2';
const assetName3 = 'TestAsset3';

beforeEach('Setup Test', () => {
cy.initStreamPipesTest();
AssetUtils.goToAssets();
AssetUtils.addAndSaveAsset(assetName3);
AssetUtils.addAndSaveAsset(assetName2);
AssetUtils.addAndSaveAsset(assetName1);
});

it('Add Assets during Chart generation', () => {
DataExplorerUtils.createDataViewWithAssets([assetName1, assetName2]);
//Test
AssetUtils.checkAmountOfLinkedResourcesByAssetName(assetName1, 1);
AssetUtils.checkAmountOfLinkedResourcesByAssetName(assetName2, 1);
});

it('Edit Assets during Chart generation', () => {
DataExplorerUtils.createDataViewWithAssets([assetName1, assetName2]);
//Test
AssetUtils.checkAmountOfLinkedResourcesByAssetName(assetName1, 1);
AssetUtils.checkAmountOfLinkedResourcesByAssetName(assetName2, 1);

// Go To Chart and Edit
DataExplorerUtils.goToDatalake();
DataExplorerUtils.editDataView('NewWidget');
DataExplorerUtils.renameWidget('Rename');

DataExplorerUtils.saveToAddAssets();
DataExplorerUtils.addToAsset([assetName1, assetName3]);
DataExplorerUtils.saveAssetLinkFromChart();

AssetUtils.checkAmountOfLinkedResourcesByAssetName(assetName2, 1);
AssetUtils.checkAmountOfLinkedResourcesByAssetName(assetName3, 1);
AssetUtils.checkResourceNamingByAssetName(assetName2, 'Rename');
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -97,20 +97,47 @@
}}
</mat-checkbox>
</div>

<div class="mt-10" fxLayout="column">
<label>{{ 'Add Dashboard to Assets' | translate }}</label>

<mat-checkbox
[(ngModel)]="addToAssets"
color="accent"
data-cy="sp-show-dashboard-asset-checkbox"
>
{{
'Add the current dashboard to an existing asset'
| translate
}}
</mat-checkbox>

@if (addToAssets) {
<div class="mt-10">
<sp-asset-link-configuration
[isEdit]="!createMode"
[itemId]="dashboard.elementId"
(selectedAssetsChange)="
onSelectedAssetsChange($event)
"
(deselectedAssetsChange)="
onDeselectedAssetsChange($event)
"
(originalAssetsEmitter)="
onOriginalAssetsEmitted($event)
"
>
</sp-asset-link-configuration>
</div>
}
</div>

<!--<mat-checkbox [(ngModel)]="dashboard.displayHeader">Show name and description in dashboard</mat-checkbox>-->
</div>
</div>
</div>
<mat-divider></mat-divider>
<div class="sp-dialog-actions actions-align-right">
<button
mat-button
mat-flat-button
class="mat-basic mr-10"
(click)="onCancel()"
>
{{ 'Close' | translate }}
</button>
<div class="sp-dialog-actions actions-align-left">
<button
[disabled]="dvname.invalid"
mat-button
Expand All @@ -121,5 +148,13 @@
>
{{ (createMode ? 'Create' : 'Save') | translate }}
</button>
<button
mat-button
mat-flat-button
class="mat-basic mr-10"
(click)="onCancel()"
>
{{ 'Close' | translate }}
</button>
</div>
</div>
Loading
Loading