Added basic selection logic

This commit is contained in:
Moritz Kröger 2017-08-10 23:14:45 +02:00
parent 7e62c42e00
commit 4337f05763
22 changed files with 8438 additions and 437 deletions

View file

@ -22,7 +22,10 @@ module.exports = {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src')
'@': resolve('src'),
'#': resolve(''),
'styles': resolve('src/styles'),
'node_modules': resolve('node_modules')
}
},
module: {
@ -46,6 +49,10 @@ module.exports = {
loader: 'babel-loader',
include: [resolve('src'), resolve('test')]
},
{
test: /\.json$/,
loader: 'json-loader'
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',

View file

@ -15,28 +15,33 @@
},
"dependencies": {
"vue": "^2.3.3",
"vue-router": "^2.3.1"
"vue-router": "^2.3.1",
"vuex": "^2.3.1"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"sw-precache-webpack-plugin": "^0.11.4",
"babel-eslint": "^7.1.1",
"babel-loader": "^7.1.1",
"babel-plugin-istanbul": "^4.1.1",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"babel-register": "^6.22.0",
"chai": "^3.5.0",
"chalk": "^2.0.1",
"chromedriver": "^2.27.2",
"connect-history-api-fallback": "^1.3.0",
"copy-webpack-plugin": "^4.0.1",
"cross-env": "^5.0.1",
"cross-spawn": "^5.0.1",
"css-loader": "^0.28.0",
"cssnano": "^3.10.0",
"eslint": "^3.19.0",
"eslint-config-standard": "^6.2.1",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-html": "^3.1.0",
"eslint-config-standard": "^6.2.1",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^2.0.1",
"eventsource-polyfill": "^0.9.6",
@ -46,8 +51,8 @@
"friendly-errors-webpack-plugin": "^1.1.3",
"html-webpack-plugin": "^2.28.0",
"http-proxy-middleware": "^0.17.3",
"webpack-bundle-analyzer": "^2.2.1",
"cross-env": "^5.0.1",
"inject-loader": "^3.0.0",
"json-loader": "^0.5.7",
"karma": "^1.4.1",
"karma-coverage": "^1.1.1",
"karma-mocha": "^1.3.0",
@ -59,31 +64,31 @@
"karma-webpack": "^2.0.2",
"lolex": "^2.0.0",
"mocha": "^3.2.0",
"chai": "^3.5.0",
"sinon": "^2.1.0",
"sinon-chai": "^2.8.0",
"inject-loader": "^3.0.0",
"babel-plugin-istanbul": "^4.1.1",
"phantomjs-prebuilt": "^2.1.14",
"chromedriver": "^2.27.2",
"cross-spawn": "^5.0.1",
"nightwatch": "^0.9.12",
"selenium-server": "^3.0.1",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"node-sass": "^4.5.3",
"normalize.css": "^7.0.0",
"opn": "^5.1.0",
"optimize-css-assets-webpack-plugin": "^2.0.0",
"ora": "^1.2.0",
"phantomjs-prebuilt": "^2.1.14",
"rimraf": "^2.6.0",
"sass-loader": "^6.0.6",
"selenium-server": "^3.0.1",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"sinon": "^2.1.0",
"sinon-chai": "^2.8.0",
"sw-precache-webpack-plugin": "^0.11.4",
"uglify-es": "^3.0.25",
"url-loader": "^0.5.8",
"vue-loader": "^12.1.0",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.3.3",
"webpack": "^2.6.1",
"webpack-bundle-analyzer": "^2.2.1",
"webpack-dev-middleware": "^1.10.0",
"webpack-hot-middleware": "^2.18.0",
"webpack-merge": "^4.1.0",
"uglify-es": "^3.0.25"
"webpack-merge": "^4.1.0"
},
"engines": {
"node": ">= 4.0.0",

View file

@ -1,54 +0,0 @@
<template>
<div id="app">
<header>
<span>Vue.js PWA</span>
</header>
<main>
<img src="./assets/logo.png" alt="Vue.js PWA">
<router-view></router-view>
</main>
</div>
</template>
<script>
export default {
name: 'app'
}
</script>
<style>
body {
margin: 0;
}
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
color: #2c3e50;
}
main {
text-align: center;
margin-top: 40px;
}
header {
margin: 0;
height: 56px;
padding: 0 16px 0 24px;
background-color: #35495E;
color: #ffffff;
}
header span {
display: block;
position: relative;
font-size: 20px;
line-height: 1;
letter-spacing: .02em;
font-weight: 400;
box-sizing: border-box;
padding-top: 16px;
}
</style>

33
src/app/app.vue Normal file
View file

@ -0,0 +1,33 @@
<template>
<div id="app">
<main>
<router-view></router-view>
</main>
</div>
</template>
<script>
export default {
name: 'Eur-O-Mat'
}
</script>
<style lang="scss">
@import "~node_modules/normalize.css/normalize";
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
body {
margin: 0;
}
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
</style>

View file

@ -0,0 +1,79 @@
<template>
<section class="euromat">
<header>
<span>{{ currentThesis + 1 }}/{{ thesesCount }}</span>
<progress :value="currentThesis + 1" :max="thesesCount">
{{ currentThesis }}
</progress>
<h1 class="thesis">{{ thesisTitle }}</h1>
</header>
<div class="euromat-controls">
<button type="button" @click="submitAnswer(optionSkip)">
{{ optionSkip.label }}
</button>
<ul class="euromat-btns">
<li v-for="option in options" v-if="option.position !== 'skipped'">
<button type="button" @click="submitAnswer(option)">
{{ option.label }}
</button>
</li>
</ul>
</div>
</section>
</template>
<script>
import { getAllOptions, getThesis, getThesesCount } from '@/utils/data'
export default {
name: 'EuroMat',
data () {
return {
currentThesis: 0,
thesesCount: getThesesCount(),
options: getAllOptions(),
answers: []
}
},
computed: {
thesisTitle () {
if (this.currentThesis === this.thesesCount) {
return
}
return getThesis(this.currentThesis).thesis
},
optionSkip () {
return this.options[this.options.length - 1]
}
},
methods: {
submitAnswer (option) {
if (!option) {
return console.warn('Invalid answer')
}
if (this.currentThesis === this.thesesCount - 1) {
this.forwardToResults()
}
const thesis = getThesis(this.currentThesis)
this.answers.push({ thesis, option })
this.currentThesis += 1
},
forwardToResults () {
localStorage.setItem('results', JSON.stringify(this.answers, null, 2))
this.$router.push({ path: 'ergebnisse' })
}
}
}
</script>
<style lang="scss" scoped>
.euromat-btns {
list-style: none;
display: flex;
}
</style>

1
src/app/euromat/index.js Normal file
View file

@ -0,0 +1 @@
export { default as routes } from './routes'

View file

@ -0,0 +1,9 @@
import EuroMat from './components/euromat'
export default [
{
path: '/',
name: 'euromat',
component: EuroMat
}
]

View file

@ -0,0 +1,26 @@
<template>
<section>
<router-link :to="{ path: '/' }">
Zurück
</router-link>
<code>{{ results }}</code>
</section>
</template>
<script>
export default {
name: 'Results',
data () {
return {
results: {}
}
},
mounted () {
this.results = JSON.parse(localStorage.getItem('results'))
}
}
</script>
<style lang="scss" scoped></style>

1
src/app/results/index.js Normal file
View file

@ -0,0 +1 @@
export { default as routes } from './routes'

View file

@ -0,0 +1,9 @@
import Results from './components/results'
export default [
{
path: '/ergebnisse',
name: 'results',
component: Results
}
]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

View file

@ -1,52 +0,0 @@
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<h2>Essential Links</h2>
<ul>
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
<li><a href="https://gitter.im/vuejs/vue" target="_blank" rel="noopener">Gitter Chat</a></li>
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
<li><a href="http://vuejs-templates.github.io/webpack/" target="_blank" rel="noopener">Docs for This Template</a></li>
</ul>
<h2>Ecosystem</h2>
<ul>
<li><a href="http://router.vuejs.org/" target="_blank" rel="noopener">vue-router</a></li>
<li><a href="http://vuex.vuejs.org/" target="_blank" rel="noopener">vuex</a></li>
<li><a href="http://vue-loader.vuejs.org/" target="_blank" rel="noopener">vue-loader</a></li>
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
</ul>
</div>
</template>
<script>
export default {
name: 'hello',
data () {
return {
msg: 'Welcome to Your Vue.js PWA'
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style>
h1, h2 {
font-weight: normal;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #35495E;
}
</style>

View file

@ -1,265 +0,0 @@
const options = [
{
position: 'positive',
id: 0,
label: 'Ich stimme zu'
},
{
position: 'neutral',
id: 1,
label: 'Neutral'
},
{
position: 'negative',
id: 2,
label: 'Ich bin dagegen'
}
]
const parties = [
{
name: 'Christlich Demokratische Union Deutschlands',
token: 'CDU',
id: 0
},
{
name: 'Sozialdemokratische Partei Deutschlands',
token: 'SPD',
id: 1
},
{
name: 'Die Linke',
token: 'LINKE',
id: 2
},
{
name: 'Bündnis 90/Die Grünen',
token: 'GRÜNE',
id: 3
},
{
name: 'Freie Demokratische Partei',
token: 'FDP',
id: 4
},
{
name: 'Alternative für Deutschland',
token: 'AfD',
id: 5
}
]
const theses = [
{
id: 0,
thesis:
'Zur Stärkung des Euro sollte eine gemeinsame Wirtschaftspolitik für die Eurozone unter Leitung eines europäischen Ministers eingeführt werden.'
},
{
id: 1,
thesis:
'Die Abgeordneten des Europäischen Parlaments sollen nach einem einheitlichen Wahlrecht über transnationale Listen gewählt werden.'
},
{
id: 2,
thesis:
'Das Europäische Parlament sollte das Recht bekommen, eigene Gesetzesvorschläge zu machen.'
},
{
id: 3,
thesis:
'Änderungen an den europäischen Verträgen und andere grundlegenden Entscheidungen sollten in Zukunft über einen Volksentscheid auf europäischer Ebene beschlossen werden.'
},
{
id: 4,
thesis:
'Die Hürde für europäische Bürgerinitiativen soll von 1 Million auf 500.000 Unterschriften gesenkt werden.'
},
{
id: 5,
thesis:
'Einflussnahme auf europäische Gesetze soll durch ein Lobbyregister transparenter gemacht werden.'
},
{
id: 6,
thesis:
'Die Europäische Kommission sollte verkleinert werden und besser durch das Parlament kontrolliert werden.'
},
{
id: 7,
thesis:
'Es sollte in Deutschland ein Referendum über die EU-Mitgliedschaft geben.'
},
{
id: 8,
thesis:
'Im Sinne des Subsidiaritätsprinzips sollten nationale Parlamente ein stärkeres Mitspracherecht in der europäischen Gesetzgebung erhalten.'
},
{
id: 9,
thesis:
'Die EU hat zu viele Aufgaben übernommen, die besser von den nationalen Parlamenten geregelt werden sollten.'
},
{
id: 10,
thesis:
'Es sollte auch ausnahmsweise keine Grenzkontrollen im Schengen-Raum geben.'
},
{
id: 11,
thesis:
'Deutschland soll sich für die Einführung eines gemeinsamen Asyl-Systems mit Verteilungsschlüssel auf EU-Ebene einsetzen.'
},
{
id: 12,
thesis:
'Alle Mitgliedstaaten sollten einen größeren Beitrag zum Schutz der EU-Außengrenzen leisten und ein eigenständig wirksamer europäischer Grenzschutz ausgebaut werden.'
},
{
id: 13,
thesis:
'Es sollte ein gemeinsamer europäischer Geheimdienst zur effektiveren Terrorismusbekämpfung aufgebaut werden.'
},
{
id: 14,
thesis:
'Die EU soll sich gemeinsam gegen internationale Cyber-Angriffe und Fake News mit einer Spezialeinheit zur Wehr setzen.'
},
{ id: 15, thesis: 'Die EU soll keine weiteren Flüchtlinge mehr aufnehmen.' },
{
id: 16,
thesis:
'Die EU sollte mehr Geld zur weltweiten Bekämpfung von Hunger und Armut und Fluchtursachen ausgeben.'
},
{
id: 17,
thesis:
'Es sollte in der EU mehr Abstimmung bei Rüstungsexporten in Drittländer geben.'
},
{
id: 18,
thesis:
'Deutschland soll sich für einen gemeinsamen EU-Sitz im UN-Sicherheitsrat einsetzen.'
},
{ id: 19, thesis: 'Die EU soll keine neuen Mitgliedstaaten aufnehmen.' },
{
id: 20,
thesis:
'Langfristig sollten die EU-Mitgliedstaaten ihre Streitkräfte zu einer europäischen Armee vereinen.'
},
{
id: 21,
thesis:
'Die EU sollte auf globaler Ebene aktiver für ihre gemeinsamen Werte eintreten.'
},
{
id: 22,
thesis:
'Auf europäischer Ebene sollte eine CO2-Steuer eingeführt werden die zur Finanzierung des EU-Haushaltes beiträgt.'
},
{
id: 23,
thesis:
'Die Bundesregierung sollte sich für ein europaweites Mitspracherecht bei dem Bau neuer Atomkraftwerke einsetzen.'
},
{
id: 24,
thesis:
'Es sollte auf europäischer Ebene ein eigenes Förderprogramm für regenerative Energien geben.'
},
{
id: 25,
thesis:
'Die Bundesregierung sollte sich für ein europaweites Verbot von Fracking (Schiefergasbohrungen) einsetzen.'
},
{
id: 26,
thesis:
'Die EU sollte sich global für hohe Umwelt- und Sozialstandards und fairen Handel einsetzen.'
},
{
id: 27,
thesis:
'Die EU sollte mehr Geld in Bildung und Zukunftstechnologien und weniger in Agrarförderung investieren.'
},
{
id: 28,
thesis: 'Es sollten europaweit angemessene Mindestlöhne eingeführt werden.'
},
{
id: 29,
thesis:
'Es sollte europaweit einen einheitlichen Unternehmenssteuersatz geben und gegen Steuervermeidung durch international tätige Unternehmen sollte stärker vorgegangen werden.'
},
{
id: 30,
thesis:
'Freihandelsabkommen sollten allein durch das Europäische Parlament ratifiziert werden.'
},
{
id: 31,
thesis:
'Die EU soll zum Schutz vor unrechtmäßiger Konkurrenz einheimischer Produkte und Unternehmen verstärkt Zölle erheben.'
},
{
id: 32,
thesis:
'Die Staaten der Eurozone sollten gemeinsam Kredite aufnehmen können für die sie gemeinsam haften (Eurobonds).'
},
{
id: 33,
thesis:
'Die Nichteinhaltung europäischer Rechtsstandards sollte durch Kürzung von Fördermitteln sanktioniert werden.'
},
{
id: 34,
thesis:
'Es sollte eine gemeinsame Arbeitslosenversicherung auf europäischer Ebene geben.'
},
{
id: 35,
thesis:
'Auf europäischer Ebene sollte der Fokus auf Investitionen anstatt auf Schuldenabbau liegen.'
},
{
id: 36,
thesis:
'Die EU sollte verstärkt in Elektromobilität und ein engmaschiges Netz an Ladestationen in ganz Europa investieren.'
},
{
id: 37,
thesis:
'Es sollte ein Europakunde-Fach eingeführt werden welches in ganz Europa nach einem einheitlichen Lehrplan unterrichtet wird.'
},
{
id: 38,
thesis:
'Es sollte einen gesamteuropäischen Feiertag zur Einheit Europas geben.'
},
{
id: 39,
thesis:
'Die EU sollte weitere Barrieren für GründerInnen abbauen um ein attraktives Klima für innovative Start-Ups in Europa zu schaffen.'
},
{
id: 40,
thesis:
'Zur interkulturellen Verständigung sollte die EU allen 18-jährigen EuropäerInnen eine Interrailkarte finanzieren.'
},
{
id: 41,
thesis:
'Arbeitslose EU-Bürger sollten eine EU-finanzierte Starthilfe bekommen, wenn sie in einem anderen Land einen Job suchen bzw. annehmen wollen.'
},
{
id: 42,
thesis:
'Deutschland soll sich für eine rasche Umsetzung eines digitalen Binnenmarktes einsetzen, in dem Daten so frei verkehren können, wie es für Personen, Waren, Dienstleistungen und Kapital bereits der Fall ist.'
}
]
export default {
options,
parties,
theses
}

View file

@ -1,33 +0,0 @@
import isInteger from '@/utils/isInteger'
import { options, parties, theses } from './data'
export const getOption = position =>
options.find(o => o.position === position)
export const getThesis = id =>
theses.find(t => t.id === id).thesis
export const getParty = token => {
const property = isInteger(token) ? 'id' : 'token'
return parties.find(p => p[property] === token)
}
export const createThesisGroup = (thesis, parties = []) => (
{
thesis,
parties: parties.map(({ token, position }) =>
Object.assign({}, getParty(token), { position }))
}
)
export const getThesesTree = () =>
[
createThesisGroup(getThesis(0), [
{ token: 'CDU', position: 'positive' },
{ token: 'SPD', position: 'neutral' },
{ token: 'GRÜNE', position: 'neutral' },
{ token: 'LINKE', position: 'negative' },
{ token: 'FDP', position: 'neutral' },
{ token: 'AfD', position: 'neutral' }
])
]

22
src/data/options.json Normal file
View file

@ -0,0 +1,22 @@
[
{
"position": "positive",
"id": 0,
"label": "Ich stimme zu"
},
{
"position": "neutral",
"id": 1,
"label": "Neutral"
},
{
"position": "negative",
"id": 2,
"label": "Ich bin dagegen"
},
{
"position": "skipped",
"id": 3,
"label": "Thesis überspringen"
}
]

1334
src/data/parties.json Normal file

File diff suppressed because it is too large Load diff

174
src/data/theses.json Normal file
View file

@ -0,0 +1,174 @@
[
{
"id": 0,
"thesis": "Zur Stärkung des Euro sollte eine gemeinsame Wirtschaftspolitik für die Eurozone unter Leitung eines europäischen Ministers eingeführt werden."
},
{
"id": 1,
"thesis": "Die Abgeordneten des Europäischen Parlaments sollen nach einem einheitlichen Wahlrecht über transnationale Listen gewählt werden."
},
{
"id": 2,
"thesis": "Das Europäische Parlament sollte das Recht bekommen, eigene Gesetzesvorschläge zu machen."
},
{
"id": 3,
"thesis": "Änderungen an den europäischen Verträgen und andere grundlegenden Entscheidungen sollten in Zukunft über einen Volksentscheid auf europäischer Ebene beschlossen werden."
},
{
"id": 4,
"thesis": "Die Hürde für europäische Bürgerinitiativen soll von 1 Million auf 500.000 Unterschriften gesenkt werden."
},
{
"id": 5,
"thesis": "Einflussnahme auf europäische Gesetze soll durch ein Lobbyregister transparenter gemacht werden."
},
{
"id": 6,
"thesis": "Die Europäische Kommission sollte verkleinert werden und besser durch das Parlament kontrolliert werden."
},
{
"id": 7,
"thesis": "Es sollte in Deutschland ein Referendum über die EU-Mitgliedschaft geben."
},
{
"id": 8,
"thesis": "Im Sinne des Subsidiaritätsprinzips sollten nationale Parlamente ein stärkeres Mitspracherecht in der europäischen Gesetzgebung erhalten."
},
{
"id": 9,
"thesis": "Die EU hat zu viele Aufgaben übernommen, die besser von den nationalen Parlamenten geregelt werden sollten."
},
{
"id": 10,
"thesis": "Es sollte auch ausnahmsweise keine Grenzkontrollen im Schengen-Raum geben."
},
{
"id": 11,
"thesis": "Deutschland soll sich für die Einführung eines gemeinsamen Asyl-Systems mit Verteilungsschlüssel auf EU-Ebene einsetzen."
},
{
"id": 12,
"thesis": "Alle Mitgliedstaaten sollten einen größeren Beitrag zum Schutz der EU-Außengrenzen leisten und ein eigenständig wirksamer europäischer Grenzschutz ausgebaut werden."
},
{
"id": 13,
"thesis": "Es sollte ein gemeinsamer europäischer Geheimdienst zur effektiveren Terrorismusbekämpfung aufgebaut werden."
},
{
"id": 14,
"thesis": "Die EU soll sich gemeinsam gegen internationale Cyber-Angriffe und Fake News mit einer Spezialeinheit zur Wehr setzen."
},
{
"id": 15,
"thesis": "Die EU soll keine weiteren Flüchtlinge mehr aufnehmen."
},
{
"id": 16,
"thesis": "Die EU sollte mehr Geld zur weltweiten Bekämpfung von Hunger und Armut und Fluchtursachen ausgeben."
},
{
"id": 17,
"thesis": "Es sollte in der EU mehr Abstimmung bei Rüstungsexporten in Drittländer geben."
},
{
"id": 18,
"thesis": "Deutschland soll sich für einen gemeinsamen EU-Sitz im UN-Sicherheitsrat einsetzen."
},
{
"id": 19,
"thesis": "Die EU soll keine neuen Mitgliedstaaten aufnehmen."
},
{
"id": 20,
"thesis": "Langfristig sollten die EU-Mitgliedstaaten ihre Streitkräfte zu einer europäischen Armee vereinen."
},
{
"id": 21,
"thesis": "Die EU sollte auf globaler Ebene aktiver für ihre gemeinsamen Werte eintreten."
},
{
"id": 22,
"thesis": "Auf europäischer Ebene sollte eine CO2-Steuer eingeführt werden die zur Finanzierung des EU-Haushaltes beiträgt."
},
{
"id": 23,
"thesis": "Die Bundesregierung sollte sich für ein europaweites Mitspracherecht bei dem Bau neuer Atomkraftwerke einsetzen."
},
{
"id": 24,
"thesis": "Es sollte auf europäischer Ebene ein eigenes Förderprogramm für regenerative Energien geben."
},
{
"id": 25,
"thesis": "Die Bundesregierung sollte sich für ein europaweites Verbot von Fracking (Schiefergasbohrungen) einsetzen."
},
{
"id": 26,
"thesis": "Die EU sollte sich global für hohe Umwelt- und Sozialstandards und fairen Handel einsetzen."
},
{
"id": 27,
"thesis": "Die EU sollte mehr Geld in Bildung und Zukunftstechnologien und weniger in Agrarförderung investieren."
},
{
"id": 28,
"thesis": "Es sollten europaweit angemessene Mindestlöhne eingeführt werden."
},
{
"id": 29,
"thesis": "Es sollte europaweit einen einheitlichen Unternehmenssteuersatz geben und gegen Steuervermeidung durch international tätige Unternehmen sollte stärker vorgegangen werden."
},
{
"id": 30,
"thesis": "Freihandelsabkommen sollten allein durch das Europäische Parlament ratifiziert werden."
},
{
"id": 31,
"thesis": "Die EU soll zum Schutz vor unrechtmäßiger Konkurrenz einheimischer Produkte und Unternehmen verstärkt Zölle erheben."
},
{
"id": 32,
"thesis": "Die Staaten der Eurozone sollten gemeinsam Kredite aufnehmen können für die sie gemeinsam haften (Eurobonds)."
},
{
"id": 33,
"thesis": "Die Nichteinhaltung europäischer Rechtsstandards sollte durch Kürzung von Fördermitteln sanktioniert werden."
},
{
"id": 34,
"thesis": "Es sollte eine gemeinsame Arbeitslosenversicherung auf europäischer Ebene geben."
},
{
"id": 35,
"thesis": "Auf europäischer Ebene sollte der Fokus auf Investitionen anstatt auf Schuldenabbau liegen."
},
{
"id": 36,
"thesis": "Die EU sollte verstärkt in Elektromobilität und ein engmaschiges Netz an Ladestationen in ganz Europa investieren."
},
{
"id": 37,
"thesis": "Es sollte ein Europakunde-Fach eingeführt werden welches in ganz Europa nach einem einheitlichen Lehrplan unterrichtet wird."
},
{
"id": 38,
"thesis": "Es sollte einen gesamteuropäischen Feiertag zur Einheit Europas geben."
},
{
"id": 39,
"thesis": "Die EU sollte weitere Barrieren für GründerInnen abbauen um ein attraktives Klima für innovative Start-Ups in Europa zu schaffen."
},
{
"id": 40,
"thesis": "Zur interkulturellen Verständigung sollte die EU allen 18-jährigen EuropäerInnen eine Interrailkarte finanzieren."
},
{
"id": 41,
"thesis": "Arbeitslose EU-Bürger sollten eine EU-finanzierte Starthilfe bekommen, wenn sie in einem anderen Land einen Job suchen bzw. annehmen wollen."
},
{
"id": 42,
"thesis": "Deutschland soll sich für eine rasche Umsetzung eines digitalen Binnenmarktes einsetzen, in dem Daten so frei verkehren können, wie es für Personen, Waren, Dienstleistungen und Kapital bereits der Fall ist."
}
]

View file

@ -1,7 +1,5 @@
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import App from '@/app/app'
import router from './router'
Vue.config.productionTip = false

View file

@ -1,15 +1,15 @@
import Vue from 'vue'
import Router from 'vue-router'
import Hello from '@/components/Hello'
import { routes as euromat } from '@/app/euromat'
import { routes as results } from '@/app/results'
Vue.use(Router)
export default new Router({
mode: 'hash',
routes: [
{
path: '/',
name: 'Hello',
component: Hello
}
...euromat,
...results
]
})

18
src/utils/data.js Normal file
View file

@ -0,0 +1,18 @@
import options from '@/data/options'
import theses from '@/data/theses'
import parties from '@/data/parties'
export const getOption = position =>
options.find(o => o.position === position)
export const getAllOptions = () =>
options
export const getThesis = id =>
theses.find(t => t.id === id)
export const getThesesCount = () =>
theses.length
export const getParty = token =>
parties.find(p => p.token === token)

View file

@ -1,5 +0,0 @@
module.exports = Number.isInteger || function (value) {
return typeof value === 'number' &&
isFinite(value) &&
Math.floor(value) === value
}

6694
yarn.lock Normal file

File diff suppressed because it is too large Load diff