Commit Graph

241 Commits

Author SHA1 Message Date
Kevin Ansfield
89b7ff3320 Routable tags
refs #5845
- Updates tag settings screen to match content screen behaviour. Each now tag has it's own route that is link-able from other areas of the app
- Updates a number of places where jQuery event handler code was not wrapped in Ember's run loop
2015-10-27 12:48:41 +00:00
Kevin Ansfield
48c0a3e097 Drag-n-drop re-ordering of tags in post settings menu
refs #5976
- adds `onChange` handler to `gh-selectize` component to update the `selection` property when selectize's value is changed (eg, by the drag_drop plugin updating the order)
- adds the `drag_drop` plugin to the list of selectize plugins used by the tags input on the post settings menu
2015-10-26 18:05:25 +00:00
Kevin Ansfield
48d61af3a8 Fix empty image when navigating to new editor from an editor with image
closes #5840
- calls `reset()` on the uploader when re-rendered with a blank image
- calls `reset()` and `initWithImage()` on the uploader when re-rendered with an image and the uploader is still in the "blank" state
2015-10-19 11:55:31 +01:00
Austin Burdine
511d5d9b4c deps: ember-simple-auth@1.0.0
closes #5951
- update to esa 1.0
2015-10-18 13:17:02 -05:00
Hannah Wolfe
2d60ece7e7 Merge pull request #5946 from kevinansfield/fix-gh-validation-status-container
Fix gh-validation-settings-container throwing error on tag settings page
2015-10-14 17:45:35 +01:00
Hannah Wolfe
ce8440e095 Merge pull request #5928 from kevinansfield/notification-keys
Prevent duplicate alerts and clear on login
2015-10-14 17:24:17 +01:00
Kevin Ansfield
16783a1df5 Fix gh-validation-settings-container throwing error on tag settings page
no issue
- check that component's `hasValidated` property exists
- add tests for `gh-validation-settings-container`
2015-10-14 14:29:04 +01:00
Kevin Ansfield
1ade395aa0 Merge pull request #5912 from HParker/form-default-class-to-none
Form default error class to none
2015-10-13 19:28:43 +01:00
Adam Hess
fde31c451a the form status now defaults to empty string
prevents unvalidated forms from showing up as success
2015-10-13 11:14:44 -06:00
Kevin Ansfield
c5a8a0c860 Avoid duplicate alerts, clear alerts on successful retry or sign-in
closes #5903, refs #5409
- switch alert/notification component tests from unit to integration where appropriate
- rename `notifications.closeAll` to `notifications.clearAll` to better represent it's behaviour
- add concept of a "key" to alerts/notifications and ability to close only specified keys through notifications service
- close duplicate alerts/notifications before showing a new one
- specify a key for all existing alerts
- close failure alerts on successful retries
- clear all currently displayed alerts on successful sign-in
2015-10-12 19:21:30 +01:00
Kevin Ansfield
343b2ccbca deps: grunt-jscs@2.1.0
no issue
- update grunt-jscs dependency
- fix deprecated `validateJSDoc` configuration
- fix numerous linting errors, including:
  - use of future-reserved `public` and `private` variable names
  - use of `[]` instead of dot-notation (especially `express['static']` and `cacheRules['x']`)
  - extra spaces in `const { run } = Ember` style constructs

One issue that did become apparent is that there are conflicting rules that prevent the use of object function shorthand such that both of these:

```
{ myFunc() {} }
{ myFunc () {} }
```

are called out due to either the missing or the extra space before the `(`
2015-10-12 19:21:16 +01:00
Leonard Camacho
04d84d0d53 Shows image on Tag settings
closes #5800
2015-10-08 14:27:41 -04:30
Hannah Wolfe
b70c753466 Merge pull request #5920 from kevinansfield/fix-upload-autoscroll
Fix preview scroll jump when adding/removing images
2015-10-07 12:46:56 +01:00
Kevin Ansfield
5c0b63f300 Ember-cli, Ember, & Ember Data 1.13.x upgrades
closes #5630
- upgrade ember-cli to latest version
- upgrade ember to latest 1.13.x release
- upgrade ember data to latest 1.13.x release
    - update custom adapters and serialisers for new internal JSON-API compatible formats [(docs)][1]
    - update all store queries to use new standardised query methods [(docs)][2]
    - add ember-data-filter addon ready for store.filter removal in ember-data 2.0 [(docs)][3]
- remove use of prototype extensions for computed properties and observers
- consolidate pagination into a single route mixin and simplify configuration

[1]: http://emberjs.com/blog/2015/06/18/ember-data-1-13-released.html#toc_transition-to-the-new-jsonserializer-and-restserializer-apis
[2]: http://emberjs.com/blog/2015/06/18/ember-data-1-13-released.html#toc_simplified-find-methods
[3]: http://emberjs.com/blog/2015/06/18/ember-data-1-13-released.html#toc_ds-store-filter-moved-to-an-addon
2015-10-06 16:09:05 +01:00
Kevin Ansfield
4212d48fe2 Fix preview scroll jump when adding/removing images
closes #5917
- fixes duplication of dropzone event handlers by filtering for an added data-attribute
- avoid running dropzone code if only scrollPosition attr changes
- fix scroll position jump when adding/removing images by only adjusting preview scroll position when editor scroll position changes
2015-10-06 14:47:06 +01:00
Kevin Ansfield
5c9a824d53 Standardize on var-less export default across ember app
no issue
- drops the `var Foo = Ember.Thing.extend({}); export default Foo;` syntax in favour of exporting directly, eg: `export default Ember.Thing.extend({})`
- discussion on this change [here](https://github.com/TryGhost/Ghost/pull/5340#issuecomment-105828423) and [here](https://github.com/TryGhost/Ghost/pull/5694#discussion-diff-37511606)
2015-10-06 10:59:50 +01:00
Kevin Ansfield
d8728aad57 Fix nav regressions in admin client
issue #5841

- fix relative link checks in navlink url input component
- fix navlink url input component sending absolute URLs instead of relative URLs to action handler
- remove URL manipulation in navigation settings controller (url input handles URL manipulation, validator flags anything that's still incorrect)
- capture cmd-s in url input to ensure changes are actioned before save
- automatically add mailto: to e-mail addresses
- add gh-validation-state-container component so .error/.success validation classes can be applied to any container element
- add validation-state mixin that can be mixed in to any other component to give it access to validation status (used in gh-navitem component to keep alignment when inline error message elements are added)
- validate and display inline errors on save
- improve ember test coverage for navigation settings related controller and components
2015-09-23 17:05:41 +01:00
Hannah Wolfe
9d1d4ae5ba Merge pull request #5795 from kevinansfield/fix-console-error
Fix teardown of resize handler in content management screen
2015-09-02 22:17:51 +01:00
Kevin Ansfield
cbd6395b1e Merge pull request #5788 from ErisDS/search-timeout
Reduce search refresh timeout & forgotten link fix
2015-09-02 22:12:55 +01:00
Kevin Ansfield
fe16ec24f0 Fix teardown of resize handler in content management screen
refs #5659 ([comment](https://github.com/TryGhost/Ghost/issues/5659#issuecomment-137114898))
- cleans up resize handler on willDestroy hook of gh-content-view-container
2015-09-02 21:41:47 +01:00
Kevin Ansfield
290988eb33 Fix selected search item appearing as multi-select item in search input
no issue
- adds an observer to the component's `selection` property that always clears it if it's assigned a value
2015-09-02 19:34:54 +01:00
Hannah Wolfe
16d7790a19 Merge pull request #5791 from kevinansfield/autohide-nav-translate3d
Better flickering auto-nav fix
2015-09-02 18:36:28 +01:00
Kevin Ansfield
459f4afd2a Merge pull request #5744 from ErisDS/skip-link
Make skip link work with Ember
2015-09-02 17:59:06 +01:00
Kevin Ansfield
909e038e63 Better flickering auto-nav fix
refs #5652
- reverts previous fix (#5698) to return translate3d smoothness
- add separate open-autonav toggle element and style it to always stick to the viewport edge to avoid wandering hover hit areas
2015-09-02 17:41:50 +01:00
Hannah Wolfe
4b760fccfb Reduce search refresh timeout & forgotten link fix
no issue

- Change timeout from 60secs to 10secs for refreshing search results
- Remove white background from forgotten password link
2015-09-02 17:41:28 +01:00
Hannah Wolfe
40d71b7504 Merge pull request #5786 from JohnONolan/searchmobile
Search mobile fixes
2015-09-02 16:15:47 +01:00
John O'Nolan
e99670db65 Search mobile fixes 2015-09-02 16:13:18 +02:00
Hannah Wolfe
85954a1a57 Make skip link work with Ember
refs #5652

- handles the skip link using js so that ember doesn't interfere with the anchor
- uses the code suggested here: https://www.codehive.io/boards/pZUuwIk
2015-09-02 14:56:46 +01:00
Hannah Wolfe
5ea540d775 Merge pull request #5780 from kevinansfield/selectize-addselection-index
Fix tag order when selecting existing tags
2015-09-02 13:34:00 +01:00
Kevin Ansfield
2f899bf94b Merge pull request #5745 from ErisDS/fix-green-icons
Form field icons load in default 'grey' state
2015-09-02 10:32:53 +01:00
Kevin Ansfield
6b8b1dfb0d Display "No results" message when no search results found
no issue
- add a "No results" element to the search dropdown on creation and show/hide it appropriately
2015-09-02 09:23:20 +01:00
Kevin Ansfield
5596fd808b Fix tag order when selecting existing tags
refs #5773
- overrides ember-cli-selectize's `_addSelection` method to insert objects at the correct index instead of always adding at the end
2015-09-01 22:55:23 +01:00
Hannah Wolfe
025efe6d54 Merge pull request #5778 from kevinansfield/mobile-preview
Mobile markdown/preview tabs
2015-09-01 19:02:05 +01:00
Kevin Ansfield
353dc512bb Mobile markdown/preview tabs
refs #5652
- on mobile, add Markdown/Preview links to the editor footer that switch between the respective views
- temporary resolution to the inability to upload on mobile without access to the preview
2015-09-01 18:14:40 +01:00
Hannah Wolfe
09bcbb9463 Form field icons load in default 'grey' state
ref #5652

- validations can be in default, success or error state
- adds check for 'hasValidated' if the validations haven't fired yet, the field is in the default state
- hasValidated is an Ember.Array which tracks the state for each field
2015-09-01 13:02:27 +01:00
Kevin Ansfield
169384c3c7 Don't show selectize dropdown when input field is blank
no issue
- modify behaviour of selectize's `openOnFocus` option by ensuring that the dropdown is not opened when the input field is blank
- fixes issue with dropdown opening when content is loaded async despite `openOnFocus=false`
- fixes issue with dropdown remaining open when user enters text then deletes it
2015-09-01 10:40:41 +01:00
Hannah Wolfe
e574edf240 Merge pull request #5759 from kevinansfield/basic-post-search
Basic post/user search
2015-09-01 10:27:05 +01:00
Kevin Ansfield
a91cd2210e Basic post/user search
refs #5343, #5652
- implements basic post and user search using selectize input
- queries minimal API endpoint and refreshes results on search input focus if results are older than 60 seconds
2015-08-31 22:47:26 +01:00
cobbspur
42b76a2778 Prevent gh-spin-button from infinite spin
closes #5768

- Always set showSpinnerTimeout back to null after 1 second.
2015-08-31 13:41:01 +01:00
Hannah Wolfe
7f33ae0189 Merge pull request #5752 from kevinansfield/content-mgmt-mobile-nav
Fix broken content mgmt -> editor links on mobile
2015-08-28 19:00:20 +01:00
Hannah Wolfe
dd8da3bad7 Merge pull request #5742 from kevinansfield/spin-button-minimum-timeout
Set a minimum spin time of 1 second for gh-spin-button
2015-08-28 13:15:45 +01:00
Kevin Ansfield
2682e47478 Fix broken content mgmt -> editor links on mobile
refs #5652
- add `ember-resize` addon that registers a single resize event handler and exposes it as a service and mixin
- add a component that wraps the posts list and content preview and exposes a `previewIsHidden` property
- use the `previewIsHidden` property in `gh-posts-list-item` to switch the item's link between the editor and the preview
- add `display: none` to the preview pane when in mobile so that we can test it's visibility
2015-08-28 11:52:38 +01:00
Kevin Ansfield
63f27c229b Set a minimum spin time of 1 second for gh-spin-button
refs #5652, #5719
- adds a timeout to `gh-spin-button` so the spinner is always shown for at least 1 second

As a stopgap solution before #5719 can be implemented it was decided to keep the button spinning for a minimum time, even if the associated action completes quickly. Discussion can be found at https://ghost.slack.com/archives/dev/p1440670418004358
2015-08-27 22:16:01 +01:00
Kevin Ansfield
8b83b46664 Fix post tag input so it keeps the tag order
refs #5732
- patches ember-selectize to send the caret position to the create-item action handler
- updates `addTag` method in PSM controller to insert new tag in the correct place
2015-08-26 21:46:57 +01:00
Hannah Wolfe
25ba3b0d22 Improve markup + tabindex etc on setup/two
refs #5652

- ensure gh-spin-button passes type & tabindex through to markup
- add gh-input class to auto focus input
- add tabindexes to setup/two + make first field autofocus and button submit
2015-08-26 16:20:52 +01:00
Hannah Wolfe
566bc03f5f Merge pull request #5694 from kevinansfield/zelda-invite-fixes
Minor UI fixes for invitations
2015-08-24 12:41:43 +01:00
Hannah Wolfe
54f8c8e65f Merge pull request #5691 from acburdine/spin-fix
Fix auto width and height of spin button
2015-08-24 12:07:39 +01:00
Hannah Wolfe
2972080088 Merge pull request #5682 from kevinansfield/tags-v4
Replace the current tag input with a selectize based input
2015-08-21 21:34:06 +01:00
Kevin Ansfield
3efdfdf79f Replace the current tag input with a selectize based input
issue #3800, closes #5648
- uses ember-cli-selectize addon for the tag editing functionality in the PSM
2015-08-20 14:40:56 +01:00
Kevin Ansfield
bc6d31701c Minor UI fixes for invitations
issue #5652
- display "Sending Invite..." text after clicking "RESEND" link
- change "Invitation sent" alert to notification
2015-08-20 10:36:36 +01:00
Austin Burdine
a7ed98cc3e fix auto width and height of spin button component
refs #5652
- changes the spin-button so that it only sets the size when the button is submitting instead of all of the time
2015-08-19 23:39:07 -04:00
Kevin Ansfield
a889844188 guard against missing $previewContent/ViewPort in gh-editor.scrollPosition
issue #5659
- fixes occasional issue with editor not rendering due to scrollPosition being requested before the relevant jquery elements have been set
2015-08-19 20:44:59 +01:00
John O'Nolan
495536fbe3 Fixed publish menu positioning, cleaned up dropdown component
See #5652
2015-08-13 09:09:07 +02:00
Austin Burdine
96c5d2a2de fixed focus and duplication tag issues
refs #5648
- adds default value to refocus in reloadTypeahead method to fix focus issues
- moves tag input clearing call up to avoid duplication.
2015-08-11 11:04:53 -06:00
Hannah Wolfe
c174dd27ce Merge pull request #5633 from acburdine/spin-buttons
Add spin buttons
2015-08-10 19:06:32 +01:00
Austin Burdine
2833675238 add spin-button component & implement it
closes #3928
- adds spin-button component & styles
- implements spin-button in places where buttons trigger async tasks
2015-08-10 09:43:50 -06:00
Austin Burdine
16d0965a9e reimplement tag editing component for posts
refs #3800
- remove old tag editor code
- reimplement tag editor as an ember component
- add tag editor component to PSM
2015-08-10 07:22:37 -06:00
Kevin Ansfield
7ab232e770 Replace validation notifications with inline validations
issue #5409 & #5336

- update settings/general
- update signin
- update signup
- update edit user
- update reset password
- update setup/three
- remove `formatErrors` function from validationEngine mixin (it's no longer needed as inline validations should handle this instead)
2015-07-28 12:26:34 +01:00
Kevin Ansfield
ee89b11a6a Refactor notifications service & components
issue #5409

- change persistent/passive notification status to alert/notification
- replace showSuccess/Info/Warn/Error with showNotification/showAlert
- fix and clean up notification/alert components
2015-07-28 12:26:11 +01:00
Hannah Wolfe
6fc2b37ab2 Merge pull request #5575 from cobbspur/imageComponent
Disable image upload during setup for non persistent file storage
2015-07-19 23:23:08 +01:00
cobbspur
def08d7939 Disable image upload during setup for non persistent file storage
closes #5550

- passes config.fileStorage into gh-profile-image component
- does not render input tag if fileStorage is set to false
2015-07-18 20:26:27 +01:00
Jason Williams
00ede73105 Use correct property when determining display URL
Closes #5574
2015-07-17 10:23:29 -05:00
Hannah Wolfe
591467c47b Merge pull request #5531 from acburdine/profile-fixes
Fixes the profile image uploader component
2015-07-11 13:17:48 +01:00
Jason Williams
a7a5fe8cd3 Refactor role selects; pause transition if saving
Refs #5501
- Switch role select dropdowns from gh-select based components to
  gh-select-native.
- Prevent transition out of editor while there is an in-flight save.
2015-07-09 12:10:00 -05:00
Jason Williams
d8b49e6092 Rework gh-activating-list-item for new link-to 2015-07-08 18:37:15 -05:00
Austin Burdine
1b2e6ef78f profile image component fixes
closes #5528
- adds empty email message to setup validation
- fixes uploads so they actually work
- fixes gravatar to not disappear when an invalid file is selected
2015-07-07 17:13:45 -04:00
Austin Burdine
39b7630a6d added profile image component
closes #5334
- adds component for profile images (with optional gravatar)
- integrates image profile component into setup form
2015-07-05 17:37:22 -04:00
Austin Burdine
b1ecc53cfc adds inline errors to validation
closes #5336
- creates gh-form-group component to handle form group status
- refactors current validation methods to work on a per-property basis
- adds gh-error-message component to render error message
- removes (comments out) tests that pertain to the old notifications until the new inline validation is added
2015-07-05 14:02:06 -04:00
Jason Williams
feac9682d0 Update Ember to 1.13.2
- Refactor to handle deprecations including removal of
  all Views, ArrayControllers, and ItemControllers.
2015-06-24 11:47:28 -05:00
Jason Williams
40a176c772 Fix up editor/preview scroll and post list loading
Refs #5381
- Invoke this._super() so mixed in lifecycle hooks run.
2015-06-22 11:35:17 -05:00
Austin Burdine
45f3c513d5 removes usage of prototype extensions
No issue
- removes more usage of function prototype extensions in favor of Ember functions
- replaces some event calls with the direct function name
- adds comments to functions replaced with the event name
2015-06-15 14:07:25 -04:00
Matt Enlow
d37a51fb90 Zelda menu z-index and viewport transition finishes
- [x] Mobilemenu button is missing from `content` and `editor` views
- [x] Mobilemenu pane slides entire content over, should expand over-top-of-content
- [x] Mobilemenu can't be closed
- [x] gh-view-title no longer generates an extra div; it is the h2.
- [x] gh-autonav-toggle closes the mobile menu on mobile. renamed `gh-menu-toggle`
- [ ] There is weird behaviour with mobile menu when changing from big=>small=>big viewport sizes
- ~~[ ] (Future issue) Ghost should remember (localstorage?) whether desktop menu is expanded or collapsed~~
2015-06-14 13:57:09 -07:00
Matt Enlow
753da0231f Add mobile menu open button and close on click outside nav
- Adds gh-view-title component to implement mobile menu button for titles on any page
- Refactors the `content-cover` out into the application template
- Fix various z-index issues with content-cover and gh-alert
- Move `.settings-menu-expanded` application view state from body to `.gh-viewport`
- Unify nav menu / mobile menu actions and code
2015-06-08 22:13:34 +02:00
Austin Burdine
eb4c555e49 fixes autofocus on post edit
closes #5383
- sets the default focus of the editor component to false
- removes the check for model.isNew in editor controller
2015-06-03 12:01:32 -06:00
Jason Williams
def2e8e146 Fix up new setup code
No issue
- Prevent download count ajax request from running forever, even after setup is complete.
- Remove unneeded setup routes and controllers.
- Refactor to use ES6-imported ajax.
- Refactor to use injected services.
2015-05-27 15:10:47 -05:00
Sebastian Gierlinger
3c2a625e07 Merge pull request #5316 from ErisDS/onboarding-zelda
First pass at user onboarding screens
2015-05-27 17:23:40 +02:00
Jason Williams
71c358b638 Use Ember.inject instead of needs and initializers
No Issue
- Switches to the newer style of dependency injection.
- Instead of injection Controllers via "needs," use
  Ember.inject.controller().
- Get rid of initializers that were only injecting objects
  into various factories. Converts these objects into Ember.Service
  objects and declaratively inject them where needed via
  Ember.inject.service().  The added benefit to this is that it's no
  longer a mystery where these properties/methods come from and it's
  straightforward to inject them where needed.
2015-05-27 07:41:42 -05:00
Hannah Wolfe
3d5fc7adba Merge pull request #5319 from jaswilli/nav
Refactor main nav menu into components
2015-05-25 18:37:37 +01:00
Hannah Wolfe
3ad2115b40 First pass at user onboarding screens
refs #5315

- split setup into 3 screens
- add gravatar fetching
- add download counter
- add button handling for invite users
2015-05-25 17:43:12 +01:00
John O'Nolan
79f90c1d27 Refactor blog-navigation settings screen
- Better markup
- Cleaner CSS
- Fixed icon implementation
- New grab handle icon
- Better mobile styles
2015-05-25 14:23:49 +01:00
Jason Williams
c8323e36ff Refactor main nav menu into components 2015-05-24 01:42:59 -05:00
cobbspur
7fbd9f84e6 Fix-up remaining functional tests
No Issue

- signup, signin and setup tests
- fixup other files for code styles
2015-05-22 20:13:54 +01:00
Austin Burdine
70f6b2bf3f fixed notification components 2015-05-22 19:05:17 +01:00
Robert Jackson
3c5df473d1 Replace gh-blog-url helper with a component.
Accessing `this` inside an `Ember.HTMLBars.makeBoundHelper` will not
always return the containing `view` object. Instead, use a component.
2015-05-05 14:40:18 -04:00
Hannah Wolfe
703906e983 Merge pull request #5106 from acburdine/ghost-cm-editor
Added code editor to injection interface: the sequel (this time, with CodeMirror!)
2015-04-06 19:33:18 +01:00
Austin Burdine
ee685e448a add code editor component
closes #4995
- adds code mirror editor component
- converted code-injection editor fields to gh-cm-editor component
2015-04-05 11:57:18 -05:00
Matt Enlow
4d1660e546 Autosave by observing model.scratch in editor
No issue
- removes keypress handling in the editor component
- automated value changes via shortcuts still autosave
2015-04-02 17:06:00 -06:00
Hannah Wolfe
2f8de51d67 No more CodeMirror
closes #4368, fixes #1240 (spellcheck), fixes #4974 & fixes #4983 (caret positioning bugs)

- Drop CodeMirror in favour of a plain text area
- Use rangyinputs to handle selections cross-browser
- Create an API for interacting with the textarea
- Replace marker manager with a much simpler image manager
- Reimplement shortcuts, including some bug fixes
2015-03-17 14:32:55 +00:00
Jason Williams
b9c7f8e6c2 fix routes test. ember-mocha@0.4.2 2015-03-11 12:37:42 -06:00
Matt Enlow
6d80907c99 Ember init, bower deps, es6 modules 2015-03-11 12:37:41 -06:00
Matt Enlow
589a563b30 The great migration (EAK -> ember-cli) 2015-03-11 12:37:41 -06:00