Skip to content

Commit

Permalink
Merge pull request #61 from mugijiru/update-emberjs-2.18to3.4
Browse files Browse the repository at this point in the history
  • Loading branch information
mugijiru committed Apr 4, 2021
2 parents 2b3b2b1 + 196d9f7 commit 96bcf59
Show file tree
Hide file tree
Showing 21 changed files with 970 additions and 927 deletions.
5 changes: 4 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN apt-get update -qq && apt-get install -y nodejs yarn

# install ember-cli-update
RUN yarn global add ember-cli-update

# install ember-cli
RUN yarn global add ember-cli@2.18.2
RUN yarn global add ember-cli@3.4.4

WORKDIR /app

Expand Down
18 changes: 18 additions & 0 deletions ember/todo-app/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# unconventional js
/blueprints/*/files/
/vendor/

# compiled output
/dist/
/tmp/

# dependencies
/bower_components/

# misc
/coverage/

# ember-try
/.node_modules.ember-try/
/bower.json.ember-try
/package.json.ember-try
13 changes: 3 additions & 10 deletions ember/todo-app/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@ module.exports = {
// node files
{
files: [
'testem.js',
'.template-lintrc.js',
'ember-cli-build.js',
'testem.js',
'blueprints/*/index.js',
'config/**/*.js',
'lib/*/index.js'
],
Expand All @@ -33,15 +35,6 @@ module.exports = {
browser: false,
node: true
}
},

// test files
{
files: ['tests/**/*.js'],
excludedFiles: ['tests/dummy/**/*.js'],
env: {
embertest: true
}
}
]
};
22 changes: 11 additions & 11 deletions ember/todo-app/.gitignore
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
/dist
/tmp
/dist/
/tmp/

# dependencies
/node_modules
/bower_components
/bower_components/
/node_modules/

# misc
/.sass-cache
/connect.lock
/coverage/*
/coverage/
/libpeerconnection.log
npm-debug.log*
yarn-error.log
testem.log
/npm-debug.log*
/testem.log
/yarn-error.log

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

module.exports = {
extends: 'recommended'
};
6 changes: 6 additions & 0 deletions ember/todo-app/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ Make use of the many generators for code, try `ember help generate` for more det
* `ember test`
* `ember test --server`

### Linting

* `yarn lint:hbs`
* `yarn lint:js`
* `yarn lint:js --fix`

### Building

* `ember build` (development)
Expand Down
18 changes: 10 additions & 8 deletions ember/todo-app/app/components/todo-item.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import Ember from 'ember';
import { later } from '@ember/runloop';
import { computed } from '@ember/object';
import Component from '@ember/component';

export default Ember.Component.extend({
export default Component.extend({
tagName: 'li',
classNames: ['p-todo-item'],
classNameBindings: ['isCompleted:p-todo-item__completed'],

item: null,
isCompleted: Ember.computed('item.isCompleted', function () {
isCompleted: computed('item.isCompleted', function () {
return this.get('item.isCompleted');
}),

Expand All @@ -15,25 +17,25 @@ export default Ember.Component.extend({
},

didRender () {
Ember.run.later(() => {
later(() => {
this.$().removeClass('p-todo-item--showing-enter');
}, 10);
},

actions: {
toggle () {
const item = this.get('item');
const item = this.item;
item.set('isCompleted', !item.get('isCompleted'));
item.save();
},

edit () {
const item = this.get('item');
this.get('setEditingRecord')(item);
const item = this.item;
this.setEditingRecord(item);
},

delete () {
const item = this.get('item');
const item = this.item;
item.destroyRecord();
}
}
Expand Down
19 changes: 10 additions & 9 deletions ember/todo-app/app/components/todo-item/form-modal.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
import Ember from 'ember';
import { computed, observer } from '@ember/object';
import Component from '@ember/component';

export default Ember.Component.extend({
export default Component.extend({
item: null,
isOpen: false,

title: Ember.computed('item', function () {
title: computed('item', function () {
const mode = this.get('item.isNew') ? 'New' : 'Edit';
return `${mode} TODO`;
}),

style: Ember.computed('item', function () {
const display = this.get('item') ? 'block' : 'none';
style: computed('item', function () {
const display = this.item ? 'block' : 'none';
return `display: ${display};`;
}),

enabled: Ember.observer('item', function () {
if (this.get('item')) {
enabled: observer('item', function () {
if (this.item) {
this.open();
}
}),
Expand All @@ -30,14 +31,14 @@ export default Ember.Component.extend({

actions: {
cancel () {
const item = this.get('item');
const item = this.item;
if (item) { item.deleteRecord(); }
this.close();
return false;
},

save () {
this.get('item').save().then((response) => {
this.item.save().then((response) => {
this.close();
}).catch(function (error) {
});
Expand Down
40 changes: 22 additions & 18 deletions ember/todo-app/app/controllers/todo-items.js
Original file line number Diff line number Diff line change
@@ -1,37 +1,41 @@
import Ember from 'ember';
import { later } from '@ember/runloop';
import { computed } from '@ember/object';
import { alias } from '@ember/object/computed';
import { inject as service } from '@ember/service';
import Controller from '@ember/controller';

export default Ember.Controller.extend({
store: Ember.inject.service(),
todoItems: Ember.computed.alias('model'),
savedTodoItems: Ember.computed('todoItems.@each.isNew', function () {
return this.get('todoItems').filterBy('isNew', false);
export default Controller.extend({
store: service(),
todoItems: alias('model'),
savedTodoItems: computed('todoItems.@each.isNew', function () {
return this.todoItems.filterBy('isNew', false);
}),
listedTodoItems: Ember.computed('savedTodoItems.[]', 'hiddenCompleted', function () {
const items = this.get('savedTodoItems');
if (this.get('hiddenCompleted')) {
listedTodoItems: computed('savedTodoItems.[]', 'hiddenCompleted', function () {
const items = this.savedTodoItems;
if (this.hiddenCompleted) {
return items.filterBy('isCompleted', false);
} else {
return items;
}
}),
buildingTodoItem: Ember.computed('todoItems.@each.isNew', function () {
return this.get('todoItems').filterBy('isNew', true).get('firstObject');
buildingTodoItem: computed('todoItems.@each.isNew', function () {
return this.todoItems.filterBy('isNew', true).get('firstObject');
}),
editingTodoItem: null,
hiddenCompleted: false,
hidignCompleted: false,
hiddenOrHidingCompleted: Ember.computed('hiddenCompleted', 'hidingCompleted', function () {
return this.get('hiddenCompleted') || this.get('hidingCompleted');
hiddenOrHidingCompleted: computed('hiddenCompleted', 'hidingCompleted', function () {
return this.hiddenCompleted || this.hidingCompleted;
}),

actions: {
build () {
const buildingRecord = this.get('todoItems').filterBy('isNew', true).get('firstObject');
const buildingRecord = this.todoItems.filterBy('isNew', true).get('firstObject');

if (buildingRecord) {
this.set('editingTodoItem', buildingRecord);
} else {
this.set('editingTodoItem', this.get('store').createRecord('todo-item'));
this.set('editingTodoItem', this.store.createRecord('todo-item'));
}
},

Expand All @@ -41,15 +45,15 @@ export default Ember.Controller.extend({

toggleHiddenCompletedItems () {

if (this.get('hiddenCompleted')) { // to Show
if (this.hiddenCompleted) { // to Show
this.set('hiddenCompleted', false);
} else { // to Hide
this.set('hidingCompleted', true);
const targetItems = $('.p-todo-item__completed');
const hidingClass = 'p-todo-item--hiding';

targetItems.addClass(hidingClass);
Ember.run.later(() => {
later(() => {
this.set('hiddenCompleted', true);
this.set('hidingCompleted', false);
targetItems.removeClass(hidingClass);
Expand All @@ -58,7 +62,7 @@ export default Ember.Controller.extend({
},

deleteCompletedItems () {
const completedItems = this.get('savedTodoItems').filterBy('isCompleted', true);
const completedItems = this.savedTodoItems.filterBy('isCompleted', true);
completedItems.forEach(item => item.destroyRecord());
}
}
Expand Down
3 changes: 2 additions & 1 deletion ember/todo-app/app/initializers/inject-current-user.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import EmberObject from '@ember/object';
export function initialize(application) {
const currentUser = Ember.Object.extend({
const currentUser = EmberObject.extend({
email: document.querySelector(application.rootElement).dataset.email
});
application.register('session:current-user', currentUser);
Expand Down
4 changes: 2 additions & 2 deletions ember/todo-app/app/routes/todo-items.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Ember from 'ember';
import Route from '@ember/routing/route';

export default Ember.Route.extend({
export default Route.extend({
model() {
return this.store.findAll('todo-item');
}
Expand Down
21 changes: 21 additions & 0 deletions ember/todo-app/config/ember-cli-update.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"schemaVersion": "1.0.0",
"packages": [
{
"name": "ember-cli",
"version": "3.4.4",
"blueprints": [
{
"name": "app",
"outputRepo": "https://github.com/ember-cli/ember-new-output",
"codemodsSource": "ember-app-codemods-manifest@1",
"isBaseBlueprint": true,
"options": [
"--yarn",
"--no-welcome"
]
}
]
}
]
}
3 changes: 3 additions & 0 deletions ember/todo-app/config/optional-features.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"jquery-integration": true
}
22 changes: 16 additions & 6 deletions ember/todo-app/config/targets.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
'use strict';

const browsers = [
'last 1 Chrome versions',
'last 1 Firefox versions',
'last 1 Safari versions'
];

const isCI = !!process.env.CI;
const isProduction = process.env.EMBER_ENV === 'production';

if (isCI || isProduction) {
browsers.push('ie 11');
}

module.exports = {
browsers: [
'ie 9',
'last 1 Chrome versions',
'last 1 Firefox versions',
'last 1 Safari versions'
]
browsers
};

0 comments on commit 96bcf59

Please sign in to comment.