/ M053 Course Detail List

Nummer Sprache Ort Datum Anmeldeschluss
8003-0100 D Morteratschgebiet GR 18.07. - 20.07.2017
Ausgebucht. Warteliste möglich.
08.05.2017
Preis Mitglied
CHF 1150
Preis Nichtmitglied
CHF 1270
Kursleiter
Grossen Martin
Unterkunft
Hütte
Verpflegung
Halbpension
Status
Ausgebucht. Warteliste möglich. Ausgebucht. Warteliste möglich.
8006-0200 F Morteratschgebiet GR 08.06. - 11.06.2017
Ausgebucht
21.02.2017
Preis Mitglied
CHF 1150
Preis Nichtmitglied
CHF 1270
Kursleiter
Grossen Martin
Unterkunft
Hütte
Verpflegung
Halbpension
Status
Ausgebucht Ausgebucht
8007-0300 F Morteratschgebiet GR 08.06. - 11.06.2017
Ausgebucht
21.02.2017
Preis Mitglied
CHF 1150
Preis Nichtmitglied
CHF 1270
Kursleiter
Grossen Martin
Unterkunft
Hütte
Verpflegung
Halbpension
Status
Ausgebucht Ausgebucht
Du kannst nur einen Kurs je Kategorie auswählen.

Data

{
	"translations": {
		"status": "Status"
	},
	"headColumnList": [
		"Nummer",
		"Sprache",
		"Ort",
		"Datum",
		"Anmeldeschluss"
	],
	"list": [
		{
			"nr": "8003-0100",
			"language": "D",
			"location": "Morteratschgebiet GR",
			"dateTimestamp": 1501263000,
			"dateFormatted": "18.07. - 20.07.2017",
			"closingDateTimestamp": 1501260000,
			"closingDateFormatted": "08.05.2017",
			"status": {
				"icons": {
					"vacant": "success",
					"waitlist": "exclamation-mark-in-circle",
					"full": "x-in-circle",
					"canceled": "x-in-circle",
					"ended": "forbidden",
					"external": "arrow-circle-right"
				},
				"status": "waitlist",
				"label": "Ausgebucht. Warteliste möglich."
			},
			"detailList": [
				{
					"label": "Preis Mitglied",
					"copy": "CHF 1150"
				},
				{
					"label": "Preis Nichtmitglied",
					"copy": "CHF 1270"
				},
				{
					"label": "Kursleiter",
					"copy": "Grossen Martin"
				},
				{
					"label": "Unterkunft",
					"copy": "Hütte"
				},
				{
					"label": "Verpflegung",
					"copy": "Halbpension"
				}
			],
			"checkoutLink": {
				"label": "Kurs auswählen",
				"url": "#"
			},
			"disabled": false,
			"disabledInfo": null,
			"isActive": true
		},
		{
			"nr": "8006-0200",
			"language": "F",
			"location": "Morteratschgebiet GR",
			"dateTimestamp": 1501261000,
			"dateFormatted": "08.06. - 11.06.2017",
			"closingDateTimestamp": 1501250000,
			"closingDateFormatted": "21.02.2017",
			"status": {
				"icons": {
					"vacant": "success",
					"waitlist": "exclamation-mark-in-circle",
					"full": "x-in-circle",
					"canceled": "x-in-circle",
					"ended": "forbidden",
					"external": "arrow-circle-right"
				},
				"status": "full",
				"label": "Ausgebucht"
			},
			"detailList": [
				{
					"label": "Preis Mitglied",
					"copy": "CHF 1150"
				},
				{
					"label": "Preis Nichtmitglied",
					"copy": "CHF 1270"
				},
				{
					"label": "Kursleiter",
					"copy": "Grossen Martin"
				},
				{
					"label": "Unterkunft",
					"copy": "Hütte"
				},
				{
					"label": "Verpflegung",
					"copy": "Halbpension"
				}
			],
			"checkoutLink": {
				"label": "Kurs auswählen",
				"url": "#",
				"target": "_blank"
			},
			"disabled": false,
			"disabledInfo": null
		},
		{
			"nr": "8007-0300",
			"language": "F",
			"location": "Morteratschgebiet GR",
			"dateTimestamp": 1501261000,
			"dateFormatted": "08.06. - 11.06.2017",
			"closingDateTimestamp": 1501250000,
			"closingDateFormatted": "21.02.2017",
			"status": {
				"icons": {
					"vacant": "success",
					"waitlist": "exclamation-mark-in-circle",
					"full": "x-in-circle",
					"canceled": "x-in-circle",
					"ended": "forbidden",
					"external": "arrow-circle-right"
				},
				"status": "full",
				"label": "Ausgebucht"
			},
			"detailList": [
				{
					"label": "Preis Mitglied",
					"copy": "CHF 1150"
				},
				{
					"label": "Preis Nichtmitglied",
					"copy": "CHF 1270"
				},
				{
					"label": "Kursleiter",
					"copy": "Grossen Martin"
				},
				{
					"label": "Unterkunft",
					"copy": "Hütte"
				},
				{
					"label": "Verpflegung",
					"copy": "Halbpension"
				}
			],
			"checkoutLink": {
				"label": "Kurs auswählen"
			},
			"disabled": true,
			"disabledInfo": "Du kannst nur einen Kurs je Kategorie auswählen."
		}
	]
}

Template

<div class="m-course-detail-list m-table m-table--vertical-only" data-init="CourseDetailList"{{{moduleAttributes this}}}>
	<table>
		<thead>
			<tr>
				{{#each headColumnList}}
					<th>{{{this}}}</th>
				{{/each}}
			</tr>
		</thead>
		<tbody>
			{{#each list as |course|}}
				<tr>
					<td>
						<a class="m-course-detail-list__toggle-button c-button-text c-button-text--red{{#if isActive}} is-active is-active-initially{{/if}}" href="#course-detail-list-{{nr}}" data-js-binding="CourseDetailList-toggle-button">
							<svg class="m-course-detail-list__toggle-icon m-course-detail-list__toggle-icon--expand svg">
								<use xlink:href="{{@root.global.svgSprite}}#icon-plus-in-circle"></use>
							</svg>
							<svg class="m-course-detail-list__toggle-icon m-course-detail-list__toggle-icon--collapse svg">
								<use xlink:href="{{@root.global.svgSprite}}#icon-minus-in-circle"></use>
							</svg>
							{{nr}}
						</a>
					</td>
					<td>{{language}}</td>
					<td>{{location}}</td>
					<td data-sort="{{dateTimestamp}}">{{dateFormatted}}</td>
					<td data-sort="{{closingDateTimestamp}}">
						<div class="m-course-detail-list__status-date-wrapper">
							<div class="m-course-detail-list__status-wrapper">
								{{>modules/c021_course_status/c021_course_status status small=true}}
							</div>
							{{closingDateFormatted}}
						</div>
					</td>
				</tr>
				<tr id="course-detail-list-{{nr}}">
					<td class="m-course-detail-list__details-row{{#if isActive}} is-active is-active-initially{{/if}}" colspan="5">
						<div class="m-course-detail-list__details-wrapper" data-js-binding="CourseDetailList-toggle-target">
							<dl class="m-course-detail-list__details">
								{{#each detailList}}
									<dt class="m-course-detail-list__details-label fs-copy-bold">{{label}}</dt>
									<dd class="m-course-detail-list__details-copy fs-copy">{{{copy}}}</dd>
								{{/each}}
								<dt class="m-course-detail-list__details-label m-course-detail-list__details-label--status fs-copy-bold">{{../translations.status}}</dt>
								<dd class="m-course-detail-list__details-copy m-course-detail-list__details-copy--status">
									{{>modules/c021_course_status/c021_course_status status small=true showLabel=true}}
								</dd>
							</dl>
							{{#if checkoutLink}}
								<div class="m-course-detail-list__select-row">
									{{#unless disabled}}
										<a class="m-course-detail-list__select-button c-button" href="{{checkoutLink.url}}"{{#if checkoutLink.target}} target="{{checkoutLink.target}}"{{/if}}>{{checkoutLink.label}}</a>
									{{else}}
										<div class="m-course-detail-list__select-button-wrapper">
											<button class="m-course-detail-list__select-button c-button" disabled>{{checkoutLink.label}}</button>
										</div>
										{{#if disabledInfo}}
											<div class="m-course-detail-list__disabled-info">
												<svg class="m-course-detail-list__disabled-info-icon svg">
													<use xlink:href="{{@root.global.svgSprite}}#icon-{{#if disabledInfoIcon}}{{disabledInfoIcon}}{{else}}exclamation-mark-in-circle{{/if}}"></use>
												</svg>
												{{disabledInfo}}
											</div>
										{{/if}}
									{{/unless}}
								</div>
							{{/if}}
						</div>
					</td>
				</tr>
			{{/each}}
		</tbody>
	</table>
</div>

Global Data

{
	"global": {
		"lang": "de",
		"locale": "de-CH",
		"svgSprite": "/assets/media/svg/svg-sprite.svg",
		"transparentPixel": "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
		"season": "summer",
		"api": {
			"suisseAlpine": "https://dev.suissealpine.sac-cas.ch/api",
			"sacRouteDetail": "https://dev.web.sac-cas.ch/de/?type=1567765346410&tx_usersaccas2020_sac2020[routeId]=",
			"sacRoutePassTrough": "https://dev.web.sac-cas.ch/de/?type=1567765346411&tx_usersaccas2020_sac2020[routeId]=",
			"uploadProfileImage": "https://dev.web.sac-cas.ch/?eID=routing&route=usersaccassite/users/current/uploadProfileImage",
			"deleteProfileImage": "https://dev.web.sac-cas.ch/?eID=routing&route=usersaccassite/users/current/deleteProfileImage",
			"aimeosShop": "https://dev.web.sac-cas.ch/de/shop/shopapi/",
			"mailchimpForm": "https://sac-cas.us2.list-manage.com/subscribe/post?u=466a37a029f12e4df9e7a2a1f&id=ee3f0f3cf3",
			"collections": "https://collectionsdev.web.sac-cas.ch/api",
			"hrs": "https://www.alpsonline.org/hut-web-service?wsdl"
		},
		"baseAimeosUploadPath": "https://dev.web.sac-cas.ch/uploads/tx_aimeos/",
		"mapIframeUrl": "/modules/m030_map/media/map_iframe.html",
		"baseDestinationLinkUrl": "/pages/destination_summit/destination_summit.html?",
		"destinationLinkRouteAnchor": "route",
		"baseJourneyLinkUrl": "https://dev.web.sac-cas.ch/de/redirect/google-maps-routing/lv03/",
		"routeCollectionLinkUrl": "https://dev.web.sac-cas.ch/de/mein-sac/uebersicht/",
		"hrsLinkUrl": "https://www.alpsonline.org/reservation/wizard?header=yes&hut_id={{hutId}}&selectedDate={{date}}",
		"schweizMobilImportUrl": "https://map.schweizmobil.ch/?showDialog=importcoordinates&showLogin&coordinates={{coordinates}}",
		"geologyImageUrl": "https://www.sac-cas.ch/fileadmin/Huetten_und_Touren/Tourenportal/Gesteinszonenkarten/Hovercard/{{image}}.jpg",
		"features": {
			"archive": true
		},
		"translations": {
			"disciplines": {
				"mountain_hiking": "Berg- und Alpinwandern",
				"alpine_tour": "Hochtour",
				"climbing": "Klettern",
				"alpine_climbing": "Alpinklettern",
				"via_ferrata": "Klettersteig",
				"ski_tour": "Skitour",
				"snowshoe_tour": "Schneeschuhtour",
				"archive": "Routenarchiv"
			},
			"types": {
				"summit": "Gipfel",
				"hut": "Hütte",
				"traverse": "Übergang",
				"marking_point": "Markanter Punkt",
				"departure_arrival": "Ausgangp./Talort",
				"climbing_area": "Klettergebiet"
			},
			"markingPoints": {
				"lake": "See",
				"catering": "Einkehr",
				"waterfall": "Wasserfall",
				"cave": "Höhle",
				"bridge": "Brücke",
				"alp": "Alpe",
				"other": "Sehenswürdigkeit"
			},
			"difficulties": {
				"alpine_tour": {
					"L": "L",
					"WS": "WS",
					"ZS": "ZS",
					"S": "S",
					"SS": "SS",
					"AS": "AS"
				},
				"ski_tour": {
					"L": "L",
					"WS": "WS",
					"ZS": "ZS",
					"S": "S",
					"SS": "SS",
					"AS": "AS"
				}
			},
			"altitudeSuffix": "m ü.M.",
			"altitudeDifferenceUnit": "hm",
			"hoursUnit": "h",
			"difficulty": "Schwierigkeit",
			"ascent": "Aufstieg",
			"descent": "Abstieg",
			"route": "Route",
			"routes": "Routen",
			"segment": "Routenabschnitt",
			"segments": "Routenabschnitte",
			"approach": "Zustieg",
			"approaches": "Zustiege",
			"sector": "Sektor",
			"sectors": "Sektoren",
			"hut": "Hütte",
			"hutPrivate": "Hütte Privat",
			"hutFilter": "Hüttenfinder",
			"situationWarning": "Zustandswarnung",
			"protectionRule": "Schutzbestimmung",
			"archiveRoute": "Archivroute",
			"archiveRoutes": "Archivrouten",
			"map": {
				"map": "Karte",
				"legend": "Legende",
				"zoomIn": "Reinzoomen",
				"zoomOut": "Rauszoomen",
				"enterFullscreenMode": "Vollbildmodus starten",
				"leaveFullscreenMode": "Vollbildmodus verlassen",
				"searchLabel": "Region, Gipfel, Hütte, Talort, POI, …",
				"disciplineSettings": "Disziplinen Einstellungen",
				"layerSettings": "Ergänzende Kartenebenen",
				"geolocate": "Lokalisieren",
				"searchInView": "In diesem Gebiet suchen",
				"waypointDrawing": "Auf Karte zeichnen",
				"drawWaypoints": "Route zeichnen",
				"removeWaypoints": "Route löschen",
				"exportWaypoints": "GPX downloaden",
				"saveInSchweizMobil": "Speichern|SchweizMobil Plus",
				"moreInFullscreen": "Entdecke weitere Funktionen auf der Vollbildkarte:<br>- Zeichne deine eigenen Tracks",
				"baseLayers": {
					"pois": "Tourenziele, Hütten",
					"routes": "Routen"
				},
				"additionalLayers": {
					"summer": "Sommer",
					"winter": "Winter",
					"hikingTrails": "Wanderwege",
					"closedHikingTrails": "Gesperrte Wanderwege",
					"wildlifeReserves": "Wildschutzgebiete",
					"skiTours": "swisstopo Skitouren",
					"designatedWildlifeAreas": "Wildruhezonen",
					"publicTransportStops": "ÖV-Stationen",
					"slopesOver30": "Hangneigung ab 30°",
					"protectionRules": "Schutzbestimmungen",
					"situationWarnings": "Zustandswarnungen",
					"geology": "Gesteinszonenkarte",
					"alpGuardDogs": "Herdenschutzhunde",
					"armyShooting": "Schiessanzeigen",
					"snowCover": "Schneeabdeckung",
					"snowDepth": "Schneehöhe"
				},
				"layerOpacity": "Deckkraft aktiver Karten",
				"foregroundOpacity": "Deckkraft aktiver Disziplinen und Hütten",
				"backgroundOpacity": "Deckkraft inaktiver Disziplinen und Hütten",
				"reset": "Zurücksetzen"
			},
			"mapHoverCard": {
				"publicTransport": "Öffentlicher Verkehr",
				"parkingInformations": "Parkinformationen",
				"planJourneyPublicTransport": "Anreise",
				"searchPublicTransport": "Verbindung suchen (SBB)",
				"planJourneyCar": "Anreise Google Maps",
				"downloadWaypoint": "Wegpunkt downloaden",
				"routeLinkLabel": "Route ansehen",
				"wildlifeReserve": "Wildschutzgebiet",
				"wildlifeArea": "Wildruhezone",
				"closedHikingTrail": "Sperrung / Umleitung Wanderweg",
				"alpGuardDogs": "Alpweide geschützt durch Herdenschutzhunde",
				"armyShooting": "Schiessanzeige und Gefahrenstelle",
				"legalBasis": "Grundlage",
				"additionalInformation": "Zusatzinformationen",
				"showDetails": "Details anzeigen",
				"moreOnMapAdminCh": "Mehr Informationen auf map.admin.ch",
				"currentSnowDepth": "Aktuelle Schneehöhe"
			},
			"protectionArea": {
				"lastUpdated": "zuletzt aktualisiert am {{lastUpdate}}",
				"validity": "gültig von {{validFrom}} bis {{validUntil}}",
				"validityEstimated": "gültig von {{validFrom}} bis voraussichtlich {{validUntil}}",
				"validFrom": "gültig ab {{validFrom}}",
				"validUntil": "gültig bis {{validUntil}}",
				"validUntilEstimated": "gültig bis voraussichtlich {{validUntil}}",
				"generallyValid": "generell gültig"
			},
			"collections": {
				"addRouteToCollection": "Route merken",
				"selectCollection": "Merkliste auswählen",
				"selectRoute": "Welche Route(n) dieses Tourenziels möchtest du dir merken?",
				"selectRouteError": "Bitte wähle eine Route aus.",
				"addToCollection": "Merken",
				"cancel": "Abbrechen",
				"routeAddedToCollection": "Die ausgewählte Route(n) wurden zu deiner Merkliste hinzugefügt.",
				"createNew": "Neue Liste",
				"close": "Schliessen",
				"goToCollection": "Zur Merkliste",
				"alreadyCollectedIn": "Bereits gemerkt auf"
			}
		},
		"basePublicTransportLinkUrl": "https://www.sbb.ch/en/buying/pages/fahrplan/fahrplan.xhtml?language=en&nach=",
		"snowDepthInfoUrl": "https://www.sac-cas.ch",
		"snowCoverInfoUrl": "https://www.sac-cas.ch",
		"destinationFallbackImages": {
			"summit": {
				"srcset": {
					"sizeList": [
						[
							600
						],
						[
							1200
						],
						[
							2048
						]
					],
					"urlList": [
						"/modules/c015_teaser_destination/media/summit_600.jpg",
						"/modules/c015_teaser_destination/media/summit_1200.jpg",
						"/modules/c015_teaser_destination/media/summit_2048.jpg"
					]
				}
			},
			"hut": {
				"srcset": {
					"sizeList": [
						[
							600
						],
						[
							1200
						]
					],
					"urlList": [
						"/modules/c015_teaser_destination/media/hut_600.jpg",
						"/modules/c015_teaser_destination/media/hut_1200.jpg",
						"/modules/c015_teaser_destination/media/hut_2048.jpg"
					]
				}
			}
		},
		"map": {
			"news": [
				{
					"label": "Neu",
					"copy": "Jetzt auch <b>GPX downloaden</b>",
					"type": "waypointDrawing"
				},
				{
					"label": "Neu",
					"copy": "Jetzt Deckkraft für jede Ebene einstellbar",
					"type": "layerSettings"
				}
			],
			"metaLinkList": [
				{
					"url": "https://www.swisstopo.admin.ch/",
					"label": "© swisstopo (5701325910)"
				},
				{
					"url": "/pages/map_legend/map_legend.html",
					"label": "Hilfe & Legende"
				},
				{
					"url": "#",
					"label": "Haftungsausschluss"
				}
			]
		}
	}
}

Documentation

Description

Integration

Copy HTML.