diff --git a/CHANGES.md b/CHANGES.md
index f2393e2..b136ecb 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,6 +1,11 @@
# Changes
+## Version 0.6.2 (2022-10-18)
+
+- Fix grid creation on create cube page [`#122`](https://github.com/brazil-data-cube/dc-manager/issues/122)
+
+
## Version 0.6.1 (2022-10-04)
- Add support to customize data cube name of IDT/Temporal Composed [`#119`](https://github.com/brazil-data-cube/dc-manager/issues/119)
diff --git a/data-cube-manager/package-lock.json b/data-cube-manager/package-lock.json
index 0fd4b71..92e1d22 100644
--- a/data-cube-manager/package-lock.json
+++ b/data-cube-manager/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "data-cube-manager",
- "version": "0.6.1",
+ "version": "0.6.2",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/data-cube-manager/package.json b/data-cube-manager/package.json
index f1bfcc3..514d324 100644
--- a/data-cube-manager/package.json
+++ b/data-cube-manager/package.json
@@ -1,6 +1,6 @@
{
"name": "data-cube-manager",
- "version": "0.6.1",
+ "version": "0.6.2",
"license": "GPLv3",
"scripts": {
"ng": "ng",
diff --git a/data-cube-manager/src/app/admin/pages/check-cube/check-cube.component.ts b/data-cube-manager/src/app/admin/pages/check-cube/check-cube.component.ts
index aaae0f5..1941b7f 100644
--- a/data-cube-manager/src/app/admin/pages/check-cube/check-cube.component.ts
+++ b/data-cube-manager/src/app/admin/pages/check-cube/check-cube.component.ts
@@ -267,6 +267,8 @@ export class CheckCubeComponent implements OnInit {
try {
this.store.dispatch(showLoading());
+ const tileId = item.tile_id || this.currentTab;
+
const cubeName = this.cube.name;
let start = item.start_date;
let end = item.end_date;
@@ -276,7 +278,7 @@ export class CheckCubeComponent implements OnInit {
end = moment(start).endOf('month').format('YYYY-MM-DD');
}
- const response = await this.cbs.listMerges(this.cube.id, start, end, item.tile_id);
+ const response = await this.cbs.listMerges(this.cube.id, start, end, tileId);
const dialogRef = this.dialog.open(SceneDetailsComponent, {
width: '600px',
height: '90%',
@@ -285,7 +287,7 @@ export class CheckCubeComponent implements OnInit {
cube: this.cube.name,
merges: response,
itemDate: item.start_date,
- tileId: item.tile_id,
+ tileId,
itemId: item.name
}
})
@@ -310,7 +312,7 @@ export class CheckCubeComponent implements OnInit {
grid: this.cube.grid,
datacube: this.cube.name,
datacube_version: this.cube.version,
- tiles: [item.tile_id],
+ tiles: [this.currentTab],
editable: false,
start_date: item.start_date,
end_date: item.end_date,
diff --git a/data-cube-manager/src/app/admin/pages/create-cube/steps/grid/grid.component.html b/data-cube-manager/src/app/admin/pages/create-cube/steps/grid/grid.component.html
index cf8929a..42f4055 100644
--- a/data-cube-manager/src/app/admin/pages/create-cube/steps/grid/grid.component.html
+++ b/data-cube-manager/src/app/admin/pages/create-cube/steps/grid/grid.component.html
@@ -46,9 +46,9 @@
diff --git a/data-cube-manager/src/app/admin/pages/create-cube/steps/grid/grid.component.ts b/data-cube-manager/src/app/admin/pages/create-cube/steps/grid/grid.component.ts
index 30c3fd7..1e6d574 100644
--- a/data-cube-manager/src/app/admin/pages/create-cube/steps/grid/grid.component.ts
+++ b/data-cube-manager/src/app/admin/pages/create-cube/steps/grid/grid.component.ts
@@ -38,11 +38,12 @@ export class CreateCubeGridComponent implements OnInit {
private fb: FormBuilder,
private ref: ChangeDetectorRef) {
this.formCreateGrid = this.fb.group({
- name: ['', [Validators.required]],
+ names: ['', [Validators.required]],
description: ['', [Validators.required]],
meridian: [null, [Validators.required]],
- degreesx: [{value: 1.5}, [Validators.required]],
- degreesy: [{value: 1}, [Validators.required]]
+ shape: [null, [Validators.required]],
+ tile_factor: [null, [Validators.required]],
+ srid: [null, [Validators.required]],
});
}
@@ -67,11 +68,12 @@ export class CreateCubeGridComponent implements OnInit {
crs: ''
}
this.formCreateGrid.setValue({
- name: '',
+ names: '',
description: '',
meridian: null,
- degreesx: 1.5,
- degreesy: 1
+ shape: null,
+ tile_factor: null,
+ srid: null,
})
}
@@ -153,6 +155,34 @@ export class CreateCubeGridComponent implements OnInit {
projection: 'aea',
bbox: this.formatBBox(this.bbox)
}
+ // Transform into list
+ data['tile_factor'] = [data['tile_factor']]
+ data['names'] = data['names'].split(',');
+ data['shape'] = data['shape'].split(',').map(value => parseInt(value))
+
+ if (data['tile_factor'][0].includes(';')) {
+ data['tile_factor'] = data['tile_factor'][0].split(';')
+ }
+
+ let tileFactorList = [];
+ for (let tileFactor of data['tile_factor']) {
+ const [pixelX, pixelY] = tileFactor.split(',')
+ tileFactorList.push([parseInt(pixelX), parseInt(pixelY)]);
+ }
+
+ if (tileFactorList.length !== data['names'].length) {
+ this.snackBar.open(`The grids ${data['names']} not match with ${tileFactorList}. It must have same dimension.`, '', {
+ duration: 4000,
+ verticalPosition: 'top',
+ panelClass: 'app_snack-bar-error'
+ });
+ return;
+ }
+
+ if (tileFactorList.length > 0) {
+ data['tile_factor'] = tileFactorList;
+ }
+
const response = await this.cbs.createGrid(data)
this.action = 'select'
this.getGrids()
@@ -185,8 +215,7 @@ export class CreateCubeGridComponent implements OnInit {
}
private formatBBox(bbox) {
- const parts = bbox.split(',')
- return `${parts[0]},${parts[3]},${parts[2]},${parts[1]}`
+ return bbox.split(',').map(value => parseFloat(value));
}
/**
diff --git a/data-cube-manager/src/app/app.reducer.ts b/data-cube-manager/src/app/app.reducer.ts
index e6c0d8a..28198a5 100644
--- a/data-cube-manager/src/app/app.reducer.ts
+++ b/data-cube-manager/src/app/app.reducer.ts
@@ -11,7 +11,7 @@ import { AppState } from './app.state';
/** initial values to App State */
const initialState: AppState = {
loading: false,
- token: localStorage.getItem('DC_MANAGER_api_token') || '',
+ token: localStorage.getItem('DC_MANAGER_api_token'),
urlService: localStorage.getItem('DC_MANAGER_url_service') || ''
};
diff --git a/data-cube-manager/src/app/services/cube-builder.ts b/data-cube-manager/src/app/services/cube-builder.ts
index 94662aa..247aabe 100644
--- a/data-cube-manager/src/app/services/cube-builder.ts
+++ b/data-cube-manager/src/app/services/cube-builder.ts
@@ -169,7 +169,7 @@ export class CubeBuilderService {
* create grid (grs_schema)
*/
public async createGrid(infos): Promise {
- const urlSuffix = `/create-grs`;
+ const urlSuffix = `/create-grids`;
const { data } = await api.post(`${this.urlCubeBuilder}${urlSuffix}`, infos);
return data;
}