Commit Graph

143 Commits

Author SHA1 Message Date
Kevin Ansfield
eb1cf51bf6 Avoid use of this.attrs for closure actions
no issue
- `this.attrs` is a glimmer-component thing (which doesn't exist in Ghost yet), to avoid confusion we should avoid using it
- https://locks.svbtle.com/to-attrs-or-not-to-attrs
- https://github.com/cibernox/ember-power-select/issues/233#issuecomment-170352572
2016-04-09 10:46:19 +01:00
Austin Burdine
c416f14663 replace hardcoded AWS image url with static image url 2016-03-31 12:09:54 -05:00
David Balderston
9eb0a8a690 Remove Nav Item Placeholder and Set as Base Url Value
Closes #6440

* Removed the `.fake-placeholder`class from the input, test, and css
* On adding a nav item, if the url value has not been set by the user,
then set it to the base url as shown in the input
* If url has been set by the user, just do what it has always done
2016-03-22 07:11:20 -07:00
Kevin Ansfield
1da47aa1c9 Merge pull request #6387 from novaugust/post-deletion
Fix post deletion scroll on content and tag screens
2016-02-15 11:02:42 +00:00
Hannah Wolfe
17805767fd Merge pull request #6468 from kevinansfield/ember-sortable-nav-items
Replace jquery-ui.sortable with ember-sortable for nav items
2016-02-14 13:44:07 +00:00
Kevin Ansfield
c879105684 Replace jquery-ui.sortable with ember-sortable for nav items
refs #6458, closes #6457
- replaces jquery-ui.sortable with ember-sortable for drag-n-drop handling
- moves the "new/blank" nav item out of the nav items list
  - allows it to be excluded from the draggable list
  - cleans up handling of the `navigationItems` array as there's no longer a need to ignore/exclude this extra item
- clears validation errors when typing in the respective field
- adds acceptance test for adding/removing nav items
- improves acceptance test for saving nav items to cover more edge cases
2016-02-09 22:08:21 +00:00
Matt Enlow
6ed69181ef Load more posts after post deletion
Closes #6390
- check if more posts should be loaded whenever one is deleted
- delete dead code from posts controller
- delete duplicate component gh-infinite-scroll-box
- simplify posts-list-item `posts.post` or `editor.edit` link logic by modifying `gh-content-view-container` to yield necessary vars directly and use inline ifs in template
- add `gh-tag` component for rendering tags and updating infinite scroll box on `settings/tags` page
2016-02-09 09:08:31 -07:00
Austin Burdine
0ac222a439 convert feature controller to service
closes #6170
- add gh-feature-flag component to create a checkbox (reduce duplicate code)
2016-02-09 08:37:44 -06:00
Kevin Ansfield
cb7cafc0c9 Fix mixed content security warnings due to gravatar images
no issue
- switches gravatar URL generation to use protocol-relative URLs in `gh-profile-image` component
2016-02-05 16:48:15 +00:00
Kevin Ansfield
e0239c44aa Merge pull request #6430 from halfdan/6428-add-trailing
Add trailing slashes on relative URL unless [.?#]
2016-02-03 17:36:34 +00:00
Kevin Ansfield
fc8d96b665 Merge pull request #6373 from kevinkucharczyk/standardise-camelcase
Standardise client property names to camelCase
2016-02-03 16:41:23 +00:00
Fabian Becker
eab3c57b8d Add trailing slashes on relative URL unless [.?#]
closes #6428
2016-02-03 17:11:44 +01:00
Kevin Ansfield
8ddf160240 Merge pull request #6365 from acburdine/remove-on
remove more usage of Ember.on
2016-01-25 11:42:32 +00:00
Kevin P. Kucharczyk
9eac05e082 Standardise client property names to camelCase
closes #6018
- added keyForAttribute method in application serializer
- override keyForAttribute in settings serializer to not apply camelCase/underscore conversion
- rename under_scored properties to camelCased
2016-01-23 19:12:22 +01:00
Hannah Wolfe
57ae36ab21 Merge pull request #6341 from kevinansfield/fix-mixed-content-on-team-page
Move user/cover image files used in admin team area into the client folder
2016-01-21 09:46:00 +00:00
Austin Burdine
7e2fa64278 remove more usage of Ember.on 2016-01-19 10:00:44 -06:00
Austin Burdine
250e7a3b8b cleanup usage of Ember.inject 2016-01-19 07:03:27 -06:00
Austin Burdine
022bf364c2 deps: ember-ajax@0.7.1 2016-01-18 09:37:14 -06:00
Kevin P. Kucharczyk
41a18c9262 Clear images in gh-uploader when navigating between items
closes #6198
- clear img src in gh-uploader when navigating to item with image
- always reset uploader component when new image is not empty
2016-01-16 21:54:02 +01:00
Kevin Ansfield
da0a0c559b Move user/cover image files used in admin team area into the client folder
no issue
- fixes potential "mixed content" warnings if non-admin urls are redirected
2016-01-14 16:26:48 +00:00
Kevin Ansfield
ead352dd83 Isolate all markdown editor behaviour into gh-editor component
no issue
- move all existing markdown editor behaviour out of the editor controller and isolate it into a single component that can be swapped out
- split the `register/remove` functions of the `shortcuts-route` out into a separate `shortcuts` mixin
2016-01-13 12:01:31 +00:00
Hannah Wolfe
c30f1d5ed7 Merge pull request #6088 from kevinansfield/liquid-tether-modals
Modals refactor
2016-01-12 21:11:38 +00:00
Kevin Ansfield
1c6b208047 Refactor modals
refs #5798, closes #5018
- adds new `gh-fullscreen-modal` component - modals are now specified in-context so that they can have deeper interaction with their surrounding components/controller/route, i.e. a modal component can be a thin confirm/deny wrapper over the underlying controller action keeping all context-sensitive logic in one place
- adds spin-buttons to all modals with async behaviour
- adds/improves behaviour of inline-validation in modals
- improves re-authenticate modal to properly handle validation and authentication errors
2016-01-12 20:53:08 +00:00
Kevin Ansfield
adfa250158 Remove use of Ember.on
no issue
- removes the few uses of `Ember.on` for lifecycle hooks or event hooks where order may be important

`Ember.on` use is discouraged so although we haven't used it often I felt like we should ensure we're consistent throughout the codebase. There's a great article with details of why it's discouraged here: http://notmessenger.com/proper-use-of-ember-on/
2016-01-12 20:48:15 +00:00
Hannah Wolfe
9ee52d4079 Merge pull request #6300 from kevinansfield/fix-missing-tags-bug
Fix disappearing tags when tag input's selection is swapped out
2016-01-09 16:32:59 +00:00
Hannah Wolfe
4229205d23 Merge pull request #6286 from kevinansfield/fix-slow-post-navigation
Fix posts navigation slowdown when lots of posts are loaded
2016-01-09 12:42:21 +00:00
Hannah Wolfe
0071c99fe2 Merge pull request #6285 from kevinansfield/fix-unresponsive-search
Fix unresponsive search
2016-01-08 17:21:59 +00:00
Hannah Wolfe
4f05bbf6e1 Merge pull request #6254 from kevinansfield/fix-profile-image
Fix teardown of gh-profile-image when fileStorage=false
2016-01-08 15:54:25 +00:00
Kevin Ansfield
2308ca4ed8 Fix disappearing tags when input's selection is swapped out
closes #6257
- update the `_onChange` event handler in `gh-selectize` component so that the re-ordering process isn't hit when the underlying objects have changed
2016-01-06 12:21:39 +00:00
Kevin Ansfield
08735aa9bf Fix posts navigation slowdown when lots of posts are loaded
refs #6274
- adds `active-link-wrapper` mixin that tracks the `active` state of child links and adds/removes a `.active` class on the mixed-in element
- removes the passed-in `active` attribute on `gh-posts-list-item` component that forced every item in the content list to be re-rendered each time the currently selected post changed
2016-01-04 16:55:36 +00:00
Kevin Ansfield
ee3339bf18 Fix unresponsive search
closes #6274
- any time the search content is refreshed, start with a clean array instead of performing expensive object comparisons to remove existing content
2016-01-04 12:04:57 +00:00
Austin Burdine
06817fcc54 fix autoscoping of _this in settings/navigation
closes #6267
- adds a hardcoded this because babel's autoscoping isn't triggered by default
2015-12-27 17:25:36 -07:00
Kevin Ansfield
cb921a951e Fix teardown of gh-profile-image when fileStorage=false
closes #6253
- don't expect the file input to be present in `willDestroyElement`
2015-12-21 11:08:49 +00:00
Kevin Ansfield
117ab27222 Remove setScrollClassName mixin and usage
no issue
- removes `setScrollClassName` mixin that was previously used to add a `.scrolling` class to scrollable elements that showed a shadow at the top of boxes when not scrolled to the top
2015-12-15 12:00:57 +00:00
Hannah Wolfe
a4b3bb79a5 Merge pull request #6184 from kevinansfield/fix-date-input
Fix changing text and jumping caret in PSM's date input
2015-12-10 16:29:36 +00:00
Hannah Wolfe
70a481be32 Merge pull request #6153 from kevinansfield/fix-subdir-nav-issues
Fix sub-dir being added to navigation urls when installed in sub-dir
2015-12-09 21:27:43 +00:00
Kevin Ansfield
b858232369 Fix changing text and jumping caret in PSM's date input
refs #5777
- adds new `gh-datetime-input` that takes a one-way-bound value and formats it, only triggering the supplied `update` action on focus-out
- fixes bug in PSM's `setPublishedAt` action if model's `published_at` is a Date object not a Moment object
2015-12-08 10:13:17 +00:00
Syaiful Bahri
b5a8ac3a7d Fix Select Component
jQuery instance isn't iterable, so we cant destructuring it.

closes https://github.com/TryGhost/Ghost/issues/6171
2015-12-07 16:44:54 +07:00
Kevin Ansfield
413d999462 Remove $ from jshint's predef, always use Ember's $
no issue
- fixes problems with "re-definition of $" errors
2015-12-01 20:52:25 +00:00
Kevin Ansfield
81765c6af2 Fix sub-dir being added to navigation urls when installed in sub-dir
refs #4989
- fix handling of urls relative to base domain when ghost is installed in a sub folder

Fixes an issue when ghost was installed to a sub-dir, e.g. `example.com/blog` and an attempt to link to `example.com/` or `example.com/something-else` would always be re-written to `example.com/blog/` or `example.com/blog/something-else`.
2015-12-01 15:23:21 +00:00
Kevin Ansfield
571b9e783a Always call _super when using Ember hooks
no issue
- review use of Ember core hooks and add a call to `this._super` if missing
- fix a few occurrences of using the wrong component lifecycle hooks that could result in multiple/duplicate event handlers being attached

`_super` should always be called when overriding Ember's base hooks so that core functionality or app functionality added through extensions, mixins or addons is not lost. This is important as it guards against issues arising from later refactorings or core changes.

As example of lost functionality, there were a number of routes that extended from `AuthenticatedRoute` but then overrode the `beforeModel` hook without calling `_super` which meant that the route was no longer treated as authenticated.
2015-11-30 12:45:37 +00:00
Kevin Ansfield
3d6856614f Use es6 across client and add ember-suave to enforce rules
no issue
- add ember-suave dependency
- upgrade grunt-jscs dependency
- add a new .jscsrc for the client's tests directory that extends from client's base .jscsrc
- separate client tests in Gruntfile jscs task so they pick up the test's .jscsrc
- standardize es6 usage across client
2015-11-30 10:41:01 +00:00
Matthew Beale
402b27c7e9 Unify mobile state in JS, drop resize
In `gh-content-view-container` the visibility of another DOM node was
being used to detect if a given view was mobile or not. This means the
UI needed to have layout forced (and DOM rendered) before the content
view container would render a second time. This is slow interaction with
the DOM (forcing layout) and slow for Ember's renderer (it needs to
render the container once with a default, then again when the value
changes).

Additionally there were two ways resize was being observed. The
`Window.matchMedia` API was used for some styles and the `ember-resize`
addon used to detect other changes. Here I've unified around just the
`Window.matcheMedia` API but abstracted it behind a service.

Sizes are exposed as properties that can be bound to or used directly in
templates.
2015-11-25 11:54:08 -05:00
Matthew Beale
2fa9a2e98a Use private properties for unobserved render state
* Drop set for local private editor property
* Only run preview setup on didInsertElement
* Drop set for local scrollWrapper prop
* Selectize setup on afterRender instead of next
* Use local props for editor save timers
2015-11-21 09:25:21 -05:00
Matthew Beale
85f2361049 Properly use htmlSafe styles 2015-11-20 17:48:48 -05:00
Kevin Ansfield
73ea9f52f0 Fix auth regressions after ESA 1.0 upgrade
refs #6039, closes #6047, closes #6048

- delete old/unused fixtures file
- add failing tests for #6047 & #6048
- redirect to sign-in if we get a 401 when making an API request
- fix incorrect `this.notifications` call in tag controller
- raise `authorizationFailed` action in application route's `sessionInvalidated` hook so that it can be handled by leaf routes (fixes re-auth modal display)
- close "saving failed" alert when successfully re-authenticated
- adds a "window-proxy" util so that we can override `window.*` operations in tests
- fix `gh-selectize` attempting to register event handlers when the component has already been destroyed
2015-11-12 12:56:27 +00:00
Hannah Wolfe
54532e7e88 Merge pull request #6017 from kevinansfield/finalize-debounced-gravatar
Finish changes in #5807 (debounced gravatar load in gh-profile-image)
2015-11-02 18:14:53 +00:00
Hannah Wolfe
b0836febf8 Merge pull request #6010 from kevinansfield/drag-drop-tags
Drag-n-drop re-ordering of tags in post settings menu
2015-11-02 16:15:33 +00:00
Kevin Ansfield
c2578f95b6 Add tags to auto-complete search
refs #5845
- display matched tags in auto-complete dropdown, load tag edit screen when selected
- fix bug where only 1 search item with the same ID would be displayed (eg. if a post and tag both had an ID of 1 it would only show the first-loaded item)
2015-11-02 15:34:13 +00:00
Kevin Ansfield
983c6c8d81 Mobile fixes for tag management UI
refs #5845, #5969
- when on mobile devices tag management UI will only display a list and when a tag is accessed the tag settings form will slide in from the right
- tag settings form header has a 'back' button when on mobile to go back to tags list
- switching from mobile to standard modes will auto load the first tag as per standard tags screen on desktop
- if no tags are present then the blank-slate template will be shown when on mobile
2015-11-02 13:18:10 +00:00