make rename for server files
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
export * from './types.js';
|
||||
export * from './rename.action.js';
|
||||
export * from './rename-repository-base.js';
|
||||
export * from './rename-server-file.action.js';
|
||||
export * from './rename-server-file-repository-base.js';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { manifests as renameModalManifests } from './modal/manifests.js';
|
||||
import { manifest as renameKindManifest } from './rename.action.kind.js';
|
||||
import { manifest as renameKindManifest } from './rename-server-file.action.kind.js';
|
||||
|
||||
export const manifests = [...renameModalManifests, renameKindManifest];
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry';
|
||||
|
||||
export const UMB_RENAME_MODAL_ALIAS = 'Umb.Modal.Rename';
|
||||
export const UMB_RENAME_SERVER_FILE_MODAL_ALIAS = 'Umb.Modal.ServerFile.Rename';
|
||||
|
||||
export const manifests: Array<ManifestModal> = [
|
||||
{
|
||||
type: 'modal',
|
||||
alias: UMB_RENAME_MODAL_ALIAS,
|
||||
name: 'Rename Modal',
|
||||
js: () => import('./rename-modal.element.js'),
|
||||
alias: UMB_RENAME_SERVER_FILE_MODAL_ALIAS,
|
||||
name: 'Rename Server File Modal',
|
||||
js: () => import('./rename-server-file-modal.element.js'),
|
||||
},
|
||||
];
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
import { UMB_RENAME_MODAL_ALIAS } from './manifests.js';
|
||||
import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
|
||||
|
||||
export interface UmbRenameModalData {
|
||||
renameRepositoryAlias: string;
|
||||
itemRepositoryAlias: string;
|
||||
unique: string;
|
||||
}
|
||||
|
||||
export interface UmbRenameModalValue {}
|
||||
|
||||
export const UMB_RENAME_MODAL = new UmbModalToken<UmbRenameModalData, UmbRenameModalValue>(UMB_RENAME_MODAL_ALIAS, {
|
||||
modal: {
|
||||
type: 'sidebar',
|
||||
size: 'small',
|
||||
},
|
||||
});
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { UmbRenameRepository } from '../types.js';
|
||||
import type { UmbRenameModalData, UmbRenameModalValue } from './rename-modal.token.js';
|
||||
import type { UmbRenameServerFileRepository } from '../types.js';
|
||||
import type { UmbRenameModalData, UmbRenameServerFileModalValue } from './rename-server-file-modal.token.js';
|
||||
import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { html, customElement, css, state } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
|
||||
@@ -9,10 +9,10 @@ import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registr
|
||||
import type { UmbItemRepository } from '@umbraco-cms/backoffice/repository';
|
||||
|
||||
@customElement('umb-rename-modal')
|
||||
export class UmbRenameModalElement extends UmbModalBaseElement<UmbRenameModalData, UmbRenameModalValue> {
|
||||
export class UmbRenameModalElement extends UmbModalBaseElement<UmbRenameModalData, UmbRenameServerFileModalValue> {
|
||||
// TODO: make base type for item and detail models
|
||||
#itemRepository?: UmbItemRepository<any>;
|
||||
#renameRepository?: UmbRenameRepository<any>;
|
||||
#renameRepository?: UmbRenameServerFileRepository<any>;
|
||||
#init?: Promise<unknown>;
|
||||
|
||||
@state()
|
||||
@@ -46,7 +46,7 @@ export class UmbRenameModalElement extends UmbModalBaseElement<UmbRenameModalDat
|
||||
this.data.renameRepositoryAlias,
|
||||
[this],
|
||||
(permitted, ctrl) => {
|
||||
this.#renameRepository = permitted ? (ctrl.api as UmbRenameRepository<any>) : undefined;
|
||||
this.#renameRepository = permitted ? (ctrl.api as UmbRenameServerFileRepository<any>) : undefined;
|
||||
},
|
||||
).asPromise(),
|
||||
]);
|
||||
@@ -0,0 +1,20 @@
|
||||
import { UMB_RENAME_SERVER_FILE_MODAL_ALIAS } from './manifests.js';
|
||||
import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
|
||||
|
||||
export interface UmbRenameModalData {
|
||||
renameRepositoryAlias: string;
|
||||
itemRepositoryAlias: string;
|
||||
unique: string;
|
||||
}
|
||||
|
||||
export interface UmbRenameServerFileModalValue {}
|
||||
|
||||
export const UMB_RENAME_SERVER_FILE_MODAL = new UmbModalToken<UmbRenameModalData, UmbRenameServerFileModalValue>(
|
||||
UMB_RENAME_SERVER_FILE_MODAL_ALIAS,
|
||||
{
|
||||
modal: {
|
||||
type: 'sidebar',
|
||||
size: 'small',
|
||||
},
|
||||
},
|
||||
);
|
||||
@@ -1,14 +1,14 @@
|
||||
import type { UmbRenameServerFileDataSource, UmbRenameServerFileDataSourceConstructor } from './types.js';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification';
|
||||
import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification';
|
||||
import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository';
|
||||
import type { UmbRenameDataSource, UmbRenameDataSourceConstructor } from '@umbraco-cms/backoffice/entity-action';
|
||||
import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
|
||||
|
||||
export abstract class UmbRenameRepositoryBase<DetailModelType extends { unique: string }> extends UmbRepositoryBase {
|
||||
#renameSource: UmbRenameDataSource<DetailModelType>;
|
||||
export abstract class UmbRenameServerFileRepositoryBase<
|
||||
DetailModelType extends { unique: string },
|
||||
> extends UmbRepositoryBase {
|
||||
#renameSource: UmbRenameServerFileDataSource<DetailModelType>;
|
||||
|
||||
constructor(host: UmbControllerHost, detailSource: UmbRenameDataSourceConstructor<DetailModelType>) {
|
||||
constructor(host: UmbControllerHost, detailSource: UmbRenameServerFileDataSourceConstructor<DetailModelType>) {
|
||||
super(host);
|
||||
this.#renameSource = new detailSource(host);
|
||||
}
|
||||
@@ -18,7 +18,7 @@ export abstract class UmbRenameRepositoryBase<DetailModelType extends { unique:
|
||||
* @param {string} unique
|
||||
* @param {string} name
|
||||
* @return {*}
|
||||
* @memberof UmbRenameRepositoryBase
|
||||
* @memberof UmbRenameServerFileRepositoryBase
|
||||
*/
|
||||
async rename(unique: string, name: string) {
|
||||
if (!unique) throw new Error('Unique is missing');
|
||||
@@ -3,14 +3,14 @@ import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extensio
|
||||
|
||||
export const manifest: UmbBackofficeManifestKind = {
|
||||
type: 'kind',
|
||||
alias: 'Umb.Kind.EntityAction.Rename',
|
||||
matchKind: 'rename',
|
||||
alias: 'Umb.Kind.EntityAction.ServerFile.Rename',
|
||||
matchKind: 'renameServerFile',
|
||||
matchType: 'entityAction',
|
||||
manifest: {
|
||||
...UMB_ENTITY_ACTION_DEFAULT_KIND_MANIFEST.manifest,
|
||||
type: 'entityAction',
|
||||
kind: 'rename',
|
||||
api: () => import('./rename.action.js'),
|
||||
kind: 'renameServerFile',
|
||||
api: () => import('./rename-server-file.action.js'),
|
||||
weight: 200,
|
||||
forEntityTypes: [],
|
||||
meta: {
|
||||
@@ -1,4 +1,4 @@
|
||||
import { UMB_RENAME_MODAL } from './modal/rename-modal.token.js';
|
||||
import { UMB_RENAME_SERVER_FILE_MODAL } from './modal/rename-server-file-modal.token.js';
|
||||
import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action';
|
||||
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
|
||||
import type { MetaEntityActionRenameKind } from '@umbraco-cms/backoffice/extension-registry';
|
||||
@@ -10,7 +10,7 @@ export class UmbRenameEntityAction extends UmbEntityActionBase<MetaEntityActionR
|
||||
if (!this.args.unique) throw new Error('Unique is required to rename an entity');
|
||||
|
||||
const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
|
||||
const modalContext = modalManager.open(this, UMB_RENAME_MODAL, {
|
||||
const modalContext = modalManager.open(this, UMB_RENAME_SERVER_FILE_MODAL, {
|
||||
data: {
|
||||
unique: this.args.unique,
|
||||
renameRepositoryAlias: this.args.meta.renameRepositoryAlias,
|
||||
@@ -1,14 +1,14 @@
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import type { UmbDataSourceResponse } from '@umbraco-cms/backoffice/repository';
|
||||
|
||||
export interface UmbRenameRepository<DetailType extends { unique: string }> {
|
||||
export interface UmbRenameServerFileRepository<DetailType extends { unique: string }> {
|
||||
rename(unique: string, name: string): Promise<UmbDataSourceResponse<DetailType>>;
|
||||
}
|
||||
|
||||
export interface UmbRenameDataSourceConstructor<DetailType extends { unique: string }> {
|
||||
new (host: UmbControllerHost): UmbRenameDataSource<DetailType>;
|
||||
export interface UmbRenameServerFileDataSourceConstructor<DetailType extends { unique: string }> {
|
||||
new (host: UmbControllerHost): UmbRenameServerFileDataSource<DetailType>;
|
||||
}
|
||||
|
||||
export interface UmbRenameDataSource<DetailType extends { unique: string }> {
|
||||
export interface UmbRenameServerFileDataSource<DetailType extends { unique: string }> {
|
||||
rename(unique: string, name: string): Promise<UmbDataSourceResponse<DetailType>>;
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from '../../repository/index.js';
|
||||
import type { UmbPartialViewDetailModel } from '../../types.js';
|
||||
import { UmbRenamePartialViewServerDataSource } from './rename-partial-view.server.data-source.js';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import { UmbRenameRepositoryBase } from '@umbraco-cms/backoffice/entity-action';
|
||||
import { UmbRenameServerFileRepositoryBase } from '@umbraco-cms/backoffice/server-file-system';
|
||||
|
||||
export class UmbRenamePartialViewRepository extends UmbRenameRepositoryBase<UmbPartialViewDetailModel> {
|
||||
export class UmbRenamePartialViewRepository extends UmbRenameServerFileRepositoryBase<UmbPartialViewDetailModel> {
|
||||
constructor(host: UmbControllerHost) {
|
||||
super(host, UmbRenamePartialViewServerDataSource);
|
||||
super(host, UmbRenamePartialViewServerDataSource, UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
export { UmbPartialViewDetailRepository } from './partial-view-detail.repository.js';
|
||||
export { UMB_PARTIAL_VIEW_DETAIL_REPOSITORY_ALIAS } from './manifests.js';
|
||||
export { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from './partial-view-detail.store.js';
|
||||
|
||||
@@ -2,9 +2,9 @@ import { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from '../../repository/index.js';
|
||||
import type { UmbScriptDetailModel } from '../../types.js';
|
||||
import { UmbRenameScriptServerDataSource } from './rename-script.server.data-source.js';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import { UmbRenameRepositoryBase } from '@umbraco-cms/backoffice/entity-action';
|
||||
import { UmbRenameServerFileRepositoryBase } from '@umbraco-cms/backoffice/server-file-system';
|
||||
|
||||
export class UmbRenameScriptRepository extends UmbRenameRepositoryBase<UmbScriptDetailModel> {
|
||||
export class UmbRenameScriptRepository extends UmbRenameServerFileRepositoryBase<UmbScriptDetailModel> {
|
||||
constructor(host: UmbControllerHost) {
|
||||
super(host, UmbRenameScriptServerDataSource, UMB_SCRIPT_DETAIL_STORE_CONTEXT);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user