[bugfix/frontend] Add nosubmit
option to form fields; use it when instance custom CSS disabled
#2290
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When custom CSS is not enabled on an instance, submitting any custom CSS update (even if it's just an empty string) returns a 400 error since custom CSS is not allowed.
Previously, we were getting around this by just not generating a form field at all for custom CSS when it was disabled on the instance. When I refactored some of the frontend stuff, I made it so the form field was shown, but was not enabled and couldn't be updated by users. This causes empty
custom_css
to be sent along to the instance when doing profile updates, meaning the update always fails.To get around this, this PR adds a new
nosubmit
option to form hooks. If set totrue
, then the hook fields become 'internal' and won't be submitted as part of mutation data. This means they can still be shown, but become essentially "read only".With this change, it's possible to update profiles on instances that don't have custom CSS enabled, again.
Change also fixes a couple very small bugs that cropped up while I was looking for the issue.
Checklist
Please put an x inside each checkbox to indicate that you've read and followed it:
[ ]
->[x]
If this is a documentation change, only the first checkbox must be filled (you can delete the others if you want).
go fmt ./...
andgolangci-lint run
.