Add InfoActionButtons to Various Dashboard Components
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Integrated InfoActionButtons into multiple components across the Finance and Inventory sections, enhancing user interaction and providing contextual actions for invoices, payment policies, payments, tax records, and various inventory items. - Updated the respective components to include the new buttons with appropriate object types and list mode settings, improving the overall functionality and user experience in the dashboard.
This commit is contained in:
parent
8adf2d7847
commit
eea7e1f724
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -48,6 +49,7 @@ const Invoices = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='invoice' />
|
<ExportListButton objectType='invoice' />
|
||||||
|
<InfoActionButtons type='invoice' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -48,6 +49,7 @@ const PaymentPolicies = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='paymentPolicy' />
|
<ExportListButton objectType='paymentPolicy' />
|
||||||
|
<InfoActionButtons type='paymentPolicy' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const Payments = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='payment' />
|
<ExportListButton objectType='payment' />
|
||||||
|
<InfoActionButtons type='payment' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const TaxRecords = () => {
|
|||||||
updateCollapseState={setColumnVisibility}
|
updateCollapseState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='taxRecord' />
|
<ExportListButton objectType='taxRecord' />
|
||||||
|
<InfoActionButtons type='taxRecord' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -56,6 +57,7 @@ const FilamentStocks = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='filamentStock' />
|
<ExportListButton objectType='filamentStock' />
|
||||||
|
<InfoActionButtons type='filamentStock' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const OrderItems = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='orderItem' />
|
<ExportListButton objectType='orderItem' />
|
||||||
|
<InfoActionButtons type='orderItem' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -56,6 +57,7 @@ const PartStocks = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='partStock' />
|
<ExportListButton objectType='partStock' />
|
||||||
|
<InfoActionButtons type='partStock' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -57,6 +58,7 @@ const ProductStocks = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='productStock' />
|
<ExportListButton objectType='productStock' />
|
||||||
|
<InfoActionButtons type='productStock' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const PurchaseOrders = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='purchaseOrder' />
|
<ExportListButton objectType='purchaseOrder' />
|
||||||
|
<InfoActionButtons type='purchaseOrder' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const Shipments = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='shipment' />
|
<ExportListButton objectType='shipment' />
|
||||||
|
<InfoActionButtons type='shipment' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -56,6 +57,7 @@ const StockAudits = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='stockAudit' />
|
<ExportListButton objectType='stockAudit' />
|
||||||
|
<InfoActionButtons type='stockAudit' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const StockEvents = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='stockEvent' />
|
<ExportListButton objectType='stockEvent' />
|
||||||
|
<InfoActionButtons type='stockEvent' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -54,6 +55,7 @@ const StockLocations = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='stockLocation' />
|
<ExportListButton objectType='stockLocation' />
|
||||||
|
<InfoActionButtons type='stockLocation' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -54,6 +55,7 @@ const StockTransfers = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='stockTransfer' />
|
<ExportListButton objectType='stockTransfer' />
|
||||||
|
<InfoActionButtons type='stockTransfer' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import SortSidebarButton from '../common/SortSidebarButton'
|
|||||||
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -51,6 +52,7 @@ const AppPasswords = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='appPassword' />
|
<ExportListButton objectType='appPassword' />
|
||||||
|
<InfoActionButtons type='appPassword' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import FilterSidebarButton from '../common/FilterSidebarButton'
|
|||||||
import SortSidebarButton from '../common/SortSidebarButton'
|
import SortSidebarButton from '../common/SortSidebarButton'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import ObjectTableViewButton from '../common/ObjectTableViewButton'
|
import ObjectTableViewButton from '../common/ObjectTableViewButton'
|
||||||
@ -49,6 +50,7 @@ const AuditLogs = () => {
|
|||||||
updateVisibleState={updateColumnVisibility}
|
updateVisibleState={updateColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='auditLog' />
|
<ExportListButton objectType='auditLog' />
|
||||||
|
<InfoActionButtons type='auditLog' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const CourierServices = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='courierService' />
|
<ExportListButton objectType='courierService' />
|
||||||
|
<InfoActionButtons type='courierService' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -51,6 +52,7 @@ const Couriers = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='courier' />
|
<ExportListButton objectType='courier' />
|
||||||
|
<InfoActionButtons type='courier' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const DocumentJobs = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='documentJob' />
|
<ExportListButton objectType='documentJob' />
|
||||||
|
<InfoActionButtons type='documentJob' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import { ApiServerContext } from '../../context/ApiServerContext'
|
|||||||
import { useCallback, useContext, useEffect, useRef, useState } from 'react'
|
import { useCallback, useContext, useEffect, useRef, useState } from 'react'
|
||||||
import { Modal } from 'antd'
|
import { Modal } from 'antd'
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
|
import { toTemplateObjectData } from '../../utils/templateObjectData'
|
||||||
|
|
||||||
const NewDocumentJob = ({ onOk, defaultValues = {} }) => {
|
const NewDocumentJob = ({ onOk, defaultValues = {} }) => {
|
||||||
const {
|
const {
|
||||||
@ -125,7 +126,7 @@ const NewDocumentJob = ({ onOk, defaultValues = {} }) => {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<TemplatePreview
|
<TemplatePreview
|
||||||
objectData={objectData?.object}
|
objectData={toTemplateObjectData(objectData?.objects)}
|
||||||
documentTemplate={objectData?.documentTemplate}
|
documentTemplate={objectData?.documentTemplate}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -158,7 +159,7 @@ const NewDocumentJob = ({ onOk, defaultValues = {} }) => {
|
|||||||
downloadTemplate(
|
downloadTemplate(
|
||||||
objectData.documentTemplate._id,
|
objectData.documentTemplate._id,
|
||||||
objectData.documentTemplate.content,
|
objectData.documentTemplate.content,
|
||||||
objectData.object,
|
toTemplateObjectData(objectData.objects),
|
||||||
fileName,
|
fileName,
|
||||||
'pdf',
|
'pdf',
|
||||||
() => {
|
() => {
|
||||||
@ -175,7 +176,7 @@ const NewDocumentJob = ({ onOk, defaultValues = {} }) => {
|
|||||||
downloadTemplate(
|
downloadTemplate(
|
||||||
objectData.documentTemplate._id,
|
objectData.documentTemplate._id,
|
||||||
objectData.documentTemplate.content,
|
objectData.documentTemplate.content,
|
||||||
objectData.object,
|
toTemplateObjectData(objectData.objects),
|
||||||
fileName,
|
fileName,
|
||||||
'png',
|
'png',
|
||||||
() => {
|
() => {
|
||||||
@ -192,7 +193,7 @@ const NewDocumentJob = ({ onOk, defaultValues = {} }) => {
|
|||||||
downloadTemplate(
|
downloadTemplate(
|
||||||
objectData.documentTemplate._id,
|
objectData.documentTemplate._id,
|
||||||
objectData.documentTemplate.content,
|
objectData.documentTemplate.content,
|
||||||
objectData.object,
|
toTemplateObjectData(objectData.objects),
|
||||||
fileName,
|
fileName,
|
||||||
'jpeg',
|
'jpeg',
|
||||||
() => {
|
() => {
|
||||||
@ -209,7 +210,7 @@ const NewDocumentJob = ({ onOk, defaultValues = {} }) => {
|
|||||||
downloadTemplate(
|
downloadTemplate(
|
||||||
objectData.documentTemplate._id,
|
objectData.documentTemplate._id,
|
||||||
objectData.documentTemplate.content,
|
objectData.documentTemplate.content,
|
||||||
objectData.object,
|
toTemplateObjectData(objectData.objects),
|
||||||
fileName,
|
fileName,
|
||||||
'svg',
|
'svg',
|
||||||
() => {
|
() => {
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const DocumentPrinters = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='documentPrinter' />
|
<ExportListButton objectType='documentPrinter' />
|
||||||
|
<InfoActionButtons type='documentPrinter' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -51,6 +52,7 @@ const DocumentSizes = () => {
|
|||||||
updateCollapseState={setColumnVisibility}
|
updateCollapseState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='documentSize' />
|
<ExportListButton objectType='documentSize' />
|
||||||
|
<InfoActionButtons type='documentSize' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const DocumentTemplates = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='documentTemplate' />
|
<ExportListButton objectType='documentTemplate' />
|
||||||
|
<InfoActionButtons type='documentTemplate' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -48,6 +49,7 @@ const EmailAccounts = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='emailAccount' />
|
<ExportListButton objectType='emailAccount' />
|
||||||
|
<InfoActionButtons type='emailAccount' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -48,6 +49,7 @@ const EmailMessages = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='emailMessage' />
|
<ExportListButton objectType='emailMessage' />
|
||||||
|
<InfoActionButtons type='emailMessage' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -14,7 +14,8 @@ import WizardView from '../../common/WizardView'
|
|||||||
import TemplatePreview from '../../common/TemplatePreview'
|
import TemplatePreview from '../../common/TemplatePreview'
|
||||||
import ProgressDisplay from '../../common/ProgressDisplay'
|
import ProgressDisplay from '../../common/ProgressDisplay'
|
||||||
import { ApiServerContext } from '../../context/ApiServerContext'
|
import { ApiServerContext } from '../../context/ApiServerContext'
|
||||||
import { resolveEmailRecipients } from '../../utils/emailRecipients'
|
import { resolveEmailRecipientsForObjects } from '../../utils/emailRecipients'
|
||||||
|
import { toTemplateObjectData } from '../../utils/templateObjectData'
|
||||||
|
|
||||||
const progressByState = {
|
const progressByState = {
|
||||||
queued: 10,
|
queued: 10,
|
||||||
@ -46,9 +47,13 @@ const EmailWizardContent = ({
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
let cancelled = false
|
let cancelled = false
|
||||||
resolveEmailRecipients({
|
resolveEmailRecipientsForObjects({
|
||||||
type: objectData?.objectType,
|
type: objectData?.objectType,
|
||||||
objectData: objectData?.object,
|
objects: Array.isArray(objectData?.objects)
|
||||||
|
? objectData.objects
|
||||||
|
: objectData?.object
|
||||||
|
? [objectData.object]
|
||||||
|
: [],
|
||||||
fetchObject
|
fetchObject
|
||||||
}).then((result) => {
|
}).then((result) => {
|
||||||
if (!cancelled) setCandidates(result)
|
if (!cancelled) setCandidates(result)
|
||||||
@ -60,6 +65,7 @@ const EmailWizardContent = ({
|
|||||||
defaultCandidates,
|
defaultCandidates,
|
||||||
fetchObject,
|
fetchObject,
|
||||||
objectData?.object,
|
objectData?.object,
|
||||||
|
objectData?.objects,
|
||||||
objectData?.objectType
|
objectData?.objectType
|
||||||
])
|
])
|
||||||
|
|
||||||
@ -110,7 +116,7 @@ const EmailWizardContent = ({
|
|||||||
visibleProperties={{
|
visibleProperties={{
|
||||||
name: true,
|
name: true,
|
||||||
objectType: true,
|
objectType: true,
|
||||||
object: true,
|
objects: true,
|
||||||
emailTemplate: true,
|
emailTemplate: true,
|
||||||
emailAccount: true,
|
emailAccount: true,
|
||||||
recipientEmail: true,
|
recipientEmail: true,
|
||||||
@ -142,7 +148,7 @@ const EmailWizardContent = ({
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<TemplatePreview
|
<TemplatePreview
|
||||||
objectData={objectData?.object}
|
objectData={toTemplateObjectData(objectData?.objects)}
|
||||||
template={objectData?.emailTemplate}
|
template={objectData?.emailTemplate}
|
||||||
templateType='emailTemplate'
|
templateType='emailTemplate'
|
||||||
capabilities={{
|
capabilities={{
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -48,6 +49,7 @@ const EmailTemplates = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='emailTemplate' />
|
<ExportListButton objectType='emailTemplate' />
|
||||||
|
<InfoActionButtons type='emailTemplate' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -54,6 +55,7 @@ const FilamentSkus = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='filamentSku' />
|
<ExportListButton objectType='filamentSku' />
|
||||||
|
<InfoActionButtons type='filamentSku' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import ObjectTableViewButton from '../common/ObjectTableViewButton'
|
|||||||
import FilterSidebarButton from '../common/FilterSidebarButton'
|
import FilterSidebarButton from '../common/FilterSidebarButton'
|
||||||
import SortSidebarButton from '../common/SortSidebarButton'
|
import SortSidebarButton from '../common/SortSidebarButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -58,6 +59,7 @@ const Filaments = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='filament' />
|
<ExportListButton objectType='filament' />
|
||||||
|
<InfoActionButtons type='filament' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -50,6 +51,7 @@ const Files = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='file' />
|
<ExportListButton objectType='file' />
|
||||||
|
<InfoActionButtons type='file' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import { Flex, Space } from 'antd'
|
|||||||
import useColumnVisibility from '../hooks/useColumnVisibility'
|
import useColumnVisibility from '../hooks/useColumnVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -57,6 +58,7 @@ const Hosts = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='host' />
|
<ExportListButton objectType='host' />
|
||||||
|
<InfoActionButtons type='host' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import SortSidebarButton from '../common/SortSidebarButton'
|
|||||||
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -54,6 +55,7 @@ const Materials = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='material' />
|
<ExportListButton objectType='material' />
|
||||||
|
<InfoActionButtons type='material' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const NoteTypes = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='noteType' />
|
<ExportListButton objectType='noteType' />
|
||||||
|
<InfoActionButtons type='noteType' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -53,6 +54,7 @@ const PartSkus = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='partSku' />
|
<ExportListButton objectType='partSku' />
|
||||||
|
<InfoActionButtons type='partSku' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
|||||||
|
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -57,6 +58,7 @@ const Parts = (filter) => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='part' />
|
<ExportListButton objectType='part' />
|
||||||
|
<InfoActionButtons type='part' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const PermissionSettingsList = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='permissionSetting' />
|
<ExportListButton objectType='permissionSetting' />
|
||||||
|
<InfoActionButtons type='permissionSetting' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import SortSidebarButton from '../common/SortSidebarButton'
|
|||||||
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -54,6 +55,7 @@ const ProductCategories = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='productCategory' />
|
<ExportListButton objectType='productCategory' />
|
||||||
|
<InfoActionButtons type='productCategory' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -54,6 +55,7 @@ const ProductSkus = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='productSku' />
|
<ExportListButton objectType='productSku' />
|
||||||
|
<InfoActionButtons type='productSku' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -29,6 +29,7 @@ import SortSidebarButton from '../common/SortSidebarButton'
|
|||||||
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -320,6 +321,7 @@ const Products = () => {
|
|||||||
onReload={() => tableRef.current?.reload()}
|
onReload={() => tableRef.current?.reload()}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='product' />
|
<ExportListButton objectType='product' />
|
||||||
|
<InfoActionButtons type='product' listMode={true} />
|
||||||
<Popover
|
<Popover
|
||||||
content={getViewDropdownItems()}
|
content={getViewDropdownItems()}
|
||||||
placement='bottomLeft'
|
placement='bottomLeft'
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -51,6 +52,7 @@ const StockAuditLevels = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='stockAuditLevel' />
|
<ExportListButton objectType='stockAuditLevel' />
|
||||||
|
<InfoActionButtons type='stockAuditLevel' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -51,6 +52,7 @@ const TaxRates = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='taxRate' />
|
<ExportListButton objectType='taxRate' />
|
||||||
|
<InfoActionButtons type='taxRate' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -51,6 +52,7 @@ const UserGroups = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='userGroup' />
|
<ExportListButton objectType='userGroup' />
|
||||||
|
<InfoActionButtons type='userGroup' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -51,6 +52,7 @@ const Users = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='user' />
|
<ExportListButton objectType='user' />
|
||||||
|
<InfoActionButtons type='user' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -50,6 +51,7 @@ const Vendors = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='vendor' />
|
<ExportListButton objectType='vendor' />
|
||||||
|
<InfoActionButtons type='vendor' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import { useRef } from 'react'
|
|||||||
import { Flex, Space } from 'antd'
|
import { Flex, Space } from 'antd'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -49,6 +50,7 @@ const FilamentProfiles = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='filamentProfile' />
|
<ExportListButton objectType='filamentProfile' />
|
||||||
|
<InfoActionButtons type='filamentProfile' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
|||||||
|
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -55,6 +56,7 @@ const GCodeFiles = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='gcodeFile' />
|
<ExportListButton objectType='gcodeFile' />
|
||||||
|
<InfoActionButtons type='gcodeFile' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import ColumnViewButton from '../common/ColumnViewButton.jsx'
|
|||||||
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility.jsx'
|
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility.jsx'
|
||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ExportListButton from '../common/ExportListButton.jsx'
|
import ExportListButton from '../common/ExportListButton.jsx'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -53,6 +54,7 @@ const Jobs = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='job' />
|
<ExportListButton objectType='job' />
|
||||||
|
<InfoActionButtons type='job' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import { useRef } from 'react'
|
|||||||
import { Flex, Space } from 'antd'
|
import { Flex, Space } from 'antd'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -48,6 +49,7 @@ const PrinterProfiles = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='printerProfile' />
|
<ExportListButton objectType='printerProfile' />
|
||||||
|
<InfoActionButtons type='printerProfile' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import ObjectActions from '../common/ObjectActions'
|
|||||||
import BulkObjectActions from '../common/BulkObjectActions'
|
import BulkObjectActions from '../common/BulkObjectActions'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -58,6 +59,7 @@ const Printers = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='printer' />
|
<ExportListButton objectType='printer' />
|
||||||
|
<InfoActionButtons type='printer' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import ColumnViewButton from '../common/ColumnViewButton.jsx'
|
|||||||
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility.jsx'
|
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility.jsx'
|
||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ExportListButton from '../common/ExportListButton.jsx'
|
import ExportListButton from '../common/ExportListButton.jsx'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -53,6 +54,7 @@ const SubJobs = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='subJob' />
|
<ExportListButton objectType='subJob' />
|
||||||
|
<InfoActionButtons type='subJob' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -51,6 +52,7 @@ const Clients = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='client' />
|
<ExportListButton objectType='client' />
|
||||||
|
<InfoActionButtons type='client' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -48,6 +49,7 @@ const FulfillmentPolicies = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='fulfillmentPolicy' />
|
<ExportListButton objectType='fulfillmentPolicy' />
|
||||||
|
<InfoActionButtons type='fulfillmentPolicy' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const ListingVarients = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='listingVarient' />
|
<ExportListButton objectType='listingVarient' />
|
||||||
|
<InfoActionButtons type='listingVarient' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const Listings = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='listing' />
|
<ExportListButton objectType='listing' />
|
||||||
|
<InfoActionButtons type='listing' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const Marketplaces = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='marketplace' />
|
<ExportListButton objectType='marketplace' />
|
||||||
|
<InfoActionButtons type='marketplace' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -47,6 +48,7 @@ const ReturnPolicies = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='returnPolicy' />
|
<ExportListButton objectType='returnPolicy' />
|
||||||
|
<InfoActionButtons type='returnPolicy' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|||||||
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
||||||
import ColumnViewButton from '../common/ColumnViewButton'
|
import ColumnViewButton from '../common/ColumnViewButton'
|
||||||
import ExportListButton from '../common/ExportListButton'
|
import ExportListButton from '../common/ExportListButton'
|
||||||
|
import InfoActionButtons from '../common/InfoActionButtons'
|
||||||
import ListViewTabs from '../common/ListViewTabs'
|
import ListViewTabs from '../common/ListViewTabs'
|
||||||
import ListViewEditButtons from '../common/ListViewEditButtons'
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
||||||
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
||||||
@ -52,6 +53,7 @@ const SalesOrders = () => {
|
|||||||
updateVisibleState={setColumnVisibility}
|
updateVisibleState={setColumnVisibility}
|
||||||
/>
|
/>
|
||||||
<ExportListButton objectType='salesOrder' />
|
<ExportListButton objectType='salesOrder' />
|
||||||
|
<InfoActionButtons type='salesOrder' listMode={true} />
|
||||||
</Space>
|
</Space>
|
||||||
<ListViewTabs />
|
<ListViewTabs />
|
||||||
<Space>
|
<Space>
|
||||||
|
|||||||
@ -7,33 +7,39 @@ import {
|
|||||||
useMemo,
|
useMemo,
|
||||||
useRef
|
useRef
|
||||||
} from 'react'
|
} from 'react'
|
||||||
// import { getModelByName } from '../../../database/ObjectModels'
|
|
||||||
import DocumentPrinterIcon from '../../Icons/DocumentPrinterIcon'
|
import DocumentPrinterIcon from '../../Icons/DocumentPrinterIcon'
|
||||||
import { Button, Dropdown, Modal } from 'antd'
|
import { Button, Dropdown, Modal, message } from 'antd'
|
||||||
import { ApiServerContext } from '../context/ApiServerContext'
|
import { ApiServerContext } from '../context/ApiServerContext'
|
||||||
|
import { TableStateContext } from '../context/TableStateContext'
|
||||||
import DocumentTemplateIcon from '../../Icons/DocumentTemplateIcon'
|
import DocumentTemplateIcon from '../../Icons/DocumentTemplateIcon'
|
||||||
import NewDocumentJob from '../Management/DocumentJobs/NewDocumentJob'
|
import NewDocumentJob from '../Management/DocumentJobs/NewDocumentJob'
|
||||||
import { AuthContext } from '../context/AuthContext'
|
import { AuthContext } from '../context/AuthContext'
|
||||||
|
import LoadingPleaseWaitModal from './LoadingPleaseWaitModal'
|
||||||
|
import { fetchAllObjectPages } from '../utils/fetchAllObjectPages'
|
||||||
|
import { resolveObjectsList } from '../utils/templateObjectData'
|
||||||
|
|
||||||
const DocumentPrintButton = ({
|
const DocumentPrintButton = ({
|
||||||
type,
|
type,
|
||||||
objectData,
|
objectData,
|
||||||
|
objects,
|
||||||
|
listMode = false,
|
||||||
disabled = false,
|
disabled = false,
|
||||||
...buttonProps
|
...buttonProps
|
||||||
}) => {
|
}) => {
|
||||||
const {
|
const { fetchObjects, connected, subscribeToObjectUpdates, subscribeToObjectTypeUpdates } =
|
||||||
fetchObjects,
|
useContext(ApiServerContext)
|
||||||
connected,
|
const tableState = useContext(TableStateContext)
|
||||||
subscribeToObjectUpdates,
|
|
||||||
subscribeToObjectTypeUpdates
|
|
||||||
} = useContext(ApiServerContext)
|
|
||||||
const fetchObjectsRef = useRef(fetchObjects)
|
const fetchObjectsRef = useRef(fetchObjects)
|
||||||
fetchObjectsRef.current = fetchObjects
|
fetchObjectsRef.current = fetchObjects
|
||||||
|
|
||||||
const [documentTemplates, setDocumentTemplates] = useState([])
|
const [documentTemplates, setDocumentTemplates] = useState([])
|
||||||
const [currentDocumentTemplate, setCurrentDocumentTemplate] = useState(null)
|
const [currentDocumentTemplate, setCurrentDocumentTemplate] = useState(null)
|
||||||
const [loading, setLoading] = useState(false)
|
const [loading, setLoading] = useState(false)
|
||||||
|
const [listLoading, setListLoading] = useState(false)
|
||||||
const [newDocumentJobOpen, setNewDocumentJobOpen] = useState(false)
|
const [newDocumentJobOpen, setNewDocumentJobOpen] = useState(false)
|
||||||
|
const [selectedObjects, setSelectedObjects] = useState(() =>
|
||||||
|
resolveObjectsList(objects, objectData)
|
||||||
|
)
|
||||||
|
|
||||||
const subscribedIdsRef = useRef([])
|
const subscribedIdsRef = useRef([])
|
||||||
const unsubscribesRef = useRef([])
|
const unsubscribesRef = useRef([])
|
||||||
@ -42,6 +48,11 @@ const DocumentPrintButton = ({
|
|||||||
|
|
||||||
const { token } = useContext(AuthContext)
|
const { token } = useContext(AuthContext)
|
||||||
|
|
||||||
|
const resolvedObjects = useMemo(
|
||||||
|
() => resolveObjectsList(objects, objectData),
|
||||||
|
[objects, objectData]
|
||||||
|
)
|
||||||
|
|
||||||
const subscriptionFilter = useMemo(
|
const subscriptionFilter = useMemo(
|
||||||
() => ({
|
() => ({
|
||||||
objectType: type,
|
objectType: type,
|
||||||
@ -69,7 +80,7 @@ const DocumentPrintButton = ({
|
|||||||
try {
|
try {
|
||||||
const result = await fetchObjectsRef.current('documentTemplate', {
|
const result = await fetchObjectsRef.current('documentTemplate', {
|
||||||
filter: subscriptionFilter,
|
filter: subscriptionFilter,
|
||||||
limit: 100 // Get more templates to show in dropdown
|
limit: 100
|
||||||
})
|
})
|
||||||
|
|
||||||
if (result && result.data) {
|
if (result && result.data) {
|
||||||
@ -89,13 +100,13 @@ const DocumentPrintButton = ({
|
|||||||
const loadDocumentTemplatesRef = useRef(loadDocumentTemplates)
|
const loadDocumentTemplatesRef = useRef(loadDocumentTemplates)
|
||||||
loadDocumentTemplatesRef.current = loadDocumentTemplates
|
loadDocumentTemplatesRef.current = loadDocumentTemplates
|
||||||
|
|
||||||
// Stable key from objectData._id (excludes _isEditing so toggling edit mode doesn't trigger template reload)
|
|
||||||
const objectKey = useMemo(() => {
|
const objectKey = useMemo(() => {
|
||||||
if (!objectData) return null
|
if (listMode) return 'list'
|
||||||
return objectData._id ?? objectData.id ?? null
|
const first = resolvedObjects[0]
|
||||||
}, [objectData])
|
if (!first) return null
|
||||||
|
return first._id ?? first.id ?? null
|
||||||
|
}, [listMode, resolvedObjects])
|
||||||
|
|
||||||
// Fetch document templates when component mounts or objectData, type or token changes
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
loadDocumentTemplates()
|
loadDocumentTemplates()
|
||||||
}, [objectKey, token, type, loadDocumentTemplates])
|
}, [objectKey, token, type, loadDocumentTemplates])
|
||||||
@ -147,7 +158,9 @@ const DocumentPrintButton = ({
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (connected !== true) return
|
if (connected !== true) return
|
||||||
|
|
||||||
const templateIds = documentTemplates.map((template) => template._id).filter(Boolean)
|
const templateIds = documentTemplates
|
||||||
|
.map((template) => template._id)
|
||||||
|
.filter(Boolean)
|
||||||
|
|
||||||
const newTemplateIds = templateIds.filter(
|
const newTemplateIds = templateIds.filter(
|
||||||
(id) => !subscribedIdsRef.current.includes(id)
|
(id) => !subscribedIdsRef.current.includes(id)
|
||||||
@ -197,15 +210,40 @@ const DocumentPrintButton = ({
|
|||||||
}
|
}
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
// Handle template selection
|
const handleTemplateSelect = useCallback(
|
||||||
const handleTemplateSelect = (template) => {
|
async (template) => {
|
||||||
setCurrentDocumentTemplate(template)
|
setCurrentDocumentTemplate(template)
|
||||||
|
|
||||||
|
if (listMode) {
|
||||||
|
setListLoading(true)
|
||||||
|
try {
|
||||||
|
const list = await fetchAllObjectPages({
|
||||||
|
fetchObjects: fetchObjectsRef.current,
|
||||||
|
type,
|
||||||
|
filter: tableState?.getObjectListFilter?.(type) || {},
|
||||||
|
sorter: tableState?.getObjectListSorter?.(type) || {}
|
||||||
|
})
|
||||||
|
if (!list.length) {
|
||||||
|
message.warning('No objects in this list to print')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
setSelectedObjects(list)
|
||||||
setNewDocumentJobOpen(true)
|
setNewDocumentJobOpen(true)
|
||||||
// TODO: Implement the actual printing logic here
|
} catch (error) {
|
||||||
// This could open a print dialog, navigate to a print page, etc.
|
console.error('Error fetching objects for document job:', error)
|
||||||
|
message.error('Failed to load objects for printing')
|
||||||
|
} finally {
|
||||||
|
setListLoading(false)
|
||||||
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Group templates by tag for nested dropdown menu; untagged templates at root
|
setSelectedObjects(resolvedObjects)
|
||||||
|
setNewDocumentJobOpen(true)
|
||||||
|
},
|
||||||
|
[listMode, resolvedObjects, tableState, type]
|
||||||
|
)
|
||||||
|
|
||||||
const menuItems = useMemo(() => {
|
const menuItems = useMemo(() => {
|
||||||
const templatesByTag = new Map()
|
const templatesByTag = new Map()
|
||||||
const untaggedTemplates = []
|
const untaggedTemplates = []
|
||||||
@ -228,9 +266,9 @@ const DocumentPrintButton = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (const tag of templateTags) {
|
for (const tag of templateTags) {
|
||||||
const templates = templatesByTag.get(tag) ?? []
|
const tagged = templatesByTag.get(tag) ?? []
|
||||||
templates.push(template)
|
tagged.push(template)
|
||||||
templatesByTag.set(tag, templates)
|
templatesByTag.set(tag, tagged)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,9 +290,14 @@ const DocumentPrintButton = ({
|
|||||||
.map(toTemplateMenuItem)
|
.map(toTemplateMenuItem)
|
||||||
|
|
||||||
return [...rootUntaggedItems, ...taggedMenuItems]
|
return [...rootUntaggedItems, ...taggedMenuItems]
|
||||||
}, [documentTemplates])
|
}, [documentTemplates, handleTemplateSelect])
|
||||||
|
|
||||||
|
const unavailable =
|
||||||
|
disabled ||
|
||||||
|
loading ||
|
||||||
|
listLoading ||
|
||||||
|
(!listMode && resolvedObjects.length === 0)
|
||||||
|
|
||||||
// If no templates available, show disabled state
|
|
||||||
if (documentTemplates.length === 0 && !loading) {
|
if (documentTemplates.length === 0 && !loading) {
|
||||||
return (
|
return (
|
||||||
<Button
|
<Button
|
||||||
@ -274,16 +317,17 @@ const DocumentPrintButton = ({
|
|||||||
loading: loading
|
loading: loading
|
||||||
}}
|
}}
|
||||||
trigger={['hover']}
|
trigger={['hover']}
|
||||||
disabled={disabled || loading}
|
disabled={unavailable}
|
||||||
>
|
>
|
||||||
<Button
|
<Button
|
||||||
{...buttonProps}
|
{...buttonProps}
|
||||||
icon={<DocumentPrinterIcon />}
|
icon={<DocumentPrinterIcon />}
|
||||||
disabled={disabled || loading}
|
disabled={unavailable}
|
||||||
loading={loading}
|
loading={loading || listLoading}
|
||||||
title={loading ? 'Loading templates...' : 'Print document'}
|
title={loading ? 'Loading templates...' : 'Print document'}
|
||||||
/>
|
/>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
|
<LoadingPleaseWaitModal open={listLoading} />
|
||||||
<Modal
|
<Modal
|
||||||
open={newDocumentJobOpen}
|
open={newDocumentJobOpen}
|
||||||
onCancel={() => setNewDocumentJobOpen(false)}
|
onCancel={() => setNewDocumentJobOpen(false)}
|
||||||
@ -305,7 +349,7 @@ const DocumentPrintButton = ({
|
|||||||
reset={!newDocumentJobOpen}
|
reset={!newDocumentJobOpen}
|
||||||
defaultValues={{
|
defaultValues={{
|
||||||
objectType: type,
|
objectType: type,
|
||||||
object: objectData,
|
objects: selectedObjects,
|
||||||
documentTemplate: currentDocumentTemplate
|
documentTemplate: currentDocumentTemplate
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
@ -317,7 +361,9 @@ const DocumentPrintButton = ({
|
|||||||
DocumentPrintButton.propTypes = {
|
DocumentPrintButton.propTypes = {
|
||||||
type: PropTypes.string.isRequired,
|
type: PropTypes.string.isRequired,
|
||||||
disabled: PropTypes.bool,
|
disabled: PropTypes.bool,
|
||||||
objectData: PropTypes.object.isRequired
|
objectData: PropTypes.object,
|
||||||
|
objects: PropTypes.array,
|
||||||
|
listMode: PropTypes.bool
|
||||||
}
|
}
|
||||||
|
|
||||||
export default DocumentPrintButton
|
export default DocumentPrintButton
|
||||||
|
|||||||
@ -7,18 +7,30 @@ import {
|
|||||||
useRef,
|
useRef,
|
||||||
useState
|
useState
|
||||||
} from 'react'
|
} from 'react'
|
||||||
import { Button, Dropdown, Modal } from 'antd'
|
import { Button, Dropdown, Modal, message } from 'antd'
|
||||||
import { ApiServerContext } from '../context/ApiServerContext'
|
import { ApiServerContext } from '../context/ApiServerContext'
|
||||||
import { AuthContext } from '../context/AuthContext'
|
import { AuthContext } from '../context/AuthContext'
|
||||||
|
import { TableStateContext } from '../context/TableStateContext'
|
||||||
import MailIcon from '../../Icons/MailIcon'
|
import MailIcon from '../../Icons/MailIcon'
|
||||||
import EmailTemplateIcon from '../../Icons/EmailTemplateIcon'
|
import EmailTemplateIcon from '../../Icons/EmailTemplateIcon'
|
||||||
import NewEmailMessage from '../Management/EmailMessages/NewEmailMessage'
|
import NewEmailMessage from '../Management/EmailMessages/NewEmailMessage'
|
||||||
import {
|
import {
|
||||||
getDefaultEmailRecipient,
|
getDefaultEmailRecipient,
|
||||||
resolveEmailRecipients
|
resolveEmailRecipients,
|
||||||
|
resolveEmailRecipientsForObjects
|
||||||
} from '../utils/emailRecipients'
|
} from '../utils/emailRecipients'
|
||||||
|
import LoadingPleaseWaitModal from './LoadingPleaseWaitModal'
|
||||||
|
import { fetchAllObjectPages } from '../utils/fetchAllObjectPages'
|
||||||
|
import { resolveObjectsList } from '../utils/templateObjectData'
|
||||||
|
|
||||||
const EmailSendButton = ({ type, objectData, disabled = false, ...buttonProps }) => {
|
const EmailSendButton = ({
|
||||||
|
type,
|
||||||
|
objectData,
|
||||||
|
objects,
|
||||||
|
listMode = false,
|
||||||
|
disabled = false,
|
||||||
|
...buttonProps
|
||||||
|
}) => {
|
||||||
const {
|
const {
|
||||||
fetchObject,
|
fetchObject,
|
||||||
fetchObjects,
|
fetchObjects,
|
||||||
@ -27,16 +39,26 @@ const EmailSendButton = ({ type, objectData, disabled = false, ...buttonProps })
|
|||||||
subscribeToObjectTypeUpdates
|
subscribeToObjectTypeUpdates
|
||||||
} = useContext(ApiServerContext)
|
} = useContext(ApiServerContext)
|
||||||
const { token } = useContext(AuthContext)
|
const { token } = useContext(AuthContext)
|
||||||
|
const tableState = useContext(TableStateContext)
|
||||||
const [templates, setTemplates] = useState([])
|
const [templates, setTemplates] = useState([])
|
||||||
const [recipients, setRecipients] = useState([])
|
const [recipients, setRecipients] = useState([])
|
||||||
const [selectedTemplate, setSelectedTemplate] = useState(null)
|
const [selectedTemplate, setSelectedTemplate] = useState(null)
|
||||||
|
const [selectedObjects, setSelectedObjects] = useState(() =>
|
||||||
|
resolveObjectsList(objects, objectData)
|
||||||
|
)
|
||||||
const [open, setOpen] = useState(false)
|
const [open, setOpen] = useState(false)
|
||||||
const [loading, setLoading] = useState(false)
|
const [loading, setLoading] = useState(false)
|
||||||
|
const [listLoading, setListLoading] = useState(false)
|
||||||
const fetchObjectsRef = useRef(fetchObjects)
|
const fetchObjectsRef = useRef(fetchObjects)
|
||||||
const fetchObjectRef = useRef(fetchObject)
|
const fetchObjectRef = useRef(fetchObject)
|
||||||
fetchObjectsRef.current = fetchObjects
|
fetchObjectsRef.current = fetchObjects
|
||||||
fetchObjectRef.current = fetchObject
|
fetchObjectRef.current = fetchObject
|
||||||
|
|
||||||
|
const resolvedObjects = useMemo(
|
||||||
|
() => resolveObjectsList(objects, objectData),
|
||||||
|
[objects, objectData]
|
||||||
|
)
|
||||||
|
|
||||||
const filter = useMemo(
|
const filter = useMemo(
|
||||||
() => ({ objectType: type, global: false, active: true }),
|
() => ({ objectType: type, global: false, active: true }),
|
||||||
[type]
|
[type]
|
||||||
@ -71,11 +93,15 @@ const EmailSendButton = ({ type, objectData, disabled = false, ...buttonProps })
|
|||||||
}, [loadTemplates])
|
}, [loadTemplates])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (listMode) {
|
||||||
|
setRecipients([])
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
let cancelled = false
|
let cancelled = false
|
||||||
setRecipients([])
|
setRecipients([])
|
||||||
resolveEmailRecipients({
|
resolveEmailRecipients({
|
||||||
type,
|
type,
|
||||||
objectData,
|
objectData: resolvedObjects[0],
|
||||||
fetchObject: (...args) => fetchObjectRef.current(...args)
|
fetchObject: (...args) => fetchObjectRef.current(...args)
|
||||||
}).then((result) => {
|
}).then((result) => {
|
||||||
if (!cancelled) setRecipients(result)
|
if (!cancelled) setRecipients(result)
|
||||||
@ -83,19 +109,14 @@ const EmailSendButton = ({ type, objectData, disabled = false, ...buttonProps })
|
|||||||
return () => {
|
return () => {
|
||||||
cancelled = true
|
cancelled = true
|
||||||
}
|
}
|
||||||
}, [objectData, type])
|
}, [listMode, resolvedObjects, type])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!connected) return undefined
|
if (!connected) return undefined
|
||||||
return subscribeToObjectTypeUpdates('emailTemplate', filter, () =>
|
return subscribeToObjectTypeUpdates('emailTemplate', filter, () =>
|
||||||
loadTemplates(true)
|
loadTemplates(true)
|
||||||
)
|
)
|
||||||
}, [
|
}, [connected, filter, loadTemplates, subscribeToObjectTypeUpdates])
|
||||||
connected,
|
|
||||||
filter,
|
|
||||||
loadTemplates,
|
|
||||||
subscribeToObjectTypeUpdates
|
|
||||||
])
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!connected) return undefined
|
if (!connected) return undefined
|
||||||
@ -121,6 +142,50 @@ const EmailSendButton = ({ type, objectData, disabled = false, ...buttonProps })
|
|||||||
return () => unsubscribes.forEach((unsubscribe) => unsubscribe?.())
|
return () => unsubscribes.forEach((unsubscribe) => unsubscribe?.())
|
||||||
}, [connected, matches, subscribeToObjectUpdates, templates])
|
}, [connected, matches, subscribeToObjectUpdates, templates])
|
||||||
|
|
||||||
|
const handleTemplateSelect = useCallback(
|
||||||
|
async (template) => {
|
||||||
|
setSelectedTemplate(template)
|
||||||
|
|
||||||
|
if (listMode) {
|
||||||
|
setListLoading(true)
|
||||||
|
try {
|
||||||
|
const list = await fetchAllObjectPages({
|
||||||
|
fetchObjects: fetchObjectsRef.current,
|
||||||
|
type,
|
||||||
|
filter: tableState?.getObjectListFilter?.(type) || {},
|
||||||
|
sorter: tableState?.getObjectListSorter?.(type) || {}
|
||||||
|
})
|
||||||
|
if (!list.length) {
|
||||||
|
message.warning('No objects in this list to email')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const nextRecipients = await resolveEmailRecipientsForObjects({
|
||||||
|
type,
|
||||||
|
objects: list,
|
||||||
|
fetchObject: (...args) => fetchObjectRef.current(...args)
|
||||||
|
})
|
||||||
|
if (!nextRecipients.length) {
|
||||||
|
message.warning('No email recipients available for these objects')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
setSelectedObjects(list)
|
||||||
|
setRecipients(nextRecipients)
|
||||||
|
setOpen(true)
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error fetching objects for email:', error)
|
||||||
|
message.error('Failed to load objects for email')
|
||||||
|
} finally {
|
||||||
|
setListLoading(false)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
setSelectedObjects(resolvedObjects)
|
||||||
|
setOpen(true)
|
||||||
|
},
|
||||||
|
[listMode, resolvedObjects, tableState, type]
|
||||||
|
)
|
||||||
|
|
||||||
const menuItems = useMemo(() => {
|
const menuItems = useMemo(() => {
|
||||||
const byTag = new Map()
|
const byTag = new Map()
|
||||||
const untagged = []
|
const untagged = []
|
||||||
@ -129,8 +194,7 @@ const EmailSendButton = ({ type, objectData, disabled = false, ...buttonProps })
|
|||||||
label: template.name,
|
label: template.name,
|
||||||
icon: <EmailTemplateIcon />,
|
icon: <EmailTemplateIcon />,
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
setSelectedTemplate(template)
|
handleTemplateSelect(template)
|
||||||
setOpen(true)
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -159,15 +223,24 @@ const EmailSendButton = ({ type, objectData, disabled = false, ...buttonProps })
|
|||||||
.map(makeItem)
|
.map(makeItem)
|
||||||
}))
|
}))
|
||||||
]
|
]
|
||||||
}, [templates])
|
}, [handleTemplateSelect, templates])
|
||||||
|
|
||||||
const defaultRecipient = useMemo(
|
const defaultRecipient = useMemo(
|
||||||
() => getDefaultEmailRecipient(recipients),
|
() => getDefaultEmailRecipient(recipients),
|
||||||
[recipients]
|
[recipients]
|
||||||
)
|
)
|
||||||
|
|
||||||
const unavailable = disabled || loading || !templates.length || !recipients.length
|
const unavailable =
|
||||||
const title = !recipients.length
|
disabled ||
|
||||||
|
loading ||
|
||||||
|
listLoading ||
|
||||||
|
!templates.length ||
|
||||||
|
(!listMode && (!resolvedObjects.length || !recipients.length))
|
||||||
|
const title = listMode
|
||||||
|
? !templates.length
|
||||||
|
? 'No email templates available for this object type'
|
||||||
|
: 'Send email'
|
||||||
|
: !recipients.length
|
||||||
? 'No email recipients available for this object'
|
? 'No email recipients available for this object'
|
||||||
: !templates.length
|
: !templates.length
|
||||||
? 'No email templates available for this object type'
|
? 'No email templates available for this object type'
|
||||||
@ -180,10 +253,11 @@ const EmailSendButton = ({ type, objectData, disabled = false, ...buttonProps })
|
|||||||
{...buttonProps}
|
{...buttonProps}
|
||||||
icon={<MailIcon />}
|
icon={<MailIcon />}
|
||||||
disabled={unavailable}
|
disabled={unavailable}
|
||||||
loading={loading}
|
loading={loading || listLoading}
|
||||||
title={title}
|
title={title}
|
||||||
/>
|
/>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
|
<LoadingPleaseWaitModal open={listLoading} />
|
||||||
<Modal
|
<Modal
|
||||||
open={open}
|
open={open}
|
||||||
onCancel={() => setOpen(false)}
|
onCancel={() => setOpen(false)}
|
||||||
@ -195,7 +269,7 @@ const EmailSendButton = ({ type, objectData, disabled = false, ...buttonProps })
|
|||||||
onOk={() => setOpen(false)}
|
onOk={() => setOpen(false)}
|
||||||
defaultValues={{
|
defaultValues={{
|
||||||
objectType: type,
|
objectType: type,
|
||||||
object: objectData,
|
objects: selectedObjects,
|
||||||
emailTemplate: selectedTemplate,
|
emailTemplate: selectedTemplate,
|
||||||
...defaultRecipient
|
...defaultRecipient
|
||||||
}}
|
}}
|
||||||
@ -208,7 +282,9 @@ const EmailSendButton = ({ type, objectData, disabled = false, ...buttonProps })
|
|||||||
|
|
||||||
EmailSendButton.propTypes = {
|
EmailSendButton.propTypes = {
|
||||||
type: PropTypes.string.isRequired,
|
type: PropTypes.string.isRequired,
|
||||||
objectData: PropTypes.object.isRequired,
|
objectData: PropTypes.object,
|
||||||
|
objects: PropTypes.array,
|
||||||
|
listMode: PropTypes.bool,
|
||||||
disabled: PropTypes.bool
|
disabled: PropTypes.bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -25,7 +25,9 @@ const InfoActionButtons = (props) => {
|
|||||||
InfoActionButtons.propTypes = {
|
InfoActionButtons.propTypes = {
|
||||||
type: PropTypes.string.isRequired,
|
type: PropTypes.string.isRequired,
|
||||||
disabled: PropTypes.bool,
|
disabled: PropTypes.bool,
|
||||||
objectData: PropTypes.object.isRequired
|
objectData: PropTypes.object,
|
||||||
|
objects: PropTypes.array,
|
||||||
|
listMode: PropTypes.bool
|
||||||
}
|
}
|
||||||
|
|
||||||
export default InfoActionButtons
|
export default InfoActionButtons
|
||||||
|
|||||||
30
src/components/Dashboard/common/LoadingPleaseWaitModal.jsx
Normal file
30
src/components/Dashboard/common/LoadingPleaseWaitModal.jsx
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
import PropTypes from 'prop-types'
|
||||||
|
import { Modal, Space, Typography } from 'antd'
|
||||||
|
import { LoadingOutlined } from '@ant-design/icons'
|
||||||
|
|
||||||
|
const { Text } = Typography
|
||||||
|
|
||||||
|
const LoadingPleaseWaitModal = ({ open = false }) => (
|
||||||
|
<Modal
|
||||||
|
open={open}
|
||||||
|
className='loading-modal'
|
||||||
|
title={false}
|
||||||
|
height={20}
|
||||||
|
style={{ maxWidth: 220, top: '50%', transform: 'translateY(-50%)' }}
|
||||||
|
closable={false}
|
||||||
|
maskClosable={false}
|
||||||
|
footer={false}
|
||||||
|
zIndex={2000}
|
||||||
|
>
|
||||||
|
<Space size={'middle'}>
|
||||||
|
<LoadingOutlined />
|
||||||
|
<Text style={{ margin: 0 }}>Loading, please wait...</Text>
|
||||||
|
</Space>
|
||||||
|
</Modal>
|
||||||
|
)
|
||||||
|
|
||||||
|
LoadingPleaseWaitModal.propTypes = {
|
||||||
|
open: PropTypes.bool
|
||||||
|
}
|
||||||
|
|
||||||
|
export default LoadingPleaseWaitModal
|
||||||
@ -10,7 +10,10 @@ import {
|
|||||||
import { useSearchParams } from 'react-router-dom'
|
import { useSearchParams } from 'react-router-dom'
|
||||||
import PropTypes from 'prop-types'
|
import PropTypes from 'prop-types'
|
||||||
|
|
||||||
const TableStateContext = createContext()
|
const TableStateContext = createContext(null)
|
||||||
|
|
||||||
|
// eslint-disable-next-line react-refresh/only-export-components
|
||||||
|
export { TableStateContext }
|
||||||
|
|
||||||
export const FILTER_URL_PARAM = 'filter'
|
export const FILTER_URL_PARAM = 'filter'
|
||||||
export const SORT_URL_PARAM = 'sort'
|
export const SORT_URL_PARAM = 'sort'
|
||||||
|
|||||||
@ -79,6 +79,26 @@ export const resolveEmailRecipients = async ({
|
|||||||
return candidates
|
return candidates
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const resolveEmailRecipientsForObjects = async ({
|
||||||
|
type,
|
||||||
|
objects,
|
||||||
|
fetchObject
|
||||||
|
}) => {
|
||||||
|
const list = Array.isArray(objects) ? objects.filter(Boolean) : []
|
||||||
|
const merged = []
|
||||||
|
for (const objectData of list) {
|
||||||
|
const result = await resolveEmailRecipients({
|
||||||
|
type,
|
||||||
|
objectData,
|
||||||
|
fetchObject
|
||||||
|
})
|
||||||
|
for (const candidate of result) {
|
||||||
|
addCandidate(merged, candidate)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return merged
|
||||||
|
}
|
||||||
|
|
||||||
/** Prefer a client/vendor ref; otherwise use a plain email candidate. */
|
/** Prefer a client/vendor ref; otherwise use a plain email candidate. */
|
||||||
export const getDefaultEmailRecipient = (candidates = []) => {
|
export const getDefaultEmailRecipient = (candidates = []) => {
|
||||||
if (!Array.isArray(candidates) || !candidates.length) return null
|
if (!Array.isArray(candidates) || !candidates.length) return null
|
||||||
|
|||||||
41
src/components/Dashboard/utils/fetchAllObjectPages.js
Normal file
41
src/components/Dashboard/utils/fetchAllObjectPages.js
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
export async function fetchAllObjectPages({
|
||||||
|
fetchObjects,
|
||||||
|
type,
|
||||||
|
filter = {},
|
||||||
|
sorter = {},
|
||||||
|
limit = 25
|
||||||
|
}) {
|
||||||
|
if (!type || typeof fetchObjects !== 'function') return []
|
||||||
|
|
||||||
|
const all = []
|
||||||
|
let page = 1
|
||||||
|
let totalPages = 1
|
||||||
|
|
||||||
|
do {
|
||||||
|
const result = await fetchObjects(type, {
|
||||||
|
page,
|
||||||
|
limit,
|
||||||
|
filter,
|
||||||
|
sorter
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!result || Array.isArray(result)) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = Array.isArray(result.data) ? result.data : []
|
||||||
|
all.push(...data)
|
||||||
|
|
||||||
|
if (Number.isFinite(result.totalPages) && result.totalPages > 0) {
|
||||||
|
totalPages = result.totalPages
|
||||||
|
} else if (result.hasMore) {
|
||||||
|
totalPages = page + 1
|
||||||
|
} else {
|
||||||
|
totalPages = page
|
||||||
|
}
|
||||||
|
|
||||||
|
page += 1
|
||||||
|
} while (page <= totalPages)
|
||||||
|
|
||||||
|
return all
|
||||||
|
}
|
||||||
21
src/components/Dashboard/utils/templateObjectData.js
Normal file
21
src/components/Dashboard/utils/templateObjectData.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
export function resolveObjectsList(objects, objectData) {
|
||||||
|
if (Array.isArray(objects) && objects.length) {
|
||||||
|
return objects.filter(Boolean)
|
||||||
|
}
|
||||||
|
if (objectData) {
|
||||||
|
return [objectData]
|
||||||
|
}
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
|
export function toTemplateObjectData(objects) {
|
||||||
|
const list = Array.isArray(objects) ? objects.filter(Boolean) : []
|
||||||
|
if (!list.length) return {}
|
||||||
|
if (list.length === 1) {
|
||||||
|
const first = list[0]
|
||||||
|
if (first && typeof first === 'object' && !Array.isArray(first)) {
|
||||||
|
return first
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return { objects: list }
|
||||||
|
}
|
||||||
@ -166,7 +166,12 @@ export const DocumentJob = {
|
|||||||
columnFixed: 'left',
|
columnFixed: 'left',
|
||||||
value: (objectData) => {
|
value: (objectData) => {
|
||||||
if (objectData?.createdAt == undefined) {
|
if (objectData?.createdAt == undefined) {
|
||||||
return `${objectData?.documentTemplate?.name || 'No template'} ${dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')} (${objectData?.object?.name || objectData?.object?._id})`
|
const list = Array.isArray(objectData?.objects)
|
||||||
|
? objectData.objects
|
||||||
|
: []
|
||||||
|
const first = list[0]
|
||||||
|
const extra = list.length > 1 ? ` +${list.length - 1}` : ''
|
||||||
|
return `${objectData?.documentTemplate?.name || 'No template'} ${dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')} (${first?.name || first?._id || 'no object'}${extra})`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -188,11 +193,11 @@ export const DocumentJob = {
|
|||||||
type: 'objectType'
|
type: 'objectType'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'object',
|
name: 'objects',
|
||||||
label: 'Object',
|
label: 'Objects',
|
||||||
required: true,
|
required: true,
|
||||||
columnWidth: 150,
|
columnWidth: 150,
|
||||||
type: 'object',
|
type: 'objectList',
|
||||||
objectType: (objectData) => {
|
objectType: (objectData) => {
|
||||||
return objectData?.objectType
|
return objectData?.objectType
|
||||||
},
|
},
|
||||||
|
|||||||
@ -220,9 +220,9 @@ export const EmailMessage = {
|
|||||||
columnWidth: 180
|
columnWidth: 180
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'object',
|
name: 'objects',
|
||||||
label: 'Object',
|
label: 'Objects',
|
||||||
type: 'object',
|
type: 'objectList',
|
||||||
objectType: (data) => data?.objectType,
|
objectType: (data) => data?.objectType,
|
||||||
required: true,
|
required: true,
|
||||||
readOnly: readOnlyAfterCreate,
|
readOnly: readOnlyAfterCreate,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user