rocheparadox
294011a973
Merge remote-tracking branch 'upstream/master'
2021-10-13 10:10:59 +05:30
Oliver
f3f41730be
Add "substitutes" column to BOM table
2021-10-13 11:58:40 +11:00
Oliver
4f985ae225
Revert 1fb76b9
...
Removes global functions to enable / disable entire sections of functionality
2021-10-13 09:40:17 +11:00
rocheparadox
2bf51b0ac3
Added PART_NAME_FORMAT to Inventree settings and exposed the same in settings window with a validator
2021-10-12 19:06:23 +05:30
rocheparadox
beadfb4659
Merge remote-tracking branch 'upstream/master'
2021-10-11 22:29:01 +05:30
rocheparadox
2d77b21a4e
PART_NAME_FORMAT is introduced to display the names of parts in custom format. - For Feature Request InvenTree#2085
...
full_name construction in part.js is obsolete/redundant since the same is constructed in backend and sent through api response
2021-10-11 22:21:12 +05:30
Oliver
19a8c712d4
Merge pull request #2017 from matmair/fr-1421-sso
...
SSO!
2021-10-11 17:20:08 +11:00
Oliver
d3e5bc3141
Merge pull request #2132 from SchrodingersGat/esc-forms
...
Adds setting to close forms using escape key
2021-10-11 11:41:56 +11:00
Oliver
49601d2b7e
Merge pull request #2130 from SchrodingersGat/links-fix
...
Fix various documentation links
2021-10-11 11:23:53 +11:00
Oliver
f978924c4e
Adds required tabindex
2021-10-11 11:23:35 +11:00
Oliver
25031e09e4
Enable setting for legacy launchModalForm function
2021-10-11 11:22:17 +11:00
Oliver
a32b5fdd64
Adds setting to close forms using escape key
...
- Configurable per user
- Default = false (to preserve behavior)
2021-10-11 11:16:33 +11:00
Oliver
8d33ee6298
Merge pull request #2129 from SchrodingersGat/sub-part-from-bom
...
Add option to BomItem form to create a new part
2021-10-11 10:59:30 +11:00
Oliver
c7bfce4a64
Fix various documentation links
...
- Reference the configured docs verrsion
2021-10-11 10:53:49 +11:00
Oliver
ede4ac9219
Add option to BomItem form to create a new part
2021-10-11 10:40:03 +11:00
Oliver
00275d61eb
Auto-focus on the 'sub_part' field
2021-10-11 10:25:36 +11:00
Matthias Mair
848a72604e
Merge branch 'inventree:master' into fr-1421-sso
2021-10-08 22:38:16 +02:00
Oliver
77c6e5e57e
Update display of BOM table based on the configurable setting
2021-10-08 12:47:51 +11:00
Oliver
69d932e193
Add a global setting to control price display in BOM tables
2021-10-08 12:47:27 +11:00
Matthias
fe7ab40b48
Merge branch 'master' of https://github.com/inventree/InvenTree into fr-1421-sso
2021-10-07 18:12:25 +02:00
Matthias
68f5af26b6
dont show mail functions if not enabled
2021-10-07 18:08:55 +02:00
Matthias
a45b8dcf0e
check also here if mail is enabled
2021-10-07 17:50:36 +02:00
Matthias
c37e40d144
use tag for testing
2021-10-07 17:31:18 +02:00
Oliver
64cf916c50
Add a form to select export format
2021-10-07 13:33:10 +11:00
Oliver
31665e3b8d
Enable editing of "sales order" from build order
...
- Add a renderer for the sales order model
2021-10-07 10:45:14 +11:00
Oliver
d9fddf64f1
Make this setting a per-user setting
2021-10-06 22:22:20 +11:00
Oliver
166af3592d
Add optional display of part stock quantity in forms
2021-10-06 22:12:59 +11:00
Oliver
a8388b0999
JS linting
2021-10-06 20:35:51 +11:00
Oliver
5cdf5a2670
Only include "in stocK" field if the sales order is pending
2021-10-06 20:16:59 +11:00
Oliver
336b05aa4e
Exclude sales order allocations when searching stock
2021-10-06 17:42:00 +11:00
Oliver
cbd2732622
Merge remote-tracking branch 'inventree/master' into sales-order-allocation-fixes
2021-10-06 17:28:38 +11:00
Oliver
b5c5842e7d
Add ability to create a new sales order allocation using the API forms framework
2021-10-06 17:26:48 +11:00
Oliver
4d13674452
Migrate views to use the API forms architecture:
...
- SalesOrderAllocationEdit
- SalesOrderAllocationDelete
2021-10-06 17:16:01 +11:00
Oliver
87775ae16b
Brace yourseflf
2021-10-06 17:02:27 +11:00
Oliver
e055902f3e
More JS linting
2021-10-06 16:58:00 +11:00
Oliver
21be5b4a26
JS linting
2021-10-06 16:52:56 +11:00
Oliver
ac3a97d4d6
Fix button callbacks for the allocation table
2021-10-06 16:47:21 +11:00
Oliver
4d8bec9663
Fix rendering of row sub tables
2021-10-06 16:38:13 +11:00
Oliver
f9f8527ae5
Fix build button
...
- Now links into the API forms
2021-10-06 16:20:15 +11:00
Oliver
4d2cf233b3
Move the "loadSalesOrderLineItemTable" code to order.js
2021-10-06 16:14:39 +11:00
Matthias Mair
2d65f6f905
Merge branch 'inventree:master' into fr-1421-sso
2021-10-06 02:01:16 +02:00
Oliver
05de802d1d
javascript linting
2021-10-06 09:14:06 +11:00
Oliver
95e7cc7a5d
Fixes for unit tests
2021-10-06 08:56:24 +11:00
Oliver
dd760bfecd
Add filtering by "completed" status for purchase order line items
2021-10-05 17:15:41 +11:00
Oliver
5e951ef64b
Add 'filtering' for purchase order line item table
2021-10-05 16:57:33 +11:00
Oliver
ce7552bc5b
JS linting
2021-10-05 16:10:46 +11:00
Oliver
dd4428464d
Receiving items against a purchase order now makes use of the API forms
...
- Delete old unused code
- Improve serializer validation
2021-10-05 16:05:18 +11:00
Oliver
a579bc8721
Initialize destination field
2021-10-05 15:10:16 +11:00
Oliver
b75e817447
Construct bare-bones API form
2021-10-05 14:57:50 +11:00
Oliver
e39f1c320c
Merge remote-tracking branch 'inventree/master' into auto-allocation-improvements
2021-10-05 12:53:47 +11:00
Oliver
a3ba33cae8
Fixes for build output tables
...
- Only show "completed" builds in the "completed builds" table (should be obvious)
- Display "serial number" appropriately in build output allocation table
2021-10-05 12:32:54 +11:00
Oliver
7ecd4c70e7
JS linting
2021-10-05 11:02:57 +11:00
Oliver
563deb5ffa
Add ability to specify "source location" for stock allocations
...
- Defaults to build.take_from
- User-selectable at run-time
- Selected value affects select2 query
2021-10-05 10:38:18 +11:00
Oliver
76668b0d54
Remove unused code (views / forms)
2021-10-05 09:21:33 +11:00
Oliver
f6cf84f912
Form now works for "tracked" build outputs
2021-10-05 08:48:50 +11:00
Matthias Mair
56221a33bf
Merge branch 'inventree:master' into fr-1421-sso
2021-10-04 23:26:07 +02:00
Oliver
ae0efe73d1
Further improvements to build allocation form
...
- Auto-allocation button ignores outputs which are complete
- StockItem API allows filtering by BomItem
- Quantity inputs are now auto-filled
- Display progress bar in the modal form
2021-10-05 08:25:10 +11:00
Oliver
17df4ca91e
Refactor allocation form
...
- The data is already loaded in the main table!
- Why would we want to throw that data away?
2021-10-05 01:05:42 +11:00
Oliver
28509dbd68
Remove old unit test
2021-10-05 00:48:03 +11:00
Oliver
416ba51e22
Add auto-fill option to select2 inputs on API forms
...
- WIll fill input if a single result is returned
2021-10-05 00:39:22 +11:00
Oliver
8a90b9df6d
Improve clean() function for BuildItem model
...
- BuildItemDelete now handled by API forms
- BuildItemEdit now handled by API forms
2021-10-05 00:14:31 +11:00
Oliver
074466f087
Updates for stock allocation form
...
- Data submission
- Nested error handling
- Button callbacks to remove rows
2021-10-04 23:20:03 +11:00
Oliver
a9d5b776d3
Adds error handling of nested form fields in the API form processing layer
...
- Muy complejo
- But the results speak for themselves!
-This will need to be rolled out into the coming refactor...
2021-10-04 22:41:59 +11:00
Oliver
22d6d49b97
Create a select2 stockitem input and a quantity input for each allocation row
2021-10-04 17:42:47 +11:00
Oliver
cd657daf50
Fixes for stockitem rendering in API forms
...
- Also improved rendering for other models
2021-10-04 17:41:09 +11:00
Oliver
49dc88abbc
Add configurable options for the stockitem renderer
2021-10-04 17:31:38 +11:00
Oliver
eba0d15fe4
Rough layout of javascript function
...
- allocateStockToBuild
- provide build ID and part ID
- optionally provide output ID
- optionally provide list of part ID to filter against
2021-10-04 16:11:15 +11:00
Oliver
7e81f419d7
Refactor search results for stock items and locations
2021-09-30 20:23:41 +10:00
Oliver
ab9d247531
server-side pagination for manufacturer part table
2021-09-30 20:17:10 +10:00
Oliver
e36039b03f
Server-side pagination for part category search results
2021-09-30 20:15:54 +10:00
Oliver
b9c8e46e1c
Fixes for supplierpart table
...
- Paginate on server side
2021-09-30 20:12:27 +10:00
Oliver
15d96a3288
Fix for URL in supplier parts table
2021-09-30 19:50:16 +10:00
Oliver
4ced13466a
Use "original_search" rather than "search"
2021-09-30 17:57:19 +10:00
Oliver
6cf144c61f
Retain "original" search parameter in query
2021-09-30 17:53:14 +10:00
Oliver
b1730914c3
Display "full_name" rather than "name" in quick search bar
2021-09-29 22:12:20 +10:00
Matthias Mair
acbea53a3d
Merge branch 'inventree:master' into fr-1421-sso
2021-09-29 00:41:25 +02:00
Oliver
ef01bdff07
Fix links in part table
2021-09-27 11:42:47 +10:00
Oliver
beaa93f9b5
Fix ?display= URLs for part stock view
2021-09-27 11:41:24 +10:00
Oliver
f53aac0784
Remove "default_supplier" field when duplicating a part
2021-09-24 12:04:36 +10:00
Oliver
d2b9993e96
Fix form filters for "default_supplier"
2021-09-24 12:04:25 +10:00
Matthias Mair
44c5003839
Merge branch 'inventree:master' into fr-1421-sso
2021-09-24 00:32:38 +02:00
Oliver
2e1277839e
Merge pull request #2067 from SchrodingersGat/warning-improvements
...
Improve 'health status' warnings
2021-09-22 09:34:23 +10:00
rocheparadox
c1a827819c
css for part to occupy full height - fix for bug Inventree#1848
2021-09-20 17:00:45 +05:30
Oliver
5443beef65
Improve 'health status' warnings
...
- Don't show error message if only non-critical warnings present
2021-09-20 17:15:31 +10:00
Oliver
5bd5c61b9d
Fix callback for test template table
2021-09-14 10:43:40 +10:00
Matthias
847fb62ab5
js style
2021-09-13 23:25:13 +02:00
Matthias
c890a4a6d0
only add button per name once
2021-09-13 23:18:44 +02:00
Oliver Walters
06c03039da
Add version related tags
...
- Docs URL points to correct documentation version
- Display if we are in "development" version
2021-09-12 23:13:55 +10:00
Oliver
387680fbcd
More linting
2021-09-08 13:13:40 +10:00
Oliver
a32a30de52
javascript linting
2021-09-08 13:02:03 +10:00
Oliver
1a21576f28
Adds separate option for "prevent_new_stock" to stock_table
2021-09-08 12:57:42 +10:00
Oliver
8368798280
Move po-line-item-table into javascript file
...
- for better linting
2021-09-08 12:51:49 +10:00
Matthias
5b7941ab17
crispyfy confirmation
2021-09-07 23:55:32 +02:00
Matthias
b281241607
remove unneeded override
2021-09-07 22:38:01 +02:00
Matthias
dbc58b299c
fix layout for password reset
2021-09-07 22:35:19 +02:00
Oliver Walters
f349dc01ea
JS lint
2021-09-07 23:41:13 +10:00
Oliver Walters
125554c53f
Merge remote-tracking branch 'upstream/master' into receive-via-api
...
# Conflicts:
# InvenTree/templates/js/dynamic/inventree.js
# InvenTree/templates/js/translated/forms.js
# InvenTree/templates/js/translated/tables.js
2021-09-07 22:34:00 +10:00
Matthias
53de59f84b
setting for two password fields on signup
2021-09-07 07:37:28 +02:00
Matthias
af286766ea
setting for two mail fields on signup
2021-09-07 07:17:00 +02:00
Matthias
1f03d43b92
settings for auto-fill on sso
2021-09-07 01:19:44 +02:00
Matthias
a4209d38cc
setting to make mail required on signup
2021-09-06 22:07:50 +02:00
Matthias
3963ece6d2
make notifications go away
2021-09-06 07:29:40 +02:00
Matthias
e255f2bf42
setting for sso login
2021-09-05 20:20:57 +02:00
Matthias
34a15ff51f
setting to enable signup
2021-09-05 20:17:49 +02:00
Matthias
fa1ea2f701
setting for pwd forgot
2021-09-05 19:56:48 +02:00
Matthias
1146e2abd9
adding login settings in admin
2021-09-05 19:01:21 +02:00
Matthias
d2a68125ff
cleanup
2021-09-05 18:35:58 +02:00
Matthias
f428ade877
doc for account base
2021-09-05 18:34:59 +02:00
Matthias
ff92d70ecb
cleanup
2021-09-05 18:34:24 +02:00
Matthias
4d2aa975de
use user stylesheet
2021-09-05 18:33:49 +02:00
Matthias
dd5a11b921
PEP fixes
2021-09-05 10:37:14 +02:00
Matthias
c8fb128817
make button fit the overall style
2021-09-05 10:32:48 +02:00
Matthias
fcf54fc0d2
make password change crispy
2021-09-05 10:32:08 +02:00
Matthias
6e8bf01a97
Merge branch 'master' of https://github.com/inventree/InvenTree into fr-1421-sso
2021-09-05 10:29:57 +02:00
Oliver
f0e5d1984c
Fix for about.html
2021-09-04 08:46:30 +10:00
Oliver
0a8365e3bc
Fix for clip.html
2021-09-04 08:45:06 +10:00
Oliver
c275bf8d98
Merge pull request #2026 from inventree/js-linting
...
Js linting
2021-09-03 23:35:14 +10:00
Oliver Walters
e5872f4b67
improve js debug comment
2021-09-03 23:16:35 +10:00
Oliver
888fa51cd7
lots of linting fixes for JS files
2021-09-03 22:54:17 +10:00
Matthias
849b71f7e4
"normal" admin-logout message
2021-09-03 00:23:29 +02:00
Matthias
1c3fa186ec
crispy sign in
2021-09-03 00:13:20 +02:00
Matthias
b1e0e09a90
crispy sign out
2021-09-02 22:19:20 +02:00
Matthias
1cbbc401dc
crispy tag for password reset
2021-09-02 22:15:22 +02:00
Matthias
5c206fd201
use SSO for signup in template
2021-09-02 22:12:18 +02:00
Matthias
0f08978b8c
styling signup crispy
2021-09-02 22:11:35 +02:00
Matthias
0ebc45e834
replace i html tags
2021-09-02 00:18:47 +02:00
Matthias
6a420fd95c
replace bold tags
2021-09-02 00:17:12 +02:00
Matthias
276eab19b5
reordering the base template
...
makes comparring to the original template much easier
2021-09-01 22:02:43 +02:00
Matthias
0ff6de62e9
crispy forms!
2021-09-01 07:34:37 +02:00
Matthias
22401d4229
use normal button style
2021-09-01 07:34:00 +02:00
Matthias
146f856f53
use icon also in connections list
2021-09-01 02:18:58 +02:00
Matthias
0b8a88e216
js function to ingest icons
2021-09-01 02:18:41 +02:00
Matthias
ef6d40bb68
use btns for brand - names
2021-09-01 02:18:24 +02:00
Matthias
1595b7e516
remove email from form and overview
2021-09-01 01:22:14 +02:00
Matthias
88534758aa
layout fixes
2021-09-01 01:18:53 +02:00
Matthias
f997e67ea2
patch social-connections into settings
2021-09-01 01:09:23 +02:00
Matthias
3eeb6e161d
fix layout
2021-09-01 00:08:13 +02:00
Matthias
5aca27f285
integrate email-actions into settings
2021-08-31 23:51:33 +02:00
Matthias
1772348d36
layout fixes
2021-08-31 07:49:38 +02:00
Matthias
9a72ddf823
base for login / signup layout
2021-08-31 01:39:44 +02:00
Matthias
592fd09ad4
remove old templates
2021-08-31 01:38:46 +02:00
Matthias
8afb8ac4d1
move to use allauth for login etc
2021-08-31 01:12:35 +02:00
Oliver Walters
cb403a5b29
More work
2021-08-30 22:28:01 +10:00
Oliver Walters
4c39607e00
Brace style fixes
2021-08-30 20:30:26 +10:00
Oliver Walters
e1adef5010
typo fix
2021-08-30 20:08:18 +10:00
Oliver Walters
6177fe0c5a
build.js
2021-08-30 19:52:28 +10:00
Oliver Walters
2112c6a9ad
barcode.js
2021-08-30 19:33:43 +10:00
Oliver Walters
7d4945d302
company.js
2021-08-30 16:01:45 +10:00
Oliver Walters
0835fe92a0
bom.js
2021-08-30 15:54:31 +10:00
Oliver Walters
51eb40f3bc
forms.js
2021-08-30 15:47:58 +10:00
Oliver Walters
bb3b6fdc4d
label.js
2021-08-30 15:34:46 +10:00
Oliver Walters
e0e7788af6
More js fixes
2021-08-30 15:32:01 +10:00
Oliver Walters
50b54f0966
order.js
2021-08-30 14:57:17 +10:00
Oliver Walters
00f012311d
inventree.js
2021-08-30 14:49:40 +10:00
Oliver Walters
90a75ac7cb
nav.js
2021-08-30 14:44:44 +10:00
Oliver Walters
7d5b859233
part.js
2021-08-30 14:39:58 +10:00
Oliver Walters
3e03b1c31d
report.js
2021-08-30 14:12:35 +10:00
Oliver Walters
c846aeb60f
stock.js
2021-08-30 14:07:34 +10:00
Oliver Walters
65874447ed
bug fix
2021-08-30 13:13:12 +10:00
Oliver Walters
5d45fce240
remove import / export calls
2021-08-30 13:10:58 +10:00
Oliver Walters
24ca1c5641
Add "helpers.js" for common functions
2021-08-30 13:06:02 +10:00
Oliver Walters
140a2092c8
fixes for table_filters.js
2021-08-28 22:18:20 +10:00
Oliver Walters
0620e656a0
Fix linting errors or tables.js
2021-08-28 22:12:41 +10:00
Matthias
c34a5967b8
user-settings template for social accounts
2021-08-26 23:17:00 +02:00
Oliver Walters
3adf30a00c
Simple fix for category parameter settings
2021-08-26 22:50:50 +10:00
Oliver
610c05384b
Merge pull request #2020 from SchrodingersGat/mpn-sorting-fix
...
Mpn sorting fix
2021-08-26 22:06:06 +10:00
Oliver
bad246bca6
Fixes for ordering of stock table
2021-08-26 08:24:31 +10:00
Oliver
51992a92c1
Change name of purchaseorder line item table
...
- Was conflicting with purchaseorder table
- Saved column selections were being overridden
2021-08-25 18:00:32 +10:00
Matthias
118bac0591
fix layout
2021-08-25 00:08:50 +02:00
Matthias
aebea33718
enrich login template with login buttons
2021-08-24 23:53:20 +02:00
Oliver Walters
f6b9d9e6d0
Revert "WIP"
...
This reverts commit 42af52ee51
.
2021-08-24 22:33:29 +10:00
Oliver Walters
42af52ee51
WIP
2021-08-24 22:31:13 +10:00
Oliver Walters
0d7eb6b72c
Style fixes
2021-08-24 22:25:25 +10:00
Oliver Walters
5275d3943b
Adds option to hide labels and help text
2021-08-24 22:13:07 +10:00
Oliver Walters
d87ab0033a
Add "afterRender" callback for modal forms
2021-08-24 22:05:00 +10:00
Oliver Walters
1360b1592d
Some convenience functions
2021-08-24 22:04:43 +10:00
Oliver Walters
e3605001e4
Simple function to render a thumbnail
2021-08-24 22:04:06 +10:00
Oliver
0073a77e16
Merge pull request #2008 from matmair/fix-for-1986
...
Fix for 1986
2021-08-24 14:13:50 +10:00
Oliver
36a0496dd7
Wrap search preview results in <a>
...
- Allows clicking with middle mouse (for e.g.) to open in new tab
2021-08-24 13:11:37 +10:00
Oliver
8fc79f45a3
Fix for "part" form fields
...
- Specify "default" rather than overriding "value"
2021-08-24 11:55:58 +10:00
Matthias
391bb0dbe4
disable ordering on loadStockTable
2021-08-23 22:14:51 +02:00
Matthias
4efcfbecaf
refactor stock.js columns into a variable
2021-08-23 22:07:20 +02:00
Oliver
5d4f35958d
Point table at the new read-only field
2021-08-23 21:45:32 +10:00
Matthias
d4efdf86e5
new settingsthe settings-page
2021-08-22 22:09:07 +02:00
Oliver Walters
174b7ba7f2
Fix for "new purchase order" button
2021-08-23 00:28:36 +10:00
Oliver Walters
449e0c0af2
Refactor button in first step of "order parts" wizard
...
- "new supplier part" button was broken
- Was linked to the old "launchModalForm" code
- Now calls createSupplierPart
2021-08-23 00:17:45 +10:00
Matthias
8fad704d76
disable ordering on stock
2021-08-20 22:53:25 +02:00
Matthias
5a59a37a89
disable ordering on category
2021-08-20 22:52:57 +02:00
Matthias
109b8c943e
disable ordering on part-name
2021-08-20 22:52:14 +02:00
Matthias
7533a9ac0c
disable ordering on IPN if fixed ordering
2021-08-20 22:51:36 +02:00
Guusggg
d8eefec065
Print multi part label ( #1963 )
...
* Added description as list for StockLocation
* Merge pull request #1874 from SchrodingersGat/docker-dev-fix
Copy static files when starting dev server
(cherry picked from commit 50eb70f538
)
* Merge pull request #1877 from eeintech/fix_search_js
Fixed missing comma propagating to translated JS files
(cherry picked from commit 2009773d9d
)
* Merge pull request #1890 from matmair/fix-for-1888
catch connection errors in exchange update
(cherry picked from commit db57e9516b
)
* Merge pull request #1887 from matmair/settings-safety
settings fixes
(cherry picked from commit d154ca08ea
)
* 0.4.2
* Merge pull request #1894 from SchrodingersGat/non-int-serial-fix
Fix for non-integer serial numbers
(cherry picked from commit 529742b520
)
* 0.4.4
Bump release version
* Bump version number -> 0.4.5
* Added a simple menu item to print multiple part labels. This does not follow the style of the Stock label functions but it works!
* Revert "Added description as list for StockLocation"
This reverts commit f5178e9fc3
.
* Added the right version number
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2021-08-17 12:42:40 +10:00
Oliver
1998dabe9b
Small tweaks here and there
2021-08-15 21:47:37 +10:00
Oliver
cef09acd54
Partial reversion of some stuff
2021-08-15 12:05:53 +10:00
Oliver
faab1f2464
Provide global_settings and user_settings as context objects
...
- Adds a new context middleware
- Refactor the way that settings are provided to the javascript layer
2021-08-15 11:57:05 +10:00
Oliver
28bccea57b
Cleanup
2021-08-14 13:43:38 +10:00
Oliver
f753e11f10
Improve error notification for modal forms
...
- Scroll to error
- Add red border and background to the form
2021-08-14 13:41:19 +10:00
Oliver
f72eb4266a
remove old debug message
2021-08-14 12:31:22 +10:00
Oliver
6eb4709658
Adds initial stock quantity
2021-08-14 10:23:42 +10:00
Oliver Walters
2be9399d2c
CSS style fixes
2021-08-14 01:15:43 +10:00
Oliver Walters
ad844c4393
Simplify rendering of checkboxes in forms
...
- Display "inline" so they take up much less vertical space
2021-08-14 01:05:06 +10:00