Commit Graph

2875 Commits

Author SHA1 Message Date
Greenkeeper
a52a251485 chore(package): update ember-cli-babel to version 5.1.7 (#143)
https://greenkeeper.io/
2016-07-28 11:33:31 +01:00
Greenkeeper
3874e7c2c1 chore(package): update ember-data to version 2.7.0 (#146)
https://greenkeeper.io/
2016-07-28 11:01:20 +01:00
Greenkeeper
3b85f06f5d chore(package): update moment-timezone to version 0.5.5 (#150)
https://greenkeeper.io/
2016-07-27 10:58:45 -06:00
Greenkeeper
bb7cdef7d2 chore(package): update broccoli-asset-rev to version 2.4.5 (#151)
https://greenkeeper.io/
2016-07-27 10:38:47 -06:00
Kevin Ansfield
78d5b6b848 Version bump to 0.9.0 2016-07-26 13:31:16 +01:00
Kevin Ansfield
d46cee25fe Handle automatic timezone override
refs https://github.com/TryGhost/Ghost/pull/7142, https://github.com/TryGhost/Ghost/pull/7143
- moves timezone selection template and logic into a component
- detect if the current `activeTimezone` is not in our pre-defined list of timezones, if it isn't:
  - add a line indicating that there has been an override with the current `activeTimezone` value
  - add a blank option to the timezone select list
2016-07-26 11:50:24 +01:00
Austin Burdine
93acca96fb fix image uploader text handling (again) (#140)
closes TryGhost/Ghost#7127
- image uploader now handles "text" and "alt text" differently
2016-07-24 10:19:49 +01:00
Austin Burdine
c0907d0867 fix upgrade notification font size (#138) 2016-07-22 15:03:41 +01:00
Kevin Ansfield
8d803d9862 Fix blank signup screen (#135)
closes https://github.com/TryGhost/Ghost/issues/7117
- adds guard to `sanitizeInput` method of `gh-trim-focus-input` for null/undefined values
- adds acceptance test for successful signup screen flow
- removes unneeded validation/update handling for a non-editable email field
- adds "At least 8 characters" placeholder to password field
- fixes enter key not submitting the form when name or password field has focus
2016-07-22 07:36:50 -06:00
Austin Burdine
899ccaea38 ensure validation errors are shown on post save (#136)
closes TryGhost/Ghost#7120
- fix error handling in editor-base-controller
- adds failing test fixed by this change
2016-07-22 10:14:32 +01:00
Vijay Kandy
b7dcda8f61 authentication fix for intermittent internet connection (#131)
closes TryGhost/Ghost#6868

- token is refreshed when internet connectivity is established provided the session is still active
- Added navigator.online handler which listens for browser's online status.
- _refreshAccessTokens() is explicitly called when browser becomes online
2016-07-20 22:52:15 -06:00
Greenkeeper
96b0fabfc9 chore(package): update ember-cli-node-assets to version 0.1.4 (#134)
https://greenkeeper.io/
2016-07-19 15:35:37 -06:00
Greenkeeper
626bbea2b3 chore(package): update ember-route-action-helper to version 0.3.3 (#133)
https://greenkeeper.io/
2016-07-19 09:22:36 -06:00
Greenkeeper
aeb8b91aa0 chore(package): update codemirror to version 5.17.0 (#132)
https://greenkeeper.io/
2016-07-19 09:14:13 -06:00
Kevin Ansfield
0b2345e635 Fix editor error handling (#128)
closes https://github.com/TryGhost/Ghost/issues/7099
- update editor base controller's `showErrorAlert` method to handle `AdapterError` or `AjaxError` objects
- update PSM's error handling so that we don't pass an error object wrapped in an array to `showAPIError`
- add missing title attribute to Mirage's Post factory
- remove some leftover `console.log`s
2016-07-18 17:23:43 -06:00
Vijay Kandy
b4e812db54 Added upgrade notification component to About page. (#102)
- Picked some fixes https://github.com/TryGhost/Ghost/pull/5670/files
- Destructured Ember properties
- Removed unused imports and fixed unit test errors.
2016-07-15 16:58:35 -06:00
Hannah Wolfe
cb30a834b7 Fix: travis exception for greenkeeper branches (#130)
- travis terminology is inconsistent :(
2016-07-15 10:51:00 -06:00
Greenkeeper
d3d0e3c942 chore(package): update broccoli-concat to version 3.0.1 (#129)
https://greenkeeper.io/
2016-07-15 10:17:24 -06:00
Aileen Nowak
2b20e6d3e1 Fixes curser changing to pointer on hover (#127)
closes #7100

Adds `:hover` pseudo-class to `gh-notification-schedule` that sets the curser to default to avoid having it as a pointer on hover.
2016-07-15 09:30:50 -06:00
Hannah Wolfe
4848955425 Recommend Node v4 & use as default (#126)
refs TryGhost/Ghost#7098

- Use Node v4 as our default build environment
- Change engines in package.json to match Ghost core
2016-07-15 12:12:17 +01:00
Greenkeeper
01546d7d1a chore(package): update broccoli-concat to version 3.0.0 (#124)
https://greenkeeper.io/
2016-07-15 11:24:12 +01:00
Greenkeeper
f5de858235 chore(package): update ember-cli to version 2.6.3 (#125)
https://greenkeeper.io/
2016-07-15 09:59:37 +01:00
Austin Burdine
5573d72e65 fix image component displaying alt text in uploader (#105)
closes TryGhost/Ghost#7064
- pull alt text from parsed markdown
- move text to image uploader component proper
2016-07-14 13:27:18 +01:00
Kevin Ansfield
b86da86de5 Add grunt clean task (#119)
refs #6977
- adds `grunt-contrib-clean` dependency
- adds `grunt clean` task that cleans the same client folders as core's `grunt clean` ready to be used via subgrunt
2016-07-14 12:43:49 +01:00
Greenkeeper
ce7b82d13a chore(package): update broccoli-merge-trees to version 1.1.2 (#118)
https://greenkeeper.io/
2016-07-13 11:16:08 -06:00
Greenkeeper
637f23731f chore(package): update liquid-fire to version 0.24.1 (#117)
https://greenkeeper.io/
2016-07-12 07:01:05 +01:00
Greenkeeper
b1cc631636 chore(package): update broccoli-concat to version 2.2.1 (#115)
https://greenkeeper.io/
2016-07-11 15:18:44 -06:00
Austin Burdine
8fc2107308 Merge pull request #112 from kevinansfield/503-maintenance
"503 Maintenance" error handling
2016-07-11 05:34:56 -06:00
Greenkeeper
67a33da1f9 chore(package): update liquid-fire to version 0.24.0 (#114)
https://greenkeeper.io/
2016-07-09 12:24:50 +01:00
Greenkeeper
ad8833015a chore(package): update ember-suave to version 4.0.0 (#113)
https://greenkeeper.io/
2016-07-09 08:06:05 +01:00
Kevin Ansfield
3c92c171f9 "503 Maintenance" error handling
refs https://github.com/TryGhost/Ghost/issues/6976
- adds custom `MaintenanceError` and associated error checking functions
- updates app route and notifications service to handle `503` errors via the `upgrade-status` service
2016-07-08 15:17:26 +01:00
Kevin Ansfield
eb2a0359cf Refactor error handling
closes https://github.com/TryGhost/Ghost/issues/6974
- update "change password" fields/process to use inline validations
- remove `notifications.showErrors` and update all uses of it to `showAPIError`
- display multiple API errors as alerts rather than toaster notifications
- refactor `notifications.showAPIError`
  - remove `notifications.showErrors`, use a loop in `showAPIError` instead
  - properly determine the message from `AjaxError` or `AdapterError` objects
  - determine a unique key if possible so that we don't lose multiple different alerts
- add `ServerUnreachable` error for when we get a status code of 0 (eg, when the ghost service has been shut down)
- simplify error messages for our custom ajax errors
2016-07-08 15:16:54 +01:00
Kevin Ansfield
b4cdc85a59 "400 Version Mismatch" error handling
refs https://github.com/TryGhost/Ghost/issues/6949

Handle version mismatch errors by:
- displaying an alert asking the user to copy any data and refresh
- disabling navigation so that unsaved data is not accidentally lost

Detailed changes:
- add `error` action to application route for global route-based error handling
- remove 404-handler mixin, move logic into app route error handler
- update `.catch` in validation-engine so that promises are rejected with the
  original error objects
- add `VersionMismatchError` and `isVersionMismatchError` to ajax service
- add `upgrade-status` service
  - has a method to trigger the alert and toggle the "upgrade required" mode
  - is injected into all routes by default so that it can be checked before
    transitioning
- add `Route` override
  - updates the `willTransition` hook to check the `upgrade-status` service
    and abort the transition if we're in "upgrade required" mode
- update notifications `showAPIError` method to handle version mismatch errors
- update any areas where we were catching ajax errors manually so that the
  version mismatch error handling is obeyed
- fix redirect tests in editor acceptance test
- fix mirage's handling of 404s for unknown posts in get post requests
- adjust alert z-index to to appear above modal backgrounds
2016-07-08 14:56:26 +01:00
Austin Burdine
bfe542b27d more shimming of controllers (#110)
refs #101, #95
- shim controllers that were missed initially
2016-07-06 20:47:30 +01:00
Austin Burdine
c0f21b37d3 lazy-load codemirror on code injection screen (#99)
refs TryGhost/Ghost#6149
- concats codemirror.js and css on build, keeping them out of vendor.js
- add lazy-loader service to enable loading of external scripts
2016-07-05 17:30:14 +01:00
Kevin Ansfield
8c8365720b Revert to ember-wormhole@0.3.6 (#108)
closes https://github.com/TryGhost/Ghost/issues/7073
- reverts `ember-wormhole` to 0.3.6
- adds working test that was broken under `ember-wormhole` 0.4.0
2016-07-05 08:29:05 -06:00
Austin Burdine
d7001e54c7 deps: moment@2.14.1 (#107)
no issue
- update moment manually because greenkeeper didn't pick it up for some reason
2016-07-05 14:56:14 +01:00
Greenkeeper
9ab38e3fa9 chore(package): update moment to version 2.14.0 (#106)
https://greenkeeper.io/
2016-07-04 06:38:56 +01:00
Kevin Ansfield
96e9e1f76b fix focusOut event on slug input in PSM (#103)
no issue
- ensures that the current slug value is passed to the action instead of a `jQuery.event` object
2016-07-01 08:30:13 -06:00
Austin Burdine
fb239054a0 convert remainder of components to use ember-cli-shims (#101)
follow up from #95
- converts components to use ember-cli-shims
2016-06-30 19:14:25 +01:00
Austin Burdine
93105d5cce only build parts of jquery-ui that we need (#100) 2016-06-30 14:42:00 +01:00
Austin Burdine
f53c7dfc88 convert ember imports to ember-cli-shim imports where possible (#95) 2016-06-30 11:21:47 +01:00
Greenkeeper
e77b4d141f chore(package): update broccoli-asset-rev to version 2.4.4 (#97) 2016-06-29 22:00:50 -06:00
Kevin Ansfield
861d79299f convert bower deps to npm deps
no issue
- convert moment + moment-timezone to npm dependencies
- convert password-generator to npm dependency
- convert keymaster.js to npm dependency
- convert blueimp-md5 to npm dependency
2016-06-29 11:52:10 +01:00
Kevin Ansfield
8192d6fd64 deps: jquery-deparam@0.5.2 as npm module 2016-06-29 11:28:53 +01:00
Kevin Ansfield
1650069bcb deps: codemirror@5.16.0 as npm module 2016-06-29 11:28:53 +01:00
Kevin Ansfield
0dccda345e deps: ember-cli-shims@0.1.3 2016-06-29 11:28:53 +01:00
Kevin Ansfield
e3167c9afd deps: ember@2.6.1
no issue
- bugfix release: https://github.com/emberjs/ember.js/releases/tag/v2.6.1
2016-06-29 11:28:53 +01:00
Kevin Ansfield
d9b7d11401 deps: ember-cli-node-assets@0.1.3
no issue
- allows easy switching of `bower` dependencies to `npm` dependencies
2016-06-29 10:25:02 +01:00
Austin Burdine
9c2e45c44d add buildAboutPage task to Gruntfile (#90) 2016-06-28 18:36:00 +01:00
Austin Burdine
13b78ae1f7 Merge pull request #91 from starcwl/master
fix meta-data problem, which will cause SEO of post fail.
2016-06-27 04:32:19 -06:00
starcwl
541c8e67ad fix meta-data problem, which will cause SEO of post fail.
no issue
- fixed focus-out action calls in post-settings-menu meta fields which miss arguments metaDescriptionScratch and metaTitleScratch.
2016-06-27 18:10:41 +08:00
Austin Burdine
22477ef71b deps: bower@1.7.9
refs TryGhost/Ghost#7039
- add bower dependency to client
2016-06-26 08:00:51 -06:00
Austin Burdine
3b294f18d8 Add greenkeeper branch ignores to travis
This prevents greenkeeper branches from being built as they will always by run in the PR.
2016-06-22 10:31:11 -06:00
greenkeeperio-bot
ec07d0bd0b chore(package): update loader.js to version 4.0.10
https://greenkeeper.io/
2016-06-22 03:11:01 +01:00
greenkeeperio-bot
709ac14ccf chore(package): update grunt-jscs to version 3.0.1
https://greenkeeper.io/
2016-06-21 22:22:13 +01:00
greenkeeperio-bot
24e8f61e76 chore(package): update glob to version 7.0.5
https://greenkeeper.io/
2016-06-21 02:15:55 +01:00
Kevin Ansfield
df58953778 Fix un-bound HTML attributes for gh-trim-focus-input
no issue
- updates `gh-trim-focus-input` to extend from `gh-input`/`one-way-input` to get the auto-binding attribute behaviour for passed-in HTML attributes
- renames `focus` property to `shouldFocus` so that we're not overriding default DOM functions
- fixes signin page issues with missing placeholders and no autofocus
2016-06-20 15:20:25 +01:00
greenkeeperio-bot
3466b48b9d chore(package): update ember-cli to version 2.6.2
https://greenkeeper.io/
2016-06-20 10:04:17 +01:00
greenkeeperio-bot
9a432ab591 chore(package): update ember-cli-dependency-checker to version 1.3.0
https://greenkeeper.io/
2016-06-18 20:08:27 +01:00
Kevin Ansfield
5e3fafa79a Add grunt init task
refs https://github.com/TryGhost/Ghost/pull/7005
- add `grunt init` task that installs `npm` and `bower` dependencies
- allows Ghost to call this task via subgrunt avoiding the need for a global bower install
2016-06-18 18:33:46 +01:00
Kevin Ansfield
7c2034df21 Merge pull request #46 from acburdine/one-way-inputs
Convert inputs to one way components
2016-06-18 16:26:17 +01:00
Austin Burdine
34ccd12111 Merge pull request #76 from kevinansfield/post-comparable
Use Ember.Comparable mixin to sort posts
2016-06-18 09:26:26 -04:00
Austin Burdine
6ee77a712a convert inputs to one-way inputs
no issue
- moves all inputs to use the data-down-actions-up component paradigm
2016-06-18 07:44:23 -04:00
greenkeeperio-bot
f0ddd0402e chore(package): update broccoli-asset-rev to version 2.4.3
https://greenkeeper.io/
2016-06-18 06:08:23 +01:00
greenkeeperio-bot
01cffa55a0 chore(package): update ember-cli-deprecation-workflow to version 0.2.3
https://greenkeeper.io/
2016-06-17 15:48:25 +01:00
Kevin Ansfield
a109c1c3db Use Ember.Comparable mixin to sort posts
closes https://github.com/TryGhost/Ghost/issues/7002
- move sorting logic out of the controller and into the Post model

This is a quick attempt at implementing the refactoring referenced in https://github.com/TryGhost/Ghost/issues/7002. The client-side sorting is working but we still have the problem of scheduled posts not appearing in the list until you scroll to the very first published post because the server is returning posts in the wrong order.
2016-06-17 11:33:11 +01:00
Aileen Nowak
d90ed28940 Renaming date properties to contain UTC
closes TryGhost/Ghost#6985

- renames all date properties to end with `UTC`:
	- `publishedAt` in `post` model
	- `createdAt` in `post`, `role`, `subscriber`, `tag` and `user` model
	- `updatedAt` in `post`, `role`, `subscriber`, `tag` and `user` model
	- `unsubscribedAt` in `subscriber` model
	- `lastLogin` in `user` model
- adds `attrs` transforms in matching serializers `post`, `tag` and `user`
- new serializers files for `subscribers` and `role` to add `attr` transforms
- adds unit tests for all serializers
- use two variables in `post-settings-menu` controller to handle blog-timezone adjusted date as well as UTC date
2016-06-17 11:09:21 +02:00
greenkeeperio-bot
71c78064fd chore(package): update ember-cli-jshint to version 1.0.4
https://greenkeeper.io/
2016-06-17 00:11:39 +01:00
greenkeeperio-bot
fcd2e22259 chore(package): update glob to version 7.0.4
https://greenkeeper.io/
2016-06-16 18:40:52 +01:00
greenkeeperio-bot
06fca08006 chore(package): update ember-suave to version 3.0.1
https://greenkeeper.io/
2016-06-16 17:05:11 +01:00
greenkeeperio-bot
8791385430 chore(package): update ember-cli-mocha to version 0.10.4
https://greenkeeper.io/
2016-06-15 21:28:33 +01:00
greenkeeperio-bot
d2f35ffb10 chore(package): update ember-data to version 2.6.1
https://greenkeeper.io/
2016-06-15 20:01:50 +01:00
Kevin Ansfield
2f7f7dd53b Version bump to 0.9.0-beta.2 2016-06-15 13:22:39 +01:00
greenkeeperio-bot
608e42b3e9 chore(package): update ember-power-select to version 0.10.11
https://greenkeeper.io/
2016-06-14 22:24:26 +01:00
greenkeeperio-bot
be0bd9e1b6 chore(package): update loader.js to version 4.0.9
https://greenkeeper.io/
2016-06-14 21:54:19 +01:00
greenkeeperio-bot
00becad6a9 chore(package): update ember-one-way-controls to version 0.8.3
https://greenkeeper.io/
2016-06-14 14:29:14 +01:00
Kevin Ansfield
ebb36a317e Merge pull request #25 from AileenCGN/scheduler-ui
Scheduler UI
2016-06-14 13:06:00 +01:00
Austin Burdine
8b07f934e3 internal-tags style followup
no issue
- improves internal-tags display on content page
- fix typo in settings/labs
2016-06-13 09:40:16 -06:00
Aileen Nowak
9a28e5d7d5 Scheduler UI
refs TryGhost/Ghost#6413 and TryGhost/Ghost#6870

needs TryGhost/Ghost#6861

- **Post Settings Menu (PSM)**:'Publish Date' input accepts a date from now, min. 2 minutes to allow scheduler processing on the server. Also, there will always be some delay between typing the date and clicking on the 'Schedule Post' button. If the user types a future date for an already published post, the date will be reseted and he sees the message, that the post needs to be unpublished first. Once, the date is accepted, the label will change to 'Scheduled Date'.

- adds a CP 'timeScheduled' to post model, which will return `true` if the publish time is currently in the future.

- **Changes to the button flow in editor**:
- if the the CP `timeScheduled` returns true, a different drop-down-menu will be shown: 'Schedule Post' replaces 'Publish Now' and 'Unschedule' replaces 'Unpublish'.

- Covering the _edge cases_, especially when a scheduled post is about to be published, while the user is in the editor.
	- First, a new CP `scheduleCountdown` will return the remaining time, when the estimated publish time is 15 minutes from now. A notification with this live-ticker is shown next to the save button. Once, we reach a 2 minutes limit, another CP `statusFreeze` will return true and causes the save button to only show `Unschedule` in a red state, until we reach the publish time
	- Once the publish time is reached, a CP `scheduledWillPublish` causes the buttons and the existing code to pretend we're already dealing with a publish post. At the moment, there's no way to make a background-fetch of the now serverside-scheduled post model from the server, so Ember doesn't know about the changed state at that time.
	- Changes in the editor, which are done during this 'status freeze'-process will be saved back correctly, once the user hits 'Update Post' after the buttons changed back. A click on 'Unpublish' will change the status back to a draft.
	- The user will get a regular 'toaster' notification that the post has been published.

- adds CP `isScheduled` for scheduled posts
- adds CP `offset` to component `gh-posts-list-item` and helper `gh-format-time-scheduled` to show schedule date in content overview.
- sets timeout in `gh-spin-button` to 10ms for `Ember.testing`
- changes error message in `gh-editor-base-controller` to be in one line, seperated with a `:`

TODOs:
- [x] new sort order for posts (1. scheduled, 2. draft, 3. published) (refs TryGhost/Ghost#6932)
- [ ] Move posts sorting from posts controller to model and refactor to use `Ember.comparable` mixin
- [x] Flows for draft -> scheduled -> published like described in TryGhost/Ghost#6870 incl. edge cases and button behaviour
- [x] Tests
- [x] new PSM behaviour for time/date in future
- [x] display publishedAt date with timezone offset on posts overview
2016-06-13 17:01:42 +02:00
Austin Burdine
5d008780fd internal tags feature
refs TryGhost/Ghost#6165
- change behavior to use 'visibility' property
- add tests
2016-06-13 08:21:41 -06:00
Hannah Wolfe
05243a2dbc Merge pull request #63 from kevinansfield/add-ghost-desktop-update-tests
Fix and add tests for Ghost Desktop manual update notification
2016-06-13 14:10:20 +01:00
Kevin Ansfield
b521e4dba4 Fix and add tests for Ghost Desktop manual update notification
closes #51
- move the check into the `afterModel` hook so that it's always performed on app load (previously it would only be displayed after going through the sign-in process)
- change the alert type to `warn` so that it matches our existing types (success, warn, error)
- don't rely on the `.htmlSafe()` prototype extension
- add basic tests for the upgrade alert display
2016-06-13 13:40:41 +01:00
Kevin Ansfield
39a09ca28a Fix auth header caching in ajax service
closes https://github.com/TryGhost/Ghost/issues/6884
- mark the `headers` method in the ajax service as "volatile" - it's dependent key was causing the auth headers to be cached on first use which would then cause 401 errors once the token had been refreshed externally

It would also be possible to add `session.authenticated.access_token` as a dependent key but the code-path and usage are minimal so I believe `.volatile()` is preferable as it means that it's not tied directly to the authorizer implementation.
2016-06-13 11:40:08 +01:00
Kevin Ansfield
e308256601 Merge pull request #61 from acburdine/jscs-update
Update grunt-jscs and ember-suave to 3.0.0
2016-06-13 08:49:11 +01:00
Kevin Ansfield
55eabdb350 Merge pull request #57 from AileenCGN/set-default-timezone-to-utc
Add UTC timezone as default in settings model
2016-06-13 08:44:17 +01:00
Austin Burdine
cf36851265 deps: grunt-jscs,ember-suave@3.0.0
replaces #41, #60
- update ember-suave and grunt-jscs to 3.0
- standardize Ember global de-structuring rules across app & tests
2016-06-11 13:39:31 -06:00
Aileen Nowak
6d22a6dcb6 Add UTC timezone as default in settings model
no issue

- Changes the default timezone from 'Europe/Dublin' to 'Etc/UTC' in setting model
- Updates acceptance test for settings general to expect more timezones in list and different default
- adds mirage fixtures values
2016-06-11 12:24:04 +02:00
greenkeeperio-bot
6d8501f507 chore(package): update ember-cli to version 2.6.1
https://greenkeeper.io/
2016-06-11 10:38:22 +01:00
greenkeeperio-bot
446d4bc4fe chore(package): update loader.js to version 4.0.8
https://greenkeeper.io/
2016-06-10 10:18:14 +01:00
greenkeeperio-bot
43aef761be chore(package): update ember-route-action-helper to version 0.3.2
https://greenkeeper.io/
2016-06-10 10:04:29 +01:00
Kevin Ansfield
dd6130e6d3 Merge pull request #56 from TryGhost/greenkeeper-ember-cli-2.6.0
Update ember-cli to version 2.6.0 🚀
2016-06-10 10:04:14 +01:00
greenkeeperio-bot
b2b5301b96 chore(package): update ember-cli to version 2.6.0
https://greenkeeper.io/
2016-06-10 09:41:13 +01:00
Hannah Wolfe
bba0918a2f Labs Subscribers option clearer & with docs link
no issue

- changes wording to not indicate that we already send emails
- adds link to documentation
2016-06-10 08:51:44 +01:00
Austin Burdine
089226330b Merge pull request #52 from kevinansfield/deps-ember
deps: ember@2.6.0
2016-06-09 10:39:05 -06:00
Kevin Ansfield
fda6a6939c Merge pull request #50 from TryGhost/greenkeeper-ember-data-2.6.0
Update ember-data to version 2.6.0 🚀
2016-06-09 17:12:28 +01:00
Kevin Ansfield
12cda07e94 deps: ember@2.6.0
no issue
- bugfix & cleanup release https://github.com/emberjs/ember.js/releases/tag/v2.6.0
- fix tests that were relying on not having the `rootURL` prefixed in `href`s
2016-06-09 16:58:09 +01:00
Austin Burdine
393925de68 Merge pull request #47 from kevinansfield/rename-tz-offset
Rename "offset" to "blogTimezone"
2016-06-09 09:35:49 -06:00
Felix Rieseberg
289742a7b5 Check for Ghost Desktop manual update
If the user is running a version of Ghost Desktop that requires a
manual update, we display a little warning message referring to a blog
post on dev.ghost.org.
2016-06-08 15:10:56 -07:00
greenkeeperio-bot
53ff416d37 chore(package): update ember-data to version 2.6.0
https://greenkeeper.io/
2016-06-08 22:23:54 +01:00
Austin Burdine
a0cd579067 add travis build status to readme 2016-06-08 14:35:38 -06:00
greenkeeperio-bot
59bb01bf8a chore(package): update ember-wormhole to version 0.4.0
https://greenkeeper.io/
2016-06-08 20:41:37 +01:00
Kevin Ansfield
7c2e923074 Rename "offset" to "blogTimezone"
refs https://github.com/TryGhost/Ghost/pull/6941#issuecomment-224553575
- `blogTimezone` and `timezone` better reflect their values (a string representing a timezone in the format `Europe/Dublin`) than `offset` which suggests a fixed value
2016-06-08 12:09:19 +01:00
Kevin Ansfield
0c79ff3365 deps: ember-ajax@2.4.1
no issue
- update ember-ajax
- update error handling to match recommended approach
- update error normalization for handling a returned array of strings
2016-06-06 11:54:15 +01:00
Kevin Ansfield
8d12b6bb91 Version bump to 0.9.0-beta1 2016-06-06 10:21:16 +01:00
greenkeeperio-bot
11aa59356a chore(package): update ember-one-way-controls to version 0.8.2
https://greenkeeper.io/
2016-06-04 13:57:12 +01:00
greenkeeperio-bot
580961f915 chore(package): update ember-one-way-controls to version 0.8.1
https://greenkeeper.io/
2016-06-04 10:05:55 +01:00
Kevin Ansfield
d53ef125e0 Update package.json details, rename module to ghost-admin
no issue
- updates `package.json` details to better reflect the separation from the `Ghost` package
- update ember config and all import statements to reflect the new `ghost-admin` module name in `package.json`
2016-06-03 16:12:54 +01:00
Aileen Nowak
24e71ffdaa Timezones: Always use the timezone of blog setting
closes TryGhost/Ghost#6406

follow-up PR of #2

- adds a `timeZone` Service to provide the offset (=timezone reg. moment-timezone) of the users blog settings
- `gh-datetime-input` will read the offset of the timezone now and adjust the `publishedAt` date with it. This is the date which will be shown in the PSM 'Publish Date' field. When the user writes a new date/time, the offset is considered and will be deducted again before saving it to the model. This way, we always work with a UTC publish date except for this input field.
- gets `availableTimezones` from `configuration/timezones` API endpoint
- adds a `moment-utc` transform on all date attr (`createdAt`, `updatedAt`, `publishedAt`, `unsubscribedAt` and `lastLogin`) to only work with UTC times on serverside
- when switching the timezone in the select box, the user will be shown the local time of the selected timezone
- `createdAt`-property in `gh-user-invited` returns now `moment(createdAt).fromNow()` as `createdAt` is a moment date already
- added clock service to show actual time ticking below select box
- default timezone is '(GMT) Greenwich Mean Time : Dublin, Edinburgh, London'
- if no timezone is saved in the settings yet, the default value will be used
- shows the local time in 'Publish Date'  in PSM by default, until user overwrites it
- adds dependency `moment-timezone 0.5.4` to `bower.json`

---------

**Tests:**

- sets except for clock service in test env
- adds fixtures to mirage
- adds `service.ajax` and `service:ghostPaths` to navigation-test.js
- adds unit test for `gh-format-timeago` helper
- updates acceptance test `general-setting`
- adds acceptance test for `editor`
- adds integration tests for `services/config` and `services/time-zone`

---------

**Todos:**

- [ ] Integration tests: ~~`services/config`~~, ~~`services/time-zone`~~, `components/gh-datetime-input`
- [x] Acceptance test: `editor`
- [ ] Unit tests: `utils/date-formatting`
- [ ] write issue for renaming date properties (e. g. `createdAt` to `createdAtUTC`) and translate those for server side with serializers
2016-06-03 16:23:39 +02:00
Kevin Ansfield
5e9cec8384 Minor version header fixes
refs #38
- use same version regex as `safeVersion` does on the server
- remove errant `console.log` from store service test
2016-06-03 14:47:47 +01:00
Kevin Ansfield
4cc4781b3e Add version header to API requests
no issue
- modifies the version info included in `env.APP.version` to only include the `major.minor` version numbers
- update base adapter to include `X-Ghost-Version` header
- update `ajax` service to include `X-Ghost-Version` header
2016-06-03 11:53:29 +01:00
Austin Burdine
a4d519d20c Merge pull request #33 from kevinansfield/bower-deps
Bower dependency updates
2016-06-02 21:34:56 -06:00
Kevin Ansfield
a2a041db2a Add Gruntfile.js, setup linting task and Travis build
refs #23
- add `grunt lint`
- add lint build to Travis matrix
2016-06-02 17:19:30 +01:00
greenkeeperio-bot
dd25a24c3a chore(package): update ember-wormhole to version 0.3.6
https://greenkeeper.io/
2016-06-02 16:36:38 +01:00
Kevin Ansfield
8c58424bfe deps: pretender@1.1.0 2016-06-01 12:26:56 +01:00
Kevin Ansfield
1fd0981f3b deps: moment@2.13.0 2016-06-01 12:21:57 +01:00
Kevin Ansfield
20989bcf57 deps: jquery-file-upload@9.12.3 2016-06-01 12:15:00 +01:00
Kevin Ansfield
e1d5dfa971 deps: google-caja@6005.0.0 2016-06-01 12:02:00 +01:00
Kevin Ansfield
c56f22122f deps: codemirror@5.15.2 2016-06-01 11:50:18 +01:00
greenkeeperio-bot
215fc70e86 chore(package): update ember-power-select to version 0.10.10
https://greenkeeper.io/
2016-05-31 15:28:59 +01:00
Hannah Wolfe
3e64cbe5f9 Merge pull request #27 from kevinansfield/improve-file-upload-tests
Improve uploader tests + test subscribers CSV import
2016-05-27 19:29:07 +01:00
Kevin Ansfield
66ed2a02df Improve uploader tests + test subscribers CSV import
no issue
- override `x-file-input` in `gh-file-input` to look for a custom property on the change event if we are in testing mode (this is necessary because Ember 2.5+ use native rather than jQuery events so `target.files` is readonly, see https://github.com/emberjs/ember.js/issues/13540)
- migrate unit tests for the uploader components to the integration tests
- add skipped acceptance tests for the subscribers CSV import now that it's possible to simulate file uploads
2016-05-27 13:34:31 +01:00
Kevin Ansfield
3e1087f80f Remove outline from search input
no issue
- remove the outline that is shown on the search input once the dropdown box has closed
- remove unused styles for the old selectize-based search input
2016-05-25 10:52:21 +01:00
greenkeeperio-bot
5c3ae0fec2 chore(package): update ember-power-select to version 0.10.9
https://greenkeeper.io/
2016-05-24 17:32:07 +01:00
greenkeeperio-bot
6c323c62c9 chore(package): update ember-cli-htmlbars-inline-precompile to version 0.3.2
https://greenkeeper.io/
2016-05-23 12:04:43 +01:00
Kevin Ansfield
f60d28470d Merge pull request #22 from TryGhost/greenkeeper-ember-cli-htmlbars-1.0.8
Update ember-cli-htmlbars to version 1.0.8 🚀
2016-05-23 12:04:29 +01:00
Kevin Ansfield
08fa7bd4a7 Rename PULL_REQUEST_TEMPLATE to PULL_REQUEST_TEMPLATE.md 2016-05-23 10:50:15 +01:00
Kevin Ansfield
97e16ed09f Create PULL_REQUEST_TEMPLATE 2016-05-23 10:49:08 +01:00
greenkeeperio-bot
1ee20be51e chore(package): update ember-cli-htmlbars to version 1.0.8
https://greenkeeper.io/
2016-05-22 23:18:02 +01:00
greenkeeperio-bot
b2277244d6 chore(package): update dependencies
https://greenkeeper.io/
2016-05-22 09:42:57 +01:00
greenkeeperio-bot
a921a14e2d chore(package): update ember-cli-jshint to version 1.0.3
https://greenkeeper.io/
2016-05-22 09:27:48 +01:00
greenkeeperio-bot
d47ef4393a chore(package): update loader.js to version 4.0.7
https://greenkeeper.io/
2016-05-21 02:31:44 +01:00
greenkeeperio-bot
f80404c495 chore(package): update ember-cli to version 2.5.1
https://greenkeeper.io/
2016-05-20 16:30:21 +01:00
greenkeeperio-bot
514008ad01 chore(package): update ember-cli-htmlbars to version 1.0.7
https://greenkeeper.io/
2016-05-20 06:11:11 +01:00
Kevin Ansfield
2e4655855e Add initial Travis config file
no issue
- basic testing of the admin client with both Chrome and Firefox
2016-05-19 13:33:14 +01:00
Kevin Ansfield
540b6a179d Match .gitignore and .editorconfig with Ghost repo
no issue
- as it's more likely that Ghost-Admin will be checked out separately it makes sense that it has its own `.gitignore` and `.editorconfig` that match the core repository
2016-05-19 11:39:15 +01:00
Kevin Ansfield
3ec0a0b248 Initial sub-project README.md
no issue
- point visitors to the core repo for instructions and bugs
2016-05-19 11:39:15 +01:00
Kevin Ansfield
131d08f1e6 Fix broken editor when content contains wrapped images
no issue
- don't assume that the upload element that is being replaced is top-level, target the element's parentNode rather than the overall fragment
2016-05-18 21:52:07 +01:00
Kevin Ansfield
92c5394449 Fix drag-n-drop files from Chrome's download bar
closes #6850
- HTML5 drag-n-drop has some weird inconsistencies around the `dragOver` event where it defaults the "drop" behaviour to nothing so you need to cancel the defaults and override
	- http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar
2016-05-18 09:53:10 +01:00
Kevin Ansfield
64a85ced32 Fix unwanted clearing of social inputs on blur with no edits
no issue
- updates the logic to expect `null` scratch values as the scratch values won't be set until the input value has changed
- adds tests for initial value display and regression tests for the cleared input bug
2016-05-17 19:14:14 +01:00
Aileen Nowak
01e52013e7 Fixes error in validation
closes #6826

- refactors the validation of facebook and twitter input field in `general.js` and `user.js` controller
	- Example validations for facebook:
		- `facebook.com/username` will be corrected to the full URL
		- `user` will show error `Your Page name is not a valid Facebook Page name' for `general.js` and `Your Username is not a valid Facebook Username` for `user.js` as the username in facebook has to be at least 5 characters long
		- `twitter.com/username` will be autocorrected to the valid facebook URL incl. the `username`
	- Example validations for twitter:
		- `twitter.com/user_` will be corrected to the full URL
                - `user:99` will show error `Your Username is not a valid Twitter Username`
                - `facebook.com/username` will be autocorrected to the valid twitter URL incl. the `username`
- updates both acceptance tests
- adds further validation for facebook pages in general settings and user. Submitting a url which incl. `/page/` or `/pages/` will now accept any username followed incl. further `/`.
- adds a custom transform `facebook-url-user` which will extract the username (if it's a facebook page, incl. `pages/`) to store only this in the backend
- uses the `twitter-url-user` transform now also for user
2016-05-17 17:44:23 +01:00
Kevin Ansfield
7fda1082f3 Merge pull request #6838 from acburdine/esa-1.1
deps: ember-simple-auth@1.1.0
2016-05-16 11:51:23 +02:00
Kevin Ansfield
df118c07e3 Merge pull request #6830 from acburdine/no-show-nav-menu
Don't show the nav menu when on a 404 route and not signed in
2016-05-16 11:01:44 +02:00
Austin Burdine
4856276a06 update document title on blog title change
no issue
- force document.title to recompute when the blog title is changed in settings/general
2016-05-15 18:41:28 -06:00
Austin Burdine
ced797de76 deps: ember-simple-auth@1.1.0 2016-05-15 16:45:16 -06:00
Austin Burdine
562c50d54e don't show the nav menu when on a 404 route and not signed in
no issue
- fixes problem when the nav menu would be shown on an error404 route when the user is not logged in
- adds failing test that passes with this change
2016-05-13 19:02:55 -06:00
Kevin Ansfield
b0cd10b845 Fix initial loading of a route with an invalid session
no issue
- if the session is "authenticated" but is invalid, the initial load of the app would fail. It could be replicated by:
	1. Authenticating in a running ghost instance
	2. Stopping ghost
	3. Deleting the database
	4. Re-starting ghost
	5. Closing the browser
	6. Re-opening the browser and visiting http://localhost:2368/ghost
- this fix stores the `transition` object for the duration of the initial load so that `sessionInvalidated` method can trigger actions before the transition has finished
2016-05-13 13:47:39 +02:00
Kevin Ansfield
11d2f620e1 Fix loss of private settings when saving in certain circumstances
no issue
- always ensure we load a full settings object so that we don't risk saving a partial settings object back to the server
- should fix the issues reported in Slack of disappearing private settings over time
2016-05-13 12:24:17 +02:00
Kevin Ansfield
410d03d66d Allow table content to be selectable
no issue
- overrides the global `user-select: none` style for `th` and `td` elements
2016-05-12 17:42:52 +02:00
Brian Tedder
c2cf17478a Remove select-all on click for PSM slug input
issue #6655
-remove selectOnClick from input
2016-05-11 19:59:54 -06:00
Hannah Wolfe
3e5832ee48 Merge pull request #6811 from kevinansfield/fix-new-subscriber-validation
Fix display of server-provided validation error when adding subscriber
2016-05-11 22:24:28 +02:00
Kevin Ansfield
8826f0e66a Fix display of server-provided validation error when adding subscriber
no issue
- make the check for "email" in the server provided error case-insensitive
2016-05-11 19:56:58 +02:00
Hannah Wolfe
5d3b32a926 Pre-populate setup values from config
no issue
- Check for title, user_name and user_email in the top level of config.
- If they exist, return them as part of the setup check, so that the setup screen can be prepopulated
2016-05-11 19:30:56 +02:00
John O'Nolan
7cd6c786f9 Merge pull request #6764 from TryGhost/subscribe
Subscribers
2016-05-11 13:53:53 +02:00
Hannah Wolfe
1c35fefbb9 Merge pull request #6703 from kevinansfield/6640-tests
Improve `gh-profile-image` tests for #6640
2016-05-11 13:00:19 +02:00
Kevin Ansfield
5b1178c7c5 Fix cmd-s shortcut not saving changes in text fields with focusout
closes #4556
- when <kbd>CMD-S</kbd> is used, if the focused element is an input, trigger it's `focusout` handler then schedule the save action to happen after any actions resulting from the trigger
2016-05-11 11:59:36 +02:00
kirrg001
ec0eeceff0 Subscribers: Move read CSV into separate utility
- split out read CSV function into utility and add tests
- update API response to follow JSONAPI more closely
- update the UI to match the new API response
2016-05-11 11:22:35 +02:00
Kevin Ansfield
755e048f98 Subscribers: Admin UI updates & fixes
Update for synchronous feature service

Add client-side handling of server-side errors when adding subscribers
- display server-provided error message when we get a server error
- fix the ajax util's `getRequestErrorMessage` method so that it works correctly with Ember's `InvalidError` object instead of the previous request object that it was receiving (*TODO:* this really needs looking at properly so we aren't losing details and Ember Data can do it's stuff)

Styling updates
- proper icon for ascending/descending
- change hover colour to green for "Import CSV" button

Delete subscriber button with confirm modal
- display delete button when hovering over a subscriber row (WARN: really ugly button, styles definitely want looking at)
- show confirm modal when clicking the delete button
- delete subscriber, remove from table, and update total on confirm
2016-05-11 11:22:35 +02:00
Hannah Wolfe
2313dab449 Subscribers: router & form helpers
Form:
- add confirm, location & referrer hidden fields
- add script to populate location & referrer
- add helper for creating the email field
- pass through input class and placeholder for email from top level form helper
- rename subscribe_form template & helper as it sounds more natural
- handle success and error cases differently
- improve error message display
- ensure useful data is passed back so that we can show nice messages
- check for honeypot value being filled out
- refactor error handler to set an error and always still render
2016-05-11 10:28:11 +02:00
Kevin Ansfield
83c9270682 Subscribers: Admin User Interface v1
Initial Subscribers screen
- set up mocked api endpoints
- basic subscribers screen with data loading, infinite scroll

"Add Subscriber" screen
- uses modal to display a new subscriber form
- validates subscriber e-mail address
- moves pagination from route into controller to use filtered/sorted CPs on top of a live-query so that new subscribers are added to the list and the total can be properly managed

TODO:
- there is currently a pretty serious performance issue where the whole table is re-rendered when the live-query is updated. `ember-light-table` doesn't allow for live-binding and has no options to easily manipulate it's rows using an external interface - it's possible to move the page loading into the component so we only render new rows but that leaves it difficult to react to new subscribers being added through the UI. I believe the number of components used within the table is also adding to the performance problems.
  - most likely solution is to drop `ember-light-table` in favour of rendering the table directly - glimmer should do a good job of fast updates even though the underlying array will be completely swapped out

"Import subscribers" screen
- uses modal to display an import subscribers CSV file upload form
- displays upload progress
- displays import stats and reloads subscribers table once import has completed
- adds `gh-file-uploader` component (NB. pared down copy of `gh-image-uploader`, ripe for some refactoring)
- fixes subscribers acceptance test failing because fixtures did not have the labs flag enabled

Unfortunately this doesn't have 100% test coverage as we're limited in how we can simulate file uploads 😞

Fix performance issues with subscribers table
- moves the table definition from the component up to the controller
- switches back to manually manipulating table rows instead of using a live-query

This is a quick-fix in that it allows us to continue using the `ember-light-table` component but it does mean that we lose some flexibility that the live-query gave us. For now it's not much of an issue and it allows us to defer deeper performance/flexibility work until we have a concrete need and requirements.

Hook up Export CSV button
- use a hidden iFrame to trigger the browser to hit the CSV export endpoint and download the file

Re-order subscribers table by clicking column headers
- displays currently sorted column and sort direction
- clicking a column header re-fetches the data from the server with the appropriate query params

Fix scroll triggers for infinite pagination + icon change
- adds a debounce as well as the throttle so that we always get a final scroll trigger once scrolling has stopped
- changes the subscribers icon from the temporary team icon to the mail icon
2016-05-11 10:28:11 +02:00
Kevin Ansfield
b505ec18f4 deps: ember-light-table@0.1.9 2016-05-11 10:28:10 +02:00
Kevin Ansfield
e8c337f3f6 Improve gh-profile-image tests for #6640
refs #6640
- add `NotFoundError` to ajax service and test against that when catching errors in `gh-profile-image`
- don't use `passthrough` in Mirage for gravatar requests to avoid network calls during testing
- add additional tests for `gh-profile-image` and put the debounced gravatar test back in place
2016-05-09 22:14:12 +02:00
David Balderston
d8ede94ac6 Fix Transparent Background in Gravatar Showing Background Image
Closes #5882

* If a gravatar image is available, remove the default image behind it
* If gravatar image is not available, keep or replace the default image
2016-05-09 22:09:27 +02:00
Aileen Nowak
c8d0e25923 Structured Data 3.0
closes #6534
- new input fields in general settings incl. validation
- facebook and twitter as new models in settings.js
- adds values for facebook and twitter to default-settings.js
- adds blog helpers for facebook and twittter
- rather than saving the whole URL, the Twitter username incl. '@' will be extracted from URL and saved in the settings. The User will still input the full URL. After saving the blog setting, the stored Twitter username will be parsed again as the full URL and available in the input field. A custom transform is used for this.
- adding meta fields to be rendered in {{ghost_head}}:
	- '<meta property="article:publisher" content="https://www.facebook.com/page" />' and
	- '<meta name="twitter:site" content="@user"/>'
- adds facebook and twitter to unit test for structured data
- adds unit test for general settings
- adds acceptance test for new input fields in general settings
- adds a custom transform for twitter model to save only the username to the server
- adds unit test for transform
2016-05-08 17:43:59 +02:00
Hannah Wolfe
183e53371f Merge pull request #6788 from kevinansfield/synchronous-labs-flags
Synchronous feature service
2016-05-08 13:59:31 +02:00
Hannah Wolfe
cf99964750 Merge pull request #6802 from kevinansfield/editor-img-perf-makes-me-sad
Fix editor image perf and upload bug
2016-05-08 13:58:54 +02:00
Kevin Ansfield
02b57750cf Fix editor image perf and upload bug
no issue
- ~10x speedup in processing time taken on each keypress when there are many images/image upload components in the editor
  - edit DOM in memory before changing it in the page to avoid double-render
  - keep upload components around and re-assign them on re-render, adding or removing an image will still re-generate everything
- adds a throttle to the preview rendering so that renders don't get queued up
- fixes occasional bug where uploading an image didn't update the markdown correctly due to a timing issue
2016-05-08 12:55:56 +02:00
Aileen Nowak
753f307382 Slack integration
closes #6584
- Frontend Changes:
	- adds 'Apps' to Navigation Menu
	- adds 'Slack' as nested page to Apps
	- adds `apps.css`
	- adds `slack-integration` model and uses `slack-settings` custom transform to parse JSON file
	- adds validation for `slack` model
	- adds fixtures and `slack/test` API endpoint to Mirage
	- adds acceptance tests for `apps-test` and `slack-test`
	- adds unit tests for `slack-settings` and `slack-integration`
- Backend Changes:
	- adds API endpoint `slack/test` to send Test Notification
	- adds default-values for slack model
	- sends payload to slack:
		- text: the url of the blogpost / test message
		- icon_url: url to ghost logo
		- username: Ghost
	- adds `slack/index.js` to send webhook to slack if
		- a new post is published (if slack webhook url is saved in settings)
		- user clicks on 'Send Test Notification' in UI
	- adds `slack.init()` to `server.index.js` to add event listener
	- adds unit test for `slack/index`
2016-05-08 12:49:15 +02:00
Kevin Ansfield
2da6673197 Synchronous feature service
supersedes #6773
- update `feature` service and `gh-feature-flag` component to work synchronously rather than async
- use the application route's `afterModel` hook so that settings are loaded before first load
- override `session` service's `authenticate` method to load the settings after successful authentication before any other routes are processed
2016-05-07 15:00:06 +02:00
Kevin Ansfield
e32106505a deps: ember-simple-auth@1.1.0-beta.5
no issue
- fixes last remaining 1.1.0 issue, will quite likely be last beta before final release
2016-05-05 12:55:42 +02:00
Austin Burdine
5cc75b1c6c remove unused feature controller 2016-04-28 12:22:54 -05:00
Austin Burdine
ab945b0827 convert more action calls to the ember-invoke-action syntax 2016-04-28 10:34:36 -05:00
Austin Burdine
7332186309 deps: ember-simple-auth@1.1.0-beta.4
- remove related deprecation line in deprecation-workflow.js
2016-04-28 08:34:26 -05:00
Kevin Ansfield
85afbaf38c Merge pull request #6767 from acburdine/ember-2.5.1
deps: ember@2.5.1
2016-04-28 14:18:29 +01:00
Austin Burdine
0017a5ace9 deps: ember@2.5.1
- removes Ember.merge deprecation
2016-04-28 07:15:15 -05:00
Kevin Ansfield
98f92c1444 Don't add trailing slash to end of url with parameters
no issue
- updates the `TrailingHistory` locationType so that trailing slashes aren't added to the end of URLs with parameters but instead matches how the server-side redirects to trailing-slash URLs
- before: `/subscribers?order=created_at/`
- after: `/subscribers/?order=created_at`
2016-04-28 12:42:03 +01:00
Kevin Ansfield
50d1737a25 Merge pull request #6748 from acburdine/closure-actions-readability
Use ember-invoke-action for closure action handling
2016-04-28 10:12:24 +01:00
Austin Burdine
6e29b546f7 deps: ember-invoke-action@1.3.0
no issue
- replace instances of `this.get('action')()` with ember-invoke-action syntax
2016-04-26 16:32:17 -05:00
Kevin Ansfield
0e2f4ea33e Use a custom transform to simplify navigation settings
no issue
- moves the `NavItem` object from the navigation controller to an explicit `NavigationItem` model file
- adds a custom transform `navigation-settings` that transforms the navigation settings JSON string to/from an array of `NavigationItem` objects
- simplifies the `settings/navigation` controller as it no longer has to export it's own internal model and handle serialization and deserialization

This pattern should also help simplify the apps/slack integration code if implemented there.
2016-04-26 12:32:29 +01:00
Kevin Ansfield
983c708ece Don't share errors and hasValidated references between validator instances
no issue
- ensure that each validator instance gets it's own `errors` and `hasValidated` objects
- updates some uses of `ValidationEngine` that were relying on side-effects of the unintended reference sharing
- fixes issue with add subscriber modal displaying an error state after opening if it previously had errors when closing
2016-04-25 10:56:11 +01:00
Austin Burdine
4a5c7d953e lock jquery-deparam version 2016-04-20 06:18:47 -05:00
Austin Burdine
692d3afc39 deps: password-generator@2.0.2 2016-04-20 06:17:44 -05:00
Austin Burdine
2cbe3546be allow ember to specify jQuery version
- fix slight acceptance test bug
2016-04-19 14:08:36 -05:00
Austin Burdine
eb2e369326 replace gh-selectize with power-select in gh-search-input
refs #6458
2016-04-19 10:55:10 -05:00
Austin Burdine
4b7c00d19e deps: ember-power-select@0.9.2 2016-04-19 10:25:58 -05:00
Austin Burdine
eae02d410a Merge pull request #6735 from kevinansfield/improve-pagination-mixin
Improve `PaginationRoute` mixin
2016-04-19 10:20:08 -05:00
Kevin Ansfield
5f7bd12eec Improve PaginationRoute mixin
no issue
- returns the promise/result from `loadNextPage` so that it's return value can be utilised in closure actions
- sets the `isLoading` property in `loadFirstPage` to match `loadNextPage` behaviour
- reset the `isLoading` property even if the request fails
- adds a `didReceivePaginationMeta` hook so that consumers of the mixin can use the metadata values without having to rely on observers
  - eg. pulling the `total` into a separate property that can be manipulated when items are added/removed but still reset to the sever's total value the next time a page is loaded
- renames the `pagination-route` mixin to simply `pagination` as it's not tied to routes and works equally well in other objects that need to paginate an API resource
2016-04-19 10:53:45 +01:00
Kevin Ansfield
cc04ad2a58 deps: ember-one-way-controls@0.6.2
no issue
- https://github.com/DockYard/ember-one-way-controls/compare/v0.5.4...v0.6.2
- bugfixes
- dynamic attribute binding (attributes no longer need to be explicitly defined in the components in order to be recognised)
- adds `one-way-radio` component
2016-04-19 10:22:29 +01:00
Austin Burdine
cce23ca6e9 deps: ember-cli@2.5.0 2016-04-17 20:05:42 -05:00
Austin Burdine
c118a7d71b deps: ember-data@2.5.2 2016-04-15 00:32:57 -05:00
Austin Burdine
e07a3f4145 deps: ember@2.5.0 2016-04-15 00:24:57 -05:00
Hannah Wolfe
159d729855 Merge pull request #6714 from kevinansfield/allow-mocked-endpoints-in-dev
Enable ability to mock endpoints in development mode
2016-04-14 19:12:43 +01:00
Hannah Wolfe
a2a825bfe9 Merge pull request #6651 from kevinansfield/uploader-js-must-die
Replace jQuery-based uploader.js with ember components
2016-04-14 16:57:57 +01:00
Kevin Ansfield
2e66f53a4b Enable ability to mock endpoints in development mode
no issue
- moves existing mirage config into the `testConfig()` function to retain full mocks during testing
- configure mirage to passthrough all requests when in development mode
2016-04-14 15:26:39 +01:00
Kevin Ansfield
490f2bae16 Fix redirect to posts list when saving a new post as an author
no issue
- replace deprecated `normalizeHash` with `normalize` in post serializer
- ensure we check for both `post` and `posts` properties as it will vary depending on the expected response type
2016-04-13 12:28:11 -05:00
Austin Burdine
0f39b4c53c fix leave editor modal
no issue
- following up from 6680, fixes a missing set of parentheses
2016-04-12 14:04:59 -05:00
Jeff Jewiss
600276bd56 Saves post title on focus blur if status is draft
Closes #6656
- adds an action to update the title
- checks if the post title has changed and is a draft and sends a silent + background save action
- includes the action on the focus-out event on the post title
2016-04-10 21:47:28 -04:00
Austin Burdine
89a86249f5 Merge pull request #6694 from jaswilli/bind
Remove Function.bind polyfill
2016-04-10 00:53:19 -05:00
Jason Williams
63ba8a1031 Remove Function.bind polyfill
- Not used anymore, and phantomjs 2 has a native .bind
2016-04-09 13:06:54 -05:00
Kevin Ansfield
0c136a5a23 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
Hannah Wolfe
d542ae86df Merge pull request #6690 from kevinansfield/ember-suave-2-0
deps: ember-suave@2.0.1
2016-04-08 23:05:51 +01:00
Kevin Ansfield
ea612d7293 deps: ember-suave@2.0.1
no issue
- https://github.com/DockYard/ember-suave/releases/tag/v2.0.0
- fix linting errors arising from new rules
2016-04-08 16:27:24 +01:00
Kevin Ansfield
7d558f4596 deps: pretender@1.0.0
no issue
- https://github.com/pretenderjs/pretender/blob/master/CHANGELOG.md#10
- https://github.com/pretenderjs/pretender/compare/0.10.1...1.0.0
2016-04-08 15:54:23 +01:00
Kevin Ansfield
832bf0007b deps: moment@2.12.0
no issue
- https://github.com/moment/moment/blob/develop/CHANGELOG.md#2103-see-full-changelog
2016-04-08 15:51:55 +01:00
Kevin Ansfield
e7c7696872 deps: Faker@3.1.0
no issue
- https://github.com/Marak/faker.js/compare/v3.0.1...v3.1.0
2016-04-08 15:36:37 +01:00
Kevin Ansfield
7747ce988e deps: remove unused es5-shim bower dependency 2016-04-08 15:34:21 +01:00
Kevin Ansfield
c896c73fe2 deps: codemirror@5.13.2
no issue
- https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md#520-2015-04-20
2016-04-08 15:30:50 +01:00
Kevin Ansfield
e62612832c deps: blueimp-md5@2.3.0
no issue
- https://github.com/blueimp/JavaScript-MD5/compare/1.1.0...v2.3.0
2016-04-08 15:28:30 +01:00
Kevin Ansfield
64f83ed18c deps: ember-cli-pretender@0.6.0
no issue
- updates `pretender` dependency
- https://github.com/rwjblue/ember-cli-pretender/compare/v0.5.0...v0.6.0
2016-04-08 15:18:39 +01:00
Kevin Ansfield
4243838b94 deps: ember-cli-mocha@0.10.1
no issue
- https://github.com/switchfly/ember-cli-mocha/compare/v0.10.0...v0.10.1
2016-04-08 15:16:14 +01:00
Kevin Ansfield
b37fb487b1 deps: ember-cli-mirage@0.1.13
no issue
- https://github.com/samselikoff/ember-cli-mirage/releases/tag/v0.1.12
- https://github.com/samselikoff/ember-cli-mirage/compare/v0.1.11...v0.1.13
2016-04-08 15:15:28 +01:00
Kevin Ansfield
271bd7b31b deps: ember-cli-deprecation-workflow@0.2.0
no issue
- https://github.com/mixonic/ember-cli-deprecation-workflow/compare/v0.1.6...v0.2.0
2016-04-08 15:15:22 +01:00
Kevin Ansfield
62c5b97c99 Merge pull request #6564 from szelpe/publishedDate
Fixed bugs regarding the published date input field validation.
2016-04-06 11:58:00 +01:00
Kevin Ansfield
bb484bc7a4 Merge pull request #6668 from acburdine/app-logo-fix
Replace hardcoded AWS image url with static image url
2016-04-06 11:26:03 +01:00
Kevin Ansfield
62553cdf92 Replace jQuery-based uploader.js with ember components
no issue
- adds `gh-image-uploader` that handles image uploads in a fully ember fashion and with no dependency on `uploader.js`
- adds `gh-image-uploader-with-preview` that can fully replace the old `gh-uploader`
- replace uses of `gh-uploader` in PSM & TSM with `gh-image-uploader-with-preview`
- updates the editor preview image handling to use the new `gh-image-uploader-with-preview` component
- updates the image upload modal to use `gh-image-uploader` (utilises the `saveButton=false` flag which means the preview has to be handled externally to avoid auto-replacement when typing a URL)
- removes all old `uploader.js` related code
- adds custom `RequestEntityTooLargeError` and `UnsupportedMediaTypeError` errors to our `ajax` service
2016-04-05 12:03:20 +01:00
Kevin Ansfield
d5af410291 deps: ember-wormhole@0.3.5
no issue
- we already have similar behaviour in the `liquid-wormhole` (a dependency of `liquid-tether) but this is useful as a distinction for non-animated elements. It's also a dependency of the ember mobiledoc editor (used to render component-cards inline much the same way as this is used to render image upload components inline) and so we wouldn't really gain anything in filesize by forcing the use of `liquid-wormhole` instead
2016-04-04 15:57:59 +01:00
Kevin Ansfield
f2b27fbf86 deps: ember-one-way-controls@0.5.3 2016-04-04 15:57:59 +01:00
Kevin Ansfield
cec81dfa72 deps: emberx-file-input@1.0.0 2016-04-04 15:57:59 +01:00
Kevin Ansfield
0e603eb3d3 Don't swallow error details in ajax service
no issue
- keep the original `ember-ajax` behaviour rather than returning `false` when we hit an ajax error - we should only be using `normalizeErrorResponse` to normalize our error responses 😉
- ensures our application code has access to the returned status code for ajax errors
2016-04-04 14:19:05 +01:00
Austin Burdine
65d7257ea5 deps: ember-data@2.4.3 2016-04-03 19:03:55 -05:00
Austin Burdine
99e8869105 deps: ember@2.4.4 2016-04-03 19:01:36 -05:00
Austin Burdine
8280a6af99 replace hardcoded AWS image url with static image url 2016-03-31 12:09:54 -05:00
Jason Williams
23d630bdc7 Merge pull request #6663 from kevinansfield/fix-xregexp-issues
Drop XRegExp dependency
2016-03-31 10:06:47 -05:00
Kevin Ansfield
adaf15d830 deps: ember-cli@2.4.3
no issue
- https://github.com/ember-cli/ember-cli/releases/tag/v2.4.3
2016-03-31 10:13:15 +01:00
Kevin Ansfield
ed1d6c98b3 Drop XRegExp dependency
closes #6102
- removes the `xregexp` dependency
- pulls in the non-alphnumeric unicode list directly from the XRegExp library to ensure the word count helper still takes into account unicode strings

The XRegExp dependency was breaking as new browsers add more es6 support as evidenced in #6102. Upgrading to version 3.1.0 fixed the Chrome "experimental JS" issue but was still broken in Safari Technology Preview.

We only use one feature of `XRegExp` in a single place for a relatively non-critical feature: calculating the word count. As such I figured it may be better to drop the 63KB minified dependency and simply copy the result of the compiled regex directly until such time as XRegExp has native support in our supported browsers.
2016-03-30 19:45:20 +01:00
Kevin Ansfield
0ca160bfde deps: ember-sinon@0.5.0
no issue
- pulls sinon.js from NPM instead of bower - https://github.com/csantero/ember-sinon/releases/tag/v0.5.0
- only dependency updates and ember-cli changes - https://github.com/csantero/ember-sinon/compare/v0.3.0...v0.5.0
2016-03-29 13:03:59 +01:00
Kevin Ansfield
4d54778405 deps: liquid-tether@1.0.0
no issue
- contains cleanup and test fixes - https://github.com/pzuraq/liquid-tether/compare/v0.1.11...v1.0.0
2016-03-25 09:00:38 +00:00
Kevin Ansfield
c7ea692393 Remove jquery-hammerjs bower dependency
no issue
- removes `jquery-hammerjs` as it doesn't appear to be used anywhere and isn't included in the build by ember-cli
2016-03-24 10:04:52 +00:00
Jason Williams
cf349b3be9 Return http status 204 on deletes
Closes #2871
- Refactor api http handlers.
- Update tests.
- Remove special handling of responses in ember adapter.
2016-03-22 11:42:48 -05:00
Kevin Ansfield
aa4c72901c Merge pull request #6611 from dbalders/ember-navitems
Remove Nav Item Placeholder and Set as Base Url Value
2016-03-22 16:18:28 +01:00
David Balderston
f208892d87 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
king6cong
4296110cde fix invalid preview url 2016-03-22 20:42:46 +08:00
Jason Williams
8848eae531 Merge pull request #6619 from kevinansfield/ember-data-2-4-2
deps: ember-data@2.4.2
2016-03-21 13:31:03 -05:00
Kevin Ansfield
9755c87048 deps: ember-data@2.4.2
no issue
- https://github.com/emberjs/data/releases/tag/v2.4.1
- https://github.com/emberjs/data/releases/tag/v2.4.2
- uses the new public import path for `EmbeddedRecordsMixin` (http://emberjs.com/blog/2016/03/13/ember-data-2-4-released.html#toc_importing-modules - note that the module naming there isn't quite right)
2016-03-21 16:37:42 +00:00
Kevin Ansfield
fb4900086c deps: ember@2.4.3
no issue
- https://github.com/emberjs/ember.js/releases/tag/v2.4.2
- https://github.com/emberjs/ember.js/releases/tag/v2.4.3
2016-03-21 14:10:18 +00:00
Kevin Ansfield
89d5d7c83a deps: ember-cli@2.4.2
no issue
- bugfix release: https://github.com/ember-cli/ember-cli/releases/tag/v2.4.2
2016-03-07 09:17:51 +00:00
Kevin Ansfield
d73847b9f9 deps: ember-cli@2.4.1
no issue
- bugfix release - https://github.com/ember-cli/ember-cli/releases/tag/v2.4.1
2016-03-03 09:17:37 +00:00
Kevin Ansfield
92e71f3555 deps: ember-data@2.4.0 2016-03-01 12:49:43 +00:00
Kevin Ansfield
a8c9bff9d0 deps: ember@2.4.1 2016-03-01 12:49:43 +00:00
Kevin Ansfield
4555ac7c00 deps: ember-cli@2.4.0 2016-03-01 12:49:28 +00:00
Peter Szel
af43bb9267 Fixed bugs regarding the published date input field validation.
refs #5777

- removing error message from the previous validation
- only checking if date is in the past if the input date is valid to begin with
- always updating the view, even if the date hasn't changed to make sure the date format stays consistent
2016-02-28 01:33:24 +00:00
Peter Szel
22e0451af8 Fixed skiplink positioning
refs #5986

- removed static position of the skiplink to prevent pushing the page content down
- only applying :focus CSS selector to focusable sr-only content
2016-02-27 15:37:15 +00:00
Kevin Ansfield
c82df0c881 Merge pull request #6561 from acburdine/test-fixes
Ember client test fixes
2016-02-24 09:36:24 +00:00
Kevin Ansfield
ea3bed5911 Merge pull request #6548 from ErisDS/config-api
Restructure Configuration API endpoint
2016-02-24 09:34:51 +00:00
Austin Burdine
15c8c7af9f various test 🐛 fixes
refs #6550
- cleanup deprecation messages
- fix get `undefined` error in tests
2016-02-23 23:27:57 -06:00
Kevin Ansfield
8813f0dac4 Refactor the feature service
no issue
- removes the unneeded manual caching of the settings object
- fixes multiple API requests to fetch settings when using the feature service
2016-02-23 15:22:32 +00:00
Hannah Wolfe
c331e06975 Restructure Configuration API endpoint
refs #6421, #6525

- The configuration API endpoint was a bit of an animal:
   - It's used currently in two ways, once for general config, another for the about page.
   - These two things are different, and would require different permissions in future.
   - There was also both a browse and a read version, even though only browse was used.
   - The response from the browse was being artificially turned into many objects, when its really just one with multiple keys
- The new version treats each type of config as a different single object with several keys
- The new version therefore only has a 'read' request
- A basic read request with no key will return basic config that any client would need
- A read request with the about key returns the about config
- A read request with a different key could therefore return some other config
2016-02-19 18:49:23 +00:00
Austin Burdine
c2ca564f46 Merge pull request #6546 from quangtt/preview-icon
Fix preview icon position in editor
2016-02-19 11:35:05 -06:00
Austin Burdine
cfdf3dd590 deps: ember-cli-deprecation-workflow@0.1.6
- fixes deprecation error on build
2016-02-19 09:20:17 -06:00
quangtt
1ef8ce9225 Fix preview icon position in editor (updated) 2016-02-19 21:55:04 +07:00