@umbraco-cms/backoffice 14.0.0-8a5fc0ad → 14.0.0-8c1d7e37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist-cms/apps/backoffice/backoffice.element.js +1 -1
  2. package/dist-cms/custom-elements.json +81 -81
  3. package/dist-cms/mocks/data/partial-views.data.d.ts +19 -3
  4. package/dist-cms/mocks/data/partial-views.data.js +277 -10
  5. package/dist-cms/mocks/data/utils.d.ts +2 -1
  6. package/dist-cms/mocks/data/utils.js +5 -0
  7. package/dist-cms/mocks/handlers/partial-views.handlers.d.ts +2 -1
  8. package/dist-cms/mocks/handlers/partial-views.handlers.js +37 -5
  9. package/dist-cms/packages/core/entity-action/common/create-folder/create-folder.action.d.ts +8 -0
  10. package/dist-cms/packages/core/entity-action/common/create-folder/create-folder.action.js +21 -0
  11. package/dist-cms/packages/core/entity-action/common/index.d.ts +1 -0
  12. package/dist-cms/packages/core/entity-action/common/index.js +1 -0
  13. package/dist-cms/packages/core/modal/common/folder/folder-modal.element.js +4 -1
  14. package/dist-cms/packages/core/modal/token/folder-modal.token.d.ts +1 -0
  15. package/dist-cms/packages/core/section/section-default.element.js +1 -1
  16. package/dist-cms/packages/core/section/section-views/index.d.ts +1 -1
  17. package/dist-cms/packages/core/section/section-views/index.js +1 -1
  18. package/dist-cms/packages/core/tree/file-system-tree-item/file-system-tree-item.context.d.ts +1 -0
  19. package/dist-cms/packages/core/tree/file-system-tree-item/file-system-tree-item.context.js +12 -0
  20. package/dist-cms/packages/core/tree/file-system-tree-item/file-system-tree-item.element.js +1 -0
  21. package/dist-cms/packages/core/workspace/workspace-action/workspace-action.element.js +12 -4
  22. package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/export/export.action.d.ts +0 -1
  23. package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/export/export.action.js +0 -1
  24. package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/import/import.action.d.ts +0 -1
  25. package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/import/import.action.js +0 -1
  26. package/dist-cms/packages/dictionary/dictionary/index.d.ts +1 -0
  27. package/dist-cms/packages/dictionary/dictionary/index.js +1 -0
  28. package/dist-cms/packages/dictionary/dictionary/repository/index.d.ts +3 -0
  29. package/dist-cms/packages/dictionary/dictionary/repository/index.js +3 -0
  30. package/dist-cms/packages/{translation → dictionary}/dictionary/repository/manifests.js +1 -1
  31. package/dist-cms/packages/{translation → dictionary}/section.manifest.js +4 -4
  32. package/dist-cms/packages/{translation → dictionary}/umbraco-package.d.ts +1 -1
  33. package/dist-cms/packages/dictionary/umbraco-package.js +9 -0
  34. package/dist-cms/packages/settings/dashboards/published-status/dashboard-published-status.element.js +11 -3
  35. package/dist-cms/packages/settings/languages/workspace/language/language-workspace.element.d.ts +0 -1
  36. package/dist-cms/packages/settings/languages/workspace/language/language-workspace.element.js +0 -1
  37. package/dist-cms/packages/templating/components/insert-menu/templating-insert-menu.element.js +1 -1
  38. package/dist-cms/packages/templating/manifests.d.ts +6 -1
  39. package/dist-cms/packages/templating/partial-views/config.d.ts +3 -4
  40. package/dist-cms/packages/templating/partial-views/config.js +1 -0
  41. package/dist-cms/packages/templating/partial-views/entity-actions/create/create-empty.action.js +1 -1
  42. package/dist-cms/packages/templating/partial-views/entity-actions/create/create-from-snippet.action.d.ts +10 -1
  43. package/dist-cms/packages/templating/partial-views/entity-actions/create/create-from-snippet.action.js +16 -1
  44. package/dist-cms/packages/templating/partial-views/entity-actions/create/create-from-snippet.modal.d.ts +16 -0
  45. package/dist-cms/packages/templating/partial-views/entity-actions/create/create-from-snippet.modal.js +73 -0
  46. package/dist-cms/packages/templating/partial-views/entity-actions/manifests.d.ts +6 -1
  47. package/dist-cms/packages/templating/partial-views/entity-actions/manifests.js +43 -5
  48. package/dist-cms/packages/templating/partial-views/manifests.d.ts +6 -1
  49. package/dist-cms/packages/templating/partial-views/repository/partial-views.repository.d.ts +39 -23
  50. package/dist-cms/packages/templating/partial-views/repository/partial-views.repository.js +66 -19
  51. package/dist-cms/packages/templating/partial-views/repository/sources/partial-views.detail.server.data.d.ts +48 -13
  52. package/dist-cms/packages/templating/partial-views/repository/sources/partial-views.detail.server.data.js +56 -17
  53. package/dist-cms/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.d.ts +17 -0
  54. package/dist-cms/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.js +23 -0
  55. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace-edit.element.d.ts +6 -1
  56. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace-edit.element.js +123 -27
  57. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace.context.d.ts +8 -6
  58. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace.context.js +47 -6
  59. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace.element.d.ts +1 -0
  60. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace.element.js +7 -3
  61. package/dist-cms/shared/repository/data-source/data-source.interface.d.ts +2 -2
  62. package/dist-cms/shared/repository/detail-repository.interface.d.ts +2 -2
  63. package/dist-cms/tsconfig.tsbuildinfo +1 -1
  64. package/dist-cms/vscode-html-custom-data.json +40 -40
  65. package/package.json +19 -19
  66. package/dist-cms/packages/translation/umbraco-package.js +0 -9
  67. /package/dist-cms/packages/{translation → dictionary}/dashboards/dictionary/dashboard-translation-dictionary.element.d.ts +0 -0
  68. /package/dist-cms/packages/{translation → dictionary}/dashboards/dictionary/dashboard-translation-dictionary.element.js +0 -0
  69. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/create/create-dictionary-modal.element.d.ts +0 -0
  70. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/create/create-dictionary-modal.element.js +0 -0
  71. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/create/create.action.d.ts +0 -0
  72. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/create/create.action.js +0 -0
  73. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/export/export-dictionary-modal.element.d.ts +0 -0
  74. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/export/export-dictionary-modal.element.js +0 -0
  75. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/import/import-dictionary-modal.element.d.ts +0 -0
  76. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/import/import-dictionary-modal.element.js +0 -0
  77. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/manifests.d.ts +0 -0
  78. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/manifests.js +0 -0
  79. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/reload.action.d.ts +0 -0
  80. /package/dist-cms/packages/{translation → dictionary}/dictionary/entity-actions/reload.action.js +0 -0
  81. /package/dist-cms/packages/{translation → dictionary}/dictionary/manifests.d.ts +0 -0
  82. /package/dist-cms/packages/{translation → dictionary}/dictionary/manifests.js +0 -0
  83. /package/dist-cms/packages/{translation → dictionary}/dictionary/menu-item/dictionary-menu-item.element.d.ts +0 -0
  84. /package/dist-cms/packages/{translation → dictionary}/dictionary/menu-item/dictionary-menu-item.element.js +0 -0
  85. /package/dist-cms/packages/{translation → dictionary}/dictionary/menu-item/manifests.d.ts +0 -0
  86. /package/dist-cms/packages/{translation → dictionary}/dictionary/menu-item/manifests.js +0 -0
  87. /package/dist-cms/packages/{translation → dictionary}/dictionary/menu.manifests.d.ts +0 -0
  88. /package/dist-cms/packages/{translation → dictionary}/dictionary/menu.manifests.js +0 -0
  89. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/dictionary.repository.d.ts +0 -0
  90. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/dictionary.repository.js +0 -0
  91. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/dictionary.store.d.ts +0 -0
  92. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/dictionary.store.js +0 -0
  93. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/dictionary.tree.store.d.ts +0 -0
  94. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/dictionary.tree.store.js +0 -0
  95. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/manifests.d.ts +0 -0
  96. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/sources/dictionary.detail.server.data.d.ts +0 -0
  97. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/sources/dictionary.detail.server.data.js +0 -0
  98. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/sources/dictionary.tree.server.data.d.ts +0 -0
  99. /package/dist-cms/packages/{translation → dictionary}/dictionary/repository/sources/dictionary.tree.server.data.js +0 -0
  100. /package/dist-cms/packages/{translation → dictionary}/dictionary/tree/manifests.d.ts +0 -0
  101. /package/dist-cms/packages/{translation → dictionary}/dictionary/tree/manifests.js +0 -0
  102. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/dictionary-workspace-editor.element.d.ts +0 -0
  103. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/dictionary-workspace-editor.element.js +0 -0
  104. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/dictionary-workspace.context.d.ts +0 -0
  105. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/dictionary-workspace.context.js +0 -0
  106. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/dictionary-workspace.element.d.ts +0 -0
  107. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/dictionary-workspace.element.js +0 -0
  108. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/manifests.d.ts +0 -0
  109. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/manifests.js +0 -0
  110. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/views/editor/workspace-view-dictionary-editor.element.d.ts +0 -0
  111. /package/dist-cms/packages/{translation → dictionary}/dictionary/workspace/views/editor/workspace-view-dictionary-editor.element.js +0 -0
  112. /package/dist-cms/packages/{translation → dictionary}/manifests.d.ts +0 -0
  113. /package/dist-cms/packages/{translation → dictionary}/manifests.js +0 -0
  114. /package/dist-cms/packages/{translation → dictionary}/section.manifest.d.ts +0 -0
@@ -0,0 +1,21 @@
1
+ import { UmbEntityActionBase } from '../../entity-action.js';
2
+ import { UmbContextConsumerController } from '../../../../../libs/context-api/index.js';
3
+ import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UMB_FOLDER_MODAL, } from '../../../modal/index.js';
4
+ export class UmbCreateFolderEntityAction extends UmbEntityActionBase {
5
+ #modalContext;
6
+ constructor(host, repositoryAlias, unique) {
7
+ super(host, repositoryAlias, unique);
8
+ new UmbContextConsumerController(this.host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => {
9
+ this.#modalContext = instance;
10
+ });
11
+ }
12
+ async execute() {
13
+ if (!this.repository || !this.#modalContext)
14
+ return;
15
+ const modalContext = this.#modalContext.open(UMB_FOLDER_MODAL, {
16
+ repositoryAlias: this.repositoryAlias,
17
+ parentUnique: this.unique ?? null,
18
+ });
19
+ await modalContext.onSubmit();
20
+ }
21
+ }
@@ -5,3 +5,4 @@ export * from './folder-update/folder-update.action.js';
5
5
  export * from './move/move.action.js';
6
6
  export * from './sort-children-of/sort-children-of.action.js';
7
7
  export * from './trash/trash.action.js';
8
+ export * from './create-folder/create-folder.action.js';
@@ -5,3 +5,4 @@ export * from './folder-update/folder-update.action.js';
5
5
  export * from './move/move.action.js';
6
6
  export * from './sort-children-of/sort-children-of.action.js';
7
7
  export * from './trash/trash.action.js';
8
+ export * from './create-folder/create-folder.action.js';
@@ -13,6 +13,7 @@ export let UmbFolderModalElement = class UmbFolderModalElement extends UmbLitEle
13
13
  constructor() {
14
14
  super(...arguments);
15
15
  this.#unique = null;
16
+ this.#parentUnique = null;
16
17
  this._isNew = false;
17
18
  }
18
19
  get data() {
@@ -21,11 +22,13 @@ export let UmbFolderModalElement = class UmbFolderModalElement extends UmbLitEle
21
22
  set data(value) {
22
23
  this._data = value;
23
24
  this.#unique = value?.unique || null;
25
+ this.#parentUnique = value?.parentUnique || null;
24
26
  this.#repositoryAlias = value?.repositoryAlias;
25
27
  this.#observeRepository();
26
28
  }
27
29
  #repositoryAlias;
28
30
  #unique;
31
+ #parentUnique;
29
32
  #repository;
30
33
  #repositoryObserver;
31
34
  #observeRepository() {
@@ -58,7 +61,7 @@ export let UmbFolderModalElement = class UmbFolderModalElement extends UmbLitEle
58
61
  async #create() {
59
62
  if (!this.#repository)
60
63
  throw new Error('Repository is required to create folder');
61
- const { data } = await this.#repository.createFolderScaffold(this.#unique);
64
+ const { data } = await this.#repository.createFolderScaffold(this.#parentUnique);
62
65
  this._folder = data;
63
66
  this._isNew = true;
64
67
  }
@@ -3,6 +3,7 @@ import { FolderReponseModel } from '../../../../external/backend-api/index.js';
3
3
  export interface UmbFolderModalData {
4
4
  repositoryAlias: string;
5
5
  unique?: string;
6
+ parentUnique?: string | null;
6
7
  }
7
8
  export interface UmbFolderModalResult {
8
9
  folder: FolderReponseModel;
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { UUITextStyles } from '../../../external/uui/index.js';
8
- import { css, html, nothing, customElement, property, state, } from '../../../external/lit/index.js';
8
+ import { css, html, nothing, customElement, property, state } from '../../../external/lit/index.js';
9
9
  import { map } from '../../../external/rxjs/index.js';
10
10
  import { umbExtensionsRegistry, } from '../extension-registry/index.js';
11
11
  import { UmbLitElement } from '../../../shared/lit-element/index.js';
@@ -1 +1 @@
1
- export * from './section-views.element.js';
1
+ export type { UmbSectionViewsElement } from './section-views.element.js';
@@ -1 +1 @@
1
- export * from './section-views.element.js';
1
+ export {};
@@ -10,5 +10,6 @@ import { FileSystemTreeItemPresentationModel } from '../../../../external/backen
10
10
  */
11
11
  export declare class UmbFileSystemTreeItemContext extends UmbTreeItemContextBase<FileSystemTreeItemPresentationModel> {
12
12
  constructor(host: UmbControllerHostElement);
13
+ checkIfIsFolder(): void;
13
14
  constructPath(pathname: string, entityType: string, path: string): string;
14
15
  }
@@ -10,6 +10,18 @@ export class UmbFileSystemTreeItemContext extends UmbTreeItemContextBase {
10
10
  constructor(host) {
11
11
  super(host, (x) => x.path);
12
12
  }
13
+ //TODO: this is not a nice solution! There should be a better way to distinguish in the tree between folders and files. Additionally we need to be able to register an action only on empty folder.
14
+ checkIfIsFolder() {
15
+ const treeItem = this.getTreeItem();
16
+ if (treeItem?.isFolder) {
17
+ if (treeItem.hasChildren) {
18
+ this.type = `${this.getTreeItem()?.type}-folder`;
19
+ }
20
+ else {
21
+ this.type = `${this.getTreeItem()?.type}-folder-empty`;
22
+ }
23
+ }
24
+ }
13
25
  constructPath(pathname, entityType, path) {
14
26
  return `section/${pathname}/workspace/${entityType}/edit/${encodeURIComponent(path).replace('.', '-')}`;
15
27
  }
@@ -36,6 +36,7 @@ export let UmbFileSystemTreeItemElement = class UmbFileSystemTreeItemElement ext
36
36
  set item(value) {
37
37
  this._item = value;
38
38
  this.#context.setTreeItem(value);
39
+ this.#context.checkIfIsFolder();
39
40
  }
40
41
  #context = new UmbFileSystemTreeItemContext(this);
41
42
  render() {
@@ -29,19 +29,27 @@ export let UmbWorkspaceActionElement = class UmbWorkspaceActionElement extends U
29
29
  }
30
30
  #api;
31
31
  async _onClick() {
32
- if (!this.#api)
33
- return;
34
- await this.#api.execute();
32
+ this._buttonState = 'waiting';
33
+ try {
34
+ if (!this.#api)
35
+ throw new Error('No api defined');
36
+ await this.#api.execute();
37
+ this._buttonState = 'success';
38
+ }
39
+ catch (error) {
40
+ this._buttonState = 'failed';
41
+ }
35
42
  this.dispatchEvent(new UmbExecutedEvent());
36
43
  }
37
44
  render() {
38
45
  return html `
39
46
  <uui-button
47
+ id="action-button"
40
48
  @click=${this._onClick}
41
49
  look=${this.manifest?.meta.look || 'default'}
42
50
  color=${this.manifest?.meta.color || 'default'}
43
51
  label=${this.manifest?.meta.label || ''}
44
- .state="${this._buttonState}"></uui-button>
52
+ .state=${this._buttonState}></uui-button>
45
53
  `;
46
54
  }
47
55
  static { this.styles = [UUITextStyles, css ``]; }
@@ -1,7 +1,6 @@
1
1
  import { UmbDictionaryRepository } from '../../repository/dictionary.repository.js';
2
2
  import { UmbEntityActionBase } from '../../../../core/entity-action/index.js';
3
3
  import { UmbControllerHostElement } from '../../../../../libs/controller-api/index.js';
4
- import './export-dictionary-modal.element.js';
5
4
  export default class UmbExportDictionaryEntityAction extends UmbEntityActionBase<UmbDictionaryRepository> {
6
5
  #private;
7
6
  static styles: import("lit").CSSResult[];
@@ -2,7 +2,6 @@ import { UUITextStyles } from '../../../../../external/uui/index.js';
2
2
  import { UmbEntityActionBase } from '../../../../core/entity-action/index.js';
3
3
  import { UmbContextConsumerController } from '../../../../../libs/context-api/index.js';
4
4
  import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UMB_EXPORT_DICTIONARY_MODAL, } from '../../../../core/modal/index.js';
5
- import './export-dictionary-modal.element.js';
6
5
  export default class UmbExportDictionaryEntityAction extends UmbEntityActionBase {
7
6
  static { this.styles = [UUITextStyles]; }
8
7
  #modalContext;
@@ -1,7 +1,6 @@
1
1
  import { UmbDictionaryRepository } from '../../repository/dictionary.repository.js';
2
2
  import { UmbEntityActionBase } from '../../../../core/entity-action/index.js';
3
3
  import { UmbControllerHostElement } from '../../../../../libs/controller-api/index.js';
4
- import './import-dictionary-modal.element.js';
5
4
  export default class UmbImportDictionaryEntityAction extends UmbEntityActionBase<UmbDictionaryRepository> {
6
5
  #private;
7
6
  static styles: import("lit").CSSResult[];
@@ -2,7 +2,6 @@ import { UUITextStyles } from '../../../../../external/uui/index.js';
2
2
  import { UmbEntityActionBase } from '../../../../core/entity-action/index.js';
3
3
  import { UmbContextConsumerController } from '../../../../../libs/context-api/index.js';
4
4
  import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UMB_IMPORT_DICTIONARY_MODAL, } from '../../../../core/modal/index.js';
5
- import './import-dictionary-modal.element.js';
6
5
  export default class UmbImportDictionaryEntityAction extends UmbEntityActionBase {
7
6
  static { this.styles = [UUITextStyles]; }
8
7
  #modalContext;
@@ -0,0 +1 @@
1
+ export * from './repository/index.js';
@@ -0,0 +1 @@
1
+ export * from './repository/index.js';
@@ -0,0 +1,3 @@
1
+ export * from './dictionary.repository.js';
2
+ export * from './dictionary.store.js';
3
+ export * from './dictionary.tree.store.js';
@@ -0,0 +1,3 @@
1
+ export * from './dictionary.repository.js';
2
+ export * from './dictionary.store.js';
3
+ export * from './dictionary.tree.store.js';
@@ -1,4 +1,4 @@
1
- import { UmbDictionaryRepository } from '../repository/dictionary.repository.js';
1
+ import { UmbDictionaryRepository } from './dictionary.repository.js';
2
2
  import { UmbDictionaryTreeStore } from './dictionary.tree.store.js';
3
3
  import { UmbDictionaryStore } from './dictionary.store.js';
4
4
  export const DICTIONARY_REPOSITORY_ALIAS = 'Umb.Repository.Dictionary';
@@ -1,12 +1,12 @@
1
- const sectionAlias = 'Umb.Section.Translation';
1
+ const sectionAlias = 'Umb.Section.Dictionary';
2
2
  const section = {
3
3
  type: 'section',
4
4
  alias: sectionAlias,
5
- name: 'Translation Section',
5
+ name: 'Dictionary Section',
6
6
  weight: 100,
7
7
  meta: {
8
- label: 'Translation',
9
- pathname: 'translation',
8
+ label: 'Dictionary',
9
+ pathname: 'dictionary',
10
10
  },
11
11
  };
12
12
  const menuSectionSidebarApp = {
@@ -1,4 +1,4 @@
1
- export declare const name = "Umbraco.Core.TranslationManagement";
1
+ export declare const name = "Umbraco.Core.DictionaryManagement";
2
2
  export declare const extensions: {
3
3
  name: string;
4
4
  alias: string;
@@ -0,0 +1,9 @@
1
+ export const name = 'Umbraco.Core.DictionaryManagement';
2
+ export const extensions = [
3
+ {
4
+ name: 'Dictionary Management Bundle',
5
+ alias: 'Umb.Dictionary.TranslationManagement',
6
+ type: 'bundle',
7
+ loader: () => import('./manifests.js'),
8
+ },
9
+ ];
@@ -56,7 +56,7 @@ export let UmbDashboardPublishedStatusElement = class UmbDashboardPublishedStatu
56
56
  async _onReloadCacheHandler() {
57
57
  const modalContext = this._modalContext?.open(UMB_CONFIRM_MODAL, {
58
58
  headline: 'Reload',
59
- content: html ` Trigger a in-memory and local file cache reload on all servers. `,
59
+ content: html ` Trigger a in-memory and local file cache reload on all servers.`,
60
60
  color: 'danger',
61
61
  confirmLabel: 'Continue',
62
62
  });
@@ -88,6 +88,7 @@ export let UmbDashboardPublishedStatusElement = class UmbDashboardPublishedStatu
88
88
  }
89
89
  //Collect
90
90
  async _cacheCollect() {
91
+ this._buttonStateCollect = 'waiting';
91
92
  const { error } = await tryExecuteAndNotify(this, PublishedCacheResource.postPublishedCacheCollect());
92
93
  if (error) {
93
94
  this._buttonStateCollect = 'failed';
@@ -97,8 +98,15 @@ export let UmbDashboardPublishedStatusElement = class UmbDashboardPublishedStatu
97
98
  }
98
99
  }
99
100
  async _onSnapshotCacheHandler() {
100
- this._buttonStateCollect = 'waiting';
101
- await this._cacheCollect();
101
+ const modalContex = this._modalContext?.open(UMB_CONFIRM_MODAL, {
102
+ headline: 'Snapshot',
103
+ content: html ` Trigger a NuCache snapshots collection.`,
104
+ color: 'danger',
105
+ confirmLabel: 'Continue',
106
+ });
107
+ modalContex?.onSubmit().then(() => {
108
+ this._cacheCollect();
109
+ });
102
110
  }
103
111
  render() {
104
112
  return html `
@@ -1,6 +1,5 @@
1
1
  import type { UmbRoute } from '../../../../../shared/router/index.js';
2
2
  import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
3
- import './language-workspace-editor.element.js';
4
3
  export declare class UmbLanguageWorkspaceElement extends UmbLitElement {
5
4
  #private;
6
5
  _routes: UmbRoute[];
@@ -8,7 +8,6 @@ import { UmbLanguageWorkspaceContext } from './language-workspace.context.js';
8
8
  import { UUITextStyles } from '../../../../../external/uui/index.js';
9
9
  import { css, html, customElement, state } from '../../../../../external/lit/index.js';
10
10
  import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
11
- import './language-workspace-editor.element.js';
12
11
  import { UmbWorkspaceIsNewRedirectController } from '../../../../core/workspace/index.js';
13
12
  export let UmbLanguageWorkspaceElement = class UmbLanguageWorkspaceElement extends UmbLitElement {
14
13
  constructor() {
@@ -4,8 +4,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ import { UmbDictionaryRepository } from '../../../dictionary/dictionary/index.js';
7
8
  import { UMB_MODAL_TEMPLATING_INSERT_CHOOSE_TYPE_SIDEBAR_ALIAS } from '../../modals/manifests.js';
8
- import { UmbDictionaryRepository } from '../../../translation/dictionary/repository/dictionary.repository.js';
9
9
  import { getInsertDictionarySnippet, getInsertPartialSnippet } from '../../utils.js';
10
10
  import { CodeSnippetType } from '../../modals/insert-choose-type-sidebar.element.js';
11
11
  import { customElement, property, css, html } from '../../../../external/lit/index.js';
@@ -1 +1,6 @@
1
- export declare const manifests: (import("../core/index.js").ManifestEntityAction | import("../core/index.js").ManifestMenu | import("../core/index.js").ManifestMenuItemTreeKind | import("../core/index.js").ManifestModal | import("../core/index.js").ManifestRepository | import("../core/index.js").ManifestSectionSidebarApp | import("../core/index.js").ManifestStore | import("../core/index.js").ManifestTreeStore | import("../core/index.js").ManifestItemStore | import("../core/index.js").ManifestTree | import("../core/index.js").ManifestTreeItem | import("../core/index.js").ManifestWorkspace | import("../core/index.js").ManifestWorkspaceAction | import("../core/index.js").ManifestWorkspaceEditorView)[];
1
+ export declare const manifests: (import("../core/index.js").ManifestEntityAction | import("../core/index.js").ManifestMenu | import("../core/index.js").ManifestMenuItemTreeKind | import("../core/index.js").ManifestModal | import("../core/index.js").ManifestRepository | import("../core/index.js").ManifestSectionSidebarApp | import("../core/index.js").ManifestStore | import("../core/index.js").ManifestTreeStore | import("../core/index.js").ManifestItemStore | import("../core/index.js").ManifestTree | import("../core/index.js").ManifestTreeItem | import("../core/index.js").ManifestWorkspace | import("../core/index.js").ManifestWorkspaceAction | import("../core/index.js").ManifestWorkspaceEditorView | {
2
+ type: string;
3
+ alias: string;
4
+ name: string;
5
+ loader: () => Promise<typeof import("./partial-views/entity-actions/create/create-from-snippet.modal.js")>;
6
+ })[];
@@ -1,10 +1,9 @@
1
- import { FileSystemTreeItemPresentationModel } from '../../../external/backend-api/index.js';
2
- export interface PartialViewDetails extends FileSystemTreeItemPresentationModel {
3
- content: string;
4
- }
1
+ import { PartialViewResponseModel } from '../../../external/backend-api/index.js';
2
+ export type PartialViewDetails = PartialViewResponseModel;
5
3
  export declare const PARTIAL_VIEW_ENTITY_TYPE = "partial-view";
6
4
  export declare const PARTIAL_VIEW_ROOT_ENTITY_TYPE = "partial-view-root";
7
5
  export declare const PARTIAL_VIEW_FOLDER_ENTITY_TYPE = "partial-view-folder";
6
+ export declare const PARTIAL_VIEW_FOLDER_EMPTY_ENTITY_TYPE = "partial-view-folder-empty";
8
7
  export declare const PARTIAL_VIEW_REPOSITORY_ALIAS = "Umb.Repository.PartialViews";
9
8
  export declare const PARTIAL_VIEW_TREE_ALIAS = "Umb.Tree.PartialViews";
10
9
  export declare const UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT_TOKEN_ALIAS = "Umb.Store.PartialViews.Tree";
@@ -1,6 +1,7 @@
1
1
  export const PARTIAL_VIEW_ENTITY_TYPE = 'partial-view';
2
2
  export const PARTIAL_VIEW_ROOT_ENTITY_TYPE = 'partial-view-root';
3
3
  export const PARTIAL_VIEW_FOLDER_ENTITY_TYPE = 'partial-view-folder';
4
+ export const PARTIAL_VIEW_FOLDER_EMPTY_ENTITY_TYPE = 'partial-view-folder-empty';
4
5
  export const PARTIAL_VIEW_REPOSITORY_ALIAS = 'Umb.Repository.PartialViews';
5
6
  export const PARTIAL_VIEW_TREE_ALIAS = 'Umb.Tree.PartialViews';
6
7
  export const UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT_TOKEN_ALIAS = 'Umb.Store.PartialViews.Tree';
@@ -4,6 +4,6 @@ export class UmbCreateEmptyPartialViewAction extends UmbEntityActionBase {
4
4
  super(host, repositoryAlias, unique);
5
5
  }
6
6
  async execute() {
7
- throw new Error('Method not implemented.');
7
+ history.pushState(null, '', `section/settings/workspace/partial-view/create/${this.unique ?? 'null'}/Empty`);
8
8
  }
9
9
  }
@@ -1,8 +1,17 @@
1
+ import { UmbPartialViewsRepository } from '../../repository/index.js';
1
2
  import { UmbEntityActionBase } from '../../../../core/entity-action/index.js';
2
3
  import { UmbControllerHostElement } from '../../../../../libs/controller-api/index.js';
4
+ import { UmbModalToken } from '../../../../core/modal/index.js';
5
+ import { SnippetItemResponseModel } from '../../../../../external/backend-api/index.js';
6
+ export interface UmbCreateFromSnippetPartialViewModalData {
7
+ snippets: SnippetItemResponseModel[];
8
+ }
9
+ export type UmbConfirmModalResult = undefined;
10
+ export declare const UMB_PARTIAL_VIEW_FROM_SNIPPET_MODAL: UmbModalToken<UmbCreateFromSnippetPartialViewModalData, string>;
3
11
  export declare class UmbCreateFromSnippetPartialViewAction<T extends {
4
12
  copy(): Promise<void>;
5
- }> extends UmbEntityActionBase<T> {
13
+ }> extends UmbEntityActionBase<UmbPartialViewsRepository> {
14
+ #private;
6
15
  constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string);
7
16
  execute(): Promise<void>;
8
17
  }
@@ -1,9 +1,24 @@
1
1
  import { UmbEntityActionBase } from '../../../../core/entity-action/index.js';
2
+ import { UmbContextConsumerController } from '../../../../../libs/context-api/index.js';
3
+ import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalToken } from '../../../../core/modal/index.js';
4
+ export const UMB_PARTIAL_VIEW_FROM_SNIPPET_MODAL = new UmbModalToken('Umb.Modal.CreateFromSnippetPartialView', {
5
+ type: 'sidebar',
6
+ });
2
7
  export class UmbCreateFromSnippetPartialViewAction extends UmbEntityActionBase {
3
8
  constructor(host, repositoryAlias, unique) {
4
9
  super(host, repositoryAlias, unique);
10
+ new UmbContextConsumerController(this.host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => {
11
+ this.#modalContext = instance;
12
+ });
5
13
  }
14
+ #modalContext;
6
15
  async execute() {
7
- throw new Error('Method not implemented.');
16
+ const snippets = (await this.repository?.getSnippets({}))?.data?.items ?? [];
17
+ const modalContext = this.#modalContext?.open(UMB_PARTIAL_VIEW_FROM_SNIPPET_MODAL, {
18
+ snippets,
19
+ });
20
+ await modalContext?.onSubmit().then((snippetName) => {
21
+ history.pushState(null, '', `section/settings/workspace/partial-view/create/${this.unique ?? 'null'}/${snippetName}`);
22
+ });
8
23
  }
9
24
  }
@@ -0,0 +1,16 @@
1
+ import { UmbCreateFromSnippetPartialViewModalData } from './create-from-snippet.action.js';
2
+ import { UmbModalBaseElement } from '../../../../../shared/modal/index.js';
3
+ import { SnippetItemResponseModel } from '../../../../../external/backend-api/index.js';
4
+ export default class UmbPartialViewCreateFromSnippetModalElement extends UmbModalBaseElement<UmbCreateFromSnippetPartialViewModalData, string> {
5
+ _snippets: Array<SnippetItemResponseModel>;
6
+ connectedCallback(): void;
7
+ private _submit;
8
+ private _close;
9
+ render(): import("lit-html").TemplateResult<1>;
10
+ static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
11
+ }
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'umb-partial-view-create-from-snippet-modal': UmbPartialViewCreateFromSnippetModalElement;
15
+ }
16
+ }
@@ -0,0 +1,73 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { UUITextStyles } from '../../../../../external/uui/index.js';
8
+ import { css, html, customElement, state } from '../../../../../external/lit/index.js';
9
+ import { UmbModalBaseElement } from '../../../../../shared/modal/index.js';
10
+ let UmbPartialViewCreateFromSnippetModalElement = class UmbPartialViewCreateFromSnippetModalElement extends UmbModalBaseElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ this._snippets = [];
14
+ }
15
+ connectedCallback() {
16
+ super.connectedCallback();
17
+ this._snippets = this.data?.snippets ?? [];
18
+ }
19
+ _submit(snippetName) {
20
+ this.modalContext?.submit(snippetName);
21
+ }
22
+ _close() {
23
+ this.modalContext?.reject();
24
+ }
25
+ render() {
26
+ return html `
27
+ <umb-body-layout headline="Create partial view from snippet">
28
+ <div id="main">
29
+ <uui-box>
30
+ ${this._snippets.map((snippet) => html `<uui-menu-item label="${snippet.name ?? ''}" @click-label=${() => this._submit(snippet.name ?? '')}
31
+ ><uui-icon name="umb:article" slot="icon"></uui-icon
32
+ ></uui-menu-item>`)}
33
+ </uui-box>
34
+ </div>
35
+ <div slot="actions">
36
+ <uui-button @click=${this._close} look="secondary">Close</uui-button>
37
+ </div>
38
+ </umb-body-layout>
39
+ `;
40
+ }
41
+ static { this.styles = [
42
+ UUITextStyles,
43
+ css `
44
+ :host {
45
+ display: block;
46
+ color: var(--uui-color-text);
47
+ --umb-header-layout-height: 70px;
48
+ }
49
+ #main {
50
+ box-sizing: border-box;
51
+ height: calc(
52
+ 100dvh - var(--umb-header-layout-height) - var(--umb-footer-layout-height) - 2 * var(--uui-size-layout-1)
53
+ );
54
+ }
55
+
56
+ #main uui-button {
57
+ width: 100%;
58
+ }
59
+
60
+ h3,
61
+ p {
62
+ text-align: left;
63
+ }
64
+ `,
65
+ ]; }
66
+ };
67
+ __decorate([
68
+ state()
69
+ ], UmbPartialViewCreateFromSnippetModalElement.prototype, "_snippets", void 0);
70
+ UmbPartialViewCreateFromSnippetModalElement = __decorate([
71
+ customElement('umb-partial-view-create-from-snippet-modal')
72
+ ], UmbPartialViewCreateFromSnippetModalElement);
73
+ export default UmbPartialViewCreateFromSnippetModalElement;
@@ -1,2 +1,7 @@
1
1
  import { ManifestEntityAction } from '../../../core/extension-registry/index.js';
2
- export declare const manifests: ManifestEntityAction[];
2
+ export declare const manifests: (ManifestEntityAction | {
3
+ type: string;
4
+ alias: string;
5
+ name: string;
6
+ loader: () => Promise<typeof import("./create/create-from-snippet.modal.js")>;
7
+ })[];
@@ -1,7 +1,7 @@
1
- import { PARTIAL_VIEW_ENTITY_TYPE, PARTIAL_VIEW_FOLDER_ENTITY_TYPE, PARTIAL_VIEW_REPOSITORY_ALIAS } from '../config.js';
1
+ import { PARTIAL_VIEW_ENTITY_TYPE, PARTIAL_VIEW_FOLDER_EMPTY_ENTITY_TYPE, PARTIAL_VIEW_FOLDER_ENTITY_TYPE, PARTIAL_VIEW_REPOSITORY_ALIAS, PARTIAL_VIEW_ROOT_ENTITY_TYPE, } from '../config.js';
2
2
  import { UmbCreateFromSnippetPartialViewAction } from './create/create-from-snippet.action.js';
3
3
  import { UmbCreateEmptyPartialViewAction } from './create/create-empty.action.js';
4
- import { UmbDeleteEntityAction } from '../../../core/entity-action/index.js';
4
+ import { UmbCreateFolderEntityAction, UmbDeleteEntityAction, UmbDeleteFolderEntityAction, } from '../../../core/entity-action/index.js';
5
5
  //TODO: this is temporary until we have a proper way of registering actions for folder types in a specific tree
6
6
  //Actions for partial view files
7
7
  const partialViewActions = [
@@ -34,7 +34,7 @@ const partialViewFolderActions = [
34
34
  repositoryAlias: PARTIAL_VIEW_REPOSITORY_ALIAS,
35
35
  },
36
36
  conditions: {
37
- entityTypes: [PARTIAL_VIEW_FOLDER_ENTITY_TYPE],
37
+ entityTypes: [PARTIAL_VIEW_FOLDER_ENTITY_TYPE, PARTIAL_VIEW_ROOT_ENTITY_TYPE],
38
38
  },
39
39
  },
40
40
  {
@@ -48,8 +48,46 @@ const partialViewFolderActions = [
48
48
  repositoryAlias: PARTIAL_VIEW_REPOSITORY_ALIAS,
49
49
  },
50
50
  conditions: {
51
- entityTypes: [PARTIAL_VIEW_FOLDER_ENTITY_TYPE],
51
+ entityTypes: [PARTIAL_VIEW_FOLDER_ENTITY_TYPE, PARTIAL_VIEW_ROOT_ENTITY_TYPE],
52
+ },
53
+ },
54
+ {
55
+ type: 'entityAction',
56
+ alias: 'Umb.EntityAction.PartialViewFolder.DeleteFolder',
57
+ name: 'Remove empty folder',
58
+ meta: {
59
+ icon: 'umb:trash',
60
+ label: 'Remove folder',
61
+ api: UmbDeleteFolderEntityAction,
62
+ repositoryAlias: PARTIAL_VIEW_REPOSITORY_ALIAS,
63
+ },
64
+ conditions: {
65
+ entityTypes: [PARTIAL_VIEW_FOLDER_EMPTY_ENTITY_TYPE],
66
+ },
67
+ },
68
+ {
69
+ type: 'entityAction',
70
+ alias: 'Umb.EntityAction.PartialViewFolder.CreateFolder',
71
+ name: 'Create empty folder',
72
+ meta: {
73
+ icon: 'umb:add',
74
+ label: 'Create folder',
75
+ api: UmbCreateFolderEntityAction,
76
+ repositoryAlias: PARTIAL_VIEW_REPOSITORY_ALIAS,
77
+ },
78
+ conditions: {
79
+ entityTypes: [
80
+ PARTIAL_VIEW_FOLDER_EMPTY_ENTITY_TYPE,
81
+ PARTIAL_VIEW_FOLDER_ENTITY_TYPE,
82
+ PARTIAL_VIEW_ROOT_ENTITY_TYPE,
83
+ ],
52
84
  },
53
85
  },
54
86
  ];
55
- export const manifests = [...partialViewActions, ...partialViewFolderActions];
87
+ const createFromSnippetActionModal = {
88
+ type: 'modal',
89
+ alias: 'Umb.Modal.CreateFromSnippetPartialView',
90
+ name: 'Choose insert type sidebar',
91
+ loader: () => import('./create/create-from-snippet.modal.js'),
92
+ };
93
+ export const manifests = [...partialViewActions, ...partialViewFolderActions, createFromSnippetActionModal];
@@ -1 +1,6 @@
1
- export declare const manifests: (import("../../core/index.js").ManifestEntityAction | import("../../core/index.js").ManifestMenuItemTreeKind | import("../../core/index.js").ManifestRepository | import("../../core/index.js").ManifestStore | import("../../core/index.js").ManifestTreeStore | import("../../core/index.js").ManifestTree | import("../../core/index.js").ManifestTreeItem | import("../../core/index.js").ManifestWorkspace | import("../../core/index.js").ManifestWorkspaceAction)[];
1
+ export declare const manifests: (import("../../core/index.js").ManifestEntityAction | import("../../core/index.js").ManifestMenuItemTreeKind | import("../../core/index.js").ManifestRepository | import("../../core/index.js").ManifestStore | import("../../core/index.js").ManifestTreeStore | import("../../core/index.js").ManifestTree | import("../../core/index.js").ManifestTreeItem | import("../../core/index.js").ManifestWorkspace | import("../../core/index.js").ManifestWorkspaceAction | {
2
+ type: string;
3
+ alias: string;
4
+ name: string;
5
+ loader: () => Promise<typeof import("./entity-actions/create/create-from-snippet.modal.js")>;
6
+ })[];