Skip to content

Commit

Permalink
Merge pull request #24 from swastik/upgrade-ember
Browse files Browse the repository at this point in the history
Upgrade ember to 3.2.0
  • Loading branch information
Swastik authored Sep 1, 2018
2 parents 872a321 + 06d476a commit 0a8edba
Show file tree
Hide file tree
Showing 14 changed files with 2,756 additions and 2,547 deletions.
16 changes: 16 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# unconventional js
/blueprints/*/files/
/vendor/

# compiled output
/dist/
/tmp/

# dependencies
/bower_components/

# misc
/coverage/

# ember-try
/.node_modules.ember-try/
76 changes: 39 additions & 37 deletions addon/components/ember-inline-edit.js
Original file line number Diff line number Diff line change
@@ -1,107 +1,109 @@
import Component from "@ember/component"
import { get, set, computed } from "@ember/object"
import { htmlSafe } from "@ember/string"
import { run } from "@ember/runloop"
import Component from '@ember/component'
import { set, computed } from '@ember/object'
import { htmlSafe } from '@ember/string'
import { run } from '@ember/runloop'
import { tryInvoke } from '@ember/utils'

import layout from "../templates/components/ember-inline-edit"
import layout from '../templates/components/ember-inline-edit'

export default Component.extend({
layout,
classNames: ["ember-inline-edit"],
classNameBindings: ["isEditing:is-editing", "enabled::disabled"],
classNames: ['ember-inline-edit'],
classNameBindings: ['isEditing:is-editing', 'enabled::disabled'],

isEditing: false,
isNotEditing: computed.not("isEditing"),
isNotEditing: computed.not('isEditing'),

enabled: true,
field: "text",
field: 'text',

value: null,
previousValue: null,

placeholder: "Not Provided",
saveLabel: "Save",
cancelLabel: "Cancel",
editLabel: "Edit",
placeholder: 'Not Provided',
saveLabel: 'Save',
cancelLabel: 'Cancel',
editLabel: 'Edit',

fieldWidth: null,

showSaveButton: true,
showCancelButton: true,

editorClass: "",
buttonContainerClass: "",
editButtonClass: "",
saveButtonClass: "",
cancelButtonClass: "",
editorClass: '',
buttonContainerClass: '',
editButtonClass: '',
saveButtonClass: '',
cancelButtonClass: '',

didInsertElement() {
this._super(...arguments)

this._handleClicks = this._handleClicks.bind(this)
document.addEventListener("click", this._handleClicks)
document.addEventListener('click', this._handleClicks)
},

willDestroyElement() {
document.removeEventListener("click", this._handleClicks)
document.removeEventListener('click', this._handleClicks)
},

_handleClicks(ev) {
let enabled = get(this, "enabled")
if (!enabled) return
if (!this.enabled) return

let isEditing = get(this, "isEditing")
let { isEditing } = this
let clickedInside = this.element.contains(ev.target)

if (clickedInside && !isEditing) {
if (get(this, "showEditButton")) {
if (this.showEditButton) {
return
}

this._setFieldWidth()
this.send("startEditing", ev)
this.send('startEditing', ev)
} else if (!clickedInside && isEditing) {
this.send("cancel")
this.send('cancel')
}
},

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

run(this, () => {
set(this, "fieldWidth", htmlSafe(`width: ${width + 2}px`))
set(this, 'fieldWidth', htmlSafe(`width: ${width + 2}px`))
})
},

didReceiveAttrs() {
if (get(this, "enabled") === false) {
this.send("cancel")
if (this.enabled === false) {
this.send('cancel')
}
},

actions: {
save() {
this.sendAction("onSave", this.get("value"))
tryInvoke(this, 'onSave', [this.value])

run(this, () => {
set(this, "isEditing", false)
set(this, 'isEditing', false)
})
},

startEditing(e) {
e.stopPropagation()
this.sendAction("onEdit")
tryInvoke(this, 'onEdit')

run(this, () => {
set(this, "previousValue", this.get("value"))
set(this, "isEditing", true)
set(this, 'previousValue', this.value)
set(this, 'isEditing', true)
})
},

cancel() {
this.sendAction("onCancel")
tryInvoke(this, 'onCancel')

run(this, () => {
set(this, "value", this.get("previousValue"))
set(this, "isEditing", false)
set(this, 'value', this.previousValue)
set(this, 'isEditing', false)
})
}
}
Expand Down
14 changes: 7 additions & 7 deletions addon/components/ember-inline-editable.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import Component from "@ember/component"
import { computed } from "@ember/object"
import Component from '@ember/component'
import { computed } from '@ember/object'

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

export default Component.extend({
layout,

classNames: ["ember-inline-editable"],
classNames: ['ember-inline-editable'],
classNameBindings: [
"isVisible:is-visible:is-hidden",
"showEditButton:is-not-clickable"
'isVisible:is-visible:is-hidden',
'showEditButton:is-not-clickable'
],
valueIsEmpty: computed.empty("value")
valueIsEmpty: computed.empty('value')
})
26 changes: 12 additions & 14 deletions addon/components/ember-inline-editor.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import Component from "@ember/component"
import { get } from "@ember/object"
import { scheduleOnce } from "@ember/runloop"
import Component from '@ember/component'
import { scheduleOnce } from '@ember/runloop'

import layout from "../templates/components/ember-inline-editor"
import layout from '../templates/components/ember-inline-editor'

const isInputField = el => {
const { tagName } = el
Expand All @@ -11,18 +10,19 @@ const isInputField = el => {
return false
}

return ["input", "textarea", "select"].includes(tagName.toLowerCase())
return ['input', 'textarea', 'select'].includes(tagName.toLowerCase())
}

export default Component.extend({
layout,
classNameBindings: ["isVisible:is-visible:is-hidden"],
classNameBindings: ['isVisible:is-visible:is-hidden'],

textFields: ["search", "url", "text", "phone", "email", "number"],
textAreaFields: ["textarea"],
textFields: ['search', 'url', 'text', 'phone', 'email', 'number'],
textAreaFields: ['textarea'],

didReceiveAttrs() {
scheduleOnce("afterRender", this.focusOnInput.bind(this))
this._super(...arguments)
scheduleOnce('afterRender', this.focusOnInput.bind(this))
},

focusOnInput() {
Expand All @@ -34,18 +34,16 @@ export default Component.extend({
},

keyUp(ev) {
const field = get(this, "field")
const textAreaFields = get(this, "textAreaFields")

const { field, textAreaFields } = this
const { keyCode } = ev

const isEnter = keyCode === 13
const isEsc = keyCode === 27

if (isEnter && !textAreaFields.includes(field)) {
this.sendAction("on-save")
this['on-save']()
} else if (isEsc) {
this.sendAction("on-cancel")
this['on-cancel']()
}
}
})
45 changes: 26 additions & 19 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,48 +9,55 @@
"ember.js",
"inline editing"
],
"repository": "",
"license": "MIT",
"author": "",
"directories": {
"doc": "doc",
"test": "tests"
},
"repository": "",
"scripts": {
"build": "ember build",
"start": "ember server",
"test": "ember try:each"
"lint:js": "eslint .",
"start": "ember serve",
"test": "ember test",
"test:all": "ember try:each"
},
"dependencies": {
"ember-cli-babel": "^6.3.0",
"ember-cli-babel": "^6.6.0",
"ember-cli-htmlbars": "^2.0.1"
},
"devDependencies": {
"broccoli-asset-rev": "^2.4.5",
"broccoli-asset-rev": "^2.7.0",
"ember-ajax": "^3.0.0",
"ember-cli": "~2.14.0",
"ember-cli-dependency-checker": "^1.3.0",
"ember-cli-eslint": "^3.0.0",
"ember-cli-github-pages": "^0.1.2",
"ember-cli-htmlbars-inline-precompile": "^0.4.3",
"ember-cli": "~3.3.0",
"ember-cli-dependency-checker": "^2.0.0",
"ember-cli-eslint": "^4.2.1",
"ember-cli-github-pages": "^0.2.0",
"ember-cli-htmlbars-inline-precompile": "^1.0.0",
"ember-cli-inject-live-reload": "^1.4.1",
"ember-cli-qunit": "^4.0.0",
"ember-cli-shims": "^1.1.0",
"ember-cli-qunit": "^4.3.2",
"ember-cli-shims": "^1.2.0",
"ember-cli-sri": "^2.1.0",
"ember-cli-uglify": "^1.2.0",
"ember-code-snippet": "^1.9.0",
"ember-cli-uglify": "^2.0.0",
"ember-code-snippet": "^2.2.2",
"ember-disable-prototype-extensions": "^1.1.2",
"ember-export-application-global": "^2.0.0",
"ember-load-initializers": "^1.0.0",
"ember-load-initializers": "^1.1.0",
"ember-maybe-import-regenerator": "^0.1.6",
"ember-native-dom-helpers": "^0.5.2",
"ember-native-dom-helpers": "^0.6.2",
"ember-resolver": "^4.0.0",
"ember-source": "~2.14.0",
"ember-source": "~3.3.0",
"ember-source-channel-url": "^1.0.1",
"ember-try": "^0.2.23",
"ember-welcome-page": "^3.0.0",
"loader.js": "^4.2.3"
"eslint-plugin-ember": "^5.0.0",
"eslint-plugin-node": "^6.0.1",
"loader.js": "^4.2.3",
"qunit-dom": "^0.6.2"
},
"engines": {
"node": "^4.5 || 6.* || >= 7.*"
"node": "6.* || 8.* || >= 10.*"
},
"ember-addon": {
"configPath": "tests/dummy/config",
Expand Down
17 changes: 14 additions & 3 deletions testem.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
/* eslint-env node */
module.exports = {
test_page: 'tests/index.html?hidepassed',
disable_watching: true,
Expand All @@ -8,7 +7,19 @@ module.exports = {
launch_in_dev: [
'Chrome'
],
"browser_args": {
"Chrome": [ '--headless', '--disable-gpu', '--remote-debugging-port=9222' ]
browser_args: {
Chrome: {
ci: [
// --no-sandbox is needed when running Chrome inside a container
process.env.CI ? '--no-sandbox' : null,
'--headless',
'--disable-gpu',
'--disable-dev-shm-usage',
'--disable-software-rasterizer',
'--mute-audio',
'--remote-debugging-port=0',
'--window-size=1440,900'
].filter(Boolean)
}
}
};
6 changes: 2 additions & 4 deletions tests/dummy/app/app.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import Ember from 'ember';
import Application from '@ember/application';
import Resolver from './resolver';
import loadInitializers from 'ember-load-initializers';
import config from './config/environment';

let App;

App = Ember.Application.extend({
const App = Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver
Expand Down
3 changes: 3 additions & 0 deletions tests/dummy/config/environment.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,14 @@ module.exports = function(environment) {
ENV.APP.LOG_VIEW_LOOKUPS = false;

ENV.APP.rootElement = '#ember-testing';
ENV.APP.autoboot = false;
}

if (environment === 'production') {
ENV.locationType = 'hash';
ENV.rootURL = '/ember-inline-edit/';
ENV.locationType = 'hash';
ENV.rootURL = '/ember-inline-edit/';

}

Expand Down
Loading

0 comments on commit 0a8edba

Please sign in to comment.