Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade ember #79

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

root = true


[*]
end_of_line = lf
charset = utf-8
Expand Down
22 changes: 22 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# unconventional js
/blueprints/*/files/
/vendor/

# compiled output
/dist/
/tmp/

# dependencies
/bower_components/
/node_modules/

# misc
/coverage/
!.*
.*/
.eslintcache

# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
57 changes: 51 additions & 6 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,58 @@
'use strict';

module.exports = {
root: true,
parser: 'babel-eslint',
parserOptions: {
ecmaVersion: 2017,
sourceType: 'module'
ecmaVersion: 2018,
sourceType: 'module',
ecmaFeatures: {
legacyDecorators: true,
},
},
extends: 'eslint:recommended',
plugins: ['ember'],
extends: [
'eslint:recommended',
'plugin:ember/recommended',
'plugin:prettier/recommended',
],
env: {
browser: true
browser: true,
},
rules: {
}
rules: {},
overrides: [
// node files
{
files: [
'./.eslintrc.js',
'./.prettierrc.js',
'./.template-lintrc.js',
'./ember-cli-build.js',
'./testem.js',
'./blueprints/*/index.js',
'./config/**/*.js',
'./lib/*/index.js',
'./server/**/*.js',
],
parserOptions: {
sourceType: 'script',
},
env: {
browser: false,
node: true,
},
plugins: ['node'],
extends: ['plugin:node/recommended'],
rules: {
// this can be removed once the following is fixed
// https://github.com/mysticatea/eslint-plugin-node/issues/77
'node/no-unpublished-require': 'off',
},
},
{
// Test files:
files: ['tests/**/*-test.{js,ts}'],
extends: ['plugin:qunit/recommended'],
},
],
};
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

# misc
/.sass-cache
/.eslintcache
/connect.lock
/coverage/*
/libpeerconnection.log
Expand Down
21 changes: 21 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# unconventional js
/blueprints/*/files/
/vendor/

# compiled output
/dist/
/tmp/

# dependencies
/bower_components/
/node_modules/

# misc
/coverage/
!.*
.eslintcache

# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
5 changes: 5 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
'use strict';

module.exports = {
singleQuote: true,
};
5 changes: 5 additions & 0 deletions .template-lintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
'use strict';

module.exports = {
extends: 'recommended',
};
18 changes: 13 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
---
language: node_js
node_js:
- "6"
- "12"

sudo: false
dist: trusty
dist: xenial

addons:
chrome: stable
Expand All @@ -13,5 +12,14 @@ cache:
directories:
- $HOME/.npm

before_install:
- npm config set spin false
env:
global:
# See https://git.io/vdao3 for details.
- JOBS=1

branches:
only:
- master

script:
- npm test
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ Make use of the many generators for code, try `ember help generate` for more det
* `ember test`
* `ember test --server`

### Linting

* `npm run lint`
* `npm run lint:fix`

### Building

* `ember build` (development)
Expand Down
43 changes: 22 additions & 21 deletions app/adapters/application.js
Original file line number Diff line number Diff line change
@@ -1,35 +1,36 @@
import DS from 'ember-data';
import Model from '@ember-data/model';
import ENV from '../config/environment';
import { inject } from '@ember/service';
import { inject as service } from '@ember/service';
import { isPresent } from '@ember/utils';
import { computed } from '@ember/object';
import ActiveModelAdapter from 'active-model-adapter';
import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin';

export default ActiveModelAdapter.extend(DataAdapterMixin, {
session: inject(),
host: ENV.APP.serviceURL,
export default class ApplicationAdapter extends ActiveModelAdapter {
@service session;

authorize(xhr) {
let { token } = this.get('session.data.authenticated');
if (isPresent(token)) {
xhr.setRequestHeader('Authorization', `Bearer ${token}`);
host = ENV.APP.serviceURL;

@computed('session.data.authenticated.token')
get headers() {
const headers = {};
if (this.session.isAuthenticated) {
headers['Authorization'] = `Bearer ${this.session.data.authenticated.token}`;
}
},
/*
ajax: function(url, type, hash) {
if (Ember.isEmpty(hash)) { hash = {}; }
if (Ember.isEmpty(hash.data)) { hash.data = {}; }
hash.data.token = this.container.lookup('route:application').get('session.content.secure.token');
return this._super(url, type, hash);
return headers;
}
*/
});

handleResponse(status) {
if (status === 401) {
this.session.invalidate()
}
return super.handleResponse(...arguments);
}
}

// TODO: Where is this used/needed? Should not id just be number in model?
DS.Model.reopen({
Model.reopen({
idInt: computed('id', function() {
return this.get('id') ? parseInt(this.get('id')) : undefined;
return this.id ? parseInt(this.id) : undefined;
})
});

Expand Down
18 changes: 8 additions & 10 deletions app/app.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
import Ember from 'ember';
import Resolver from './resolver';
import Application from '@ember/application';
import Resolver from 'ember-resolver';
import loadInitializers from 'ember-load-initializers';
import config from './config/environment';
import config from 'fjarrkontrollen/config/environment';

const App = Ember.Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver
});
export default class App extends Application {
modulePrefix = config.modulePrefix;
podModulePrefix = config.podModulePrefix;
Resolver = Resolver;
}

loadInitializers(App, config.modulePrefix);

export default App;
58 changes: 29 additions & 29 deletions app/authenticators/gub.js
Original file line number Diff line number Diff line change
@@ -1,56 +1,56 @@
import Base from 'ember-simple-auth/authenticators/base';
import { Promise, resolve } from 'rsvp';
import ENV from '../config/environment';
import { inject } from '@ember/service';
import { inject as service } from '@ember/service';
import { run } from '@ember/runloop';

import {
isUnauthorizedError
} from 'ember-ajax/errors';

export default Base.extend({
ajax: inject(),
export default class GUPAuthenticator extends Base {

//TODO: review this
restore(data) {
return new Promise((resolve, reject) => {
this.get('ajax').request(
`${ENV.APP.authenticationBaseURL}/${data.token}`
).then(() => {
fetch(`${ENV.APP.authenticationBaseURL}/${data.token}`)
.then(() => {
run(() => {
resolve(data);
});
}, (error) => {
run(null, reject, error);
});
});
},
}

authenticate(credentials) {
return new Promise((resolve, reject) => {
this.get('ajax').post(ENV.APP.authenticationBaseURL, {
data: {
fetch(ENV.APP.authenticationBaseURL, {
mode: 'cors',
method: 'POST',
headers: { //TODO: Need this?
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
xkonto: credentials.identification,
password: credentials.password
}
}).then((response_data) => {
})
})
.then(response => response.json())
.then((data) => {
run(() => {
const token = response_data.access_token;
const data = {
token: token,
userManagingGroupId: response_data.user.managing_group_id,
userPickupLocationId: response_data.user.pickup_location_id,
username: response_data.user.xkonto,
userid: response_data.user.id,
name: response_data.user.name
const authData = {
token: data.access_token,
userManagingGroupId: data.user.managing_group_id,
userPickupLocationId: data.user.pickup_location_id,
username: data.user.xkonto,
userid: data.user.id,
name: data.user.name
};
resolve(data);
resolve(authData);
});
}).catch((error) => {
run(null, reject, isUnauthorizedError(error) ? "Fel användarnamn eller lösenord" : error);
//@TODO: error format??
run(null, reject, true ? "Fel användarnamn eller lösenord" : error);
});
});
},
invalidate(data) {
return resolve();
}
});
}
Loading