presentation version
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
import JSONAPIAdapter from '@ember-data/adapter/json-api';
|
||||
|
||||
export default class ApplicationAdapter extends JSONAPIAdapter {
|
||||
namespace = 'api';
|
||||
|
||||
buildURL(...args) {
|
||||
return `${super.buildURL(...args)}.json`;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
<button type="button">
|
||||
<img ...attributes>
|
||||
</button>
|
||||
@@ -0,0 +1,18 @@
|
||||
import Component from '@glimmer/component';
|
||||
import { tracked } from '@glimmer/tracking';
|
||||
import { action } from '@ember/object';
|
||||
|
||||
export default class BildComponent extends Component {
|
||||
|
||||
@tracked isLarge = false;
|
||||
@tracked selected = false;
|
||||
|
||||
@action toggleSize() {
|
||||
this.isLarge = !this.isLarge;
|
||||
}
|
||||
|
||||
@action select()
|
||||
{
|
||||
this.selected = !this.selected
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,4 @@
|
||||
<h1 class="kategorie">{{@titel}}</h1>
|
||||
<div class="kategorie">
|
||||
<h1 class="kategorie">{{@titel}}</h1>
|
||||
{{yield}}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
+11
-10
@@ -1,11 +1,12 @@
|
||||
<article class="kategorie">
|
||||
<image src={{@produkt.bild}} alt="Ein Bild von {{@produkt.titel}}"/>
|
||||
<div class="details">
|
||||
<button type="button" class="produkt {{if this.isSelected "selected"}}" {{on "click" (fn this.toggleSelection @produkt.titel)}}>
|
||||
<img src={{@produkt.bild}} alt="Ein Bild von {{@produkt.titel}}"/>
|
||||
<div class="detail">
|
||||
<h3>{{@produkt.titel}}</h3>
|
||||
<div class="detail owner">
|
||||
<span>Menge:</span> {{@produkt.menge}}{{@produkt.einheit}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</article>
|
||||
<ul class="details">
|
||||
<li class="detail"><h4>Menge:</h4> {{@produkt.menge}}{{@produkt.einheit}}</li>
|
||||
<!--<li class="detail"><h4>this.ex:</h4> {{this.ex}}</li>
|
||||
<li class="detail"><h4>this.prodn:</h4> {{this.prodn}}</li>
|
||||
<li class="detail"><h4>produkt count:</h4> {{this.count}}</li>-->
|
||||
</ul>
|
||||
</div>
|
||||
</button>
|
||||
@@ -0,0 +1,77 @@
|
||||
import Component from '@glimmer/component';
|
||||
import { action } from '@ember/object';
|
||||
import { tracked } from '@glimmer/tracking';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ProduktController extends Component {
|
||||
@tracked isLarge = false;
|
||||
@tracked isSelected = false;
|
||||
@tracked ex = false;
|
||||
@tracked isSet = false;
|
||||
@tracked prodn = "test";
|
||||
@tracked count = 0;
|
||||
|
||||
@service store;
|
||||
|
||||
@action toggleSize()
|
||||
{
|
||||
this.isLarge = !this.isLarge;
|
||||
}
|
||||
|
||||
@action toggleSelection(produktname)
|
||||
{
|
||||
this.isSelected = !this.isSelected;
|
||||
this.setStatus(produktname);
|
||||
}
|
||||
|
||||
@action getStatus(produktname)
|
||||
{
|
||||
this.prodn = produktname;
|
||||
|
||||
this.store.findAll('produkt')
|
||||
.then(function(suchergebnis)
|
||||
{
|
||||
|
||||
suchergebnis.forEach(element => {
|
||||
if(element.titel==produktname)
|
||||
{
|
||||
this.exists = true;
|
||||
this.isSelected = element.getStatus().isSelected;
|
||||
this.ex = true;
|
||||
}
|
||||
});
|
||||
|
||||
if(!this.exists)
|
||||
{
|
||||
this.isSelected = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
setStatus(produktname)
|
||||
{
|
||||
|
||||
//schreibt den aktuellen Zustand in den store
|
||||
let suchergebnis = this.get('store').query('produkt', {
|
||||
filter: {
|
||||
titel: produktname
|
||||
}});
|
||||
|
||||
this.prodn = suchergebnis.titel;
|
||||
|
||||
|
||||
count = suchergebnisse.titel;
|
||||
this.prodn = element.titel;
|
||||
suchergebnisse.forEach(element => {
|
||||
this.prodn = element.titel;
|
||||
count++;
|
||||
|
||||
if(element.titel === produktname)
|
||||
{
|
||||
this.prodn = produktname;
|
||||
element.isSelected = this.isSelected;
|
||||
this.isSet = !this.isSet;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{{#if this.isSelected}}
|
||||
<button type="button" class="rezept selected" {{on "click" this.toggleSelection}}>
|
||||
<span><img src={{@rezept.bild}} alt="Ein Bild von {{@rezept.titel}}"/></span>
|
||||
<span>
|
||||
|
||||
<div class="detail">
|
||||
<h3>{{@rezept.titel}}</h3>
|
||||
<ul class="details">
|
||||
<li class="detail"><h4>Zutaten:</h4>{{#each @rezept.produkte as |produkt|}}
|
||||
{{produkt.attributes.titel}},
|
||||
{{/each}}Gewürze</li>
|
||||
<li class="detail"><h4>Personen:</h4>{{@rezept.personen}}</li>
|
||||
<li class="detail"><h4>Dauer:</h4>{{@rezept.dauer}}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
{{else}}
|
||||
<button type="button" class="rezept" {{on "click" this.toggleSelection}}>
|
||||
<span><img src={{@rezept.bild}} alt="Ein Bild von {{@rezept.titel}}"/></span>
|
||||
<span>
|
||||
|
||||
<div class="detail">
|
||||
<h3>{{@rezept.titel}}</h3>
|
||||
<ul class="details">
|
||||
<li class="detail"><h4>Zutaten:</h4>{{#each @rezept.produkte as |produkt|}}
|
||||
{{produkt.attributes.titel}},
|
||||
{{/each}}Gewürze</li>
|
||||
<li class="detail"><h4>Personen:</h4>{{@rezept.personen}} </li>
|
||||
<li class="detail"><h4>Dauer:</h4>{{@rezept.dauer}}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
import Component from '@glimmer/component';
|
||||
import { action } from '@ember/object';
|
||||
import { tracked } from '@glimmer/tracking';
|
||||
|
||||
export default class RezeptController extends Component {
|
||||
@tracked isLarge = false;
|
||||
@tracked isSelected = false;
|
||||
|
||||
@action toggleSize()
|
||||
{
|
||||
this.isLarge = !this.isLarge;
|
||||
}
|
||||
|
||||
@action toggleSelection()
|
||||
{
|
||||
this.isSelected = !this.isSelected;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
import DS from 'ember-data';
|
||||
|
||||
export default DS.Store.extend({
|
||||
});
|
||||
@@ -0,0 +1,16 @@
|
||||
import Model, { attr } from '@ember-data/model';
|
||||
|
||||
export default class ProduktModel extends Model {
|
||||
@attr titel;
|
||||
@attr isSelected;
|
||||
@attr kategorie;
|
||||
@attr menge;
|
||||
@attr einheit;
|
||||
@attr bild;
|
||||
|
||||
|
||||
get status()
|
||||
{
|
||||
return `${this.titel} ${this.IsSelected}`
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import Model, { attr, hasMany } from '@ember-data/model';
|
||||
|
||||
export default class RezeptModel extends Model {
|
||||
@attr titel;
|
||||
@attr isSelected;
|
||||
@attr ('string') beschreibung;
|
||||
@attr kategorie;
|
||||
@hasMany('produkt') produkte;
|
||||
@attr gewuerze;
|
||||
@attr personen;
|
||||
@attr dauer;
|
||||
@attr bild;
|
||||
|
||||
get status()
|
||||
{
|
||||
return `${this.titel} ${this.IsSelected}`
|
||||
}
|
||||
}
|
||||
|
||||
+10
-2
@@ -1,4 +1,5 @@
|
||||
import Route from '@ember/routing/route';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
const PRODUKT_KATEGORIEN = [
|
||||
'Pasta',
|
||||
@@ -7,8 +8,15 @@ const PRODUKT_KATEGORIEN = [
|
||||
'Fleisch'
|
||||
];
|
||||
|
||||
export default class IndexRoute extends Route {
|
||||
export default class ProduktRoute extends Route {
|
||||
|
||||
@service store;
|
||||
|
||||
async model() {
|
||||
return this.store.findAll('produkt');
|
||||
}
|
||||
}
|
||||
/*async model() {
|
||||
let response = await fetch('/api/produkte.json');
|
||||
let { data } = await response.json();
|
||||
|
||||
@@ -27,4 +35,4 @@ export default class IndexRoute extends Route {
|
||||
return { kategorie, ...attributes };
|
||||
});
|
||||
}
|
||||
}
|
||||
}*/
|
||||
@@ -0,0 +1,46 @@
|
||||
import Route from '@ember/routing/route';
|
||||
import Component from '@glimmer/component';
|
||||
import { tracked } from '@glimmer/tracking';
|
||||
import { action } from '@ember/object';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
const REZEPT_KATEGORIEN = [
|
||||
'Pasta',
|
||||
'Schwein',
|
||||
'Soße',
|
||||
'Fleisch',
|
||||
'Geflügel',
|
||||
'Rind',
|
||||
'Nachspeise',
|
||||
'Backen'
|
||||
];
|
||||
|
||||
export default class RezeptRoute extends Route{
|
||||
|
||||
@service store;
|
||||
|
||||
async model() {
|
||||
return this.store.findAll('rezept');
|
||||
}
|
||||
}
|
||||
|
||||
/*async model() {
|
||||
let response = await fetch('/api/rezepte.json');
|
||||
let { data } = await response.json();
|
||||
|
||||
return data.map(model => {
|
||||
let { attributes } = model;
|
||||
let kategorie;
|
||||
|
||||
if (REZEPT_KATEGORIEN.includes(attributes.kategorie)) {
|
||||
kategorie = attributes.kategorie;
|
||||
}
|
||||
else
|
||||
{
|
||||
kategorie = 'Sonstiges';
|
||||
}
|
||||
|
||||
return { kategorie, ...attributes };
|
||||
});
|
||||
}
|
||||
}*/
|
||||
@@ -0,0 +1,11 @@
|
||||
import Route from '@ember/routing/route';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ProduktRoute extends Route {
|
||||
|
||||
@service store;
|
||||
|
||||
async model() {
|
||||
return this.store.findAll('produkt');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
import JSONAPISerializer from '@ember-data/serializer/json-api';
|
||||
|
||||
export default class ApplicationSerializer extends JSONAPISerializer {
|
||||
}
|
||||
+412
-118
@@ -174,6 +174,12 @@ p {
|
||||
margin-top: -10px;
|
||||
}
|
||||
|
||||
.resultsProdukt {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.results li {
|
||||
list-style: none;
|
||||
padding: 10px 15px;
|
||||
@@ -196,10 +202,7 @@ p {
|
||||
.jumbo {
|
||||
padding: 50px;
|
||||
background: #f6f6f6;
|
||||
}
|
||||
|
||||
.jumbo:hover {
|
||||
background-color: #f3f3f3;
|
||||
|
||||
}
|
||||
|
||||
.jumbo h2 {
|
||||
@@ -220,76 +223,81 @@ p {
|
||||
}
|
||||
|
||||
/**
|
||||
* Individual kategorie Listing
|
||||
* Individual rezept Listing
|
||||
*/
|
||||
.rezept label span {
|
||||
font-size: 140%;
|
||||
margin: 50px auto 20px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.kategorie {
|
||||
.rezept input {
|
||||
padding: 11px;
|
||||
font-size: 18px;
|
||||
width: 500px;
|
||||
margin: 20px auto 50px;
|
||||
background-color: rgba(255, 255, 255, 0.75);
|
||||
border: solid 1px lightgray;
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
.rezept {
|
||||
margin-top: 15px;
|
||||
background-color: #f6f6f6;
|
||||
background-color: white;
|
||||
padding: 20px 25px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
border: #677ae4;
|
||||
border-width: 15px;
|
||||
}
|
||||
|
||||
.kategorie:hover {
|
||||
.rezept.selected{
|
||||
border: #016aba;
|
||||
border-width: 7px;
|
||||
border-style: solid;
|
||||
border-radius: 5px;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.rezept:hover {
|
||||
border: #016aba;
|
||||
border-width: 2px;
|
||||
border-style: solid;
|
||||
border-radius: 5px;
|
||||
font-size: 100%;
|
||||
}
|
||||
.rezept.selected:hover {
|
||||
background-color: #f3f3f3;
|
||||
border-width: 5px;
|
||||
}
|
||||
|
||||
.kategorie img {
|
||||
.rezept img {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.kategorie .image {
|
||||
.rezept .image {
|
||||
flex-grow: 0;
|
||||
flex-basis: 150px;
|
||||
margin: 20px 25px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.kategorie button.image {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
background: transparent;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.kategorie button.image:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.kategorie button.image:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: -1;
|
||||
margin: -20px;
|
||||
padding: 20px;
|
||||
border-radius: 5px;
|
||||
background: #016aba;
|
||||
opacity: 0;
|
||||
transition: opacity 0.25s ease-in-out;
|
||||
}
|
||||
|
||||
.kategorie button.image:focus:after, .kategorie button.image:hover:after {
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
.kategorie .image img {
|
||||
.rezept .image img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.kategorie .image.large {
|
||||
.rezept .image.large {
|
||||
margin: 30px 25px 50px 25px;
|
||||
flex-basis: 100%;
|
||||
}
|
||||
|
||||
.kategorie .image small {
|
||||
.rezept .image small {
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
margin-bottom: -15px;
|
||||
@@ -300,12 +308,369 @@ p {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.kategorie .image.large small {
|
||||
.rezept .image.large small {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 0px;
|
||||
font-size: 110%;
|
||||
}
|
||||
|
||||
.rezept .details {
|
||||
flex-basis: 50%;
|
||||
flex-grow: 2;
|
||||
display: flex;
|
||||
height: 150px;
|
||||
margin: 20px 25px;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
align-content: space-around;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.rezept h3 {
|
||||
flex-basis: 100%;
|
||||
}
|
||||
|
||||
.rezept h3 a {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.rezept .detail {
|
||||
flex-basis: 50%;
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
white-space: pre-wrap ;
|
||||
text-align: center;
|
||||
}
|
||||
.rezept .detail h3 h4{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.rezept .detail span {
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.rezept .bild span {
|
||||
width: 50;
|
||||
}
|
||||
|
||||
.rezept .map {
|
||||
flex-grow: 0;
|
||||
flex-basis: 150px;
|
||||
font-size: 0;
|
||||
margin: 0px 25px;
|
||||
}
|
||||
|
||||
.rezept .map img {
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
.rezept.detailed {
|
||||
background: none;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.rezept.detailed .image {
|
||||
flex-basis: 320px;
|
||||
}
|
||||
|
||||
.rezept.detailed .image.large {
|
||||
margin: 30px 25px 50px 25px;
|
||||
flex-basis: 100%;
|
||||
}
|
||||
|
||||
.rezept.detailed .details {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.rezept.detailed h3 {
|
||||
font-size: 200%;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.rezept.detailed .detail {
|
||||
margin: 5px 0px;
|
||||
flex-basis: 100%;
|
||||
flex-shrink: 2;
|
||||
}
|
||||
|
||||
.rezept.detailed .description {
|
||||
white-space: normal;
|
||||
flex-basis: 100%;
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
.rezept.detailed .map {
|
||||
flex-basis: 100%;
|
||||
margin: 50px 25px 25px 25px;
|
||||
}
|
||||
|
||||
.rezept.detailed .map img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 919px) {
|
||||
.rezept.detailed .image, .rezept.detailed .image.large {
|
||||
margin: 30px 25px 25px 25px;
|
||||
flex-basis: 100%;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.rezept.detailed .image:hover {
|
||||
flex-basis: 100%;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.rezept.detailed .image small {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rezept.detailed button.image:hover:after {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.rezept.detailed button.image:focus:after {
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
.rezept.detailed .map {
|
||||
margin-top: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Individual produkt Listing
|
||||
*/
|
||||
.produkt label span {
|
||||
font-size: 140%;
|
||||
margin: 50px auto 20px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.produkt input {
|
||||
padding: 11px;
|
||||
font-size: 18px;
|
||||
width: 500px;
|
||||
margin: 20px auto 50px;
|
||||
background-color: rgba(255, 255, 255, 0.75);
|
||||
border: solid 1px lightgray;
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
.produkt {
|
||||
margin: 15px;
|
||||
background-color: white;
|
||||
padding: 20px 25px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
flex-wrap: wrap;
|
||||
width:20%;
|
||||
border: none;
|
||||
|
||||
}
|
||||
|
||||
.produkt.selected{
|
||||
border: #016aba;
|
||||
border-width: 7px;
|
||||
border-style: solid;
|
||||
border-radius: 5px;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.produkt:hover {
|
||||
border: #016aba;
|
||||
border-width: 2px;
|
||||
border-style: solid;
|
||||
border-radius: 5px;
|
||||
font-size: 100%;
|
||||
}
|
||||
.produkt.selected:hover {
|
||||
background-color: #f3f3f3;
|
||||
border-width:5px;
|
||||
}
|
||||
|
||||
.produkt img {
|
||||
border-radius: 5px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.produkt .image {
|
||||
flex-grow: 0;
|
||||
flex-basis: 150px;
|
||||
margin: 20px 25px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.produkt .image img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.produkt .image.large {
|
||||
margin: 30px 25px 50px 25px;
|
||||
flex-basis: 100%;
|
||||
}
|
||||
|
||||
.produkt .image small {
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
margin-bottom: -15px;
|
||||
text-align: center;
|
||||
color: #016aba;
|
||||
|
||||
/* This is needed to fix a safari clipping issue */
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.produkt .image.large small {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 0px;
|
||||
font-size: 110%;
|
||||
}
|
||||
|
||||
.produkt .details {
|
||||
flex-basis: 50%;
|
||||
flex-grow: 2;
|
||||
display: flex;
|
||||
height: 150px;
|
||||
margin: 20px 25px;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
align-content: space-around;
|
||||
text-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.produkt h3 {
|
||||
flex-basis: 100%;
|
||||
}
|
||||
|
||||
.produkt h3 a {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.produkt .detail {
|
||||
flex-basis: 50%;
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
white-space: pre-wrap;
|
||||
text-align: center;
|
||||
flex: auto;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.produkt .detail span {
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.produkt .map {
|
||||
flex-grow: 0;
|
||||
flex-basis: 150px;
|
||||
font-size: 0;
|
||||
margin: 0px 25px;
|
||||
}
|
||||
|
||||
.produkt .map img {
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
.produkt.detailed {
|
||||
background: none;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.produkt.detailed .image {
|
||||
flex-basis: 320px;
|
||||
}
|
||||
|
||||
.produkt.detailed .image.large {
|
||||
margin: 30px 25px 50px 25px;
|
||||
flex-basis: 100%;
|
||||
}
|
||||
|
||||
.produkt.detailed .details {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.produkt.detailed h3 {
|
||||
font-size: 200%;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.produkt.detailed .detail {
|
||||
margin: 5px 0px;
|
||||
flex-basis: 100%;
|
||||
flex-shrink: 2;
|
||||
}
|
||||
|
||||
.produkt.detailed .description {
|
||||
white-space: normal;
|
||||
flex-basis: 100%;
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
.produkt.detailed .map {
|
||||
flex-basis: 100%;
|
||||
margin: 50px 25px 25px 25px;
|
||||
}
|
||||
|
||||
.produkt.detailed .map img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 919px) {
|
||||
.produkt.detailed .image, .produkt.detailed .image.large {
|
||||
margin: 30px 25px 25px 25px;
|
||||
flex-basis: 100%;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.produkt.detailed .image:hover {
|
||||
flex-basis: 100%;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.produkt.detailed .image small {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.produkt.detailed button.image:hover:after {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.produkt.detailed button.image:focus:after {
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
.produkt.detailed .map {
|
||||
margin-top: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Individual kategorie Listing
|
||||
*/
|
||||
|
||||
.kategorie {
|
||||
margin-top: 15px;
|
||||
background-color: #f6f6f6;
|
||||
padding: 20px 25px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
/**align-items: center;*/
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.kategorie .details {
|
||||
flex-basis: 50%;
|
||||
flex-grow: 2;
|
||||
@@ -337,32 +702,11 @@ p {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.kategorie .map {
|
||||
flex-grow: 0;
|
||||
flex-basis: 150px;
|
||||
font-size: 0;
|
||||
margin: 0px 25px;
|
||||
}
|
||||
|
||||
.kategorie .map img {
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
.kategorie.detailed {
|
||||
background: none;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.kategorie.detailed .image {
|
||||
flex-basis: 320px;
|
||||
}
|
||||
|
||||
.kategorie.detailed .image.large {
|
||||
margin: 30px 25px 50px 25px;
|
||||
flex-basis: 100%;
|
||||
}
|
||||
|
||||
.kategorie.detailed .details {
|
||||
height: auto;
|
||||
}
|
||||
@@ -384,45 +728,6 @@ p {
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
.kategorie.detailed .map {
|
||||
flex-basis: 100%;
|
||||
margin: 50px 25px 25px 25px;
|
||||
}
|
||||
|
||||
.kategorie.detailed .map img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 919px) {
|
||||
.kategorie.detailed .image, .kategorie.detailed .image.large {
|
||||
margin: 30px 25px 25px 25px;
|
||||
flex-basis: 100%;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.kategorie.detailed .image:hover {
|
||||
flex-basis: 100%;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.kategorie.detailed .image small {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.kategorie.detailed button.image:hover:after {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.kategorie.detailed button.image:focus:after {
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
.kategorie.detailed .map {
|
||||
margin-top: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Utilities
|
||||
*/
|
||||
@@ -447,17 +752,6 @@ p {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tomster {
|
||||
background: url(../assets/images/teaching-tomster.png);
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
|
||||
position: relative;
|
||||
top: -25px;
|
||||
}
|
||||
|
||||
.screen-reader{
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
|
||||
@@ -6,14 +6,48 @@
|
||||
|
||||
<Kategorie @titel={{"Gemüse"}}>
|
||||
<div class="rentals">
|
||||
<ul class="results">
|
||||
<ul class="resultsProdukt">
|
||||
{{#each @model as |produkt|}}
|
||||
{{#if (compare produkt.titel '===' 'Gemüse')}}
|
||||
<li><Produkt @produkt={{produkt}} /></li>
|
||||
{{#if (compare produkt.kategorie '===' 'Gemüse')}}
|
||||
<Produkt @produkt={{produkt}} />
|
||||
{{/if}}
|
||||
<li><Produkt @produkt={{produkt}} /></li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</Kategorie>
|
||||
|
||||
<Kategorie @titel={{"Milchprodukte"}}>
|
||||
<div class="rentals">
|
||||
<ul class="resultsProdukt">
|
||||
{{#each @model as |produkt|}}
|
||||
{{#if (compare produkt.kategorie '===' 'Milchprodukte')}}
|
||||
<Produkt @produkt={{produkt}} />
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</Kategorie>
|
||||
|
||||
<Kategorie @titel={{"Fleisch"}}>
|
||||
<div class="rentals">
|
||||
<ul class="resultsProdukt">
|
||||
{{#each @model as |produkt|}}
|
||||
{{#if (compare produkt.kategorie '===' 'Fleisch')}}
|
||||
<span><Produkt @produkt={{produkt}} /></span>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</Kategorie>
|
||||
|
||||
<Kategorie @titel={{"Pasta"}}>
|
||||
<div class="rentals">
|
||||
<ul class="resultsProdukt">
|
||||
{{#each @model as |produkt|}}
|
||||
{{#if (compare produkt.kategorie '===' 'Pasta')}}
|
||||
<Produkt @produkt={{produkt}} />
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</Kategorie>
|
||||
|
||||
+77
-29
@@ -4,38 +4,86 @@
|
||||
<LinkTo @route="rezepte" class="button">Rezepte bearbeiten</LinkTo>
|
||||
</Jumbo>
|
||||
|
||||
<div class="kategorie">
|
||||
<h2>Pasta</h2>
|
||||
{{yield}}
|
||||
</div>
|
||||
<Kategorie @titel={{"Pasta"}}>
|
||||
<div class="rentals">
|
||||
<ul class="results">
|
||||
{{#each @model as |rezept|}}
|
||||
{{#if (compare rezept.kategorie '===' 'Pasta')}}
|
||||
<li><Rezept class="detail" @rezept={{rezept}} /></li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</Kategorie>
|
||||
|
||||
<div class="kategorie">
|
||||
<h2>Gemüse</h2>
|
||||
{{yield}}
|
||||
</div>
|
||||
<Kategorie @titel={{"Gemüse"}}>
|
||||
<div class="rentals">
|
||||
<ul class="results">
|
||||
{{#each @model as |rezept|}}
|
||||
{{#if (compare rezept.kategorie '===' 'Gemüse')}}
|
||||
<li><Rezept @rezept={{rezept}} /></li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</Kategorie>
|
||||
|
||||
<div class="kategorie">
|
||||
<h2>Geflügel</h2>
|
||||
{{yield}}
|
||||
</div>
|
||||
<Kategorie @titel={{"Geflügel"}}>
|
||||
<div class="rentals">
|
||||
<ul class="results">
|
||||
{{#each @model as |rezept|}}
|
||||
{{#if (compare rezept.kategorie '===' 'Geflügel')}}
|
||||
<li><Rezept @rezept={{rezept}} /></li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</Kategorie>
|
||||
|
||||
<div class="kategorie">
|
||||
<h2>Rind</h2>
|
||||
{{yield}}
|
||||
</div>
|
||||
<Kategorie @titel={{"Rind"}}>
|
||||
<div class="rentals">
|
||||
<ul class="results">
|
||||
{{#each @model as |rezept|}}
|
||||
{{#if (compare rezept.kategorie '===' 'Rind')}}
|
||||
<li><Rezept @rezept={{rezept}} /></li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</Kategorie>
|
||||
|
||||
<div class="kategorie">
|
||||
<h2>Schwein</h2>
|
||||
{{yield}}
|
||||
</div>
|
||||
<Kategorie @titel={{"Schwein"}}>
|
||||
<div class="rentals">
|
||||
<ul class="results">
|
||||
{{#each @model as |rezept|}}
|
||||
{{#if (compare rezept.kategorie '===' 'Schwein')}}
|
||||
<li><Rezept @rezept={{rezept}} /></li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</Kategorie>
|
||||
|
||||
<div class="kategorie">
|
||||
<h2>Nachspeise</h2>
|
||||
{{yield}}
|
||||
</div>
|
||||
<Kategorie @titel={{"Nachspeise"}}>
|
||||
<div class="rentals">
|
||||
<ul class="results">
|
||||
{{#each @model as |rezept|}}
|
||||
{{#if (compare rezept.kategorie '===' 'Nachspeise')}}
|
||||
<li><Rezept @rezept={{rezept}} /></li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</Kategorie>
|
||||
|
||||
<div class="kategorie">
|
||||
<h2>Backen</h2>
|
||||
{{yield}}
|
||||
</div>
|
||||
|
||||
<Kategorie @titel={{"Backen"}}>
|
||||
<div class="rentals">
|
||||
<ul class="results">
|
||||
{{#each @model as |rezept|}}
|
||||
{{#if (compare rezept.kategorie '===' 'Backen')}}
|
||||
<li><Rezept @rezept={{rezept}} /></li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</Kategorie>
|
||||
|
||||
@@ -4,7 +4,14 @@
|
||||
<LinkTo @route="zettel" class="button">Zettel aktualisieren</LinkTo>
|
||||
</Jumbo>
|
||||
|
||||
<div class="zettel">
|
||||
{{yield}}
|
||||
</div>
|
||||
|
||||
<Kategorie @titel={{"mein Zettel"}}>
|
||||
<div class="rentals">
|
||||
<ul class="results">
|
||||
{{#each @model as |produkt|}}
|
||||
{{#if produkt.isSelected}}
|
||||
<li><Rezept @zettel={{produkt}} /></li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</Kategorie>
|
||||
Reference in New Issue
Block a user