rename "tracked references" to "references"
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import './components/index.js';
|
||||
|
||||
export * from './repository/index.js';
|
||||
export * from './tracked-reference/index.js';
|
||||
export * from './reference/index.js';
|
||||
export * from './workspace/index.js';
|
||||
export * from './recycle-bin/index.js';
|
||||
export * from './user-permissions/index.js';
|
||||
|
||||
@@ -6,7 +6,7 @@ import { manifests as menuManifests } from './menu/manifests.js';
|
||||
import { manifests as propertyEditorManifests } from './property-editors/manifests.js';
|
||||
import { manifests as recycleBinManifests } from './recycle-bin/manifests.js';
|
||||
import { manifests as repositoryManifests } from './repository/manifests.js';
|
||||
import { manifests as trackedReferenceManifests } from './tracked-reference/manifests.js';
|
||||
import { manifests as trackedReferenceManifests } from './reference/manifests.js';
|
||||
import { manifests as treeManifests } from './tree/manifests.js';
|
||||
import { manifests as userPermissionManifests } from './user-permissions/manifests.js';
|
||||
import { manifests as workspaceManifests } from './workspace/manifests.js';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { UmbDocumentVariantState, type UmbDocumentVariantOptionModel } from '../../types.js';
|
||||
import { UmbDocumentTrackedReferenceRepository } from '../../tracked-reference/index.js';
|
||||
import { UmbDocumentReferenceRepository } from '../../reference/index.js';
|
||||
import { UMB_DOCUMENT_CONFIGURATION_CONTEXT } from '../../global-contexts/index.js';
|
||||
import type {
|
||||
UmbDocumentUnpublishModalData,
|
||||
@@ -18,20 +18,20 @@ export class UmbDocumentUnpublishModalElement extends UmbModalBaseElement<
|
||||
UmbDocumentUnpublishModalValue
|
||||
> {
|
||||
#selectionManager = new UmbSelectionManager<string>(this);
|
||||
#trackedReferencesRepository = new UmbDocumentTrackedReferenceRepository(this);
|
||||
#referencesRepository = new UmbDocumentReferenceRepository(this);
|
||||
|
||||
@state()
|
||||
_options: Array<UmbDocumentVariantOptionModel> = [];
|
||||
|
||||
@state()
|
||||
_hasTrackedReferences = false;
|
||||
_hasReferences = false;
|
||||
|
||||
@state()
|
||||
_hasUnpublishPermission = true;
|
||||
|
||||
firstUpdated() {
|
||||
this.#configureSelectionManager();
|
||||
this.#getTrackedReferences();
|
||||
this.#getReferences();
|
||||
}
|
||||
|
||||
async #configureSelectionManager() {
|
||||
@@ -56,14 +56,10 @@ export class UmbDocumentUnpublishModalElement extends UmbModalBaseElement<
|
||||
this.#selectionManager.setSelection(selected);
|
||||
}
|
||||
|
||||
async #getTrackedReferences() {
|
||||
async #getReferences() {
|
||||
if (!this.data?.documentUnique) return;
|
||||
|
||||
const { data, error } = await this.#trackedReferencesRepository.requestTrackedReference(
|
||||
this.data?.documentUnique,
|
||||
0,
|
||||
1,
|
||||
);
|
||||
const { data, error } = await this.#referencesRepository.requestReference(this.data?.documentUnique, 0, 1);
|
||||
|
||||
if (error) {
|
||||
console.error(error);
|
||||
@@ -72,10 +68,10 @@ export class UmbDocumentUnpublishModalElement extends UmbModalBaseElement<
|
||||
|
||||
if (!data) return;
|
||||
|
||||
this._hasTrackedReferences = data.total > 0;
|
||||
this._hasReferences = data.total > 0;
|
||||
|
||||
// If there are tracked references, we also want to check if we are allowed to unpublish the document:
|
||||
if (this._hasTrackedReferences) {
|
||||
// If there are references, we also want to check if we are allowed to unpublish the document:
|
||||
if (this._hasReferences) {
|
||||
const documentConfigurationContext = await this.getContext(UMB_DOCUMENT_CONFIGURATION_CONTEXT);
|
||||
this._hasUnpublishPermission =
|
||||
(await documentConfigurationContext.getDocumentConfiguration())?.disableUnpublishWhenReferenced === false;
|
||||
@@ -115,13 +111,13 @@ export class UmbDocumentUnpublishModalElement extends UmbModalBaseElement<
|
||||
|
||||
${this.data?.documentUnique
|
||||
? html`
|
||||
<umb-document-tracked-reference-table
|
||||
id="tracked-references"
|
||||
unique=${this.data?.documentUnique}></umb-document-tracked-reference-table>
|
||||
<umb-document-reference-table
|
||||
id="references"
|
||||
unique=${this.data?.documentUnique}></umb-document-reference-table>
|
||||
`
|
||||
: nothing}
|
||||
${this._hasTrackedReferences
|
||||
? html`<uui-box id="tracked-references-warning">
|
||||
${this._hasReferences
|
||||
? html`<uui-box id="references-warning">
|
||||
<umb-localize key="references_unpublishWarning">
|
||||
This item or its descendants is being referenced. Unpublishing can lead to broken links on your website.
|
||||
Please take the appropriate actions.
|
||||
@@ -150,11 +146,11 @@ export class UmbDocumentUnpublishModalElement extends UmbModalBaseElement<
|
||||
max-width: 90vw;
|
||||
}
|
||||
|
||||
#tracked-references {
|
||||
#references {
|
||||
--uui-table-cell-padding: 0;
|
||||
}
|
||||
|
||||
#tracked-references-warning {
|
||||
#references-warning {
|
||||
margin-top: 1rem;
|
||||
background-color: var(--uui-color-danger);
|
||||
color: var(--uui-color-danger-contrast);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { UmbDocumentTrackedReferenceRepository } from '../repository/index.js';
|
||||
import { UmbDocumentReferenceRepository } from '../repository/index.js';
|
||||
import { css, customElement, html, nothing, property, repeat, state } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
|
||||
@@ -9,9 +9,9 @@ import {
|
||||
isDefaultReference,
|
||||
} from '@umbraco-cms/backoffice/relations';
|
||||
|
||||
@customElement('umb-document-tracked-reference-table')
|
||||
export class UmbDocumentTrackedReferenceTableElement extends UmbLitElement {
|
||||
#documentTrackedReferenceRepository = new UmbDocumentTrackedReferenceRepository(this);
|
||||
@customElement('umb-document-reference-table')
|
||||
export class UmbDocumentReferenceTableElement extends UmbLitElement {
|
||||
#documentReferenceRepository = new UmbDocumentReferenceRepository(this);
|
||||
#pageSize = 10;
|
||||
|
||||
@property()
|
||||
@@ -31,16 +31,12 @@ export class UmbDocumentTrackedReferenceTableElement extends UmbLitElement {
|
||||
_errorMessage = '';
|
||||
|
||||
firstUpdated() {
|
||||
this.#getTrackedReferences();
|
||||
this.#getReferences();
|
||||
}
|
||||
|
||||
async #getTrackedReferences() {
|
||||
// Get the first 10 tracked references for the document:
|
||||
const { data, error } = await this.#documentTrackedReferenceRepository.requestTrackedReference(
|
||||
this.unique,
|
||||
0,
|
||||
this.#pageSize,
|
||||
);
|
||||
async #getReferences() {
|
||||
// Get the first 10 references for the document:
|
||||
const { data, error } = await this.#documentReferenceRepository.requestReference(this.unique, 0, this.#pageSize);
|
||||
|
||||
if (error) {
|
||||
this._errorMessage = error.message;
|
||||
@@ -142,6 +138,6 @@ export class UmbDocumentTrackedReferenceTableElement extends UmbLitElement {
|
||||
|
||||
declare global {
|
||||
interface HTMLElementTagNameMap {
|
||||
'umb-document-tracked-reference-table': UmbDocumentTrackedReferenceTableElement;
|
||||
'umb-document-reference-table': UmbDocumentReferenceTableElement;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import type { Meta, StoryObj } from '@storybook/web-components';
|
||||
import type { UmbDocumentReferenceTableElement } from './document-reference-table.element.js';
|
||||
import { html } from '@umbraco-cms/backoffice/external/lit';
|
||||
|
||||
import './document-reference-table.element.js';
|
||||
|
||||
const meta: Meta<UmbDocumentReferenceTableElement> = {
|
||||
id: 'umb-document-reference-table',
|
||||
title: 'Components/Document/Reference Table',
|
||||
component: 'umb-document-reference-table',
|
||||
args: {
|
||||
unique: '1234',
|
||||
},
|
||||
parameters: {
|
||||
actions: {
|
||||
disabled: true,
|
||||
},
|
||||
docs: {
|
||||
source: {
|
||||
language: 'html',
|
||||
code: `
|
||||
<umb-document-reference-table unique="<Content GUID>"></umb-document-reference-table>
|
||||
`,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default meta;
|
||||
|
||||
type Story = StoryObj<UmbDocumentReferenceTableElement>;
|
||||
|
||||
export const Overview: Story = {};
|
||||
|
||||
export const SlimTable: Story = {
|
||||
decorators: [
|
||||
(story) => {
|
||||
return html`<div style="--uui-table-cell-padding: 0;">${story()}</div>`;
|
||||
},
|
||||
],
|
||||
parameters: {
|
||||
docs: {
|
||||
source: {
|
||||
language: 'html',
|
||||
code: `
|
||||
<umb-document-reference-table unique="<Content GUID>" style="--uui-table-cell-padding:0"></umb-document-reference-table>
|
||||
`,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
export * from './document-reference-table.element.js';
|
||||
@@ -0,0 +1,19 @@
|
||||
import { UmbDocumentReferenceServerDataSource } from './document-reference.server.data.js';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
|
||||
|
||||
export class UmbDocumentReferenceRepository extends UmbControllerBase {
|
||||
#referenceSource: UmbDocumentReferenceServerDataSource;
|
||||
|
||||
constructor(host: UmbControllerHost) {
|
||||
super(host);
|
||||
this.#referenceSource = new UmbDocumentReferenceServerDataSource(this);
|
||||
}
|
||||
|
||||
async requestReference(unique: string, skip = 0, take = 20) {
|
||||
if (!unique) throw new Error(`unique is required`);
|
||||
return this.#referenceSource.getReferenceById(unique, skip, take);
|
||||
}
|
||||
}
|
||||
|
||||
export default UmbDocumentReferenceRepository;
|
||||
@@ -0,0 +1,31 @@
|
||||
import { DocumentResource } from '@umbraco-cms/backoffice/external/backend-api';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @class UmbUserGroupCollectionServerDataSource
|
||||
* @implements {RepositoryDetailDataSource}
|
||||
*/
|
||||
export class UmbDocumentReferenceServerDataSource {
|
||||
#host: UmbControllerHost;
|
||||
|
||||
/**
|
||||
* Creates an instance of UmbDocumentTrackedReferenceServerDataSource.
|
||||
* @param {UmbControllerHost} host
|
||||
* @memberof UmbDocumentTrackedReferenceServerDataSource
|
||||
*/
|
||||
constructor(host: UmbControllerHost) {
|
||||
this.#host = host;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches the item for the given id from the server
|
||||
* @param {Array<string>} ids
|
||||
* @return {*}
|
||||
* @memberof UmbDataTypeItemServerDataSource
|
||||
*/
|
||||
async getReferenceById(id: string, skip = 0, take = 20) {
|
||||
return await tryExecuteAndNotify(this.#host, DocumentResource.getDocumentByIdReferencedBy({ id, skip, take }));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export * from './document-reference.repository.js';
|
||||
@@ -6,7 +6,7 @@ const repository: ManifestRepository = {
|
||||
type: 'repository',
|
||||
alias: UMB_DOCUMENT_TRACKED_REFERENCE_REPOSITORY_ALIAS,
|
||||
name: 'Document Tracked Reference Repository',
|
||||
api: () => import('./document-tracked-reference.repository.js'),
|
||||
api: () => import('./document-reference.repository.js'),
|
||||
};
|
||||
|
||||
export const manifests = [repository];
|
||||
@@ -1,51 +0,0 @@
|
||||
import type { Meta, StoryObj } from '@storybook/web-components';
|
||||
import type { UmbDocumentTrackedReferenceTableElement } from './document-tracked-reference-table.element.js';
|
||||
import { html } from '@umbraco-cms/backoffice/external/lit';
|
||||
|
||||
import './document-tracked-reference-table.element.js';
|
||||
|
||||
const meta: Meta<UmbDocumentTrackedReferenceTableElement> = {
|
||||
id: 'umb-document-tracked-reference-table',
|
||||
title: 'Components/Document/Tracked Reference Table',
|
||||
component: 'umb-document-tracked-reference-table',
|
||||
args: {
|
||||
unique: '1234',
|
||||
},
|
||||
parameters: {
|
||||
actions: {
|
||||
disabled: true,
|
||||
},
|
||||
docs: {
|
||||
source: {
|
||||
language: 'html',
|
||||
code: `
|
||||
<umb-document-tracked-reference-table unique="<Content GUID>"></umb-document-tracked-reference-table>
|
||||
`,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default meta;
|
||||
|
||||
type Story = StoryObj<UmbDocumentTrackedReferenceTableElement>;
|
||||
|
||||
export const Overview: Story = {};
|
||||
|
||||
export const SlimTable: Story = {
|
||||
decorators: [
|
||||
(story) => {
|
||||
return html`<div style="--uui-table-cell-padding: 0;">${story()}</div>`;
|
||||
},
|
||||
],
|
||||
parameters: {
|
||||
docs: {
|
||||
source: {
|
||||
language: 'html',
|
||||
code: `
|
||||
<umb-document-tracked-reference-table unique="<Content GUID>" style="--uui-table-cell-padding:0"></umb-document-tracked-reference-table>
|
||||
`,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -1 +0,0 @@
|
||||
export * from './document-tracked-reference-table.element.js';
|
||||
@@ -1,29 +0,0 @@
|
||||
import { UmbDocumentTrackedReferenceServerDataSource } from './document-tracked-reference.server.data.js';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
|
||||
|
||||
export class UmbDocumentTrackedReferenceRepository extends UmbControllerBase {
|
||||
#trackedReferenceSource: UmbDocumentTrackedReferenceServerDataSource;
|
||||
|
||||
constructor(host: UmbControllerHost) {
|
||||
super(host);
|
||||
this.#trackedReferenceSource = new UmbDocumentTrackedReferenceServerDataSource(this);
|
||||
}
|
||||
|
||||
async requestTrackedReference(unique: string, skip = 0, take = 20) {
|
||||
if (!unique) throw new Error(`unique is required`);
|
||||
return this.#trackedReferenceSource.getTrackedReferenceById(unique, skip, take);
|
||||
}
|
||||
|
||||
async requestTrackedReferenceDescendantsFromParentUnique(parentUnique: string, skip = 0, take = 20) {
|
||||
if (!parentUnique) throw new Error(`unique is required`);
|
||||
return this.#trackedReferenceSource.getTrackedReferenceDescendantsByParentId(parentUnique, skip, take);
|
||||
}
|
||||
|
||||
async requestTrackedReferenceItems(uniques: string[], skip = 0, take = 20) {
|
||||
if (!uniques) throw new Error(`unique is required`);
|
||||
return this.#trackedReferenceSource.getTrackedReferenceItem(uniques, skip, take);
|
||||
}
|
||||
}
|
||||
|
||||
export default UmbDocumentTrackedReferenceRepository;
|
||||
@@ -1,65 +0,0 @@
|
||||
import { DocumentResource } from '@umbraco-cms/backoffice/external/backend-api';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @class UmbUserGroupCollectionServerDataSource
|
||||
* @implements {RepositoryDetailDataSource}
|
||||
*/
|
||||
export class UmbDocumentTrackedReferenceServerDataSource {
|
||||
#host: UmbControllerHost;
|
||||
|
||||
/**
|
||||
* Creates an instance of UmbDocumentTrackedReferenceServerDataSource.
|
||||
* @param {UmbControllerHost} host
|
||||
* @memberof UmbDocumentTrackedReferenceServerDataSource
|
||||
*/
|
||||
constructor(host: UmbControllerHost) {
|
||||
this.#host = host;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches the item for the given id from the server
|
||||
* @param {Array<string>} ids
|
||||
* @return {*}
|
||||
* @memberof UmbDataTypeItemServerDataSource
|
||||
*/
|
||||
async getTrackedReferenceById(id: string, skip = 0, take = 20) {
|
||||
return await tryExecuteAndNotify(this.#host, DocumentResource.getDocumentByIdReferencedBy({ id, skip, take }));
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches the item descendant for the given id from the server
|
||||
* @param {Array<string>} ids
|
||||
* @return {*}
|
||||
* @memberof UmbDocumentTrackedReferenceServerDataSource
|
||||
*/
|
||||
async getTrackedReferenceDescendantsByParentId(parentId: string, skip = 0, take = 20) {
|
||||
return await tryExecuteAndNotify(
|
||||
this.#host,
|
||||
DocumentResource.getDocumentByIdReferencedDescendants({
|
||||
id: parentId,
|
||||
skip,
|
||||
take,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches the items for the given ids from the server
|
||||
* @param {Array<string>} ids
|
||||
* @return {*}
|
||||
* @memberof UmbDocumentTrackedReferenceServerDataSource
|
||||
*/
|
||||
async getTrackedReferenceItem(id: string[], skip = 0, take = 20) {
|
||||
return await tryExecuteAndNotify(
|
||||
this.#host,
|
||||
DocumentResource.getDocumentAreReferenced({
|
||||
id,
|
||||
skip,
|
||||
take,
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
export * from './document-tracked-reference.repository.js';
|
||||
@@ -1,4 +1,4 @@
|
||||
import { UmbDocumentTrackedReferenceRepository } from '../../../tracked-reference/index.js';
|
||||
import { UmbDocumentReferenceRepository } from '../../../reference/index.js';
|
||||
import { css, html, customElement, state, nothing, repeat, property } from '@umbraco-cms/backoffice/external/lit';
|
||||
import type { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
@@ -14,7 +14,7 @@ import {
|
||||
@customElement('umb-document-workspace-view-info-reference')
|
||||
export class UmbDocumentWorkspaceViewInfoReferenceElement extends UmbLitElement {
|
||||
#itemsPerPage = 10;
|
||||
#trackedReferenceRepository;
|
||||
#referenceRepository;
|
||||
|
||||
@property()
|
||||
documentUnique = '';
|
||||
@@ -33,7 +33,7 @@ export class UmbDocumentWorkspaceViewInfoReferenceElement extends UmbLitElement
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.#trackedReferenceRepository = new UmbDocumentTrackedReferenceRepository(this);
|
||||
this.#referenceRepository = new UmbDocumentReferenceRepository(this);
|
||||
|
||||
new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL)
|
||||
.addAdditionalPath('document')
|
||||
@@ -50,7 +50,7 @@ export class UmbDocumentWorkspaceViewInfoReferenceElement extends UmbLitElement
|
||||
}
|
||||
|
||||
async #getReferences() {
|
||||
const { data } = await this.#trackedReferenceRepository.requestTrackedReference(
|
||||
const { data } = await this.#referenceRepository.requestReference(
|
||||
this.documentUnique,
|
||||
(this._currentPage - 1) * this.#itemsPerPage,
|
||||
this.#itemsPerPage,
|
||||
|
||||
Reference in New Issue
Block a user