The log out menu was nested within a button, which caused
bubbling issues for the log out button event handler. This
was due to a misuse of the React Toolbox AppBar component.
Added a proper IconMenu to trigger the logout dropdown.
`resolvePromiseProperties` takes on object and returns a promise which
resolves to a copy of the object. This copy has all its immediate
properties which were Promises replaced with the resolved value of
those promises. Promises are run with `Promise.all`. Errors are passed
up to the outer promise chain.
Example usage:
```js
resolvePromiseProperties({
promise: Promise.resolve("this property will resolve to this string"),
nonPromise: "this will remain the same",
// you can nest the function
nestedPromiseInside: resolvePromiseProperties({
nestedPromise: Promise.resolve("this will resolve"),
nestedNonPromise: "this stays the same",
}),
})
.then(obj => console.log(obj))
```
That will produce the following output:
```js
{
promise: "this property will resolve to this string",
nonPromise: "this will remain the same",
nestedPromiseInside: {
nestedPromise: "this will resolve",
nestedNonPromise: "this stays the same",
},
}
```
- New state field: `state.entryDraft.hasChanged`, initialized to
`false`.
- `state.entryDraft.hasChanged` set to `true` in `entryDraft` reducer
for `DRAFT_CHANGE_FIELD`.
- `EntryPage` adds a `listenBefore` listener to `history` on
`componentDidMount` that checks `this.props.entryDraft.hasChanged`
and, if that is true, asks the user to confirm the navigation.
- `EntryPage` removes its listener on `componentWillUnmount`.
Full stops in slugs were preventing branch creation for unpublished
entries when using the editorial workflow, as `.` is not an allowed
character in branch names. This commit changes slug generation so
periods are replaced with `-` the same way other "non-sluggable"
characters are.
* Version Bump
* local search skeleton
* Added WaitService middleware
* Return matching queries
* wait action middleware rename/refactor
* bigger debounce time
* Fix: Initialize state using Immutable
* Local Search without integrations
* Local Search refactor: Keep state in closure, recurse
* “string” should be treated as the default widget by the inference. Closes#199
* Field config options: 'required' and 'pattern'
* Widget controls can implement it's own isValid
* Validation errors store in redux & displayed
* Support for returned Promises in isValid
* Allow widget controls to return either a boolean, an error object or a promise from isValid
* Merge conflicts automatically. Closes#208
* removed unpublished entry route
All entries (either under editorial workflow or not) go through the same edit route.
* Add metadata to draft entry fields
* Do not render widget if value is null
* Pass along metadata
* Namespace queries to avoid conflict
* Query relational field on mount (for when editing entries)
* Make sure metadata is Immutable
* Added collection name as metadata keys
* No need for set width for base Card anymore
* entries are not required
* Redirect from Dashboard to first collection if publish mode is simple
* collection inference: Add more synonyms to description
* Implemented a better default preview for editing entries
* Add label field in default preview for small text values
* Added margin for default preview
* Make string the default widget if none is specified
* Linting fixes for PreviewPane
* Linting fixes for ControlPane
* Add date widget
* Fix name of date control class
* Fix spaces in list control with no fields
* Fix linting error for List Control
* Fix linting errors in raw editor
* Add Select widget
* Fix linting error
* infer card title
* Infer entry body & image
* infer image
* Better terminology: EntryListing accept a single Collection
* remove log
* Refactored Collections VO into selectors
* use selectors when showning card
* fixed size cards
* Added 'bio' and 'biography' to collection description inference synonyms
* Removed unused card file
* throw error instance
* bugfix for file based collections
* lint
* moved components with css to own folder
* Search Bugfix: More than one collection might be returned
* Changed sidebar implementation. Closes#104 & #152
* Show spinning loading for unpublished entries
* Refactored Sidebar into a separate container
* Make preview widgets more robust
* Use collection label instead of name on the CollectionPage
* Added Avatar and logout menu item
* [feat](login) Added userpic with a logout action in the dropdown.
- Display logged in user in the AppHeader
- Implemented logout action and store + tests
- Better styles for GitHub sign in screen
Closes#100
* Better styles for the AppHeader
* Fixed some ESLint errors
* Better card's design for the editorial process.
- Use Card component from react-toolbox
- Added "Edit" buttons for cards
- Cleaned up CSS and JS
Fixes#125
* Better ImageCard and card list view. Fixes#125
* Use collection label instead of name on the CollectionPage
* Less repetition in webpack configs. Minify CSS classnames in production.
* Ignore all optional deps of moment.js. Fixes#138
* Added target to webpack config
* Automatically extract all 3rd party modules into a separate 'vendor' chunk
* Inline only assets that are smaller than 10KB
* Added autoprefixer options
* Replaced sinfle babel transforms with the stage-1 preset. Cleaned up webpack configs.
* Do not include hot module replacement in production