@blaze-cms/plugin-data-ui 0.129.0-project-admin-customisations.1 → 0.130.0-admin-updates.0
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.
- package/CHANGELOG.md +23 -14
- package/README.md +0 -42
- package/lib/components/EntityDataListing/EntityDataListing.js +24 -3
- package/lib/components/EntityDataListing/EntityDataListing.js.map +1 -1
- package/lib/components/EntityManager/Entity/Entity.js +1 -10
- package/lib/components/EntityManager/Entity/Entity.js.map +1 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/index.js +2 -12
- package/lib/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
- package/lib/components/ListingTable/ListingTable.js +26 -5
- package/lib/components/ListingTable/ListingTable.js.map +1 -1
- package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js +12 -5
- package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
- package/lib/index.js +11 -3
- package/lib/index.js.map +1 -1
- package/lib/utils/add-content-menu-items.js +13 -64
- package/lib/utils/add-content-menu-items.js.map +1 -1
- package/lib-es/components/EntityDataListing/EntityDataListing.js +14 -3
- package/lib-es/components/EntityDataListing/EntityDataListing.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/Entity.js +1 -10
- package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js +2 -12
- package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
- package/lib-es/components/ListingTable/ListingTable.js +25 -4
- package/lib-es/components/ListingTable/ListingTable.js.map +1 -1
- package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js +13 -6
- package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
- package/lib-es/index.js +9 -1
- package/lib-es/index.js.map +1 -1
- package/lib-es/utils/add-content-menu-items.js +5 -49
- package/lib-es/utils/add-content-menu-items.js.map +1 -1
- package/package.json +9 -10
- package/src/components/EntityDataListing/EntityDataListing.js +12 -3
- package/src/components/EntityManager/Entity/Entity.js +0 -4
- package/src/components/EntityManager/Entity/SideBarRelations/index.js +16 -34
- package/src/components/ListingTable/ListingTable.js +18 -4
- package/src/components/ListingTable/ListingTableContent/ListingTableContent.js +16 -5
- package/src/index.js +8 -1
- package/src/utils/add-content-menu-items.js +3 -45
- package/lib/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js +0 -39
- package/lib/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js.map +0 -1
- package/lib/components/EntityManager/Entity/EntitiyNavLinks/index.js +0 -12
- package/lib/components/EntityManager/Entity/EntitiyNavLinks/index.js.map +0 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js +0 -44
- package/lib/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js.map +0 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +0 -32
- package/lib/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map +0 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +0 -45
- package/lib/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js.map +0 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +0 -38
- package/lib/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +0 -1
- package/lib/components/InfoBoxes/InfoBoxes.js +0 -36
- package/lib/components/InfoBoxes/InfoBoxes.js.map +0 -1
- package/lib/components/InfoBoxes/container/InfoBoxContainer.js +0 -44
- package/lib/components/InfoBoxes/container/InfoBoxContainer.js.map +0 -1
- package/lib/components/InfoBoxes/helpers/build-dynamic-query.js +0 -25
- package/lib/components/InfoBoxes/helpers/build-dynamic-query.js.map +0 -1
- package/lib/components/InfoBoxes/hooks/useData.js +0 -42
- package/lib/components/InfoBoxes/hooks/useData.js.map +0 -1
- package/lib/components/InfoBoxes/hooks/useInfoBox.js +0 -26
- package/lib/components/InfoBoxes/hooks/useInfoBox.js.map +0 -1
- package/lib/components/InfoBoxes/index.js +0 -12
- package/lib/components/InfoBoxes/index.js.map +0 -1
- package/lib/components/InfoBoxes/presentational/InfoBox.js +0 -46
- package/lib/components/InfoBoxes/presentational/InfoBox.js.map +0 -1
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js +0 -30
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js.map +0 -1
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/index.js +0 -3
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/index.js.map +0 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js +0 -30
- package/lib-es/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js.map +0 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +0 -26
- package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map +0 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +0 -39
- package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js.map +0 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +0 -24
- package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +0 -1
- package/lib-es/components/InfoBoxes/InfoBoxes.js +0 -28
- package/lib-es/components/InfoBoxes/InfoBoxes.js.map +0 -1
- package/lib-es/components/InfoBoxes/container/InfoBoxContainer.js +0 -30
- package/lib-es/components/InfoBoxes/container/InfoBoxContainer.js.map +0 -1
- package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js +0 -25
- package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js.map +0 -1
- package/lib-es/components/InfoBoxes/hooks/useData.js +0 -37
- package/lib-es/components/InfoBoxes/hooks/useData.js.map +0 -1
- package/lib-es/components/InfoBoxes/hooks/useInfoBox.js +0 -19
- package/lib-es/components/InfoBoxes/hooks/useInfoBox.js.map +0 -1
- package/lib-es/components/InfoBoxes/index.js +0 -3
- package/lib-es/components/InfoBoxes/index.js.map +0 -1
- package/lib-es/components/InfoBoxes/presentational/InfoBox.js +0 -31
- package/lib-es/components/InfoBoxes/presentational/InfoBox.js.map +0 -1
- package/src/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js +0 -26
- package/src/components/EntityManager/Entity/EntitiyNavLinks/index.js +0 -3
- package/src/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js +0 -22
- package/src/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +0 -33
- package/src/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +0 -28
- package/src/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +0 -33
- package/src/components/InfoBoxes/InfoBoxes.js +0 -24
- package/src/components/InfoBoxes/container/InfoBoxContainer.js +0 -22
- package/src/components/InfoBoxes/helpers/build-dynamic-query.js +0 -25
- package/src/components/InfoBoxes/hooks/useData.js +0 -20
- package/src/components/InfoBoxes/hooks/useInfoBox.js +0 -13
- package/src/components/InfoBoxes/index.js +0 -3
- package/src/components/InfoBoxes/presentational/InfoBox.js +0 -34
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.js","names":["React","useEffect","useState","useRef","withRouter","Prompt","useApolloClient","PropTypes","RenderHook","getQuery","GET_CURRENT_TAB_ID","FormBuilder","parseFormValues","DeleteAction","CopyDataFromAction","useToasts","cloneDeep","getPageName","isFormEmpty","availableActions","SideBarRelations","Tabs","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","Entity","formData","entity","schema","previousQuery","action","history","updateFormData","onViewUrl","refetchRecord","_schema$interfaces","_schema$interfaces2","setCurrentTabId","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","isCreatePage","location","pathname","includes","isNewEntity","setIsNewEntity","client","shouldUpdateState","id","clonedFormData","addToast","componentIsMounted","current","displayProperties","actions","publish","identifier","interfaces","isPageBuilderTemplateSet","pageBuilderTemplateId","writeQuery","query","data","pageBuilderTemplateSet","currentEntity","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","isValidAndNewValueSet","isNotValidOrNotNewValueSet","onSubmit","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","hasNewFormValues","hasToDisplayPrompt","showSideBarRelations","showPageBuilderTabs","createElement","className","toggleCopyModal","toggleModal","when","message","onClose","deleteAction","itemName","copyAction","hookKey","enabled","onTabChange","tabId","currentTabId","getIsFormValid","onChange","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, GET_CURRENT_TAB_ID } 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 isFormEmpty from '../utils/is-form-empty';\nimport availableActions from './actions-handlers';\nimport SideBarRelations from './SideBarRelations';\nimport Tabs from '../../Tabs';\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';\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';\n\nconst Entity = ({\n formData,\n entity,\n schema,\n previousQuery,\n action,\n history,\n updateFormData,\n onViewUrl,\n refetchRecord\n}) => {\n const [, setCurrentTabId] = useState(null);\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\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 useEffect(\n () => () => {\n componentIsMounted.current = false;\n },\n []\n ); // Using an empty dependency array ensures this only runs on unmount\n\n useEffect(\n () => {\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 }\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\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 isValidAndNewValueSet = isValid && isNewValueSet;\n const isNotValidOrNotNewValueSet = !isValid || !isNewValueSet;\n if (componentIsMounted.current) {\n setIsFormValid(isValid);\n }\n if (isValidAndNewValueSet && 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\n if (!isSaveButtonAvailable) return null;\n const parsedFormValues = parseFormValues(formValues);\n\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(formData, entity, schema, entityIsPublished)\n ? () => onViewUrlClick(getFullUrl)\n : onViewUrl;\n\n const pageName = formData && formData.values && formData.values.name;\n\n const hasNewFormValues = checkFulfilConditions(isNewEntity, !isFormEmpty(formValues));\n const hasToDisplayPrompt = isSaveButtonAvailable || hasNewFormValues;\n\n const showSideBarRelations = checkFulfilConditions(schema, formData);\n const showPageBuilderTabs =\n schema?.interfaces?.includes('page-builder/page-builder-template') ||\n schema?.interfaces?.includes('page-builder/page-builder');\n\n return (\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 />\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 className=\"page__content--fixed\">\n <div className=\"page__content\">\n <div className=\"content\">\n <RenderHook hookKey={`entity:${action}:main:top`} entity={entity} schema={schema} />\n <InfoBoxes id={entity.id} schema={schema} />\n <Tabs\n enabled={showPageBuilderTabs}\n onTabChange={tabId => {\n client.writeQuery({\n query: GET_CURRENT_TAB_ID,\n data: { currentTabId: tabId }\n });\n setCurrentTabId(tabId);\n }}>\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 />\n </Tabs>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"column column--one-third page-sidebar\">\n {showSideBarRelations && (\n <SideBarRelations\n entity={entity}\n formData={formData.values}\n schema={schema}\n onChange={onChangeSideBarRelations}\n />\n )}\n </div>\n </div>\n </div>\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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"}
|
|
1
|
+
{"version":3,"file":"Entity.js","names":["React","useEffect","useState","useRef","withRouter","Prompt","useApolloClient","PropTypes","getQuery","GET_CURRENT_TAB_ID","FormBuilder","parseFormValues","DeleteAction","CopyDataFromAction","useToasts","cloneDeep","getPageName","isFormEmpty","availableActions","SideBarRelations","Tabs","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","Entity","formData","entity","schema","previousQuery","action","history","updateFormData","onViewUrl","refetchRecord","_schema$interfaces","_schema$interfaces2","setCurrentTabId","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","isCreatePage","location","pathname","includes","isNewEntity","setIsNewEntity","client","shouldUpdateState","id","clonedFormData","addToast","componentIsMounted","current","displayProperties","actions","publish","identifier","interfaces","isPageBuilderTemplateSet","pageBuilderTemplateId","writeQuery","query","data","pageBuilderTemplateSet","currentEntity","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","isValidAndNewValueSet","isNotValidOrNotNewValueSet","onSubmit","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","hasNewFormValues","hasToDisplayPrompt","showSideBarRelations","showPageBuilderTabs","createElement","className","toggleCopyModal","toggleModal","when","message","onClose","deleteAction","itemName","copyAction","enabled","onTabChange","tabId","currentTabId","getIsFormValid","onChange","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 { getQuery, GET_CURRENT_TAB_ID } 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 isFormEmpty from '../utils/is-form-empty';\nimport availableActions from './actions-handlers';\nimport SideBarRelations from './SideBarRelations';\nimport Tabs from '../../Tabs';\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';\nimport {\n validateSideBarRelations,\n canViewPage,\n onViewUrlClick,\n getUpdatedFormValues,\n checkFulfilConditions\n} from '../utils/entity';\nimport useToggle from '../../../utils/hooks/useToggle';\n\nconst Entity = ({\n formData,\n entity,\n schema,\n previousQuery,\n action,\n history,\n updateFormData,\n onViewUrl,\n refetchRecord\n}) => {\n const [, setCurrentTabId] = useState(null);\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\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 useEffect(\n () => () => {\n componentIsMounted.current = false;\n },\n []\n ); // Using an empty dependency array ensures this only runs on unmount\n\n useEffect(\n () => {\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 }\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\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 isValidAndNewValueSet = isValid && isNewValueSet;\n const isNotValidOrNotNewValueSet = !isValid || !isNewValueSet;\n if (componentIsMounted.current) {\n setIsFormValid(isValid);\n }\n if (isValidAndNewValueSet && 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\n if (!isSaveButtonAvailable) return null;\n const parsedFormValues = parseFormValues(formValues);\n\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(formData, entity, schema, entityIsPublished)\n ? () => onViewUrlClick(getFullUrl)\n : onViewUrl;\n\n const pageName = formData && formData.values && formData.values.name;\n\n const hasNewFormValues = checkFulfilConditions(isNewEntity, !isFormEmpty(formValues));\n const hasToDisplayPrompt = isSaveButtonAvailable || hasNewFormValues;\n\n const showSideBarRelations = checkFulfilConditions(schema, formData);\n const showPageBuilderTabs =\n schema?.interfaces?.includes('page-builder/page-builder-template') ||\n schema?.interfaces?.includes('page-builder/page-builder');\n\n return (\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 />\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 className=\"page__content--fixed\">\n <div className=\"page__content\">\n <div className=\"content\">\n <Tabs\n enabled={showPageBuilderTabs}\n onTabChange={tabId => {\n client.writeQuery({\n query: GET_CURRENT_TAB_ID,\n data: { currentTabId: tabId }\n });\n setCurrentTabId(tabId);\n }}>\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 />\n </Tabs>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"column column--one-third page-sidebar\">\n {showSideBarRelations && (\n <SideBarRelations\n entity={entity}\n formData={formData.values}\n schema={schema}\n onChange={onChangeSideBarRelations}\n />\n )}\n </div>\n </div>\n </div>\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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"}
|
|
@@ -7,8 +7,6 @@ import { formFieldTypes } from '@blaze-cms/react-form-builder';
|
|
|
7
7
|
import classnames from 'classnames';
|
|
8
8
|
import { VersionsList } from '@blaze-cms/versioning-ui';
|
|
9
9
|
import { PUBLISHED, UNPUBLISHED } from '../../../../constants';
|
|
10
|
-
import CustomSidebarInfoContainer from './container/CustomSidebarInfoContainer';
|
|
11
|
-
import EntityNavLinks from '../EntitiyNavLinks';
|
|
12
10
|
const SideBarRelations = ({
|
|
13
11
|
schema,
|
|
14
12
|
onChange,
|
|
@@ -74,24 +72,16 @@ const SideBarRelations = ({
|
|
|
74
72
|
"data-testid": "sideBarRelations-main-div"
|
|
75
73
|
}, /*#__PURE__*/React.createElement("div", {
|
|
76
74
|
className: "sidebar__content"
|
|
77
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
78
|
-
className: "sidebar__status"
|
|
79
75
|
}, formattedCreated && /*#__PURE__*/React.createElement("div", {
|
|
80
|
-
className: "
|
|
76
|
+
className: "sidebar__status"
|
|
81
77
|
}, /*#__PURE__*/React.createElement("div", {
|
|
82
78
|
className: "sidebar__status__wrapper"
|
|
83
79
|
}, /*#__PURE__*/React.createElement("b", null, "Status"), /*#__PURE__*/React.createElement("span", {
|
|
84
80
|
className: statusClassName
|
|
85
|
-
}, formattedStatus)), formattedStatus === PUBLISHED && /*#__PURE__*/React.createElement("p", null, formattedStatus, " on: ", /*#__PURE__*/React.createElement("span", null, " ", formattedPublished))
|
|
86
|
-
id: itemId,
|
|
87
|
-
schema: schema,
|
|
88
|
-
displayProperties: schema.displayProperties
|
|
89
|
-
})), /*#__PURE__*/React.createElement(VersionsList, {
|
|
81
|
+
}, formattedStatus)), formattedStatus === PUBLISHED && /*#__PURE__*/React.createElement("p", null, formattedStatus, " on: ", /*#__PURE__*/React.createElement("span", null, " ", formattedPublished)), /*#__PURE__*/React.createElement("p", null, "Created: ", /*#__PURE__*/React.createElement("span", null, formattedCreated)), /*#__PURE__*/React.createElement("p", null, "Updated: ", /*#__PURE__*/React.createElement("span", null, formattedUpdated))), /*#__PURE__*/React.createElement(VersionsList, {
|
|
90
82
|
itemEntity: itemEntity,
|
|
91
83
|
itemId: itemId,
|
|
92
84
|
interfaces: interfaces
|
|
93
|
-
}), /*#__PURE__*/React.createElement(EntityNavLinks, {
|
|
94
|
-
schema: schema
|
|
95
85
|
}), relationsComponents && relationsComponents.map(({
|
|
96
86
|
id,
|
|
97
87
|
staticData,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useState","useEffect","PropTypes","uuidv1","useApolloClient","getQuery","formFieldTypes","classnames","VersionsList","PUBLISHED","UNPUBLISHED","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useState","useEffect","PropTypes","uuidv1","useApolloClient","getQuery","formFieldTypes","classnames","VersionsList","PUBLISHED","UNPUBLISHED","SideBarRelations","schema","onChange","formData","entity","relation","RelationComponent","formattedStatus","formattedUpdated","formattedCreated","formattedPublished","status","client","relationsComponents","setRelationsComponents","fetchRelationSchema","entityIdentifier","data","getEntitySchemas","relationSchema","query","variables","identifier","allRelationComponents","Promise","all","relations","filter","showInForm","foreignKey","properties","map","id","staticData","itemId","itemEntity","interfaces","statusClassName","createElement","className","entitySchema","key","onSelect","propTypes","object","isRequired","func","defaultProps"],"sources":["../../../../../src/components/EntityManager/Entity/SideBarRelations/index.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport uuidv1 from 'uuid/v1';\nimport { useApolloClient } from '@apollo/client';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { formFieldTypes } from '@blaze-cms/react-form-builder';\nimport classnames from 'classnames';\nimport { VersionsList } from '@blaze-cms/versioning-ui';\nimport { PUBLISHED, UNPUBLISHED } from '../../../../constants';\n\nconst SideBarRelations = ({ schema, onChange, formData, entity }) => {\n const { relation: RelationComponent } = formFieldTypes;\n const {\n formattedStatus,\n formattedUpdated,\n formattedCreated,\n formattedPublished,\n status\n } = formData;\n const client = useApolloClient();\n const [relationsComponents, setRelationsComponents] = useState(null);\n useEffect(\n () => {\n (async () => {\n const fetchRelationSchema = async ({ entityIdentifier }) => {\n if (!entityIdentifier) return null;\n\n const {\n data: {\n getEntitySchemas: [relationSchema]\n }\n } = await client.query({\n query: getQuery('GET_ENTITY_SCHEMA'),\n variables: { identifier: entityIdentifier }\n });\n return relationSchema;\n };\n\n if (!relationsComponents && schema) {\n const allRelationComponents = await Promise.all(\n schema.relations\n .filter(({ showInForm, foreignKey }) => showInForm && schema.properties[foreignKey])\n .map(async relation => ({\n id: uuidv1(),\n staticData: relation,\n schema: await fetchRelationSchema(relation)\n }))\n );\n\n setRelationsComponents(allRelationComponents);\n }\n })();\n },\n [client, relationsComponents, schema, schema.relations]\n );\n const { id: itemId } = entity;\n const { identifier: itemEntity, interfaces } = schema;\n\n const statusClassName = classnames('sidebar__status__badge', {\n 'sidebar__status__badge--published': status === PUBLISHED,\n 'sidebar__status__badge--unpublished': status === UNPUBLISHED\n });\n\n return (\n <div className=\"sidebar\" data-testid=\"sideBarRelations-main-div\">\n <div className=\"sidebar__content\">\n {formattedCreated && (\n <div className=\"sidebar__status\">\n <div className=\"sidebar__status__wrapper\">\n <b>Status</b>\n <span className={statusClassName}>{formattedStatus}</span>\n </div>\n {formattedStatus === PUBLISHED && (\n <p>\n {formattedStatus} on: <span> {formattedPublished}</span>\n </p>\n )}\n\n <p>\n Created: <span>{formattedCreated}</span>\n </p>\n <p>\n Updated: <span>{formattedUpdated}</span>\n </p>\n </div>\n )}\n\n <VersionsList itemEntity={itemEntity} itemId={itemId} interfaces={interfaces} />\n {relationsComponents &&\n relationsComponents.map(({ id, staticData, schema: entitySchema }) => (\n <RelationComponent\n formData={formData}\n schema={entitySchema}\n key={id}\n staticData={staticData}\n onSelect={onChange}\n />\n ))}\n </div>\n </div>\n );\n};\n\nSideBarRelations.propTypes = {\n schema: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n formData: PropTypes.object.isRequired,\n entity: PropTypes.object\n};\n\nSideBarRelations.defaultProps = {\n entity: {}\n};\n\nexport default SideBarRelations;\n"],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import React, { useEffect, useState, Fragment } from 'react';
|
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import { withRouter, Link } from 'react-router-dom';
|
|
8
8
|
import More from '@blaze-react/more';
|
|
9
|
+
import { MainContext, useMainContext } from '@blaze-cms/admin-ui-utils';
|
|
9
10
|
import { PageHeader, DeleteAction } from '@blaze-cms/admin';
|
|
10
11
|
import { useToasts } from '@blaze-react/toaster';
|
|
11
12
|
import ListingTableContent from './ListingTableContent';
|
|
@@ -16,7 +17,8 @@ import { getDefaultQueryParams } from '../../utils/get-default-query-params';
|
|
|
16
17
|
const OVER_SCAN_BUFFER = 10;
|
|
17
18
|
const ListingTable = ({
|
|
18
19
|
match,
|
|
19
|
-
entitySchema
|
|
20
|
+
entitySchema,
|
|
21
|
+
selectedMenuItem
|
|
20
22
|
}) => {
|
|
21
23
|
const [tableData, setTableData] = useState({});
|
|
22
24
|
const [modalStatus, setModalStatus] = useState(false);
|
|
@@ -30,6 +32,10 @@ const ListingTable = ({
|
|
|
30
32
|
schema: entitySchema
|
|
31
33
|
});
|
|
32
34
|
const [queryParams, setQueryParams] = useState(queryParamsDefault);
|
|
35
|
+
const {
|
|
36
|
+
menuItems,
|
|
37
|
+
setMenuItems
|
|
38
|
+
} = useMainContext(MainContext);
|
|
33
39
|
const client = useApolloClient();
|
|
34
40
|
const {
|
|
35
41
|
addToast
|
|
@@ -59,7 +65,20 @@ const ListingTable = ({
|
|
|
59
65
|
}, [client, entitySchema, match.url, previousSchema.id, queryParams] // eslint-disable-line react-hooks/exhaustive-deps
|
|
60
66
|
);
|
|
61
67
|
|
|
62
|
-
const onCloseCardPrompt = () =>
|
|
68
|
+
const onCloseCardPrompt = () => {
|
|
69
|
+
const updatedSelectedMenuItem = _objectSpread(_objectSpread({}, selectedMenuItem), {}, {
|
|
70
|
+
isDisplayedPrompt: false
|
|
71
|
+
});
|
|
72
|
+
const [{
|
|
73
|
+
header,
|
|
74
|
+
items
|
|
75
|
+
}] = menuItems;
|
|
76
|
+
const updatedItems = items.map(item => item.name === selectedMenuItem.name ? updatedSelectedMenuItem : item);
|
|
77
|
+
setMenuItems([{
|
|
78
|
+
header,
|
|
79
|
+
items: updatedItems
|
|
80
|
+
}]);
|
|
81
|
+
};
|
|
63
82
|
const toggleModal = item => {
|
|
64
83
|
setModalStatus(!!item);
|
|
65
84
|
setItemToDelete(item || {});
|
|
@@ -154,7 +173,7 @@ const ListingTable = ({
|
|
|
154
173
|
}), /*#__PURE__*/React.createElement(PageHeader, {
|
|
155
174
|
title: entitySchema.displayName,
|
|
156
175
|
subtitle: ""
|
|
157
|
-
}, !!tableData.rows.length && /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Link, {
|
|
176
|
+
}, (!selectedMenuItem.isDisplayedPrompt || !!tableData.rows.length) && /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Link, {
|
|
158
177
|
"data-testid": "addEntity",
|
|
159
178
|
className: "button button--small",
|
|
160
179
|
to: `${match.url}/create`
|
|
@@ -170,12 +189,14 @@ const ListingTable = ({
|
|
|
170
189
|
onRenderItems: handleRenderedItems,
|
|
171
190
|
tableData: tableData,
|
|
172
191
|
onCloseCardPrompt: onCloseCardPrompt,
|
|
192
|
+
selectedMenuItem: selectedMenuItem,
|
|
173
193
|
scrollToIndex: scrollToIndex
|
|
174
194
|
}));
|
|
175
195
|
};
|
|
176
196
|
ListingTable.propTypes = {
|
|
177
197
|
entitySchema: PropTypes.object.isRequired,
|
|
178
|
-
match: PropTypes.object.isRequired
|
|
198
|
+
match: PropTypes.object.isRequired,
|
|
199
|
+
selectedMenuItem: PropTypes.object.isRequired
|
|
179
200
|
};
|
|
180
201
|
export default withRouter(ListingTable);
|
|
181
202
|
//# sourceMappingURL=ListingTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListingTable.js","names":["useApolloClient","React","useEffect","useState","Fragment","PropTypes","withRouter","Link","More","PageHeader","DeleteAction","useToasts","ListingTableContent","availableActions","fetchData","populateRows","formatRows","getDefaultQueryParams","OVER_SCAN_BUFFER","ListingTable","match","entitySchema","tableData","setTableData","modalStatus","setModalStatus","itemToDelete","setItemToDelete","previousSchema","setPreviousSchema","id","scrollToIndex","setScrollToIndex","verifiedRanges","setVerifiedRanges","queryParamsDefault","schema","queryParams","setQueryParams","client","addToast","data","querySettings","populatedTable","toggleModal","url","rows","onCloseCardPrompt","item","deleteAction","delete","submit","parsedFormValues","updatedTableData","_objectSpread","filter","handleSort","event","property","direction","Object","entries","sortQueryParams","sort","columns","firstColumn","appliedSort","handleRenderedItems","params","startIndex","rowsLength","length","loadIndex","Math","floor","includes","updatedQueryParams","offset","updatedRows","createElement","className","onClose","itemName","name","title","displayName","subtitle","to","Actions","Avatar","isMoreMenu","Content","overScanBuffer","onSort","onRenderItems","propTypes","object","isRequired"],"sources":["../../../src/components/ListingTable/ListingTable.js"],"sourcesContent":["import { useApolloClient } from '@apollo/client';\nimport React, { useEffect, useState, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\nimport More from '@blaze-react/more';\nimport { PageHeader, DeleteAction } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport ListingTableContent from './ListingTableContent';\nimport availableActions from '../EntityManager/Entity/actions-handlers';\nimport { fetchData } from './service';\nimport { populateRows, formatRows } from './mappers/populate-rows';\nimport { getDefaultQueryParams } from '../../utils/get-default-query-params';\n\nconst OVER_SCAN_BUFFER = 10;\n\nconst ListingTable = ({ match, entitySchema }) => {\n const [tableData, setTableData] = useState({});\n const [modalStatus, setModalStatus] = useState(false);\n const [itemToDelete, setItemToDelete] = useState({});\n const [previousSchema, setPreviousSchema] = useState({ id: null });\n const [scrollToIndex, setScrollToIndex] = useState(0);\n const [verifiedRanges, setVerifiedRanges] = useState([]);\n const queryParamsDefault = getDefaultQueryParams({ schema: entitySchema });\n const [queryParams, setQueryParams] = useState(queryParamsDefault);\n const client = useApolloClient();\n const { addToast } = useToasts();\n\n useEffect(\n () => {\n (async () => {\n if (\n entitySchema.id !== previousSchema.id ||\n (previousSchema.id === null && entitySchema.id)\n ) {\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: queryParamsDefault\n }\n });\n const populatedTable = populateRows({\n toggleModal,\n url: match.url,\n entitySchema,\n rows: data\n });\n setTableData(populatedTable);\n setPreviousSchema({ id: entitySchema.id });\n }\n })();\n },\n [client, entitySchema, match.url, previousSchema.id, queryParams] // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const onCloseCardPrompt = () => null;\n\n const toggleModal = item => {\n setModalStatus(!!item);\n setItemToDelete(item || {});\n };\n\n const deleteAction = async () => {\n await availableActions.delete.submit(\n {\n entitySchema,\n parsedFormValues: { id: itemToDelete.id },\n client\n },\n addToast\n );\n\n toggleModal();\n\n const updatedTableData = {\n ...tableData,\n rows: tableData.rows.filter(({ id }) => id !== itemToDelete.id)\n };\n\n setTableData(updatedTableData);\n };\n\n const handleSort = async event => {\n const [[property, direction]] = Object.entries(event);\n const sortQueryParams = {\n ...queryParamsDefault,\n sort: [{ property, direction }]\n };\n setScrollToIndex(0);\n setVerifiedRanges([]);\n setQueryParams(sortQueryParams);\n\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: sortQueryParams\n }\n });\n const { columns } = tableData;\n const [firstColumn] = columns;\n\n setTableData({\n ...tableData,\n appliedSort: { [property]: direction },\n rows: formatRows({ rows: data, url: match.url, toggleModal, firstColumn })\n });\n };\n\n const handleRenderedItems = async params => {\n const { startIndex } = params;\n const rowsLength = tableData.rows.length;\n const loadIndex = Math.floor(rowsLength / 3) - OVER_SCAN_BUFFER;\n if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {\n const updatedQueryParams = {\n ...queryParams,\n offset: rowsLength\n };\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: updatedQueryParams\n }\n });\n const updatedRows = [\n ...tableData.rows,\n ...formatRows({ rows: data, url: match.url, toggleModal })\n ];\n\n setVerifiedRanges([...verifiedRanges, loadIndex]);\n setQueryParams(updatedQueryParams);\n setTableData({\n ...tableData,\n rows: updatedRows\n });\n setScrollToIndex(startIndex + OVER_SCAN_BUFFER);\n }\n };\n\n if (!tableData || !tableData.rows) return 'loading';\n\n return (\n <div className=\"page\">\n {modalStatus && (\n <DeleteAction\n onClose={toggleModal}\n deleteAction={deleteAction}\n itemName={itemToDelete.name}\n />\n )}\n <PageHeader title={entitySchema.displayName} subtitle=\"\">\n {!!tableData.rows.length && (\n <Fragment>\n <Link\n data-testid=\"addEntity\"\n className=\"button button--small\"\n to={`${match.url}/create`}>\n Add\n </Link>\n <PageHeader.Actions>\n <More>\n <More.Avatar isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu />\n </More>\n </PageHeader.Actions>\n </Fragment>\n )}\n </PageHeader>\n <ListingTableContent\n overScanBuffer={OVER_SCAN_BUFFER}\n onSort={handleSort}\n onRenderItems={handleRenderedItems}\n tableData={tableData}\n onCloseCardPrompt={onCloseCardPrompt}\n scrollToIndex={scrollToIndex}\n />\n </div>\n );\n};\nListingTable.propTypes = {\n entitySchema: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired\n};\n\nexport default withRouter(ListingTable);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListingTable.js","names":["useApolloClient","React","useEffect","useState","Fragment","PropTypes","withRouter","Link","More","MainContext","useMainContext","PageHeader","DeleteAction","useToasts","ListingTableContent","availableActions","fetchData","populateRows","formatRows","getDefaultQueryParams","OVER_SCAN_BUFFER","ListingTable","match","entitySchema","selectedMenuItem","tableData","setTableData","modalStatus","setModalStatus","itemToDelete","setItemToDelete","previousSchema","setPreviousSchema","id","scrollToIndex","setScrollToIndex","verifiedRanges","setVerifiedRanges","queryParamsDefault","schema","queryParams","setQueryParams","menuItems","setMenuItems","client","addToast","data","querySettings","populatedTable","toggleModal","url","rows","onCloseCardPrompt","updatedSelectedMenuItem","_objectSpread","isDisplayedPrompt","header","items","updatedItems","map","item","name","deleteAction","delete","submit","parsedFormValues","updatedTableData","filter","handleSort","event","property","direction","Object","entries","sortQueryParams","sort","columns","firstColumn","appliedSort","handleRenderedItems","params","startIndex","rowsLength","length","loadIndex","Math","floor","includes","updatedQueryParams","offset","updatedRows","createElement","className","onClose","itemName","title","displayName","subtitle","to","Actions","Avatar","isMoreMenu","Content","overScanBuffer","onSort","onRenderItems","propTypes","object","isRequired"],"sources":["../../../src/components/ListingTable/ListingTable.js"],"sourcesContent":["import { useApolloClient } from '@apollo/client';\nimport React, { useEffect, useState, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\nimport More from '@blaze-react/more';\nimport { MainContext, useMainContext } from '@blaze-cms/admin-ui-utils';\nimport { PageHeader, DeleteAction } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport ListingTableContent from './ListingTableContent';\nimport availableActions from '../EntityManager/Entity/actions-handlers';\nimport { fetchData } from './service';\nimport { populateRows, formatRows } from './mappers/populate-rows';\nimport { getDefaultQueryParams } from '../../utils/get-default-query-params';\n\nconst OVER_SCAN_BUFFER = 10;\n\nconst ListingTable = ({ match, entitySchema, selectedMenuItem }) => {\n const [tableData, setTableData] = useState({});\n const [modalStatus, setModalStatus] = useState(false);\n const [itemToDelete, setItemToDelete] = useState({});\n const [previousSchema, setPreviousSchema] = useState({ id: null });\n const [scrollToIndex, setScrollToIndex] = useState(0);\n const [verifiedRanges, setVerifiedRanges] = useState([]);\n const queryParamsDefault = getDefaultQueryParams({ schema: entitySchema });\n const [queryParams, setQueryParams] = useState(queryParamsDefault);\n const { menuItems, setMenuItems } = useMainContext(MainContext);\n const client = useApolloClient();\n const { addToast } = useToasts();\n\n useEffect(\n () => {\n (async () => {\n if (\n entitySchema.id !== previousSchema.id ||\n (previousSchema.id === null && entitySchema.id)\n ) {\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: queryParamsDefault\n }\n });\n const populatedTable = populateRows({\n toggleModal,\n url: match.url,\n entitySchema,\n rows: data\n });\n setTableData(populatedTable);\n setPreviousSchema({ id: entitySchema.id });\n }\n })();\n },\n [client, entitySchema, match.url, previousSchema.id, queryParams] // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const onCloseCardPrompt = () => {\n const updatedSelectedMenuItem = {\n ...selectedMenuItem,\n isDisplayedPrompt: false\n };\n const [{ header, items }] = menuItems;\n const updatedItems = items.map(\n item => (item.name === selectedMenuItem.name ? updatedSelectedMenuItem : item)\n );\n setMenuItems([{ header, items: updatedItems }]);\n };\n\n const toggleModal = item => {\n setModalStatus(!!item);\n setItemToDelete(item || {});\n };\n\n const deleteAction = async () => {\n await availableActions.delete.submit(\n {\n entitySchema,\n parsedFormValues: { id: itemToDelete.id },\n client\n },\n addToast\n );\n\n toggleModal();\n\n const updatedTableData = {\n ...tableData,\n rows: tableData.rows.filter(({ id }) => id !== itemToDelete.id)\n };\n\n setTableData(updatedTableData);\n };\n\n const handleSort = async event => {\n const [[property, direction]] = Object.entries(event);\n const sortQueryParams = {\n ...queryParamsDefault,\n sort: [{ property, direction }]\n };\n setScrollToIndex(0);\n setVerifiedRanges([]);\n setQueryParams(sortQueryParams);\n\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: sortQueryParams\n }\n });\n const { columns } = tableData;\n const [firstColumn] = columns;\n\n setTableData({\n ...tableData,\n appliedSort: { [property]: direction },\n rows: formatRows({ rows: data, url: match.url, toggleModal, firstColumn })\n });\n };\n\n const handleRenderedItems = async params => {\n const { startIndex } = params;\n const rowsLength = tableData.rows.length;\n const loadIndex = Math.floor(rowsLength / 3) - OVER_SCAN_BUFFER;\n if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {\n const updatedQueryParams = {\n ...queryParams,\n offset: rowsLength\n };\n const data = await fetchData({\n client,\n querySettings: {\n entitySchema,\n queryParams: updatedQueryParams\n }\n });\n const updatedRows = [\n ...tableData.rows,\n ...formatRows({ rows: data, url: match.url, toggleModal })\n ];\n\n setVerifiedRanges([...verifiedRanges, loadIndex]);\n setQueryParams(updatedQueryParams);\n setTableData({\n ...tableData,\n rows: updatedRows\n });\n setScrollToIndex(startIndex + OVER_SCAN_BUFFER);\n }\n };\n\n if (!tableData || !tableData.rows) return 'loading';\n\n return (\n <div className=\"page\">\n {modalStatus && (\n <DeleteAction\n onClose={toggleModal}\n deleteAction={deleteAction}\n itemName={itemToDelete.name}\n />\n )}\n <PageHeader title={entitySchema.displayName} subtitle=\"\">\n {(!selectedMenuItem.isDisplayedPrompt || !!tableData.rows.length) && (\n <Fragment>\n <Link\n data-testid=\"addEntity\"\n className=\"button button--small\"\n to={`${match.url}/create`}>\n Add\n </Link>\n <PageHeader.Actions>\n <More>\n <More.Avatar isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu />\n </More>\n </PageHeader.Actions>\n </Fragment>\n )}\n </PageHeader>\n <ListingTableContent\n overScanBuffer={OVER_SCAN_BUFFER}\n onSort={handleSort}\n onRenderItems={handleRenderedItems}\n tableData={tableData}\n onCloseCardPrompt={onCloseCardPrompt}\n selectedMenuItem={selectedMenuItem}\n scrollToIndex={scrollToIndex}\n />\n </div>\n );\n};\nListingTable.propTypes = {\n entitySchema: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n selectedMenuItem: PropTypes.object.isRequired\n};\n\nexport default withRouter(ListingTable);\n"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Table from '@blaze-react/table';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import {
|
|
4
|
+
import { CardPrompt } from '@blaze-cms/admin';
|
|
5
|
+
import { Link, withRouter } from 'react-router-dom';
|
|
5
6
|
const ListingTableContent = ({
|
|
6
7
|
tableData,
|
|
7
8
|
handleSelect,
|
|
@@ -15,7 +16,7 @@ const ListingTableContent = ({
|
|
|
15
16
|
scrollToIndex
|
|
16
17
|
}) => {
|
|
17
18
|
const displayTable = tableData && tableData.rows && !!tableData.rows.length;
|
|
18
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, displayTable
|
|
19
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, displayTable ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
19
20
|
className: "page__content"
|
|
20
21
|
}, /*#__PURE__*/React.createElement(Table, {
|
|
21
22
|
scrollToIndex: scrollToIndex,
|
|
@@ -27,12 +28,19 @@ const ListingTableContent = ({
|
|
|
27
28
|
checkboxes: true,
|
|
28
29
|
onSelect: handleSelect,
|
|
29
30
|
"data-testid": "listing-table-content"
|
|
30
|
-
})))
|
|
31
|
+
}))) : selectedMenuItem.isDisplayedPrompt && /*#__PURE__*/React.createElement(CardPrompt, {
|
|
32
|
+
onClose: onCloseCardPrompt,
|
|
33
|
+
"data-testid": "card-prompt"
|
|
34
|
+
}, /*#__PURE__*/React.createElement(Link, {
|
|
35
|
+
className: "button button--rounded button--cta",
|
|
36
|
+
to: `${match.url}/create`,
|
|
37
|
+
"data-testid": "add-button"
|
|
38
|
+
}, "Add")));
|
|
31
39
|
};
|
|
32
40
|
ListingTableContent.propTypes = {
|
|
33
41
|
tableData: PropTypes.object.isRequired,
|
|
34
42
|
onCloseCardPrompt: PropTypes.func.isRequired,
|
|
35
|
-
selectedMenuItem: PropTypes.object,
|
|
43
|
+
selectedMenuItem: PropTypes.object.isRequired,
|
|
36
44
|
match: PropTypes.shape({
|
|
37
45
|
url: PropTypes.string
|
|
38
46
|
}).isRequired,
|
|
@@ -49,8 +57,7 @@ ListingTableContent.defaultProps = {
|
|
|
49
57
|
onClickRow: () => {},
|
|
50
58
|
overScanBuffer: 0,
|
|
51
59
|
scrollToIndex: 0,
|
|
52
|
-
onRenderItems: () => {}
|
|
53
|
-
selectedMenuItem: null
|
|
60
|
+
onRenderItems: () => {}
|
|
54
61
|
};
|
|
55
62
|
export default withRouter(ListingTableContent);
|
|
56
63
|
//# sourceMappingURL=ListingTableContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListingTableContent.js","names":["React","Table","PropTypes","withRouter","ListingTableContent","tableData","handleSelect","onCloseCardPrompt","selectedMenuItem","match","onSort","onClickRow","overScanBuffer","onRenderItems","scrollToIndex","displayTable","rows","length","createElement","Fragment","className","data","checkboxes","onSelect","propTypes","object","isRequired","func","shape","
|
|
1
|
+
{"version":3,"file":"ListingTableContent.js","names":["React","Table","PropTypes","CardPrompt","Link","withRouter","ListingTableContent","tableData","handleSelect","onCloseCardPrompt","selectedMenuItem","match","onSort","onClickRow","overScanBuffer","onRenderItems","scrollToIndex","displayTable","rows","length","createElement","Fragment","className","data","checkboxes","onSelect","isDisplayedPrompt","onClose","to","url","propTypes","object","isRequired","func","shape","string","number","defaultProps"],"sources":["../../../../src/components/ListingTable/ListingTableContent/ListingTableContent.js"],"sourcesContent":["import React from 'react';\nimport Table from '@blaze-react/table';\nimport PropTypes from 'prop-types';\nimport { CardPrompt } from '@blaze-cms/admin';\nimport { Link, withRouter } from 'react-router-dom';\n\nconst ListingTableContent = ({\n tableData,\n handleSelect,\n onCloseCardPrompt,\n selectedMenuItem,\n match,\n onSort,\n onClickRow,\n overScanBuffer,\n onRenderItems,\n scrollToIndex\n}) => {\n const displayTable = tableData && tableData.rows && !!tableData.rows.length;\n\n return (\n <>\n {displayTable ? (\n <>\n <div className=\"page__content\">\n <Table\n scrollToIndex={scrollToIndex}\n onSort={onSort}\n onClickRow={onClickRow}\n overScanBuffer={overScanBuffer}\n onRenderItems={onRenderItems}\n data={tableData}\n checkboxes\n onSelect={handleSelect}\n data-testid=\"listing-table-content\"\n />\n </div>\n </>\n ) : (\n selectedMenuItem.isDisplayedPrompt && (\n <CardPrompt onClose={onCloseCardPrompt} data-testid=\"card-prompt\">\n <Link\n className=\"button button--rounded button--cta\"\n to={`${match.url}/create`}\n data-testid=\"add-button\">\n Add\n </Link>\n </CardPrompt>\n )\n )}\n </>\n );\n};\n\nListingTableContent.propTypes = {\n tableData: PropTypes.object.isRequired,\n onCloseCardPrompt: PropTypes.func.isRequired,\n selectedMenuItem: PropTypes.object.isRequired,\n match: PropTypes.shape({\n url: PropTypes.string\n }).isRequired,\n handleSelect: PropTypes.func,\n onSort: PropTypes.func,\n onClickRow: PropTypes.func,\n overScanBuffer: PropTypes.number,\n scrollToIndex: PropTypes.number,\n onRenderItems: PropTypes.func\n};\n\nListingTableContent.defaultProps = {\n handleSelect: () => {},\n onSort: () => {},\n onClickRow: () => {},\n overScanBuffer: 0,\n scrollToIndex: 0,\n onRenderItems: () => {}\n};\n\nexport default withRouter(ListingTableContent);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,MAAM,oBAAoB;AACtC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,IAAI,EAAEC,UAAU,QAAQ,kBAAkB;AAEnD,MAAMC,mBAAmB,GAAGA,CAAC;EAC3BC,SAAS;EACTC,YAAY;EACZC,iBAAiB;EACjBC,gBAAgB;EAChBC,KAAK;EACLC,MAAM;EACNC,UAAU;EACVC,cAAc;EACdC,aAAa;EACbC;AACF,CAAC,KAAK;EACJ,MAAMC,YAAY,GAAGV,SAAS,IAAIA,SAAS,CAACW,IAAI,IAAI,CAAC,CAACX,SAAS,CAACW,IAAI,CAACC,MAAM;EAE3E,oBACEnB,KAAA,CAAAoB,aAAA,CAAApB,KAAA,CAAAqB,QAAA,QACGJ,YAAY,gBACXjB,KAAA,CAAAoB,aAAA,CAAApB,KAAA,CAAAqB,QAAA,qBACErB,KAAA,CAAAoB,aAAA;IAAKE,SAAS,EAAC;EAAe,gBAC5BtB,KAAA,CAAAoB,aAAA,CAACnB,KAAK;IACJe,aAAa,EAAEA,aAAc;IAC7BJ,MAAM,EAAEA,MAAO;IACfC,UAAU,EAAEA,UAAW;IACvBC,cAAc,EAAEA,cAAe;IAC/BC,aAAa,EAAEA,aAAc;IAC7BQ,IAAI,EAAEhB,SAAU;IAChBiB,UAAU;IACVC,QAAQ,EAAEjB,YAAa;IACvB,eAAY;EAAuB,CACpC,CACE,CACL,CAAC,GAEHE,gBAAgB,CAACgB,iBAAiB,iBAChC1B,KAAA,CAAAoB,aAAA,CAACjB,UAAU;IAACwB,OAAO,EAAElB,iBAAkB;IAAC,eAAY;EAAa,gBAC/DT,KAAA,CAAAoB,aAAA,CAAChB,IAAI;IACHkB,SAAS,EAAC,oCAAoC;IAC9CM,EAAE,EAAG,GAAEjB,KAAK,CAACkB,GAAI,SAAS;IAC1B,eAAY;EAAY,GAAC,KAErB,CACI,CAGhB,CAAC;AAEP,CAAC;AAEDvB,mBAAmB,CAACwB,SAAS,GAAG;EAC9BvB,SAAS,EAAEL,SAAS,CAAC6B,MAAM,CAACC,UAAU;EACtCvB,iBAAiB,EAAEP,SAAS,CAAC+B,IAAI,CAACD,UAAU;EAC5CtB,gBAAgB,EAAER,SAAS,CAAC6B,MAAM,CAACC,UAAU;EAC7CrB,KAAK,EAAET,SAAS,CAACgC,KAAK,CAAC;IACrBL,GAAG,EAAE3B,SAAS,CAACiC;EACjB,CAAC,CAAC,CAACH,UAAU;EACbxB,YAAY,EAAEN,SAAS,CAAC+B,IAAI;EAC5BrB,MAAM,EAAEV,SAAS,CAAC+B,IAAI;EACtBpB,UAAU,EAAEX,SAAS,CAAC+B,IAAI;EAC1BnB,cAAc,EAAEZ,SAAS,CAACkC,MAAM;EAChCpB,aAAa,EAAEd,SAAS,CAACkC,MAAM;EAC/BrB,aAAa,EAAEb,SAAS,CAAC+B;AAC3B,CAAC;AAED3B,mBAAmB,CAAC+B,YAAY,GAAG;EACjC7B,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBI,MAAM,EAAEA,CAAA,KAAM,CAAC,CAAC;EAChBC,UAAU,EAAEA,CAAA,KAAM,CAAC,CAAC;EACpBC,cAAc,EAAE,CAAC;EACjBE,aAAa,EAAE,CAAC;EAChBD,aAAa,EAAEA,CAAA,KAAM,CAAC;AACxB,CAAC;AAED,eAAeV,UAAU,CAACC,mBAAmB,CAAC"}
|
package/lib-es/index.js
CHANGED
|
@@ -6,7 +6,15 @@ import getAddContentMenuItems from './utils/add-content-menu-items';
|
|
|
6
6
|
const EntityDataListing = React.lazy(() => import( /* webpackChunkName: 'EntityDataListing' */'./components/EntityDataListing'));
|
|
7
7
|
const EntityManager = React.lazy(() => import( /* webpackChunkName: 'EntityManager' */'./components/EntityManager'));
|
|
8
8
|
export default async function load(app) {
|
|
9
|
-
|
|
9
|
+
// To load different plugin information into menu
|
|
10
|
+
const sectionKey = 'content';
|
|
11
|
+
app.events.once('load:menu-section', addSection => {
|
|
12
|
+
addSection(sectionKey, {
|
|
13
|
+
header: 'content',
|
|
14
|
+
order: 100
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
app.events.once('load:menu-items', getAddContentMenuItems(app, sectionKey));
|
|
10
18
|
app.events.once('load:custom:field:type', addFieldType => {
|
|
11
19
|
Object.keys(formFieldTypes).forEach(type => {
|
|
12
20
|
addFieldType({
|
package/lib-es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getFormBuilderLookup","formFieldTypes","React","pkg","DATA_LISTING_PREFIX","PLUGIN_NAME","getAddContentMenuItems","EntityDataListing","lazy","EntityManager","load","app","events","once","addFieldType","Object","keys","forEach","type","component","emitAsync","entityDataListingRoute","path","key","exact","editEntityRoute","addEntityRoute","addRoute","name","version","pluginName"],"sources":["../src/index.js"],"sourcesContent":["import { getFormBuilderLookup, formFieldTypes } from '@blaze-cms/react-form-builder';\nimport React from 'react';\nimport pkg from '../package.json';\nimport { DATA_LISTING_PREFIX, PLUGIN_NAME } from './constants';\nimport getAddContentMenuItems from './utils/add-content-menu-items';\n\nconst EntityDataListing = React.lazy(() =>\n import(/* webpackChunkName: 'EntityDataListing' */ './components/EntityDataListing')\n);\nconst EntityManager = React.lazy(() =>\n import(/* webpackChunkName: 'EntityManager' */ './components/EntityManager')\n);\n\nexport default async function load(app) {\n app.events.once('
|
|
1
|
+
{"version":3,"file":"index.js","names":["getFormBuilderLookup","formFieldTypes","React","pkg","DATA_LISTING_PREFIX","PLUGIN_NAME","getAddContentMenuItems","EntityDataListing","lazy","EntityManager","load","app","sectionKey","events","once","addSection","header","order","addFieldType","Object","keys","forEach","type","component","emitAsync","entityDataListingRoute","path","key","exact","editEntityRoute","addEntityRoute","addRoute","name","version","pluginName"],"sources":["../src/index.js"],"sourcesContent":["import { getFormBuilderLookup, formFieldTypes } from '@blaze-cms/react-form-builder';\nimport React from 'react';\nimport pkg from '../package.json';\nimport { DATA_LISTING_PREFIX, PLUGIN_NAME } from './constants';\nimport getAddContentMenuItems from './utils/add-content-menu-items';\n\nconst EntityDataListing = React.lazy(() =>\n import(/* webpackChunkName: 'EntityDataListing' */ './components/EntityDataListing')\n);\nconst EntityManager = React.lazy(() =>\n import(/* webpackChunkName: 'EntityManager' */ './components/EntityManager')\n);\n\nexport default async function load(app) {\n // To load different plugin information into menu\n const sectionKey = 'content';\n\n app.events.once('load:menu-section', addSection => {\n addSection(sectionKey, { header: 'content', order: 100 });\n });\n\n app.events.once('load:menu-items', getAddContentMenuItems(app, sectionKey));\n\n app.events.once('load:custom:field:type', addFieldType => {\n Object.keys(formFieldTypes).forEach(type => {\n addFieldType({ type, component: formFieldTypes[type] });\n });\n });\n\n app.events.once('plugin:data-ui:load:loaded', async () => {\n await app.events.emitAsync('load:custom:field:type', getFormBuilderLookup.addFieldType);\n });\n\n const entityDataListingRoute = {\n path: `${DATA_LISTING_PREFIX}/:entityIdentifier`,\n key: 'entityDataListing',\n component: EntityDataListing,\n exact: true\n };\n\n const editEntityRoute = {\n path: `${DATA_LISTING_PREFIX}/:entityIdentifier/:action/:id`,\n key: 'editEntity',\n component: EntityManager,\n exact: true\n };\n\n const addEntityRoute = {\n path: `${DATA_LISTING_PREFIX}/:entityIdentifier/:action`,\n key: 'createEntity',\n component: EntityManager,\n exact: true\n };\n\n app.addRoute(entityDataListingRoute);\n app.addRoute(editEntityRoute);\n app.addRoute(addEntityRoute);\n\n return {\n name: PLUGIN_NAME,\n version: pkg.version\n };\n}\n\nload.pluginName = PLUGIN_NAME;\n"],"mappings":"AAAA,SAASA,oBAAoB,EAAEC,cAAc,QAAQ,+BAA+B;AACpF,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,MAAM,iBAAiB;AACjC,SAASC,mBAAmB,EAAEC,WAAW,QAAQ,aAAa;AAC9D,OAAOC,sBAAsB,MAAM,gCAAgC;AAEnE,MAAMC,iBAAiB,GAAGL,KAAK,CAACM,IAAI,CAAC,MACnC,MAAM,EAAC,2CAA4C,gCAAgC,CACrF,CAAC;AACD,MAAMC,aAAa,GAAGP,KAAK,CAACM,IAAI,CAAC,MAC/B,MAAM,EAAC,uCAAwC,4BAA4B,CAC7E,CAAC;AAED,eAAe,eAAeE,IAAIA,CAACC,GAAG,EAAE;EACtC;EACA,MAAMC,UAAU,GAAG,SAAS;EAE5BD,GAAG,CAACE,MAAM,CAACC,IAAI,CAAC,mBAAmB,EAAEC,UAAU,IAAI;IACjDA,UAAU,CAACH,UAAU,EAAE;MAAEI,MAAM,EAAE,SAAS;MAAEC,KAAK,EAAE;IAAI,CAAC,CAAC;EAC3D,CAAC,CAAC;EAEFN,GAAG,CAACE,MAAM,CAACC,IAAI,CAAC,iBAAiB,EAAER,sBAAsB,CAACK,GAAG,EAAEC,UAAU,CAAC,CAAC;EAE3ED,GAAG,CAACE,MAAM,CAACC,IAAI,CAAC,wBAAwB,EAAEI,YAAY,IAAI;IACxDC,MAAM,CAACC,IAAI,CAACnB,cAAc,CAAC,CAACoB,OAAO,CAACC,IAAI,IAAI;MAC1CJ,YAAY,CAAC;QAAEI,IAAI;QAAEC,SAAS,EAAEtB,cAAc,CAACqB,IAAI;MAAE,CAAC,CAAC;IACzD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFX,GAAG,CAACE,MAAM,CAACC,IAAI,CAAC,4BAA4B,EAAE,YAAY;IACxD,MAAMH,GAAG,CAACE,MAAM,CAACW,SAAS,CAAC,wBAAwB,EAAExB,oBAAoB,CAACkB,YAAY,CAAC;EACzF,CAAC,CAAC;EAEF,MAAMO,sBAAsB,GAAG;IAC7BC,IAAI,EAAG,GAAEtB,mBAAoB,oBAAmB;IAChDuB,GAAG,EAAE,mBAAmB;IACxBJ,SAAS,EAAEhB,iBAAiB;IAC5BqB,KAAK,EAAE;EACT,CAAC;EAED,MAAMC,eAAe,GAAG;IACtBH,IAAI,EAAG,GAAEtB,mBAAoB,gCAA+B;IAC5DuB,GAAG,EAAE,YAAY;IACjBJ,SAAS,EAAEd,aAAa;IACxBmB,KAAK,EAAE;EACT,CAAC;EAED,MAAME,cAAc,GAAG;IACrBJ,IAAI,EAAG,GAAEtB,mBAAoB,4BAA2B;IACxDuB,GAAG,EAAE,cAAc;IACnBJ,SAAS,EAAEd,aAAa;IACxBmB,KAAK,EAAE;EACT,CAAC;EAEDjB,GAAG,CAACoB,QAAQ,CAACN,sBAAsB,CAAC;EACpCd,GAAG,CAACoB,QAAQ,CAACF,eAAe,CAAC;EAC7BlB,GAAG,CAACoB,QAAQ,CAACD,cAAc,CAAC;EAE5B,OAAO;IACLE,IAAI,EAAE3B,WAAW;IACjB4B,OAAO,EAAE9B,GAAG,CAAC8B;EACf,CAAC;AACH;AAEAvB,IAAI,CAACwB,UAAU,GAAG7B,WAAW"}
|
|
@@ -2,10 +2,8 @@ import { getQuery } from '@blaze-cms/admin-ui-utils';
|
|
|
2
2
|
const {
|
|
3
3
|
MENU_PERMISSIONS
|
|
4
4
|
} = require('../constants');
|
|
5
|
-
function getAddContentMenuItems(app) {
|
|
6
|
-
return async
|
|
7
|
-
addConfig
|
|
8
|
-
}) => {
|
|
5
|
+
function getAddContentMenuItems(app, sectionKey) {
|
|
6
|
+
return async addItem => {
|
|
9
7
|
const client = app.getClient();
|
|
10
8
|
const {
|
|
11
9
|
data: {
|
|
@@ -18,57 +16,15 @@ function getAddContentMenuItems(app) {
|
|
|
18
16
|
canDoActions: MENU_PERMISSIONS
|
|
19
17
|
}
|
|
20
18
|
});
|
|
21
|
-
if (!getEntitySchemas || !getEntitySchemas.length) return; // no items so don't add section
|
|
22
|
-
|
|
23
|
-
const menuItems = {};
|
|
24
|
-
const sectionMenuItems = {
|
|
25
|
-
content: {}
|
|
26
|
-
};
|
|
27
|
-
getEntitySchemas.forEach(({
|
|
28
|
-
id,
|
|
29
|
-
displayName,
|
|
30
|
-
displayProperties
|
|
31
|
-
}) => {
|
|
32
|
-
if (!displayProperties) return null;
|
|
33
|
-
const {
|
|
34
|
-
adminMenu: {
|
|
35
|
-
sectionKey = 'content'
|
|
36
|
-
} = {}
|
|
37
|
-
} = displayProperties;
|
|
38
|
-
const sectionItems = sectionMenuItems[sectionKey] || {};
|
|
39
|
-
sectionItems[id] = {
|
|
40
|
-
label: displayName,
|
|
41
|
-
uri: `/data-listing/${id}`
|
|
42
|
-
};
|
|
43
|
-
sectionMenuItems[sectionKey] = sectionItems;
|
|
44
|
-
});
|
|
45
|
-
const menuConfig = {
|
|
46
|
-
main: {
|
|
47
|
-
items: {
|
|
48
|
-
content: {
|
|
49
|
-
label: 'Content',
|
|
50
|
-
loadOpen: true,
|
|
51
|
-
order: 10,
|
|
52
|
-
items: menuItems
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
Object.entries(sectionMenuItems).forEach(([sectionKey, sectionItems]) => {
|
|
58
|
-
const sectionConfig = menuConfig.main.items[sectionKey] || {};
|
|
59
|
-
sectionConfig.items = sectionItems;
|
|
60
|
-
menuConfig.main.items[sectionKey] = sectionConfig;
|
|
61
|
-
});
|
|
62
19
|
getEntitySchemas.forEach(({
|
|
63
20
|
id,
|
|
64
21
|
displayName
|
|
65
22
|
}) => {
|
|
66
|
-
|
|
67
|
-
|
|
23
|
+
addItem({
|
|
24
|
+
name: displayName,
|
|
68
25
|
uri: `/data-listing/${id}`
|
|
69
|
-
};
|
|
26
|
+
}, sectionKey);
|
|
70
27
|
});
|
|
71
|
-
addConfig(menuConfig);
|
|
72
28
|
};
|
|
73
29
|
}
|
|
74
30
|
export default getAddContentMenuItems;
|