Compare commits

...

2 commits

Author SHA1 Message Date
fc586002d1 Outro erweitert und um Personenhinweise ergänzt 2020-11-10 16:11:36 +01:00
38a2325afc Outro hinzugefügt 2020-11-10 15:48:08 +01:00
6 changed files with 106 additions and 21 deletions

View file

@ -7,7 +7,4 @@
<script src=/DragDropTouch.js></script>
<script src=/src/index.js type=module></script>
<div class=wrapper></div>
<aside>
<a href="https://git.adrianheine.de/adrian/coding-precarity">git</a>
</aside>
</html>

View file

@ -149,6 +149,13 @@ export class Display {
);
target.appendChild(field)
if (state.items.filter(i => i.state != 'face-up').length == 0) {
const a = document.createElement('a')
a.className = 'continue'
a.innerText = 'fertig'
a.href = '/end'
target.appendChild(a)
}
if (state.show !== null) {
const data = state.items[state.show]
const name = data.name
@ -166,6 +173,9 @@ export class Display {
`)
target.appendChild(wrapper)
}
if (state.special) {
target.appendChild(modal(state.special))
}
const dd = new diffDOM.DiffDOM()
const diff = dd.diff(this.target, target)

View file

@ -1,5 +1,5 @@
import {Display} from './display.js'
import intro from './intro.js'
import {intro, outro, sources} from './texts.js'
const state = {items: [], show: null, links: [] }
@ -21,6 +21,13 @@ class Actions {
}
reset() {
state.show = null
state.special = null
}
end() {
state.special = outro
}
sources() {
state.special = sources
}
link(from, to) {
if (from == to) return false
@ -38,9 +45,11 @@ const dispatch = target => {
if (target.action) {
ret = actions[target.action](target.from, target.to)
} else {
const match = target.match(/\/([^/]+)\/([^/]+)/)
if (match && Object.hasOwnProperty.call(Actions.prototype, match[2])) {
const match = target.match(/\/([^/]+)(?:\/([^/]+))?/)
if (match && match.length > 1 && Object.hasOwnProperty.call(Actions.prototype, match[2])) {
ret = actions[match[2]](match[1])
} else if (match&& Object.hasOwnProperty.call(Actions.prototype, match[1])) {
ret = actions[match[1]]()
} else actions.reset()
}
display.render(state)

View file

@ -1,7 +0,0 @@
export default `<h1>Memory des Prekariats.</h1>
<p>
Unsichere Arbeits- und Lebensverhältnisse haben viele Gesichter. In diesem Spiel ist es eure Aufgabe, ihr geteiltes Leid aufzudecken. Klickt dafür auf die Symbole und lernt die historischen und heutigen Figuren des Prekariats kennen. Durch das Zusammenziehen der Kreise entdeckt ihr, was die Vergangenheit mit der Gegenwart verknüpft.
</p>
<p>
Ein Netzwerk der Prekären entsteht.
</p>`

45
src/texts.js Normal file
View file

@ -0,0 +1,45 @@
export const intro = `
<h1>Memory des Prekariats.</h1>
<p>
Unsichere Arbeits- und Lebensverhältnisse haben viele Gesichter. In diesem Spiel ist es eure Aufgabe, ihr geteiltes Leid aufzudecken. Klickt dafür auf die Symbole und lernt die historischen und heutigen Figuren des Prekariats kennen. Durch das Zusammenziehen der Kreise entdeckt ihr, was die Vergangenheit mit der Gegenwart verknüpft.
</p>
<p>
Ein Netzwerk der Prekären entsteht.
</p>`
export const outro = `<blockquote>Aufgrund dieser Konkurrenz, die mitunter genauso rüde ist wie diejenige der Unternehmen untereinander, kommt es zu einem regelrechten Kampf aller gegen alle, der sämtliche Werte der Solidarität und Menschlichkeit zunichte macht, [...].</blockquote>
<p>Bourdieu, Pierre (1998): <span class=work>Prekarität ist überall.</span> In: <span class=work>Gegenfeuer. Wortmeldungen im Dienste des Widerstands gegen die neoliberale Invasion.</span> Konstanz.</p>
<div style="text-align: center">
<h1>Memory des Prekariats.</h1>
<p>Ein Projekt von</p><p>Isabell von Falkenhausen<br>Adrian Heine<br>Roman Huber</p>
<p>Im Rahmen des Hackathon</p><p><a href=https://blog.sbb.berlin/hackathonsbb-coding-precarity/>Coding Precarity</a><br>der Staatsbibliothek zu Berlin</p>
<p>Quelltext: <a href="https://git.adrianheine.de/adrian/coding-precarity">git</a></p>
<p><a href=/sources>Hinweise und Textquellen</a></p>
</div>
`
export const sources = `<p>Die im Spiel gezeigten Figuren sind keine real existierenden Personen. Ihre Geschichten basieren jedoch auf historischen Texten sowie zeitgenössischen Studien und Berichten. Im Folgenden können Sie die Textenquellen, der jeweiligen Figuren einsehen.</p>
<div class=sources>
Gretchen: <a href="https://digital.staatsbibliothek-berlin.de/werkansicht?PPN=PPN827659040&PHYSID=PHYS_0020&DMDID=">1</a>
Rehka: <a href="https://bangladesch.org/bangladesch/wirtschaft-und-armut/textilindustrie/textilarbeiterinnen-in-bangladesch.html">1</a>
Wiebke: <a href="https://digital.staatsbibliothek-berlin.de/werkansicht?PPN=PPN1700627007&PHYSID=PHYS_0071&DMDID=DMDLOG_0003">1</a>
Julius: <a href="https://www.zeit.de/karriere/beruf/2016-05/theater-burnout-schauspieler-arbeit-kuenstler-darsteller-arbeitsbedingungen">1</a>, <a href="https://www.zeit.de/karriere/beruf/2016-06/selbststaendigkeit-freiberufler-soziale-absicherung">2</a>
Karlotta: <a href="https://digital.staatsbibliothek-berlin.de/werkansicht?PPN=PPN1702861805&PHYSID=PHYS_0337&DMDID=DMDLOG_0016">1</a>
Tobias: <a href="https://archiv.streikrecht-ist-grundrecht.de/sites/streikrecht-ist-grundrecht.de/files/VortragNowakFachtagDiakonieLeipzig.pdf">1</a>, <a href="https://frausofa.wordpress.com/2020/02/15/pflegefachkraefte-sind-keine-batmen/">2</a>
Martin: <a href="https://ffmdieunibrennt.files.wordpress.com/2012/08/reader_hochschuleimneoliberalismus.pdf">1</a>, <a href="https://www.jetzt.de/digital/unter-unbezahlt-berichten-wissenschaftler-von-ihrer-prekaeren-arbeitssituation">2</a>
Heinrich: <a href="https://digital.staatsbibliothek-berlin.de/werkansicht?PPN=PPN1701716860&PHYSID=PHYS_0036&DMDID=">1</a>
Jarosław: <a href="https://www.faire-mobilitaet.de/faelle/++co++242a1146-ce00-11e9-8d8b-52540088cada">1</a>, <a href="https://www.dw.com/de/saisonarbeiter-deutschland-nie-wieder/a-54341202">2</a>
Gertrude: <a href="https://digital.staatsbibliothek-berlin.de/werkansicht?PPN=PPN1713950367&PHYSID=PHYS_0008&DMDID=DMDLOG_0001">1</a>
Elena: <a href="https://taz.de/Corona-und-Prostitution/!5671919/">1</a>
Hans: <a href="https://digital.staatsbibliothek-berlin.de/werkansicht?PPN=PPN1701716860&PHYSID=PHYS_0036&DMDID=">1</a></div>`

View file

@ -13,8 +13,6 @@ body {
margin: 0;
font-family: "Fell";
hyphens: auto;
display: flex;
flex-direction: column;
height: 100%;
width: 100%;
}
@ -28,7 +26,6 @@ body {
position: relative;
box-sizing: border-box;
padding: 1em;
flex: 1;
}
.items {
@ -101,13 +98,15 @@ a.fullview {
max-width: 75vh;
background-color: #006680;
padding: 1em;
color: white;
border-radius: 20px;
border: 5px solid #1a1c1c;
box-sizing: border-box;
display: flex;
flex-direction: column;
}
.fullview > div, .fullview a {
color: white;
}
@media (max-width: 30em) {
.fullview > div {
padding: 0.5em;
@ -124,7 +123,7 @@ a.fullview {
box-sizing: border-box;
}
header {
header, .work {
font-family: "Fell Sc";
}
@ -167,6 +166,7 @@ blockquote {
quotes: "\201C""\201D""\2018""\2019";
/* Otherwise the :before is larger than the blockquote and creates a scrollbar in the parent */
min-height: 4em;
color: black;
}
blockquote:before {
color: #1a1c1c66;
@ -178,7 +178,38 @@ blockquote:before {
margin-top: 2.5rem;
}
aside {
float: right;
padding: 1em;
.continue {
position: absolute;
right: 0;
bottom: 0;
padding: 0.5rem 1rem;
font-size: 2rem;
border-radius: 20px;
margin: 0.5rem;
background: #D66C00;
border: 3px solid #1a1c1c;
display: block;
cursor: pointer;
transform: scale(1);
animation: pulse 1s infinite alternate;
text-decoration: none;
color: black;
}
@keyframes pulse {
from {
transform: scale(0.9);
}
to {
transform: scale(1);
}
}
.continue:hover {
background-color: #f39a3f;
animation: none;
}
.sources a {
font-family: Fell Sc;
}