* Add new hook - useTable
- Will replace useTableRefresh
- More extensible (further functionality to follow)
- Pass entire state through to final table
- Defined interface for return type
* Update BomTable
* Update UsedInTable
* Refactor attachment table
* Update remaining tables
* Clean StockItemTable
* Fix NotificationTable
* Remove unused import
* Embiggen search drawer
* Refactor search drawer queries:
- Use proper permission checks
* Actually check user settings
* Move StatusRenderer
* Update renderers
- Improve in-line render for different order types
* Update stockitem renderere
* Remove old renderer functions
* Better data handling in UserState
* Tweaks for settings pages
* "Fix" scanning page
- Rendering is a bit broken currently, as the barcode scan does not send back the model data
* "Fix" scanning page
- Rendering is a bit broken currently, as the barcode scan does not send back the model data
- Required refactoring enumerations out into separate files
- Some strange race condition / import loop was happening
* Fix incorrect imports
* Fixing hover card
- Use unique key
* fixes
* Fix urls.md
* More udpates
* Fix unused import
* Factor out custom component for displaying project code information in a table
* Bump API version
* Update order serializers
- Annotate 'completed_lines' to each order type
* Build out columns for ReturnOrderTable
* Improvements to PurchaseOrderTable
* Building out SalesOrderTable
* Column tweaks
* Factor out project code column
* Factor out status column
* Factor out description column
* Factor out more columns
* More refactoring
* Center status labels
* Fix for PurchaseOrderLineItemTable
* Improve rendering
* Remove unused imports
* Refactor TotalPriceColumn
* Add generic currency column for rendering currency / money values
* Factor out common barcode actions
* Refactoring more icons
* Add PurchaseOrderLineItemTable component
* Improve renderer for SupplierPart
* Edit line item
* Table action column always visible
* Create <AddItemButton> component (refactoring)
* Table updates
- Improve actions column for table
- Move "download" button to right hand side
* Refactoring button components
* More cleanup
- Refactor <TableHoverCard> a bit
- Add placeholder for "receive items"
* Add ProgresBar component
* Make table columns switchable by default
- set switchable: false to disable
* Add project_code column to build table
* Fix row actions column for tables without actions
* Improve rendering for BuildOrderTable
* Cleanup unused imports
* Further fixes
* Remove another unused import
* Fix TableHoverCard component
* Improving handling of very wide table cells
* Update panels for PartDetail
* Refactor <Thumbnail> component
* Add SupplierPart table
* Refactor forms
- Do not need to specify custom form name any more
* More fixes for modal forms
* Refactor forms field code
* Add generic row action components for edit and delete
* Add placeholder comments
* Add ability to edit supplier part from table
* Create supplier part
* Add missing import
* Revert scroll behaviour for wide cells
- Does not play nice on chrome
* Add placeholder panel for part manufacturers
* Fix inline renderer for manufacturerpart
* Cleanup unused imports
* Add icons to supplier part fields
* Increase size of form titles
* Another fix
* Add more panels to StockItem page
* Add some placeholder actions for StockItem page
* edit stock item
* Add info hover card to stocktable
* update extra info for part table
* Add extra columns to PurchaseOrder table
* Fix unused import
* Implement simple "PartVariantTable" component
- Not yet nested
- More work needed for table nesting
* Fix issue rendering same image multiple times
- Use useId hook to generate random key
* Update PartParameter list API endpoint
- Allow part_detail extra field
- Add FilterSet class
- Allow filter to include variants
* Update PartParameterTable
- Display part column
- Allow returned parts to include templates of base part
- Hide actions for templated parameters
* Fix some code smells
* Add some dummy pages for settings
* Add some placeholder pages for settings
* Refactor 'useInstance' hook
- Allow use without a pk
* Make response status code available
* Cleanup user settings page
* Fill out (empty) panels for system settings
* Update URLs
* Add more user information to "me" API endpoint
* Implement global user context
- User information available globally
- Add placeholder page for plugin settings
* remove debug entry
* Add first-pass implementation of plugins table
* Add icon to plugin table
* plugin table improvements
* Add SettingsContext component
- Allows list of settings to be drilled down through props
- Also provides a way of reloading the settings list
* Update settings page
* Update settings detail API endpoints
- No longer case sensitive
* Display boolean values, and allow them to be edited
- Still some work to be done here
- Need to pass the base URL down through useContext
* Allow editing of non-boolean settings too
- Required some adjustment to existing forms interface
* Fix rendering of choice field within modal
* Display correct value for choice fields
* Expose settings units to API
* Updates
- Display units for setting (if available)
- Rename fieldType to field_type
- React does not like snakeCase props
* Improve form handling
* Add global server settings keys
* Add table for project codes
* Use cache to ensure that settings are not rebuilt too often
* Update api version notes
* Add username helper function to user state
* Remove SettingsContext
- Replace with global state manager
- Does not currently refresh properly
* Remove UserContext
* Update BaseContext
* Cleanup to match master
- Integrated many improvements from current master
* Get settings items working again
- Now integrates nicely with userSettingsState and globalSettingsState
* Improve generation of user name
* Handle user settings too
* url endpoint fix
* Add new table for custom unit management
* Update global settings
* Track current panel selection in local storage
* Simplify part detail tabs
* Fix <PanelGroup> instances
* Handle missing model type for rendering
* Add some more API endpoints
* Add PartParameter table
* Add callback to create new part parameter
* Allow PartParameter list API endpoint to be searched
* More PanelGroup collapse tweaks
- Still requires more attention
* Fix logic for related part table
- Need to rebuild columns when part id changes
* Further fixes for related part table
* Re-implement change to PanelGroup
- useLocalStorage
- Change got clobbered in recent merge conflict
* Add part thumbnail to StockItemTable
* Add simple <YesNo> button
- Can be improved later
* Fix for PartTable
* Allow CORS requests to /static/ endpoint
* Updates to other existing tables
* Update URLs for dashboard items
* Improvements to API handling on react UI
- Do not force "/api/" prefix to the base URL of the server
- We will need to fetch media files from the server (at /media/)
- Extend API URL helper functions
* Update some more hard-coded URLs
* Fix search API endpoint
* Fix div for panel tab
* Fix debug msg
* Allow CORS request to /media/
* Add ApiImage component
- Used to fetch images from API which require auth
- Requires some tweaks to back-end CORS settings
- Otherwrise, image loading won't work on new API
* Update build order table
* Remove debug code
* Update part detail page
* Improvements to API handling on react UI
- Do not force "/api/" prefix to the base URL of the server
- We will need to fetch media files from the server (at /media/)
- Extend API URL helper functions
* Update some more hard-coded URLs
* Fix search API endpoint
* Fix div for panel tab
* Fix debug msg
* Replace PartIndex with CategoryDetail
- Can pass a category ID to show a single category
- Otherwise, show the top-level parts category
* Refactor <InvenTreeTable> component
- Simplify property passing
- Easier tableRefresh mechanism
* Refetch table data when base parameters change
* Correctly update pages when ID changes
* Notification panel cleanup
* Remove column from InvenTreeTableProps type
* more fancy
* Fix notification alert
* Implement useLocalStorage hook
* useLocalStorage hook for table filters too
* Very basic part detail page
- Simply displays the ID of the part (not any actual data)
- Navigate from the part table
* Implement generic PanelGroup component
- Used for displaying sets of panelized data
- Will be used a lot within the interface
* Reload part page after edit form
* Fix loading overlay for part page
* Fix search panel
* Add panels to part index page
* Fix icons
* Fix table row actions menu
* PanelGroup: allow active panel to be changed externally
* Fix SearchDrawer issue
- AbortController does not work as expected
- Might need to revisit this later
* Improve form loading indicator
* Very basic form implementation
* Fetch field definition data via AP
* Add cancel and submit buttons
* Render basic field stack, and extract field data from API
* Extract specific field definition
* Handle text fields
* Add some more fields
* Implement boolean and number fields
* Add callback for value changes
* Use form state to update values
* Add skeleton for a 'related field'
* Framework for related field query manager
* Handle date type fields
* Make date input clearable
* Fix error messae
* Fix for optional callback function
* Use LoadingOverlay component
* Support url and email fields
* Add icon support
- Cannot hash react nodes!
* Create components for different form types
- Create
- Edit
- Delete
* Split ApiFormField into separate file
* Add support for pre-form and post-form content
* Don't render hidden fields
* Smaller spacing
* More demo data
* Add icon to clear text input value
* Account for "read only" property
* Framework for a submit data query
* Return 404 on API requests other than GET
- Other request methods need love too!
* Starting work on dynamically opening forms
* Check validity of OPTIONS response
* refactor
* Launch modal form with provided props
* Refactor tractor:
- Handle simple form submission
- Handle simple error messages
* Improve support for content pre and post form
* Allow custom content to be inserted between fields
* Pass form props down to individual fields
* Update playground page with API forms functionality
* Simplify form submission to handle different methods
* Handle passing of initial form data values
* Improve docstrings
* Code cleanup and add translations
* Add comment
* Ignore icon for checkbox input
* Add custom callback function for individual form fields
* Use Switch instead of Checkbox
* Add react-select
* Implement very simple related field select input
- No custom rendering yet
- Simple pk / name combination
* FIrst pass at retrieving data from API
* Updates:
- Implement "filters" for each form field
- Prevent duplicate searches from doing weird things
* Rearrange files
* Load initial values for related fields from the API
- Requires cleanup
* Display error message for related field
* Create some basic functions for construction field sets
* Display non-field-errors in form
* Improved error rendering
* Change field definition from list to Record type
- In line with current (javascript) implementation
- Cleaner / simpler to work with
* Correctly use default values on first form load
* Improve date input
* define a set of stockitem fields
* Implement "Choice" field using mantine.select
* Implement useForm hook for better performance
* Show permission denied error
* Improved callback "onChangeValue" functionality
- Define proper return type
- Access all form data
* Cleanup
* Implement components for rendering database model instance
- Not fully featured yet (still a lot of work to go)
- Porting code across from existing "model_renderers.js"
* Update packages
* Handle file input fields
* Improved loading overlay for form submission
* Utilize modal renderers in search results
* SearchDrawer cleanup
* Temporary fix for image pathing issue
* Cleanup table action buttons
- Now use a dropdown menu
- Implement "edit part" directly from the table
- This is only as an example for now
* Fix playground
* Generate random ID with useId hook
* Fix abortController to use ref
* Use AbortController for search panel
* Fix TableColumn type definition
* Improved generation of unique form ID values
* Create dependency-review.yml
* Create scan.yml
* Create sonar-project.properties
* add option to use sections and refactro
* translate error messages
* remove unneeded vars
* move function code
* move data inside
* add global section
* add plugin section
* use translated section titles
* add translation strings
* rename scan action
* add user settings
* use ordered data
* fix settings url
* use debounced value for strings (not choices!)
* rename contex to context
* move i18n provider up
* move theme options into seperate context/ component
* renmae statrtup vars
* move translations out
* reactivate sentry
* move i18n provider to seperate context
* move langauge state completly out of App
* use theme out
* move theme context
* move LanguageContext
* move function into state
* make sentry optional for now
* add key to accordion
* init langauge context on top
* remove unneeded css files
* move errorpage to tsx
* add translation for error page
* Add error to title
* add typecast for error
* move type definition out
* remove todo -> type was already added
* upgrade deps
* add bootstrap
* remove @mantine/core
* readd core
* switch to bootstrap
* simplify import
* Add SPA views for react #2789
* split up frontend urls
* Add settings for frontend url loading
* add new UI scaffold
* remove tracking insert
* add platform app
* ensure static indexes work too
* add lingui
* add lingui config
* add mgmt tasks
* add base locales
* settings for frontend dev
* fix typo
* update deps
* add pre-commit
* add eslint
* add testing scaffold
* fix paths
* remove error - tests trip correctly
* merge workflow
* cleanup samples
* use name inline with other tests
* Add real worl frontend tests
* setup env
* tun migrations first
* optimize setup time
* setup demo dataset
* optimize run setup
* add test for class ui
* rename
* fix typo
* and another typo
* do install
* run migrations first
* fix name
* cleanup
* use other credentials
* use other credentials
* fix qc
* move envs to qc
* remove create_site
* reduce testing env
* fix test
* fix test call
* allaccess user
* add ui plattform check
* add better check
* remove unneeded env
* enable debug
* reduce wait time
* also build frontend on static
* add sekeleton
* fix various issues
* add locales
* clean output before building
* cleanup dir
* remove bootstrap
* clean up deps
* fix settings panel
* remove assets
* move logo
* split out router
* split up chunks
* fix zustand import syntax
* bundl
* update pre-render
* use vendor splitting
* maximes space usage
* enlarge breakpoints
* remove wired color changes
* cleanup tabs
* fix error
* update auth functions
* default to mail login
* add placeholder marking
* Add text to placeholder
* readd codespell
* add another test
* add sort plugin
* add sort plugin
* sort imports
* fix order
* Add mega menu
* run pre-commit fixes
* add node min version
* Docker container (#129)
* Fix allocation check for completing build order (#5199)
- Allocation check only applies to untracked line items
* docker dev
Install required node packages to docker development image
* add import order settings
* cleanout built ui
* Add "parttable" component
* Add task to serve front-end code dev
* remove default arg from build
* remove eslint
* optimize svg
* Adds generic function for rendering a table with server-side data
* Implement pagination and sorting
* Add more example columns
* Enable selection of table data rows
* add build step for plattform UI
* fix install command
* optional parameters
* Add simple stock table
* Add optional parameter for default sort
* Change "no records" text based on query result
* Translate
* Start writing some helper functions
* Add thumbnail component
* Fill out more columns for stock table
* Add simple skeleton for table search input
* Adjust default table properties
* Change loader variant
* Drop-down for selecting table columns
* Add search text callback
* use alpine commands
* do not use cache when creating image
* More updates for inventree table
- Fix search text entry
- Add "refresh" button
- Adjust variable names
* Search input improvements
- Add button to clear search input
* Enable mantine notification system
* Add "not yet implemented" notification message
* Add download action button
* Adds ButtonMenu component
- Button which expands to show other actions
- Add hooks for adding action menus to tables
* Add basic build order list table
* Add custom filters button for table
* Allow columns to be toggled
* Column visibility saved across table loads
* Adds display for table filters
- Define interface for table filter definition
- Add component for displaying filters
- Cleanup for part table
* Cleanup
* Define type for controlling column data
* Allow custom ordering term for table column
- Replaces "sortName" concept from bootstrap-table
* Improve build order table
- Fancy progress bars
* Reimplement invoke task to serve frontend files via yarn
* Update package files with mantine
* Implement callback when record selection is changed
* Adds generic "actionbutton" component
* Remove duplicate form components
* Remove tracked files in web/static
* Remove a bunch of files
- tracked in from the wrong original branch
* More page fixes
* Revert changes to reqiurements-dev.txt
* Spelling fix
* Component updates
* Cleanup components
* Cleanup
* Use spread operator
* Add some new dummy pages for testing
* Cleanup / simplify stockitem table
* Cleanup for part table
* Cleanup build order table
* Cleanup column toggle function
* Remove hard-coded URL
* Format updates
* Update deps
* npm required for inventree-python checks
* Fix search input
- Better debouncing
- Cleaner code
* Update package files
* vite polling fixes
* Implementation for download button
- Dropdown menu with file format options
* Implement callback for download of table data
* Better state management for hidden columns
* Implement state framework for active custom filters
* Silence some errors
* Revert change to vite config
* Implement collapsible filter list group
- Save active filters to local storage
- Add some example filters to the part table
- Add FilterBadge component
* Fix page names
* Simplify search input
- useDebouncedValue
* linting
* Refactor
* Remove debug msg
* Simplify search state
* Refactor function for constructing API query
* Add tooltip
* Update icons
* Add modal for selecting filter options
* Add more table filters for part table
* render custom item for filter select
* Complete implementation for selectable filters
- Allow choices to be specified as attribute
- Allow choices to be specified as function
- Handle state management for filter choice form
* Tweak badge
* Cleanup top-level yarn and npm files
* Less roundy
---------
Co-authored-by: Matthias Mair <code@mjmair.com>