From aa88153e4a172f07ba8a7a6674a868332e69fe0d Mon Sep 17 00:00:00 2001 From: Theo Diamantidis Date: Wed, 21 Mar 2018 13:30:50 +0200 Subject: [PATCH 1/9] Relaxation becomes equilibrium --- database/seeds/GeneralEventsSeeder.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/database/seeds/GeneralEventsSeeder.php b/database/seeds/GeneralEventsSeeder.php index d97bb72..5c407b0 100644 --- a/database/seeds/GeneralEventsSeeder.php +++ b/database/seeds/GeneralEventsSeeder.php @@ -76,8 +76,8 @@ public function run() { 'el' => '1ο Διάλειμμα' ], 'event_prev' => [ - 'en' => 'Lunch, Q&A with the speakers, workshops and relaxation', - 'el' => 'Γεύμα, Q&A με τους ομιλητές, workshops και χαλάρωση' + 'en' => 'Lunch, Q&A with the speakers, workshops and equilibrium', + 'el' => 'Γεύμα, Q&A με τους ομιλητές, workshops και ηρεμία' ], 'subtitle' => [ 'en' => 'The speakers of the 1st session will answer to your **questions** in the Simulcast room and lunch will be served.', @@ -114,8 +114,8 @@ public function run() { 'el' => '2ο Διάλειμμα' ], 'event_prev' => [ - 'en' => 'Coffee and beverages, Q&A with the speakers, workshops and relaxation', - 'el' => 'Καφές και ποτά, Q&A με τους ομιλητές, workshops και χαλάρωση' + 'en' => 'Coffee and beverages, Q&A with the speakers, workshops and equilibrium', + 'el' => 'Καφές και ποτά, Q&A με τους ομιλητές, workshops και ηρεμία' ], 'subtitle' => [ 'en' => 'The speakers of the 2nd session will answer to your **questions** in the Simulcast room. Coffee and beverages will be served.', From b9aefeb5848322c8989d23aa581e476c94924142 Mon Sep 17 00:00:00 2001 From: Theo Diamantidis Date: Thu, 22 Mar 2018 03:37:42 +0200 Subject: [PATCH 2/9] Updated schedule --- database/seeds/GeneralEventsSeeder.php | 22 ++++++++++++------- database/seeds/PerformancesSeeder.php | 28 ++++++++++++++----------- database/seeds/SpeakersSeeder.php | 2 +- database/seeds/WorkshopsSeeder.php | 2 +- public/images/schedule/romantso.jpg | Bin 0 -> 29754 bytes 5 files changed, 32 insertions(+), 22 deletions(-) create mode 100644 public/images/schedule/romantso.jpg diff --git a/database/seeds/GeneralEventsSeeder.php b/database/seeds/GeneralEventsSeeder.php index 5c407b0..3e2006a 100644 --- a/database/seeds/GeneralEventsSeeder.php +++ b/database/seeds/GeneralEventsSeeder.php @@ -143,21 +143,27 @@ public function run() { ]), App\Schedule::updateOrCreate(['sid' => 'after-party'], [ - 'hour' => '21:00', + 'hour' => '21:30', 'visible' => true, - 'img_src' => '/images/schedule/after-party.png', + 'img_src' => '/images/schedule/romantso.jpg', 'type' => 'general', 'event_title' => [ - 'en' => 'After Party', - 'el' => 'After Party' + 'en' => 'After Party', + 'el' => 'After Party' ], 'event_prev' => [ - 'en' => 'It\'s a secret', - 'el' => 'Είναι μυστικό' + 'en' => 'Chaos is a Ladder | Romantso', + 'el' => 'Chaos is a Ladder | Romantso' ], 'subtitle' => [ - 'en' => '', - 'el' => '' + 'en' => ' +After the chaos, we are waiting for you right after our event, at [Romantso](https://www.facebook.com/biosromantso/) (3-5 Anaxagora, Omonoia) at 21.30 to get to know each other better and have fun. + +Join our event on Facebook by clicking [here](https://www.facebook.com/events/402112306897135/)!', + 'el' => ' +Μετά από τόσο chaos, σε περιμένουμε στο τέλος του event μας, στο [Romantso](https://www.facebook.com/biosromantso/) (Αναξαγόρα 3-5, Ομόνοια) στις 21.30 να έρθεις να γνωριστούμε και να περάσουμε καλά. + +Μπες στο event μας στο Facebook κάνοντας κλικ [εδώ](https://www.facebook.com/events/402112306897135/)!' ], ]), ]; diff --git a/database/seeds/PerformancesSeeder.php b/database/seeds/PerformancesSeeder.php index cd092b2..719edb1 100644 --- a/database/seeds/PerformancesSeeder.php +++ b/database/seeds/PerformancesSeeder.php @@ -38,7 +38,7 @@ public function run() { App\Schedule::updateOrCreate(['sid' => 'toubanaki'], [ 'hour' => '18:00', - 'visible' => false, + 'visible' => true, 'img_src' => '/images/schedule/toubanaki.jpg', 'type' => 'performance', 'event_title' => [ @@ -46,27 +46,31 @@ public function run() { 'el' => 'Αγγελική Τουμπανάκη' ], 'event_prev' => [ - 'en' => 'Performer, molecular biologist, sound experimentalist, vocal educator and much more (Main stage 18:00-18:15)', - 'el' => 'Performer, μοριακή βιολόγος, ηχητική πειραματίστρια, φωνητική εκπαιδεύτρια και πολλά άλλα (Κύρια σκηνή 18:00-18:15)' + 'en' => 'Performer, molecular biologist, sound experimentalist, vocal educator et al. (Main stage 18:00-18:20)', + 'el' => 'Performer, μοριακή βιολόγος, ηχητική πειραματίστρια, φωνητική εκπαιδεύτρια κ.ά. (Κύρια σκηνή 18:00-18:20)' ], 'subtitle' => [ - 'en' => ' -Her creation field is a broad and multi-layered universe within which she expresses herself using different forms and contexts, such as improvisation, dance and theater. + 'en' => ' +The stage of TEDxNTUA welcomes Aggeliki Toubanaki, a unique performer. -Having completed a long standing cycle of scientific research, Aggeliki has a PhD at the Medical School of the University of Athens in Molecular Biology and in Music Studies. She is now dedicated exclusively to singing and music. Aggeliki strongly believes that voice is an extraordinary musical instrument. She conceptually and experientially detects the possibilities of human voice through personal improvisations paths and crosswords of different musical motifs. Since 2005 she has been professionally involved in music, as a creator, producer and lead vocalist of different music projects (Folk, World Jazz and Nu Jazz), which she presents regularly in Greece and abroad. Her basis is jazz music, whilst her interest has so far been the collection and study of traditional rhythms, scales and extended vocal sounds with international and geographical coordinates adjacent to Greece. +Her creation field is a broad and multi-layered universe within which, she expresses herself using different forms and contexts, such as improvisation, dance and theater. -Aggeliki has been teaching "Vocal Technique" and "Jazz Improvisation" at Philippos Nakas Conservatory, "Voice Coaching" for performers and actors and organizes and leads "Vocal circles", as she has been taught by Bobby McFerrin and his Team (New York 2015). +Since 2005 she has been professionally involved in music, as a creator, producer and lead vocalist of different music projects (Folk, **World Jazz** and **Nu Jazz**), which she presents regularly in Greece and abroad. -Her need, joy and goal are the creative interaction, experimentation and free communication of people without Musical boundaries. +She has a PhD at the Medical School of the University of Athens in **Molecular Biology**. + +Her website: [aggelikitoubanaki.com](http://aggelikitoubanaki.com) ', 'el' => ' -Η προσέγγισή της είναι σε ανοιχτή συνομιλία με τις παραστατικές/οπτικοακουστικές τέχνες και την εικαστική δημιουργία και η δουλειά της βασίζεται στην έρευνα και την ελευθερία της δημιουργικής έκφρασης έξω από νόρμες και κοινές πρακτικές. +Η σκηνή του TEDxNTUA 2018 υποδέχεται μια ξεχωριστή performer, την Αγγελική Τουμπανάκη. + +Η Αγγελική χρησιμοποιεί τη φωνή της σαν μουσικό όργανο ανιχνεύοντας εννοιολογικά και βιωματικά τις δυνατότητες της ανθρώπινης φωνής μέσα από προσωπικές αυτοσχεδιαστικές διαδρομές και διασταυρώσεις μουσικών ιδιωμάτων. -Έχοντας ολοκληρώσει έναν πολυετή κύκλο επιστημονικής έρευνας, η Αγγελική είναι αριστούχος διδάκτορας της Ιατρικής Σχολής του Πανεπιστημίου Αθηνών στη Μοριακή Βιολογία και των Μουσικών Σπουδών. Επέλεξε ανάμεσα στα δύο το πεδίο της τέχνης και έχει αφιερωθεί πλέον αποκλειστικά στο τραγούδι και τη μουσική. Από το 2005 δημιουργεί μουσικά projects με World Jazz, Nu Jazz μουσική θεματολογία («Toubanaki & the Buzz Bastardz», «Drums Voice Jazztronica duet», «Jazz Plus», «Oulaloum», «Συνδέσεις»), τα οποία παρουσιάζει στην Ελλάδα και στο εξωτερικό. +Από το 2005, δημιουργεί μουσικά projects με **World Jazz**, **Nu Jazz** μουσική θεματολογία, τα οποία παρουσιάζει στην Ελλάδα και στο εξωτερικό. Είναι καθηγήτρια φωνητικής, έχοντας μαθητεύσει κοντά στον Bobby McFerrin, τη Rhiannon και τον Bob Stollof στην Νέα Υόρκη. -Η Αγγελική διδάσκει «Τεχνική της φωνής» και «Αυτοσχεδιασμό» στο Ωδείο Φ. Νάκας, φωνητική προετοιμασία για performers και ηθοποιούς με βάση την μέθοδο «MUSA» (Musical System of Acting) του σκηνοθέτη/acting coach Σωτήρη Καραμεσίνη και διοργανώνει «Φωνητικούς Κύκλους» (Circle Singing), όπως διδάχτηκε από τον Bobby McFerrin, τη Rhiannon και τον Bob Stollof στην Νέα Υόρκη. +Είναι αριστούχος διδάκτορας της Ιατρικής Σχολής του Πανεπιστημίου Αθηνών στη **Μοριακή Βιολογία**. -Η ανάγκη της, η χαρά της και ο στόχος της είναι η διάδραση, ο πειραματισμός και η ελεύθερη επικοινωνία χωρίς μουσικά σύνορα. +Η ιστοσελίδα της: [aggelikitoubanaki.com](http://aggelikitoubanaki.com) ' ], ]), diff --git a/database/seeds/SpeakersSeeder.php b/database/seeds/SpeakersSeeder.php index 22a92b7..0af3b88 100644 --- a/database/seeds/SpeakersSeeder.php +++ b/database/seeds/SpeakersSeeder.php @@ -356,7 +356,7 @@ public function run() { 'visible' => true, 'img_src' => 'galani-1.jpg', 'img_src_alt' => 'galani-2.jpg', - 'link' => ' http://www.galani.gr', + 'link' => 'http://www.galani.gr', 'bio' => [ 'en' => ' In her distinguished 40-year career Dimitra Galani has made a great contribution to Greek music and culture. She is an exceptional artist, a serious and dignified presence in our country’s music scene. Her enduring cross-generational appeal is based on her unique voice, inherent musicality, powerful stage presence and peerless ability to interpret material by top Greek composers and lyricists, such as Manos Hadjidakis, Mikis Theodorakis, Vassilis Tsitsanis, Manos Loizos, a.o. diff --git a/database/seeds/WorkshopsSeeder.php b/database/seeds/WorkshopsSeeder.php index 45a4944..8cdb196 100644 --- a/database/seeds/WorkshopsSeeder.php +++ b/database/seeds/WorkshopsSeeder.php @@ -24,7 +24,7 @@ public function run() { 1. Presentation (17:40-17:55)', 'el' => ' 1. Workshop: Η μουσική μέσα από τον φακό του μηχανικού (12:15-14:45) -1. Παρουσίαση (17:40-15:55)' +1. Παρουσίαση (17:40-17:55)' ], 'subtitle' => [ 'en' => ' diff --git a/public/images/schedule/romantso.jpg b/public/images/schedule/romantso.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1704e34fa18d96eca39adf42b5881acc0ec0a5ef GIT binary patch literal 29754 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 Date: Thu, 22 Mar 2018 14:40:03 +0200 Subject: [PATCH 3/9] Updated Science Reactors info --- database/seeds/PerformancesSeeder.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/database/seeds/PerformancesSeeder.php b/database/seeds/PerformancesSeeder.php index 719edb1..3971735 100644 --- a/database/seeds/PerformancesSeeder.php +++ b/database/seeds/PerformancesSeeder.php @@ -85,19 +85,19 @@ public function run() { 'el' => 'Science Reactors' ], 'event_prev' => [ - 'en' => 'Stand-up comedy based on scientific subjects (Simulcast room 17:40-18:00)', - 'el' => 'Stand-up κωμωδία βασισμένη σε επιστημονικά ζητήματα (Αίθουσα Simulcast 17:40-18:00)' + 'en' => 'Stand-up science (Simulcast room 17:40-18:00)', + 'el' => 'Stand-up επιστήμη (Αίθουσα Simulcast 17:40-18:00)' ], 'subtitle' => [ 'en' => ' A team of young scientists with talent in science communication was created over five years ago. Their aim is to **communicate science** in a fun way so as to attract the interest and love of young people. Scientists step out of the laboratories and on to the stage, turning difficult scientific issues into **comprehensible and humorous stories**. -So let\'s decode the Chaos of science. +Participants: Dimitris Tsimpidas (Astrophysicist), John Kontogiannis (Astrophysicist), Nikos Papadimitriou (Chemist – Engineer), Stefanos Giagtzoglou (Biologist). ', 'el' => ' Μία ομάδα από νεαρούς επιστήμονες με ταλέντο στην **επικοινωνία της επιστήμης**, δημιουργήθηκε πριν πέντε χρόνια. Στόχος τους είναι να βγει η γνώση από τα στεγανά της πλαίσια και με τρόπο διασκεδαστικό να προσελκύσει το ενδιαφέρον και την αγάπη των νέων (και όχι μόνο) για την επιστήμη. Οι επιστήμονες βγαίνουν από το εργαστήριο και ανεβαίνουν στη σκηνή μετατρέποντας δύσκολα επιστημονικά θέματα σε **κατανοητές ιστορίες** και κυρίως, σε ιστορίες γεμάτες χιούμορ! -Ας αποκωδικοποιήσουμε λοιπόν το chaos της επιστήμης. +Συμμετέχουν οι: Τζίμης Τσιμπίδας (Αστροφυσικός), Γιάννης Κοντογιάννης (Αστροφυσικός), Νίκος Παπαδημητρίου (Χημικός – Μηχανικός), Στέφανος Γιαγτζόγλου (Βιολόγος). ', ], ]), From 6ed3fc7b4256f6e5653980d327d0bb17b1c54e88 Mon Sep 17 00:00:00 2001 From: Theo Diamantidis Date: Thu, 22 Mar 2018 17:14:14 +0200 Subject: [PATCH 4/9] Live stream in home screen --- app/Http/Controllers/HomeController.php | 6 +- public/css/app.css | 119 ++++++++++++++++++------ public/js/app.js | 55 +++++++++-- public/js/home-animations.js | 68 +++++++------- resources/assets/js/home-animations.js | 68 +++++++------- resources/assets/js/home.js | 46 ++++++++- resources/assets/sass/app.scss | 86 ++++++++++++++--- resources/views/home.twig | 26 +++++- 8 files changed, 351 insertions(+), 123 deletions(-) diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index b25b249..1b6c9d3 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -23,13 +23,15 @@ public function index(Request $request) { } $speakers = $query->get()->sortByAppearance(); + $now = date("Y-m-d H:m"); + $isToday = $request->testLive == "yes" || ($now >= "2018-03-24 10:30" && $now <= "2018-03-24 21:00"); $isPjax = $request->header('X-PJAX'); if ($isPjax) { - return response()->view('home', compact('isPjax', 'speakers'), 200) + return response()->view('home', compact('isPjax', 'isToday', 'speakers'), 200) ->header('X-PJAX-URL', LaravelLocalization::getLocalizedURL()); } - return view('home', compact('speakers')); + return view('home', compact('speakers', 'isToday')); } } diff --git a/public/css/app.css b/public/css/app.css index a419954..ab35fb6 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -12891,6 +12891,20 @@ a:hover { top: calc(100% - 8px); } +/* VERTICAL ALIGN HELPER */ + +.vertical-align { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + /* NAVIGATION MENU */ header.dark { @@ -13508,11 +13522,12 @@ article.home a:hover { color: #ff1505; } -article.home #mainContainer { - margin-top: 8rem; +article.home .home-sections { + margin-top: 2rem; } -article.home #leftStripe { +article.home #leftStripe, +article.home #rightStripe { width: 80%; height: 100%; position: absolute; @@ -13523,12 +13538,6 @@ article.home #leftStripe { article.home #rightStripe { margin-left: 2rem; - width: 80%; - height: 100%; - position: absolute; - background-image: url("/images/stripeFull-mini.png"); - background-size: 100% auto; - background-repeat: repeat-y; -webkit-transform: scaleX(-1); transform: scaleX(-1); } @@ -13587,7 +13596,7 @@ article.home #hero { color: white; border-bottom: 0; background: #202020; - min-height: 480px; + height: 480px; position: relative; } @@ -13716,6 +13725,60 @@ article.home #hero svg#logo-animation .secondary { stroke: #E66557; } +article.home #hero.live { + position: static; + height: auto; +} + +article.home #hero.live .section-content { + position: static; + /* outer height of nav = 4rem (height) + 1.2rem (padding) = 5.2rem */ + padding-top: 5.2rem; +} + +article.home #hero.live .live-container { + overflow: visible; +} + +article.home #hero.live .live-container .close { + display: none; + position: absolute; + top: -2rem; + left: -2rem; + font-size: 2rem; + color: white; + cursor: pointer; + z-index: 9999; + opacity: .75; +} + +article.home #hero.live .live-container .close:hover { + opacity: 1; +} + +article.home #hero.live.popup .live-container { + position: fixed; + bottom: 3vw; + right: 3vw; + width: 39vw; + max-width: 576px; + -webkit-box-shadow: 0 0 30px 8px #FFF; + box-shadow: 0 0 30px 8px #FFF; + z-index: 9998; +} + +article.home #hero.live.popup .live-container iframe#live { + opacity: .9; +} + +article.home #hero.live.popup .live-container iframe#live:hover { + opacity: 1; +} + +article.home #hero.live.popup .live-container .close { + display: inline-block; +} + article.home #chaos h2 img { width: auto; height: 0; @@ -14604,6 +14667,11 @@ article.license { margin: 0 6rem; } + article.home #hero.live .section-content { + /* outer height of nav = 4.2rem (height) + 1.2rem (padding) = 5.4rem */ + padding-top: 5.4rem; + } + article.home #speakers .speaker-container a { font-size: 1.2rem; } @@ -14688,11 +14756,11 @@ article.license { margin-bottom: 0; } - article.home #hero { + article.home #hero:not(.live) { height: 720px; } - article.home #hero .section-content { + article.home #hero:not(.live) .section-content { opacity: 0; bottom: -2rem; -webkit-transition: opacity 3s, bottom 3s; @@ -14701,19 +14769,19 @@ article.license { transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1); } - article.home #hero .section-content.slideIn { + article.home #hero:not(.live) .section-content.slideIn { opacity: 1; bottom: 0; } - article.home #hero h1 { + article.home #hero:not(.live) h1 { margin-top: 25rem; font-size: 3.5rem; font-weight: bold; } - article.home #hero canvas#lorenz, - article.home #hero svg#logo-animation { + article.home #hero:not(.live) canvas#lorenz, + article.home #hero:not(.live) svg#logo-animation { display: block; } @@ -15050,6 +15118,11 @@ article.license { padding: .5rem 0; } + article.home #hero.live .section-content { + /* outer height of nav = 4.8rem (height) + 1.2rem (padding) = 6rem */ + padding-top: 6rem; + } + article.home #speakers .speaker-container a { font-size: 1.25rem; } @@ -15067,15 +15140,9 @@ article.license { } } -.vertical-align { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; +@media screen and (orientation: portrait) { + article.home #hero.live.popup .live-container { + width: 84vw; + } } diff --git a/public/js/app.js b/public/js/app.js index 79592e5..4066273 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -36590,21 +36590,56 @@ $(function () { $(function () { - $(document).on("mouseover", "#hero .info a", function (e) { + /* IMPORTANT: Use debounce with scroll events for better performance */ - $(this).addClass("blink"); - }).on("mouseout", "#hero .info a", function (e) { + var sT, liveOffsetY, liveH; - $(this).removeClass("blink"); - }); + $(window).on("scroll resize", _.debounce(function () { - if ($("article.home").length > 0) { + if ($("#hero.live").length > 0) { - /* trigger home animations */ - homeAnimations(); + sT = $(window).scrollTop(); - $("body > header").addClass("home"); - } + if (!$("#hero.live").hasClass("popup")) { + liveOffsetY = $("#live").offset().top, liveH = $("#live").height(); + } + + if (!$("#hero.live").hasClass("popup") && !$("#hero.live").hasClass("no-popup") && sT > liveOffsetY + liveH / 2) { + + $("#hero.live h2").css("padding-bottom", liveH); + $("#hero.live").addClass("popup"); + } else if ($("#hero.live").hasClass("popup") && sT <= liveOffsetY + liveH / 2) { + + $("#hero.live h2").css("padding-bottom", 0); + $("#hero.live").removeClass("popup"); + } + } + })); + + $(document).on("click", ".live-container button.close", function (e) { + + if ($("#hero.live").hasClass("popup")) { + + $("#hero.live h2").css("padding-bottom", 0); + $("#hero.live").removeClass("popup").addClass("no-popup"); + } + }); + + $(document).on("mouseover", "#hero .info a", function (e) { + + $(this).addClass("blink"); + }).on("mouseout", "#hero .info a", function (e) { + + $(this).removeClass("blink"); + }); + + if ($("article.home").length > 0) { + + /* trigger home animations */ + homeAnimations(); + + $("body > header").addClass("home"); + } }); /***/ }), diff --git a/public/js/home-animations.js b/public/js/home-animations.js index 33d79d5..3b80108 100644 --- a/public/js/home-animations.js +++ b/public/js/home-animations.js @@ -79,41 +79,45 @@ module.exports = __webpack_require__(52); __webpack_require__(53); window.homeAnimations = function () { - var l = Lorenz({ - target: "lorenz", - length: 1000, - color: "#E62B1E", - pointSize: 4, - initial: { - x: 30, - y: 0, - z: 400 - }, - scale: { - x: 15, - y: 6, - z: -8 - }, - project: "xz", - velocity: 0.008, - sigma: 10, - rho: 28, - beta: 8 / 3 - }); + if ($("#lorenz").length > 0) { + var l = Lorenz({ + target: "lorenz", + length: 1000, + color: "#E62B1E", + pointSize: 4, + initial: { + x: 30, + y: 0, + z: 400 + }, + scale: { + x: 15, + y: 6, + z: -8 + }, + project: "xz", + velocity: 0.008, + sigma: 10, + rho: 28, + beta: 8 / 3 + }); + } - var trX = parseInt($("#logo-animation").width() / 2), - trY = parseInt($("#logo-animation").height() / 2), - tr = $("#logo-animation .container").attr("transform"); + if ($("#logo-animation").length > 0) { + var trX = parseInt($("#logo-animation").width() / 2), + trY = parseInt($("#logo-animation").height() / 2), + tr = $("#logo-animation .container").attr("transform"); - $("#logo-animation .container").attr("transform", "translate(" + trX + ", " + trY + ")" + tr); - /* start animation */ - $("#logo-animation .container g").css("animation-play-state", "running"); + $("#logo-animation .container").attr("transform", "translate(" + trX + ", " + trY + ")" + tr); + /* start animation */ + $("#logo-animation .container g").css("animation-play-state", "running"); - window.setTimeout(function () { - l.run(); - $("#logo-animation").fadeOut(2000); - $("#hero .section-content").addClass("slideIn"); - }, 5000); + window.setTimeout(function () { + l.run(); + $("#logo-animation").fadeOut(2000); + $("#hero .section-content").addClass("slideIn"); + }, 5000); + } }; /***/ }), diff --git a/resources/assets/js/home-animations.js b/resources/assets/js/home-animations.js index 28aae48..c8213f9 100644 --- a/resources/assets/js/home-animations.js +++ b/resources/assets/js/home-animations.js @@ -1,39 +1,43 @@ require('./lorenz'); window.homeAnimations = function() { - var l = Lorenz({ - target: "lorenz", - length: 1000, - color: "#E62B1E", - pointSize: 4, - initial: { - x: 30, - y: 0, - z: 400, - }, - scale: { - x: 15, - y: 6, - z: -8 - }, - project: "xz", - velocity: 0.008, - sigma: 10, - rho: 28, - beta: 8 / 3 - }) + if($("#lorenz").length > 0) { + var l = Lorenz({ + target: "lorenz", + length: 1000, + color: "#E62B1E", + pointSize: 4, + initial: { + x: 30, + y: 0, + z: 400, + }, + scale: { + x: 15, + y: 6, + z: -8 + }, + project: "xz", + velocity: 0.008, + sigma: 10, + rho: 28, + beta: 8 / 3 + }) + } - let trX = parseInt($("#logo-animation").width() / 2), - trY = parseInt($("#logo-animation").height() / 2), - tr = $("#logo-animation .container").attr("transform") + if($("#logo-animation").length > 0) { + let trX = parseInt($("#logo-animation").width() / 2), + trY = parseInt($("#logo-animation").height() / 2), + tr = $("#logo-animation .container").attr("transform") - $("#logo-animation .container").attr("transform", "translate(" + trX + ", " + trY + ")" + tr) - /* start animation */ - $("#logo-animation .container g").css("animation-play-state", "running") + $("#logo-animation .container").attr("transform", "translate(" + trX + ", " + trY + ")" + tr) + /* start animation */ + $("#logo-animation .container g").css("animation-play-state", "running") - window.setTimeout(function() { - l.run() - $("#logo-animation").fadeOut(2000) - $("#hero .section-content").addClass("slideIn") - }, 5000) + window.setTimeout(function() { + l.run() + $("#logo-animation").fadeOut(2000) + $("#hero .section-content").addClass("slideIn") + }, 5000) + } } \ No newline at end of file diff --git a/resources/assets/js/home.js b/resources/assets/js/home.js index a31d4a6..018adbc 100644 --- a/resources/assets/js/home.js +++ b/resources/assets/js/home.js @@ -1,5 +1,50 @@ $(function(){ + /* IMPORTANT: Use debounce with scroll events for better performance */ + + var sT, liveOffsetY, liveH + + $(window).on("scroll resize", _.debounce(function() { + + if($("#hero.live").length > 0) { + + sT = $(window).scrollTop() + + if(!$("#hero.live").hasClass("popup")) { + liveOffsetY = $("#live").offset().top, + liveH = $("#live").height() + } + + if(!$("#hero.live").hasClass("popup") + && !$("#hero.live").hasClass("no-popup") + && sT > liveOffsetY + liveH / 2) { + + $("#hero.live h2").css("padding-bottom", liveH) + $("#hero.live").addClass("popup") + + } else if($("#hero.live").hasClass("popup") + && sT <= liveOffsetY + liveH / 2) { + + $("#hero.live h2").css("padding-bottom", 0) + $("#hero.live").removeClass("popup") + + } + + } + + })) + + $(document).on("click", ".live-container button.close", function(e) { + + if($("#hero.live").hasClass("popup")) { + + $("#hero.live h2").css("padding-bottom", 0) + $("#hero.live").removeClass("popup").addClass("no-popup") + + } + + }) + $(document).on("mouseover", "#hero .info a", function(e){ $(this).addClass("blink") @@ -19,5 +64,4 @@ $(function(){ } - }); diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss index 407f05d..9760372 100644 --- a/resources/assets/sass/app.scss +++ b/resources/assets/sass/app.scss @@ -115,6 +115,14 @@ a { } } +/* VERTICAL ALIGN HELPER */ + +.vertical-align { + display: flex; + align-items: center; + justify-content: center; +} + /* NAVIGATION MENU */ header.dark { @@ -623,11 +631,11 @@ article.home { color: saturate($brand-primary, 20%); } - #mainContainer{ - margin-top:8rem; + .home-sections { + margin-top: 2rem; } - #leftStripe { + #leftStripe, #rightStripe { width: 80%; height: 100%; position: absolute; @@ -638,12 +646,6 @@ article.home { #rightStripe { margin-left: 2rem; - width: 80%; - height: 100%; - position: absolute; - background-image: url("/images/stripeFull-mini.png"); - background-size: 100% auto; - background-repeat: repeat-y; transform: scaleX(-1); } @@ -688,7 +690,7 @@ article.home { color: white; border-bottom: 0; background: #202020; - min-height: 480px; + height: 480px; position: relative; .section-content { position: relative; @@ -791,6 +793,52 @@ article.home { stroke: #E66557; } } + &.live { + position: static; + height: auto; + .section-content { + position: static; + /* outer height of nav = 4rem (height) + 1.2rem (padding) = 5.2rem */ + padding-top: 5.2rem; + } + .live-container { + overflow: visible; + .close { + display: none; + position: absolute; + top: -2rem; + left: -2rem; + font-size: 2rem; + color: white; + cursor: pointer; + z-index: 9999; + opacity: .75; + &:hover { + opacity: 1; + } + } + } + &.popup { + .live-container { + position: fixed; + bottom: 3vw; + right: 3vw; + width: 39vw; + max-width: 576px; + box-shadow: 0 0 30px 8px #FFF; + z-index: 9998; + iframe#live { + opacity: .9; + &:hover { + opacity: 1; + } + } + .close { + display: inline-block; + } + } + } + } } @@ -1512,6 +1560,10 @@ article.privacy, article.license { #hero .info a { margin: 0 6rem; } + #hero.live .section-content { + /* outer height of nav = 4.2rem (height) + 1.2rem (padding) = 5.4rem */ + padding-top: 5.4rem; + } #speakers { .speaker-container { a { @@ -1584,7 +1636,7 @@ article.privacy, article.license { margin-bottom: 0; } } - #hero { + #hero:not(.live) { height: 720px; .section-content { opacity: 0; @@ -1895,6 +1947,10 @@ article.privacy, article.license { padding: .5rem 0; } article.home { + #hero.live .section-content { + /* outer height of nav = 4.8rem (height) + 1.2rem (padding) = 6rem */ + padding-top: 6rem; + } #speakers { .speaker-container { a { @@ -1914,8 +1970,8 @@ article.privacy, article.license { } } -.vertical-align { - display: flex; - align-items: center; - justify-content: center; +@media screen and (orientation: portrait) { + article.home #hero.live.popup .live-container { + width: 84vw; + } } \ No newline at end of file diff --git a/resources/views/home.twig b/resources/views/home.twig index ab01756..11ebdc1 100644 --- a/resources/views/home.twig +++ b/resources/views/home.twig @@ -11,7 +11,9 @@ {% block content %}
+ {% if not isToday %}
+

TEDxNTUA Chaos

@@ -44,11 +46,26 @@ +

+ + {%- else %} +
+ +
+

We are live!

+
+ + +
+
+ {%- endif %} -
+
@@ -147,11 +164,10 @@
-
+
-
+ - - {% endblock %} +{% endblock %} From e83f8d7b9d374bcc1e8c7c8b0db681d3fc475bc2 Mon Sep 17 00:00:00 2001 From: Theo Diamantidis Date: Thu, 22 Mar 2018 19:30:34 +0200 Subject: [PATCH 5/9] Fix live stream size on s on medium 16:9 screens; Add live info section --- .../Controllers/CurrentEventController.php | 54 +++++++++++++++++++ app/Http/Controllers/HomeController.php | 2 +- config/app.php | 2 +- public/css/app.css | 51 +++++++++++++++++- public/js/home-animations.js | 22 ++++++++ resources/assets/js/home-animations.js | 22 ++++++++ resources/assets/sass/app.scss | 43 +++++++++++++-- resources/lang/el/general.php | 5 ++ resources/lang/en/general.php | 5 ++ resources/views/api/currentEvent.twig | 37 +++++++++++++ resources/views/home.twig | 3 +- routes/web.php | 1 + 12 files changed, 238 insertions(+), 9 deletions(-) create mode 100644 app/Http/Controllers/CurrentEventController.php create mode 100644 resources/views/api/currentEvent.twig diff --git a/app/Http/Controllers/CurrentEventController.php b/app/Http/Controllers/CurrentEventController.php new file mode 100644 index 0000000..47ec21c --- /dev/null +++ b/app/Http/Controllers/CurrentEventController.php @@ -0,0 +1,54 @@ + where('hour', '<=', $this->now); + $last = $coll -> pop(); + $prevToLast = $coll -> last(); + while(!is_null($last) && $coll -> isNotEmpty() && $last -> hour == $prevToLast -> hour) { + if($last -> type != "general" && $prevToLast -> type == "general") { + $coll -> pop(); + $coll -> push($last); + } + $last = $coll -> pop(); + $prevToLast = $coll -> last(); + } + return $last; + } + + private function getNext($events) { + $next = $events -> where('hour', '>', $this->now) -> whereIn('type', ['talk', 'performance']) -> first(); + return $next; + } + + public function __construct() { + $this->now = '15:35';#date('H:i'); + } + + public function index(Request $request) { + + if(env('SHOW_HIDDEN_ENTRIES', false) == true) { + $where = []; + } else { + $where = [['visible', true]]; + } + + $events = Schedule :: where(array_merge($where, [['type', '!=', 'workshop']])) + -> orderBy('hour', 'asc') + -> get(); + + $curr = $this->getCurr($events); + $next = $this->getNext($events); + return view('api/currentEvent', compact('curr', 'next')); + + } + +} diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 1b6c9d3..42b65d0 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -23,7 +23,7 @@ public function index(Request $request) { } $speakers = $query->get()->sortByAppearance(); - $now = date("Y-m-d H:m"); + $now = date("Y-m-d H:i"); $isToday = $request->testLive == "yes" || ($now >= "2018-03-24 10:30" && $now <= "2018-03-24 21:00"); $isPjax = $request->header('X-PJAX'); diff --git a/config/app.php b/config/app.php index 05b259a..9841202 100644 --- a/config/app.php +++ b/config/app.php @@ -65,7 +65,7 @@ | */ - 'timezone' => 'UTC', + 'timezone' => 'Europe/Athens', /* |-------------------------------------------------------------------------- diff --git a/public/css/app.css b/public/css/app.css index ab35fb6..6ad9ffc 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -13728,6 +13728,7 @@ article.home #hero svg#logo-animation .secondary { article.home #hero.live { position: static; height: auto; + font-size: .85rem; } article.home #hero.live .section-content { @@ -13736,8 +13737,53 @@ article.home #hero.live .section-content { padding-top: 5.2rem; } +article.home #hero.live h2 { + font-size: 3em; + margin-bottom: .2em; +} + +article.home #hero.live .liveInfo { + width: 100%; + max-width: 540px; + margin: 0 auto; + text-align: center; +} + +article.home #hero.live .liveInfo h4 { + color: #E62B1E; + font-size: 1.2em; + margin-bottom: .25em; +} + +article.home #hero.live .liveInfo h5 { + font-size: 1em; +} + +article.home #hero.live .liveInfo h6 { + margin-top: .15rem; + font-weight: normal; + font-size: .8em; +} + +article.home #hero.live .liveInfo h5, +article.home #hero.live .liveInfo h6, +article.home #hero.live .liveInfo p { + margin-bottom: 0; +} + +article.home #hero.live .liveInfo .container-fluid { + margin-bottom: 1.2em; +} + +article.home #hero.live .liveInfo .col:not(:last-child) { + border-right: 1px solid #999; +} + article.home #hero.live .live-container { overflow: visible; + width: 80vw; + max-width: 100%; + margin: 0 auto; } article.home #hero.live .live-container .close { @@ -13762,8 +13808,6 @@ article.home #hero.live.popup .live-container { right: 3vw; width: 39vw; max-width: 576px; - -webkit-box-shadow: 0 0 30px 8px #FFF; - box-shadow: 0 0 30px 8px #FFF; z-index: 9998; } @@ -14695,6 +14739,7 @@ article.license { margin-bottom: 3rem; } + article.home #hero.live, article.about, article.schedule, article.speakers, @@ -14864,6 +14909,7 @@ article.license { display: none; } + article.home #hero.live, article.about, article.schedule, article.speakers, @@ -15055,6 +15101,7 @@ article.license { width: 10%; } + article.home #hero.live, article.about, article.speakers, article.team, diff --git a/public/js/home-animations.js b/public/js/home-animations.js index 3b80108..0848f6d 100644 --- a/public/js/home-animations.js +++ b/public/js/home-animations.js @@ -118,6 +118,28 @@ window.homeAnimations = function () { $("#hero .section-content").addClass("slideIn"); }, 5000); } + + var update = function update() { + if ($("#live").length > 0) { + $.ajax({ + type: "GET", + url: "/currentEvent", + dataType: "html", + success: function success(data) { + if (data != $("#hero .liveInfo").html()) { + $("#hero .liveInfo").fadeOut(200, function () { + $(this).html(data).fadeIn(); + }); + } + }, + error: function error(xhr, textStatus, _error) { + $("#hero .liveInfo").html(""); + } + }); + liveWI = window.setTimeout(update, 10000); + } + }; + var liveWI = window.setTimeout(update, 400); }; /***/ }), diff --git a/resources/assets/js/home-animations.js b/resources/assets/js/home-animations.js index c8213f9..a569f60 100644 --- a/resources/assets/js/home-animations.js +++ b/resources/assets/js/home-animations.js @@ -40,4 +40,26 @@ window.homeAnimations = function() { $("#hero .section-content").addClass("slideIn") }, 5000) } + + let update = function() { + if($("#live").length > 0) { + $.ajax({ + type: "GET", + url: "/currentEvent", + dataType: "html", + success: function(data) { + if(data != $("#hero .liveInfo").html()) { + $("#hero .liveInfo").fadeOut(200, function() { + $(this).html(data).fadeIn() + }) + } + }, + error: function(xhr, textStatus, error) { + $("#hero .liveInfo").html("") + } + }) + liveWI = window.setTimeout(update, 10000) + } + } + let liveWI = window.setTimeout(update, 400) } \ No newline at end of file diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss index 9760372..5bf15bb 100644 --- a/resources/assets/sass/app.scss +++ b/resources/assets/sass/app.scss @@ -796,13 +796,49 @@ article.home { &.live { position: static; height: auto; + font-size: .85rem; .section-content { position: static; /* outer height of nav = 4rem (height) + 1.2rem (padding) = 5.2rem */ padding-top: 5.2rem; } + h2 { + font-size: 3em; + margin-bottom: .2em; + } + .liveInfo { + width: 100%; + max-width: 540px; + margin: 0 auto; + text-align: center; + h4 { + color: $brand-primary; + font-size: 1.2em; + margin-bottom: .25em; + } + h5 { + font-size: 1em; + } + h6 { + margin-top: .15rem; + font-weight: normal; + font-size: .8em; + } + h5, h6, p { + margin-bottom: 0; + } + .container-fluid { + margin-bottom: 1.2em; + } + .col:not(:last-child) { + border-right: 1px solid #999; + } + } .live-container { overflow: visible; + width: 80vw; + max-width: 100%; + margin: 0 auto; .close { display: none; position: absolute; @@ -825,7 +861,6 @@ article.home { right: 3vw; width: 39vw; max-width: 576px; - box-shadow: 0 0 30px 8px #FFF; z-index: 9998; iframe#live { opacity: .9; @@ -1593,7 +1628,7 @@ article.privacy, article.license { margin-bottom: 3rem; } } - article.about, article.schedule, article.speakers, article.team, article.privacy, article.license { + article.home #hero.live, article.about, article.schedule, article.speakers, article.team, article.privacy, article.license { font-size: .9rem; } } @@ -1734,7 +1769,7 @@ article.privacy, article.license { display: none; } } - article.about, article.schedule, article.speakers, article.team, article.privacy, article.license { + article.home #hero.live, article.about, article.schedule, article.speakers, article.team, article.privacy, article.license { font-size: 1rem; } .blog-listing { @@ -1884,7 +1919,7 @@ article.privacy, article.license { width: 10%; } } - article.about, article.speakers, article.team, article.privacy, article.license { + article.home #hero.live, article.about, article.speakers, article.team, article.privacy, article.license { font-size: 1.1rem; } article.contact { diff --git a/resources/lang/el/general.php b/resources/lang/el/general.php index 700e75f..e3646ff 100644 --- a/resources/lang/el/general.php +++ b/resources/lang/el/general.php @@ -113,6 +113,11 @@ 'desc' => 'Το TEDxNTUA 2018 θα διεξαχθεί στο Ευγενίδειο Πλανητάριο. Το Πλανητάριο βρίσκεται στη λεωφόρο Ανδρέα Συγγρού 387, μόλις λιγότερο από 7 λεπτά από τον πλησιέστερο σταθμό λεωφορείων. Πρόσβαση μέσω ΜΜΜ: ', ], ], + 'live' => [ + 'wearelive' => 'We are live!', + 'curr' => 'ΤΩΡΑ', + 'next' => 'ΕΠΟΜΕΝΟ', + ], ], /* SPONSORS */ diff --git a/resources/lang/en/general.php b/resources/lang/en/general.php index d134783..1c560fb 100644 --- a/resources/lang/en/general.php +++ b/resources/lang/en/general.php @@ -125,6 +125,11 @@ 'desc' => 'TEDxNTUA 2018 will take place at the Athens Planetarium. The Planetarium is located at 387 Syggrou Avenue, just under 7 minutes on foot from the nearest bus station. Access via public transport: ', ], ], + 'live' => [ + 'wearelive' => 'We are live!', + 'curr' => 'NOW', + 'next' => 'NEXT', + ], ], /* SPONSORS */ diff --git a/resources/views/api/currentEvent.twig b/resources/views/api/currentEvent.twig new file mode 100644 index 0000000..5b3fd3b --- /dev/null +++ b/resources/views/api/currentEvent.twig @@ -0,0 +1,37 @@ +{% if curr is not null or next is not null %} +
+
+{% if curr is not null %} +{% if next is not null %} +
+

{{ trans('general.home.live.curr') }}

+
{{ curr.event_title | raw }}
+
{{ curr.event_prev | markdown }}
+
+{% else %} +
+

{{ trans('general.home.live.curr') }}

+
{{ curr.event_title | raw }}
+ {{ curr.event_prev | markdown }} +
+{% endif %} +{% endif %} + +{% if next is not null %} +{% if curr is not null %} +
+

{{ trans('general.home.live.next') }}

+
{{ next.event_title | raw }}
+
{{ next.event_prev | markdown }}
+
+{% else %} +
+

{{ trans('general.home.live.next') }}

+
{{ next.event_title | raw }}
+
{{ next.event_prev | markdown }}
+
+{% endif %} +{% endif %} +
+
+{% endif %} \ No newline at end of file diff --git a/resources/views/home.twig b/resources/views/home.twig index 11ebdc1..3eabeba 100644 --- a/resources/views/home.twig +++ b/resources/views/home.twig @@ -52,7 +52,8 @@
-

We are live!

+

{{ trans('general.home.live.wearelive') }}

+