diff --git a/src/app/api/gql/rename-dataset/rename-dataset.graphql b/src/app/api/gql/rename-dataset/rename-dataset.graphql new file mode 100644 index 000000000..9dce5caec --- /dev/null +++ b/src/app/api/gql/rename-dataset/rename-dataset.graphql @@ -0,0 +1,22 @@ +mutation renameDataset($datasetId: DatasetID!, $newName: DatasetName!) { + datasets { + byId(datasetId: $datasetId) { + rename(newName: $newName) { + __typename + ... on RenameResultSuccess { + message + oldName + newName + } + ... on RenameResultNoChanges { + preservedName + message + } + ... on RenameResultNameCollision { + message + collidingAlias + } + } + } + } +} diff --git a/src/app/api/kamu.graphql.interface.ts b/src/app/api/kamu.graphql.interface.ts index c96415675..7a2a72f13 100644 --- a/src/app/api/kamu.graphql.interface.ts +++ b/src/app/api/kamu.graphql.interface.ts @@ -1794,6 +1794,25 @@ export type GetMetadataBlockQuery = { }; }; +export type RenameDatasetMutationVariables = Exact<{ + datasetId: Scalars["DatasetID"]; + newName: Scalars["DatasetName"]; +}>; + +export type RenameDatasetMutation = { + __typename?: "Mutation"; + datasets: { + __typename?: "DatasetsMut"; + byId?: { + __typename?: "DatasetMut"; + rename: + | { __typename: "RenameResultNameCollision"; message: string; collidingAlias: any } + | { __typename: "RenameResultNoChanges"; preservedName: any; message: string } + | { __typename: "RenameResultSuccess"; message: string; oldName: any; newName: any }; + } | null; + }; +}; + export type SearchDatasetsAutocompleteQueryVariables = Exact<{ query: Scalars["String"]; perPage?: InputMaybe; @@ -2840,6 +2859,41 @@ export class GetMetadataBlockGQL extends Apollo.Query { + document = RenameDatasetDocument; + + constructor(apollo: Apollo.Apollo) { + super(apollo); + } +} export const SearchDatasetsAutocompleteDocument = gql` query searchDatasetsAutocomplete($query: String!, $perPage: Int, $page: Int) { search { diff --git a/src/app/dataset-view/additional-components/settings-component/settings.component.ts b/src/app/dataset-view/additional-components/settings-component/settings.component.ts index 8fb7822b8..e6c8769fd 100644 --- a/src/app/dataset-view/additional-components/settings-component/settings.component.ts +++ b/src/app/dataset-view/additional-components/settings-component/settings.component.ts @@ -1,7 +1,7 @@ import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { DatasetSettingsService } from "./services/dataset-settings.service"; import { ChangeDetectionStrategy, Component, Input, OnInit } from "@angular/core"; -import { DatasetBasicsFragment, Organization } from "src/app/api/kamu.graphql.interface"; +import { DatasetBasicsFragment } from "src/app/api/kamu.graphql.interface"; import { promiseWithCatch } from "src/app/common/app.helpers"; import { BaseComponent } from "src/app/common/base.component"; import { ModalService } from "src/app/components/modal/modal.service"; @@ -15,24 +15,26 @@ import { ModalService } from "src/app/components/modal/modal.service"; export class SettingsTabComponent extends BaseComponent implements OnInit { @Input() public datasetBasics?: DatasetBasicsFragment; public renameDatasetForm: FormGroup; + constructor( private fb: FormBuilder, private datasetSettingsService: DatasetSettingsService, private modalService: ModalService, ) { super(); - } - - ngOnInit(): void { this.renameDatasetForm = this.fb.group({ datasetName: [ - this.datasetBasics?.name, + this.getDatasetInfoFromUrl().datasetName, // eslint-disable-next-line @typescript-eslint/unbound-method [Validators.required, Validators.pattern(/^([a-zA-Z0-9][a-zA-Z0-9-]*)+(\.[a-zA-Z0-9][a-zA-Z0-9-]*)*$/)], ], }); } + ngOnInit(): void { + console.log("yes"); + } + public deleteDataset(): void { promiseWithCatch( this.modalService.error({