Skip to content

Commit 0a8edba

Browse files
author
Swastik
authored
Merge pull request #24 from swastik/upgrade-ember
Upgrade ember to 3.2.0
2 parents 872a321 + 06d476a commit 0a8edba

14 files changed

Lines changed: 2756 additions & 2547 deletions

.eslintignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# unconventional js
2+
/blueprints/*/files/
3+
/vendor/
4+
5+
# compiled output
6+
/dist/
7+
/tmp/
8+
9+
# dependencies
10+
/bower_components/
11+
12+
# misc
13+
/coverage/
14+
15+
# ember-try
16+
/.node_modules.ember-try/

addon/components/ember-inline-edit.js

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,107 +1,109 @@
1-
import Component from "@ember/component"
2-
import { get, set, computed } from "@ember/object"
3-
import { htmlSafe } from "@ember/string"
4-
import { run } from "@ember/runloop"
1+
import Component from '@ember/component'
2+
import { set, computed } from '@ember/object'
3+
import { htmlSafe } from '@ember/string'
4+
import { run } from '@ember/runloop'
5+
import { tryInvoke } from '@ember/utils'
56

6-
import layout from "../templates/components/ember-inline-edit"
7+
import layout from '../templates/components/ember-inline-edit'
78

89
export default Component.extend({
910
layout,
10-
classNames: ["ember-inline-edit"],
11-
classNameBindings: ["isEditing:is-editing", "enabled::disabled"],
11+
classNames: ['ember-inline-edit'],
12+
classNameBindings: ['isEditing:is-editing', 'enabled::disabled'],
1213

1314
isEditing: false,
14-
isNotEditing: computed.not("isEditing"),
15+
isNotEditing: computed.not('isEditing'),
1516

1617
enabled: true,
17-
field: "text",
18+
field: 'text',
1819

1920
value: null,
2021
previousValue: null,
2122

22-
placeholder: "Not Provided",
23-
saveLabel: "Save",
24-
cancelLabel: "Cancel",
25-
editLabel: "Edit",
23+
placeholder: 'Not Provided',
24+
saveLabel: 'Save',
25+
cancelLabel: 'Cancel',
26+
editLabel: 'Edit',
2627

2728
fieldWidth: null,
2829

2930
showSaveButton: true,
3031
showCancelButton: true,
3132

32-
editorClass: "",
33-
buttonContainerClass: "",
34-
editButtonClass: "",
35-
saveButtonClass: "",
36-
cancelButtonClass: "",
33+
editorClass: '',
34+
buttonContainerClass: '',
35+
editButtonClass: '',
36+
saveButtonClass: '',
37+
cancelButtonClass: '',
3738

3839
didInsertElement() {
40+
this._super(...arguments)
41+
3942
this._handleClicks = this._handleClicks.bind(this)
40-
document.addEventListener("click", this._handleClicks)
43+
document.addEventListener('click', this._handleClicks)
4144
},
4245

4346
willDestroyElement() {
44-
document.removeEventListener("click", this._handleClicks)
47+
document.removeEventListener('click', this._handleClicks)
4548
},
4649

4750
_handleClicks(ev) {
48-
let enabled = get(this, "enabled")
49-
if (!enabled) return
51+
if (!this.enabled) return
5052

51-
let isEditing = get(this, "isEditing")
53+
let { isEditing } = this
5254
let clickedInside = this.element.contains(ev.target)
5355

5456
if (clickedInside && !isEditing) {
55-
if (get(this, "showEditButton")) {
57+
if (this.showEditButton) {
5658
return
5759
}
5860

5961
this._setFieldWidth()
60-
this.send("startEditing", ev)
62+
this.send('startEditing', ev)
6163
} else if (!clickedInside && isEditing) {
62-
this.send("cancel")
64+
this.send('cancel')
6365
}
6466
},
6567

6668
_setFieldWidth() {
6769
const { width } = this.element.getBoundingClientRect()
6870

6971
run(this, () => {
70-
set(this, "fieldWidth", htmlSafe(`width: ${width + 2}px`))
72+
set(this, 'fieldWidth', htmlSafe(`width: ${width + 2}px`))
7173
})
7274
},
7375

7476
didReceiveAttrs() {
75-
if (get(this, "enabled") === false) {
76-
this.send("cancel")
77+
if (this.enabled === false) {
78+
this.send('cancel')
7779
}
7880
},
7981

8082
actions: {
8183
save() {
82-
this.sendAction("onSave", this.get("value"))
84+
tryInvoke(this, 'onSave', [this.value])
8385

8486
run(this, () => {
85-
set(this, "isEditing", false)
87+
set(this, 'isEditing', false)
8688
})
8789
},
8890

8991
startEditing(e) {
9092
e.stopPropagation()
91-
this.sendAction("onEdit")
93+
tryInvoke(this, 'onEdit')
9294

9395
run(this, () => {
94-
set(this, "previousValue", this.get("value"))
95-
set(this, "isEditing", true)
96+
set(this, 'previousValue', this.value)
97+
set(this, 'isEditing', true)
9698
})
9799
},
98100

99101
cancel() {
100-
this.sendAction("onCancel")
102+
tryInvoke(this, 'onCancel')
101103

102104
run(this, () => {
103-
set(this, "value", this.get("previousValue"))
104-
set(this, "isEditing", false)
105+
set(this, 'value', this.previousValue)
106+
set(this, 'isEditing', false)
105107
})
106108
}
107109
}
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import Component from "@ember/component"
2-
import { computed } from "@ember/object"
1+
import Component from '@ember/component'
2+
import { computed } from '@ember/object'
33

4-
import layout from "../templates/components/ember-inline-editable"
4+
import layout from '../templates/components/ember-inline-editable'
55

66
export default Component.extend({
77
layout,
88

9-
classNames: ["ember-inline-editable"],
9+
classNames: ['ember-inline-editable'],
1010
classNameBindings: [
11-
"isVisible:is-visible:is-hidden",
12-
"showEditButton:is-not-clickable"
11+
'isVisible:is-visible:is-hidden',
12+
'showEditButton:is-not-clickable'
1313
],
14-
valueIsEmpty: computed.empty("value")
14+
valueIsEmpty: computed.empty('value')
1515
})
Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
import Component from "@ember/component"
2-
import { get } from "@ember/object"
3-
import { scheduleOnce } from "@ember/runloop"
1+
import Component from '@ember/component'
2+
import { scheduleOnce } from '@ember/runloop'
43

5-
import layout from "../templates/components/ember-inline-editor"
4+
import layout from '../templates/components/ember-inline-editor'
65

76
const isInputField = el => {
87
const { tagName } = el
@@ -11,18 +10,19 @@ const isInputField = el => {
1110
return false
1211
}
1312

14-
return ["input", "textarea", "select"].includes(tagName.toLowerCase())
13+
return ['input', 'textarea', 'select'].includes(tagName.toLowerCase())
1514
}
1615

1716
export default Component.extend({
1817
layout,
19-
classNameBindings: ["isVisible:is-visible:is-hidden"],
18+
classNameBindings: ['isVisible:is-visible:is-hidden'],
2019

21-
textFields: ["search", "url", "text", "phone", "email", "number"],
22-
textAreaFields: ["textarea"],
20+
textFields: ['search', 'url', 'text', 'phone', 'email', 'number'],
21+
textAreaFields: ['textarea'],
2322

2423
didReceiveAttrs() {
25-
scheduleOnce("afterRender", this.focusOnInput.bind(this))
24+
this._super(...arguments)
25+
scheduleOnce('afterRender', this.focusOnInput.bind(this))
2626
},
2727

2828
focusOnInput() {
@@ -34,18 +34,16 @@ export default Component.extend({
3434
},
3535

3636
keyUp(ev) {
37-
const field = get(this, "field")
38-
const textAreaFields = get(this, "textAreaFields")
39-
37+
const { field, textAreaFields } = this
4038
const { keyCode } = ev
4139

4240
const isEnter = keyCode === 13
4341
const isEsc = keyCode === 27
4442

4543
if (isEnter && !textAreaFields.includes(field)) {
46-
this.sendAction("on-save")
44+
this['on-save']()
4745
} else if (isEsc) {
48-
this.sendAction("on-cancel")
46+
this['on-cancel']()
4947
}
5048
}
5149
})

package.json

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,48 +9,55 @@
99
"ember.js",
1010
"inline editing"
1111
],
12+
"repository": "",
1213
"license": "MIT",
1314
"author": "",
1415
"directories": {
1516
"doc": "doc",
1617
"test": "tests"
1718
},
18-
"repository": "",
1919
"scripts": {
2020
"build": "ember build",
21-
"start": "ember server",
22-
"test": "ember try:each"
21+
"lint:js": "eslint .",
22+
"start": "ember serve",
23+
"test": "ember test",
24+
"test:all": "ember try:each"
2325
},
2426
"dependencies": {
25-
"ember-cli-babel": "^6.3.0",
27+
"ember-cli-babel": "^6.6.0",
2628
"ember-cli-htmlbars": "^2.0.1"
2729
},
2830
"devDependencies": {
29-
"broccoli-asset-rev": "^2.4.5",
31+
"broccoli-asset-rev": "^2.7.0",
3032
"ember-ajax": "^3.0.0",
31-
"ember-cli": "~2.14.0",
32-
"ember-cli-dependency-checker": "^1.3.0",
33-
"ember-cli-eslint": "^3.0.0",
34-
"ember-cli-github-pages": "^0.1.2",
35-
"ember-cli-htmlbars-inline-precompile": "^0.4.3",
33+
"ember-cli": "~3.3.0",
34+
"ember-cli-dependency-checker": "^2.0.0",
35+
"ember-cli-eslint": "^4.2.1",
36+
"ember-cli-github-pages": "^0.2.0",
37+
"ember-cli-htmlbars-inline-precompile": "^1.0.0",
3638
"ember-cli-inject-live-reload": "^1.4.1",
37-
"ember-cli-qunit": "^4.0.0",
38-
"ember-cli-shims": "^1.1.0",
39+
"ember-cli-qunit": "^4.3.2",
40+
"ember-cli-shims": "^1.2.0",
3941
"ember-cli-sri": "^2.1.0",
40-
"ember-cli-uglify": "^1.2.0",
41-
"ember-code-snippet": "^1.9.0",
42+
"ember-cli-uglify": "^2.0.0",
43+
"ember-code-snippet": "^2.2.2",
4244
"ember-disable-prototype-extensions": "^1.1.2",
4345
"ember-export-application-global": "^2.0.0",
44-
"ember-load-initializers": "^1.0.0",
46+
"ember-load-initializers": "^1.1.0",
4547
"ember-maybe-import-regenerator": "^0.1.6",
46-
"ember-native-dom-helpers": "^0.5.2",
48+
"ember-native-dom-helpers": "^0.6.2",
4749
"ember-resolver": "^4.0.0",
48-
"ember-source": "~2.14.0",
50+
"ember-source": "~3.3.0",
51+
"ember-source-channel-url": "^1.0.1",
52+
"ember-try": "^0.2.23",
4953
"ember-welcome-page": "^3.0.0",
50-
"loader.js": "^4.2.3"
54+
"eslint-plugin-ember": "^5.0.0",
55+
"eslint-plugin-node": "^6.0.1",
56+
"loader.js": "^4.2.3",
57+
"qunit-dom": "^0.6.2"
5158
},
5259
"engines": {
53-
"node": "^4.5 || 6.* || >= 7.*"
60+
"node": "6.* || 8.* || >= 10.*"
5461
},
5562
"ember-addon": {
5663
"configPath": "tests/dummy/config",

testem.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* eslint-env node */
21
module.exports = {
32
test_page: 'tests/index.html?hidepassed',
43
disable_watching: true,
@@ -8,7 +7,19 @@ module.exports = {
87
launch_in_dev: [
98
'Chrome'
109
],
11-
"browser_args": {
12-
"Chrome": [ '--headless', '--disable-gpu', '--remote-debugging-port=9222' ]
10+
browser_args: {
11+
Chrome: {
12+
ci: [
13+
// --no-sandbox is needed when running Chrome inside a container
14+
process.env.CI ? '--no-sandbox' : null,
15+
'--headless',
16+
'--disable-gpu',
17+
'--disable-dev-shm-usage',
18+
'--disable-software-rasterizer',
19+
'--mute-audio',
20+
'--remote-debugging-port=0',
21+
'--window-size=1440,900'
22+
].filter(Boolean)
23+
}
1324
}
1425
};

tests/dummy/app/app.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
import Ember from 'ember';
1+
import Application from '@ember/application';
22
import Resolver from './resolver';
33
import loadInitializers from 'ember-load-initializers';
44
import config from './config/environment';
55

6-
let App;
7-
8-
App = Ember.Application.extend({
6+
const App = Application.extend({
97
modulePrefix: config.modulePrefix,
108
podModulePrefix: config.podModulePrefix,
119
Resolver

tests/dummy/config/environment.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,14 @@ module.exports = function(environment) {
4141
ENV.APP.LOG_VIEW_LOOKUPS = false;
4242

4343
ENV.APP.rootElement = '#ember-testing';
44+
ENV.APP.autoboot = false;
4445
}
4546

4647
if (environment === 'production') {
4748
ENV.locationType = 'hash';
4849
ENV.rootURL = '/ember-inline-edit/';
50+
ENV.locationType = 'hash';
51+
ENV.rootURL = '/ember-inline-edit/';
4952

5053
}
5154

0 commit comments

Comments
 (0)