582 Commits

Author SHA1 Message Date
Shawn Erquhart
dd29658abb split out ToolbarPluginFormControl 2017-04-24 17:52:05 -04:00
Shawn Erquhart
63e916ee2a check for sticky ref before update 2017-04-24 17:52:05 -04:00
Shawn Erquhart
c7d3de0fc8 use ToolbarButton for plugins 2017-04-24 17:52:05 -04:00
Shawn Erquhart
c5d9f44de2 split out ToolbarButton component 2017-04-24 17:52:05 -04:00
Shawn Erquhart
5d839e8410 fix sticky toolbar width 2017-04-24 17:52:05 -04:00
Shawn Erquhart
a1a693051c improve preview toggle styling 2017-04-24 17:52:05 -04:00
Shawn Erquhart
192afe2ec5 make markdown toggle purpose more obvious
The "< >" button on the toolbar should format selected
text as code, but its serving as a visual mode toggle.
This commit switches out the code icon for a text label,
and moves it to the right side of the rich text toolbar.
2017-04-24 17:52:05 -04:00
Shawn Erquhart
de900eeb39 reposition properly when new sticky inserted 2017-04-24 17:52:05 -04:00
Shawn Erquhart
fc5d935e53 use Context for sticky, support multiple stickies 2017-04-24 17:52:05 -04:00
Shawn Erquhart
ec29a04089 implement initial working sticky rte toolbar 2017-04-24 17:52:05 -04:00
Shawn Erquhart
33fe2b820c add active state to rich text raw toggle 2017-04-24 17:52:04 -04:00
Shawn Erquhart
b2fd96c12e condense rich text functionality to static toolbar 2017-04-24 17:52:04 -04:00
Benaiah Mischenko
4bb03b8379 Merge pull request #382 from netlify/list-item-delete
fix list item deletion
2017-04-21 12:03:30 -07:00
Joseph Earl
6d7bf3b186 Fixes 298 Basic validation for config 2017-04-21 11:03:24 -07:00
Benaiah Mischenko
365c0358e9 Mock AssetProxy in frontmatter testing 2017-04-21 10:34:33 -07:00
Shawn Erquhart
17b40b58ea fix frontmatter stringification for date fields
Switches back to custom frontmatter stringification
until support lands in preliminaries. This is necessary
because we use custom schemas for certain data types,
such as dates and times.
2017-04-21 10:34:33 -07:00
Shawn Erquhart
d250b1cef3 fix list item deletion 2017-04-20 15:22:04 -04:00
Kevin McCormack
39852e9982 Fix filtering by file extension 2017-04-19 11:45:07 -04:00
Benaiah Mischenko
3be734da05 Merge pull request #370 from josephearl/filter-files-extension
Fixes #278 Filter folder collection files by extension
2017-04-18 16:28:05 -07:00
Joseph Earl
22137ed777 Fixes #292 Display version number 2017-04-18 16:11:48 -07:00
Joseph Earl
265146e2d1 Fixes #278 filter files by extension 2017-04-18 22:59:30 +01:00
Kevin McCormack
76bf16d62e Add backend config for site ID
Users can now specify `site_domain` in `config.yml`. This is useful
when attempting to access the CMS from a different host.
2017-04-18 16:24:45 -04:00
Joseph Earl
684fd1c490 Fixes 358 Save bar stuck 2017-04-14 21:30:49 +01:00
Shawn Erquhart
2047fda27c Merge pull request #360 from marzeelabs/feature/#359_list_children_metadata
#359 - Handle metadata for all children of a list field
2017-04-14 12:59:08 -04:00
Joseph Earl
4afec469f9 Merge pull request #355 from josephearl/113-disable-editor-preview
Fixes #113 Disable editor preview
2017-04-14 17:48:34 +01:00
Joseph Earl
4be23e5fc7 Show error if config fails to parse 2017-04-14 17:22:24 +01:00
Joseph Earl
e2f471e863 Remove webpack footer 2017-04-14 13:56:24 +01:00
Joseph Earl
881c0b0958 Fixes #113 Add ability to disable editor preview for a collection 2017-04-14 13:26:09 +01:00
Luis Correia
b75f86f4c2 #359 - Delete metadata by key of deleted value (previously harcoded) 2017-04-13 12:45:32 +01:00
Luis Correia
805f958165 #359 - Handle metadata for all children of a list field 2017-04-13 11:02:06 +01:00
Benaiah Mischenko
d58cd652d8 Cleanup resolvePromiseProperties
There were a couple issues with the original version of
`resolvePromiseProperties`:

- The wrapper promise was unnecessary, since we can just return the
  `Promise.all`. Fixing this allows us to remove a wrapping function,
  reduce indentation, remove the `resolve` and `reject` calls, and
  remove the now unnecessary `.catch` line.

- There was inadvertent mutation in the `Object.assign` call - the
  first parameter to `Object.assign` is mutated, so to call it without
  mutating existing objects the first parameter should be a literal
  `{}`. This is now fixed.
2017-04-11 10:55:56 -07:00
Joseph Earl
dc313d157b Rename YamlFrontmatter to just Frontmatter 2017-04-09 19:32:33 +01:00
Joseph Earl
a2e8602fdd Add multi-format frontmatter parser 2017-04-08 23:32:39 +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
12f5e4cda8 Merge pull request #306 from americool/adding-close-preview-feature
Adding close preview feature
2017-04-06 15:56:24 -07:00
Julian Krispel-Samsel
c560689edd fixes #258 - reverse collection order (#345) 2017-04-05 15:02:13 -07:00
Shawn Erquhart
4752a1f150 add styling for preview toggle 2017-04-05 12:43:18 -04:00
Americool
948158cda3 small fixes changed PREVIEW_STATE to PREVIEW_HIDE 2017-04-05 12:42:30 -04:00
Americool
1f5db5ab3c adding close preview 2017-04-05 12:42:30 -04:00
Shawn Erquhart
71e683f5bf Fix logout for Firefox
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.
2017-03-31 15:47:55 -04:00
Benaiah Mischenko
1aa02eb42a Refactor readUnpublishedBranchFile with resolvePromiseProperties 2017-03-20 17:16:58 -07:00
Benaiah Mischenko
1dc2841609 New promise helper, resolvePromiseProperties
`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",
  },
}
```
2017-03-20 17:04:40 -07:00
Benaiah Mischenko
c079cb96c4 Label cards in editorial workflow 2017-03-20 17:02:52 -07:00
Shawn Erquhart
b3ce95057e fix preview pane height in Safari 2017-03-20 12:33:04 -04:00
Luis Correia
e9c6e8cda1 #294 Make commit messages imperative 2017-03-17 01:09:52 +00: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
Shawn Erquhart
3096b4617e improve entry editor UI 2017-03-15 21:18:16 -04:00
Shawn Erquhart
736954da8b Merge pull request #285 from Benaiah/confirm-navigation-while-changes-unsaved
Confirm navigation when it would discard unsaved changes
2017-03-15 18:12:02 -04: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
Shawn Erquhart
705e348138 update sidebar styling, add new entry links (#276)
* udpate sidebar styling, add new entry links

* make sidebar new entry links always visible

* simplify app bar implementation, findbar
2017-03-15 11:32:41 -07:00
Mathias Biilmann Christensen
5e504bbc5a Fix firefox fetch issue in GitHub API 2017-03-15 00:06:31 -07:00
Benaiah Mischenko
47096c1cf0 Filter merged PRs from unpublished posts 2017-03-14 17:01:21 -07:00
Benaiah Mischenko
9fc98a738b Disallow full stops in entry slugs
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.
2017-03-14 13:39:56 -07:00
americool
3c7b8d2322 delete button working (#274)
Fixes #274.
2017-03-11 10:47:36 -08:00
Shawn Erquhart
ff8b420777 remove leading underscore from getWidget method 2017-03-06 19:38:21 -05:00
Shawn Erquhart
e48221a04f add shared widget getter for widgetFor and widgetsFor 2017-03-06 15:22:40 -05:00
Shawn Erquhart
9bc80ed5e4 add object support to widgetsFor 2017-03-06 13:30:40 -05:00
Shawn Erquhart
9dca9f912a add widgetsFor helper
This allows individual widgets to be accessed
from preview templates that handle lists
2017-03-06 12:28:40 -05:00
Mathias Biilmann Christensen
b777343d70 yet another field ordering related change 2017-02-21 23:59:34 -08:00
Mathias Biilmann Christensen
09e6f2c80e Fix ordering when persisting a files based entry 2017-02-21 23:41:40 -08:00
Mathias Biilmann Christensen
e9088957b3 Fix persistence for collections stored in different files
Getting the order of the fields failed when the collections was not folder based
2017-02-21 23:04:12 -08:00
Mathias Biilmann
e294b87554 Merge pull request #231 from verythorough/fix-img-width
Prevent giant images in editor
2017-02-17 16:27:16 -08:00
Luis Correia
471b26a9d5 #222 - Encode branch name on requests to avoid errors with special chars 2017-02-03 15:10:27 +00:00
Jessica Parsons
ffead874bf Fix oversized images 2017-02-02 13:15:20 -08:00
Cássio Zen
507b4cb957 Don't try to validate hidden fields 2017-01-31 17:09:45 -02:00
Cássio Souza
ecbcbf06b5 Role authorization for Netlify-auth (#224) 2017-01-26 19:23:42 -02:00
Cássio Zen
2a7314a3ef Removed console log 2017-01-23 18:32:39 -02:00
Mathias Biilmann Christensen
8e26d5db81 Bump version 2017-01-21 16:57:13 -08:00
Cássio Zen
d237318ef4 Bugfix: Only try to load file if there's a path 2017-01-19 17:28:06 -02:00
Cássio Zen
4dd0c0ccb5 Bugfix: Images not appearing on search 2017-01-19 16:34:13 -02: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 Zen
f5d1fa7314 Makes input fields easier to click. Closes #173 2017-01-19 14:26:49 -02:00
Cássio Zen
78a9ac0f4b Added more synonyms 2017-01-19 13:44:40 -02:00
Cássio Zen
ef9f499b42 Bugfix: Do not try to normalize absolute paths 2017-01-19 13:31:44 -02:00
Cássio Zen
b64259cb5a Sort frontmatter according to the fields order in config file. Closes #215 2017-01-19 12:09:18 -02:00
Cássio Zen
bd13a847a7 bugfix in path. Closes #219 2017-01-18 18:26:01 -02:00
Cássio Zen
11f7c1e047 bugfix in proptype 2017-01-16 16:52:59 -02:00
Cássio Zen
7b755d5839 Bugfix: List with basic string should call onChange 2017-01-16 16:52:24 -02:00
Cássio Zen
63ae669507 more variety of presence check 2017-01-16 16:51:53 -02: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 Zen
b710e706da Bugfix: Set draft as persisting for both publish modes 2017-01-13 17:52:27 -02:00
Cássio Zen
58461c0d22 Added same-origin credentials to fetch config file 2017-01-12 19:20:37 -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 Zen
c40171820f Log attempt to fetch unpublished entries 2017-01-11 17:45:54 -02:00
Cássio Zen
19e5c61f05 Catch errors from createObjectURL 2017-01-11 17:40:26 -02:00
Cássio Souza
a4d7622ade Asset API (#204)
Asset API
2017-01-10 22:23:22 -02:00
Cássio Zen
37f690fc44 List only collections where new entries are allowed. Closes #206 2017-01-05 13:43:37 -02:00
Cássio Zen
f6a1718085 Uniform slug generation 2017-01-02 17:31:01 -02:00
Cássio Zen
c20896d073 Removed help command from commandbar 2017-01-02 17:30:26 -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
Mathias Biilmann Christensen
544fc210ce Fix error in markup render test 2016-12-30 09:45:44 -08:00
Mathias Biilmann Christensen
815701bf11 Improvements to the demo experience
Explain what the email in the login is for
Make a guess at the users name
Don't mark uploaded files as persisted (since they're not)
2016-12-30 09:40:15 -08:00
Mathias Biilmann Christensen
c60d1a71cc Make sure the example login page looks decent 2016-12-29 18:38:16 -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
Cássio Zen
e47a12f6ec Add support for custom prefix on index name 2016-12-28 15:29:39 -02:00
Mathias Biilmann Christensen
b8e04f72a3 Treat lists as tight in code mirror so we don't get Ps inside them 2016-12-27 23:19:00 -08:00
Mathias Biilmann Christensen
75100eaa3a Support for drag and drop image uploads in both rte and raw editor mode 2016-12-27 23:18:37 -08:00
Mathias Biilmann Christensen
2ed2160c92 Persist richtext vs raw setting in localstorage 2016-12-27 23:17:33 -08:00
Mathias Biilmann Christensen
1e1ec76407 Make MarkupItReactRenderer use media proxies when rendering image paths 2016-12-27 23:16:46 -08: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
Mathias Biilmann Christensen
06218e55eb Update prosemirror 2016-12-27 23:13:31 -08:00
Cássio Zen
ca98f72c0c Showing errors on login screen 2016-12-27 16:58:02 -02:00
Mathias Biilmann Christensen
8b82a5b72e Add a script for auto configurating a collection 2016-12-26 17:44:50 -08:00
Cássio Zen
ff6bfe3789 changed default localStorage Key 2016-12-23 17:30:27 -02:00
Cássio Souza
1efc59a9fb Netlify auth (#194) 2016-12-23 16:59:48 -02:00
Mathias Biilmann Christensen
83f08e8eb8 Revert "Bump patch version"
This reverts commit 8f6f1a0fcabfeb423ca8af2f9f6d55ace21e45bb.
2016-12-23 08:59:51 -08:00
Mathias Biilmann Christensen
8f6f1a0fca Bump patch version 2016-12-22 23:17:26 -08:00
Cássio Zen
5cc17c05e5 Adjustments to slug processing 2016-12-15 16:20:54 -02:00
Cássio Souza
635049b8db Resizable split pane (#190)
* Integrating with react-split-pane

* block event while resizing panels

* bring scrollsync back

* fixed footer position
2016-12-12 19:23:52 -02:00
Cássio Zen
2ea86f7e48 improved public path resolution 2016-12-07 17:56:49 -02: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 Zen
4f6f4bfae9 Output code tag around pre. Closes #181 2016-12-02 19:58:44 -02:00
Cássio Zen
db58c1216b Temporarily disabling some Find Bar functionalities 2016-12-02 19:25:38 -02:00
Cássio Zen
21073f3f15 Clean state after search command. Closes #124 2016-12-02 17:55:31 -02:00
Cássio Zen
88d02ebb71 Missing Prop. Closes #182 2016-12-02 15:19:08 -02:00
Cássio Zen
14c798517c Github 'Not Found' for unplublished entries means there are no unpublished entries 2016-12-01 19:59:29 -02:00
Cássio Zen
692f8e972e Removed global height/padding styles. Fixes #159 2016-12-01 18:47:35 -02:00
Cássio Zen
782c386d3e Widget should set default values through onChange
Otherwise, default value may not get persisted
2016-12-01 16:28:33 -02:00
Cássio Souza
047f84405a Entry Draft Refactor (#178) 2016-11-30 16:52:17 -02:00
Cássio Zen
4ddc46ba25 Fix: Path was being incorrectly injected on entry for persistence. Closes #176 2016-11-30 15:58:09 -02:00
Cássio Zen
aea6d38121 Limit responsive images in default preview to maxWidth 100% 2016-11-30 15:56:54 -02:00
Cássio Souza
3cbb1ba280 List single field (#175)
* accept both single or multiple fields

* labelField should be defined
2016-11-29 20:18:01 -02:00
Cássio Zen
6194e969f5 Friendlier error message for missing media_folder 2016-11-29 16:16:56 -02:00
Cássio Zen
a440b370ea Added a default template for slugFormatter. Fixes #171 2016-11-29 16:13:59 -02:00
Cássio Zen
43c93dff26 Inject base target to '_blank' on preview iframe. Closes #172 2016-11-29 15:18:25 -02:00
Mathias Biilmann Christensen
3f13435ff0 Make sure we export the CMS for npm use 2016-11-23 12:26:15 -08: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
2af586867f Merge with use-publicFolder 2016-11-17 15:36:57 -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 Souza
1fe386b324 Config default values (#164)
* Use public_folder to display images persisted with no path reference

* Allow for default values on a collection field
2016-11-17 12:03:54 -02:00
Cássio Souza
007575d315 Use public_folder to display images persisted with no path reference (#163) 2016-11-17 11:41:54 -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
Mathias Biilmann
d81d0d416f Widget fixes (#162)
* 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
2016-11-17 10:08:37 -02:00
Mathias Biilmann Christensen
790619083d Fix cms hanging when going to new entry page 2016-11-15 17:21:33 -08:00
Mathias Biilmann Christensen
0eff4484d0 Fix alignment of entry cards 2016-11-11 17:22:18 -08:00
Mathias Biilmann Christensen
077d9d7fa0 Fix Toolbar.css overwritten by linter script 2016-11-11 16:09:04 -08:00
Cássio Zen
0521757b8c prosemirror integration 2016-11-11 18:36:11 -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
Mathias Biilmann Christensen
8461abc1b5 Replace md parser for pubstorm to make editor plugins work 2016-11-04 11:04:54 -07:00
Cássio Souza
a6fc8506f5 Dashboard page (#150) 2016-11-02 12:25:43 -02:00
Mathias Biilmann Christensen
038597573c Custom plugin support in rte 2016-11-01 23:31:20 -07:00
Mathias Biilmann Christensen
f02bd9a789 Link support in prose mirror 2016-11-01 17:58:19 -07:00
Mathias Biilmann Christensen
27d33d2a84 Make headers buttons toggle headers 2016-11-01 17:51:49 -07:00
Mathias Biilmann Christensen
97928a7b34 Fix undo history in prose mirror 2016-11-01 17:25:37 -07:00
Mathias Biilmann Christensen
4c221e3238 Fix linter overwriting css 2016-11-01 16:58:38 -07:00