Commit Graph

4047 Commits

Author SHA1 Message Date
Kevin Ansfield
cc2e20a486 Koenig - Added reading time and word count display
refs https://github.com/TryGhost/Ghost/issues/9724
- add `registerComponent` hook to cards so that `{{koenig-editor}}` can fetch properties from card components directly
- add word count and reading time utilities
- add throttled word count update routine to `{{koenig-editor}}` that walks all sections and counts text words or fetches word/image counts from card components
- add `wordCountDidChange` hook to `{{koenig-editor}}` so that word count + reading time can be exposed
- modify editor controller to update it's own word count property when koenig triggers it's action
- modified the editor template to show reading time + word count next to the post status
2018-07-20 15:53:21 +01:00
Kevin Ansfield
0bfe190bb3 Koenig - Implement full set of text editing shortcuts
refs https://github.com/TryGhost/Ghost/issues/9724
- <kbd>Ctrl+Alt+1</kbd> - Togggle heading level 1
- <kbd>Ctrl+Alt+2</kbd> - Togggle heading level 2
- <kbd>Ctrl+Alt+3</kbd> - Togggle heading level 3
- <kbd>Ctrl+Alt+4</kbd> - Togggle heading level 4
- <kbd>Ctrl+Alt+5</kbd> - Togggle heading level 5
- <kbd>Ctrl+Alt+6</kbd> - Togggle heading level 6
- <kbd>Ctrl/Cmd+H</kbd> - Cycle through heading levels 2-6
- <kbd>Ctrl+Q</kbd> - Toggle blockquote
- <kbd>Ctrl+L</kbd> - Toggle unordered list
- <kbd>Ctrl/Cmd+K</kbd> - Toggle link
- <kbd>Ctrl/Cmd+B</kbd> - Toggle bold
- <kbd>Ctrl/Cmd+I</kbd> - Toggle italic
- <kbd>Ctrl/Cmd+U</kbd> - Toggle underline
- <kbd>Ctrl+Alt+U</kbd> - Toggle strikethrough
- <kbd>Ctrl/Cmd+Shift+K</kbd> - Toggle code
2018-07-20 13:24:48 +01:00
Kevin Ansfield
4d826fa004 Use filter instead of status and staticPages params for post queries (#1025)
no issue
- `staticPages` API param is deprecated in favour of using the `filter` param
- switched `status` query to param to the `filter` param as well for consistency
2018-07-20 11:57:53 +01:00
Kevin Ansfield
cc41f07213 🎨 Koenig - Allow Ctrl/Cmd+Enter to exit card edit mode
refs https://github.com/TryGhost/Ghost/issues/9724
- <kbd>Ctrl/Cmd+Enter</kbd> is the shortcut to enter edit mode of a card that has it
- adds <kbd>Ctrl/Cmd+Enter</kbd> as a shortcut to exit edit mode as an addition to <kbd>Escape</kbd> for easier toggling in/out of edit mode
2018-07-18 15:15:07 +01:00
Kevin Ansfield
235d71d6a0 🐛 Koenig - Fixed required double-click on (+) when cursor is not in same paragraph
refs https://github.com/TryGhost/Ghost/issues/9724
- ignore the range change which would otherwise close the menu when clicking a (+) next to a different paragraph then the one the cursor is currently on
2018-07-18 15:04:02 +01:00
Kevin Ansfield
e659dcdec7 🐛 Koenig - Prevent double-clicks to enter MD edit mode triggering toolbar buttons
refs https://github.com/TryGhost/Ghost/issues/9724
- add an overlay to the markdown card for 500ms when entering edit mode to stop extra clicks accidentally triggering toolbar buttons
2018-07-18 14:34:11 +01:00
Kevin Ansfield
0c35edd372 🐛 Koenig - Fixed Safari scrolling to bottom of post when using link input
refs https://github.com/TryGhost/Ghost/issues/9724
- `autofocus="true"` in Safari was overriding the custom focus method which keeps the scroll position locked
2018-07-18 12:54:09 +01:00
Kevin Ansfield
ea851ebaad Version bump to 1.24.9 2018-07-18 11:45:47 +01:00
Kevin Ansfield
075037cadb Koenig - Fixed /-menu Enter card creation
refs https://github.com/TryGhost/Ghost/issues/9724
- eb865f841f introduced a bug because it expected an event param that is only available when clicking
- add guard to check for `event` presence before attempting to stop propagation
2018-07-18 11:41:01 +01:00
Kevin Ansfield
57427ba5be Koenig - Fixed placeholder position
refs https://github.com/TryGhost/Ghost/issues/9724
- bump `ghost-spirit`
  - has position fix for placeholder now that we're not using flexbox
2018-07-18 11:39:01 +01:00
Kevin Ansfield
5993280f49 🐛 Koenig - Fixed Cmd+Backspace with special chars and Firefox triple-click behaviour
refs https://github.com/TryGhost/Ghost/issues/9724
- bump to custom build of mobiledoc-kit that includes unreleased fixes
  - cmd+backspace stopping on special chars: https://github.com/bustle/mobiledoc-kit/pull/632
  - Firefox triple-click then typing not replacing content: https://github.com/bustle/mobiledoc-kit/pull/593
2018-07-17 18:13:05 +01:00
Kevin Ansfield
eb865f841f 🐛 Koenig - Fixed clicking certain icons in /-menu not creating cards
refs https://github.com/TryGhost/Ghost/issues/9724
- the click event from clicking on the /-menu items continued propagating after the card was initialised which meant it was picked up by the card as a "click off the card" so certain cards such as the Markdown/HTML cards would then remove themselves as if they were deselected with empty content
- changed the icon click handler to use the DOM `onclick` syntax so that the click can be captured immediately rather than waiting for it to bubble up to Ember's global event handler
- updated the /-menu `itemClicked` action to use the now-accessible MouseEvent to stop it propagating any further and triggering unwanted card behaviour
2018-07-17 17:22:28 +01:00
Kevin Ansfield
62d626a9fd 🐛 Koenig - Fixed "Retry" link in embed card error message
refs https://github.com/TryGhost/Ghost/issues/9724
- `element.contains(target)` was not reliably picking up the `<span>` inside the `<button>` element
- added a fallback that searches the event path for the card component's ID
2018-07-17 17:02:36 +01:00
Kevin Ansfield
8a76e5346a 🐛 Koenig - Fixed error when clicking embed icons in /-menu
refs https://github.com/TryGhost/Ghost/issues/9724
- `{{koenig-menu-content}}` does not pass any params through when an item is clicked
- move the `params` fetching via the query string from `_performAction()` to `actions.itemClicked` so that it works for both <kbd>Enter</kbd> and icon clicks
2018-07-17 14:32:49 +01:00
Kevin Ansfield
1027f85a68 🐛 Koenig - Fixed up/down cursor movement in Firefox and Edge
refs https://github.com/TryGhost/Ghost/issues/9724
- update Spirit so that we're not using `display: flex` on the `contenteditable` element
2018-07-12 16:42:14 +01:00
Kevin Ansfield
beab7a7a4f 🐛 Koenig - Fixed /-menu not working after the editor is reloaded
refs https://github.com/TryGhost/Ghost/issues/9724
- if the editor was reloaded by changing the post model either through clicking "New story" or using the search from the editor screen the /-menu would stop working
- keep track of the last seen `editor` instance inside `{{koenig-slash-menu}}` and register the `/` text input handler on the new editor instance if it changes
2018-07-11 15:08:51 +01:00
kirrg001
68ce5571f4 Version bump to 1.24.8 2018-07-11 00:26:50 +02:00
Kevin Ansfield
b6f5a443d5 Koenig - Show alert for unsupported browsers
refs https://github.com/TryGhost/Ghost/issues/9724
- add `ember-useragent` package so that we can check the user agent screen for known-incompatible browsers/devices
- show alerts for Edge, mobile browsers, and IE11 when accessing the editor with Koenig enabled
2018-07-10 14:14:08 +01:00
Kevin Ansfield
f673a4f19f Version bump to 1.24.7 2018-07-03 12:43:22 +01:00
Kevin Ansfield
c22ce512f3 Bump ember-light-table dependency
no issue
2018-07-02 17:18:52 +01:00
Kevin Ansfield
7b599ceacd Handle empty array of slack setting objects
no issue
- ensure at least one SlackIntegration object exists in the slack setting when deserialising
- remove blank SlackIntegration objects when serialising
2018-07-02 14:57:41 +01:00
Kevin Ansfield
2d2712ed89 Resolve ember-infinity InfinityRoute deprecation
no issue
- `ember-infinity` has deprecated it's route mixin in favour of it's new `infinity` service
2018-07-02 14:57:41 +01:00
Kevin Ansfield
6ea33b487c Bump dependencies (#1024)
no issue
- bump non-breaking deps
- bump yarn.lock sub-dependencies
2018-07-02 14:32:00 +01:00
Kevin Ansfield
0679eafa9f Koenig - Fix mobiledoc-kit imports
refs 87c2aa4d68
- remove the scoped package name from the import statements
2018-07-02 11:29:42 +01:00
Kevin Ansfield
87c2aa4d68 Koenig - Switch back to upstream mobiledoc-kit
no issue
- changes introduced in 7bd22a3b87 are now in the upstream repo
2018-07-02 11:22:34 +01:00
kirrg001
33e2d3da78 Version bump to 1.24.6 2018-06-26 19:08:01 +02:00
Kevin Ansfield
821696a7d7 🐛 Koenig - Fix Firefox adding "ArrowUp" or similar to caption fields
refs https://github.com/TryGhost/Ghost/issues/9623
- Firefox unlike other browsers triggers `keypress` events for non-printable characters
- use mobiledoc-kit's `Key` class to guard against adding non-printable key values to captions
2018-06-21 17:57:45 +01:00
Kevin Ansfield
06e6f42224 🐛 Koenig - Fixed caption/embed inputs in Firefox & Safari
refs https://github.com/TryGhost/Ghost/issues/9623
- disable `contenteditable` on the main editor element when an input in a card gains focus
    - Firefox chokes on inputs inside a `contenteditable` element
    - use a MutationObserver inside `{{koenig-card}}` to automatically add event handlers for focus/blur events so that each card is not required to set up handlers and enable/disable content editable manually
- bump Spirit dependency
    - remove `user-select: none` styling from `.form-text` for text inputs
    - fixes captions and embed inputs in Safari and improves behaviour in Firefox
- add a guard around `getSelection(0)` in the `_scrollCursorIntoView()` method to avoid Safari throwing errors
2018-06-21 15:47:50 +01:00
Kevin Ansfield
749839a8e1 🐛 Koenig - Fixed card click-to-deselect in Safari/Firefox
refs https://github.com/TryGhost/Ghost/issues/9623
- only Chrome exposes `MouseEvent.path` so use `MouseEvent.composedPath()` for Safari/FF support
2018-06-20 17:34:50 +01:00
Kevin Ansfield
e4dca1cb70 Koenig - Fixed HR card selection when clicking
refs https://github.com/TryGhost/Ghost/issues/9623
- clicks near the HR card when it was selected would trigger immediate deselection putting the cursor into a position where it was not possible to type
- update the guard in the click-to-deselect event handler to match any element contained by the editor rather than only clicks that are directly on the editor element
2018-06-20 16:54:43 +01:00
Kevin Ansfield
e79120c339 Koenig - Improved closing of (+) menu when cursor moves
refs https://github.com/TryGhost/Ghost/issues/9623
- close menu if it's open and the cursor position changes within the document
  - closes when you start typing rather than hiding text behind the menu
- watch for arrow keys and close the menu if pressed
  - closes when <kbd>Up</kbd> is pressed and the title is selected rather than the cursor being moved within the document
2018-06-20 15:45:43 +01:00
Kevin Ansfield
7ae1df7c8d Koenig - Lazy-click to edit on mouseup not mousedown
refs https://github.com/TryGhost/Ghost/issues/9623
- move lazy-click handling to a mouseup handler instead of mousedown in `{{koenig-card}}`
- ensure that we don't trigger edit mode on the initial mouseup after a mousedown event has selected the card
2018-06-20 15:00:07 +01:00
Kevin Ansfield
a6686e9cef Koenig - Ensure Enter behaviour is consistent when a card is selected
refs https://github.com/TryGhost/Ghost/issues/9623
- clicking a card a second time while it is selected can move the invisible cursor to the beginning of a section in which case <kbd>Enter</kbd> would insert a blank paragraph above the card
- when <kbd>Enter</kbd> is pressed and a card is selected, move the cursor to the end of the card section without triggering our cursor change so that the default behaviour will always add a paragraph after the card
2018-06-20 13:20:49 +01:00
Kevin Ansfield
984654e19e 🐛 Koenig - Fixed deselect if mouse released at end of doc when drag-selecting
refs https://github.com/TryGhost/Ghost/issues/9623
- track the `mousedown` position and switch the `click` handler to a `mouseup` handler
- only trigger the editor focus event if both the `mousedown` and `mouseup` events occur below the editor canvas
2018-06-20 13:11:12 +01:00
Kevin Ansfield
2fd9b79102 Koenig - Prevent rendered MD links being clickable
refs https://github.com/TryGhost/Ghost/issues/9623
- add an overlay to the rendered MD card so that links aren't clickable
2018-06-20 12:43:51 +01:00
Kevin Ansfield
bd27295ede Koenig - Added drag-n-drop upload/replace support in image card
refs https://github.com/TryGhost/Ghost/issues/9623
- do not process drop in `{{koenig-editor}}` if the drop happened on a card and the card's  `handlesDragDrop` property is true
- allow `dragover` events on cards to bubble up to Ember's event handler in `{{koenig-editor}}`
- handle drag/drop in `{{koenig-card-image}}`
    - show different overlays when dragging files over the card to indicate an upload or replace action
    - start upload when a file is dropped on the card
2018-06-20 12:34:30 +01:00
kirrg001
9e09d353c8 Version bump to 1.24.5 2018-06-19 17:18:01 +02:00
Kevin Ansfield
d030e7462c 🐛 Koenig - Fixed placement of dropped images
refs https://github.com/TryGhost/Ghost/issues/9623
- ensure images are placed where the cursor is when dropping or pasting images
- fixed errors when dropping/pasting images into a list
2018-06-19 14:42:24 +01:00
Kevin Ansfield
2699671506 🎨 Koenig - Split list when pressing Enter on a blank list item
refs https://github.com/TryGhost/Ghost/issues/9623
- override <kbd>Enter</kbd> behaviour when pressed on a blank list item mid-list
2018-06-19 13:09:46 +01:00
Kevin Ansfield
7bd22a3b87 🐛 Fixed backspace deleting words and rich-text paste collapsing paragraphs
refs https://github.com/TryGhost/Ghost/issues/9623
- switch to custom `mobiledoc-kit` build
  - fixes top-level elements not being run through parser plugins (https://github.com/bustle/mobiledoc-kit/pull/627)
  - fixes <kbd>Alt</kbd> getting stuck and causing <kbd>Backspace</kbd> to delete whole words (https://github.com/bustle/mobiledoc-kit/pull/626)
  - fixes error that can occur when a paste results in blank insert (https://github.com/bustle/mobiledoc-kit/pull/620)
- add new `figureToImageCard` parser
  - replaces hacky workaround to detect an image+figcaption inside the `imgToCard` parser plugin
- remove wrapping of html in a `<div>...</div>` when pasting
  - no longer necessary now that top-level elements are parsed
  - fixes rich-text pastes where multiple paragraphs would be collapsed into a single paragraph
2018-06-18 18:48:32 +01:00
Kevin Ansfield
9e3c5876ee Koenig - Fixed dash text expansions
refs https://github.com/TryGhost/Ghost/issues/9623
- ea2a6a09dc broke dash expansions because the list toggle was matching the `- ` before the dash text expansion could be triggered
- resolved by adding the missing beginning-of-string `^`
2018-06-15 15:43:00 +01:00
Kevin Ansfield
65e21cb1e0 Koenig - Fix list margins
refs https://github.com/TryGhost/Ghost/issues/9623
- bump Ghost-Spirit dependency
2018-06-15 14:25:30 +01:00
Kevin Ansfield
bc97cd39a8 🐛 Koenig - Fixed cursor jumping to title when pressing Up/Left on list items
refs https://github.com/TryGhost/Ghost/issues/9623
- update "exit cursor at top" logic so it doesn't look at the parent ListSection until the cursor has reached the first ListItem in a ListSection
2018-06-15 14:21:01 +01:00
Kevin Ansfield
ea2a6a09dc Koenig - Toggle list types using MD list syntax
refs https://github.com/TryGhost/Ghost/issues/9623
- toggle the list type (unordered vs ordered) when typing `- `, `* `, `1 `, or `1. ` at the beginning of a list item
2018-06-15 14:00:00 +01:00
Kevin Ansfield
54c3e1de66 Koenig - Toggle existing paragraphs into lists using MD list syntax
refs https://github.com/TryGhost/Ghost/issues/9623
- toggle a paragraph to a list when typing `- `, `* `, `1 `, or `1. ` at the beginning of the paragraph
2018-06-15 12:12:12 +01:00
Kevin Ansfield
cf572e3508 Koenig - Fix misaligned toolbar arrow in Night Shift
refs https://github.com/TryGhost/Ghost/issues/9623
2018-06-15 10:35:31 +01:00
Kevin Ansfield
496c3b586c Version bump to 1.24.4 2018-06-14 17:07:20 +01:00
Kevin Ansfield
1eaf85e5aa 🎨 Koenig - Keep posts free of blank cards
refs https://github.com/TryGhost/Ghost/issues/9623
- add new `deleteIfEmpty` option when defining cards
- add `.cleanup()` method to `{{koenig-editor}}` that will remove any blank cards
- pass `{{koenig-editor}}` instance up to the editor controller when it is initialised
- call `.cleanup()` in the editor controller when performing full saves, when leaving the editor with a draft, and when opening the editor with a draft
2018-06-14 16:55:02 +01:00
Kevin Ansfield
940e03d3d2 🐛 Koenig - Fixed jump to bottom of story when deleting a list
refs https://github.com/TryGhost/Ghost/issues/9623
- the `BACKSPACE` key command was checking to see if the current section is the first section but failed to take into account that lists are their own section lists
2018-06-14 13:09:49 +01:00
Kevin Ansfield
74f1837335 Koenig - Fix error when pressing Enter in title when first section is a list
refs https://github.com/TryGhost/Ghost/issues/9623
- ensure we're grabbing the correct section list, listItem.parent.sections is a list of the list items rather than all document sections
2018-06-14 13:01:54 +01:00