From 73c100ca9621ff9cfa3ca665e14e997524d92160 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Mon, 4 Mar 2019 14:08:48 +0100 Subject: Use rocket_contrib StaticFiles module to serve static files. This also changes the structure of the app quite significantly. Instead if generating the html for the index, we simply provide a public/index.html static file instead. For now this seems to make sense, it may not hold in the long run, but that's for another time to worry about. --- public/index.html | 11 +++++++++++ public/js/app.js | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ public/screenings.json | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 public/index.html create mode 100644 public/js/app.js create mode 100644 public/screenings.json (limited to 'public') diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..abb347e --- /dev/null +++ b/public/index.html @@ -0,0 +1,11 @@ + + + + Ramaskrik Program + + + + +

Ramaskrik 2019

+ + diff --git a/public/js/app.js b/public/js/app.js new file mode 100644 index 0000000..6f30a1f --- /dev/null +++ b/public/js/app.js @@ -0,0 +1,51 @@ +/* + Social program for Ramaskrik. + Copyright (C) 2019 Harald Eilertsen + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +function load_screenings(data_done) { + let req = new XMLHttpRequest() + req.addEventListener("load", data_done) + req.open("GET", "http://localhost:8000/screenings.json") + req.responseType = "json" + req.send() +} + +function pluralize(num, word) { + let result = num + " " + word + + if (num > 1) { + result += "s" + } + + return result +} + +function log_film(film) { + console.log(film["title"] + + " (" + + pluralize(film["screenings"].length, "screening") + + ")") +} + +window.addEventListener("load", function() { + load_screenings(function() { + this.response.forEach(function(film) { + log_film(film) + }) + }) + console.log("Holahey!") +}) diff --git a/public/screenings.json b/public/screenings.json new file mode 100644 index 0000000..86454cf --- /dev/null +++ b/public/screenings.json @@ -0,0 +1,51 @@ +[ + { + "title": "What keeps you alive", + "url": "https://ramaskrik.no/program-og-billetter/what-keeps-you-alive-engelsk-nei-tekst/", + "screenings": [ + { + "room": "Storsalen", + "date": "2018-10-19", + "start_time": "10:30", + "end_time": "12:08" + }, + { + "room": "Kinosal", + "date": "2018-10-20", + "start_time": "12:10", + "end_time": "14:02" + } + ] + + }, + { + "title": "Killungard", + "url": "https://ramaskrik.no/program-og-billetter/killungard-1/", + "screenings": [ + { + "room": "Speilsalen", + "date": "2018-10-19", + "start_time": "12:30", + "end_time": "14:20" + } + ] + }, + { + "title": "Anna and the apocalypse", + "url": "https://ramaskrik.no/program-og-billetter/anna-and-the-apocalypse-engelsk-nei-tekst/", + "screenings": [ + { + "room": "Storsalen", + "date": "2018-10-19", + "start_time": "12:30", + "end_time": "14:20" + }, + { + "room": "Storsalen", + "date": "2018-10-20", + "start_time": "23:00", + "end_time": "00:40" + } + ] + } +] -- cgit v1.2.3