adjust content data manager for base extension
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { UmbMergeContentVariantDataController } from '../controller/merge-content-variant-data.controller.js';
|
||||
import type { UmbContentDetailModel } from '@umbraco-cms/backoffice/content';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import { UmbObjectState, appendToFrozenArray, jsonStringComparison } from '@umbraco-cms/backoffice/observable-api';
|
||||
import { appendToFrozenArray, jsonStringComparison } from '@umbraco-cms/backoffice/observable-api';
|
||||
import { UmbVariantId, type UmbEntityVariantModel } from '@umbraco-cms/backoffice/variant';
|
||||
import { UmbEntityWorkspaceDataManager, type UmbWorkspaceDataManager } from '@umbraco-cms/backoffice/workspace';
|
||||
|
||||
@@ -18,9 +18,6 @@ export class UmbContentWorkspaceDataManager<
|
||||
//#repository;
|
||||
#variantScaffold?: ModelVariantType;
|
||||
|
||||
#persisted = new UmbObjectState<ModelType | undefined>(undefined);
|
||||
#current = new UmbObjectState<ModelType | undefined>(undefined);
|
||||
|
||||
#varies?: boolean;
|
||||
//#variesByCulture?: boolean;
|
||||
//#variesBySegment?: boolean;
|
||||
@@ -33,7 +30,7 @@ export class UmbContentWorkspaceDataManager<
|
||||
#updateLock = 0;
|
||||
initiatePropertyValueChange() {
|
||||
this.#updateLock++;
|
||||
this.#current.mute();
|
||||
this._current.mute();
|
||||
// TODO: When ready enable this code will enable handling a finish automatically by this implementation 'using myState.initiatePropertyValueChange()' (Relies on TS support of Using) [NL]
|
||||
/*return {
|
||||
[Symbol.dispose]: this.finishPropertyValueChange,
|
||||
@@ -45,7 +42,7 @@ export class UmbContentWorkspaceDataManager<
|
||||
};
|
||||
#triggerPropertyValueChanges() {
|
||||
if (this.#updateLock === 0) {
|
||||
this.#current.unmute();
|
||||
this._current.unmute();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +63,7 @@ export class UmbContentWorkspaceDataManager<
|
||||
}
|
||||
|
||||
updateVariantData(variantId: UmbVariantId, update?: Partial<ModelVariantType>) {
|
||||
const currentData = this.#current.getValue();
|
||||
const currentData = this.getCurrent();
|
||||
if (!currentData) throw new Error('Data is missing');
|
||||
if (!this.#variantScaffold) throw new Error('Variant scaffold data is missing');
|
||||
if (this.#varies === true) {
|
||||
@@ -84,7 +81,7 @@ export class UmbContentWorkspaceDataManager<
|
||||
(x) => variantId.compare(x),
|
||||
) as Array<ModelVariantType>;
|
||||
// TODO: I have some trouble with TypeScript here, I does not look like me, but i had to give up. [NL]
|
||||
this.#current.update({ variants: newVariants } as any);
|
||||
this._current.update({ variants: newVariants } as any);
|
||||
} else if (this.#varies === false) {
|
||||
// TODO: Beware about segments, in this case we need to also consider segments, if its allowed to vary by segments.
|
||||
const invariantVariantId = UmbVariantId.CreateInvariant();
|
||||
@@ -99,7 +96,7 @@ export class UmbContentWorkspaceDataManager<
|
||||
} as ModelVariantType,
|
||||
];
|
||||
// TODO: I have some trouble with TypeScript here, I does not look like me, but i had to give up. [NL]
|
||||
this.#current.update({ variants: newVariants } as any);
|
||||
this._current.update({ variants: newVariants } as any);
|
||||
} else {
|
||||
throw new Error('Varies by culture is missing');
|
||||
}
|
||||
@@ -117,7 +114,7 @@ export class UmbContentWorkspaceDataManager<
|
||||
variantsToStore = [...selectedVariants, invariantVariantId];
|
||||
}
|
||||
|
||||
const data = this.#current.getValue();
|
||||
const data = this._current.getValue();
|
||||
if (!data) throw new Error('Current data is missing');
|
||||
if (!data.unique) throw new Error('Unique of current data is missing');
|
||||
|
||||
@@ -132,8 +129,8 @@ export class UmbContentWorkspaceDataManager<
|
||||
}
|
||||
|
||||
getChangedVariants() {
|
||||
const persisted = this.#persisted.getValue();
|
||||
const current = this.#current.getValue();
|
||||
const persisted = this.getPersisted();
|
||||
const current = this.getCurrent();
|
||||
if (!current) throw new Error('Current data is missing');
|
||||
|
||||
const changedVariants = current?.variants.map((variant) => {
|
||||
|
||||
@@ -14,20 +14,20 @@ export class UmbEntityWorkspaceDataManager<ModelType extends UmbEntityModel>
|
||||
extends UmbControllerBase
|
||||
implements UmbWorkspaceDataManager<ModelType>
|
||||
{
|
||||
#persisted = new UmbObjectState<ModelType | undefined>(undefined);
|
||||
#current = new UmbObjectState<ModelType | undefined>(undefined);
|
||||
protected readonly _persisted = new UmbObjectState<ModelType | undefined>(undefined);
|
||||
protected readonly _current = new UmbObjectState<ModelType | undefined>(undefined);
|
||||
|
||||
/**
|
||||
* Observable of the persisted data
|
||||
* @memberof UmbEntityWorkspaceDataManager
|
||||
*/
|
||||
public readonly persisted = this.#persisted.asObservable();
|
||||
public readonly persisted = this._persisted.asObservable();
|
||||
|
||||
/**
|
||||
* Observable of the current data
|
||||
* @memberof UmbEntityWorkspaceDataManager
|
||||
*/
|
||||
public readonly current = this.#current.asObservable();
|
||||
public readonly current = this._current.asObservable();
|
||||
|
||||
/**
|
||||
* Gets persisted data
|
||||
@@ -35,7 +35,7 @@ export class UmbEntityWorkspaceDataManager<ModelType extends UmbEntityModel>
|
||||
* @memberof UmbSubmittableWorkspaceDataManager
|
||||
*/
|
||||
getPersisted() {
|
||||
return this.#persisted.getValue();
|
||||
return this._persisted.getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -44,7 +44,7 @@ export class UmbEntityWorkspaceDataManager<ModelType extends UmbEntityModel>
|
||||
* @memberof UmbSubmittableWorkspaceDataManager
|
||||
*/
|
||||
setPersisted(data: ModelType | undefined) {
|
||||
this.#persisted.setValue(data);
|
||||
this._persisted.setValue(data);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -53,7 +53,7 @@ export class UmbEntityWorkspaceDataManager<ModelType extends UmbEntityModel>
|
||||
* @memberof UmbSubmittableWorkspaceDataManager
|
||||
*/
|
||||
updatePersisted(partialData: Partial<ModelType>) {
|
||||
this.#persisted.update(partialData);
|
||||
this._persisted.update(partialData);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -64,7 +64,7 @@ export class UmbEntityWorkspaceDataManager<ModelType extends UmbEntityModel>
|
||||
* @memberof UmbEntityWorkspaceDataManager
|
||||
*/
|
||||
createObservablePartOfPersisted<ReturnType>(mappingFunction: MappingFunction<ModelType | undefined, ReturnType>) {
|
||||
return this.#persisted.asObservablePart(mappingFunction);
|
||||
return this._persisted.asObservablePart(mappingFunction);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -73,7 +73,7 @@ export class UmbEntityWorkspaceDataManager<ModelType extends UmbEntityModel>
|
||||
* @memberof UmbSubmittableWorkspaceDataManager
|
||||
*/
|
||||
getCurrent() {
|
||||
return this.#current.getValue();
|
||||
return this._current.getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -82,7 +82,7 @@ export class UmbEntityWorkspaceDataManager<ModelType extends UmbEntityModel>
|
||||
* @memberof UmbSubmittableWorkspaceDataManager
|
||||
*/
|
||||
setCurrent(data: ModelType | undefined) {
|
||||
this.#current.setValue(data);
|
||||
this._current.setValue(data);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -91,7 +91,7 @@ export class UmbEntityWorkspaceDataManager<ModelType extends UmbEntityModel>
|
||||
* @memberof UmbSubmittableWorkspaceDataManager
|
||||
*/
|
||||
updateCurrent(partialData: Partial<ModelType>) {
|
||||
this.#current.update(partialData);
|
||||
this._current.update(partialData);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -102,7 +102,7 @@ export class UmbEntityWorkspaceDataManager<ModelType extends UmbEntityModel>
|
||||
* @memberof UmbEntityWorkspaceDataManager
|
||||
*/
|
||||
createObservablePartOfCurrent<ReturnType>(mappingFunction: MappingFunction<ModelType | undefined, ReturnType>) {
|
||||
return this.#current.asObservablePart(mappingFunction);
|
||||
return this._current.asObservablePart(mappingFunction);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -111,8 +111,8 @@ export class UmbEntityWorkspaceDataManager<ModelType extends UmbEntityModel>
|
||||
* @memberof UmbSubmittableWorkspaceDataManager
|
||||
*/
|
||||
getHasUnpersistedChanges() {
|
||||
const persisted = this.#persisted.getValue();
|
||||
const current = this.#current.getValue();
|
||||
const persisted = this._persisted.getValue();
|
||||
const current = this._current.getValue();
|
||||
return jsonStringComparison(persisted, current) === false;
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ export class UmbEntityWorkspaceDataManager<ModelType extends UmbEntityModel>
|
||||
* @memberof UmbSubmittableWorkspaceDataManager
|
||||
*/
|
||||
resetCurrent() {
|
||||
this.#current.setValue(this.#persisted.getValue());
|
||||
this._current.setValue(this._persisted.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -129,13 +129,13 @@ export class UmbEntityWorkspaceDataManager<ModelType extends UmbEntityModel>
|
||||
* @memberof UmbSubmittableWorkspaceDataManager
|
||||
*/
|
||||
clear() {
|
||||
this.#persisted.setValue(undefined);
|
||||
this.#current.setValue(undefined);
|
||||
this._persisted.setValue(undefined);
|
||||
this._current.setValue(undefined);
|
||||
}
|
||||
|
||||
override destroy() {
|
||||
this.#persisted.destroy();
|
||||
this.#current.destroy();
|
||||
this._persisted.destroy();
|
||||
this._current.destroy();
|
||||
super.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user