@blaze-cms/plugin-data-ui 0.139.0-alpha.4 → 0.139.0-alpha.6

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 (153) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +42 -0
  3. package/lib/components/EntityDataListing/EntityDataListing.js +3 -24
  4. package/lib/components/EntityDataListing/EntityDataListing.js.map +1 -1
  5. package/lib/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js +38 -0
  6. package/lib/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js.map +1 -0
  7. package/lib/components/EntityManager/Entity/EntitiyNavLinks/index.js +11 -0
  8. package/lib/components/EntityManager/Entity/EntitiyNavLinks/index.js.map +1 -0
  9. package/lib/components/EntityManager/Entity/Entity.js +16 -3
  10. package/lib/components/EntityManager/Entity/Entity.js.map +1 -1
  11. package/lib/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js +43 -0
  12. package/lib/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js.map +1 -0
  13. package/lib/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +32 -0
  14. package/lib/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map +1 -0
  15. package/lib/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +44 -0
  16. package/lib/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js.map +1 -0
  17. package/lib/components/EntityManager/Entity/SideBarRelations/index.js +12 -2
  18. package/lib/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
  19. package/lib/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +37 -0
  20. package/lib/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +1 -0
  21. package/lib/components/InfoBoxes/InfoBoxes.js +35 -0
  22. package/lib/components/InfoBoxes/InfoBoxes.js.map +1 -0
  23. package/lib/components/InfoBoxes/container/InfoBoxContainer.js +43 -0
  24. package/lib/components/InfoBoxes/container/InfoBoxContainer.js.map +1 -0
  25. package/lib/components/InfoBoxes/helpers/build-dynamic-query.js +25 -0
  26. package/lib/components/InfoBoxes/helpers/build-dynamic-query.js.map +1 -0
  27. package/lib/components/InfoBoxes/hooks/useData.js +41 -0
  28. package/lib/components/InfoBoxes/hooks/useData.js.map +1 -0
  29. package/lib/components/InfoBoxes/hooks/useInfoBox.js +25 -0
  30. package/lib/components/InfoBoxes/hooks/useInfoBox.js.map +1 -0
  31. package/lib/components/InfoBoxes/index.js +11 -0
  32. package/lib/components/InfoBoxes/index.js.map +1 -0
  33. package/lib/components/InfoBoxes/presentational/InfoBox.js +45 -0
  34. package/lib/components/InfoBoxes/presentational/InfoBox.js.map +1 -0
  35. package/lib/components/ListingTable/ListingTable.js +124 -79
  36. package/lib/components/ListingTable/ListingTable.js.map +1 -1
  37. package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js +8 -20
  38. package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
  39. package/lib/components/ListingTable/mappers/populate-rows.js +91 -25
  40. package/lib/components/ListingTable/mappers/populate-rows.js.map +1 -1
  41. package/lib/components/ListingTable/service/index.js +73 -11
  42. package/lib/components/ListingTable/service/index.js.map +1 -1
  43. package/lib/constants.js +9 -1
  44. package/lib/constants.js.map +1 -1
  45. package/lib/icons/ContentIcon.js +90 -0
  46. package/lib/icons/ContentIcon.js.map +1 -0
  47. package/lib/icons/SettingsIcon.js +46 -0
  48. package/lib/icons/SettingsIcon.js.map +1 -0
  49. package/lib/icons/TaxonomyIcon.js +70 -0
  50. package/lib/icons/TaxonomyIcon.js.map +1 -0
  51. package/lib/icons/UsersIcon.js +43 -0
  52. package/lib/icons/UsersIcon.js.map +1 -0
  53. package/lib/icons/index.js +36 -0
  54. package/lib/icons/index.js.map +1 -0
  55. package/lib/index.js +38 -11
  56. package/lib/index.js.map +1 -1
  57. package/lib/utils/add-content-menu-items.js +61 -13
  58. package/lib/utils/add-content-menu-items.js.map +1 -1
  59. package/lib/utils/build-listing-query.js +11 -2
  60. package/lib/utils/build-listing-query.js.map +1 -1
  61. package/lib/utils/get-default-query-params.js +3 -4
  62. package/lib/utils/get-default-query-params.js.map +1 -1
  63. package/lib-es/components/EntityDataListing/EntityDataListing.js +3 -14
  64. package/lib-es/components/EntityDataListing/EntityDataListing.js.map +1 -1
  65. package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js +30 -0
  66. package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js.map +1 -0
  67. package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/index.js +3 -0
  68. package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/index.js.map +1 -0
  69. package/lib-es/components/EntityManager/Entity/Entity.js +16 -3
  70. package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -1
  71. package/lib-es/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js +30 -0
  72. package/lib-es/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js.map +1 -0
  73. package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +26 -0
  74. package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map +1 -0
  75. package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +39 -0
  76. package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js.map +1 -0
  77. package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js +12 -2
  78. package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
  79. package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +24 -0
  80. package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +1 -0
  81. package/lib-es/components/InfoBoxes/InfoBoxes.js +28 -0
  82. package/lib-es/components/InfoBoxes/InfoBoxes.js.map +1 -0
  83. package/lib-es/components/InfoBoxes/container/InfoBoxContainer.js +30 -0
  84. package/lib-es/components/InfoBoxes/container/InfoBoxContainer.js.map +1 -0
  85. package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js +25 -0
  86. package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js.map +1 -0
  87. package/lib-es/components/InfoBoxes/hooks/useData.js +37 -0
  88. package/lib-es/components/InfoBoxes/hooks/useData.js.map +1 -0
  89. package/lib-es/components/InfoBoxes/hooks/useInfoBox.js +19 -0
  90. package/lib-es/components/InfoBoxes/hooks/useInfoBox.js.map +1 -0
  91. package/lib-es/components/InfoBoxes/index.js +3 -0
  92. package/lib-es/components/InfoBoxes/index.js.map +1 -0
  93. package/lib-es/components/InfoBoxes/presentational/InfoBox.js +31 -0
  94. package/lib-es/components/InfoBoxes/presentational/InfoBox.js.map +1 -0
  95. package/lib-es/components/ListingTable/ListingTable.js +56 -50
  96. package/lib-es/components/ListingTable/ListingTable.js.map +1 -1
  97. package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js +11 -19
  98. package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
  99. package/lib-es/components/ListingTable/mappers/populate-rows.js +76 -24
  100. package/lib-es/components/ListingTable/mappers/populate-rows.js.map +1 -1
  101. package/lib-es/components/ListingTable/service/index.js +65 -7
  102. package/lib-es/components/ListingTable/service/index.js.map +1 -1
  103. package/lib-es/constants.js +9 -1
  104. package/lib-es/constants.js.map +1 -1
  105. package/lib-es/icons/ContentIcon.js +80 -0
  106. package/lib-es/icons/ContentIcon.js.map +1 -0
  107. package/lib-es/icons/SettingsIcon.js +36 -0
  108. package/lib-es/icons/SettingsIcon.js.map +1 -0
  109. package/lib-es/icons/TaxonomyIcon.js +60 -0
  110. package/lib-es/icons/TaxonomyIcon.js.map +1 -0
  111. package/lib-es/icons/UsersIcon.js +33 -0
  112. package/lib-es/icons/UsersIcon.js.map +1 -0
  113. package/lib-es/icons/index.js +6 -0
  114. package/lib-es/icons/index.js.map +1 -0
  115. package/lib-es/index.js +37 -9
  116. package/lib-es/index.js.map +1 -1
  117. package/lib-es/utils/add-content-menu-items.js +46 -5
  118. package/lib-es/utils/add-content-menu-items.js.map +1 -1
  119. package/lib-es/utils/build-listing-query.js +10 -1
  120. package/lib-es/utils/build-listing-query.js.map +1 -1
  121. package/lib-es/utils/get-default-query-params.js +1 -3
  122. package/lib-es/utils/get-default-query-params.js.map +1 -1
  123. package/package.json +6 -5
  124. package/src/components/EntityDataListing/EntityDataListing.js +3 -12
  125. package/src/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js +26 -0
  126. package/src/components/EntityManager/Entity/EntitiyNavLinks/index.js +3 -0
  127. package/src/components/EntityManager/Entity/Entity.js +10 -1
  128. package/src/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js +22 -0
  129. package/src/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +33 -0
  130. package/src/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +28 -0
  131. package/src/components/EntityManager/Entity/SideBarRelations/index.js +34 -16
  132. package/src/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +33 -0
  133. package/src/components/InfoBoxes/InfoBoxes.js +24 -0
  134. package/src/components/InfoBoxes/container/InfoBoxContainer.js +22 -0
  135. package/src/components/InfoBoxes/helpers/build-dynamic-query.js +25 -0
  136. package/src/components/InfoBoxes/hooks/useData.js +20 -0
  137. package/src/components/InfoBoxes/hooks/useInfoBox.js +13 -0
  138. package/src/components/InfoBoxes/index.js +3 -0
  139. package/src/components/InfoBoxes/presentational/InfoBox.js +34 -0
  140. package/src/components/ListingTable/ListingTable.js +73 -39
  141. package/src/components/ListingTable/ListingTableContent/ListingTableContent.js +8 -22
  142. package/src/components/ListingTable/mappers/populate-rows.js +83 -18
  143. package/src/components/ListingTable/service/index.js +42 -5
  144. package/src/constants.js +13 -1
  145. package/src/icons/ContentIcon.js +83 -0
  146. package/src/icons/SettingsIcon.js +41 -0
  147. package/src/icons/TaxonomyIcon.js +62 -0
  148. package/src/icons/UsersIcon.js +37 -0
  149. package/src/icons/index.js +6 -0
  150. package/src/index.js +36 -8
  151. package/src/utils/add-content-menu-items.js +42 -3
  152. package/src/utils/build-listing-query.js +11 -1
  153. package/src/utils/get-default-query-params.js +1 -1
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { ICON_SIZE, ICON_COLOR } from '../constants';
3
+
4
+ function UserIcon({
5
+ width = ICON_SIZE.WIDTH,
6
+ height = ICON_SIZE.HEIGHT,
7
+ stroke = ICON_COLOR.STROKE
8
+ }) {
9
+ return (
10
+ <svg
11
+ width={width}
12
+ height={height}
13
+ viewBox="0 0 22 22"
14
+ version="1.1"
15
+ xmlns="http://www.w3.org/2000/svg"
16
+ xmlnsXlink="http://www.w3.org/1999/xlink">
17
+ <title>user</title>
18
+ <g
19
+ id="Page-1"
20
+ stroke="none"
21
+ strokeWidth={1}
22
+ fill="none"
23
+ fillRule="evenodd"
24
+ strokeLinecap="round"
25
+ strokeLinejoin="round">
26
+ <g id="Group" transform="translate(1, 0.76)" stroke={stroke}>
27
+ <path
28
+ d="M2.35666666,16.4488888 C4.68824079,15.1310199 7.32175438,14.4403878 10,14.4444089 C12.7777778,14.4444089 15.3855556,15.1722221 17.6433334,16.4488888 M13.3333334,7.7777776 C13.3333334,9.61872677 11.8409492,11.1111109 10,11.1111109 C8.15905083,11.1111109 6.66666666,9.61872677 6.66666666,7.7777776 C6.66666666,5.93682842 8.15905083,4.44444425 10,4.44444425 C11.8409492,4.44444425 13.3333334,5.93682842 13.3333334,7.7777776 L13.3333334,7.7777776 Z M20,10 C20,13.5726558 18.0940108,16.8739261 15,18.660254 C11.9059893,20.446582 8.09401075,20.446582 5,18.660254 C1.90598917,16.8739261 0,13.5726558 0,10 C0,4.47715239 4.47715258,0 10,0 C15.5228474,0 20,4.47715239 20,10 L20,10 Z"
29
+ id="Shape"
30
+ />
31
+ </g>
32
+ </g>
33
+ </svg>
34
+ );
35
+ }
36
+
37
+ export default UserIcon;
@@ -0,0 +1,6 @@
1
+ import UserIcon from './UsersIcon';
2
+ import TaxonomyIcon from './TaxonomyIcon';
3
+ import ContentIcon from './ContentIcon';
4
+ import SettingsIcon from './SettingsIcon';
5
+
6
+ export { UserIcon, TaxonomyIcon, ContentIcon, SettingsIcon };
package/src/index.js CHANGED
@@ -3,6 +3,7 @@ import React from 'react';
3
3
  import pkg from '../package.json';
4
4
  import { DATA_LISTING_PREFIX, PLUGIN_NAME } from './constants';
5
5
  import getAddContentMenuItems from './utils/add-content-menu-items';
6
+ import { UserIcon, TaxonomyIcon, ContentIcon, SettingsIcon } from './icons';
6
7
 
7
8
  const EntityDataListing = React.lazy(() =>
8
9
  import(/* webpackChunkName: 'EntityDataListing' */ './components/EntityDataListing')
@@ -12,14 +13,7 @@ const EntityManager = React.lazy(() =>
12
13
  );
13
14
 
14
15
  export default async function load(app) {
15
- // To load different plugin information into menu
16
- const sectionKey = 'content';
17
-
18
- app.events.once('load:menu-section', addSection => {
19
- addSection(sectionKey, { header: 'content', order: 100 });
20
- });
21
-
22
- app.events.once('load:menu-items', getAddContentMenuItems(app, sectionKey));
16
+ app.events.once('admin:menu:config:load', getAddContentMenuItems(app));
23
17
 
24
18
  app.events.once('load:custom:field:type', addFieldType => {
25
19
  Object.keys(formFieldTypes).forEach(type => {
@@ -31,6 +25,40 @@ export default async function load(app) {
31
25
  await app.events.emitAsync('load:custom:field:type', getFormBuilderLookup.addFieldType);
32
26
  });
33
27
 
28
+ app.events.once('admin:menu:config:load', ({ addConfig }) => {
29
+ addConfig({
30
+ main: {
31
+ items: {
32
+ content: {
33
+ label: 'content',
34
+ loadOpen: true,
35
+ items: {},
36
+ icon: ContentIcon,
37
+ order: 10
38
+ },
39
+ taxonomy: {
40
+ label: 'Taxonomy',
41
+ items: {},
42
+ icon: TaxonomyIcon,
43
+ order: 40
44
+ },
45
+ user: {
46
+ label: 'User',
47
+ items: {},
48
+ icon: UserIcon,
49
+ order: 90
50
+ },
51
+ settings: {
52
+ label: 'Settings',
53
+ items: {},
54
+ icon: SettingsIcon,
55
+ order: 100
56
+ }
57
+ }
58
+ }
59
+ });
60
+ });
61
+
34
62
  const entityDataListingRoute = {
35
63
  path: `${DATA_LISTING_PREFIX}/:entityIdentifier`,
36
64
  key: 'entityDataListing',
@@ -2,8 +2,8 @@ import { getQuery } from '@blaze-cms/admin-ui-utils';
2
2
 
3
3
  const { MENU_PERMISSIONS } = require('../constants');
4
4
 
5
- function getAddContentMenuItems(app, sectionKey) {
6
- return async addItem => {
5
+ function getAddContentMenuItems(app) {
6
+ return async ({ addConfig }) => {
7
7
  const client = app.getClient();
8
8
  const {
9
9
  data: { getEntitySchemas }
@@ -14,9 +14,48 @@ function getAddContentMenuItems(app, sectionKey) {
14
14
  canDoActions: MENU_PERMISSIONS
15
15
  }
16
16
  });
17
+
18
+ if (!getEntitySchemas || !getEntitySchemas.length) return; // no items so don't add section
19
+
20
+ const menuItems = {};
21
+ const sectionMenuItems = { settings: {} };
22
+
23
+ getEntitySchemas.forEach(({ id, displayName, displayProperties }) => {
24
+ if (!displayProperties) return null;
25
+
26
+ const { adminMenu: { sectionKey = 'settings' } = {} } = displayProperties;
27
+ const sectionItems = sectionMenuItems[sectionKey] || {};
28
+ sectionItems[id] = {
29
+ label: displayName,
30
+ uri: `/data-listing/${id}`
31
+ };
32
+ sectionMenuItems[sectionKey] = sectionItems;
33
+ });
34
+
35
+ const menuConfig = {
36
+ main: {
37
+ items: {
38
+ settings: {
39
+ items: menuItems
40
+ }
41
+ }
42
+ }
43
+ };
44
+
45
+ Object.entries(sectionMenuItems).forEach(([sectionKey, sectionItems]) => {
46
+ const sectionConfig = menuConfig.main.items[sectionKey] || {};
47
+ sectionConfig.items = sectionItems;
48
+ menuConfig.main.items[sectionKey] = sectionConfig;
49
+ });
50
+
17
51
  getEntitySchemas.forEach(({ id, displayName }) => {
18
- addItem({ name: displayName, uri: `/data-listing/${id}` }, sectionKey);
52
+ menuItems[id] = {
53
+ label: displayName,
54
+ uri: `/data-listing/${id}`
55
+ };
19
56
  });
57
+
58
+ addConfig(menuConfig);
20
59
  };
21
60
  }
22
61
 
@@ -1,13 +1,23 @@
1
1
  import { gql } from '@apollo/client';
2
2
  import { BlazeError } from '@blaze-cms/core-errors';
3
+ import { getDynamicQuery } from '@blaze-cms/admin-ui-utils';
3
4
 
4
- function buildListingQuery(entitySchema) {
5
+ const buildAdminSearchQuery = entitySchema => {
6
+ const { listingProperties = [] } = entitySchema || {};
7
+ const parsedProperties = `id, ${listingProperties.join(' ') || 'id name'}`;
8
+
9
+ return getDynamicQuery('ADMIN_SEARCH')([entitySchema], parsedProperties, true);
10
+ };
11
+
12
+ function buildListingQuery(entitySchema, isSearchQuery) {
5
13
  if (!entitySchema.actions || !entitySchema.actions.getAll || !entitySchema.listingProperties) {
6
14
  throw new BlazeError(
7
15
  'Listing query requires getAll action and listingProperties from entity schema'
8
16
  );
9
17
  }
10
18
 
19
+ if (isSearchQuery) return buildAdminSearchQuery(entitySchema);
20
+
11
21
  const sortType =
12
22
  entitySchema.actions.getAll[0].toUpperCase() + entitySchema.actions.getAll.substr(1);
13
23
 
@@ -1,4 +1,4 @@
1
- const getDefaultQueryParams = ({ schema }) => {
1
+ const getDefaultQueryParams = schema => {
2
2
  const updated = schema.properties && schema.properties.updated;
3
3
  const { adminDefaultListingFilter: where } = schema.displayProperties || {};
4
4