_..., ,:^;,...; -+===;. ,,--++====++-,,, .: /....., :::::~+++++#:,+#++++++++++++++++++#*..: /,...... (,,,,,,::=+++##++++++++++++++++++++++#. :....../ ...,,,,,::++++++++++++++++++++++++++++++*..,...: *..+...,#@@@@@@@@@++++++++++++++++++++++#*....* @#,;##############@@@+*+#@@@@@@@@@@#*++#..< *@##@@+,-*^^^*-+@####@@@######@@@#####@@,,,+ @#@* @#@@@@#@@+--*^^*--#@@@@@@# @#@. @# @##+++@#, .@@#@@ #@# @@ +@@++++#@@ @@ :@@ :@#* @#@++++++@#* #@ @@+ :*+@@#;,.__.+@#@+,-^^.++@# @@++ ;* :*@@@##@@@@;++r._j^.+@##@+,.__,,@@++. /* ........+++++++++++++#@@@@@###@@#++++, ,: ...,@@@#++===----==@@@####,,....+++++ .: ......@@##@\ ; :@####@,,...... +++. ; .........@###, ; ;xx#@;,,..... *;+, | ........,*;xxxx--^--=xxx,........ :+#; ; ......,,;xxxxxxxxxxxxx;,..... *+# ; ......,::xxxx;. ...... +. . *; ......... +### .... / ,. /:| ,. .+: ... ;##++##, . ,#. (..v..;*./ ** ## ###* .:*&&&+. \.,....<, #&+**==-..,,__ ;## ### :,*+&&&&&&&v+#&,,.._/ #&&&&*...,::,,. ##; ,##* .*****;:&&&&&&&&& ,+*+;~*..*** *.* ### ###* ******* *+#&;* ##,;## **** :, ** ##### ## ### ###, ######## .##### ;## ## ####### ;## #### ,###. ########## ######## ### #### ### ### ### ########## #### #### ,## ### #######* ### ,### ##############: ## ### #### ,## :#### ### ##; ########## ########### ## .## ,### ####### ##### :###### ###### .###### #### ## ### ### ######* :##### #### ############# #### ################ ######## ### #####* *#* #: :### *###* *#### #*master
@@ -0,0 +1,19 @@ | |||
# EditorConfig helps developers define and maintain consistent | |||
# coding styles between different editors and IDEs | |||
# editorconfig.org | |||
root = true | |||
[*] | |||
end_of_line = lf | |||
charset = utf-8 | |||
trim_trailing_whitespace = true | |||
insert_final_newline = true | |||
indent_style = space | |||
indent_size = 2 | |||
[*.hbs] | |||
insert_final_newline = false | |||
[*.{diff,md}] | |||
trim_trailing_whitespace = false |
@@ -0,0 +1,9 @@ | |||
{ | |||
/** | |||
Ember CLI sends analytics information by default. The data is completely | |||
anonymous, but there are times when you might want to disable this behavior. | |||
Setting `disableAnalytics` to true will prevent any data from being sent. | |||
*/ | |||
"disableAnalytics": false | |||
} |
@@ -0,0 +1,20 @@ | |||
# unconventional js | |||
/blueprints/*/files/ | |||
/vendor/ | |||
# compiled output | |||
/dist/ | |||
/tmp/ | |||
# dependencies | |||
/bower_components/ | |||
/node_modules/ | |||
# misc | |||
/coverage/ | |||
!.* | |||
# ember-try | |||
/.node_modules.ember-try/ | |||
/bower.json.ember-try | |||
/package.json.ember-try |
@@ -0,0 +1,56 @@ | |||
'use strict'; | |||
module.exports = { | |||
root: true, | |||
parser: 'babel-eslint', | |||
parserOptions: { | |||
ecmaVersion: 2018, | |||
sourceType: 'module', | |||
ecmaFeatures: { | |||
legacyDecorators: true | |||
} | |||
}, | |||
plugins: [ | |||
'ember' | |||
], | |||
extends: [ | |||
'eslint:recommended', | |||
'plugin:ember/recommended' | |||
], | |||
env: { | |||
browser: true | |||
}, | |||
rules: { | |||
'ember/no-jquery': 'error' | |||
}, | |||
overrides: [ | |||
// node files | |||
{ | |||
files: [ | |||
'.eslintrc.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'], | |||
rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, { | |||
// add your custom rules and overrides for node files here | |||
// this can be removed once the following is fixed | |||
// https://github.com/mysticatea/eslint-plugin-node/issues/77 | |||
'node/no-unpublished-require': 'off' | |||
}) | |||
} | |||
] | |||
}; |
@@ -0,0 +1,25 @@ | |||
# See https://help.github.com/ignore-files/ for more about ignoring files. | |||
# compiled output | |||
/dist/ | |||
/tmp/ | |||
# dependencies | |||
/bower_components/ | |||
/node_modules/ | |||
# misc | |||
/.env* | |||
/.pnp* | |||
/.sass-cache | |||
/connect.lock | |||
/coverage/ | |||
/libpeerconnection.log | |||
/npm-debug.log* | |||
/testem.log | |||
/yarn-error.log | |||
# ember-try | |||
/.node_modules.ember-try/ | |||
/bower.json.ember-try | |||
/package.json.ember-try |
@@ -0,0 +1,5 @@ | |||
'use strict'; | |||
module.exports = { | |||
extends: 'octane' | |||
}; |
@@ -0,0 +1,25 @@ | |||
--- | |||
language: node_js | |||
node_js: | |||
- "10" | |||
dist: trusty | |||
addons: | |||
chrome: stable | |||
cache: | |||
directories: | |||
- $HOME/.npm | |||
env: | |||
global: | |||
# See https://git.io/vdao3 for details. | |||
- JOBS=1 | |||
branches: | |||
only: | |||
- master | |||
script: | |||
- npm test |
@@ -0,0 +1,3 @@ | |||
{ | |||
"ignore_dirs": ["tmp", "dist"] | |||
} |
@@ -0,0 +1,57 @@ | |||
# einkaufszettel | |||
This README outlines the details of collaborating on this Ember application. | |||
A short introduction of this app could easily go here. | |||
## Prerequisites | |||
You will need the following things properly installed on your computer. | |||
* [Git](https://git-scm.com/) | |||
* [Node.js](https://nodejs.org/) (with npm) | |||
* [Ember CLI](https://ember-cli.com/) | |||
* [Google Chrome](https://google.com/chrome/) | |||
## Installation | |||
* `git clone <repository-url>` this repository | |||
* `cd einkaufszettel` | |||
* `npm install` | |||
## Running / Development | |||
* `ember serve` | |||
* Visit your app at [http://localhost:4200](http://localhost:4200). | |||
* Visit your tests at [http://localhost:4200/tests](http://localhost:4200/tests). | |||
### Code Generators | |||
Make use of the many generators for code, try `ember help generate` for more details | |||
### Running Tests | |||
* `ember test` | |||
* `ember test --server` | |||
### Linting | |||
* `npm run lint:hbs` | |||
* `npm run lint:js` | |||
* `npm run lint:js -- --fix` | |||
### Building | |||
* `ember build` (development) | |||
* `ember build --environment production` (production) | |||
### Deploying | |||
Specify what it takes to deploy your app. | |||
## Further Reading / Useful Links | |||
* [ember.js](https://emberjs.com/) | |||
* [ember-cli](https://ember-cli.com/) | |||
* Development Browser Extensions | |||
* [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi) | |||
* [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/) |
@@ -0,0 +1,12 @@ | |||
import Application from '@ember/application'; | |||
import Resolver from 'ember-resolver'; | |||
import loadInitializers from 'ember-load-initializers'; | |||
import config from './config/environment'; | |||
export default class App extends Application { | |||
modulePrefix = config.modulePrefix; | |||
podModulePrefix = config.podModulePrefix; | |||
Resolver = Resolver; | |||
} | |||
loadInitializers(App, config.modulePrefix); |
@@ -0,0 +1,25 @@ | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<meta charset="utf-8"> | |||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
<title>Einkaufszettel</title> | |||
<meta name="description" content=""> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
{{content-for "head"}} | |||
<link integrity="" rel="stylesheet" href="{{rootURL}}assets/vendor.css"> | |||
<link integrity="" rel="stylesheet" href="{{rootURL}}assets/einkaufszettel.css"> | |||
{{content-for "head-footer"}} | |||
</head> | |||
<body> | |||
{{content-for "body"}} | |||
<script src="{{rootURL}}assets/vendor.js"></script> | |||
<script src="{{rootURL}}assets/einkaufszettel.js"></script> | |||
{{content-for "body-footer"}} | |||
</body> | |||
</html> |
@@ -0,0 +1,10 @@ | |||
import EmberRouter from '@ember/routing/router'; | |||
import config from './config/environment'; | |||
export default class Router extends EmberRouter { | |||
location = config.locationType; | |||
rootURL = config.rootURL; | |||
} | |||
Router.map(function() { | |||
}); |
@@ -0,0 +1,5 @@ | |||
{{!-- The following component displays Ember's default welcome message. --}} | |||
<WelcomePage /> | |||
{{!-- Feel free to remove this! --}} | |||
{{outlet}} |
@@ -0,0 +1,51 @@ | |||
'use strict'; | |||
module.exports = function(environment) { | |||
let ENV = { | |||
modulePrefix: 'einkaufszettel', | |||
environment, | |||
rootURL: '/', | |||
locationType: 'auto', | |||
EmberENV: { | |||
FEATURES: { | |||
// Here you can enable experimental features on an ember canary build | |||
// e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true | |||
}, | |||
EXTEND_PROTOTYPES: { | |||
// Prevent Ember Data from overriding Date.parse. | |||
Date: false | |||
} | |||
}, | |||
APP: { | |||
// Here you can pass flags/options to your application instance | |||
// when it is created | |||
} | |||
}; | |||
if (environment === 'development') { | |||
// ENV.APP.LOG_RESOLVER = true; | |||
// ENV.APP.LOG_ACTIVE_GENERATION = true; | |||
// ENV.APP.LOG_TRANSITIONS = true; | |||
// ENV.APP.LOG_TRANSITIONS_INTERNAL = true; | |||
// ENV.APP.LOG_VIEW_LOOKUPS = true; | |||
} | |||
if (environment === 'test') { | |||
// Testem prefers this... | |||
ENV.locationType = 'none'; | |||
// keep test console output quieter | |||
ENV.APP.LOG_ACTIVE_GENERATION = false; | |||
ENV.APP.LOG_VIEW_LOOKUPS = false; | |||
ENV.APP.rootElement = '#ember-testing'; | |||
ENV.APP.autoboot = false; | |||
} | |||
if (environment === 'production') { | |||
// here you can enable a production-specific feature | |||
} | |||
return ENV; | |||
}; |
@@ -0,0 +1,6 @@ | |||
{ | |||
"application-template-wrapper": false, | |||
"default-async-observers": true, | |||
"jquery-integration": false, | |||
"template-only-glimmer-components": true | |||
} |
@@ -0,0 +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 | |||
}; |
@@ -0,0 +1,24 @@ | |||
'use strict'; | |||
const EmberApp = require('ember-cli/lib/broccoli/ember-app'); | |||
module.exports = function(defaults) { | |||
let app = new EmberApp(defaults, { | |||
// Add options here | |||
}); | |||
// Use `app.import` to add additional libraries to the generated | |||
// output files. | |||
// | |||
// If you need to use different assets in different | |||
// environments, specify an object as the first parameter. That | |||
// object's keys should be the environment name and the values | |||
// should be the asset to use in that environment. | |||
// | |||
// If the library that you are including contains AMD or ES6 | |||
// modules that you would like to import into your application | |||
// please specify an object with the list of modules as keys | |||
// along with the exports of each module as its value. | |||
return app.toTree(); | |||
}; |
@@ -0,0 +1,60 @@ | |||
{ | |||
"name": "einkaufszettel", | |||
"version": "0.0.0", | |||
"private": true, | |||
"description": "Small description for einkaufszettel goes here", | |||
"repository": "", | |||
"license": "MIT", | |||
"author": "", | |||
"directories": { | |||
"doc": "doc", | |||
"test": "tests" | |||
}, | |||
"scripts": { | |||
"build": "ember build --environment=production", | |||
"lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*", | |||
"lint:hbs": "ember-template-lint .", | |||
"lint:js": "eslint .", | |||
"start": "ember serve", | |||
"test": "npm-run-all lint:* test:*", | |||
"test:ember": "ember test" | |||
}, | |||
"devDependencies": { | |||
"@ember/optional-features": "^1.3.0", | |||
"@glimmer/component": "^1.0.0", | |||
"@glimmer/tracking": "^1.0.0", | |||
"babel-eslint": "^10.1.0", | |||
"broccoli-asset-rev": "^3.0.0", | |||
"ember-auto-import": "^1.5.3", | |||
"ember-cli": "~3.18.0", | |||
"ember-cli-app-version": "^3.2.0", | |||
"ember-cli-babel": "^7.19.0", | |||
"ember-cli-dependency-checker": "^3.2.0", | |||
"ember-cli-htmlbars": "^4.3.1", | |||
"ember-cli-inject-live-reload": "^2.0.2", | |||
"ember-cli-sri": "^2.1.1", | |||
"ember-cli-uglify": "^3.0.0", | |||
"ember-data": "~3.18.0", | |||
"ember-export-application-global": "^2.0.1", | |||
"ember-fetch": "^8.0.1", | |||
"ember-load-initializers": "^2.1.1", | |||
"ember-maybe-import-regenerator": "^0.1.6", | |||
"ember-qunit": "^4.6.0", | |||
"ember-resolver": "^8.0.0", | |||
"ember-source": "~3.18.0", | |||
"ember-template-lint": "^2.6.0", | |||
"ember-welcome-page": "^4.0.0", | |||
"eslint": "^6.8.0", | |||
"eslint-plugin-ember": "^8.4.0", | |||
"eslint-plugin-node": "^11.1.0", | |||
"loader.js": "^4.7.0", | |||
"npm-run-all": "^4.1.5", | |||
"qunit-dom": "^1.2.0" | |||
}, | |||
"engines": { | |||
"node": "10.* || >= 12" | |||
}, | |||
"ember": { | |||
"edition": "octane" | |||
} | |||
} |
@@ -0,0 +1,3 @@ | |||
# http://www.robotstxt.org | |||
User-agent: * | |||
Disallow: |
@@ -0,0 +1,27 @@ | |||
'use strict'; | |||
module.exports = { | |||
test_page: 'tests/index.html?hidepassed', | |||
disable_watching: true, | |||
launch_in_ci: [ | |||
'Chrome' | |||
], | |||
launch_in_dev: [ | |||
'Chrome' | |||
], | |||
browser_start_timeout: 120, | |||
browser_args: { | |||
Chrome: { | |||
ci: [ | |||
// --no-sandbox is needed when running Chrome inside a container | |||
process.env.CI ? '--no-sandbox' : null, | |||
'--headless', | |||
'--disable-dev-shm-usage', | |||
'--disable-software-rasterizer', | |||
'--mute-audio', | |||
'--remote-debugging-port=0', | |||
'--window-size=1440,900' | |||
].filter(Boolean) | |||
} | |||
} | |||
}; |
@@ -0,0 +1,33 @@ | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<meta charset="utf-8"> | |||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
<title>Einkaufszettel Tests</title> | |||
<meta name="description" content=""> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
{{content-for "head"}} | |||
{{content-for "test-head"}} | |||
<link rel="stylesheet" href="{{rootURL}}assets/vendor.css"> | |||
<link rel="stylesheet" href="{{rootURL}}assets/einkaufszettel.css"> | |||
<link rel="stylesheet" href="{{rootURL}}assets/test-support.css"> | |||
{{content-for "head-footer"}} | |||
{{content-for "test-head-footer"}} | |||
</head> | |||
<body> | |||
{{content-for "body"}} | |||
{{content-for "test-body"}} | |||
<script src="/testem.js" integrity=""></script> | |||
<script src="{{rootURL}}assets/vendor.js"></script> | |||
<script src="{{rootURL}}assets/test-support.js"></script> | |||
<script src="{{rootURL}}assets/einkaufszettel.js"></script> | |||
<script src="{{rootURL}}assets/tests.js"></script> | |||
{{content-for "body-footer"}} | |||
{{content-for "test-body-footer"}} | |||
</body> | |||
</html> |
@@ -0,0 +1,8 @@ | |||
import Application from '../app'; | |||
import config from '../config/environment'; | |||
import { setApplication } from '@ember/test-helpers'; | |||
import { start } from 'ember-qunit'; | |||
setApplication(Application.create(config.APP)); | |||
start(); |