76 Commits

Author SHA1 Message Date
Caleb
d378488e0f Stop using logout when no locally stored user was found.
This was causing users to not be able to sign up with Netlify Identity.
2017-11-11 14:52:18 -05:00
Shawn Erquhart
4d33d67798 fix empty media folder loading error 2017-11-11 10:34:10 -05:00
Shawn Erquhart
6b45a46a39 add media library
* rebase editorial workflow pull requests when behind

* fix async/await transpilation

* add media library pagination

* switch media library to grid layout

* ensure that only cms branches can be force updated
2017-11-08 15:00:28 -05:00
Caleb
c707228c8f Disable login button while login is in progress. 2017-11-07 12:24:33 -05:00
Richard Pullinger
a14f25355e Add delete flag in configuration (#707)
Adds a `delete` flag to collections in `config.yml`; fixes
#593. Defaults to false. This is mostly for use with files to restrict
users from deleting settings files etc that available via the CMS.
2017-10-30 13:07:54 -07:00
Caleb
1bb2b56366 Cleanup file formatters. (#759)
* Clean up frontmatter formatter.

* Move `formatToExtension`.

* Use plain objects for file formatters.

* Use same parsers for files and frontmatter.

We want to use our file parsers for frontmatter, instead of the builtin
ones, as they process some formats (images, dates) properly.

* Cleanup YAML frontmatter parser code.
2017-10-30 12:48:19 -07:00
Caleb
2c19c221e7 Fix TOML files not being saved with correct file extension. 2017-10-30 10:30:05 -04:00
Caleb
2c8e8bece0 Fix collections breaking if folder has trailing slash. 2017-09-18 08:27:49 -06:00
Benaiah Mischenko
dac57c60a0 Entry deletion for the simple workflow (#485) 2017-07-21 23:40:33 -07:00
Joseph Earl
6d7bf3b186 Fixes 298 Basic validation for config 2017-04-21 11:03:24 -07:00
Joseph Earl
265146e2d1 Fixes #278 filter files by extension 2017-04-18 22:59:30 +01:00
Benaiah Mischenko
d503547883 Stop showing loader forever when there are no entries (#343) 2017-04-07 09:32:30 -07:00
Benaiah Mischenko
3adb1ee4fc Set correct hasChanged and set it on all entry persistence actions 2017-03-16 11:34:36 -07:00
Benaiah Mischenko
47c46e7a6a Set state.entryDraft.entry.hasChanged to false when an entry saves succesfully 2017-03-16 11:05:17 -07:00
Benaiah Mischenko
a88b2d6c9f Confirm navigation when it would discard unsaved changes
- 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`.
2017-03-15 14:49:38 -07:00
Cássio Souza
0e10c3f984 Local search (#220)
* 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
2017-01-19 15:50:26 -02:00
Cássio Souza
3306670459 Validation (#216)
* 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
2017-01-13 19:30:40 -02:00
Cássio Zen
b710e706da Bugfix: Set draft as persisting for both publish modes 2017-01-13 17:52:27 -02:00
Cássio Zen
4f2dc92bfe Block save/publish buttons while processing 2017-01-11 22:36:49 -02:00
Cássio Souza
48d8077ff0 Editorial workflow Improvements (#212)
* Merge conflicts automatically. Closes #208
* removed unpublished entry route
All entries (either under editorial workflow or not) go through the same edit route.
2017-01-11 20:58:15 -02:00
Cássio Souza
a4d7622ade Asset API (#204)
Asset API
2017-01-10 22:23:22 -02:00
Mathias Biilmann
112bdd348a Merge pull request #198 from netlify/prosemirror-polishing
An assortment of Markdown Editor fixes
2016-12-30 09:49:36 -08:00
Cássio Souza
ddfdc59941 Add metadata to draft entry fields (#196)
* 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
2016-12-29 17:18:24 -02:00
Mathias Biilmann Christensen
5ff2942435 Memoize media proxies since we look them up a lot when doing previews 2016-12-27 23:14:19 -08:00
Cássio Souza
05337ff232 Relation search widget (#186)
* search action/reducer refactor

* Relation widget skeleton

* search clearing

* query action + reducer

* Autocomplete component for RelationControl
2016-12-07 15:44:07 -02:00
Cássio Souza
b1a5ea95d3 Refinements & Preview Defaults (#167)
* 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
2016-11-23 16:23:32 -02:00
Cássio Zen
695f533c8e Added resolvePath helper to normalize and prepend the public_path and as needed 2016-11-17 15:33:02 -02:00
Cássio Zen
8d9f894928 Use public_folder to display images persisted with no path reference 2016-11-17 11:12:14 -02:00
Cássio Souza
2a2497072d UI updates (#151)
* 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
2016-11-11 17:54:58 -02:00
Andrey Okonetchnikov
5b5f1edb22 Moved applyDefaults function and related code to actions (where it belong).
- Moved applyDefaults + related code
- Added tests for /actions/config.js
- Fixed some ESLint errors
2016-11-11 12:32:03 +01:00
Andrey Okonetchnikov
6ce58a789d Do not use expect to get better diffs out of Jest 2016-11-11 11:02:11 +01:00
Andrey Okonetchnikov
4d696f2253 Login workflow (#137)
* 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
2016-11-01 11:35:20 -02:00
Cássio Zen
295cdd2f6d Persistence editorial workflow through own actions & reducer 2016-10-31 18:19:51 -02:00
Cássio Zen
baafe0b32f refactor on slugformatter 2016-10-27 13:50:02 -02:00
Cássio Souza
2496ec09a4 Single file collections (#132)
* Files based collections skeleton

* listing file based cards

* create new entry with collection

* moved lookupEntry to main backend

* Editing single page Collections file

* List widget basic implementation

* Adjustments for test-repo

* check if value exists before trying to iterate over
2016-10-21 20:42:14 -02:00
Andrey Okonetchnikov
188fec4529 [feature] Better loading indicator
- Use react-topbar-progress-indicator as a global loading indicator.
- Added a global reducer that only holds `isFetching` for now.
- Display loading indicator on any `*_REQUEST` actions.
- Closes #103
2016-10-20 18:52:24 +02:00
Cássio Zen
f7b74453ab bugfix. Closes #122 2016-10-20 11:30:29 -02:00
Cássio Souza
e001714aed Optimistic Updates (#114)
* Optimistic Updates structure
* Optimistic update for Editorial Workflow
2016-10-18 14:30:13 -02:00
Andrey Okonetchnikov
f3b448106d Added notifications. Closes #101
- Using react-notifications to manage redux state
- Refactored Toast component to be stateless
- Toasts can be stacked
- Cleaned up CSS
- Updated stories
2016-10-17 12:35:31 +02:00
Andrey Okonetchnikov
e53262d92c Moved persisting logic to entryDraft reducer + added tests. 2016-10-13 14:30:11 +02:00
Andrey Okonetchnikov
f9c43bd275 Removed expect import 2016-10-13 11:56:26 +02:00
Andrey Okonetchnikov
27659b77f1 Removed console.error from auth reducer to cleanup tests outputs. We should use Netlify error wrapper. 2016-10-13 11:34:55 +02:00
Andrey Okonetchnikov
077e83dfc9 Handle entry persisting state in actions and reducer + added tests. 2016-10-12 19:19:05 +02:00
Andrey Okonetchnikov
8d51f9be3e Fixed ESLint errors and tests for entries reducer 2016-10-12 16:04:58 +02:00
Cássio Souza
2815a86e0c Search integration (React Version) (#84)
* algolia integration skeleton

* Configuration Defaults

* Implemented partial entries with lazy loading of complete file

* Moved backend selection logic to actioncreators

* basic pagination for entries

* general search skeleton

* Basic search result listing

* Redo search for different search terms

* search results pagination

* Changing integration config & handling

* Changing integration config & handling

* new integration config model
2016-10-10 15:34:21 -03:00
Andrey Okonetchnikov
0b69f6fa98 Switched to Jest testing framework.
Made tests pass again. Created entries.spec.js + made it pass.
Added wallaby.config.js to support wallaby.js runner.
2016-09-20 14:00:03 +02:00
Cássio Zen
71b5b0bde9 merge button for editorial workflow 2016-09-14 18:25:45 -03:00
Cássio Zen
0b447d483d Editorial workflow Drag'nDrop 2016-09-13 18:54:39 -03:00
Andrey Okonetchnikov
2b27718493 Enabled HMR for reducers 2016-09-13 18:05:20 +02:00
Cássio Zen
911e3f7077 initialize editorialWorkflow state after config loaded & parsed 2016-09-13 04:29:30 -03:00