diff --git a/.envrc b/.envrc
new file mode 100644
index 00000000..3550a30f
--- /dev/null
+++ b/.envrc
@@ -0,0 +1 @@
+use flake
diff --git a/.gitignore b/.gitignore
index 1808dc61..95039b39 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,3 +30,5 @@ public/css/*.scss.css
.myradio.key
config.toml
public/css/*.scss.css.map
+
+.direnv/
diff --git a/Dockerfile b/Dockerfile
index 8038c880..ab3d9d7a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -9,16 +9,15 @@ RUN set -e && \
cp /usr/local/sassc-$SASS_VERSION/bin/sassc /usr/local/bin/sassc && \
rm -rf /usr/local/sassc-$SASS_VERSION /usr/local/libsass-$SASS_VERSION
-RUN mkdir -p /go/src/github.com/UniversityRadioYork/2016-site
-WORKDIR /go/src/github.com/UniversityRadioYork/2016-site
+WORKDIR /usr/src/app
-COPY . /go/src/github.com/UniversityRadioYork/2016-site
+COPY . /usr/src/app/
-EXPOSE 3000
-
-RUN go get -d -v
+RUN go get
ENV TZ "Europe/London"
+EXPOSE 3000
+
ENTRYPOINT echo "\033[0;31mWARNING: \033[0mRunning with Docker will change \"localhost\" to \"0.0.0.0\" in your config. Remember to change it back!" && \
sed -i 's/localhost/0.0.0.0/g' *.toml && make run
diff --git a/Makefile b/Makefile
index c030f1ef..d57adcf8 100644
--- a/Makefile
+++ b/Makefile
@@ -20,10 +20,10 @@ build-sass: $(SASS_SRC)
$(SASS_COMPILER) $(MAIN_FILE) $(OUTPUT_FILE) -t compressed
build-docker-image:
- docker build -t 2016-site .
+ docker build -t 201623-site .
docker:
- docker run -it --rm -p 3000:3000 -v $$GOPATH/src/github.com/UniversityRadioYork/2016-site:/go/src/github.com/UniversityRadioYork/2016-site 2016-site
+ docker run -it --rm -p 3000:3000 -v .:/usr/src/app 201623-site
clean:
rm -f $(OUTPUT_FILE) $(BINARY)
diff --git a/README.md b/README.md
index 6c4fc569..3f5dbcfa 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# 2016-site #
+# 201623-site #
## How to install ##
Full instructions for installation are available in the USING.md file.
diff --git a/USING.md b/USING.md
index c72a833e..1633f657 100644
--- a/USING.md
+++ b/USING.md
@@ -38,9 +38,9 @@ export GOPATH=~/go
#### Pulling from git
* Make sure GOPATH is set (`echo $GOPATH`)
-* `go get github.com/UniversityRadioYork/2016-site`
- * This downloads 2016-site to ~/go/src/github.com/UniversityRadioYork/2016-site along with all necessary dependencies
-* To update your working copy of the repo, running `go get` in the 2016-site directory, but you can also checkout to a specific branch if required:
+* `go get github.com/UniversityRadioYork/201623-site`
+ * This downloads 201623-site to ~/go/src/github.com/UniversityRadioYork/201623-site along with all necessary dependencies
+* To update your working copy of the repo, running `go get` in the 201623-site directory, but you can also checkout to a specific branch if required:
* `git checkout this-is-a-branch-name`
#### Running the server =====
@@ -51,7 +51,7 @@ export GOPATH=~/go
### Editing files
#### Ubuntu
-Trivial. Open a file editor and browse to ~/go/src/github.com/UniversityRadioYork/2016-site
+Trivial. Open a file editor and browse to ~/go/src/github.com/UniversityRadioYork/201623-site
#### Windows
* Windows likes to hide the actual files for the Ubuntu subsystem.
diff --git a/config.toml.example b/config.toml.example
index 2fd36bb1..dc839cbe 100644
--- a/config.toml.example
+++ b/config.toml.example
@@ -64,7 +64,6 @@
[pageContext.youtube]
APIKey = "AIzaSyCzI5Gvpq1hPlfjvB81EVc0vLv_11eW7NI"
- sessionsPlaylistID = "PLsxUDJzU4VKDudlmlYb-ImFKreFKAfFln"
cinPlaylistID = "PLsxUDJzU4VKAAH1pOogbzJx7pZgd-2zOx"
channelURL = "//youtube.com/ury1350"
diff --git a/controllers/about.go b/controllers/about.go
new file mode 100644
index 00000000..197de76d
--- /dev/null
+++ b/controllers/about.go
@@ -0,0 +1,43 @@
+package controllers
+
+import (
+ "log"
+ "net/http"
+
+ "github.com/UniversityRadioYork/2016-site/models"
+ "github.com/UniversityRadioYork/2016-site/structs"
+ "github.com/UniversityRadioYork/2016-site/utils"
+ "github.com/UniversityRadioYork/myradio-go"
+)
+
+// AboutController is the controller for the about page.
+type AboutController struct {
+ Controller
+}
+
+// NewAboutController returns a new AboutController with the MyRadio session s
+// and configuration context c.
+func NewAboutController(s *myradio.Session, c *structs.Config) *AboutController {
+ return &AboutController{Controller{session: s, config: c}}
+}
+
+// Get handles the HTTP GET request r for the about us page, writing to w.
+func (aboutC *AboutController) Get(w http.ResponseWriter, r *http.Request) {
+ teamM := models.NewTeamModel(aboutC.session)
+ teams, err := teamM.GetAll()
+ if err != nil {
+ log.Println(err)
+ utils.RenderTemplate(w, aboutC.config.PageContext, nil, "404.tmpl")
+ return
+ }
+ data := struct {
+ Teams []myradio.Team
+ }{
+ Teams: teams,
+ }
+ err = utils.RenderTemplate(w, aboutC.config.PageContext, data, "about.tmpl")
+ if err != nil {
+ log.Println(err)
+ return
+ }
+}
diff --git a/controllers/index.go b/controllers/index.go
index 5556659b..932adb26 100644
--- a/controllers/index.go
+++ b/controllers/index.go
@@ -19,7 +19,7 @@ type IndexController struct {
type RenderData struct {
CurrentAndNext *myradio.CurrentAndNext
Banners []myradio.Banner
- Teams []myradio.Team
+ Timeslots []myradio.Timeslot
Podcasts []myradio.Podcast
MsgBoxError bool
ShowOnAir bool
@@ -36,7 +36,7 @@ func (ic *IndexController) Get(w http.ResponseWriter, r *http.Request) {
// This is where any form params would be parsed
model := models.NewIndexModel(ic.session)
- currentAndNext, banners, teams, podcasts, showOnAir, err := model.Get()
+ currentAndNext, banners, timeslots, podcasts, showOnAir, err := model.Get()
if err != nil {
log.Println(err)
@@ -46,7 +46,7 @@ func (ic *IndexController) Get(w http.ResponseWriter, r *http.Request) {
data := RenderData{
CurrentAndNext: currentAndNext,
Banners: banners,
- Teams: teams,
+ Timeslots: timeslots,
Podcasts: podcasts,
ShowOnAir: showOnAir,
MsgBoxError: false,
@@ -64,7 +64,7 @@ func (ic *IndexController) Post(w http.ResponseWriter, r *http.Request) {
// Get all the data for the webpage
model := models.NewIndexModel(ic.session)
- currentAndNext, banners, teams, podcasts, showOnAir, err := model.Get()
+ currentAndNext, banners, timeslots, podcasts, showOnAir, err := model.Get()
if err != nil {
log.Println(err)
@@ -74,7 +74,7 @@ func (ic *IndexController) Post(w http.ResponseWriter, r *http.Request) {
data := RenderData{
CurrentAndNext: currentAndNext,
Banners: banners,
- Teams: teams,
+ Timeslots: timeslots,
Podcasts: podcasts,
ShowOnAir: showOnAir,
MsgBoxError: false,
diff --git a/controllers/static.go b/controllers/static.go
index 5e914147..87e374c5 100644
--- a/controllers/static.go
+++ b/controllers/static.go
@@ -19,15 +19,6 @@ func NewStaticController(c *structs.Config) *StaticController {
return &StaticController{Controller{config: c}}
}
-// GetAbout handles the HTTP GET request r for the About page, writing to w.
-func (staticC *StaticController) GetAbout(w http.ResponseWriter, r *http.Request) {
- err := utils.RenderTemplate(w, staticC.config.PageContext, nil, "about.tmpl")
- if err != nil {
- log.Println(err)
- return
- }
-}
-
// GetContact handles the HTTP GET request r for the Contact page, writing to w.
func (staticC *StaticController) GetContact(w http.ResponseWriter, r *http.Request) {
err := utils.RenderTemplate(w, staticC.config.PageContext, nil, "contact.tmpl")
diff --git a/controllers/team.go b/controllers/team.go
index 278718d4..81cc1dfd 100644
--- a/controllers/team.go
+++ b/controllers/team.go
@@ -51,24 +51,3 @@ func (teamC *TeamController) Get(w http.ResponseWriter, r *http.Request) {
return
}
}
-
-// GetAll handles the HTTP GET request r for the all teams page, writing to w.
-func (teamC *TeamController) GetAll(w http.ResponseWriter, r *http.Request) {
- teamM := models.NewTeamModel(teamC.session)
- teams, err := teamM.GetAll()
- if err != nil {
- log.Println(err)
- utils.RenderTemplate(w, teamC.config.PageContext, nil, "404.tmpl")
- return
- }
- data := struct {
- Teams []myradio.Team
- }{
- Teams: teams,
- }
- err = utils.RenderTemplate(w, teamC.config.PageContext, data, "teams.tmpl")
- if err != nil {
- log.Println(err)
- return
- }
-}
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 00000000..4361d4a3
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,61 @@
+{
+ "nodes": {
+ "flake-utils": {
+ "inputs": {
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1694529238,
+ "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1696757521,
+ "narHash": "sha256-cfgtLNCBLFx2qOzRLI6DHfqTdfWI+UbvsKYa3b3fvaA=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "2646b294a146df2781b1ca49092450e8a32814e1",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "flake-utils": "flake-utils",
+ "nixpkgs": "nixpkgs"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 00000000..b95c6cd6
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,25 @@
+{
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
+ flake-utils.url = "github:numtide/flake-utils";
+ };
+
+ outputs = { self, nixpkgs, flake-utils }:
+ flake-utils.lib.eachDefaultSystem(system:
+ let
+ pkgs = import nixpkgs {
+ inherit system;
+ };
+ inherit (pkgs) lib;
+ in
+ {
+ devShells.default = pkgs.mkShell {
+ nativeBuildInputs = with pkgs; [
+ sassc
+ gnumake
+ go
+ ];
+ };
+ }
+ );
+}
diff --git a/models/index.go b/models/index.go
index dd07e3d7..f826e209 100644
--- a/models/index.go
+++ b/models/index.go
@@ -19,7 +19,7 @@ func NewIndexModel(s *myradio.Session) *IndexModel {
//
// On success, it returns the current and next show, and nil.
// Otherwise, it returns undefined data and the error causing failure.
-func (m *IndexModel) Get() (currentAndNext *myradio.CurrentAndNext, banners []myradio.Banner, teams []myradio.Team, podcasts []myradio.Podcast, showOnAir bool, err error) {
+func (m *IndexModel) Get() (currentAndNext *myradio.CurrentAndNext, banners []myradio.Banner, timeslots []myradio.Timeslot, podcasts []myradio.Podcast, showOnAir bool, err error) {
currentAndNext, err = m.session.GetCurrentAndNext()
if err != nil {
return
@@ -28,12 +28,14 @@ func (m *IndexModel) Get() (currentAndNext *myradio.CurrentAndNext, banners []my
if err != nil {
return
}
-
- teams, err = m.session.GetCurrentTeams()
+ timeslots, err = m.session.GetPreviousTimeslots(11)
if err != nil {
return
}
-
+ // If show currently on air, remove it from previous timeslots
+ if currentAndNext.Current.Id != 0 {
+ timeslots = timeslots[1:11]
+ }
//Get 10 podcasts from page 0 (the latest podcasts)
allpodcasts, err := m.session.GetAllPodcasts(10, 0, false)
if err != nil {
diff --git a/models/on_demand.go b/models/on_demand.go
index 6b19f4e9..292f8205 100644
--- a/models/on_demand.go
+++ b/models/on_demand.go
@@ -24,12 +24,12 @@ func (m *OnDemandModel) GetLastMixcloudTimeslots() (timeslots []myradio.Timeslot
if err != nil {
return
}
- currrentAndNext, err := m.session.GetCurrentAndNext()
+ currentAndNext, err := m.session.GetCurrentAndNext()
if err != nil {
return
}
// If show currently on air, remove it from previous timeslots
- if currrentAndNext.Current.Id != 0 {
+ if currentAndNext.Current.Id != 0 {
timeslots = timeslots[1:11]
}
return
diff --git a/public/images/AboutUs.svg b/public/images/AboutUs.svg
new file mode 100644
index 00000000..6d13f82f
--- /dev/null
+++ b/public/images/AboutUs.svg
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+ URY-Plain-WithSpace-White
+
+
+
+
+
+
+
+
+
+
+
+
+ URY-Plain-WithSpace-White
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/images/ContactUs.svg b/public/images/ContactUs.svg
new file mode 100644
index 00000000..7bbe6868
--- /dev/null
+++ b/public/images/ContactUs.svg
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+ URY-Plain-WithSpace-White
+
+
+
+
+
+
+
+
+
+
+
+
+ URY-Plain-WithSpace-White
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/images/GetInvolved.svg b/public/images/GetInvolved.svg
new file mode 100644
index 00000000..1685dd8d
--- /dev/null
+++ b/public/images/GetInvolved.svg
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+ URY-Plain-WithSpace-White
+
+
+
+
+
+
+
+
+
+
+
+
+ URY-Plain-WithSpace-White
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/images/OnTap.svg b/public/images/OnTap.svg
new file mode 100644
index 00000000..b729fc30
--- /dev/null
+++ b/public/images/OnTap.svg
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+ URY-Plain-WithSpace-White
+
+
+
+
+
+
+
+
+
+
+
+
+ URY-Plain-WithSpace-White
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/images/Teams.svg b/public/images/Teams.svg
new file mode 100644
index 00000000..55fda2c5
--- /dev/null
+++ b/public/images/Teams.svg
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+ URY-Plain-WithSpace-White
+
+
+
+
+
+
+
+
+
+
+
+
+ URY-Plain-WithSpace-White
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/images/bg-banner-1.jpg b/public/images/bg-banner-1.jpg
index d2db02ae..851dc681 100644
Binary files a/public/images/bg-banner-1.jpg and b/public/images/bg-banner-1.jpg differ
diff --git a/public/images/bg-banner-2.jpg b/public/images/bg-banner-2.jpg
index d91a75d3..8937299e 100644
Binary files a/public/images/bg-banner-2.jpg and b/public/images/bg-banner-2.jpg differ
diff --git a/public/images/drone-banner.jpg b/public/images/drone-banner.jpg
index cd86c671..125775fe 100644
Binary files a/public/images/drone-banner.jpg and b/public/images/drone-banner.jpg differ
diff --git a/public/js/index.js b/public/js/index.js
index f5a8eb65..eaeb41bc 100644
--- a/public/js/index.js
+++ b/public/js/index.js
@@ -52,30 +52,6 @@ function getYoutubeFeed(playlistid, results, htmlid) {
""
);
}
- if (isIndex && htmlid === "#sessions-videos") {
- $(htmlid).append(
- '
"
- );
- }
- if (isOD && htmlid === "#sessions-videos") {
- $(htmlid).append(
- '"
- );
- }
if (isIndex && htmlid === "#cin-videos") {
$(htmlid).append(
'' +
@@ -151,12 +127,6 @@ countdown();
//Youtube slideshow for index page
function onGoogleLoad() {
- if (isIndex) {
- getYoutubeFeed(youtubeSessionsPlaylistID, 7, "#sessions-videos");
- }
- if (isOD) {
- getYoutubeFeed(youtubeSessionsPlaylistID, 15, "#sessions-videos");
- }
if (isIndex) {
getYoutubeFeed(youtubeCINPlaylistID, 7, "#cin-videos");
}
diff --git a/sass/base/_backgrounds.scss b/sass/base/_backgrounds.scss
index 8737aff4..7a004e57 100644
--- a/sass/base/_backgrounds.scss
+++ b/sass/base/_backgrounds.scss
@@ -49,11 +49,6 @@
background: none !important;
}
-.bg-sessions {
- background: desaturate($music-purple, 20%);
- color: $white;
-}
-
.bg-podcasts {
background: $computing-grey;
color: $white;
diff --git a/sass/base/_uryCard.scss b/sass/base/_uryCard.scss
index 7596ac0c..bc901981 100644
--- a/sass/base/_uryCard.scss
+++ b/sass/base/_uryCard.scss
@@ -10,10 +10,11 @@ a.ury-card,
background: $show-bg;
color: $show-txt-color;
transition: $transition-time;
-
+ border-radius: $border-curve-radius;
// Override the ancher tag defaults
display: block;
text-decoration: none;
+ padding: $internal-padding;
&:hover {
background: tint($show-bg, 70%);
@@ -24,8 +25,7 @@ a.ury-card,
padding-top: 100%;
background-repeat: no-repeat;
background-size: cover !important; //propotional resize
-
-
+ border-radius: $internal-curve-radius;
}
.ury-card-body {
@@ -54,10 +54,6 @@ a.ury-card,
}
}
- &.sessions {
- background: $music-purple;
- }
-
&.cin {
color: $cin-background;
background: $cin-primary;
@@ -71,8 +67,6 @@ a.ury-card,
flex-direction: column;
}
}
-
-
.team-card {
a.card-body {
color: #343a40;
diff --git a/sass/base/_variables.scss b/sass/base/_variables.scss
index 6846a903..f712aacb 100644
--- a/sass/base/_variables.scss
+++ b/sass/base/_variables.scss
@@ -39,9 +39,9 @@ $mobile-font-size: 10px;
$mobile-max-width: 770px;
//Current and Next
-$current-next-now-bg: #003367;
-$current-next-next-bg: rgba(0, 51, 103, .85);
-$current-next-txt-color: #ffffff;
+$current-next-now-bg: #f3f3f3;
+$current-next-next-bg: rgba(243, 243, 243, .85);
+$current-next-txt-color: #002d5a;
//Schedule block colours
$blocks-sustainer-color: $secondary-color;
$blocks-regular-color: $off-white-color;
@@ -50,3 +50,7 @@ $blocks-regular-color: $off-white-color;
$custom-scrollbar-color: #FFF;
$transition-time: 350ms;
+
+$border-curve-radius: 1.25rem;
+$internal-padding: 0.5rem;
+$internal-curve-radius: calc(#{$border-curve-radius} - #{$internal-padding});
diff --git a/sass/elements/_currentAndNext.scss b/sass/elements/_currentAndNext.scss
index d9da4409..7491c78a 100644
--- a/sass/elements/_currentAndNext.scss
+++ b/sass/elements/_currentAndNext.scss
@@ -23,18 +23,21 @@
}
.current-next-container {
max-width: 950px;
+ border-radius: $border-curve-radius;
}
.current-and-next {
color: white;
overflow: hidden;
+ border-radius: $border-curve-radius;
.current-and-next-img {
background: $current-next-now-bg;
-
+ padding: 0.5rem;
img {
width: 100%;
height: auto;
+ border-radius: 0.75rem;
}
}
diff --git a/sass/elements/_navbar.scss b/sass/elements/_navbar.scss
index 1745cb48..692b2c66 100644
--- a/sass/elements/_navbar.scss
+++ b/sass/elements/_navbar.scss
@@ -1,5 +1,5 @@
$nav-background: rgba(255, 255, 255, .97);
-$nav-bottom-border: 1px solid rgba(2, 45, 89, .3);
+$nav-bottom-border: .4rem solid rgba(0, 45, 90, .97);
$nav-links-color: rgb(2, 45, 89);
// How fast search expands and shrinks
@@ -10,6 +10,8 @@ $nav-links-color: rgb(2, 45, 89);
backdrop-filter: blur(5px);
background: $nav-background;
border-bottom: $nav-bottom-border;
+ border-radius: 0 0 $border-curve-radius $border-curve-radius;
+ background-clip: padding-box;
a {
color: $nav-links-color;
diff --git a/sass/elements/_onDemand.scss b/sass/elements/_onDemand.scss
index 81653a5a..46a0c83d 100644
--- a/sass/elements/_onDemand.scss
+++ b/sass/elements/_onDemand.scss
@@ -17,3 +17,6 @@
.view-more-link {
font-size: 1.5rem;
}
+.podcasts-container{
+ padding: 5rem 5rem 1rem 5rem;
+}
diff --git a/sass/elements/_schedule.scss b/sass/elements/_schedule.scss
index 1d51b4a4..e5d0398f 100644
--- a/sass/elements/_schedule.scss
+++ b/sass/elements/_schedule.scss
@@ -200,8 +200,9 @@ $sustainer-color: tint($primary-color, 40%);
margin: auto;
margin-bottom: 10px;
padding: 10px;
- border-radius: 2px;
-
+ border-radius: $border-curve-radius;
+ padding-bottom: 2rem;
+ padding-right: 2rem;
tr {
height: 70px;
}
diff --git a/sass/main.scss b/sass/main.scss
index e14f73ee..b5f049af 100644
--- a/sass/main.scss
+++ b/sass/main.scss
@@ -42,6 +42,9 @@
footer {
color: #646464;
background: $off-white-color;
+ border-top: 2rem;
+ border-radius: $border-curve-radius $border-curve-radius 0 0;
+ margin-top: -2rem;
a {
color: $link-color-dark;
@@ -49,6 +52,7 @@ footer {
.row {
min-height: 3em;
+ padding: 15px
}
}
@@ -342,9 +346,10 @@ footer {
.show-img {
border: $off-white-color 7px solid;
background-color: $primary-color;
+ border-radius: $border-curve-radius;
@include media-breakpoint-up(md) {
- margin-top: -3em;
+ margin-top: -7rem;
}
}
@@ -396,4 +401,29 @@ body {
.mainPageGrowingSpacer{
flex-grow: 1;
background-color: $off-white-color;
-}
\ No newline at end of file
+}
+
+.container-padded{
+ border-bottom: 2rem solid transparent;
+ margin-top: -2rem;
+ border-radius: $border-curve-radius $border-curve-radius 0 0;
+ padding-top: 2rem;
+}
+.pageTitleImage{
+ max-inline-size: 90%;
+ max-height: 15rem;
+}
+.teams-banner {
+ background: url("/images/drone-banner.jpg") center center no-repeat;
+ background-size: cover;
+ color: $white;
+
+ // Padding for mobile
+ padding: calc(5em + 60px) 0 5em;
+
+ // Padding for desktop
+ @include media-breakpoint-up(md) {
+ // Remove the height of the nav bar roughly 60px
+ padding: calc(5em + 60px) 0 5em;
+ }
+}
diff --git a/server.go b/server.go
index a9af44b6..6127f5a4 100644
--- a/server.go
+++ b/server.go
@@ -108,7 +108,9 @@ func NewServer(c *structs.Config) (*Server, error) {
getRouter.HandleFunc("/people/{id:[0-9]+}/", pc.Get)
teamC := controllers.NewTeamController(session, c)
- getRouter.HandleFunc("/teams/", teamC.GetAll)
+ getRouter.HandleFunc("/teams/", func(w http.ResponseWriter, r *http.Request) {
+ http.Redirect(w, r, "/about/", http.StatusFound)
+ })
getRouter.HandleFunc("/teams/{alias}/", teamC.Get)
getinvolvedC := controllers.NewGetInvolvedController(session, c)
@@ -117,8 +119,10 @@ func NewServer(c *structs.Config) (*Server, error) {
signupC := controllers.NewSignUpController(session, c)
postRouter.HandleFunc("/signup/", signupC.Post)
+ aboutC := controllers.NewAboutController(session, c)
+ getRouter.HandleFunc("/about/", aboutC.Get)
+
staticC := controllers.NewStaticController(c)
- getRouter.HandleFunc("/about/", staticC.GetAbout)
getRouter.HandleFunc("/contact/", staticC.GetContact)
getRouter.HandleFunc("/competitions/", staticC.GetCompetitions)
diff --git a/structs/config.go b/structs/config.go
index 6afdb296..8d7a672f 100644
--- a/structs/config.go
+++ b/structs/config.go
@@ -93,7 +93,6 @@ type Page struct {
type youtube struct {
APIKey string `toml:"apiKey"`
- SessionsPlaylistID string `toml:"sessionsPlaylistID"`
CINPlaylistID string `toml:"cinPlaylistID"`
ChannelURL string `toml:"channelURL"`
}
diff --git a/views/about.tmpl b/views/about.tmpl
index 51c31b9f..673c3fbc 100644
--- a/views/about.tmpl
+++ b/views/about.tmpl
@@ -11,86 +11,119 @@
{{end}}
{{define "content"}}
-
-
-
-
-
On Air, Online, On Demand
-
Broadcasting since 1968
+
+
-
-
-
-
Welcome to URY!
-
-
-
Who are we?
-
{{.PageContext.SiteDescription}}
-
The station is run by students for students, meaning the people behind the station understand what the listenership want to hear.
-
Our presenters cover a wide range of content. This includes a mixture of different genres and shows, which are tailor-made to different demographics. Our aim is to inform and entertain the students of the University of York.
-
-
-
Where are we?
-
URY's studios lie at the very heart of the campus in our own building in Vanbrugh College.
-
However, URY is not confined to the four walls of the station; we are always around the campus at major University and Student Union events, be it covering live music, recruiting new freshers or reporting on major news events.
-
- Find us on a map!
-
-
-
-
Our Teams
-
Behind the scenes, the main activities involved in running the station are broken down in teams, which contain officers
- who are responsible for specific areas of station activity.
-
URY is proud to have a large active membership, and encourages people to get involved, no matter what they want to
- do or how much time they can commit.
-
- Find out more about our teams!
-
+
+
+
Welcome to URY!
+
+
+
Who are we?
+
{{.PageContext.SiteDescription}}
+
The station is run by students for students, meaning the people behind the station understand what the listenership want to hear.
+
Our presenters cover a wide range of content, including a mixture of different genres and shows, all of which are tailor-made to different demographics. Our aim is to both inform and entertain the students of the University of York.
+
+
+
Where are we?
+
URY's studios lie at the very heart of the campus in our own building in Vanbrugh College.
+
However, URY is not confined to the four walls of the station; we are always around the campus at major University and Student Union events, be it covering live music, recruiting new freshers or reporting on major news events.
+
+ Find us on a map!
+
+
+
+
Our Teams
+
Behind the scenes, the main activities involved in running the station are broken down in teams, which contain officers
+ who are responsible for specific areas of station activity.
+
URY is proud to have a large active membership, and encourages people to get involved, no matter what they want to
+ do or how much time they can commit.
+
+ Scroll down to find out more about our teams!
+
+
-
-
-
-
How To Listen
-
There are many ways you can listen to URY, whether you’re a Uni of York student, friends and family of our presenters, or you’re just interested in what our student radio station has to offer.
-
-
-
On Air
-
FM Radio
-
We broadcast across campus and the city of York on 88.3MHz FM.
-
Whether you have a radio in your alarm clock or in your car (or even a 'proper' radio!), make sure to tune it to 88.3FM!
-
In Your Ears
-
URY can occasionally be heard out and about on campus, as we regularly attend campus events such as move-in days, Freshers’ Fairs, and Elections Result Night. If you hear us, come along and say hi!
-
-
-
Online
-
If you don't own a radio (or if your only radio is in your car and you want to listen to us outside) then don’t worry, as we broadcast online too.
-
URY Website
-
You can listen to us live through radioplayer (recommended), or via one of our streams:
-
-
Smart Speakers
-
We are also on TuneIn, which means you can listen to us via most smart speakers - simply say “Play University Radio York”.
-
iTunes Internet Radio
-
You can even find us on iTunes Radio: Internet Radio -> College/University -> ((URY)) - University Radio York
+
+
+
How To Listen
+
There are many ways you can listen to URY, whether you’re a Uni of York student, friends and family of our presenters, or you’re just interested in what our student radio station has to offer.
+
+
+
On Air
+
FM Radio
+
We broadcast across campus and the city of York on 88.3MHz FM.
+
Whether you have a radio in your alarm clock or in your car (or even a 'proper' radio!), make sure to tune it to 88.3FM!
+
In Your Ears
+
URY can occasionally be heard out and about on campus, as we regularly attend campus events such as move-in days, Freshers’ Fairs, and Elections Result Night. If you hear us, come along and say hi!
+
+
+
Online
+
If you don't own a radio (or if your only radio is in your car and you want to listen to us outside) then don’t worry, as we broadcast online too.
+
URY Website
+
You can listen to us live through radioplayer (recommended), or via one of our streams:
+
+
Smart Speakers
+
We are also on TuneIn, which means you can listen to us via most smart speakers - simply say “Play University Radio York”.
+
iTunes Internet Radio
+
You can even find us on iTunes Radio: Internet Radio -> College/University -> ((URY)) - University Radio York
+
+
+
On Tap
+
URY On Tap - Refreshing content when you need it the most.
+
At URY we understand that our listeners have very busy lives and you can’t always tune into your favourite show live, but never fear! The majority of our shows are automatically uploaded to Mixcloud, simply look for the show slot you missed on our schedule , and you'll have the option to listen back to it at your leisure.
+
Believe it or not, but radio can also be a visual medium - check out our YouTube content to see all of our latest live music and interviews.
+
If all of that wasn’t enough for you, we still produce the occasional podcast too! View all podcasts!
+
-
-
On Tap
-
URY On Tap - Refreshing content when you need it the most.
-
At URY we understand that our listeners have very busy lives and you can’t always tune into your favourite show live, but never fear! The majority of our shows are automatically uploaded to Mixcloud, simply look for the show slot you missed on our schedule , and you'll have the option to listen back to it at your leisure.
-
Believe it or not, but radio can also be a visual medium - check out our YouTube content to see all of our latest live music and interviews.
-
If all of that wasn’t enough for you, we still produce the occasional podcast too! View all podcasts!
+
+
+
+
+
Our Teams
+
+ {{with .PageData}}
+ {{range .Teams}}
+ {{if .Alias}}
+
+ {{end}}
+ {{end}}
+ {{end}}
+
-
-
+
Our History
{{/* Prevents bug where p would appear inline with h2 */}}
@@ -104,7 +137,7 @@
-
+
{{end}}
+
diff --git a/views/contact.tmpl b/views/contact.tmpl
index 1e06bea2..d72ed77f 100644
--- a/views/contact.tmpl
+++ b/views/contact.tmpl
@@ -17,13 +17,13 @@
-
Say hi to URY!
-
At URY, radio is a two-way medium.
+
+
At URY, radio is a two-way medium.
-
+
Our Instagram
@@ -78,7 +78,7 @@
Programme Controller
-
programme.controller@ury.org.uk
+
pc@ury.org.uk
The Programme Controller manages the quality of the station’s output and adhering to our licenses, please contact them if you have any enquiries on this.
diff --git a/views/elements/current_and_next.tmpl b/views/elements/current_and_next.tmpl
index be459571..e1ae71e9 100644
--- a/views/elements/current_and_next.tmpl
+++ b/views/elements/current_and_next.tmpl
@@ -3,7 +3,7 @@
{{with .CurrentAndNext}}
{{if .Current}}
-
+
+
+
{{.Title}}
+
{{.StartTime.Format "15:04 - Mon"}} • {{formatDuration .Duration}}
+
+
+
+ {{end}}
+
+
+
{{if .Podcasts}}
{{end}}
-
-
Live Music on URY
-
-
-
{{end}}
{{end}}
@@ -110,7 +126,6 @@
-
-
-{{end}}
diff --git a/views/podcast.tmpl b/views/podcast.tmpl
index 832ca129..886f0336 100644
--- a/views/podcast.tmpl
+++ b/views/podcast.tmpl
@@ -36,7 +36,7 @@
{{with .PageData}}
-
+
-
+
Embed this podcast...
diff --git a/views/podcasts.tmpl b/views/podcasts.tmpl
index 53ff15ee..90f8656e 100644
--- a/views/podcasts.tmpl
+++ b/views/podcasts.tmpl
@@ -20,7 +20,7 @@
{{with .PageData}}
-