@blaze-cms/plugin-data-ui 0.125.0-f-admin-updates.3 → 0.125.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 +61 -10
- package/README.md +33 -1
- package/lib/components/EntityManager/Entity/Entity.js +17 -19
- package/lib/components/EntityManager/Entity/Entity.js.map +1 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/index.js +6 -12
- package/lib/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
- package/lib/components/EntityManager/utils/data-mappers.js +6 -4
- package/lib/components/EntityManager/utils/data-mappers.js.map +1 -1
- package/lib/utils/build-listing-query.js +1 -1
- package/lib/utils/build-listing-query.js.map +1 -1
- package/lib/utils/get-default-query-params.js +3 -0
- package/lib/utils/get-default-query-params.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/Entity.js +17 -19
- package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js +7 -13
- package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
- package/lib-es/components/EntityManager/utils/data-mappers.js +2 -2
- package/lib-es/components/EntityManager/utils/data-mappers.js.map +1 -1
- package/lib-es/utils/build-listing-query.js +2 -2
- package/lib-es/utils/build-listing-query.js.map +1 -1
- package/lib-es/utils/get-default-query-params.js +4 -0
- package/lib-es/utils/get-default-query-params.js.map +1 -1
- package/package.json +7 -7
- package/src/components/EntityManager/Entity/Entity.js +59 -61
- package/src/components/EntityManager/Entity/SideBarRelations/index.js +9 -23
- package/src/components/EntityManager/utils/data-mappers.js +2 -2
- package/src/utils/build-listing-query.js +6 -2
- package/src/utils/get-default-query-params.js +2 -0
|
@@ -1 +1 @@
|
|
|
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","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","isValid","fields","isNewValueSet","valuesChecked","currentField","fieldValue","otherProps","slice","pageBuilder","filter","formValue","parent","mergePageBuilderTemplateChanges","map","updatedFormValue","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","tabId","currentTabId","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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"}
|
|
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","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","isValid","fields","isNewValueSet","valuesChecked","currentField","fieldValue","otherProps","slice","pageBuilder","filter","formValue","parent","mergePageBuilderTemplateChanges","map","updatedFormValue","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","tabId","currentTabId","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 <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=\"row row--display-row\">\n <div className=\"column column--three-quarters\">\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\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 className=\"column column--one-third\">\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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"}
|
|
@@ -4,9 +4,9 @@ import uuidv1 from 'uuid/v1';
|
|
|
4
4
|
import { useApolloClient } from '@apollo/client';
|
|
5
5
|
import { getQuery } from '@blaze-cms/admin-ui-utils';
|
|
6
6
|
import { formFieldTypes } from '@blaze-cms/react-form-builder';
|
|
7
|
-
import
|
|
7
|
+
import Badge from '@blaze-react/badge';
|
|
8
8
|
import { VersionsList } from '@blaze-cms/versioning-ui';
|
|
9
|
-
import { PUBLISHED
|
|
9
|
+
import { PUBLISHED } from '../../../../constants';
|
|
10
10
|
const SideBarRelations = ({
|
|
11
11
|
schema,
|
|
12
12
|
onChange,
|
|
@@ -20,8 +20,7 @@ const SideBarRelations = ({
|
|
|
20
20
|
formattedStatus,
|
|
21
21
|
formattedUpdated,
|
|
22
22
|
formattedCreated,
|
|
23
|
-
formattedPublished
|
|
24
|
-
status
|
|
23
|
+
formattedPublished
|
|
25
24
|
} = formData;
|
|
26
25
|
const client = useApolloClient();
|
|
27
26
|
const [relationsComponents, setRelationsComponents] = useState(null);
|
|
@@ -63,10 +62,6 @@ const SideBarRelations = ({
|
|
|
63
62
|
identifier: itemEntity,
|
|
64
63
|
interfaces
|
|
65
64
|
} = schema;
|
|
66
|
-
const statusClassName = classnames('sidebar__status__badge', {
|
|
67
|
-
'sidebar__status__badge--published': status === PUBLISHED,
|
|
68
|
-
'sidebar__status__badge--unpublished': status === UNPUBLISHED
|
|
69
|
-
});
|
|
70
65
|
return /*#__PURE__*/React.createElement("div", {
|
|
71
66
|
className: "sidebar",
|
|
72
67
|
"data-testid": "sideBarRelations-main-div"
|
|
@@ -74,11 +69,10 @@ const SideBarRelations = ({
|
|
|
74
69
|
className: "sidebar__content"
|
|
75
70
|
}, formattedCreated && /*#__PURE__*/React.createElement("div", {
|
|
76
71
|
className: "sidebar__status"
|
|
77
|
-
}, /*#__PURE__*/React.createElement(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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, {
|
|
72
|
+
}, formattedStatus && /*#__PURE__*/React.createElement(Badge, {
|
|
73
|
+
type: "status",
|
|
74
|
+
modifiers: formattedStatus
|
|
75
|
+
}, formattedStatus, formattedStatus === PUBLISHED && `: ${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, {
|
|
82
76
|
itemEntity: itemEntity,
|
|
83
77
|
itemId: itemId,
|
|
84
78
|
interfaces: interfaces
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useState","useEffect","PropTypes","uuidv1","useApolloClient","getQuery","formFieldTypes","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useState","useEffect","PropTypes","uuidv1","useApolloClient","getQuery","formFieldTypes","Badge","VersionsList","PUBLISHED","SideBarRelations","schema","onChange","formData","entity","relation","RelationComponent","formattedStatus","formattedUpdated","formattedCreated","formattedPublished","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","entitySchema","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 Badge from '@blaze-react/badge';\nimport { VersionsList } from '@blaze-cms/versioning-ui';\nimport { PUBLISHED } from '../../../../constants';\n\nconst SideBarRelations = ({ schema, onChange, formData, entity }) => {\n const { relation: RelationComponent } = formFieldTypes;\n const { formattedStatus, formattedUpdated, formattedCreated, formattedPublished } = formData;\n const client = useApolloClient();\n const [relationsComponents, setRelationsComponents] = useState(null);\n\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 return (\n <div className=\"sidebar\" data-testid=\"sideBarRelations-main-div\">\n <div className=\"sidebar__content\">\n {formattedCreated && (\n <div className=\"sidebar__status\">\n {formattedStatus && (\n <Badge type=\"status\" modifiers={formattedStatus}>\n {formattedStatus}\n {formattedStatus === PUBLISHED && `: ${formattedPublished}`}\n </Badge>\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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"}
|
|
@@ -27,7 +27,7 @@ const updateListItems = ({
|
|
|
27
27
|
listingData,
|
|
28
28
|
result,
|
|
29
29
|
id
|
|
30
|
-
}) => {
|
|
30
|
+
} = {}) => {
|
|
31
31
|
if (!listingData || !result || !id) throw new BlazeError('Expected object with: listingData, result, id');
|
|
32
32
|
return listingData.map(item => {
|
|
33
33
|
const mapperResult = _objectSpread({}, item);
|
|
@@ -45,7 +45,7 @@ const updateListItems = ({
|
|
|
45
45
|
const deleteFromListItems = ({
|
|
46
46
|
listingData,
|
|
47
47
|
id
|
|
48
|
-
}) => {
|
|
48
|
+
} = {}) => {
|
|
49
49
|
if (!listingData || !id) throw new BlazeError('Expected object with: listingData, id');
|
|
50
50
|
return listingData.filter(({
|
|
51
51
|
id: itemId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-mappers.js","names":["BlazeError","getPageName","displayProperties","entity","adminHeader","name","id","fieldId","reduce","acc","headerProperty","item","push","join","createNewListItem","listingData","result","updateListItems","map","mapperResult","Object","keys","forEach","key","deleteFromListItems","filter","itemId"],"sources":["../../../../src/components/EntityManager/utils/data-mappers.js"],"sourcesContent":["import { BlazeError } from '@blaze-cms/core-errors';\n\nconst getPageName = (displayProperties = {}, entity = {}) => {\n if (!displayProperties || !displayProperties.adminHeader) {\n const { name, id: fieldId } = entity;\n return name || fieldId || '';\n }\n\n const { adminHeader } = displayProperties;\n return adminHeader\n .reduce((acc, headerProperty) => {\n const item = entity[headerProperty];\n if (item) acc.push(item);\n return acc;\n }, [])\n .join(' ');\n};\n\nconst createNewListItem = ({ listingData, result }) => [...listingData, result];\n\nconst updateListItems = ({ listingData, result, id }) => {\n if (!listingData || !result || !id)\n throw new BlazeError('Expected object with: listingData, result, id');\n return listingData.map(item => {\n const mapperResult = { ...item };\n if (item.id === id) {\n Object.keys(item).forEach(key => {\n if (result[key] && key !== 'id') {\n mapperResult[key] = result[key];\n }\n });\n return mapperResult;\n }\n return mapperResult;\n });\n};\n\nconst deleteFromListItems = ({ listingData, id }) => {\n if (!listingData || !id) throw new BlazeError('Expected object with: listingData, id');\n return listingData.filter(({ id: itemId }) => itemId !== id);\n};\n\nexport { getPageName, createNewListItem, updateListItems, deleteFromListItems };\n"],"mappings":";;;AAAA,SAASA,UAAU,QAAQ,wBAAwB;AAEnD,MAAMC,WAAW,GAAG,CAACC,iBAAiB,GAAG,CAAC,CAAC,EAAEC,MAAM,GAAG,CAAC,CAAC,KAAK;EAC3D,IAAI,CAACD,iBAAiB,IAAI,CAACA,iBAAiB,CAACE,WAAW,EAAE;IACxD,MAAM;MAAEC,IAAI;MAAEC,EAAE,EAAEC;IAAQ,CAAC,GAAGJ,MAAM;IACpC,OAAOE,IAAI,IAAIE,OAAO,IAAI,EAAE;EAC9B;EAEA,MAAM;IAAEH;EAAY,CAAC,GAAGF,iBAAiB;EACzC,OAAOE,WAAW,CACfI,MAAM,CAAC,CAACC,GAAG,EAAEC,cAAc,KAAK;IAC/B,MAAMC,IAAI,GAAGR,MAAM,CAACO,cAAc,CAAC;IACnC,IAAIC,IAAI,EAAEF,GAAG,CAACG,IAAI,CAACD,IAAI,CAAC;IACxB,OAAOF,GAAG;EACZ,CAAC,EAAE,EAAE,CAAC,CACLI,IAAI,CAAC,GAAG,CAAC;AACd,CAAC;AAED,MAAMC,iBAAiB,GAAG,CAAC;EAAEC,WAAW;EAAEC;AAAO,CAAC,KAAK,CAAC,GAAGD,WAAW,EAAEC,MAAM,CAAC;AAE/E,MAAMC,eAAe,GAAG,CAAC;EAAEF,WAAW;EAAEC,MAAM;EAAEV;AAAG,CAAC,KAAK;
|
|
1
|
+
{"version":3,"file":"data-mappers.js","names":["BlazeError","getPageName","displayProperties","entity","adminHeader","name","id","fieldId","reduce","acc","headerProperty","item","push","join","createNewListItem","listingData","result","updateListItems","map","mapperResult","Object","keys","forEach","key","deleteFromListItems","filter","itemId"],"sources":["../../../../src/components/EntityManager/utils/data-mappers.js"],"sourcesContent":["import { BlazeError } from '@blaze-cms/core-errors';\n\nconst getPageName = (displayProperties = {}, entity = {}) => {\n if (!displayProperties || !displayProperties.adminHeader) {\n const { name, id: fieldId } = entity;\n return name || fieldId || '';\n }\n\n const { adminHeader } = displayProperties;\n return adminHeader\n .reduce((acc, headerProperty) => {\n const item = entity[headerProperty];\n if (item) acc.push(item);\n return acc;\n }, [])\n .join(' ');\n};\n\nconst createNewListItem = ({ listingData, result }) => [...listingData, result];\n\nconst updateListItems = ({ listingData, result, id } = {}) => {\n if (!listingData || !result || !id)\n throw new BlazeError('Expected object with: listingData, result, id');\n return listingData.map(item => {\n const mapperResult = { ...item };\n if (item.id === id) {\n Object.keys(item).forEach(key => {\n if (result[key] && key !== 'id') {\n mapperResult[key] = result[key];\n }\n });\n return mapperResult;\n }\n return mapperResult;\n });\n};\n\nconst deleteFromListItems = ({ listingData, id } = {}) => {\n if (!listingData || !id) throw new BlazeError('Expected object with: listingData, id');\n return listingData.filter(({ id: itemId }) => itemId !== id);\n};\n\nexport { getPageName, createNewListItem, updateListItems, deleteFromListItems };\n"],"mappings":";;;AAAA,SAASA,UAAU,QAAQ,wBAAwB;AAEnD,MAAMC,WAAW,GAAG,CAACC,iBAAiB,GAAG,CAAC,CAAC,EAAEC,MAAM,GAAG,CAAC,CAAC,KAAK;EAC3D,IAAI,CAACD,iBAAiB,IAAI,CAACA,iBAAiB,CAACE,WAAW,EAAE;IACxD,MAAM;MAAEC,IAAI;MAAEC,EAAE,EAAEC;IAAQ,CAAC,GAAGJ,MAAM;IACpC,OAAOE,IAAI,IAAIE,OAAO,IAAI,EAAE;EAC9B;EAEA,MAAM;IAAEH;EAAY,CAAC,GAAGF,iBAAiB;EACzC,OAAOE,WAAW,CACfI,MAAM,CAAC,CAACC,GAAG,EAAEC,cAAc,KAAK;IAC/B,MAAMC,IAAI,GAAGR,MAAM,CAACO,cAAc,CAAC;IACnC,IAAIC,IAAI,EAAEF,GAAG,CAACG,IAAI,CAACD,IAAI,CAAC;IACxB,OAAOF,GAAG;EACZ,CAAC,EAAE,EAAE,CAAC,CACLI,IAAI,CAAC,GAAG,CAAC;AACd,CAAC;AAED,MAAMC,iBAAiB,GAAG,CAAC;EAAEC,WAAW;EAAEC;AAAO,CAAC,KAAK,CAAC,GAAGD,WAAW,EAAEC,MAAM,CAAC;AAE/E,MAAMC,eAAe,GAAG,CAAC;EAAEF,WAAW;EAAEC,MAAM;EAAEV;AAAG,CAAC,GAAG,CAAC,CAAC,KAAK;EAC5D,IAAI,CAACS,WAAW,IAAI,CAACC,MAAM,IAAI,CAACV,EAAE,EAChC,MAAM,IAAIN,UAAU,CAAC,+CAA+C,CAAC;EACvE,OAAOe,WAAW,CAACG,GAAG,CAACP,IAAI,IAAI;IAC7B,MAAMQ,YAAY,qBAAQR,IAAI,CAAE;IAChC,IAAIA,IAAI,CAACL,EAAE,KAAKA,EAAE,EAAE;MAClBc,MAAM,CAACC,IAAI,CAACV,IAAI,CAAC,CAACW,OAAO,CAACC,GAAG,IAAI;QAC/B,IAAIP,MAAM,CAACO,GAAG,CAAC,IAAIA,GAAG,KAAK,IAAI,EAAE;UAC/BJ,YAAY,CAACI,GAAG,CAAC,GAAGP,MAAM,CAACO,GAAG,CAAC;QACjC;MACF,CAAC,CAAC;MACF,OAAOJ,YAAY;IACrB;IACA,OAAOA,YAAY;EACrB,CAAC,CAAC;AACJ,CAAC;AAED,MAAMK,mBAAmB,GAAG,CAAC;EAAET,WAAW;EAAET;AAAG,CAAC,GAAG,CAAC,CAAC,KAAK;EACxD,IAAI,CAACS,WAAW,IAAI,CAACT,EAAE,EAAE,MAAM,IAAIN,UAAU,CAAC,uCAAuC,CAAC;EACtF,OAAOe,WAAW,CAACU,MAAM,CAAC,CAAC;IAAEnB,EAAE,EAAEoB;EAAO,CAAC,KAAKA,MAAM,KAAKpB,EAAE,CAAC;AAC9D,CAAC;AAED,SAASL,WAAW,EAAEa,iBAAiB,EAAEG,eAAe,EAAEO,mBAAmB"}
|
|
@@ -6,8 +6,8 @@ function buildListingQuery(entitySchema) {
|
|
|
6
6
|
}
|
|
7
7
|
const sortType = entitySchema.actions.getAll[0].toUpperCase() + entitySchema.actions.getAll.substr(1);
|
|
8
8
|
return gql`
|
|
9
|
-
query ${entitySchema.actions.getAll}($limit: Int, $offset:Int, $sort: [${sortType}SortItem]) {
|
|
10
|
-
listingData: ${entitySchema.actions.getAll}(limit: $limit, offset:$offset, sort:$sort){
|
|
9
|
+
query ${entitySchema.actions.getAll}($where: JSON, $limit: Int, $offset:Int, $sort: [${sortType}SortItem]) {
|
|
10
|
+
listingData: ${entitySchema.actions.getAll}(where: $where, limit: $limit, offset:$offset, sort:$sort){
|
|
11
11
|
id,
|
|
12
12
|
${entitySchema.listingProperties.join(',\n')}
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-listing-query.js","names":["gql","BlazeError","buildListingQuery","entitySchema","actions","getAll","listingProperties","sortType","toUpperCase","substr","join"],"sources":["../../src/utils/build-listing-query.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { BlazeError } from '@blaze-cms/core-errors';\n\nfunction buildListingQuery(entitySchema) {\n if (!entitySchema.actions || !entitySchema.actions.getAll || !entitySchema.listingProperties) {\n throw new BlazeError(\n 'Listing query requires getAll action and listingProperties from entity schema'\n );\n }\n\n const sortType =\n entitySchema.actions.getAll[0].toUpperCase() + entitySchema.actions.getAll.substr(1);\n\n return gql`\n query ${entitySchema.actions.getAll}($limit: Int, $offset:Int, $sort: [${sortType}SortItem]) {\n listingData: ${entitySchema.actions.getAll}(limit: $limit, offset:$offset, sort:$sort){\n id,\n ${entitySchema.listingProperties.join(',\\n')}\n }\n }\n `;\n}\n\nexport default buildListingQuery;\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,SAASC,UAAU,QAAQ,wBAAwB;AAEnD,SAASC,iBAAiB,CAACC,YAAY,EAAE;EACvC,IAAI,CAACA,YAAY,CAACC,OAAO,IAAI,CAACD,YAAY,CAACC,OAAO,CAACC,MAAM,IAAI,CAACF,YAAY,CAACG,iBAAiB,EAAE;IAC5F,MAAM,IAAIL,UAAU,CAClB,+EAA+E,CAChF;EACH;EAEA,MAAMM,QAAQ,GACZJ,YAAY,CAACC,OAAO,CAACC,MAAM,CAAC,CAAC,CAAC,CAACG,WAAW,EAAE,GAAGL,YAAY,CAACC,OAAO,CAACC,MAAM,CAACI,MAAM,CAAC,CAAC,CAAC;EAEtF,OAAOT,GAAI;AACb,
|
|
1
|
+
{"version":3,"file":"build-listing-query.js","names":["gql","BlazeError","buildListingQuery","entitySchema","actions","getAll","listingProperties","sortType","toUpperCase","substr","join"],"sources":["../../src/utils/build-listing-query.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { BlazeError } from '@blaze-cms/core-errors';\n\nfunction buildListingQuery(entitySchema) {\n if (!entitySchema.actions || !entitySchema.actions.getAll || !entitySchema.listingProperties) {\n throw new BlazeError(\n 'Listing query requires getAll action and listingProperties from entity schema'\n );\n }\n\n const sortType =\n entitySchema.actions.getAll[0].toUpperCase() + entitySchema.actions.getAll.substr(1);\n\n return gql`\n query ${\n entitySchema.actions.getAll\n }($where: JSON, $limit: Int, $offset:Int, $sort: [${sortType}SortItem]) {\n listingData: ${\n entitySchema.actions.getAll\n }(where: $where, limit: $limit, offset:$offset, sort:$sort){\n id,\n ${entitySchema.listingProperties.join(',\\n')}\n }\n }\n `;\n}\n\nexport default buildListingQuery;\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,SAASC,UAAU,QAAQ,wBAAwB;AAEnD,SAASC,iBAAiB,CAACC,YAAY,EAAE;EACvC,IAAI,CAACA,YAAY,CAACC,OAAO,IAAI,CAACD,YAAY,CAACC,OAAO,CAACC,MAAM,IAAI,CAACF,YAAY,CAACG,iBAAiB,EAAE;IAC5F,MAAM,IAAIL,UAAU,CAClB,+EAA+E,CAChF;EACH;EAEA,MAAMM,QAAQ,GACZJ,YAAY,CAACC,OAAO,CAACC,MAAM,CAAC,CAAC,CAAC,CAACG,WAAW,EAAE,GAAGL,YAAY,CAACC,OAAO,CAACC,MAAM,CAACI,MAAM,CAAC,CAAC,CAAC;EAEtF,OAAOT,GAAI;AACb,YACMG,YAAY,CAACC,OAAO,CAACC,MACtB,oDAAmDE,QAAS;AACjE,qBACQJ,YAAY,CAACC,OAAO,CAACC,MACtB;AACP;AACA,UAAUF,YAAY,CAACG,iBAAiB,CAACI,IAAI,CAAC,KAAK,CAAE;AACrD;AACA;AACA,GAAG;AACH;AAEA,eAAeR,iBAAiB"}
|
|
@@ -2,7 +2,11 @@ const getDefaultQueryParams = ({
|
|
|
2
2
|
schema
|
|
3
3
|
}) => {
|
|
4
4
|
const updated = schema.properties && schema.properties.updated;
|
|
5
|
+
const {
|
|
6
|
+
adminDefaultListingFilter: where
|
|
7
|
+
} = schema.displayProperties || {};
|
|
5
8
|
return {
|
|
9
|
+
where,
|
|
6
10
|
limit: 40,
|
|
7
11
|
offset: 0,
|
|
8
12
|
sort: updated ? [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-default-query-params.js","names":["getDefaultQueryParams","schema","updated","properties","limit","offset","sort","property","direction"],"sources":["../../src/utils/get-default-query-params.js"],"sourcesContent":["const getDefaultQueryParams = ({ schema }) => {\n const updated = schema.properties && schema.properties.updated;\n\n return {\n limit: 40,\n offset: 0,\n sort: updated\n ? [\n {\n property: 'updated',\n direction: 'desc'\n }\n ]\n : []\n };\n};\n\nexport { getDefaultQueryParams };\n"],"mappings":"AAAA,MAAMA,qBAAqB,GAAG,CAAC;EAAEC;AAAO,CAAC,KAAK;EAC5C,MAAMC,OAAO,GAAGD,MAAM,CAACE,UAAU,IAAIF,MAAM,CAACE,UAAU,CAACD,OAAO;
|
|
1
|
+
{"version":3,"file":"get-default-query-params.js","names":["getDefaultQueryParams","schema","updated","properties","adminDefaultListingFilter","where","displayProperties","limit","offset","sort","property","direction"],"sources":["../../src/utils/get-default-query-params.js"],"sourcesContent":["const getDefaultQueryParams = ({ schema }) => {\n const updated = schema.properties && schema.properties.updated;\n const { adminDefaultListingFilter: where } = schema.displayProperties || {};\n\n return {\n where,\n limit: 40,\n offset: 0,\n sort: updated\n ? [\n {\n property: 'updated',\n direction: 'desc'\n }\n ]\n : []\n };\n};\n\nexport { getDefaultQueryParams };\n"],"mappings":"AAAA,MAAMA,qBAAqB,GAAG,CAAC;EAAEC;AAAO,CAAC,KAAK;EAC5C,MAAMC,OAAO,GAAGD,MAAM,CAACE,UAAU,IAAIF,MAAM,CAACE,UAAU,CAACD,OAAO;EAC9D,MAAM;IAAEE,yBAAyB,EAAEC;EAAM,CAAC,GAAGJ,MAAM,CAACK,iBAAiB,IAAI,CAAC,CAAC;EAE3E,OAAO;IACLD,KAAK;IACLE,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,CAAC;IACTC,IAAI,EAAEP,OAAO,GACT,CACE;MACEQ,QAAQ,EAAE,SAAS;MACnBC,SAAS,EAAE;IACb,CAAC,CACF,GACD;EACN,CAAC;AACH,CAAC;AAED,SAASX,qBAAqB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/plugin-data-ui",
|
|
3
|
-
"version": "0.125.0
|
|
3
|
+
"version": "0.125.0",
|
|
4
4
|
"description": "Blaze plugin data ui",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
},
|
|
28
28
|
"license": "GPL-3.0",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@blaze-cms/admin-ui-utils": "0.125.0
|
|
30
|
+
"@blaze-cms/admin-ui-utils": "^0.125.0",
|
|
31
31
|
"@blaze-cms/core-errors": "^0.118.0",
|
|
32
|
-
"@blaze-cms/react-form-builder": "0.125.0
|
|
33
|
-
"@blaze-cms/react-page-builder": "0.125.0
|
|
32
|
+
"@blaze-cms/react-form-builder": "^0.125.0",
|
|
33
|
+
"@blaze-cms/react-page-builder": "^0.125.0",
|
|
34
34
|
"@blaze-cms/setup-ui": "^0.92.0",
|
|
35
|
-
"@blaze-cms/versioning-ui": "^0.
|
|
35
|
+
"@blaze-cms/versioning-ui": "^0.124.0",
|
|
36
36
|
"@blaze-react/button": "0.5.19",
|
|
37
37
|
"@blaze-react/more": "0.5.19",
|
|
38
38
|
"@blaze-react/multiselect": "0.6.6",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"uuid": "^3.3.3"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@blaze-cms/core-ui": "^0.
|
|
56
|
+
"@blaze-cms/core-ui": "^0.125.0"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
59
|
"@apollo/client": "3.x",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"lib/*",
|
|
66
66
|
"lib-es/*"
|
|
67
67
|
],
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "ae2788fd44b23bc206072ea3937a466d4a728a16"
|
|
69
69
|
}
|
|
@@ -403,70 +403,68 @@ const Entity = ({
|
|
|
403
403
|
|
|
404
404
|
return (
|
|
405
405
|
<div className="page">
|
|
406
|
-
<
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
<div className="
|
|
423
|
-
<div className="
|
|
424
|
-
<
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
</div>
|
|
406
|
+
<Prompt when={hasToDisplayPrompt} message={LEAVE_PAGE_MESSAGE} />
|
|
407
|
+
{showModal && (
|
|
408
|
+
<DeleteAction
|
|
409
|
+
onClose={setModalStatus}
|
|
410
|
+
deleteAction={onDelete}
|
|
411
|
+
itemName={formData.values.name}
|
|
412
|
+
/>
|
|
413
|
+
)}
|
|
414
|
+
{copyModalStatus && (
|
|
415
|
+
<CopyDataFromAction
|
|
416
|
+
onClose={handleCopyDataFromClose}
|
|
417
|
+
copyAction={onCopy}
|
|
418
|
+
getFormData={getFormData}
|
|
419
|
+
/>
|
|
420
|
+
)}
|
|
421
|
+
|
|
422
|
+
<div className="row row--display-row">
|
|
423
|
+
<div className="column column--three-quarters">
|
|
424
|
+
<EntityHeader
|
|
425
|
+
entityData={entityData}
|
|
426
|
+
entityIdentifier={entityIdentifier}
|
|
427
|
+
pageTitle={pageTitle}
|
|
428
|
+
pageName={pageName}
|
|
429
|
+
onSubmit={onSubmit}
|
|
430
|
+
handlePublishAndUnpublish={handlePublishAndUnpublish}
|
|
431
|
+
isSaveButtonAvailable={isSaveButtonAvailable}
|
|
432
|
+
isEnablePublishButton={isEnablePublishButton}
|
|
433
|
+
isEnablePreviewButton={isEnablePreviewButton}
|
|
434
|
+
toggleCopyModal={setCopyModalStatus}
|
|
435
|
+
toggleModal={setModalStatus}
|
|
436
|
+
formData={formData}
|
|
437
|
+
onViewUrl={onViewUrlHandler}
|
|
438
|
+
saveButtonText={saveButtonText}
|
|
439
|
+
/>
|
|
440
|
+
|
|
441
|
+
<div className="page__content">
|
|
442
|
+
<div className="content">
|
|
443
|
+
<Tabs
|
|
444
|
+
enabled={showPageBuilderTabs}
|
|
445
|
+
onTabChange={tabId => {
|
|
446
|
+
client.writeQuery({
|
|
447
|
+
query: GET_CURRENT_TAB_ID,
|
|
448
|
+
data: { currentTabId: tabId }
|
|
449
|
+
});
|
|
450
|
+
setCurrentTabId(tabId);
|
|
451
|
+
}}>
|
|
452
|
+
<FormBuilder
|
|
453
|
+
getIsFormValid={setIsFormValid}
|
|
454
|
+
getFormValues={getFormValues}
|
|
455
|
+
schema={schema}
|
|
456
|
+
data={clonedFormData}
|
|
457
|
+
onChange={onChangeFormValues}
|
|
458
|
+
shouldCopyData={shouldCopyData}
|
|
459
|
+
updateCopyData={updateCopyData}
|
|
460
|
+
formValues={formValues}
|
|
461
|
+
isNewEntity={isNewEntity}
|
|
462
|
+
/>
|
|
463
|
+
</Tabs>
|
|
465
464
|
</div>
|
|
466
465
|
</div>
|
|
467
466
|
</div>
|
|
468
|
-
|
|
469
|
-
<div className="column column--one-third page-sidebar">
|
|
467
|
+
<div className="column column--one-third">
|
|
470
468
|
{showSideBarRelations && (
|
|
471
469
|
<SideBarRelations
|
|
472
470
|
entity={entity}
|
|
@@ -4,21 +4,16 @@ import uuidv1 from 'uuid/v1';
|
|
|
4
4
|
import { useApolloClient } from '@apollo/client';
|
|
5
5
|
import { getQuery } from '@blaze-cms/admin-ui-utils';
|
|
6
6
|
import { formFieldTypes } from '@blaze-cms/react-form-builder';
|
|
7
|
-
import
|
|
7
|
+
import Badge from '@blaze-react/badge';
|
|
8
8
|
import { VersionsList } from '@blaze-cms/versioning-ui';
|
|
9
|
-
import { PUBLISHED
|
|
9
|
+
import { PUBLISHED } from '../../../../constants';
|
|
10
10
|
|
|
11
11
|
const SideBarRelations = ({ schema, onChange, formData, entity }) => {
|
|
12
12
|
const { relation: RelationComponent } = formFieldTypes;
|
|
13
|
-
const {
|
|
14
|
-
formattedStatus,
|
|
15
|
-
formattedUpdated,
|
|
16
|
-
formattedCreated,
|
|
17
|
-
formattedPublished,
|
|
18
|
-
status
|
|
19
|
-
} = formData;
|
|
13
|
+
const { formattedStatus, formattedUpdated, formattedCreated, formattedPublished } = formData;
|
|
20
14
|
const client = useApolloClient();
|
|
21
15
|
const [relationsComponents, setRelationsComponents] = useState(null);
|
|
16
|
+
|
|
22
17
|
useEffect(
|
|
23
18
|
() => {
|
|
24
19
|
(async () => {
|
|
@@ -56,26 +51,17 @@ const SideBarRelations = ({ schema, onChange, formData, entity }) => {
|
|
|
56
51
|
const { id: itemId } = entity;
|
|
57
52
|
const { identifier: itemEntity, interfaces } = schema;
|
|
58
53
|
|
|
59
|
-
const statusClassName = classnames('sidebar__status__badge', {
|
|
60
|
-
'sidebar__status__badge--published': status === PUBLISHED,
|
|
61
|
-
'sidebar__status__badge--unpublished': status === UNPUBLISHED
|
|
62
|
-
});
|
|
63
|
-
|
|
64
54
|
return (
|
|
65
55
|
<div className="sidebar" data-testid="sideBarRelations-main-div">
|
|
66
56
|
<div className="sidebar__content">
|
|
67
57
|
{formattedCreated && (
|
|
68
58
|
<div className="sidebar__status">
|
|
69
|
-
|
|
70
|
-
<
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
<p>
|
|
75
|
-
{formattedStatus} on: <span> {formattedPublished}</span>
|
|
76
|
-
</p>
|
|
59
|
+
{formattedStatus && (
|
|
60
|
+
<Badge type="status" modifiers={formattedStatus}>
|
|
61
|
+
{formattedStatus}
|
|
62
|
+
{formattedStatus === PUBLISHED && `: ${formattedPublished}`}
|
|
63
|
+
</Badge>
|
|
77
64
|
)}
|
|
78
|
-
|
|
79
65
|
<p>
|
|
80
66
|
Created: <span>{formattedCreated}</span>
|
|
81
67
|
</p>
|
|
@@ -18,7 +18,7 @@ const getPageName = (displayProperties = {}, entity = {}) => {
|
|
|
18
18
|
|
|
19
19
|
const createNewListItem = ({ listingData, result }) => [...listingData, result];
|
|
20
20
|
|
|
21
|
-
const updateListItems = ({ listingData, result, id }) => {
|
|
21
|
+
const updateListItems = ({ listingData, result, id } = {}) => {
|
|
22
22
|
if (!listingData || !result || !id)
|
|
23
23
|
throw new BlazeError('Expected object with: listingData, result, id');
|
|
24
24
|
return listingData.map(item => {
|
|
@@ -35,7 +35,7 @@ const updateListItems = ({ listingData, result, id }) => {
|
|
|
35
35
|
});
|
|
36
36
|
};
|
|
37
37
|
|
|
38
|
-
const deleteFromListItems = ({ listingData, id }) => {
|
|
38
|
+
const deleteFromListItems = ({ listingData, id } = {}) => {
|
|
39
39
|
if (!listingData || !id) throw new BlazeError('Expected object with: listingData, id');
|
|
40
40
|
return listingData.filter(({ id: itemId }) => itemId !== id);
|
|
41
41
|
};
|
|
@@ -12,8 +12,12 @@ function buildListingQuery(entitySchema) {
|
|
|
12
12
|
entitySchema.actions.getAll[0].toUpperCase() + entitySchema.actions.getAll.substr(1);
|
|
13
13
|
|
|
14
14
|
return gql`
|
|
15
|
-
query ${
|
|
16
|
-
|
|
15
|
+
query ${
|
|
16
|
+
entitySchema.actions.getAll
|
|
17
|
+
}($where: JSON, $limit: Int, $offset:Int, $sort: [${sortType}SortItem]) {
|
|
18
|
+
listingData: ${
|
|
19
|
+
entitySchema.actions.getAll
|
|
20
|
+
}(where: $where, limit: $limit, offset:$offset, sort:$sort){
|
|
17
21
|
id,
|
|
18
22
|
${entitySchema.listingProperties.join(',\n')}
|
|
19
23
|
}
|