Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

'boolean' widget without default value behaves strangely #1424

Open
papandreou opened this issue Jun 11, 2018 · 11 comments
Open

'boolean' widget without default value behaves strangely #1424

papandreou opened this issue Jun 11, 2018 · 11 comments

Comments

@papandreou
Copy link
Contributor

- Do you want to request a feature or report a bug?

bug

- What is the current behavior?

A boolean field without a default defined in config.yml will initially render as false, but the field will fail the required check:

screen shot 2018-06-11 at 16 56 36

Clicking the widget twice so it turns on and back off allows me to persist a value of false.

- If the current behavior is a bug, please provide the steps to reproduce.

  1. Define a field like this in config.yml:
-
  label: Awesome
  name: awesome
  widget: boolean
  1. Create a new item in the collection
  2. Try to publish the item

You'll get an "AWESOME IS REQUIRED" error.

For the record, specifying default: false for the field makes the problem disappear.

Because default presently doesn't work for editor components, this problem makes it hard to get the boolean widget working in that setting.

- What is the expected behavior?

That the error does not show and awesome: false gets persisted. Or that an error is thrown early because the field doesn't have a default specified. Alternatively that a distinct "undefined" state be added for boolean fields so that you could at least tell the difference between "off" and "undefined".

- Please mention your versions where applicable.

Netlify CMS version: 1.8.4
Browser version: 67.0.3396.62/OSX

Node.JS version: 9.5.0
Operating System: Mac OSX 10.13.4 (High Sierra)

@TatisLois
Copy link

@erquhart/ @papandreou is this issue still valid? It's open but it looks like a fix was merged for widgets. Just looking for an issue to help out with :)

@papandreou
Copy link
Contributor Author

@TatisLois, I can still reproduce it with [email protected]. Which fix is that?

@papandreou
Copy link
Contributor Author

#1662 was never merged, that's probably why it didn't have an effect 😆

@barthc
Copy link
Contributor

barthc commented Jan 6, 2019

@TatisLois If you are still up for this, I can guide you on how to implement a simple fix for this issue.

@TatisLois
Copy link

@barthc that would be great, would love to take a crack at it

@barthc
Copy link
Contributor

barthc commented Jan 16, 2019

@TatisLois take a look at the createEmptyDraftData function, just check for boolean widgets that does not have any default value and assign a false value, that's it. Also add some comments to explain the assigment. You can DM me on gitter if you have any questions 👍

@chrfritsch
Copy link
Contributor

I opened a PR in #2525. Reviews are welcome 😊

@erquhart
Copy link
Contributor

This should be resolved when #1407 is resolved. Leaving open until then.

@belmarca
Copy link

Specifying a false default as in - {label: "Noindex", name: "no_index", widget: "boolean", default: false} does not work for me. I am still forced to click twice on the toggle to make it falsy.

@miguelt1
Copy link

@erquhart Any update on this? I'm having the same problem that @belmarca has.

@erezrokah
Copy link
Contributor

Hi @miguelt1, the best way to move this issue forward is to submit a contribution for it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants