Skip to content

Commit 9896c4e

Browse files
Merge pull request #2350 from umbraco/v15/bugfix/discard-changes-path-compare
Bugfix: Discard changes path compare
2 parents c4bced6 + 2625193 commit 9896c4e

File tree

4 files changed

+31
-10
lines changed

4 files changed

+31
-10
lines changed

src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { UmbSubmittableWorkspaceContextBase } from '../submittable/index.js';
22
import { UmbEntityWorkspaceDataManager } from '../entity/entity-workspace-data-manager.js';
3-
import { UMB_WORKSPACE_PATH_PATTERN } from '../paths.js';
43
import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action';
54
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
65
import type { UmbEntityModel, UmbEntityUnique } from '@umbraco-cms/backoffice/entity';
@@ -153,9 +152,7 @@ export abstract class UmbEntityDetailWorkspaceContextBase<
153152
* @memberof UmbEntityWorkspaceContextBase
154153
*/
155154
protected _checkWillNavigateAway(newUrl: string) {
156-
const workspaceBasePath = UMB_WORKSPACE_PATH_PATTERN.generateLocal({ entityType: this.getEntityType() });
157-
const currentWorkspacePathIdentifier = '/' + workspaceBasePath + '/' + this.routes.getActiveLocalPath();
158-
return !newUrl.includes(currentWorkspacePathIdentifier);
155+
return !newUrl.includes(this.routes.getActiveLocalPath());
159156
}
160157

161158
async #create(currentData: DetailModelType) {

src/packages/data-type/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export * from './entity.js';
55
export * from './repository/index.js';
66
export * from './workspace/index.js';
77
export * from './modals/index.js';
8+
export * from './paths.js';
89

910
export { UmbMoveDataTypeRepository, UMB_MOVE_DATA_TYPE_REPOSITORY_ALIAS } from './entity-actions/move-to/index.js';
1011

src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { UMB_DATATYPE_WORKSPACE_MODAL } from '../../workspace/data-type-workspace.modal-token.js';
2-
import { UMB_DATA_TYPE_ENTITY_TYPE } from '../../entity.js';
2+
import { UMB_DATA_TYPE_ENTITY_TYPE, UMB_DATA_TYPE_ROOT_ENTITY_TYPE } from '../../entity.js';
33
import { UmbDataTypeCollectionRepository } from '../../collection/index.js';
4+
import type { UmbDataTypeItemModel } from '../../repository/index.js';
5+
import { UMB_CREATE_DATA_TYPE_WORKSPACE_PATH_PATTERN } from '../../paths.js';
46
import { UMB_DATA_TYPE_PICKER_FLOW_DATA_TYPE_PICKER_MODAL } from './data-type-picker-flow-data-type-picker-modal.token.js';
57
import type {
68
UmbDataTypePickerFlowModalData,
@@ -16,7 +18,6 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
1618
import { UMB_CONTENT_TYPE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/content-type';
1719
import { UMB_PROPERTY_TYPE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/property-type';
1820
import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/property-editor';
19-
import type { UmbDataTypeItemModel } from '@umbraco-cms/backoffice/data-type';
2021
import type { UmbModalRouteBuilder } from '@umbraco-cms/backoffice/router';
2122
import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui';
2223

@@ -68,12 +69,14 @@ export class UmbDataTypePickerFlowModalElement extends UmbModalBaseElement<
6869
}
6970

7071
#createDataType(propertyEditorUiAlias: string) {
72+
const createPath = UMB_CREATE_DATA_TYPE_WORKSPACE_PATH_PATTERN.generateLocal({
73+
parentEntityType: UMB_DATA_TYPE_ROOT_ENTITY_TYPE,
74+
parentUnique: null,
75+
});
76+
7177
// TODO: Could be nice with a more pretty way to prepend to the URL:
7278
// Open create modal:
73-
this.#createDataTypeModal.open(
74-
{ uiAlias: propertyEditorUiAlias },
75-
`create/parent/${UMB_DATA_TYPE_ENTITY_TYPE}/null`,
76-
);
79+
this.#createDataTypeModal.open({ uiAlias: propertyEditorUiAlias }, createPath);
7780
}
7881

7982
async #init() {

src/packages/data-type/paths.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { UMB_DATA_TYPE_ENTITY_TYPE, UMB_DATA_TYPE_ROOT_ENTITY_TYPE } from './entity.js';
2+
import { UMB_WORKSPACE_PATH_PATTERN } from '@umbraco-cms/backoffice/workspace';
3+
import { UMB_SETTINGS_SECTION_PATHNAME } from '@umbraco-cms/backoffice/settings';
4+
import { UmbPathPattern } from '@umbraco-cms/backoffice/router';
5+
import type { UmbEntityModel } from '@umbraco-cms/backoffice/entity';
6+
7+
export const UMB_DATA_TYPE_WORKSPACE_PATH = UMB_WORKSPACE_PATH_PATTERN.generateAbsolute({
8+
sectionName: UMB_SETTINGS_SECTION_PATHNAME,
9+
entityType: UMB_DATA_TYPE_ENTITY_TYPE,
10+
});
11+
12+
export const UMB_DATA_TYPE_ROOT_WORKSPACE_PATH = UMB_WORKSPACE_PATH_PATTERN.generateAbsolute({
13+
sectionName: UMB_SETTINGS_SECTION_PATHNAME,
14+
entityType: UMB_DATA_TYPE_ROOT_ENTITY_TYPE,
15+
});
16+
17+
export const UMB_CREATE_DATA_TYPE_WORKSPACE_PATH_PATTERN = new UmbPathPattern<{
18+
parentEntityType: UmbEntityModel['entityType'];
19+
parentUnique: UmbEntityModel['unique'];
20+
}>('create/parent/:parentEntityType/:parentUnique', UMB_DATA_TYPE_WORKSPACE_PATH);

0 commit comments

Comments
 (0)