38 Commits

Author SHA1 Message Date
Shawn Erquhart
842c2935e9 use mdast instead of html for rte local model
markdown is currently serialized to html at load time,
which makes it near impossible to support arbitrary html
in the markdown. This also means we're stringifying to
html on every change.

This commit moves to Remark's MDAST for local serialization,
including parsing from MDAST to Slates's Raw AST. It brings
much more control over the editing experience and full
support for processing unescaped HTML.
2017-08-25 16:30:37 -04:00
Benaiah Mischenko
dac57c60a0 Entry deletion for the simple workflow (#485) 2017-07-21 23:40:33 -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 Zen
8c6bbed0cd Make sure to try to persist on next tick 2017-01-13 19:46:49 -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 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
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
790619083d Fix cms hanging when going to new entry page 2016-11-15 17:21:33 -08: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
Cássio Zen
44bbb84d44 bugfix in Draft entry editing 2016-11-01 14:31:04 -02:00
Cássio Zen
dabf6a1be1 typo 2016-10-27 13:10:44 -02:00
Mathias Biilmann Christensen
bbce1c30de Make loading single file work without scanning whole collection 2016-10-27 14:23:36 +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
863d90c8ee Use Loader on the entry page. Closes #102 2016-10-14 13:42:58 +02:00
Andrey Okonetchnikov
e53262d92c Moved persisting logic to entryDraft reducer + added tests. 2016-10-13 14:30:11 +02:00
Andrey Okonetchnikov
190aa05d68 Use react-toolbox buttons. Added Cancel button for the entry editor. 2016-10-11 18:27:37 +02:00
Andrey Okonetchnikov
899681ee84 Merge branch 'master' into markitup-react 2016-10-11 10:28:42 +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
ca34def49e Merge branch 'master' into markitup-react 2016-10-03 17:00:11 +02:00
Andrey Okonetchnikov
4010a16a76 Use static propTypes class property 2016-10-03 14:33:48 +02:00
Andrey Okonetchnikov
382b1537b0 Use ES7 class properties initializers 2016-10-03 14:25:27 +02:00
Andrey Okonetchnikov
841772496a Moved EntryEditor to a separate directory 2016-09-29 19:02:28 +02:00
Andrey Okonetchnikov
eb14200643 Fixed ESLint errors and warning that could be fixed with eslint --fix 2016-09-13 15:30:58 +02:00
Cássio Zen
165c758bb9 Updated reducer for editorial workflow 2016-09-13 04:09:52 -03:00
Cássio Zen
f51525baaa edit unpublished content on EntryPage (through HOC) 2016-09-13 03:59:48 -03:00
Cássio Zen
b717874e7b Allow the creation of new entries 2016-08-24 21:37:22 -03:00
Cássio Zen
18ad041d96 Preparing for github file persistence 2016-07-19 17:11:22 -03:00
Cássio Zen
093bd264b6 eslint compliance on container components 2016-06-30 17:28:47 -03:00
Cássio Zen
1700f98e4e Refactor on upload media data fow 2016-06-10 14:01:14 -03:00
Cássio Zen
1ba98fdb5a refactor: Creating Medias reducer 2016-06-10 00:16:01 -03:00
Cássio Zen
9275aaec90 Moved draft state for an entry (when in edit mode) to Redux 2016-06-08 11:18:34 -03:00
Cássio Zen
83d03c63ec persistence draft
Persisting individual media file objects
2016-06-07 01:20:54 -03:00
Mathias Biilmann Christensen
32e54cdbdc Load, display and edit entries from test repo and github 2016-06-05 01:52:18 -07:00
Mathias Biilmann Christensen
7601d3f5a1 Cleanup 2016-05-30 17:13:40 -07:00
Mathias Biilmann Christensen
ba8febd107 fix naming of entry page 2016-05-30 17:08:30 -07:00
Mathias Biilmann Christensen
d2aa1adf7b Basic editing with some widgets 2016-05-30 16:55:32 -07:00
Mathias Biilmann Christensen
978b7290c5 Test repo can now be used to list entries 2016-02-25 20:40:35 -08:00