Commit Graph

3807 Commits

Author SHA1 Message Date
Kevin Ansfield
13ccd50404 Koenig - Fix image creation via (+) menu
refs https://github.com/TryGhost/Ghost/issues/9311
- image icon was missing the appropriate action
2018-03-14 12:23:54 +00:00
Kevin Ansfield
a20f4080f6 Koenig - Fix error when inserting cards in certain circumstances
refs https://github.com/TryGhost/Ghost/issues/9311
- the card selection in `cursorDidChange` would sometimes fail because the selection would be attempted before the newly inserted card had been pushed on to the `componentCards` array. This was reliably triggered by adding a card to a blank header section via the /-menu
- scheduling the section `afterRender` ensures that the `willRender` hook has fired and populated the `componentCards` array before the selection occurs
2018-03-14 12:13:54 +00:00
Kevin Ansfield
355bf18c7c Koenig - Wrap HR card in {{koenig-card}} component
refs https://github.com/TryGhost/Ghost/issues/9311
- makes the HR card behave like the other cards wrt hover and selection visibility
2018-03-14 11:44:09 +00:00
Kevin Ansfield
1a673cfe99 Koenig - Allow blank paragraphs to be deleted with Delete
refs https://github.com/TryGhost/Ghost/issues/9311
- adjust our <kbd>Delete</kbd> card deletion logic to not fire if we're on a blank paragraph
- allows blank paragraphs between cards to be deleted, feels more natural
2018-03-14 11:01:28 +00:00
Kevin Ansfield
c8dd95c490 Koenig - Hide unused elements in (+) menu
refs https://github.com/TryGhost/Ghost/issues/9311
- we don't and will unlikely ever have a "Text" card
- commented out the search input and "Primary" header, it won't be used until we have many more cards
2018-03-14 10:51:44 +00:00
Kevin Ansfield
eb26d0baca Koenig - Close (+) menu when pressing Escape
refs https://github.com/TryGhost/Ghost/issues/9311
- close menu and reset the caret position in the editor when <kbd>Esacape</kbd> is pressed whilst the (+) menu is open
2018-03-14 10:50:38 +00:00
Kevin Ansfield
5a28c80f7a Koenig - Bump mobiledoc-kit dependency 2018-03-14 10:16:27 +00:00
Kevin Ansfield
3118314adf Version bump to 1.21.5 2018-03-13 13:55:26 +00:00
Kevin Ansfield
6b73930b74 🐛 Fixed infinite loading on posts screen (#967)
closes https://github.com/TryGhost/Ghost/issues/9493

- bump `ember-infinity` to 1.0.0-alpha for Ember Data 3.0 support
  - update posts and users routes for change in API
- bump `ember-in-viewport` to 3.0.0 (fixes offset on posts screen with new version of ember-infinity)
2018-03-12 17:43:53 +07:00
Hey24sheep
654beb7e2f 🐛 Fixed "Are you sure" modal being shown incorrectly after toggling private mode (#964)
closes TryGhost/Ghost#9472
- add `changedAttributes()` passthrough to `settings` service
- use `changedAttributes()` in general settings `toggleIsPrivate` method to reset the password to the last known value when disabling private mode
2018-03-09 14:42:27 +00:00
Hey24sheep
88af30f855 🐛 Fixed need to click Night Shift toggle 3 times in certain circumstances (#965)
closes TryGhost/Ghost#9471
- added check for undefined value
- fixed the condition in feature.js _setAdminTheme
2018-03-09 09:34:43 +00:00
Kevin Ansfield
bee7e6e1bf 🐛 Fixed size of the time input fields in publish and post settings menus
no issue
- moving the time input to use `{{gh-text-input}}` meant that the input gained the `.gh-input` class which messed with the combined date/time input styling
- switched back to plain `<input type="text">` to get rid of the extra class
2018-03-07 10:58:58 +00:00
Kevin Ansfield
c4449d345b Version bump to 1.21.4 2018-03-06 16:13:42 +00:00
Kevin Ansfield
19a4ba4b84 Add CONTRIBUTING.md GitHub file
no issue
- use same contributing file as Ghost
2018-03-05 10:07:04 +00:00
Hey24sheep
e23b4db492 🐛 Fixed unreadable error message colour when uploading themes/images (#962)
closes TryGhost/Ghost#9476
- added midgrey to uploader.css upload fail
2018-03-05 09:54:46 +00:00
Katharina Irrgang
5831eec4cf Recommend Node v8 (#963)
no issue
- update travis.yml
2018-03-05 09:44:36 +00:00
Kevin Ansfield
cdfe06cde7 Bump Ember dependencies to 3.0 (#961)
no issue
- upgrade `ember-cli`, `ember-source`, and `ember-data` to their latest 3.x versions
- remove jquery ajax test that was a silent failure anyway (we removed the global jquery ajax auth patch a while ago)
- fix issues that arose from using/abusing Ember internals in a couple of places
2018-02-28 17:31:43 +00:00
Kevin Ansfield
be05ad6dc7 Only transpile for IE11 target in CI & production builds
no issue
- makes debugging during development easier because there's a lot less indirection added to work around missing ES6 support in IE11
2018-02-28 16:47:04 +00:00
Kevin Ansfield
5df045ba46 Bump dependencies (#960)
no issue
- bump all deps with non-breaking changes
- bump yarn.lock sub-dependencies
2018-02-28 13:08:26 +00:00
Kevin Ansfield
aa229973ec Remove ember-one-way-controls (#959)
closes https://github.com/TryGhost/Ghost/issues/9386
- remove usage of `{{one-way-checkbox}}` in favour of direct HTML+handlebars
- add `{{gh-text-input}}` that inherits from Ember's built-in `TextInput` component along with our custom `TextInput` mixin
- swap all uses of `{{gh-input}}` for `{{gh-text-input}}
- remove `{{gh-input}}` component
- update `{{gh-textarea}}` to inherit from Ember's `TextArea` component instead of `OneWayTextarea` and update all component uses accordingly
- update `{{gh-trim-focus-input}}` to inherit from `{{gh-text-input}}` and update all component uses accordingly
- standardize on using the `focus-out` action naming rather than `focusOut` for all text inputs, this is because the text input components (especially `{{gh-trim-focus-input}}`) have their own `focusOut` handler which gets overridden if consumers supply their own `focusOut` attr
- drop `ember-one-way-controls` package
- add `ember-one-way-select` package
2018-02-28 11:44:03 +00:00
Kevin Ansfield
5d552202f6 Koenig - Image card
refs https://github.com/TryGhost/Ghost/issues/9311
- add actions for cursor movement and pass through to card components
    - `moveCursorToNextSection` deselects card and places cursor at beginning of next section, useful for caption inputs where <kbd>down arrow</kbd> or <kbd>right arrow</kbd> should move the cursor out of the input & card. Also creates an empty paragraph before moving the cursor if for some reason an empty paragraph doesn't exist after the last card in the doc
    - `moveCursorToPrevSection` deselects card and places cursor at end of previous section, useful for caption inputs where <kbd>up arrow</kbd> or <kbd>left arrow</kbd> should move the cursor out of the input & card
    - `addParagraphAfterCard` deselects card, creates a new paragraph after the card and moves the cursor to it. Useful for caption inputs where <kbd>enter</kbd> should have the same behaviour as if it was pressed whilst the card is selected
- modify `{{gh-uploader}}` so that it passes the FileList to it's `onStart` closure action. Useful for displaying previews when uploading images
- modify `{{koenig-card}}` toolbar display so that it can display text as well as icon buttons
- update `{{koenig-card-image}}` so that it has a full image uploader and caption input
2018-02-22 20:41:40 +00:00
Kevin Ansfield
4f1238d002 Update Spirit CSS 2018-02-22 17:02:14 +00:00
Kevin Ansfield
618643606a Koenig - Allow clicks on cards to pass through for inputs
refs https://github.com/TryGhost/Ghost/issues/9311
- add `hasEditMode` flag to the `{{koenig-card}}` component so that cards without an edit mode (eg, the image card) don't have unnecessary state changes and even listeners
- allow `mousedown` events on cards to passthrough when selecting if the target was an input or textarea so that the cursor can be placed in an input immediately instead of requiring double clicks
2018-02-22 13:46:24 +00:00
Kevin Ansfield
fecbbd518c Koenig - Fixed more keyboard card selection bugs
refs https://github.com/TryGhost/Ghost/issues/9311
- removed most of the hairy logic in `cursorDidChange` around the cursor positioning changing between head and tail within a selected card in favour of ignoring all head/tail flip flops within a selected card section and a little extra logic in our <kbd>left arrow</kbd> key handler
2018-02-21 22:48:45 +00:00
Sarah Frantz
109342adc4 🐛 Fixed broken i18n docs link on general settings screen (#958)
no issue
- Link to i18n on the general settings screen 404'd - fixed link to go to https://themes.ghost.org/docs/i18n
2018-02-21 20:49:57 +00:00
Aileen Nowak
e59976fd3e Version bump to 1.21.3 2018-02-21 08:19:52 +07:00
Kevin Ansfield
465dbd997b Fixed linting error 2018-02-20 21:22:48 +00:00
Kevin Ansfield
b8a7925f46 Update Spirit CSS 2018-02-20 17:40:17 +00:00
Kevin Ansfield
37f393ca27 Koenig - Add caption to HTML/embed card
refs https://github.com/TryGhost/Ghost/issues/9311
- add basic implementation of a caption field to the embed card
2018-02-20 15:53:58 +00:00
Kevin Ansfield
5fa1b28a53 Koenig - Another fix for cards being deselected when clicking in edit mode
refs https://github.com/TryGhost/Ghost/issues/9311
- we added a guard for the caret moving from end to beginning of a card when clicking on a card whilst in edit mode in 26dd4ffb4a but it's also possible for clicks to cause the caret to move in the opposite direction
- update the guard in `cursorDidChange` to ignore the caret moving in either direction whilst a card is in edit mode
2018-02-20 15:34:09 +00:00
Kevin Ansfield
ddb46d7731 Koenig - Cleanup toolbar invocation
no issue
- move toolbar markup into the component's template rather than passing it as a block param to keep the `{{koenig-editor}}` template easier to read and more consistent
2018-02-20 15:20:35 +00:00
Kevin Ansfield
4636b4be0d Koenig - Initial Spirit styles integration
no issue
- copy Spirit styles over (eventually these will live in an addon)
- update `ember-cli-build` to output a separate CSS file for Spirit
- update `asset-delivery` addon to output Spirit CSS link
- add `{{kg-style}}` helper for Spirit class names
- update `{{koenig-card}}` and the `{{koenig-card-markdown/html}}` components to use Spirit class names and markup
- replace markdown icon with new version from Spirit
2018-02-20 15:05:19 +00:00
Kevin Ansfield
f619c3133f Fix session restoration
no issue
- upgrading to `ember-simple-auth` 1.5.1 introduced a session restoration bug due to a change in the underlying initializer that we override
2018-02-20 12:43:15 +00:00
Kevin Ansfield
3f1853c635 Switch to using recommended Node.js version on Travis
no issue
- developers should always be using our recommended Node.js version
- having Travis run on an older Node.js version was causing issues occasionally because dependencies would inadvertently drop 4.x support, this is mostly a non-issue for Ghost-Admin because the supported node version is only relevant to developers and build environments
2018-02-19 18:01:53 +00:00
Kevin Ansfield
ec470d1a90 Bump dependencies
no issue
- bump all deps with non-breaking changes
- bump yarn.lock sub-dependencies
2018-02-19 18:01:53 +00:00
Kevin Ansfield
56490b7a5f Koenig - Add click overlay to embed card
refs https://github.com/TryGhost/Ghost/issues/9311
- adds an overlay element to the embed card so that clicks do not interact with any embedded iframes so that you can lazy click to enter edit mode
2018-02-15 17:14:30 +00:00
Kevin Ansfield
e2daf96014 Koenig - Allow blank paragraphs to be deleted with Backspace
refs https://github.com/TryGhost/Ghost/issues/9311
- adjust our backspace card deletion logic to not fire if we're on a blank paragraph
- allows blank paragraphs to be deleted, feels more natural
2018-02-15 16:31:51 +00:00
Kevin Ansfield
3f1e5b9fa9 Koenig - Update {{koenig-card-html}} to use new {{koenig-card}} container
refs https://github.com/TryGhost/Ghost/issues/9311
- wraps embed card in same container as the markdown card to handle mouse selection/edit toggles etc
- add render mode to embed card
- autofocus CodeMirror editor when switching to edit mode
- fix incorrect pointer on cards
2018-02-15 15:57:44 +00:00
Kevin Ansfield
26dd4ffb4a Koenig - Fix cards being deselected when clicking in edit mode
refs https://github.com/TryGhost/Ghost/issues/9311
- there was an issue where clicking inside a card whilst it was in edit mode would cause the cursor position in the editor to change from the end of a card to the beginning which would re-run our card selection routine and de-selecting the card
- add a guard to the `cursorDidChange` method that looks for an end-to-beginning move whilst a card is in edit mode and ignores it
2018-02-15 15:52:08 +00:00
Kevin Ansfield
b3b07e488f Koenig - Fix sticky (+) button when clicking to select card
no issue
- if the (+) button was visible and you clicked on a card to select it the cursor moved but the (+) button remained because we weren't updating the `selectedRange` property
2018-02-15 15:02:37 +00:00
Kevin Ansfield
cfc32f2539 Koenig - Remove old Koenig alpha code
refs https://github.com/TryGhost/Ghost/issues/9311
- old code is no longer needed for reference so cleaning up
2018-02-15 10:46:23 +00:00
Kevin Ansfield
15395d0245 Version bump to 1.21.2 2018-02-14 18:24:03 +00:00
Kevin Ansfield
3645bd1638 Fix failing tests
no issue
- Travis was failing on master because a dummy render test was failing. Skipped it for now
2018-02-14 11:45:31 +00:00
Kevin Ansfield
2e4990093f Koenig - Generic {{koenig-card}} container card component
refs https://github.com/TryGhost/Ghost/issues/9311
- initial CSS for container card outline, selection state, toolbar, etc
- adds `{{#koenig-card}}` component to be used inside of component card templates to handle the default card container HTML, mouse interactions, etc
- update `{{koenig-card-markdown}}` to use the new `{{koenig-card}}` component
  - add render/edit mode views
  - focus the textarea when entering edit mode
- updated `{{koenig-editor}}`
  - add <kbd>Cmd+Enter</kbd> command to put a selected card into edit mode
  - when inserting new cards put them into edit mode immediately
  - move edit/select methods out of actions and into normal methods so that timing is easier to reason about
  - skip `cursorDidChange` process when cursor changes as a result of a card selection, fixes issues with `selectCard` being triggered multiple times unexpectedly
2018-02-13 18:00:54 +00:00
kirrg001
b62f22547e Version bump to 1.21.1 2018-02-07 12:35:33 +01:00
kirrg001
1b44882245 Version bump to 1.21.0 2018-02-07 10:51:41 +01:00
Austin Burdine
13ceee3e9f Contributor Role (#948)
refs https://github.com/TryGhost/Ghost/issues/9314

* added save button for contributor
* hide tag filter & redirect to posts.index if post is published
* update editor controller test to need session service
2018-02-07 10:42:46 +01:00
Katharina Irrgang
f0501e8997 Escape html for error messages (#956)
no issue

- if we would like to re-add html in our error messages, we have to differentiate between static messages which can contain html and messages which are dynamic and can contain dynamic input, which should not allow html
- e.g. it is always possible that Ghost receives a message from a third party module, which concats static text with input text
- if we want to show html content from an error, we need to come up with a concept
- for now: no support for html in error messages
2018-02-07 10:30:04 +01:00
Tobias Bieniek
937418bc6f Update ember-cli-mocha to v0.15.0 (#922)
no issue
2018-02-06 09:38:42 +01:00
Kevin Ansfield
4381c17216 Koenig - Card selection and deletion
refs https://github.com/TryGhost/Ghost/issues/9311
- cursor based card selection
- handling of delete/backspace when cards are involved
- add `cursorDidExitAtTop` closure action to `{{koenig-editor}}` to consolidate editor cursor behaviour in the editor
  - added extra behaviour for LEFT in editor and RIGHT in title to switch focus between title and editor
- fixed incorrect icon in the slash menu
2018-02-04 20:35:44 +01:00
Kevin Ansfield
6d4d6cbc51 Koenig - HTML card template
refs https://github.com/TryGhost/Ghost/issues/9311
- add a basic HTML card that renders a CodeMirror editor
- adjust styles so that CodeMirror styles for the markdown editor don't affect CodeMirror instances inside Koenig
2018-02-03 19:20:50 +01:00
Kevin Ansfield
5d4053dec2 Koenig - Slash menu
refs https://github.com/TryGhost/Ghost/issues/9311
- adds `{{koenig-slash-menu}}` component that renders a quick-access card/block menu when typing `/` at the beginning of a new paragraph
2018-02-03 17:54:57 +01:00
Kevin Ansfield
b2e8f2b631 Koenig - Fix whitespace above/below cards 2018-02-03 17:54:57 +01:00
Kevin Ansfield
d0ca47892a Koenig - Move list/card replacement actions into {{koenig-editor}} 2018-02-03 17:54:57 +01:00
Tobias Bieniek
714de7e64d tests/gh-task-button: Return Promises instead of using done() (#954)
unblocks #922 
- newer versions of `mocha` will complain that `done()` was called with a `non-error` argument if used this way
2018-02-03 17:46:22 +01:00
Kevin Ansfield
f65c87a829 Koenig - Show (+) button on blank paragraph mouseover
refs https://github.com/TryGhost/Ghost/issues/9311
- add a mousemove event handler that shows the (+) next to blank paragraphs when the pointer is over them
- fix sticky button when adding a card mid-document by hiding it, we get another `didReceiveAttrs` call with the new range when adding a blank paragraph so it's still shown in that situation
- fix the incorrect button position when adding a card at the bottom of the doc by re-positioning in the next runloop. Problem seems to stem from the component card being rendered after we get the new range so our position calculations are out of sync
2018-02-02 12:56:55 +01:00
Chris Morgan
605b2f3f19 Fixed copy in /settings/general (#953)
no issue

Two spelling and grammar fixes, and one technical.

- eg. → e.g.
- /yyyy/mm/slug/ → /yyyy/mm/dd/slug/
- , → .
2018-02-02 08:24:35 +00:00
Kevin Ansfield
2ca441438d Koenig - Fix plus menu teardown but
no issue
- fixed typo that was throwing an error on `willDestroyElement` of `{{koenig-plus-menu}}`
2018-02-01 18:29:33 +01:00
Kevin Ansfield
d7506a53eb Koenig - Re-position toolbar and plus menu on window resize
refs https://github.com/TryGhost/Ghost/issues/9311
- extract positioning routines into methods
- throttle positioning method calls on window resizes
2018-02-01 17:48:16 +01:00
Kevin Ansfield
964a1e9aa3 Koenig - Fixed card insertion via plus menu 2018-02-01 16:44:49 +01:00
Kevin Ansfield
2cef2a4f1e Koenig - Move to generic card names
refs https://github.com/TryGhost/Ghost/issues/9311
- use `hr`, `image`, and `markdown` as card names instead of codifying the `koenig-card-` prefix into the mobiledoc
2018-02-01 12:26:24 +01:00
Kevin Ansfield
eb319cef4b Koenig - Use {{inline-svg}} helper in {{koenig-plus-menu}}
refs https://github.com/TryGhost/Ghost/issues/9311
- use the `{{inline-svg}}` helper instead of having SVGs inlined manually in the component template
- rename the koenig icons directory
- add the koenig icons directory to the list of locations used by `{{inline-svg}}`
2018-01-31 16:20:27 +01:00
Kevin Ansfield
2ddedb6005 Koenig - (+) card/list selection menu
refs https://github.com/TryGhost/Ghost/issues/9311
- re-implement the (+) card/list selection menu from the old Koenig alpha with improved positioning and event handling
- buttons work for the currently available cards - `<hr>` and `markdown`
2018-01-31 15:49:20 +01:00
Kevin Ansfield
521b9dbb99 Koenig - Textarea-only markdown card
refs https://github.com/TryGhost/Ghost/issues/9311
- add `{{koenig-card-markdown}}` component that renders an auto expanding textarea with the markdown card value
- add `{{card-markdown}}` that is an alias of `{{koenig-card-markdown}}` for backwards compatibility - all of our pre-1.0 alpha cards and our current markdown implementation do not have the `koenig-` prefix in their card names
2018-01-31 08:32:27 +00:00
Kevin Ansfield
cd0e7ebc64 Koenig - Fixed jump-to-top bug when focusing editor
refs https://github.com/TryGhost/Ghost/issues/9311
- the editor was being focused and the cursor placed properly but the act of focusing also reset the scroll position
- pulled the `.gh-koenig-editor` class into the component rather than leaving it in the template so that the component has access to `this.element`
- ensure the `.gh-koenig-editor` container is scrolled all the way to the bottom after focusing the editor
2018-01-30 21:09:46 +00:00
Kevin Ansfield
d25fb1597e Koenig - Display-only image card with markdown text expansion
refs https://github.com/TryGhost/Ghost/issues/9311
- adds the `koenig-card-image` card that renders an `<img>` element
- adds text expansion to convert markdown images into the new image card
2018-01-30 20:46:03 +00:00
Kevin Ansfield
3ac59e5ba8 Koenig - HR card with markdown text expansion
refs https://github.com/TryGhost/Ghost/issues/9311
- adds the `koenig-card-hr` card that renders a `<hr>` element
- adds text expansion to convert `---` into the new HR card
2018-01-30 15:19:30 +00:00
Kevin Ansfield
07d6aee326 Koenig - Initial card support
refs https://github.com/TryGhost/Ghost/issues/9311
- use a similar approach as used in `ember-mobiledoc-editor` to render a div into the editor canvas then use Ember's `{{-in-element}}` helper as a wormhole to render an ember component card into the new div
- adds a `createComponentCard` util for setting up the necessary rendering boilerplate for Ember component cards
2018-01-30 15:18:08 +00:00
Kevin Ansfield
dec1250bbf Koenig - Added SHIFT+ENTER line break key command
refs https://github.com/TryGhost/Ghost/issues/9311
- pressing <kbd>Shift+Enter</kbd> will create a `soft-return` atom that adds a `<br>` element to the doc
- emulates many rich-text editors that have a similar functionality where it's desirable to add line breaks rather than starting new paragraphs
2018-01-30 10:58:28 +00:00
Kevin Ansfield
61cf4d46db Koenig reboot - rich text (#952)
refs https://github.com/TryGhost/Ghost/issues/9311

Koenig is being fully rebooted, first port of call is to focus on getting the rich-text only aspect of mobiledoc-kit working with our popup toolbar.

- renames old koenig implementation (used for reference, will eventually be deleted)
- new `{{koenig-editor}}` mobiledoc-kit component implementation based on ember-mobiledoc-editor
  - markdown text expansions
- new `{{gh-koenig-edtor}}` that wraps our title+editor and handles keyboard navigation between the two
  - clicks below content will focus the editor
- new `{{koenig-toolbar}}` component for the popup formatting toolbar with improved behaviour and simplified code
2018-01-30 10:01:07 +00:00
Kevin Ansfield
ba44d3c01f Fixed node 4.x compatibility in ember-cli-string-helpers
no issue
- linked directly to compatibility fix commit
- PR opened at https://github.com/romulomachado/ember-cli-string-helpers/pull/19
2018-01-29 11:54:24 +00:00
Kevin Ansfield
0d7b914ccd Update deleted sub-dependency 2018-01-29 11:14:11 +00:00
Kevin Ansfield
f0ff51548c Bump dependencies
no issue
- bump all deps with non-breaking changes
- bump yarn.lock sub-dependencies
2018-01-29 11:06:25 +00:00
Kevin Ansfield
56487dd9d4 🐛 Fixed editor autofocus when starting a new post
no issue
- we were setting the `shouldFocusEditor` value correctly but then immediately resetting it again 🙈
- updated the logic to change the value when going from new->edit as well as setting it correctly _after_ all of the controller values are reset in the `setPost` method
2018-01-25 13:14:50 +00:00
Kevin Ansfield
630708f377 Bump eslint-plugin-ghost to version actually including node 4.x compat 2018-01-24 20:26:39 +00:00
Kevin Ansfield
b5e7fd8a93 Bumped eslint-plugin-ghost (fixed yarn install error) 2018-01-23 17:45:05 +00:00
Kevin Ansfield
34422b7da2 Version bump to 1.20.3 2018-01-23 16:26:10 +00:00
Aileen Nowak
ba50290ca1 🎨 Improved warning about authored posts being removed when deleting a user (#951)
closes TryGhost/Ghost#9405
- users were still not noticing the warning that a user's posts are deleted along with the user
- improves the confirmation dialog layout to be clearer and even more explicit about authored posts being deleted along with the user
2018-01-23 10:45:19 +00:00
Kevin Ansfield
506b2a9388 Resurrect the old alpha Koenig editor (#916)
requires https://github.com/TryGhost/Ghost/pull/9277

- added a `koenigEditor` feature flag
  - modified the feature service to accept a `developer` boolean on the options object passed into the internal `feature` method, if `true` the feature flag won't be enabled unless the `enableDeveloperExperiments` config option is also enabled
  - added "developer feature testing" section in labs that's only visible if `enableDeveloperExperiments` config flag is enabled
  - added koenig editor toggle to the developer section in labs

- enabled a switch between the markdown and koenig editors
  - modified the default value of the `mobiledoc` attr in the Post model to be a blank mobiledoc or blank markdown mobiledoc depending on the feature flag
  - modified the `autofocus` switch in editor controller's `setPost` method so that it is always switched, even for new->edit where the post model isn't swapped
  - added a compatibility check to the editor controller's `setPost` method that shows an alert and force enables the koenig editor if the koenig flag is not enabled and the opened post is not compatible with the markdown editor

- fixed various issues that have appeared due to the old koenig alpha becoming out of sync with master
2018-01-18 15:36:01 +00:00
kirrg001
4fc762c1c4 Version bump to 1.20.2 2018-01-17 18:13:44 +01:00
Kevin Ansfield
eeedc2f1dc Refactor new->edit transition to avoid editor re-renders (#949)
closes TryGhost/Ghost#8287
closes TryGhost/Ghost#8750
- moved all editor model functionality into the new `editor` route+controller
- moved editor template from `editor/edit.hbs` to `editor.hbs`
- refactored `editor` controller and the `editor.new`/`editor.edit` routes to work with a persistent editor rather than a teardown/re-render when transitioning from new->edit
- fixed issue in `{{gh-markdown-editor}}` for `autofocus` behaviour when the component isn't re-rendered
- fixed issue in `{{gh-simplemde}}` that was causing multiple updates to the `value` property when a new value is passed in to the component
- added `{{gh-scheduled-post-countdown}}` component to lower the noise in the editor controller
- removed editor route/controller mixins
- removed the `editor.edit` and `editor.new` controllers
2018-01-17 13:27:37 +00:00
kirrg001
a12b2809ee Version bump to 1.20.1 2018-01-16 14:36:25 +01:00
Kevin Ansfield
bf599cef74 🐛 Fixed 'c' and 'k' chars not working in Unsplash search when adding tag cover
closes https://github.com/TryGhost/Ghost/issues/9147
- change the keymaster scope when the unsplash search input has focus so the route's registered shortcuts aren't accidentally triggered
2018-01-12 18:09:10 +00:00
Peter Dave Hello
421ed6f6fb Remove useless executable permission on static assets (#945)
no issue
- static assets shouldn't have the executable bit set
2018-01-12 17:20:23 +00:00
Peter Dave Hello
e52c772ec2 Optimize static PNG images losslessly via Google zopflipng (#944)
no issue
- run zopflipng across all the static public assets
2018-01-12 17:19:28 +00:00
Kevin Ansfield
7b62c03438 Handle errors thrown during app boot
closes https://github.com/TryGhost/Ghost/issues/9394
- add `application-error.hbs` template so that we show an error screen for errors during app boot
- track the application route loading state so that we can fall back to the default error handling for errors that usually only show an alert
2018-01-12 16:11:46 +00:00
Kevin Ansfield
08630c5913 Bump dependencies (#947)
no issue
- bump all deps with non-breaking changes
- bump yarn.lock sub-dependencies
- add `eslint` as a top-level dependency to satisfy peerDeps and fix linting when using Atom
2018-01-12 13:13:24 +00:00
Kevin Ansfield
48e3bf003d ESLint: Consistent ember property/method ordering
no issue
- https://github.com/ember-cli/eslint-plugin-ember/blob/master/docs/rules/order-in-components.md
- https://github.com/ember-cli/eslint-plugin-ember/blob/master/docs/rules/order-in-controllers.md
- https://github.com/ember-cli/eslint-plugin-ember/blob/master/docs/rules/order-in-routes.md
2018-01-12 12:17:56 +00:00
Kevin Ansfield
f2da8a20b8 ESLint: Don't use observers if possible
closes https://github.com/TryGhost/Ghost/issues/8690
- https://github.com/ember-cli/eslint-plugin-ember/blob/master/docs/rules/no-observers.md
- remove observers where possible
- move night shift toggle behaviour to the feature service
	- refresh feature service after import to fix stuck night shift toggle
2018-01-12 12:17:56 +00:00
Kevin Ansfield
b6ae61c22f ESLint: Be explicit with Ember Data attribute types
no issue
- https://github.com/ember-cli/eslint-plugin-ember/blob/master/docs/rules/no-empty-attrs.md
2018-01-12 12:17:56 +00:00
Kevin Ansfield
fda94fedab ESLint: Alias model in controllers
no issue
- https://github.com/ember-cli/eslint-plugin-ember/blob/HEAD/docs/rules/alias-model-in-controller.md
- replace `model` with a meaningful property name everywhere possible
- refactor `design` and `general` settings controllers to use a directly injected settings service rather than passing it in as a "model" to be more explicit
2018-01-12 12:17:56 +00:00
Kevin Ansfield
7b4d1af3c8 Remove unused "copy-html" modal component 2018-01-12 12:17:56 +00:00
Kevin Ansfield
a85f5fae35 Switch to eslint-plugin-ghost extending plugin:ghost/ember
no issue
- fix lint errors in lib/gh-koenig
- fix ghost:base eslint errors
- update ember plugin refs, remove ember-suave plugin refs
- remove old jshint refs
- add `lint:js` script
- switch to `eslint-plugin-ghost` extending `plugin:ghost/ember`
2018-01-12 12:17:56 +00:00
Kevin Ansfield
832fd8bba3 🎨 Highlight non-breaking spaces as special chars in the editor
closes https://github.com/TryGhost/Ghost/issues/9384
- add non-breaking space char to CodeMirror's default "specialChars" regex so that they are visible in the editor
2018-01-11 09:20:25 +00:00
kirrg001
7970640667 Version bump to 1.20.0 2018-01-09 21:42:08 +01:00
Kevin Ansfield
a5eeb1865b 🎨 Move "Update available" notification to the About screen (#894)
refs https://github.com/TryGhost/Ghost/issues/5071

Upgrade messages are now shown on the About screen rather than as alerts. Notifications that are marked as `top` or `custom` are still shown as alerts to allow for certain upgrade messages to be given more visibility.

- remove old `upgrade-notification` service
- update the `upgrade-status` service:
  - add a `message` property that contains an upgrade notification if any exists
  - add a `handleUpgradeNotification` method that accepts a Notification model instance and extracts the `notification.message` property into a html safe string for use in templates
- when loading server notifications during app boot, pass notifications that aren't marked as `top` or `custom` to the new `handleUpgradeNotification` method
- update the `about.hbs` template to pull the upgrade message from the `upgradeStatus` service
2018-01-09 14:23:36 +00:00
juan-g
9fcaa3a5ed Theme translations and blog localisation (#703)
refs #5345, refs #3801, refs https://github.com/TryGhost/Ghost/pull/8437

- added language option to General Settings
- just a text field for flexibility, to allow any language (validation will be added later)
- default language is: English (en)
- added i18n docs link under the input field

**Documentation can be found at https://themes.ghost.org/v1.20.0/docs/i18n.**
2018-01-09 14:55:28 +01:00
Kevin Ansfield
12fb9504ae Added Zapier app with pre-built zap templates list (#943)
no issue

- add Zapier app to Apps screen
- use Zapier's zap template embed widget to list our pre-built templates
2018-01-09 11:36:41 +01:00
Kevin Ansfield
bde0b9768e Fix linting error 2018-01-08 19:30:16 +00:00
Kevin Ansfield
eef41d2cd7 🐛 Fixed editor cursor position on iOS when opening keyboard
closes https://github.com/TryGhost/Ghost/issues/9379
- detect iOS devices and start a requestAnimationFrame loop when inserting the markdown editor that watches `body.scrollTop` and translates the scroll that iOS applies to the body to the editor instead so that we keep the cursor on screen without the disconnected cursor proplems
2018-01-08 19:10:29 +00:00
Kevin Ansfield
f65b07c589 Fixed horizontal scroll in editor on iOS 2018-01-08 18:32:25 +00:00
Kevin Ansfield
99576c2da3 🐛 Fixed missing cursor and selection issues using editor on iOS
closes https://github.com/TryGhost/Ghost/issues/9378
- only disable element selection on the codemirror content on desktop
2018-01-08 17:02:04 +00:00
Abijeet Patro
57c20d5aae Prevent "Invalid URL" errors due to trailing spaces when editing Slack Webhook URL (#925)
no issue
- trim the slack URL in the `updateURL` action
2018-01-08 10:31:53 +00:00
Kevin Ansfield
cc33fa899d 🐛 Fixed navigation url inputs when configured URL has special characters (#941)
closes https://github.com/TryGhost/Ghost/issues/9373

- using an `<a>` element to parse a URL does not behave as expected when the URL has special characters because the `host` attribute will show the Puny URL version. Eg. `exämple.com` will become `xn--exmple-cua.com`
- `{{gh-navitem-url-input}}` was failing to manipulate the URL value because of the difference between the Puny URL encoded URL and the raw configured URL with unicode chars
- uses the `URI` module that's bundled with the imported version of `google-caja` to parse the URL via regexes rather than relying on native browser parsing
2018-01-07 12:14:24 +01:00
tamura shingo
85d4759044 🐛 Fixed Japanese IME popup position in editor (#940)
closes TryGhost/Ghost#9289
- add css to fix hidden textarea position
2018-01-05 13:37:03 +00:00
Kevin Ansfield
7469b7263f 🐛 Fixed list editing regression in 1.19.2
closes https://github.com/TryGhost/Ghost/issues/9372
- bump codemirror dependency to 5.33.0
- bump simplemde dependency
	- bumps internal codemirror to 5.33.0
	- moves all dependencies to devDependencies
2018-01-05 11:48:12 +00:00
Kevin Ansfield
a27052bdb6 Bump dependencies (#939)
no issue
- upgrade all dependencies with non-breaking changes
- bump sub-dependencies in yarn.lock
2018-01-04 14:18:32 +00:00
Aileen Nowak
b6bea4e7f9 Version bump to 1.19.2 2018-01-04 17:21:55 +07:00
Kevin Ansfield
a2b924b06e Skip tests that touch vertical-collection to fix random Travis failures (#938)
refs https://github.com/TryGhost/Ghost/issues/8805
- `{{vertical-collection}}` causes async issues and random failures in our tests
- we can't upgrade to the latest version which includes a test wait helper because it's buggy in Firefox
- skip the tests for now
2018-01-03 17:14:12 +00:00
Kevin Ansfield
a27887474e fix power-select import deprecations 2018-01-03 15:02:38 +00:00
Kevin Ansfield
33a8c945af Version bump to 1.19.1 2018-01-03 14:39:59 +00:00
Kevin Ansfield
dbd1edb7d3 Revert ember-cli to 2.16.2
no issue
- there's a [bug in ember-cli@2.17](https://github.com/ember-cli/ember-cli/issues/7518) that results in production builds throwing an error: `Uncaught Error: Could not find module 'ember-resolver' imported from 'ghost-admin/resolver'`
2018-01-03 14:37:28 +00:00
Kevin Ansfield
191300de74 🐛 Fixed missing error message for unexpected errors during import (#936)
no issue
- show an error message when a non-Ghost error is received, eg. when a proxy server times out due to a large import
2018-01-03 12:30:42 +00:00
John O'Nolan
e7be0075d8 2018 2018-01-02 21:46:16 +00:00
Kevin Ansfield
2d8b3039d1 🎨 Improved code injection loading behaviour on slow connections (#935)
closes https://github.com/TryGhost/Ghost/issues/9249
- in `{{gh-cm-editor}}` display a standard textarea in place of the CodeMirror editor whilst CodeMirror assets are loading in the background, textarea will be upgraded to a CodeMirror editor when loading finishes
- update styles so that the switch from plain textarea to CodeMirror is not too jarring
2018-01-02 18:29:03 +00:00
Peter Zimon
5ad75b76ff Fixed icon upload button hover state on General Settings screen (#934)
no issue
2018-01-02 16:32:26 +00:00
Kevin Ansfield
c885b960b6 Prevent double text selection in the editor
closes https://github.com/TryGhost/Ghost/issues/9356
- it was possible to start a selection from outside of CodeMirror's control, this was confusing because text appeared to be selected but wasn't
- disable user selection on the outermost CodeMirror wrapper so that the selection behaves as it does with a normal textarea where the selection needs to start from inside the content area
2018-01-02 14:53:35 +00:00
Kevin Ansfield
bdab644ad5 🐛 Fixed inability to create multi-word tags via post settings menu
closes https://github.com/TryGhost/Ghost/issues/9357
- detect space key being pressed and ignore in the token input's custom `selectOrCreate` action
2018-01-02 13:54:26 +00:00
Martín González
e64dc48d54 Improve users table mobile style (#908)
refs https://github.com/TryGhost/Ghost/issues/8744
- reduce padding
- avoid wrapping user badges
2018-01-02 11:35:24 +00:00
Kevin Ansfield
8072d75401 Fixed some Night Shift colours in the post settings menu
closes https://github.com/TryGhost/Ghost/issues/9244
- adjust weekday and current day text colours in the calendar popup to improve legibility
- match the new tags input colours to the other form inputs
2018-01-02 11:29:23 +00:00
Steven Cochrane
30ba178861 🐛 Fixed unexpected publishing of post via split-preview shortcut (Publish shortcut is now Ctrl/Cmd+Shift+P) (#924)
closes https://github.com/TryGhost/Ghost/issues/9296

If a user is trying to use the split screen preview shortcut in the admin client (`CTRL+ALT+P` for all platforms), this also calls the publish shortcut when using windows or linux. 

- change the publish shortcut to `${ctrlOrCmd}+shift+p`
2018-01-02 11:04:08 +00:00
Kevin Ansfield
4679302303 Don't destructure Ember.testing (#933)
no issue
- `Ember.testing` is or will soon be a getter/setter in Ember with the value set during a test, however destructuring will read the value when the module is evaluated
- moves all uses of `Ember.testing` inline
2018-01-02 10:19:59 +00:00
Tobias Bieniek
af1aa2fabf Update ember-simple-auth to v1.4.2 (#932)
no issue
- updates `ember-simple-auth` to v1.4.2 to take advantage of the bug fix in https://github.com/simplabs/ember-simple-auth/pull/1477
- enables/unblocks https://github.com/TryGhost/Ghost-Admin/pull/922
2017-12-27 16:19:48 +00:00
Kevin Ansfield
b5c4a17aad Bump dependencies (#929)
no issue
- upgrade all dependencies with non breaking changes
- bump sub-dependencies in yarn.lock
2017-12-13 12:27:15 +00:00
kirrg001
e3e57825bd Version bump to 1.19.0 2017-12-13 10:15:23 +01:00
Katharina Irrgang
3bba0a4eea Revert "Bump dependencies (#927)" (#928)
This reverts commit c00232ca92.
2017-12-13 10:10:46 +01:00
Kevin Ansfield
78c34830cd Trigger a background download request when Unsplash images are inserted
no issue
- update to match Unsplash's new API guidelines https://medium.com/unsplash/unsplash-api-guidelines-triggering-a-download-c39b24e99e02
2017-12-12 17:22:59 +00:00
Kevin Ansfield
c00232ca92 Bump dependencies (#927)
no issue
- upgrade all dependencies with non breaking changes
- bump sub-dependencies in yarn.lock
2017-12-12 14:00:35 +00:00
Kevin Ansfield
14f03a14a8 🐛 Fixed editor and drag/drop image uploads in IE11 (#926)
closes https://github.com/TryGhost/Ghost/issues/9321
- don't use `dataTransfer.effectAllowed` in IE11
- only fire the action in `{{gh-file-input}}` if there are files selected to prevent a double call to the action due to resetting the input
2017-12-12 11:53:35 +00:00
Aileen Nowak
97ffb63203 Version bump to 1.18.4 2017-12-07 19:30:00 +07:00
Kevin Ansfield
cac2fa5af7 🐛 Fixed Ctrl/Cmd+S save shortcut not working when tags input has focus (#921)
closes https://github.com/TryGhost/Ghost/issues/9298

- override the default Ember Power Select behaviour of stopping keydown event propagation for any alpha-numeric key events which was preventing our keyboard shortcuts from being triggerable
2017-12-07 13:09:22 +07:00
Katharina Irrgang
c0f5029868 Changed asset delivery to web/admin/views (#923)
refs #9178

- needs to be merged together with the server side PR (https://github.com/TryGhost/Ghost/pull/9308)
- we have moved the admin folder location from server/admin to server/web/admin
2017-12-06 17:37:06 +01:00
kirrg001
cd1471c166 Version bump to 1.18.3 2017-12-05 10:07:05 +01:00
Kevin Ansfield
222d98b454 🐛 Fixed "NaNUndefined" when inserting unordered list items (#920)
closes https://github.com/TryGhost/Ghost/issues/9302

- reverts the `simplemde` bump introduced in https://github.com/TryGhost/Ghost-Admin/pull/911/, the updated version of CodeMirror appears to contain a bug or incompatibility with SimpleMDE
2017-12-04 11:56:21 +01:00
Kevin Ansfield
d4444623d2 🐛 Fixed editor image uploads (#919)
closes https://github.com/TryGhost/Ghost/issues/9300
- as of d33cfdac30 we reset the file input earlier in the actions chain, this was clearing the file references before the editor was triggering the upload. By converting the `FileList` to an `Array` before resetting the input we keep hold of the file references and the upload works again.
2017-12-02 10:14:01 +01:00
Aileen Nowak
eee49ef78c Version bump to 1.18.2 2017-11-30 20:16:26 +07:00
Aileen Nowak
bc64db557b 🐛 Fixed blog icon not shown in nav (#918)
closes TryGhost/Ghost#9293

Added d982f7b520 (diff-f63965ba48df687541db46e0e1b2c2ecL10) back, which broke the rendering of the blog icon in the nav menu.
2017-11-30 20:12:01 +07:00
Kevin Ansfield
beb76982dd 🐛 Fixed time input bugs when leading zero is omitted
closes https://github.com/TryGhost/Ghost/issues/9262
- in `{{gh-date-time-picker}}` detect short 24hr format strings such as `3:30` and add a leading zero before triggering passed in actions
2017-11-30 17:06:48 +07:00
Kevin Ansfield
95f60f2340 Remove unused {{gh-datetime-input}} and related helper 2017-11-30 17:06:48 +07:00
Kevin Ansfield
65d58405ed 🐛 Fixed unresponsive upload buttons
closes https://github.com/TryGhost/Ghost/issues/9292
- fix a global find/replace error that caused the wrong element classes in the general and labs file dialog trigger events
2017-11-30 07:00:25 +00:00
Kevin Ansfield
61eec35b3c Version bump to 1.18.1 2017-11-29 15:50:50 +00:00
Kevin Ansfield
1a4909ea34 Always use closure actions
no issue
- https://github.com/ember-cli/eslint-plugin-ember/blob/master/docs/rules/closure-actions.md
2017-11-25 09:49:49 +00:00
Kevin Ansfield
f9d30ff9c8 Use computed property brace expansion
no issue
- https://github.com/ember-cli/eslint-plugin-ember/blob/master/docs/rules/use-brace-expansion.md
2017-11-25 09:49:49 +00:00
Kevin Ansfield
f25624234f Avoid leaking state in Ember objects
no issue
- https://github.com/ember-cli/eslint-plugin-ember/blob/master/docs/rules/avoid-leaking-state-in-ember-objects.md
2017-11-25 09:49:49 +00:00
Kevin Ansfield
a654fa645b bump eslint-plugin-ember, enable default rules 2017-11-25 09:49:49 +00:00
Kevin Ansfield
1fb2b49a5b Remove unused top notification count functionality
no issue

- in a very old iteration of the admin design we needed a data attribute containing the number of notifications in order to add extra spacing in the styles. This hasn't been necessary for a long time and there are easier ways to do it now than using observers.
2017-11-24 11:15:59 +00:00
Kevin Ansfield
d982f7b520 Clean up markdown help toggle
no issue

The markdown help link was removed from the sidebar so the only link to toggle the markdown help modal is now the markdown editor yet we we still had a more general implementation with a confusing pass-through of closure actions.

- move the markdown modal toggle and display into the `{{gh-markdown-editor}}` component
2017-11-24 11:15:59 +00:00
Kevin Ansfield
d33cfdac30 🐛 Fixed inability to re-upload the same redirects file (#912)
closes https://github.com/TryGhost/Ghost/issues/9266
- `emberx-file-input` passes a `resetInput` function through to it's action handler but we weren't doing that in our override component. Added the missing functionality and updated all of our handlers to use that instead of doing manual resets
- added a `setFiles` action to `{{gh-uploader}}` and yield it for use in block invocations
2017-11-22 17:04:48 +00:00
Kevin Ansfield
7d1ee9386b Bump dependencies (#911)
no issue
- bump minor/non-breaking dependencies
- bump sub-dependencies in yarn.lock
2017-11-22 13:31:33 +00:00
Aileen Nowak
c7dad50ef8 Version bump to 1.18.0 2017-11-21 23:48:01 +08:00