diff --git a/core/client/app/adapters/base.js b/core/client/app/adapters/base.js index 88066723a9..565a0cd695 100644 --- a/core/client/app/adapters/base.js +++ b/core/client/app/adapters/base.js @@ -55,6 +55,7 @@ export default RESTAdapter.extend({ if (status === 401) { if (this.get('session.isAuthenticated')) { this.get('session').invalidate(); + return; // prevent error from bubbling because invalidate is async } } diff --git a/core/client/app/app.js b/core/client/app/app.js index 6c692bf351..e43a7abdc5 100755 --- a/core/client/app/app.js +++ b/core/client/app/app.js @@ -1,5 +1,5 @@ import Ember from 'ember'; -import Resolver from 'ember/resolver'; +import Resolver from 'ember-resolver'; import loadInitializers from 'ember/load-initializers'; import 'ghost/utils/link-component'; import 'ghost/utils/text-field'; diff --git a/core/client/app/helpers/read-path.js b/core/client/app/helpers/read-path.js deleted file mode 100644 index e37e67b304..0000000000 --- a/core/client/app/helpers/read-path.js +++ /dev/null @@ -1,13 +0,0 @@ -import Ember from 'ember'; - -const {Helper, get} = Ember; - -export function readPath(params) { - let [obj, path] = params; - - return get(obj, path); -} - -export default Helper.helper(function (params) { - return readPath(params); -}); diff --git a/core/client/app/initializers/trailing-history.js b/core/client/app/initializers/trailing-history.js index 9a9b13ad7e..e20bdf8bb1 100644 --- a/core/client/app/initializers/trailing-history.js +++ b/core/client/app/initializers/trailing-history.js @@ -11,7 +11,7 @@ let trailingHistory = HistoryLocation.extend({ export default { name: 'registerTrailingLocationHistory', - initialize(registry, application) { + initialize(application) { application.register('location:trailing-history', trailingHistory); } }; diff --git a/core/client/app/instance-initializers/oauth-prefilter.js b/core/client/app/instance-initializers/oauth-prefilter.js index b42d0b0bb5..686ede4e61 100644 --- a/core/client/app/instance-initializers/oauth-prefilter.js +++ b/core/client/app/instance-initializers/oauth-prefilter.js @@ -7,7 +7,7 @@ export default { after: 'ember-simple-auth', initialize(application) { - let session = application.container.lookup('service:session'); + let session = application.lookup('service:session'); Ember.$.ajaxPrefilter(function (options) { session.authorize('authorizer:oauth2', function (headerName, headerValue) { diff --git a/core/client/app/mixins/validation-engine.js b/core/client/app/mixins/validation-engine.js index 09244b11cb..a72a57d994 100644 --- a/core/client/app/mixins/validation-engine.js +++ b/core/client/app/mixins/validation-engine.js @@ -113,9 +113,7 @@ export default Mixin.create({ * You can supply options to be passed into the `validate` method, since the ED `save` method takes no options. */ save(options) { - // this is a hack, but needed for async _super calls. - // ref: https://github.com/emberjs/ember.js/pull/4301 - let _super = this.__nextSuper; + let {_super} = this; options = options || {}; options.wasSave = true; diff --git a/core/client/app/serializers/application.js b/core/client/app/serializers/application.js index 4367d8d150..a48d247b40 100644 --- a/core/client/app/serializers/application.js +++ b/core/client/app/serializers/application.js @@ -4,9 +4,6 @@ import DS from 'ember-data'; const {RESTSerializer} = DS; export default RESTSerializer.extend({ - - isNewSerializerAPI: true, - serializeIntoHash(hash, type, record, options) { // Our API expects an id on the posted object options = options || {}; diff --git a/core/client/app/templates/components/gh-select-native.hbs b/core/client/app/templates/components/gh-select-native.hbs index be2a8cf43e..153a4012f6 100644 --- a/core/client/app/templates/components/gh-select-native.hbs +++ b/core/client/app/templates/components/gh-select-native.hbs @@ -6,9 +6,9 @@ {{/if}} {{#each content as |item|}} - {{/each}} diff --git a/core/client/app/utils/document-title.js b/core/client/app/utils/document-title.js index d9ed8964a0..bd9c9b975c 100644 --- a/core/client/app/utils/document-title.js +++ b/core/client/app/utils/document-title.js @@ -16,7 +16,7 @@ export default function () { // defined. title: null, - _actions: { + actions: { collectTitleTokens(tokens) { let {titleToken} = this; let finalTitle; diff --git a/core/client/bower.json b/core/client/bower.json index abcc56e223..a95e192814 100644 --- a/core/client/bower.json +++ b/core/client/bower.json @@ -4,13 +4,12 @@ "blueimp-md5": "1.1.0", "codemirror": "5.2.0", "devicejs": "0.2.7", - "ember": "1.13.10", - "ember-cli-shims": "0.0.6", + "ember": "2.2.0", + "ember-cli-shims": "ember-cli/ember-cli-shims#0.0.6", "ember-cli-test-loader": "0.2.1", - "ember-data": "1.13.13", + "ember-data": "2.2.1", "ember-mocha": "0.8.6", - "ember-load-initializers": "0.1.7", - "ember-resolver": "0.1.20", + "ember-load-initializers": "ember-cli/ember-load-initializers#0.1.7", "es5-shim": "4.2.0", "Faker": "3.0.1", "fastclick": "1.0.6", @@ -23,8 +22,8 @@ "jqueryui-touch-punch": "furf/jquery-ui-touch-punch#4bc009145202d9c7483ba85f3a236a8f3470354d", "jquery.simulate.drag-sortable": "0.1.0", "keymaster": "1.6.3", - "loader.js": "ember-cli/loader.js#3.4.0", - "lodash": "~3.7.0", + "loader.js": "3.4.0", + "lodash": "3.7.0", "moment": "2.10.3", "normalize.css": "3.0.3", "password-generator": "git://github.com/bermi/password-generator#49accd739f60dfd0770d4af231f38311f482e308", diff --git a/core/client/package.json b/core/client/package.json index 83520fb417..bea8879a02 100644 --- a/core/client/package.json +++ b/core/client/package.json @@ -30,21 +30,22 @@ "ember-cli-htmlbars": "1.0.1", "ember-cli-htmlbars-inline-precompile": "0.3.1", "ember-cli-ic-ajax": "0.2.4", - "ember-cli-inject-live-reload": "^1.3.1", "ember-cli-mirage": "0.1.9", "ember-cli-mocha": "0.9.3", "ember-cli-pretender": "0.5.0", "ember-cli-release": "0.2.8", - "ember-cli-selectize": "0.4.0", + "ember-cli-selectize": "0.4.3", "ember-cli-sri": "1.2.0", - "ember-cli-uglify": "^1.2.0", - "ember-data": "1.13.13", + "ember-cli-uglify": "1.2.0", + "ember-data": "2.2.1", "ember-data-filter": "1.13.0", "ember-disable-proxy-controllers": "1.0.1", - "ember-export-application-global": "1.0.4", + "ember-export-application-global": "1.0.5", "ember-myth": "0.1.1", + "ember-resize": "0.0.10", + "ember-resolver": "2.0.3", "ember-simple-auth": "1.0.0", - "ember-sinon": "0.2.1", + "ember-sinon": "0.3.0", "ember-suave": "1.2.2", "ember-watson": "0.7.0", "fs-extra": "0.16.3", diff --git a/core/client/tests/helpers/resolver.js b/core/client/tests/helpers/resolver.js index 9bf35a8fb4..ffdeccd21e 100644 --- a/core/client/tests/helpers/resolver.js +++ b/core/client/tests/helpers/resolver.js @@ -1,4 +1,4 @@ -import Resolver from 'ember/resolver'; +import Resolver from 'ember-resolver'; import config from '../../config/environment'; let resolver = Resolver.create(); diff --git a/core/client/tests/unit/controllers/settings/navigation-test.js b/core/client/tests/unit/controllers/settings/navigation-test.js index cd82e47b11..49e91515b7 100644 --- a/core/client/tests/unit/controllers/settings/navigation-test.js +++ b/core/client/tests/unit/controllers/settings/navigation-test.js @@ -100,7 +100,7 @@ describeModule( done(); }).catch(function failedValidation() { let navItems = ctrl.get('navigationItems'); - expect(navItems[0].get('errors')).to.be.empty; + expect(navItems[0].get('errors').toArray()).to.be.empty; expect(navItems[1].get('errors.firstObject.attribute')).to.equal('label'); expect(navItems[2].get('errors.firstObject.attribute')).to.equal('url'); done(); diff --git a/core/client/tests/unit/helpers/read-path-test.js b/core/client/tests/unit/helpers/read-path-test.js deleted file mode 100644 index 6ebf97a2e2..0000000000 --- a/core/client/tests/unit/helpers/read-path-test.js +++ /dev/null @@ -1,17 +0,0 @@ -/* jshint expr:true */ -import {expect} from 'chai'; -import { - describe, - it -} from 'mocha'; -import {readPath} from 'ghost/helpers/read-path'; -import Ember from 'ember'; - -describe('Unit: Helper: read-path', function () { - // Replace this with your real tests. - it('works', function () { - let result = readPath([Ember.Object.create({hi: 'there'}), 'hi']); - - expect(result).to.equal('there'); - }); -}); diff --git a/core/client/tests/unit/models/user-test.js b/core/client/tests/unit/models/user-test.js index 488b7199ad..60f7376736 100644 --- a/core/client/tests/unit/models/user-test.js +++ b/core/client/tests/unit/models/user-test.js @@ -10,7 +10,7 @@ describeModel( 'user', 'Unit: Model: user', { - needs: ['model:role'] + needs: ['model:role', 'serializer:application', 'serializer:user'] }, function () {