@blaze-cms/plugin-data-ui 0.146.0-rc-eagle-3.9 → 0.146.0-rc-eagle-3.11

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 (36) hide show
  1. package/lib/components/EntityManager/Entity/Entity.js +26 -1
  2. package/lib/components/EntityManager/Entity/Entity.js.map +1 -1
  3. package/lib/components/EntityManager/Entity/EntityHeader/EntityHeader.js +14 -1
  4. package/lib/components/EntityManager/Entity/EntityHeader/EntityHeader.js.map +1 -1
  5. package/lib/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +16 -2
  6. package/lib/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js.map +1 -1
  7. package/lib/components/EntityManager/utils/entity.js +22 -1
  8. package/lib/components/EntityManager/utils/entity.js.map +1 -1
  9. package/lib/components/ListingTable/ListingTable.js +1 -1
  10. package/lib/components/ListingTable/ListingTable.js.map +1 -1
  11. package/lib/constants.js +3 -1
  12. package/lib/constants.js.map +1 -1
  13. package/lib/utils/add-content-menu-items.js +25 -22
  14. package/lib/utils/add-content-menu-items.js.map +1 -1
  15. package/lib-es/components/EntityManager/Entity/Entity.js +29 -4
  16. package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -1
  17. package/lib-es/components/EntityManager/Entity/EntityHeader/EntityHeader.js +14 -1
  18. package/lib-es/components/EntityManager/Entity/EntityHeader/EntityHeader.js.map +1 -1
  19. package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +16 -2
  20. package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js.map +1 -1
  21. package/lib-es/components/EntityManager/utils/entity.js +23 -3
  22. package/lib-es/components/EntityManager/utils/entity.js.map +1 -1
  23. package/lib-es/components/ListingTable/ListingTable.js +1 -1
  24. package/lib-es/components/ListingTable/ListingTable.js.map +1 -1
  25. package/lib-es/constants.js +3 -1
  26. package/lib-es/constants.js.map +1 -1
  27. package/lib-es/utils/add-content-menu-items.js +25 -22
  28. package/lib-es/utils/add-content-menu-items.js.map +1 -1
  29. package/package.json +5 -5
  30. package/src/components/EntityManager/Entity/Entity.js +31 -5
  31. package/src/components/EntityManager/Entity/EntityHeader/EntityHeader.js +17 -1
  32. package/src/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +19 -2
  33. package/src/components/EntityManager/utils/entity.js +28 -8
  34. package/src/components/ListingTable/ListingTable.js +1 -1
  35. package/src/constants.js +4 -0
  36. package/src/utils/add-content-menu-items.js +21 -20
package/lib/constants.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.UNPUBLISHED_WARNING = exports.UNPUBLISHED = exports.TEXT_CONTENT_TYPE = exports.SUCCESS = exports.SELECT_DEFAULT_VALUE = exports.SAVE_BUTTON_TEXTS = exports.SAVE_BEFORE_PUBLISH_MESSAGE = exports.PUBLISHED = exports.PREVIEW_INTERFACE = exports.PLUGIN_NAME = exports.PAGE_NOT_FOUND = exports.PAGE_BUILDER_TEMPLATE_FIELD_ID = exports.PAGE_BUILDER_TAB_INDEX = exports.PAGE_BUILDER_TAB = exports.PAGE_BUILDER_FIELD_ID = exports.PAGE_BUILDER = exports.MENU_PERMISSIONS = exports.LEAVE_PAGE_MESSAGE = exports.KEY_TO_CHECK = exports.ICON_SIZE = exports.ICON_COLOR = exports.ERROR = exports.ENTITY_PUBLISHED = exports.ENTER_KEY = exports.EDITOR_VIEW_TAB_INDEX = exports.EDITOR_VIEW_TAB = exports.DEFAULT_FILTER_OPTION_LABEL = exports.DEBUG_PARAM = exports.DATA_LISTING_PREFIX = exports.ACTIONS = void 0;
6
+ exports.VIEW_UNPUBLISHED_REASON = exports.UNPUBLISHED_WARNING = exports.UNPUBLISHED = exports.TITLE_FIELD_ID = exports.TEXT_CONTENT_TYPE = exports.SUCCESS = exports.SELECT_DEFAULT_VALUE = exports.SAVE_BUTTON_TEXTS = exports.SAVE_BEFORE_PUBLISH_MESSAGE = exports.PUBLISHED = exports.PREVIEW_INTERFACE = exports.PLUGIN_NAME = exports.PAGE_NOT_FOUND = exports.PAGE_BUILDER_TEMPLATE_FIELD_ID = exports.PAGE_BUILDER_TAB_INDEX = exports.PAGE_BUILDER_TAB = exports.PAGE_BUILDER_FIELD_ID = exports.PAGE_BUILDER = exports.MENU_PERMISSIONS = exports.LEAVE_PAGE_MESSAGE = exports.KEY_TO_CHECK = exports.ICON_SIZE = exports.ICON_COLOR = exports.ERROR = exports.ENTITY_PUBLISHED = exports.ENTER_KEY = exports.EDITOR_VIEW_TAB_INDEX = exports.EDITOR_VIEW_TAB = exports.DEFAULT_FILTER_OPTION_LABEL = exports.DEBUG_PARAM = exports.DATA_LISTING_PREFIX = exports.ACTIONS = void 0;
7
7
  const PLUGIN_NAME = exports.PLUGIN_NAME = 'data-ui';
8
8
  const DATA_LISTING_PREFIX = exports.DATA_LISTING_PREFIX = '/data-listing';
9
9
  const PAGE_BUILDER = exports.PAGE_BUILDER = 'pageBuilder';
@@ -12,6 +12,7 @@ const ENTITY_PUBLISHED = exports.ENTITY_PUBLISHED = 'published';
12
12
  const SELECT_DEFAULT_VALUE = exports.SELECT_DEFAULT_VALUE = 'Please Choose...';
13
13
  const LEAVE_PAGE_MESSAGE = exports.LEAVE_PAGE_MESSAGE = 'You are going to leave without saving. Are you sure you want to leave?';
14
14
  const KEY_TO_CHECK = exports.KEY_TO_CHECK = 'values.slug';
15
+ const TITLE_FIELD_ID = exports.TITLE_FIELD_ID = 'name';
15
16
  const MENU_PERMISSIONS = exports.MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];
16
17
  const PREVIEW_INTERFACE = exports.PREVIEW_INTERFACE = 'preview/can-preview';
17
18
  const PAGE_BUILDER_FIELD_ID = exports.PAGE_BUILDER_FIELD_ID = 'pageBuilder';
@@ -28,6 +29,7 @@ const SAVE_BUTTON_TEXTS = exports.SAVE_BUTTON_TEXTS = {
28
29
  const ACTIONS = exports.ACTIONS = 'actions';
29
30
  const UNPUBLISHED_WARNING = exports.UNPUBLISHED_WARNING = 'Page already unpublished';
30
31
  const PAGE_NOT_FOUND = exports.PAGE_NOT_FOUND = 'Page not found';
32
+ const VIEW_UNPUBLISHED_REASON = exports.VIEW_UNPUBLISHED_REASON = 'Not published yet - publish to view it on the site';
31
33
  const SAVE_BEFORE_PUBLISH_MESSAGE = exports.SAVE_BEFORE_PUBLISH_MESSAGE = 'You have to click save to create the record before you can publish';
32
34
  const PAGE_BUILDER_TAB = exports.PAGE_BUILDER_TAB = 'Page builder';
33
35
  const PAGE_BUILDER_TAB_INDEX = exports.PAGE_BUILDER_TAB_INDEX = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["PLUGIN_NAME","exports","DATA_LISTING_PREFIX","PAGE_BUILDER","TEXT_CONTENT_TYPE","ENTITY_PUBLISHED","SELECT_DEFAULT_VALUE","LEAVE_PAGE_MESSAGE","KEY_TO_CHECK","MENU_PERMISSIONS","PREVIEW_INTERFACE","PAGE_BUILDER_FIELD_ID","PAGE_BUILDER_TEMPLATE_FIELD_ID","ERROR","SUCCESS","PUBLISHED","UNPUBLISHED","SAVE_BUTTON_TEXTS","save","saved","saving","ACTIONS","UNPUBLISHED_WARNING","PAGE_NOT_FOUND","SAVE_BEFORE_PUBLISH_MESSAGE","PAGE_BUILDER_TAB","PAGE_BUILDER_TAB_INDEX","EDITOR_VIEW_TAB","EDITOR_VIEW_TAB_INDEX","ENTER_KEY","ICON_SIZE","WIDTH","HEIGHT","ICON_COLOR","STROKE","FILL","DEFAULT_FILTER_OPTION_LABEL","DEBUG_PARAM"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'data-ui';\nconst DATA_LISTING_PREFIX = '/data-listing';\nconst PAGE_BUILDER = 'pageBuilder';\nconst TEXT_CONTENT_TYPE = 'Publish';\nconst ENTITY_PUBLISHED = 'published';\nconst SELECT_DEFAULT_VALUE = 'Please Choose...';\nconst LEAVE_PAGE_MESSAGE = 'You are going to leave without saving. Are you sure you want to leave?';\nconst KEY_TO_CHECK = 'values.slug';\nconst MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];\nconst PREVIEW_INTERFACE = 'preview/can-preview';\nconst PAGE_BUILDER_FIELD_ID = 'pageBuilder';\nconst PAGE_BUILDER_TEMPLATE_FIELD_ID = 'pageBuilderTemplateId';\nconst ERROR = 'error';\nconst SUCCESS = 'success';\nconst PUBLISHED = 'published';\nconst UNPUBLISHED = 'unpublished';\nconst SAVE_BUTTON_TEXTS = { save: 'save', saved: 'saved', saving: 'saving' };\nconst ACTIONS = 'actions';\nconst UNPUBLISHED_WARNING = 'Page already unpublished';\nconst PAGE_NOT_FOUND = 'Page not found';\nconst SAVE_BEFORE_PUBLISH_MESSAGE =\n 'You have to click save to create the record before you can publish';\n\nconst PAGE_BUILDER_TAB = 'Page builder';\nconst PAGE_BUILDER_TAB_INDEX = 1;\nconst EDITOR_VIEW_TAB = 'Editor view';\nconst EDITOR_VIEW_TAB_INDEX = 0;\n\nconst ENTER_KEY = 'Enter';\n\nconst ICON_SIZE = {\n WIDTH: '25px',\n HEIGHT: '25px'\n};\n\nconst ICON_COLOR = {\n STROKE: '#63779C',\n FILL: '#63779C'\n};\n\nconst DEFAULT_FILTER_OPTION_LABEL = 'Any';\nconst DEBUG_PARAM = 'blaze_debug=1';\n\nexport {\n DATA_LISTING_PREFIX,\n DEBUG_PARAM,\n ENTITY_PUBLISHED,\n KEY_TO_CHECK,\n LEAVE_PAGE_MESSAGE,\n MENU_PERMISSIONS,\n PAGE_BUILDER,\n PLUGIN_NAME,\n PREVIEW_INTERFACE,\n SELECT_DEFAULT_VALUE,\n TEXT_CONTENT_TYPE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SUCCESS,\n PUBLISHED,\n UNPUBLISHED,\n SAVE_BUTTON_TEXTS,\n ACTIONS,\n PAGE_BUILDER_TAB_INDEX,\n EDITOR_VIEW_TAB_INDEX,\n EDITOR_VIEW_TAB,\n PAGE_BUILDER_TAB,\n UNPUBLISHED_WARNING,\n SAVE_BEFORE_PUBLISH_MESSAGE,\n ICON_SIZE,\n ICON_COLOR,\n PAGE_NOT_FOUND,\n ENTER_KEY,\n DEFAULT_FILTER_OPTION_LABEL\n};\n"],"mappings":";;;;;;AAAA,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAS;AAC7B,MAAME,mBAAmB,GAAAD,OAAA,CAAAC,mBAAA,GAAG,eAAe;AAC3C,MAAMC,YAAY,GAAAF,OAAA,CAAAE,YAAA,GAAG,aAAa;AAClC,MAAMC,iBAAiB,GAAAH,OAAA,CAAAG,iBAAA,GAAG,SAAS;AACnC,MAAMC,gBAAgB,GAAAJ,OAAA,CAAAI,gBAAA,GAAG,WAAW;AACpC,MAAMC,oBAAoB,GAAAL,OAAA,CAAAK,oBAAA,GAAG,kBAAkB;AAC/C,MAAMC,kBAAkB,GAAAN,OAAA,CAAAM,kBAAA,GAAG,wEAAwE;AACnG,MAAMC,YAAY,GAAAP,OAAA,CAAAO,YAAA,GAAG,aAAa;AAClC,MAAMC,gBAAgB,GAAAR,OAAA,CAAAQ,gBAAA,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;AACjF,MAAMC,iBAAiB,GAAAT,OAAA,CAAAS,iBAAA,GAAG,qBAAqB;AAC/C,MAAMC,qBAAqB,GAAAV,OAAA,CAAAU,qBAAA,GAAG,aAAa;AAC3C,MAAMC,8BAA8B,GAAAX,OAAA,CAAAW,8BAAA,GAAG,uBAAuB;AAC9D,MAAMC,KAAK,GAAAZ,OAAA,CAAAY,KAAA,GAAG,OAAO;AACrB,MAAMC,OAAO,GAAAb,OAAA,CAAAa,OAAA,GAAG,SAAS;AACzB,MAAMC,SAAS,GAAAd,OAAA,CAAAc,SAAA,GAAG,WAAW;AAC7B,MAAMC,WAAW,GAAAf,OAAA,CAAAe,WAAA,GAAG,aAAa;AACjC,MAAMC,iBAAiB,GAAAhB,OAAA,CAAAgB,iBAAA,GAAG;EAAEC,IAAI,EAAE,MAAM;EAAEC,KAAK,EAAE,OAAO;EAAEC,MAAM,EAAE;AAAS,CAAC;AAC5E,MAAMC,OAAO,GAAApB,OAAA,CAAAoB,OAAA,GAAG,SAAS;AACzB,MAAMC,mBAAmB,GAAArB,OAAA,CAAAqB,mBAAA,GAAG,0BAA0B;AACtD,MAAMC,cAAc,GAAAtB,OAAA,CAAAsB,cAAA,GAAG,gBAAgB;AACvC,MAAMC,2BAA2B,GAAAvB,OAAA,CAAAuB,2BAAA,GAC/B,oEAAoE;AAEtE,MAAMC,gBAAgB,GAAAxB,OAAA,CAAAwB,gBAAA,GAAG,cAAc;AACvC,MAAMC,sBAAsB,GAAAzB,OAAA,CAAAyB,sBAAA,GAAG,CAAC;AAChC,MAAMC,eAAe,GAAA1B,OAAA,CAAA0B,eAAA,GAAG,aAAa;AACrC,MAAMC,qBAAqB,GAAA3B,OAAA,CAAA2B,qBAAA,GAAG,CAAC;AAE/B,MAAMC,SAAS,GAAA5B,OAAA,CAAA4B,SAAA,GAAG,OAAO;AAEzB,MAAMC,SAAS,GAAA7B,OAAA,CAAA6B,SAAA,GAAG;EAChBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,UAAU,GAAAhC,OAAA,CAAAgC,UAAA,GAAG;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,2BAA2B,GAAAnC,OAAA,CAAAmC,2BAAA,GAAG,KAAK;AACzC,MAAMC,WAAW,GAAApC,OAAA,CAAAoC,WAAA,GAAG,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","names":["PLUGIN_NAME","exports","DATA_LISTING_PREFIX","PAGE_BUILDER","TEXT_CONTENT_TYPE","ENTITY_PUBLISHED","SELECT_DEFAULT_VALUE","LEAVE_PAGE_MESSAGE","KEY_TO_CHECK","TITLE_FIELD_ID","MENU_PERMISSIONS","PREVIEW_INTERFACE","PAGE_BUILDER_FIELD_ID","PAGE_BUILDER_TEMPLATE_FIELD_ID","ERROR","SUCCESS","PUBLISHED","UNPUBLISHED","SAVE_BUTTON_TEXTS","save","saved","saving","ACTIONS","UNPUBLISHED_WARNING","PAGE_NOT_FOUND","VIEW_UNPUBLISHED_REASON","SAVE_BEFORE_PUBLISH_MESSAGE","PAGE_BUILDER_TAB","PAGE_BUILDER_TAB_INDEX","EDITOR_VIEW_TAB","EDITOR_VIEW_TAB_INDEX","ENTER_KEY","ICON_SIZE","WIDTH","HEIGHT","ICON_COLOR","STROKE","FILL","DEFAULT_FILTER_OPTION_LABEL","DEBUG_PARAM"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'data-ui';\nconst DATA_LISTING_PREFIX = '/data-listing';\nconst PAGE_BUILDER = 'pageBuilder';\nconst TEXT_CONTENT_TYPE = 'Publish';\nconst ENTITY_PUBLISHED = 'published';\nconst SELECT_DEFAULT_VALUE = 'Please Choose...';\nconst LEAVE_PAGE_MESSAGE = 'You are going to leave without saving. Are you sure you want to leave?';\nconst KEY_TO_CHECK = 'values.slug';\nconst TITLE_FIELD_ID = 'name';\nconst MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];\nconst PREVIEW_INTERFACE = 'preview/can-preview';\nconst PAGE_BUILDER_FIELD_ID = 'pageBuilder';\nconst PAGE_BUILDER_TEMPLATE_FIELD_ID = 'pageBuilderTemplateId';\nconst ERROR = 'error';\nconst SUCCESS = 'success';\nconst PUBLISHED = 'published';\nconst UNPUBLISHED = 'unpublished';\nconst SAVE_BUTTON_TEXTS = { save: 'save', saved: 'saved', saving: 'saving' };\nconst ACTIONS = 'actions';\nconst UNPUBLISHED_WARNING = 'Page already unpublished';\nconst PAGE_NOT_FOUND = 'Page not found';\nconst VIEW_UNPUBLISHED_REASON = 'Not published yet - publish to view it on the site';\nconst SAVE_BEFORE_PUBLISH_MESSAGE =\n 'You have to click save to create the record before you can publish';\n\nconst PAGE_BUILDER_TAB = 'Page builder';\nconst PAGE_BUILDER_TAB_INDEX = 1;\nconst EDITOR_VIEW_TAB = 'Editor view';\nconst EDITOR_VIEW_TAB_INDEX = 0;\n\nconst ENTER_KEY = 'Enter';\n\nconst ICON_SIZE = {\n WIDTH: '25px',\n HEIGHT: '25px'\n};\n\nconst ICON_COLOR = {\n STROKE: '#63779C',\n FILL: '#63779C'\n};\n\nconst DEFAULT_FILTER_OPTION_LABEL = 'Any';\nconst DEBUG_PARAM = 'blaze_debug=1';\n\nexport {\n DATA_LISTING_PREFIX,\n DEBUG_PARAM,\n ENTITY_PUBLISHED,\n KEY_TO_CHECK,\n TITLE_FIELD_ID,\n LEAVE_PAGE_MESSAGE,\n MENU_PERMISSIONS,\n PAGE_BUILDER,\n PLUGIN_NAME,\n PREVIEW_INTERFACE,\n SELECT_DEFAULT_VALUE,\n TEXT_CONTENT_TYPE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SUCCESS,\n PUBLISHED,\n UNPUBLISHED,\n SAVE_BUTTON_TEXTS,\n ACTIONS,\n PAGE_BUILDER_TAB_INDEX,\n EDITOR_VIEW_TAB_INDEX,\n EDITOR_VIEW_TAB,\n PAGE_BUILDER_TAB,\n UNPUBLISHED_WARNING,\n SAVE_BEFORE_PUBLISH_MESSAGE,\n ICON_SIZE,\n ICON_COLOR,\n PAGE_NOT_FOUND,\n VIEW_UNPUBLISHED_REASON,\n ENTER_KEY,\n DEFAULT_FILTER_OPTION_LABEL\n};\n"],"mappings":";;;;;;AAAA,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAS;AAC7B,MAAME,mBAAmB,GAAAD,OAAA,CAAAC,mBAAA,GAAG,eAAe;AAC3C,MAAMC,YAAY,GAAAF,OAAA,CAAAE,YAAA,GAAG,aAAa;AAClC,MAAMC,iBAAiB,GAAAH,OAAA,CAAAG,iBAAA,GAAG,SAAS;AACnC,MAAMC,gBAAgB,GAAAJ,OAAA,CAAAI,gBAAA,GAAG,WAAW;AACpC,MAAMC,oBAAoB,GAAAL,OAAA,CAAAK,oBAAA,GAAG,kBAAkB;AAC/C,MAAMC,kBAAkB,GAAAN,OAAA,CAAAM,kBAAA,GAAG,wEAAwE;AACnG,MAAMC,YAAY,GAAAP,OAAA,CAAAO,YAAA,GAAG,aAAa;AAClC,MAAMC,cAAc,GAAAR,OAAA,CAAAQ,cAAA,GAAG,MAAM;AAC7B,MAAMC,gBAAgB,GAAAT,OAAA,CAAAS,gBAAA,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;AACjF,MAAMC,iBAAiB,GAAAV,OAAA,CAAAU,iBAAA,GAAG,qBAAqB;AAC/C,MAAMC,qBAAqB,GAAAX,OAAA,CAAAW,qBAAA,GAAG,aAAa;AAC3C,MAAMC,8BAA8B,GAAAZ,OAAA,CAAAY,8BAAA,GAAG,uBAAuB;AAC9D,MAAMC,KAAK,GAAAb,OAAA,CAAAa,KAAA,GAAG,OAAO;AACrB,MAAMC,OAAO,GAAAd,OAAA,CAAAc,OAAA,GAAG,SAAS;AACzB,MAAMC,SAAS,GAAAf,OAAA,CAAAe,SAAA,GAAG,WAAW;AAC7B,MAAMC,WAAW,GAAAhB,OAAA,CAAAgB,WAAA,GAAG,aAAa;AACjC,MAAMC,iBAAiB,GAAAjB,OAAA,CAAAiB,iBAAA,GAAG;EAAEC,IAAI,EAAE,MAAM;EAAEC,KAAK,EAAE,OAAO;EAAEC,MAAM,EAAE;AAAS,CAAC;AAC5E,MAAMC,OAAO,GAAArB,OAAA,CAAAqB,OAAA,GAAG,SAAS;AACzB,MAAMC,mBAAmB,GAAAtB,OAAA,CAAAsB,mBAAA,GAAG,0BAA0B;AACtD,MAAMC,cAAc,GAAAvB,OAAA,CAAAuB,cAAA,GAAG,gBAAgB;AACvC,MAAMC,uBAAuB,GAAAxB,OAAA,CAAAwB,uBAAA,GAAG,oDAAoD;AACpF,MAAMC,2BAA2B,GAAAzB,OAAA,CAAAyB,2BAAA,GAC/B,oEAAoE;AAEtE,MAAMC,gBAAgB,GAAA1B,OAAA,CAAA0B,gBAAA,GAAG,cAAc;AACvC,MAAMC,sBAAsB,GAAA3B,OAAA,CAAA2B,sBAAA,GAAG,CAAC;AAChC,MAAMC,eAAe,GAAA5B,OAAA,CAAA4B,eAAA,GAAG,aAAa;AACrC,MAAMC,qBAAqB,GAAA7B,OAAA,CAAA6B,qBAAA,GAAG,CAAC;AAE/B,MAAMC,SAAS,GAAA9B,OAAA,CAAA8B,SAAA,GAAG,OAAO;AAEzB,MAAMC,SAAS,GAAA/B,OAAA,CAAA+B,SAAA,GAAG;EAChBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,UAAU,GAAAlC,OAAA,CAAAkC,UAAA,GAAG;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,2BAA2B,GAAArC,OAAA,CAAAqC,2BAAA,GAAG,KAAK;AACzC,MAAMC,WAAW,GAAAtC,OAAA,CAAAsC,WAAA,GAAG,eAAe","ignoreList":[]}
@@ -8,6 +8,16 @@ var _adminUiUtils = require("@blaze-cms/admin-ui-utils");
8
8
  const {
9
9
  MENU_PERMISSIONS
10
10
  } = require('../constants');
11
+
12
+ // Menu items label a listing of many records, so they use the plural. The
13
+ // fallback matters: this package and the API are published independently, so an
14
+ // admin bundle can run against an API that does not yet resolve the field.
15
+ function getMenuLabel({
16
+ displayName,
17
+ displayNamePlural
18
+ }) {
19
+ return displayNamePlural || displayName || '';
20
+ }
11
21
  function getAddContentMenuItems(app) {
12
22
  return async ({
13
23
  addConfig
@@ -26,16 +36,21 @@ function getAddContentMenuItems(app) {
26
36
  });
27
37
  if (!getEntitySchemas || !getEntitySchemas.length) return; // no items so don't add section
28
38
 
29
- const menuItems = {};
30
39
  const sectionMenuItems = {
31
40
  settings: {}
32
41
  };
33
- getEntitySchemas.forEach(({
34
- id,
35
- displayName,
36
- displayProperties
37
- }) => {
38
- if (!displayProperties) return null;
42
+
43
+ // Order by the label that is rendered, not by displayName. getEntitySchemas
44
+ // is sorted on displayName server-side and that order serves every other
45
+ // consumer, which shows the singular, so the plural ordering belongs here.
46
+ // The explicit `order` is what MenuSectionItems reads to sort.
47
+ const orderedEntities = [...getEntitySchemas].sort((entityA, entityB) => getMenuLabel(entityA).localeCompare(getMenuLabel(entityB)));
48
+ orderedEntities.forEach((entity, order) => {
49
+ const {
50
+ id,
51
+ displayProperties
52
+ } = entity;
53
+ if (!displayProperties) return;
39
54
  const {
40
55
  adminMenu: {
41
56
  sectionKey = 'settings'
@@ -43,18 +58,15 @@ function getAddContentMenuItems(app) {
43
58
  } = displayProperties;
44
59
  const sectionItems = sectionMenuItems[sectionKey] || {};
45
60
  sectionItems[id] = {
46
- label: displayName,
61
+ label: getMenuLabel(entity),
62
+ order,
47
63
  uri: `/data-listing/${id}`
48
64
  };
49
65
  sectionMenuItems[sectionKey] = sectionItems;
50
66
  });
51
67
  const menuConfig = {
52
68
  main: {
53
- items: {
54
- settings: {
55
- items: menuItems
56
- }
57
- }
69
+ items: {}
58
70
  }
59
71
  };
60
72
  Object.entries(sectionMenuItems).forEach(([sectionKey, sectionItems]) => {
@@ -62,15 +74,6 @@ function getAddContentMenuItems(app) {
62
74
  sectionConfig.items = sectionItems;
63
75
  menuConfig.main.items[sectionKey] = sectionConfig;
64
76
  });
65
- getEntitySchemas.forEach(({
66
- id,
67
- displayName
68
- }) => {
69
- menuItems[id] = {
70
- label: displayName,
71
- uri: `/data-listing/${id}`
72
- };
73
- });
74
77
  addConfig(menuConfig);
75
78
  };
76
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add-content-menu-items.js","names":["_adminUiUtils","require","MENU_PERMISSIONS","getAddContentMenuItems","app","addConfig","client","getClient","data","getEntitySchemas","query","getQuery","variables","canDoActions","length","menuItems","sectionMenuItems","settings","forEach","id","displayName","displayProperties","adminMenu","sectionKey","sectionItems","label","uri","menuConfig","main","items","Object","entries","sectionConfig","_default","exports","default"],"sources":["../../src/utils/add-content-menu-items.js"],"sourcesContent":["import { getQuery } from '@blaze-cms/admin-ui-utils';\n\nconst { MENU_PERMISSIONS } = require('../constants');\n\nfunction getAddContentMenuItems(app) {\n return async ({ addConfig }) => {\n const client = app.getClient();\n const {\n data: { getEntitySchemas }\n } = await client.query({\n query: getQuery('GET_USER_EDITABLE_ENTITIES'),\n variables: {\n // only return entities that the current user can do the following actions on\n canDoActions: MENU_PERMISSIONS\n }\n });\n\n if (!getEntitySchemas || !getEntitySchemas.length) return; // no items so don't add section\n\n const menuItems = {};\n const sectionMenuItems = { settings: {} };\n\n getEntitySchemas.forEach(({ id, displayName, displayProperties }) => {\n if (!displayProperties) return null;\n\n const { adminMenu: { sectionKey = 'settings' } = {} } = displayProperties;\n const sectionItems = sectionMenuItems[sectionKey] || {};\n sectionItems[id] = {\n label: displayName,\n uri: `/data-listing/${id}`\n };\n sectionMenuItems[sectionKey] = sectionItems;\n });\n\n const menuConfig = {\n main: {\n items: {\n settings: {\n items: menuItems\n }\n }\n }\n };\n\n Object.entries(sectionMenuItems).forEach(([sectionKey, sectionItems]) => {\n const sectionConfig = menuConfig.main.items[sectionKey] || {};\n sectionConfig.items = sectionItems;\n menuConfig.main.items[sectionKey] = sectionConfig;\n });\n\n getEntitySchemas.forEach(({ id, displayName }) => {\n menuItems[id] = {\n label: displayName,\n uri: `/data-listing/${id}`\n };\n });\n\n addConfig(menuConfig);\n };\n}\n\nexport default getAddContentMenuItems;\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEA,MAAM;EAAEC;AAAiB,CAAC,GAAGD,OAAO,CAAC,cAAc,CAAC;AAEpD,SAASE,sBAAsBA,CAACC,GAAG,EAAE;EACnC,OAAO,OAAO;IAAEC;EAAU,CAAC,KAAK;IAC9B,MAAMC,MAAM,GAAGF,GAAG,CAACG,SAAS,CAAC,CAAC;IAC9B,MAAM;MACJC,IAAI,EAAE;QAAEC;MAAiB;IAC3B,CAAC,GAAG,MAAMH,MAAM,CAACI,KAAK,CAAC;MACrBA,KAAK,EAAE,IAAAC,sBAAQ,EAAC,4BAA4B,CAAC;MAC7CC,SAAS,EAAE;QACT;QACAC,YAAY,EAAEX;MAChB;IACF,CAAC,CAAC;IAEF,IAAI,CAACO,gBAAgB,IAAI,CAACA,gBAAgB,CAACK,MAAM,EAAE,OAAO,CAAC;;IAE3D,MAAMC,SAAS,GAAG,CAAC,CAAC;IACpB,MAAMC,gBAAgB,GAAG;MAAEC,QAAQ,EAAE,CAAC;IAAE,CAAC;IAEzCR,gBAAgB,CAACS,OAAO,CAAC,CAAC;MAAEC,EAAE;MAAEC,WAAW;MAAEC;IAAkB,CAAC,KAAK;MACnE,IAAI,CAACA,iBAAiB,EAAE,OAAO,IAAI;MAEnC,MAAM;QAAEC,SAAS,EAAE;UAAEC,UAAU,GAAG;QAAW,CAAC,GAAG,CAAC;MAAE,CAAC,GAAGF,iBAAiB;MACzE,MAAMG,YAAY,GAAGR,gBAAgB,CAACO,UAAU,CAAC,IAAI,CAAC,CAAC;MACvDC,YAAY,CAACL,EAAE,CAAC,GAAG;QACjBM,KAAK,EAAEL,WAAW;QAClBM,GAAG,EAAE,iBAAiBP,EAAE;MAC1B,CAAC;MACDH,gBAAgB,CAACO,UAAU,CAAC,GAAGC,YAAY;IAC7C,CAAC,CAAC;IAEF,MAAMG,UAAU,GAAG;MACjBC,IAAI,EAAE;QACJC,KAAK,EAAE;UACLZ,QAAQ,EAAE;YACRY,KAAK,EAAEd;UACT;QACF;MACF;IACF,CAAC;IAEDe,MAAM,CAACC,OAAO,CAACf,gBAAgB,CAAC,CAACE,OAAO,CAAC,CAAC,CAACK,UAAU,EAAEC,YAAY,CAAC,KAAK;MACvE,MAAMQ,aAAa,GAAGL,UAAU,CAACC,IAAI,CAACC,KAAK,CAACN,UAAU,CAAC,IAAI,CAAC,CAAC;MAC7DS,aAAa,CAACH,KAAK,GAAGL,YAAY;MAClCG,UAAU,CAACC,IAAI,CAACC,KAAK,CAACN,UAAU,CAAC,GAAGS,aAAa;IACnD,CAAC,CAAC;IAEFvB,gBAAgB,CAACS,OAAO,CAAC,CAAC;MAAEC,EAAE;MAAEC;IAAY,CAAC,KAAK;MAChDL,SAAS,CAACI,EAAE,CAAC,GAAG;QACdM,KAAK,EAAEL,WAAW;QAClBM,GAAG,EAAE,iBAAiBP,EAAE;MAC1B,CAAC;IACH,CAAC,CAAC;IAEFd,SAAS,CAACsB,UAAU,CAAC;EACvB,CAAC;AACH;AAAC,IAAAM,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEchC,sBAAsB","ignoreList":[]}
1
+ {"version":3,"file":"add-content-menu-items.js","names":["_adminUiUtils","require","MENU_PERMISSIONS","getMenuLabel","displayName","displayNamePlural","getAddContentMenuItems","app","addConfig","client","getClient","data","getEntitySchemas","query","getQuery","variables","canDoActions","length","sectionMenuItems","settings","orderedEntities","sort","entityA","entityB","localeCompare","forEach","entity","order","id","displayProperties","adminMenu","sectionKey","sectionItems","label","uri","menuConfig","main","items","Object","entries","sectionConfig","_default","exports","default"],"sources":["../../src/utils/add-content-menu-items.js"],"sourcesContent":["import { getQuery } from '@blaze-cms/admin-ui-utils';\n\nconst { MENU_PERMISSIONS } = require('../constants');\n\n// Menu items label a listing of many records, so they use the plural. The\n// fallback matters: this package and the API are published independently, so an\n// admin bundle can run against an API that does not yet resolve the field.\nfunction getMenuLabel({ displayName, displayNamePlural }) {\n return displayNamePlural || displayName || '';\n}\n\nfunction getAddContentMenuItems(app) {\n return async ({ addConfig }) => {\n const client = app.getClient();\n const {\n data: { getEntitySchemas }\n } = await client.query({\n query: getQuery('GET_USER_EDITABLE_ENTITIES'),\n variables: {\n // only return entities that the current user can do the following actions on\n canDoActions: MENU_PERMISSIONS\n }\n });\n\n if (!getEntitySchemas || !getEntitySchemas.length) return; // no items so don't add section\n\n const sectionMenuItems = { settings: {} };\n\n // Order by the label that is rendered, not by displayName. getEntitySchemas\n // is sorted on displayName server-side and that order serves every other\n // consumer, which shows the singular, so the plural ordering belongs here.\n // The explicit `order` is what MenuSectionItems reads to sort.\n const orderedEntities = [...getEntitySchemas].sort((entityA, entityB) =>\n getMenuLabel(entityA).localeCompare(getMenuLabel(entityB))\n );\n\n orderedEntities.forEach((entity, order) => {\n const { id, displayProperties } = entity;\n if (!displayProperties) return;\n\n const { adminMenu: { sectionKey = 'settings' } = {} } = displayProperties;\n const sectionItems = sectionMenuItems[sectionKey] || {};\n sectionItems[id] = {\n label: getMenuLabel(entity),\n order,\n uri: `/data-listing/${id}`\n };\n sectionMenuItems[sectionKey] = sectionItems;\n });\n\n const menuConfig = { main: { items: {} } };\n\n Object.entries(sectionMenuItems).forEach(([sectionKey, sectionItems]) => {\n const sectionConfig = menuConfig.main.items[sectionKey] || {};\n sectionConfig.items = sectionItems;\n menuConfig.main.items[sectionKey] = sectionConfig;\n });\n\n addConfig(menuConfig);\n };\n}\n\nexport default getAddContentMenuItems;\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEA,MAAM;EAAEC;AAAiB,CAAC,GAAGD,OAAO,CAAC,cAAc,CAAC;;AAEpD;AACA;AACA;AACA,SAASE,YAAYA,CAAC;EAAEC,WAAW;EAAEC;AAAkB,CAAC,EAAE;EACxD,OAAOA,iBAAiB,IAAID,WAAW,IAAI,EAAE;AAC/C;AAEA,SAASE,sBAAsBA,CAACC,GAAG,EAAE;EACnC,OAAO,OAAO;IAAEC;EAAU,CAAC,KAAK;IAC9B,MAAMC,MAAM,GAAGF,GAAG,CAACG,SAAS,CAAC,CAAC;IAC9B,MAAM;MACJC,IAAI,EAAE;QAAEC;MAAiB;IAC3B,CAAC,GAAG,MAAMH,MAAM,CAACI,KAAK,CAAC;MACrBA,KAAK,EAAE,IAAAC,sBAAQ,EAAC,4BAA4B,CAAC;MAC7CC,SAAS,EAAE;QACT;QACAC,YAAY,EAAEd;MAChB;IACF,CAAC,CAAC;IAEF,IAAI,CAACU,gBAAgB,IAAI,CAACA,gBAAgB,CAACK,MAAM,EAAE,OAAO,CAAC;;IAE3D,MAAMC,gBAAgB,GAAG;MAAEC,QAAQ,EAAE,CAAC;IAAE,CAAC;;IAEzC;IACA;IACA;IACA;IACA,MAAMC,eAAe,GAAG,CAAC,GAAGR,gBAAgB,CAAC,CAACS,IAAI,CAAC,CAACC,OAAO,EAAEC,OAAO,KAClEpB,YAAY,CAACmB,OAAO,CAAC,CAACE,aAAa,CAACrB,YAAY,CAACoB,OAAO,CAAC,CAC3D,CAAC;IAEDH,eAAe,CAACK,OAAO,CAAC,CAACC,MAAM,EAAEC,KAAK,KAAK;MACzC,MAAM;QAAEC,EAAE;QAAEC;MAAkB,CAAC,GAAGH,MAAM;MACxC,IAAI,CAACG,iBAAiB,EAAE;MAExB,MAAM;QAAEC,SAAS,EAAE;UAAEC,UAAU,GAAG;QAAW,CAAC,GAAG,CAAC;MAAE,CAAC,GAAGF,iBAAiB;MACzE,MAAMG,YAAY,GAAGd,gBAAgB,CAACa,UAAU,CAAC,IAAI,CAAC,CAAC;MACvDC,YAAY,CAACJ,EAAE,CAAC,GAAG;QACjBK,KAAK,EAAE9B,YAAY,CAACuB,MAAM,CAAC;QAC3BC,KAAK;QACLO,GAAG,EAAE,iBAAiBN,EAAE;MAC1B,CAAC;MACDV,gBAAgB,CAACa,UAAU,CAAC,GAAGC,YAAY;IAC7C,CAAC,CAAC;IAEF,MAAMG,UAAU,GAAG;MAAEC,IAAI,EAAE;QAAEC,KAAK,EAAE,CAAC;MAAE;IAAE,CAAC;IAE1CC,MAAM,CAACC,OAAO,CAACrB,gBAAgB,CAAC,CAACO,OAAO,CAAC,CAAC,CAACM,UAAU,EAAEC,YAAY,CAAC,KAAK;MACvE,MAAMQ,aAAa,GAAGL,UAAU,CAACC,IAAI,CAACC,KAAK,CAACN,UAAU,CAAC,IAAI,CAAC,CAAC;MAC7DS,aAAa,CAACH,KAAK,GAAGL,YAAY;MAClCG,UAAU,CAACC,IAAI,CAACC,KAAK,CAACN,UAAU,CAAC,GAAGS,aAAa;IACnD,CAAC,CAAC;IAEFhC,SAAS,CAAC2B,UAAU,CAAC;EACvB,CAAC;AACH;AAAC,IAAAM,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcrC,sBAAsB","ignoreList":[]}
@@ -10,7 +10,7 @@ import { useApolloClient } from '@apollo/client';
10
10
  import PropTypes from 'prop-types';
11
11
  import { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';
12
12
  import { getQuery } from '@blaze-cms/admin-ui-utils';
13
- import { FormBuilder, parseFormValues } from '@blaze-cms/react-form-builder';
13
+ import { FormBuilder, parseFormValues, validate } from '@blaze-cms/react-form-builder';
14
14
  import { DeleteAction, CopyDataFromAction } from '@blaze-cms/admin';
15
15
  import { useToasts } from '@blaze-react/toaster';
16
16
  import cloneDeep from 'lodash.clonedeep';
@@ -18,9 +18,9 @@ import { getPageName } from '../utils/data-mappers';
18
18
  import availableActions from './actions-handlers';
19
19
  import SideBarRelations from './SideBarRelations';
20
20
  import useCallbackDebounce from '../../hooks/useCallbackDebounce';
21
- import { ENTITY_PUBLISHED, TEXT_CONTENT_TYPE, LEAVE_PAGE_MESSAGE, PREVIEW_INTERFACE, PAGE_BUILDER_FIELD_ID, PAGE_BUILDER_TEMPLATE_FIELD_ID, ERROR, SAVE_BUTTON_TEXTS, UNPUBLISHED_WARNING } from '../../../constants';
21
+ import { ENTITY_PUBLISHED, TEXT_CONTENT_TYPE, LEAVE_PAGE_MESSAGE, PREVIEW_INTERFACE, PAGE_BUILDER_FIELD_ID, PAGE_BUILDER_TEMPLATE_FIELD_ID, ERROR, SAVE_BUTTON_TEXTS, UNPUBLISHED_WARNING, VIEW_UNPUBLISHED_REASON, TITLE_FIELD_ID } from '../../../constants';
22
22
  import EntityHeader from './EntityHeader';
23
- import { validateSideBarRelations, canViewPage, onViewUrlClick, getUpdatedFormValues, checkFulfilConditions } from '../utils/entity';
23
+ import { validateSideBarRelations, canEditTitle, canViewPage, hasViewableUrl, onViewUrlClick, getUpdatedFormValues, checkFulfilConditions } from '../utils/entity';
24
24
  import useToggle from '../../../utils/hooks/useToggle';
25
25
  import InfoBoxes from '../../InfoBoxes/InfoBoxes';
26
26
  import { RecordEditContextProvider } from '../utils/RecordEditContext';
@@ -348,7 +348,30 @@ const Entity = ({
348
348
  }, addToast);
349
349
  };
350
350
  const showModal = checkFulfilConditions(formData, modalStatus);
351
- const onViewUrlHandler = canViewPage(entity, schema, entityIsPublished) ? () => onViewUrlClick(getFullUrl) : onViewUrl;
351
+
352
+ // Unpublished keeps the button, disabled with a reason, rather than hiding it.
353
+ const isViewable = canViewPage(entity, schema, entityIsPublished);
354
+ const onViewUrlHandler = isViewable ? () => onViewUrlClick(getFullUrl) : onViewUrl;
355
+ const viewUrlDisabledReason = !isViewable && hasViewableUrl(entity, schema) ? VIEW_UNPUBLISHED_REASON : null;
356
+ const onTitleChange = value => {
357
+ if (!componentIsMounted.current) return;
358
+ const updatedFormValues = getUpdatedFormValues({
359
+ id: TITLE_FIELD_ID,
360
+ value,
361
+ formValues
362
+ });
363
+ const [isValid, valuesChecked] = validate({
364
+ values: updatedFormValues,
365
+ schema,
366
+ currentField: TITLE_FIELD_ID
367
+ });
368
+ setFormValues(valuesChecked);
369
+ setPageTitle(value);
370
+ setIsFormValid(isValid);
371
+ setIsSaveButtonAvailable(isValid);
372
+ isValid && setSaveButtonText(SAVE_BUTTON_TEXTS.save);
373
+ };
374
+ const onTitleChangeHandler = canEditTitle(schema, formValues) ? onTitleChange : null;
352
375
  const pageName = formData && formData.values && formData.values.name;
353
376
  const hasToDisplayPrompt = isSaveButtonAvailable && !suppressPrompt;
354
377
  const showSideBarRelations = checkFulfilConditions(schema, formData);
@@ -373,6 +396,8 @@ const Entity = ({
373
396
  toggleModal: setModalStatus,
374
397
  formData: formData,
375
398
  onViewUrl: onViewUrlHandler,
399
+ viewUrlDisabledReason: viewUrlDisabledReason,
400
+ onTitleChange: onTitleChangeHandler,
376
401
  saveButtonText: saveButtonText,
377
402
  saveOnChange: saveOnChange,
378
403
  entitySchema: entitySchema
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.js","names":["React","useEffect","useState","useRef","withRouter","Prompt","useApolloClient","PropTypes","RenderHook","getQuery","FormBuilder","parseFormValues","DeleteAction","CopyDataFromAction","useToasts","cloneDeep","getPageName","availableActions","SideBarRelations","useCallbackDebounce","ENTITY_PUBLISHED","TEXT_CONTENT_TYPE","LEAVE_PAGE_MESSAGE","PREVIEW_INTERFACE","PAGE_BUILDER_FIELD_ID","PAGE_BUILDER_TEMPLATE_FIELD_ID","ERROR","SAVE_BUTTON_TEXTS","UNPUBLISHED_WARNING","EntityHeader","validateSideBarRelations","canViewPage","onViewUrlClick","getUpdatedFormValues","checkFulfilConditions","useToggle","InfoBoxes","RecordEditContextProvider","Entity","formData","entity","schema","previousQuery","action","history","updateFormData","onViewUrl","refetchRecord","_formData$values","formValues","setFormValues","entitySchema","setEntitySchema","entityData","setEntityData","entityIdentifier","setEntityIdentifier","pageTitle","setPageTitle","isSaveButtonAvailable","setIsSaveButtonAvailable","entityIsPublished","setEntityIsPublish","values","status","isEnablePublishButton","setEnablePublishButton","isEnablePreviewButton","setEnablePreviewButton","modalStatus","setModalStatus","copyModalStatus","setCopyModalStatus","pageBuilderTemplateStatus","setPageBuilderTemplateStatus","shouldCopyData","setShouldCopyData","isFormValid","setIsFormValid","formDataFromCopy","setFormDataFromCopy","newUpdatedDate","setNewUpdatedDate","saveButtonText","setSaveButtonText","save","externalUpdateTime","setExternalUpdateTime","suppressPrompt","setSuppressPrompt","isRightSidebarOpen","setIsRightSidebarOpen","handleToggleRightSidebar","isCreatePage","location","pathname","includes","isNewEntity","setIsNewEntity","client","shouldUpdateState","id","clonedFormData","addToast","componentIsMounted","displayProperties","saveOnChange","onSubmit","current","actions","publish","identifier","interfaces","isPageBuilderTemplateSet","pageBuilderTemplateId","writeQuery","query","data","pageBuilderTemplateSet","currentEntity","currentItemId","getFullUrl","getEntityUrl","variables","itemId","itemEntity","fullUrl","fetchPolicy","getFormValues","onChangeSideBarRelations","value","requiredChildField","updatedFormValues","shouldActiveSaveButton","onChangeFormValues","_ref","isValid","fields","isNewValueSet","valuesChecked","currentField","fieldValue","otherProps","_objectWithoutProperties","_excluded","slice","pageBuilder","filter","formValue","parent","mergePageBuilderTemplateChanges","map","updatedFormValue","_objectSpread","itemsToAdd","length","forEach","item","index","findIndex","push","updatedEntity","isNotValidOrNotNewValueSet","event","preventDefault","parsedFormValues","update","handleUpdateFormData","submitParams","create","currentAction","submit","onDelete","delete","onCopy","name","updateCopyData","handleCopyDataFromClose","getFormData","formDataValues","formDataUpdated","handlePublishAndUnpublish","target","textContent","isPublishButton","isPublished","isUnpublish","appearance","autoDismiss","savedPageMessage","shared","triggerPublish","showModal","onViewUrlHandler","pageName","hasToDisplayPrompt","showSideBarRelations","createElement","updated","className","toggleCopyModal","toggleModal","when","message","onClose","deleteAction","itemName","copyAction","hookKey","getIsFormValid","onChange","onExternalUpdate","mode","isOpen","onToggle","propTypes","object","string","isRequired","func","defaultProps"],"sources":["../../../../src/components/EntityManager/Entity/Entity.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { withRouter, Prompt } from 'react-router-dom';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { FormBuilder, parseFormValues } from '@blaze-cms/react-form-builder';\nimport { DeleteAction, CopyDataFromAction } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport cloneDeep from 'lodash.clonedeep';\nimport { getPageName } from '../utils/data-mappers';\nimport availableActions from './actions-handlers';\nimport SideBarRelations from './SideBarRelations';\nimport useCallbackDebounce from '../../hooks/useCallbackDebounce';\n\nimport {\n ENTITY_PUBLISHED,\n TEXT_CONTENT_TYPE,\n LEAVE_PAGE_MESSAGE,\n PREVIEW_INTERFACE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SAVE_BUTTON_TEXTS,\n UNPUBLISHED_WARNING\n} from '../../../constants';\nimport EntityHeader from './EntityHeader';\n\nimport {\n validateSideBarRelations,\n canViewPage,\n onViewUrlClick,\n getUpdatedFormValues,\n checkFulfilConditions\n} from '../utils/entity';\nimport useToggle from '../../../utils/hooks/useToggle';\nimport InfoBoxes from '../../InfoBoxes/InfoBoxes';\nimport { RecordEditContextProvider } from '../utils/RecordEditContext';\n\nconst Entity = ({\n formData,\n entity,\n schema,\n previousQuery,\n action,\n history,\n updateFormData,\n onViewUrl,\n refetchRecord\n}) => {\n const [formValues, setFormValues] = useState(null);\n const [entitySchema, setEntitySchema] = useState(null);\n const [entityData, setEntityData] = useState(null);\n const [entityIdentifier, setEntityIdentifier] = useState(null);\n const [pageTitle, setPageTitle] = useState('');\n const [isSaveButtonAvailable, setIsSaveButtonAvailable] = useState(false);\n const [entityIsPublished, setEntityIsPublish] = useState(\n formData && formData.values && formData.values.status\n );\n const [isEnablePublishButton, setEnablePublishButton] = useState(false);\n const [isEnablePreviewButton, setEnablePreviewButton] = useState(false);\n const [modalStatus, setModalStatus] = useToggle(false);\n const [copyModalStatus, setCopyModalStatus] = useToggle(false);\n const [pageBuilderTemplateStatus, setPageBuilderTemplateStatus] = useState(true);\n const [shouldCopyData, setShouldCopyData] = useState(false);\n const [isFormValid, setIsFormValid] = useState(false);\n const [formDataFromCopy, setFormDataFromCopy] = useState(null);\n const [newUpdatedDate, setNewUpdatedDate] = useState(null);\n const [saveButtonText, setSaveButtonText] = useState(SAVE_BUTTON_TEXTS.save);\n const [externalUpdateTime, setExternalUpdateTime] = useState(null);\n const [suppressPrompt, setSuppressPrompt] = useState(false);\n const [isRightSidebarOpen, setIsRightSidebarOpen] = useState(true);\n const handleToggleRightSidebar = () => setIsRightSidebarOpen(!isRightSidebarOpen);\n\n const isCreatePage = history.location.pathname.includes('create');\n const [isNewEntity, setIsNewEntity] = useState(isCreatePage);\n\n const client = useApolloClient();\n const shouldUpdateState =\n !entityIdentifier ||\n checkFulfilConditions(entity, schema, previousQuery, !entityData) ||\n (entityData && entityData.id !== entity.id);\n const clonedFormData = cloneDeep(formData);\n const { addToast } = useToasts();\n\n // Here's how we'll keep track of our component's mounted state\n const componentIsMounted = useRef(true);\n\n const {\n displayProperties: { saveOnChange = false }\n } = schema;\n\n useCallbackDebounce(\n () => {\n isSaveButtonAvailable && onSubmit();\n },\n 500,\n [isSaveButtonAvailable],\n !saveOnChange\n );\n\n useEffect(\n () => () => {\n componentIsMounted.current = false;\n },\n []\n ); // Using an empty dependency array ensures this only runs on unmount\n\n useEffect(() => {\n if (shouldUpdateState) {\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n setEntityData(entity);\n setPageTitle(getPageName(schema.displayProperties, entity));\n setEntityIsPublish(entity.status);\n setEntitySchema(schema);\n setEnablePublishButton(schema.actions.publish);\n setEntityIdentifier(schema.identifier);\n setEnablePreviewButton(!!schema.interfaces.includes(PREVIEW_INTERFACE));\n }\n\n if (formData && pageBuilderTemplateStatus) {\n const isPageBuilderTemplateSet = !!formData.values.pageBuilderTemplateId;\n client.writeQuery({\n query: getQuery('GET_PB_TEMPLATE_STATUS'),\n data: {\n pageBuilderTemplateSet: isPageBuilderTemplateSet,\n pageBuilderTemplateId: formData.values.pageBuilderTemplateId || ''\n }\n });\n }\n if (schema) {\n client.writeQuery({\n query: getQuery('GET_CURRENT_ENTITY'),\n data: {\n currentEntity: schema.id,\n currentItemId: entity ? entity.id : null\n }\n });\n }\n }, [\n client,\n entity,\n entityData,\n formData,\n formValues,\n pageBuilderTemplateStatus,\n previousQuery,\n schema,\n shouldUpdateState\n ]);\n\n const getFullUrl = async () => {\n const query = getQuery('GET_ENTITY_URL');\n const { data: { getEntityUrl = '' } = {} } = await client.query({\n query,\n variables: { itemId: entity.id, itemEntity: schema.id, fullUrl: true },\n fetchPolicy: 'network-only'\n });\n return getEntityUrl;\n };\n\n const getFormValues = values => {\n if (componentIsMounted.current) {\n setFormValues(values);\n }\n };\n\n const onChangeSideBarRelations = ({ id, value }, requiredChildField) => {\n const updatedFormValues = getUpdatedFormValues({ id, value, requiredChildField, formValues });\n\n const shouldActiveSaveButton = validateSideBarRelations(updatedFormValues, requiredChildField);\n\n if (isFormValid && shouldActiveSaveButton && componentIsMounted.current) {\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n } else if (componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n if (componentIsMounted.current) {\n setFormValues(updatedFormValues);\n }\n };\n\n const onChangeFormValues = async ({\n isValid,\n fields,\n isNewValueSet,\n valuesChecked,\n currentField,\n value: fieldValue,\n ...otherProps\n }) => {\n let updatedFormValues = valuesChecked ? valuesChecked.slice() : [];\n if (currentField === PAGE_BUILDER_TEMPLATE_FIELD_ID) {\n const pageBuilderTemplateId = fieldValue;\n client.writeQuery({\n query: getQuery('GET_PB_TEMPLATE_STATUS'),\n data: {\n pageBuilderTemplateSet: !!pageBuilderTemplateId,\n pageBuilderTemplateId\n }\n });\n\n if (componentIsMounted.current) {\n setPageBuilderTemplateStatus(false);\n }\n\n const pageBuilder = updatedFormValues.filter(\n formValue => formValue.id === PAGE_BUILDER_FIELD_ID\n );\n\n if (pageBuilderTemplateId) {\n const { data = {} } = await client.query({\n query: getQuery('MERGE_PB_TEMPLATE_CHANGES'),\n variables: {\n parent: {\n pageBuilder: pageBuilder[0].value,\n pageBuilderTemplateId\n },\n entityIdentifier\n }\n });\n\n if (data && data.mergePageBuilderTemplateChanges) {\n updatedFormValues = updatedFormValues.map(updatedFormValue => {\n if (updatedFormValue.id === PAGE_BUILDER_FIELD_ID) {\n return {\n ...updatedFormValue,\n value: data.mergePageBuilderTemplateChanges\n };\n }\n return updatedFormValue;\n });\n }\n }\n }\n const itemsToAdd = [];\n if (formValues && formValues.length > updatedFormValues.length) {\n [...updatedFormValues, ...formValues].forEach(item => {\n const index = updatedFormValues.findIndex(value => value.id === item.id);\n if (index === -1) {\n itemsToAdd.push(item);\n }\n });\n }\n\n const [updatedEntity = null] = fields.filter(({ id }) => id === 'name');\n updatedEntity && setPageTitle(updatedEntity.value);\n\n const isNotValidOrNotNewValueSet = !isValid || !isNewValueSet;\n if (componentIsMounted.current) {\n setIsFormValid(isValid);\n }\n\n if (isValid && isNewValueSet && componentIsMounted.current) {\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n }\n\n if (isNotValidOrNotNewValueSet && componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n if (componentIsMounted.current) {\n setFormValues([...updatedFormValues, ...itemsToAdd]);\n }\n };\n\n const onSubmit = event => {\n event && event.preventDefault();\n if (!isSaveButtonAvailable) return null;\n\n if (isCreatePage) {\n setSuppressPrompt(true);\n }\n const parsedFormValues = parseFormValues(formValues);\n const updatedFormValues = newUpdatedDate\n ? { ...formData.values, update: newUpdatedDate }\n : { ...formData.values };\n\n const handleUpdateFormData = () =>\n updateFormData(\n {\n values: { ...updatedFormValues, ...parsedFormValues }\n },\n true\n );\n\n const submitParams = {\n update: {\n entitySchema,\n entityData,\n parsedFormValues,\n client,\n setIsSaveButtonAvailable,\n setNewUpdatedDate,\n newUpdatedDate,\n previousQuery,\n setSaveButtonText,\n handleUpdateFormData\n },\n create: {\n entitySchema,\n parsedFormValues,\n client,\n setEntityData,\n setIsSaveButtonAvailable,\n history,\n setIsNewEntity,\n setSaveButtonText,\n handleUpdateFormData\n }\n };\n\n const currentAction = submitParams[action];\n return availableActions[action].submit(currentAction, addToast);\n };\n\n const onDelete = async () => {\n const {\n values: { id }\n } = formData;\n\n if (componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n await availableActions.delete.submit(\n {\n entitySchema,\n client,\n parsedFormValues: { id }\n },\n addToast\n );\n\n history.push(`/data-listing/${entitySchema.id}`);\n };\n\n const onCopy = () => {\n if (formDataFromCopy && componentIsMounted.current) {\n updateFormData(formDataFromCopy);\n setShouldCopyData(true);\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n if (formDataFromCopy.values.name) {\n setPageTitle(formDataFromCopy.values.name);\n }\n }\n };\n\n const updateCopyData = () => {\n setCopyModalStatus(!copyModalStatus);\n setShouldCopyData(false);\n };\n\n const handleCopyDataFromClose = () => {\n setCopyModalStatus(false);\n setFormDataFromCopy(null);\n };\n\n const getFormData = formDataValues => {\n const formDataUpdated = {\n values: { ...formDataValues }\n };\n setFormDataFromCopy(formDataUpdated);\n };\n\n const handlePublishAndUnpublish = async ({ target: { textContent } }) => {\n const isPublishButton = textContent === TEXT_CONTENT_TYPE;\n const isPublished = entityIsPublished === ENTITY_PUBLISHED;\n\n const isUnpublish = checkFulfilConditions(!isPublishButton, !isPublished);\n\n if (isUnpublish) {\n return addToast(UNPUBLISHED_WARNING, {\n appearance: 'warning',\n autoDismiss: true\n });\n }\n\n if (checkFulfilConditions(isPublishButton, isSaveButtonAvailable)) {\n const savedPageMessage = await onSubmit();\n\n if (savedPageMessage === ERROR) {\n return addToast(`Content not published`, {\n appearance: ERROR,\n autoDismiss: true\n });\n }\n }\n\n return availableActions.shared.triggerPublish(\n {\n entityData,\n client,\n setEntityIsPublish,\n entitySchema,\n textContent,\n refetchRecord\n },\n addToast\n );\n };\n\n const showModal = checkFulfilConditions(formData, modalStatus);\n\n const onViewUrlHandler = canViewPage(entity, schema, entityIsPublished)\n ? () => onViewUrlClick(getFullUrl)\n : onViewUrl;\n\n const pageName = formData && formData.values && formData.values.name;\n\n const hasToDisplayPrompt = isSaveButtonAvailable && !suppressPrompt;\n\n const showSideBarRelations = checkFulfilConditions(schema, formData);\n\n return (\n <RecordEditContextProvider value={{ externalUpdateTime, updated: formData?.values?.updated }}>\n <div className=\"page\">\n <EntityHeader\n entityData={entityData}\n entityIdentifier={entityIdentifier}\n pageTitle={pageTitle}\n pageName={pageName}\n onSubmit={onSubmit}\n handlePublishAndUnpublish={handlePublishAndUnpublish}\n isSaveButtonAvailable={isSaveButtonAvailable}\n isEnablePublishButton={isEnablePublishButton}\n isEnablePreviewButton={isEnablePreviewButton}\n toggleCopyModal={setCopyModalStatus}\n toggleModal={setModalStatus}\n formData={formData}\n onViewUrl={onViewUrlHandler}\n saveButtonText={saveButtonText}\n saveOnChange={saveOnChange}\n entitySchema={entitySchema}\n />\n <div className=\"page-wrapper__content\">\n <div className=\"tabs-wrapper tabs-wrapper__tab\">\n <Prompt when={hasToDisplayPrompt} message={LEAVE_PAGE_MESSAGE} />\n {showModal && (\n <DeleteAction\n onClose={setModalStatus}\n deleteAction={onDelete}\n itemName={formData.values.name}\n />\n )}\n {copyModalStatus && (\n <CopyDataFromAction\n onClose={handleCopyDataFromClose}\n copyAction={onCopy}\n getFormData={getFormData}\n />\n )}\n\n <div\n className={`page__content${!isRightSidebarOpen ? ' right-sidebar-collapsed' : ''}`}>\n <div className=\"page__content\">\n <div className=\"content\">\n <RenderHook\n hookKey={`entity:${action}:main:top`}\n entity={entity}\n schema={schema}\n />\n <InfoBoxes id={entity.id} schema={schema} />\n <FormBuilder\n getIsFormValid={setIsFormValid}\n getFormValues={getFormValues}\n schema={schema}\n data={clonedFormData}\n onChange={onChangeFormValues}\n shouldCopyData={shouldCopyData}\n updateCopyData={updateCopyData}\n formValues={formValues}\n isNewEntity={isNewEntity}\n onExternalUpdate={setExternalUpdateTime}\n mode={isNewEntity ? 'create' : 'update'}\n />\n <RenderHook\n hookKey={`entity:${action}:main:bottom`}\n entity={entity}\n schema={schema}\n />\n </div>\n </div>\n </div>\n </div>\n\n <div\n className={`column column--one-third page-sidebar page-sidebar--relations${\n !isRightSidebarOpen ? ' sidebar--collapsed' : ''\n }`}>\n {showSideBarRelations && (\n <SideBarRelations\n entity={entity}\n formData={formData.values}\n schema={schema}\n onChange={onChangeSideBarRelations}\n isOpen={isRightSidebarOpen}\n onToggle={handleToggleRightSidebar}\n />\n )}\n </div>\n </div>\n </div>\n </RecordEditContextProvider>\n );\n};\n\nEntity.propTypes = {\n entity: PropTypes.object,\n schema: PropTypes.object,\n previousQuery: PropTypes.object,\n action: PropTypes.string.isRequired,\n history: PropTypes.object.isRequired,\n formData: PropTypes.object,\n updateFormData: PropTypes.func.isRequired,\n onViewUrl: PropTypes.func,\n refetchRecord: PropTypes.func.isRequired\n};\n\nEntity.defaultProps = {\n previousQuery: null,\n schema: null,\n entity: null,\n formData: null,\n onViewUrl: null\n};\n\nexport default withRouter(Entity);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Entity.js","names":["React","useEffect","useState","useRef","withRouter","Prompt","useApolloClient","PropTypes","RenderHook","getQuery","FormBuilder","parseFormValues","validate","DeleteAction","CopyDataFromAction","useToasts","cloneDeep","getPageName","availableActions","SideBarRelations","useCallbackDebounce","ENTITY_PUBLISHED","TEXT_CONTENT_TYPE","LEAVE_PAGE_MESSAGE","PREVIEW_INTERFACE","PAGE_BUILDER_FIELD_ID","PAGE_BUILDER_TEMPLATE_FIELD_ID","ERROR","SAVE_BUTTON_TEXTS","UNPUBLISHED_WARNING","VIEW_UNPUBLISHED_REASON","TITLE_FIELD_ID","EntityHeader","validateSideBarRelations","canEditTitle","canViewPage","hasViewableUrl","onViewUrlClick","getUpdatedFormValues","checkFulfilConditions","useToggle","InfoBoxes","RecordEditContextProvider","Entity","formData","entity","schema","previousQuery","action","history","updateFormData","onViewUrl","refetchRecord","_formData$values","formValues","setFormValues","entitySchema","setEntitySchema","entityData","setEntityData","entityIdentifier","setEntityIdentifier","pageTitle","setPageTitle","isSaveButtonAvailable","setIsSaveButtonAvailable","entityIsPublished","setEntityIsPublish","values","status","isEnablePublishButton","setEnablePublishButton","isEnablePreviewButton","setEnablePreviewButton","modalStatus","setModalStatus","copyModalStatus","setCopyModalStatus","pageBuilderTemplateStatus","setPageBuilderTemplateStatus","shouldCopyData","setShouldCopyData","isFormValid","setIsFormValid","formDataFromCopy","setFormDataFromCopy","newUpdatedDate","setNewUpdatedDate","saveButtonText","setSaveButtonText","save","externalUpdateTime","setExternalUpdateTime","suppressPrompt","setSuppressPrompt","isRightSidebarOpen","setIsRightSidebarOpen","handleToggleRightSidebar","isCreatePage","location","pathname","includes","isNewEntity","setIsNewEntity","client","shouldUpdateState","id","clonedFormData","addToast","componentIsMounted","displayProperties","saveOnChange","onSubmit","current","actions","publish","identifier","interfaces","isPageBuilderTemplateSet","pageBuilderTemplateId","writeQuery","query","data","pageBuilderTemplateSet","currentEntity","currentItemId","getFullUrl","getEntityUrl","variables","itemId","itemEntity","fullUrl","fetchPolicy","getFormValues","onChangeSideBarRelations","value","requiredChildField","updatedFormValues","shouldActiveSaveButton","onChangeFormValues","_ref","isValid","fields","isNewValueSet","valuesChecked","currentField","fieldValue","otherProps","_objectWithoutProperties","_excluded","slice","pageBuilder","filter","formValue","parent","mergePageBuilderTemplateChanges","map","updatedFormValue","_objectSpread","itemsToAdd","length","forEach","item","index","findIndex","push","updatedEntity","isNotValidOrNotNewValueSet","event","preventDefault","parsedFormValues","update","handleUpdateFormData","submitParams","create","currentAction","submit","onDelete","delete","onCopy","name","updateCopyData","handleCopyDataFromClose","getFormData","formDataValues","formDataUpdated","handlePublishAndUnpublish","target","textContent","isPublishButton","isPublished","isUnpublish","appearance","autoDismiss","savedPageMessage","shared","triggerPublish","showModal","isViewable","onViewUrlHandler","viewUrlDisabledReason","onTitleChange","onTitleChangeHandler","pageName","hasToDisplayPrompt","showSideBarRelations","createElement","updated","className","toggleCopyModal","toggleModal","when","message","onClose","deleteAction","itemName","copyAction","hookKey","getIsFormValid","onChange","onExternalUpdate","mode","isOpen","onToggle","propTypes","object","string","isRequired","func","defaultProps"],"sources":["../../../../src/components/EntityManager/Entity/Entity.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { withRouter, Prompt } from 'react-router-dom';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { FormBuilder, parseFormValues, validate } from '@blaze-cms/react-form-builder';\nimport { DeleteAction, CopyDataFromAction } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport cloneDeep from 'lodash.clonedeep';\nimport { getPageName } from '../utils/data-mappers';\nimport availableActions from './actions-handlers';\nimport SideBarRelations from './SideBarRelations';\nimport useCallbackDebounce from '../../hooks/useCallbackDebounce';\n\nimport {\n ENTITY_PUBLISHED,\n TEXT_CONTENT_TYPE,\n LEAVE_PAGE_MESSAGE,\n PREVIEW_INTERFACE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SAVE_BUTTON_TEXTS,\n UNPUBLISHED_WARNING,\n VIEW_UNPUBLISHED_REASON,\n TITLE_FIELD_ID\n} from '../../../constants';\nimport EntityHeader from './EntityHeader';\n\nimport {\n validateSideBarRelations,\n canEditTitle,\n canViewPage,\n hasViewableUrl,\n onViewUrlClick,\n getUpdatedFormValues,\n checkFulfilConditions\n} from '../utils/entity';\nimport useToggle from '../../../utils/hooks/useToggle';\nimport InfoBoxes from '../../InfoBoxes/InfoBoxes';\nimport { RecordEditContextProvider } from '../utils/RecordEditContext';\n\nconst Entity = ({\n formData,\n entity,\n schema,\n previousQuery,\n action,\n history,\n updateFormData,\n onViewUrl,\n refetchRecord\n}) => {\n const [formValues, setFormValues] = useState(null);\n const [entitySchema, setEntitySchema] = useState(null);\n const [entityData, setEntityData] = useState(null);\n const [entityIdentifier, setEntityIdentifier] = useState(null);\n const [pageTitle, setPageTitle] = useState('');\n const [isSaveButtonAvailable, setIsSaveButtonAvailable] = useState(false);\n const [entityIsPublished, setEntityIsPublish] = useState(\n formData && formData.values && formData.values.status\n );\n const [isEnablePublishButton, setEnablePublishButton] = useState(false);\n const [isEnablePreviewButton, setEnablePreviewButton] = useState(false);\n const [modalStatus, setModalStatus] = useToggle(false);\n const [copyModalStatus, setCopyModalStatus] = useToggle(false);\n const [pageBuilderTemplateStatus, setPageBuilderTemplateStatus] = useState(true);\n const [shouldCopyData, setShouldCopyData] = useState(false);\n const [isFormValid, setIsFormValid] = useState(false);\n const [formDataFromCopy, setFormDataFromCopy] = useState(null);\n const [newUpdatedDate, setNewUpdatedDate] = useState(null);\n const [saveButtonText, setSaveButtonText] = useState(SAVE_BUTTON_TEXTS.save);\n const [externalUpdateTime, setExternalUpdateTime] = useState(null);\n const [suppressPrompt, setSuppressPrompt] = useState(false);\n const [isRightSidebarOpen, setIsRightSidebarOpen] = useState(true);\n const handleToggleRightSidebar = () => setIsRightSidebarOpen(!isRightSidebarOpen);\n\n const isCreatePage = history.location.pathname.includes('create');\n const [isNewEntity, setIsNewEntity] = useState(isCreatePage);\n\n const client = useApolloClient();\n const shouldUpdateState =\n !entityIdentifier ||\n checkFulfilConditions(entity, schema, previousQuery, !entityData) ||\n (entityData && entityData.id !== entity.id);\n const clonedFormData = cloneDeep(formData);\n const { addToast } = useToasts();\n\n // Here's how we'll keep track of our component's mounted state\n const componentIsMounted = useRef(true);\n\n const {\n displayProperties: { saveOnChange = false }\n } = schema;\n\n useCallbackDebounce(\n () => {\n isSaveButtonAvailable && onSubmit();\n },\n 500,\n [isSaveButtonAvailable],\n !saveOnChange\n );\n\n useEffect(\n () => () => {\n componentIsMounted.current = false;\n },\n []\n ); // Using an empty dependency array ensures this only runs on unmount\n\n useEffect(() => {\n if (shouldUpdateState) {\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n setEntityData(entity);\n setPageTitle(getPageName(schema.displayProperties, entity));\n setEntityIsPublish(entity.status);\n setEntitySchema(schema);\n setEnablePublishButton(schema.actions.publish);\n setEntityIdentifier(schema.identifier);\n setEnablePreviewButton(!!schema.interfaces.includes(PREVIEW_INTERFACE));\n }\n\n if (formData && pageBuilderTemplateStatus) {\n const isPageBuilderTemplateSet = !!formData.values.pageBuilderTemplateId;\n client.writeQuery({\n query: getQuery('GET_PB_TEMPLATE_STATUS'),\n data: {\n pageBuilderTemplateSet: isPageBuilderTemplateSet,\n pageBuilderTemplateId: formData.values.pageBuilderTemplateId || ''\n }\n });\n }\n if (schema) {\n client.writeQuery({\n query: getQuery('GET_CURRENT_ENTITY'),\n data: {\n currentEntity: schema.id,\n currentItemId: entity ? entity.id : null\n }\n });\n }\n }, [\n client,\n entity,\n entityData,\n formData,\n formValues,\n pageBuilderTemplateStatus,\n previousQuery,\n schema,\n shouldUpdateState\n ]);\n\n const getFullUrl = async () => {\n const query = getQuery('GET_ENTITY_URL');\n const { data: { getEntityUrl = '' } = {} } = await client.query({\n query,\n variables: { itemId: entity.id, itemEntity: schema.id, fullUrl: true },\n fetchPolicy: 'network-only'\n });\n return getEntityUrl;\n };\n\n const getFormValues = values => {\n if (componentIsMounted.current) {\n setFormValues(values);\n }\n };\n\n const onChangeSideBarRelations = ({ id, value }, requiredChildField) => {\n const updatedFormValues = getUpdatedFormValues({ id, value, requiredChildField, formValues });\n\n const shouldActiveSaveButton = validateSideBarRelations(updatedFormValues, requiredChildField);\n\n if (isFormValid && shouldActiveSaveButton && componentIsMounted.current) {\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n } else if (componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n if (componentIsMounted.current) {\n setFormValues(updatedFormValues);\n }\n };\n\n const onChangeFormValues = async ({\n isValid,\n fields,\n isNewValueSet,\n valuesChecked,\n currentField,\n value: fieldValue,\n ...otherProps\n }) => {\n let updatedFormValues = valuesChecked ? valuesChecked.slice() : [];\n if (currentField === PAGE_BUILDER_TEMPLATE_FIELD_ID) {\n const pageBuilderTemplateId = fieldValue;\n client.writeQuery({\n query: getQuery('GET_PB_TEMPLATE_STATUS'),\n data: {\n pageBuilderTemplateSet: !!pageBuilderTemplateId,\n pageBuilderTemplateId\n }\n });\n\n if (componentIsMounted.current) {\n setPageBuilderTemplateStatus(false);\n }\n\n const pageBuilder = updatedFormValues.filter(\n formValue => formValue.id === PAGE_BUILDER_FIELD_ID\n );\n\n if (pageBuilderTemplateId) {\n const { data = {} } = await client.query({\n query: getQuery('MERGE_PB_TEMPLATE_CHANGES'),\n variables: {\n parent: {\n pageBuilder: pageBuilder[0].value,\n pageBuilderTemplateId\n },\n entityIdentifier\n }\n });\n\n if (data && data.mergePageBuilderTemplateChanges) {\n updatedFormValues = updatedFormValues.map(updatedFormValue => {\n if (updatedFormValue.id === PAGE_BUILDER_FIELD_ID) {\n return {\n ...updatedFormValue,\n value: data.mergePageBuilderTemplateChanges\n };\n }\n return updatedFormValue;\n });\n }\n }\n }\n const itemsToAdd = [];\n if (formValues && formValues.length > updatedFormValues.length) {\n [...updatedFormValues, ...formValues].forEach(item => {\n const index = updatedFormValues.findIndex(value => value.id === item.id);\n if (index === -1) {\n itemsToAdd.push(item);\n }\n });\n }\n\n const [updatedEntity = null] = fields.filter(({ id }) => id === 'name');\n updatedEntity && setPageTitle(updatedEntity.value);\n\n const isNotValidOrNotNewValueSet = !isValid || !isNewValueSet;\n if (componentIsMounted.current) {\n setIsFormValid(isValid);\n }\n\n if (isValid && isNewValueSet && componentIsMounted.current) {\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n }\n\n if (isNotValidOrNotNewValueSet && componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n if (componentIsMounted.current) {\n setFormValues([...updatedFormValues, ...itemsToAdd]);\n }\n };\n\n const onSubmit = event => {\n event && event.preventDefault();\n if (!isSaveButtonAvailable) return null;\n\n if (isCreatePage) {\n setSuppressPrompt(true);\n }\n const parsedFormValues = parseFormValues(formValues);\n const updatedFormValues = newUpdatedDate\n ? { ...formData.values, update: newUpdatedDate }\n : { ...formData.values };\n\n const handleUpdateFormData = () =>\n updateFormData(\n {\n values: { ...updatedFormValues, ...parsedFormValues }\n },\n true\n );\n\n const submitParams = {\n update: {\n entitySchema,\n entityData,\n parsedFormValues,\n client,\n setIsSaveButtonAvailable,\n setNewUpdatedDate,\n newUpdatedDate,\n previousQuery,\n setSaveButtonText,\n handleUpdateFormData\n },\n create: {\n entitySchema,\n parsedFormValues,\n client,\n setEntityData,\n setIsSaveButtonAvailable,\n history,\n setIsNewEntity,\n setSaveButtonText,\n handleUpdateFormData\n }\n };\n\n const currentAction = submitParams[action];\n return availableActions[action].submit(currentAction, addToast);\n };\n\n const onDelete = async () => {\n const {\n values: { id }\n } = formData;\n\n if (componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n await availableActions.delete.submit(\n {\n entitySchema,\n client,\n parsedFormValues: { id }\n },\n addToast\n );\n\n history.push(`/data-listing/${entitySchema.id}`);\n };\n\n const onCopy = () => {\n if (formDataFromCopy && componentIsMounted.current) {\n updateFormData(formDataFromCopy);\n setShouldCopyData(true);\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n if (formDataFromCopy.values.name) {\n setPageTitle(formDataFromCopy.values.name);\n }\n }\n };\n\n const updateCopyData = () => {\n setCopyModalStatus(!copyModalStatus);\n setShouldCopyData(false);\n };\n\n const handleCopyDataFromClose = () => {\n setCopyModalStatus(false);\n setFormDataFromCopy(null);\n };\n\n const getFormData = formDataValues => {\n const formDataUpdated = {\n values: { ...formDataValues }\n };\n setFormDataFromCopy(formDataUpdated);\n };\n\n const handlePublishAndUnpublish = async ({ target: { textContent } }) => {\n const isPublishButton = textContent === TEXT_CONTENT_TYPE;\n const isPublished = entityIsPublished === ENTITY_PUBLISHED;\n\n const isUnpublish = checkFulfilConditions(!isPublishButton, !isPublished);\n\n if (isUnpublish) {\n return addToast(UNPUBLISHED_WARNING, {\n appearance: 'warning',\n autoDismiss: true\n });\n }\n\n if (checkFulfilConditions(isPublishButton, isSaveButtonAvailable)) {\n const savedPageMessage = await onSubmit();\n\n if (savedPageMessage === ERROR) {\n return addToast(`Content not published`, {\n appearance: ERROR,\n autoDismiss: true\n });\n }\n }\n\n return availableActions.shared.triggerPublish(\n {\n entityData,\n client,\n setEntityIsPublish,\n entitySchema,\n textContent,\n refetchRecord\n },\n addToast\n );\n };\n\n const showModal = checkFulfilConditions(formData, modalStatus);\n\n // Unpublished keeps the button, disabled with a reason, rather than hiding it.\n const isViewable = canViewPage(entity, schema, entityIsPublished);\n const onViewUrlHandler = isViewable ? () => onViewUrlClick(getFullUrl) : onViewUrl;\n const viewUrlDisabledReason =\n !isViewable && hasViewableUrl(entity, schema) ? VIEW_UNPUBLISHED_REASON : null;\n\n const onTitleChange = value => {\n if (!componentIsMounted.current) return;\n const updatedFormValues = getUpdatedFormValues({ id: TITLE_FIELD_ID, value, formValues });\n const [isValid, valuesChecked] = validate({\n values: updatedFormValues,\n schema,\n currentField: TITLE_FIELD_ID\n });\n\n setFormValues(valuesChecked);\n setPageTitle(value);\n setIsFormValid(isValid);\n setIsSaveButtonAvailable(isValid);\n isValid && setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n };\n\n const onTitleChangeHandler = canEditTitle(schema, formValues) ? onTitleChange : null;\n\n const pageName = formData && formData.values && formData.values.name;\n\n const hasToDisplayPrompt = isSaveButtonAvailable && !suppressPrompt;\n\n const showSideBarRelations = checkFulfilConditions(schema, formData);\n\n return (\n <RecordEditContextProvider value={{ externalUpdateTime, updated: formData?.values?.updated }}>\n <div className=\"page\">\n <EntityHeader\n entityData={entityData}\n entityIdentifier={entityIdentifier}\n pageTitle={pageTitle}\n pageName={pageName}\n onSubmit={onSubmit}\n handlePublishAndUnpublish={handlePublishAndUnpublish}\n isSaveButtonAvailable={isSaveButtonAvailable}\n isEnablePublishButton={isEnablePublishButton}\n isEnablePreviewButton={isEnablePreviewButton}\n toggleCopyModal={setCopyModalStatus}\n toggleModal={setModalStatus}\n formData={formData}\n onViewUrl={onViewUrlHandler}\n viewUrlDisabledReason={viewUrlDisabledReason}\n onTitleChange={onTitleChangeHandler}\n saveButtonText={saveButtonText}\n saveOnChange={saveOnChange}\n entitySchema={entitySchema}\n />\n <div className=\"page-wrapper__content\">\n <div className=\"tabs-wrapper tabs-wrapper__tab\">\n <Prompt when={hasToDisplayPrompt} message={LEAVE_PAGE_MESSAGE} />\n {showModal && (\n <DeleteAction\n onClose={setModalStatus}\n deleteAction={onDelete}\n itemName={formData.values.name}\n />\n )}\n {copyModalStatus && (\n <CopyDataFromAction\n onClose={handleCopyDataFromClose}\n copyAction={onCopy}\n getFormData={getFormData}\n />\n )}\n\n <div\n className={`page__content${!isRightSidebarOpen ? ' right-sidebar-collapsed' : ''}`}>\n <div className=\"page__content\">\n <div className=\"content\">\n <RenderHook\n hookKey={`entity:${action}:main:top`}\n entity={entity}\n schema={schema}\n />\n <InfoBoxes id={entity.id} schema={schema} />\n <FormBuilder\n getIsFormValid={setIsFormValid}\n getFormValues={getFormValues}\n schema={schema}\n data={clonedFormData}\n onChange={onChangeFormValues}\n shouldCopyData={shouldCopyData}\n updateCopyData={updateCopyData}\n formValues={formValues}\n isNewEntity={isNewEntity}\n onExternalUpdate={setExternalUpdateTime}\n mode={isNewEntity ? 'create' : 'update'}\n />\n <RenderHook\n hookKey={`entity:${action}:main:bottom`}\n entity={entity}\n schema={schema}\n />\n </div>\n </div>\n </div>\n </div>\n\n <div\n className={`column column--one-third page-sidebar page-sidebar--relations${\n !isRightSidebarOpen ? ' sidebar--collapsed' : ''\n }`}>\n {showSideBarRelations && (\n <SideBarRelations\n entity={entity}\n formData={formData.values}\n schema={schema}\n onChange={onChangeSideBarRelations}\n isOpen={isRightSidebarOpen}\n onToggle={handleToggleRightSidebar}\n />\n )}\n </div>\n </div>\n </div>\n </RecordEditContextProvider>\n );\n};\n\nEntity.propTypes = {\n entity: PropTypes.object,\n schema: PropTypes.object,\n previousQuery: PropTypes.object,\n action: PropTypes.string.isRequired,\n history: PropTypes.object.isRequired,\n formData: PropTypes.object,\n updateFormData: PropTypes.func.isRequired,\n onViewUrl: PropTypes.func,\n refetchRecord: PropTypes.func.isRequired\n};\n\nEntity.defaultProps = {\n previousQuery: null,\n schema: null,\n entity: null,\n formData: null,\n onViewUrl: null\n};\n\nexport default withRouter(Entity);\n"],"mappings":"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","ignoreList":[]}
@@ -21,6 +21,8 @@ const EntityHeader = ({
21
21
  formData,
22
22
  pageName,
23
23
  onViewUrl,
24
+ viewUrlDisabledReason,
25
+ onTitleChange,
24
26
  saveOnChange
25
27
  }) => {
26
28
  const SaveButtonModifiers = isSaveButtonAvailable ? ['small'] : ['small', 'disabled'];
@@ -39,7 +41,14 @@ const EntityHeader = ({
39
41
  return /*#__PURE__*/React.createElement(PageHeader, {
40
42
  title: pageTitle,
41
43
  pageName: pageName,
42
- onViewUrl: onViewUrl
44
+ onViewUrl: onViewUrl,
45
+ viewUrlDisabledReason: viewUrlDisabledReason,
46
+ onTitleChange: onTitleChange,
47
+ titleActions: showPreviewButton ? /*#__PURE__*/React.createElement(HeaderPreviewButton, {
48
+ itemId: entityData.id,
49
+ itemEntity: entityIdentifier,
50
+ iconOnly: true
51
+ }) : null
43
52
  }, /*#__PURE__*/React.createElement(PageHeader.Actions, null, !saveOnChange && /*#__PURE__*/React.createElement(Button, {
44
53
  onClick: onSubmit,
45
54
  modifiers: SaveButtonModifiers,
@@ -88,6 +97,8 @@ EntityHeader.propTypes = {
88
97
  toggleModal: PropTypes.func.isRequired,
89
98
  formData: PropTypes.object,
90
99
  onViewUrl: PropTypes.func.isRequired,
100
+ viewUrlDisabledReason: PropTypes.string,
101
+ onTitleChange: PropTypes.func,
91
102
  saveButtonText: PropTypes.string,
92
103
  saveOnChange: PropTypes.bool.isRequired
93
104
  };
@@ -96,6 +107,8 @@ EntityHeader.defaultProps = {
96
107
  entityIdentifier: '',
97
108
  formData: null,
98
109
  pageName: '',
110
+ viewUrlDisabledReason: null,
111
+ onTitleChange: null,
99
112
  saveButtonText: 'save'
100
113
  };
101
114
  EntityHeader.displayName = 'EntityHeader';
@@ -1 +1 @@
1
- {"version":3,"file":"EntityHeader.js","names":["React","PageHeader","Button","More","PropTypes","HeaderPreviewButton","SAVE_BUTTON_TEXTS","EntityHeader","saveButtonText","entityData","entitySchema","entityIdentifier","pageTitle","onSubmit","handlePublishAndUnpublish","isSaveButtonAvailable","isEnablePublishButton","isEnablePreviewButton","toggleCopyModal","toggleModal","formData","pageName","onViewUrl","saveOnChange","SaveButtonModifiers","showPreviewButton","id","shouldDisableMoreMenu","saving","displayProperties","adminCrudActions","delete","deleteAction","active","showDeleteButton","Object","keys","values","length","createElement","title","Actions","onClick","modifiers","disabled","Avatar","isMoreMenu","className","Content","itemId","itemEntity","propTypes","object","string","isRequired","func","bool","oneOfType","defaultProps","displayName"],"sources":["../../../../../src/components/EntityManager/Entity/EntityHeader/EntityHeader.js"],"sourcesContent":["import React from 'react';\nimport { PageHeader } from '@blaze-cms/admin';\nimport Button from '@blaze-react/button';\nimport More from '@blaze-react/more';\nimport PropTypes from 'prop-types';\nimport HeaderPreviewButton from './HeaderPreviewButton';\nimport { SAVE_BUTTON_TEXTS } from '../../../../constants';\n\nconst EntityHeader = ({\n saveButtonText,\n entityData,\n entitySchema,\n entityIdentifier,\n pageTitle,\n onSubmit,\n handlePublishAndUnpublish,\n isSaveButtonAvailable,\n isEnablePublishButton,\n isEnablePreviewButton,\n toggleCopyModal,\n toggleModal,\n formData,\n pageName,\n onViewUrl,\n saveOnChange\n}) => {\n const SaveButtonModifiers = isSaveButtonAvailable ? ['small'] : ['small', 'disabled'];\n const showPreviewButton = isEnablePreviewButton && entityIdentifier && entityData.id;\n const shouldDisableMoreMenu = saveButtonText === SAVE_BUTTON_TEXTS.saving;\n\n const {\n displayProperties: { adminCrudActions: { delete: deleteAction = { active: true } } = {} } = {}\n } = entitySchema || {};\n\n const showDeleteButton =\n deleteAction.active && formData && Object.keys(formData.values).length !== 0;\n\n return (\n <PageHeader title={pageTitle} pageName={pageName} onViewUrl={onViewUrl}>\n <PageHeader.Actions>\n {!saveOnChange && (\n <Button onClick={onSubmit} modifiers={SaveButtonModifiers} data-testid=\"button-save\">\n {saveButtonText}\n </Button>\n )}\n <More disabled={shouldDisableMoreMenu}>\n <More.Avatar data-testid={`entity-header-${pageName}`} isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu>\n {isEnablePublishButton && (\n <Button className=\"more-menu__link\" onClick={handlePublishAndUnpublish}>\n Publish\n </Button>\n )}\n {isEnablePublishButton && (\n <Button className=\"more-menu__link\" onClick={handlePublishAndUnpublish}>\n Unpublish\n </Button>\n )}\n {showPreviewButton && (\n <HeaderPreviewButton itemId={entityData.id} itemEntity={entityIdentifier} />\n )}\n <Button className=\"more-menu__link\" onClick={toggleCopyModal}>\n Copy data from\n </Button>\n {onViewUrl && (\n <Button className=\"more-menu__link\" onClick={onViewUrl}>\n View\n </Button>\n )}\n {showDeleteButton && (\n <Button className=\"more-menu__link\" onClick={toggleModal}>\n Delete\n </Button>\n )}\n </More.Content>\n </More>\n </PageHeader.Actions>\n </PageHeader>\n );\n};\n\nEntityHeader.propTypes = {\n entityData: PropTypes.object,\n entityIdentifier: PropTypes.string,\n entitySchema: PropTypes.object.isRequired,\n pageTitle: PropTypes.string.isRequired,\n pageName: PropTypes.string,\n onSubmit: PropTypes.func.isRequired,\n handlePublishAndUnpublish: PropTypes.func.isRequired,\n isSaveButtonAvailable: PropTypes.bool.isRequired,\n isEnablePublishButton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).isRequired,\n isEnablePreviewButton: PropTypes.bool.isRequired,\n toggleCopyModal: PropTypes.func.isRequired,\n toggleModal: PropTypes.func.isRequired,\n formData: PropTypes.object,\n onViewUrl: PropTypes.func.isRequired,\n saveButtonText: PropTypes.string,\n saveOnChange: PropTypes.bool.isRequired\n};\n\nEntityHeader.defaultProps = {\n entityData: {},\n entityIdentifier: '',\n formData: null,\n pageName: '',\n saveButtonText: 'save'\n};\n\nEntityHeader.displayName = 'EntityHeader';\n\nexport default EntityHeader;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EntityHeader.js","names":["React","PageHeader","Button","More","PropTypes","HeaderPreviewButton","SAVE_BUTTON_TEXTS","EntityHeader","saveButtonText","entityData","entitySchema","entityIdentifier","pageTitle","onSubmit","handlePublishAndUnpublish","isSaveButtonAvailable","isEnablePublishButton","isEnablePreviewButton","toggleCopyModal","toggleModal","formData","pageName","onViewUrl","viewUrlDisabledReason","onTitleChange","saveOnChange","SaveButtonModifiers","showPreviewButton","id","shouldDisableMoreMenu","saving","displayProperties","adminCrudActions","delete","deleteAction","active","showDeleteButton","Object","keys","values","length","createElement","title","titleActions","itemId","itemEntity","iconOnly","Actions","onClick","modifiers","disabled","Avatar","isMoreMenu","className","Content","propTypes","object","string","isRequired","func","bool","oneOfType","defaultProps","displayName"],"sources":["../../../../../src/components/EntityManager/Entity/EntityHeader/EntityHeader.js"],"sourcesContent":["import React from 'react';\nimport { PageHeader } from '@blaze-cms/admin';\nimport Button from '@blaze-react/button';\nimport More from '@blaze-react/more';\nimport PropTypes from 'prop-types';\nimport HeaderPreviewButton from './HeaderPreviewButton';\nimport { SAVE_BUTTON_TEXTS } from '../../../../constants';\n\nconst EntityHeader = ({\n saveButtonText,\n entityData,\n entitySchema,\n entityIdentifier,\n pageTitle,\n onSubmit,\n handlePublishAndUnpublish,\n isSaveButtonAvailable,\n isEnablePublishButton,\n isEnablePreviewButton,\n toggleCopyModal,\n toggleModal,\n formData,\n pageName,\n onViewUrl,\n viewUrlDisabledReason,\n onTitleChange,\n saveOnChange\n}) => {\n const SaveButtonModifiers = isSaveButtonAvailable ? ['small'] : ['small', 'disabled'];\n const showPreviewButton = isEnablePreviewButton && entityIdentifier && entityData.id;\n const shouldDisableMoreMenu = saveButtonText === SAVE_BUTTON_TEXTS.saving;\n\n const {\n displayProperties: { adminCrudActions: { delete: deleteAction = { active: true } } = {} } = {}\n } = entitySchema || {};\n\n const showDeleteButton =\n deleteAction.active && formData && Object.keys(formData.values).length !== 0;\n\n return (\n <PageHeader\n title={pageTitle}\n pageName={pageName}\n onViewUrl={onViewUrl}\n viewUrlDisabledReason={viewUrlDisabledReason}\n onTitleChange={onTitleChange}\n titleActions={\n showPreviewButton ? (\n <HeaderPreviewButton itemId={entityData.id} itemEntity={entityIdentifier} iconOnly />\n ) : null\n }>\n <PageHeader.Actions>\n {!saveOnChange && (\n <Button onClick={onSubmit} modifiers={SaveButtonModifiers} data-testid=\"button-save\">\n {saveButtonText}\n </Button>\n )}\n <More disabled={shouldDisableMoreMenu}>\n <More.Avatar data-testid={`entity-header-${pageName}`} isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu>\n {isEnablePublishButton && (\n <Button className=\"more-menu__link\" onClick={handlePublishAndUnpublish}>\n Publish\n </Button>\n )}\n {isEnablePublishButton && (\n <Button className=\"more-menu__link\" onClick={handlePublishAndUnpublish}>\n Unpublish\n </Button>\n )}\n {showPreviewButton && (\n <HeaderPreviewButton itemId={entityData.id} itemEntity={entityIdentifier} />\n )}\n <Button className=\"more-menu__link\" onClick={toggleCopyModal}>\n Copy data from\n </Button>\n {onViewUrl && (\n <Button className=\"more-menu__link\" onClick={onViewUrl}>\n View\n </Button>\n )}\n {showDeleteButton && (\n <Button className=\"more-menu__link\" onClick={toggleModal}>\n Delete\n </Button>\n )}\n </More.Content>\n </More>\n </PageHeader.Actions>\n </PageHeader>\n );\n};\n\nEntityHeader.propTypes = {\n entityData: PropTypes.object,\n entityIdentifier: PropTypes.string,\n entitySchema: PropTypes.object.isRequired,\n pageTitle: PropTypes.string.isRequired,\n pageName: PropTypes.string,\n onSubmit: PropTypes.func.isRequired,\n handlePublishAndUnpublish: PropTypes.func.isRequired,\n isSaveButtonAvailable: PropTypes.bool.isRequired,\n isEnablePublishButton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).isRequired,\n isEnablePreviewButton: PropTypes.bool.isRequired,\n toggleCopyModal: PropTypes.func.isRequired,\n toggleModal: PropTypes.func.isRequired,\n formData: PropTypes.object,\n onViewUrl: PropTypes.func.isRequired,\n viewUrlDisabledReason: PropTypes.string,\n onTitleChange: PropTypes.func,\n saveButtonText: PropTypes.string,\n saveOnChange: PropTypes.bool.isRequired\n};\n\nEntityHeader.defaultProps = {\n entityData: {},\n entityIdentifier: '',\n formData: null,\n pageName: '',\n viewUrlDisabledReason: null,\n onTitleChange: null,\n saveButtonText: 'save'\n};\n\nEntityHeader.displayName = 'EntityHeader';\n\nexport default EntityHeader;\n"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import Button from '@blaze-react/button';
4
+ import { PageHeader } from '@blaze-cms/admin';
4
5
  import { useMutation } from '@apollo/client';
5
6
  import { getMutation } from '@blaze-cms/admin-ui-utils';
6
7
  import { DEBUG_PARAM } from '../../../../../constants';
7
8
  const HeaderPreviewButton = ({
8
9
  itemId,
9
- itemEntity
10
+ itemEntity,
11
+ iconOnly
10
12
  }) => {
11
13
  const [createPreviewToken] = useMutation(getMutation('PREVIEW_TOKEN_MUTATION'));
12
14
  if (process.env.BLAZE_DISABLE_PREVIEW) return null;
@@ -34,6 +36,14 @@ const HeaderPreviewButton = ({
34
36
  // eslint-disable-next-line no-empty
35
37
  } catch (err) {}
36
38
  };
39
+ if (iconOnly) {
40
+ return /*#__PURE__*/React.createElement(PageHeader.IconButton, {
41
+ icon: "visibility",
42
+ label: "Preview",
43
+ onClick: onViewPreview,
44
+ "data-testid": "page-header-preview"
45
+ });
46
+ }
37
47
  return /*#__PURE__*/React.createElement(Button, {
38
48
  className: "more-menu__link",
39
49
  onClick: onViewPreview
@@ -41,7 +51,11 @@ const HeaderPreviewButton = ({
41
51
  };
42
52
  HeaderPreviewButton.propTypes = {
43
53
  itemId: PropTypes.string.isRequired,
44
- itemEntity: PropTypes.string.isRequired
54
+ itemEntity: PropTypes.string.isRequired,
55
+ iconOnly: PropTypes.bool
56
+ };
57
+ HeaderPreviewButton.defaultProps = {
58
+ iconOnly: false
45
59
  };
46
60
  export default HeaderPreviewButton;
47
61
  //# sourceMappingURL=HeaderPreviewButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderPreviewButton.js","names":["React","PropTypes","Button","useMutation","getMutation","DEBUG_PARAM","HeaderPreviewButton","itemId","itemEntity","createPreviewToken","process","env","BLAZE_DISABLE_PREVIEW","onViewPreview","data","result","url","variables","delimiter","includes","debugParam","BLAZE_DISABLE_URL_DEBUG_PARAM","window","open","err","createElement","className","onClick","propTypes","string","isRequired"],"sources":["../../../../../../src/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@blaze-react/button';\nimport { useMutation } from '@apollo/client';\nimport { getMutation } from '@blaze-cms/admin-ui-utils';\nimport { DEBUG_PARAM } from '../../../../../constants';\n\nconst HeaderPreviewButton = ({ itemId, itemEntity }) => {\n const [createPreviewToken] = useMutation(getMutation('PREVIEW_TOKEN_MUTATION'));\n if (process.env.BLAZE_DISABLE_PREVIEW) return null;\n\n const onViewPreview = async () => {\n try {\n const {\n data: {\n createPreviewToken: {\n result: { url }\n }\n } = {}\n } = await createPreviewToken({\n variables: {\n itemId,\n itemEntity\n }\n });\n\n if (url) {\n const delimiter = url.includes('?') ? '&' : '?';\n const debugParam = process.env.BLAZE_DISABLE_URL_DEBUG_PARAM\n ? ''\n : `${delimiter}${DEBUG_PARAM}`;\n window.open(`${url}${debugParam}`, '_blank');\n }\n // eslint-disable-next-line no-empty\n } catch (err) {}\n };\n\n return (\n <Button className=\"more-menu__link\" onClick={onViewPreview}>\n Preview\n </Button>\n );\n};\n\nHeaderPreviewButton.propTypes = {\n itemId: PropTypes.string.isRequired,\n itemEntity: PropTypes.string.isRequired\n};\n\nexport default HeaderPreviewButton;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AACxC,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,WAAW,QAAQ,2BAA2B;AACvD,SAASC,WAAW,QAAQ,0BAA0B;AAEtD,MAAMC,mBAAmB,GAAGA,CAAC;EAAEC,MAAM;EAAEC;AAAW,CAAC,KAAK;EACtD,MAAM,CAACC,kBAAkB,CAAC,GAAGN,WAAW,CAACC,WAAW,CAAC,wBAAwB,CAAC,CAAC;EAC/E,IAAIM,OAAO,CAACC,GAAG,CAACC,qBAAqB,EAAE,OAAO,IAAI;EAElD,MAAMC,aAAa,GAAG,MAAAA,CAAA,KAAY;IAChC,IAAI;MACF,MAAM;QACJC,IAAI,EAAE;UACJL,kBAAkB,EAAE;YAClBM,MAAM,EAAE;cAAEC;YAAI;UAChB;QACF,CAAC,GAAG,CAAC;MACP,CAAC,GAAG,MAAMP,kBAAkB,CAAC;QAC3BQ,SAAS,EAAE;UACTV,MAAM;UACNC;QACF;MACF,CAAC,CAAC;MAEF,IAAIQ,GAAG,EAAE;QACP,MAAME,SAAS,GAAGF,GAAG,CAACG,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;QAC/C,MAAMC,UAAU,GAAGV,OAAO,CAACC,GAAG,CAACU,6BAA6B,GACxD,EAAE,GACF,GAAGH,SAAS,GAAGb,WAAW,EAAE;QAChCiB,MAAM,CAACC,IAAI,CAAC,GAAGP,GAAG,GAAGI,UAAU,EAAE,EAAE,QAAQ,CAAC;MAC9C;MACA;IACF,CAAC,CAAC,OAAOI,GAAG,EAAE,CAAC;EACjB,CAAC;EAED,oBACExB,KAAA,CAAAyB,aAAA,CAACvB,MAAM;IAACwB,SAAS,EAAC,iBAAiB;IAACC,OAAO,EAAEd;EAAc,GAAC,SAEpD,CAAC;AAEb,CAAC;AAEDP,mBAAmB,CAACsB,SAAS,GAAG;EAC9BrB,MAAM,EAAEN,SAAS,CAAC4B,MAAM,CAACC,UAAU;EACnCtB,UAAU,EAAEP,SAAS,CAAC4B,MAAM,CAACC;AAC/B,CAAC;AAED,eAAexB,mBAAmB","ignoreList":[]}
1
+ {"version":3,"file":"HeaderPreviewButton.js","names":["React","PropTypes","Button","PageHeader","useMutation","getMutation","DEBUG_PARAM","HeaderPreviewButton","itemId","itemEntity","iconOnly","createPreviewToken","process","env","BLAZE_DISABLE_PREVIEW","onViewPreview","data","result","url","variables","delimiter","includes","debugParam","BLAZE_DISABLE_URL_DEBUG_PARAM","window","open","err","createElement","IconButton","icon","label","onClick","className","propTypes","string","isRequired","bool","defaultProps"],"sources":["../../../../../../src/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@blaze-react/button';\nimport { PageHeader } from '@blaze-cms/admin';\nimport { useMutation } from '@apollo/client';\nimport { getMutation } from '@blaze-cms/admin-ui-utils';\nimport { DEBUG_PARAM } from '../../../../../constants';\n\nconst HeaderPreviewButton = ({ itemId, itemEntity, iconOnly }) => {\n const [createPreviewToken] = useMutation(getMutation('PREVIEW_TOKEN_MUTATION'));\n if (process.env.BLAZE_DISABLE_PREVIEW) return null;\n\n const onViewPreview = async () => {\n try {\n const {\n data: {\n createPreviewToken: {\n result: { url }\n }\n } = {}\n } = await createPreviewToken({\n variables: {\n itemId,\n itemEntity\n }\n });\n\n if (url) {\n const delimiter = url.includes('?') ? '&' : '?';\n const debugParam = process.env.BLAZE_DISABLE_URL_DEBUG_PARAM\n ? ''\n : `${delimiter}${DEBUG_PARAM}`;\n window.open(`${url}${debugParam}`, '_blank');\n }\n // eslint-disable-next-line no-empty\n } catch (err) {}\n };\n\n if (iconOnly) {\n return (\n <PageHeader.IconButton\n icon=\"visibility\"\n label=\"Preview\"\n onClick={onViewPreview}\n data-testid=\"page-header-preview\"\n />\n );\n }\n\n return (\n <Button className=\"more-menu__link\" onClick={onViewPreview}>\n Preview\n </Button>\n );\n};\n\nHeaderPreviewButton.propTypes = {\n itemId: PropTypes.string.isRequired,\n itemEntity: PropTypes.string.isRequired,\n iconOnly: PropTypes.bool\n};\n\nHeaderPreviewButton.defaultProps = {\n iconOnly: false\n};\n\nexport default HeaderPreviewButton;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AACxC,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,WAAW,QAAQ,2BAA2B;AACvD,SAASC,WAAW,QAAQ,0BAA0B;AAEtD,MAAMC,mBAAmB,GAAGA,CAAC;EAAEC,MAAM;EAAEC,UAAU;EAAEC;AAAS,CAAC,KAAK;EAChE,MAAM,CAACC,kBAAkB,CAAC,GAAGP,WAAW,CAACC,WAAW,CAAC,wBAAwB,CAAC,CAAC;EAC/E,IAAIO,OAAO,CAACC,GAAG,CAACC,qBAAqB,EAAE,OAAO,IAAI;EAElD,MAAMC,aAAa,GAAG,MAAAA,CAAA,KAAY;IAChC,IAAI;MACF,MAAM;QACJC,IAAI,EAAE;UACJL,kBAAkB,EAAE;YAClBM,MAAM,EAAE;cAAEC;YAAI;UAChB;QACF,CAAC,GAAG,CAAC;MACP,CAAC,GAAG,MAAMP,kBAAkB,CAAC;QAC3BQ,SAAS,EAAE;UACTX,MAAM;UACNC;QACF;MACF,CAAC,CAAC;MAEF,IAAIS,GAAG,EAAE;QACP,MAAME,SAAS,GAAGF,GAAG,CAACG,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;QAC/C,MAAMC,UAAU,GAAGV,OAAO,CAACC,GAAG,CAACU,6BAA6B,GACxD,EAAE,GACF,GAAGH,SAAS,GAAGd,WAAW,EAAE;QAChCkB,MAAM,CAACC,IAAI,CAAC,GAAGP,GAAG,GAAGI,UAAU,EAAE,EAAE,QAAQ,CAAC;MAC9C;MACA;IACF,CAAC,CAAC,OAAOI,GAAG,EAAE,CAAC;EACjB,CAAC;EAED,IAAIhB,QAAQ,EAAE;IACZ,oBACEV,KAAA,CAAA2B,aAAA,CAACxB,UAAU,CAACyB,UAAU;MACpBC,IAAI,EAAC,YAAY;MACjBC,KAAK,EAAC,SAAS;MACfC,OAAO,EAAEhB,aAAc;MACvB,eAAY;IAAqB,CAClC,CAAC;EAEN;EAEA,oBACEf,KAAA,CAAA2B,aAAA,CAACzB,MAAM;IAAC8B,SAAS,EAAC,iBAAiB;IAACD,OAAO,EAAEhB;EAAc,GAAC,SAEpD,CAAC;AAEb,CAAC;AAEDR,mBAAmB,CAAC0B,SAAS,GAAG;EAC9BzB,MAAM,EAAEP,SAAS,CAACiC,MAAM,CAACC,UAAU;EACnC1B,UAAU,EAAER,SAAS,CAACiC,MAAM,CAACC,UAAU;EACvCzB,QAAQ,EAAET,SAAS,CAACmC;AACtB,CAAC;AAED7B,mBAAmB,CAAC8B,YAAY,GAAG;EACjC3B,QAAQ,EAAE;AACZ,CAAC;AAED,eAAeH,mBAAmB","ignoreList":[]}
@@ -1,9 +1,29 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- import { DEBUG_PARAM, ENTITY_PUBLISHED, SELECT_DEFAULT_VALUE } from '../../../constants';
4
+ import { DEBUG_PARAM, ENTITY_PUBLISHED, SELECT_DEFAULT_VALUE, TITLE_FIELD_ID } from '../../../constants';
5
+
6
+ // Whether this record has a front end url at all, publish state aside.
7
+ function hasViewableUrl(entity, schema) {
8
+ return !!(entity && entity.id && schema && schema.id && schema.properties.slug);
9
+ }
5
10
  function canViewPage(entity, schema, entityIsPublished) {
6
- return entity && entity.id && schema && schema.id && entityIsPublished === ENTITY_PUBLISHED && schema.properties.slug;
11
+ return hasViewableUrl(entity, schema) && entityIsPublished === ENTITY_PUBLISHED;
12
+ }
13
+
14
+ // The header title is only editable inline when it is the record's name field.
15
+ function canEditTitle(schema, formValues) {
16
+ const {
17
+ properties = {},
18
+ displayProperties = {}
19
+ } = schema || {};
20
+ const {
21
+ adminHeader
22
+ } = displayProperties || {};
23
+ const isTitleFromName = !adminHeader || adminHeader.length === 1 && adminHeader[0] === TITLE_FIELD_ID;
24
+ return !!(isTitleFromName && properties[TITLE_FIELD_ID] && Array.isArray(formValues) && formValues.some(({
25
+ id
26
+ }) => id === TITLE_FIELD_ID));
7
27
  }
8
28
  function validateSideBarRelations(updatedFormValues, requiredChildField) {
9
29
  if (!requiredChildField) return true;
@@ -65,5 +85,5 @@ function getUpdatedFormValues({
65
85
  function checkFulfilConditions(...args) {
66
86
  return args.every(param => param);
67
87
  }
68
- export { canViewPage, validateSideBarRelations, onViewUrlClick, getUpdatedFormValues, checkFulfilConditions };
88
+ export { canEditTitle, canViewPage, hasViewableUrl, validateSideBarRelations, onViewUrlClick, getUpdatedFormValues, checkFulfilConditions };
69
89
  //# sourceMappingURL=entity.js.map