Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • d1656298/client-project
  • d1634883/client-project
2 results
Show changes
Commits on Source (23)
Showing
with 333 additions and 122 deletions
......@@ -36,7 +36,7 @@ public class LandmarksController {
// current functionality only prints successful Landmarks, (todo )database integration is necessary here
ModelAndView modelAndView = new ModelAndView("redirect:/test.html");
ModelAndView modelAndView = new ModelAndView("redirect:/allTrails");
return modelAndView;
}
......
......@@ -29,7 +29,7 @@ public class WebpageController {
@GetMapping("/home")
public ModelAndView getHome(){
ModelAndView modelAndView = new ModelAndView("home");
ModelAndView modelAndView = new ModelAndView("towns/home/homePage");
return modelAndView;
}
......
......@@ -12,7 +12,7 @@ public class Trail {
new Trail(2,"Trail2", "This is trail two"),
new Trail(3,"Trail3", "This is trail three"),
new Trail(4,"Trail4", "This is trail four"),
new Trail(5,"Trail5", "EDITING THIS")
new Trail(5,"Trail5", "This trail is an example of a trail that does not have an image")
);
int id;
String name;
......
......@@ -4,37 +4,40 @@
body {
background-color: rgb(41, 41, 41);
margin: 0;
display: flex;
flex-direction: column;
min-height: 100svh;
}
main {
}
.centerFlex {
display: flex;
justify-content: center;
}
#allTrailsBar {
padding:0;
max-width: 80%;
height: 11svh;
margin: 1svh auto;
width: 100%;
height: auto;
/*margin: 1svh auto;*/
padding: 0 5svh;
display: flex;
justify-content: space-between;
/*border-bottom: solid grey 2px;*/
/*border-top: solid grey 4px;*/
flex-wrap: wrap;
justify-content: space-evenly;
}
.trailsImages {
margin: auto;
height: 10svh;
width: 10svh;
margin: 1svh auto;
height: 12svh;
width: auto;
border-radius: 20px;
border: solid grey 2px;
transition: 0.5s ease-out 100ms;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.85);
}
.trailsImages:hover {
box-shadow: 0 0 20px 10px #bbbb00;
transform: scale(1.2,1.2);
!important; overflow: visible;
}
.selected {
......@@ -49,10 +52,8 @@ main {
}
#trailInfoContainer {
margin: auto;
width: 95svw;
min-height: 40svh;
min-width: 30svw;
overflow: scroll;
}
.trailInfoFrag {
......@@ -60,62 +61,74 @@ main {
border: #000000 solid 2px;
border-radius: 10px;
box-shadow: 0 5px 20px 0 #000000;
margin:0;
padding:0;
margin: 2svh auto;
padding-bottom: 2svw;
width: 70vw;
height: auto;
min-height: 30svh;
animation: fadeIn 3s;
overflow: hidden;
display: flex;
flex-direction: column;
min-width: 30svh;
& h1 {
color: white;
display: grid;
grid-template-areas:
"header header header"
"image text text";
grid-template-columns: 30% 30% auto;
grid-template-rows: 10% auto;
grid-column-gap: 2vw;
grid-row-gap: 2svh;
& .trailInfoHeader {
grid-area: header;
margin: 10px 25%;
font-size: xx-large;
text-align: center;
border-bottom: #1e1e1e solid 2px;
}
}
width: 100%;
height: 100%;
margin-top: 1svh;
padding: 0;
& h1 {
color: white;
padding:0;
margin:0 25%;
font-size: 2vw;
text-align: center;
box-shadow: 0 10px 10px -10px black;
}
#trailFragContent {
margin: 0;
padding: 0;
display: flex;
overflow: hidden;
min-height: 40svh;
max-height: 60svh;
}
& img {
grid-area: image;
border-radius: 10px;
border: black solid 1px;
margin: 1%;
flex: 1 1;
min-width: 20%;
max-width: 40%;
min-height: 20svh;
max-height: 90%;
overflow: hidden;
margin-left: 2vw;
margin-right: 2vw;
width: 100%;
height: auto;
box-shadow: 0 10px 20px -10px black;
}
& p {
grid-area: text;
color: white;
flex: 1 1;
padding: 5%;
width: 60%;
border-left: solid darkgrey 2px;
font-size: x-large;
margin: 0;
padding: 0 2vw;
font-size: 1.3vw;
text-align: justify;
text-justify: inter-character;
line-height: 1.5;
width: fit-content;
height: fit-content;
overflow: scroll;
}
}
#trailFragContent {
margin: 0;
padding: 0;
display: flex;
min-height: 40svh;
flex-wrap: wrap;
}
header {
box-shadow: #1e1e1e 0 0 10px 10px;
font-size: 1vw;
}
footer {
position: relative;
bottom: 0;
}
\ No newline at end of file
body{
background-color: rgb(41, 41, 41)
}
#homeTitle{
grid-area: pageTitle;
color: whitesmoke;
}
.submitLand{
grid-area: submitButton;
}
.caerphillyBanner , .riscaBanner,.penarthBanner{
margin-top: 20px;
background-color: darkslategrey;
margin-bottom: 20px;
border: solid 2px whitesmoke;
/*border colour here at .banner and .bannertrail*/
border-right: none;
}
.caerphillyBannerTrail,.riscaBannerTrail,.penarthBannerTrail{
background-color: darkslategrey;
margin-top: 20px;
margin-bottom: 20px;
border: solid 2px whitesmoke;
border-left: none;
text-align: center;
}
.penarthBannerTrail{
background-image: linear-gradient(to right, darkslategrey , darkgoldenrod 40%);
}
.caerphillyBannerTrail{
margin-top: 20px;
margin-bottom: 20px;
border: solid 2px whitesmoke;
border-left: none;
background-image: linear-gradient(to right, darkslategrey , darkgoldenrod 30%);
}
.caerphillyBanner{
grid-area:townBannerC;
background-image: url('/images/CaerphillyCastle.jpg');
/*// from cadw*/
background-size: 850px 200px;
background-repeat: no-repeat;
background-position: left 35%;
color: inherit;
text-decoration: none;
/*filter: grayscale(30%);*/
}
/*!*https://www.stayinwales.co.uk/wales_picture.cfm?p=4454*! Risca img*/
.riscaBanner {
/* #caerUrl{*/
grid-area: townBannerR;
background-image: url('/images/RiscaBanner.jpg');
background-size: 850px 200px;
background-repeat: no-repeat;
background-position: left 65%;
color: inherit;
text-decoration: none;
}
.penarthBanner {
grid-area: townBannerP;
background-image: url('/images/PenarthBanner.jpg');
background-size: 850px 200px;
background-repeat: no-repeat;
background-position: left 78%;
color: inherit;
text-decoration: none;
}
.caerphillyBannerTrail{
grid-area:townBannerDetsC;
}
.riscaBanner{
grid-area:townBannerR;
}
.riscaBannerTrail{
grid-area:townBannerDetsR;
}
.penarthBanner{
grid-area:townBannerP;
}
.penarthBannerTrail{
grid-area:townBannerDetsP;
}
#aboutUsFlavour{
grid-area: textFlavour;
margin-top: 25px;
margin-bottom: 15px;
color: whitesmoke;
}
#trailCountCaer,#trailCountRisca,#trailCountPenarth{
flex:1;
/*align-items: center;*/
/*justify-content: center;*/
}
#trailProgressCaer,#trailProgressRisca,#trailProgressPenarth{
flex:2;
align-content: center;
}
.gridContainer1{
display:grid;
grid-template-columns: 10% 10% 60% 5% 5% 10%;
grid-template-rows: auto;
grid-template-areas:
". pageTitle pageTitle pageTitle pageTitle ."
". . . submitButton submitButton ."
". townBannerC townBannerC townBannerDetsC . ."
". townBannerR townBannerR townBannerDetsR . ."
". townBannerP townBannerP townBannerDetsP . ."
" . . textFlavour . . .";
}
......@@ -3,6 +3,13 @@
padding: 0;
margin: 0;
}
#homeHead{
color: inherit;
text-decoration: none;
padding: 0;
margin: 0;}
.center {
text-align: center;
}
......
......@@ -3,13 +3,11 @@
border-bottom: 2px rgb(230, 230, 230) solid;
margin-bottom: 20px;
display: flex;
background: blueviolet;
background-color: rgb(84, 33, 128);
}
/* Navbar Links */
.navBar {
margin-top: 50px;
margin-left: auto;
margin-right:20px;
margin: 2svh 1vw 2svh auto;
text-align: right;
}
.work{
......@@ -20,11 +18,17 @@
display: flex;
margin-left: 100px;
}
.navBar a {
border-left: 2px rgb(185, 185, 185) solid;
padding: 10px 40px;
/*border-left: 2px rgb(185, 185, 185) solid;*/
/*padding: 10px 40px;*/
padding-left:5px ;padding-right: 5px;
text-decoration: none;
color:rgb(87, 86, 86);
/*color:rgb(87, 86, 86);*/
/*// original color*/
color:white;
white-space: nowrap;
overflow: hidden;
float: right;
......@@ -55,15 +59,18 @@
/* Footer */
footer {
margin-top:20px;
margin-top:auto;
display: flex;
justify-content: center;
background-color: rgb(84, 33, 128);
border-top: 2px rgb(230, 230, 230) solid;
font-size: 1vw;
}
.footerBar{
border-top: 2px rgb(230, 230, 230) solid;
text-align: left;
display: flex;
background: blueviolet;
color: rgb(255, 255, 255);
padding-left: 30px;
}
......@@ -90,4 +97,13 @@ footer {
.rightFooter{
flex:1;
color: rgb(255, 255, 255);
}
\ No newline at end of file
}
/*CHANGES*/
.headerBar, .footerBar{
margin:0px;
padding: 0px;
width: 100%;
}
src/main/resources/static/images/CaerphillyCastle.jpg

351 KiB

src/main/resources/static/images/PenarthBanner.jpg

263 KiB

src/main/resources/static/images/RiscaBanner.jpg

110 KiB

src/main/resources/static/images/trails/trail2.jpg

68.1 KiB | W: 0px | H: 0px

src/main/resources/static/images/trails/trail2.jpg

318 KiB | W: 0px | H: 0px

src/main/resources/static/images/trails/trail2.jpg
src/main/resources/static/images/trails/trail2.jpg
src/main/resources/static/images/trails/trail2.jpg
src/main/resources/static/images/trails/trail2.jpg
  • 2-up
  • Swipe
  • Onion skin
src/main/resources/static/images/trails/trail3.jpg

415 KiB | W: 0px | H: 0px

src/main/resources/static/images/trails/trail3.jpg

378 KiB | W: 0px | H: 0px

src/main/resources/static/images/trails/trail3.jpg
src/main/resources/static/images/trails/trail3.jpg
src/main/resources/static/images/trails/trail3.jpg
src/main/resources/static/images/trails/trail3.jpg
  • 2-up
  • Swipe
  • Onion skin
src/main/resources/static/images/trails/trail4.jpg

102 KiB | W: 0px | H: 0px

src/main/resources/static/images/trails/trail4.jpg

304 KiB | W: 0px | H: 0px

src/main/resources/static/images/trails/trail4.jpg
src/main/resources/static/images/trails/trail4.jpg
src/main/resources/static/images/trails/trail4.jpg
src/main/resources/static/images/trails/trail4.jpg
  • 2-up
  • Swipe
  • Onion skin
src/main/resources/static/images/trails/trailNotFound.jpg

73.8 KiB | W: 0px | H: 0px

src/main/resources/static/images/trails/trailNotFound.jpg

59.4 KiB | W: 0px | H: 0px

src/main/resources/static/images/trails/trailNotFound.jpg
src/main/resources/static/images/trails/trailNotFound.jpg
src/main/resources/static/images/trails/trailNotFound.jpg
src/main/resources/static/images/trails/trailNotFound.jpg
  • 2-up
  • Swipe
  • Onion skin
function updateOutputTrail(id) {
/* Updates the trail being shown on screen to the one requested by ID */
$.get("/allTrails/" + id).done(function (fragment) {
$("#trailInfoContainer").html(fragment)
$(".trailInfoFrag").replaceWith(fragment);
});
updateSelectedTrail(id);
}
......
......@@ -2,6 +2,7 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>All Trails</title>
<link rel="stylesheet" th:href="@{css/allTrails.css}">
<link rel="stylesheet" th:href="@{css/templatingstyle.css}">
......@@ -21,9 +22,12 @@
>
</section>
<section id="trailInfoContainer">
<h1 class="centerFlex">Please select your trail</h1>
<!--Loaded from thymeleaf-->
<section id="trailInfoContainer" class="trailInfoFrag">
<!--All this section is loaded from thymeleaf, based on what tail is selected
in the #allTrailsBar -->
<div class="trailInfoHeader">
<h1 class="centerFlex">Please select your trail</h1>
</div>
</section>
</main>
......
<article th:fragment="trailSection" class="trailInfoFrag">
<h1 th:text="${trail.getName()}"></h1>
<div id="trailFragContent">
<img th:src="@{${trail.getImgPath()}}" th:alt="${trail.getName()} ">
<p th:text="${trail.getDescription()}"></p>
<div class="trailInfoHeader">
<h1 th:text="${trail.getName()}"></h1>
</div>
<!--TODO add more to this fragment and then add styling to it-->
<img th:src="@{${trail.getImgPath()}}" th:alt="${trail.getName()} ">
<p id="trailDesc" th:text="${trail.getDescription()}"></p>
</article>
<!--<<<<<<< HEAD-->
<!--<header th:fragment="headerBlock">-->
<!-- <br>Header Block<br>-->
<!--</header>-->
<!--<footer th:fragment="footerBlock">-->
<!-- <br><b>VZTA</b><br>-->
<!-- <br>Near Me Now LTD<br>-->
<!-- <br>Britania House<br>-->
<!-- <br>Caerphilly Business Park<br>-->
<!-- <br>Caerphilly<br>-->
<!-- <br>CF83 3GG<br>-->
<!-- <br>(C) VZTA 2022<br>-->
<!-- <br><b>Follow Us</b><br>-->
<!-- <br>Facebook Twitter Instagram LinkedIn<br>-->
<!-- <br>Privacy Policy Terms and Conditions<br>-->
<!--</footer>-->
<!--=======-->
<link rel="stylesheet" href="../../static/css/templatingstyle.css">
<header class="headerBar" th:fragment="header">
<div class="Logo">
<img src="../../static/images/VZTA.png" height="97" width="400" alt="VZTA Logo"/>
</div>
<nav class="navBar">
<ul>
<li>Home</li>
<li>FAQs</li>
<li>Contact us</li>
</ul>
<label class="work">Who we Work with:</label>
<select>
<div class="Logo">
<img src="/images/VZTA.png" height="97" width="400" alt="VZTA Logo"/>
</div>
<nav class="navBar">
<ul>
<option value="localauthorities">Local Authorities</option>
<option value="towns">Towns</option>
<option value="businesses">Businesses</option>
<option value="consumers">Consumers</option>
<li><a id="homeHead" href="/home">Home</a></li>
<li>FAQs</li>
<li>Contact us</li>
</ul>
</select>
</nav>
<label class="work">Who we Work with:</label>
<select>
<ul>
<option value="localauthorities">Local Authorities</option>
<option value="towns">Towns</option>
<option value="businesses">Businesses</option>
<option value="consumers">Consumers</option>
</ul>
</select>
</nav>
</header>
<div class="footerBar" th:fragment="footer">
......@@ -59,10 +41,10 @@
<div class="centerFooter">
<span class="footerText">
<h3>Follow Us</h3>
<a href="https://www.facebook.com/VZTAsmarttowns/" class="icon"><img src="../../static/images/Facebook.png" height="25" width="25" alt="Facebook Logo" class="icon"/></a>
<a href="https://www.twitter.com/VZTAsmarttowns/" class="icon"><img src="../../static/images/Twitter.jpg" height="25" width="25" alt="X (formally Twitter) Logo" class="icon"/></a>
<a href="https://www.instagram.com/vztasmarttowns/" class="icon"><img src="../../static/images/Instagram.jpg" height="25" width="25" alt="Instagram Logo" class="icon"/></a>
<a href="https://www.linkin.com/company/vztasmarttowns/" class="icon"><img src="../../static/images/Linkedin.png" height="25" width="25" alt="Linkedin Logo" class="icon"/></a><br>
<a href="https://www.facebook.com/VZTAsmarttowns/" class="icon"><img src="/images/Facebook.png" height="25" width="25" alt="Facebook Logo" class="icon"/></a>
<a href="https://www.twitter.com/VZTAsmarttowns/" class="icon"><img src="/images/Twitter.jpg" height="25" width="25" alt="X (formally Twitter) Logo" class="icon"/></a>
<a href="https://www.instagram.com/vztasmarttowns/" class="icon"><img src="/images/Instagram.jpg" height="25" width="25" alt="Instagram Logo" class="icon"/></a>
<a href="https://www.linkin.com/company/vztasmarttowns/" class="icon"><img src="/images/Linkedin.png" height="25" width="25" alt="Linkedin Logo" class="icon"/></a><br>
</span>
</div>
<div class="copyright" style="text-align: left">
......
<!DOCTYPE html>
<html lang="en">
<style>
*{
body{
background-color: #36454F;
color: white;
}
......@@ -103,7 +103,7 @@
}
.landmarkTitle{
grid-area:landmarkTitle
grid-area:landmarkTitle;
}
.container{
display:grid;
......@@ -168,8 +168,10 @@
<head>
<meta charset="UTF-8">
<title>Caerphilly</title>
<link rel="stylesheet" th:href="@{/css/templatingstyle.css}">
</head>
<body>
<header th:insert="~{/towns/Templating.html::header}"></header>
<main>
<div class="container">
<h1 class="townName"> Welcome to the town of Caerphilly.</h1>
......@@ -213,6 +215,7 @@
</div>
</main>
<footer th:insert="~{/towns/Templating.html::footer}"></footer>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" th:href="@{/css/homePageStyle.css}">
<link rel="stylesheet" th:href="@{/css/templatingstyle.css}">
</head>
<body>
<header th:insert="~{/towns/Templating.html::header}"></header>
<main>
<div class="gridContainer1">
<H1 id="homeTitle"> VZTA Smart Towns - Trails</H1>
<a class="submitLand" href="/landmarkSubmission"> <button> Submit Landmark!</button></a>
<a href="/allTrails" class="caerphillyBanner">
<H2> Caerphilly</H2></a>
<div class="caerphillyBannerTrail">
<div id="trailCountCaer">Trails: 3</div>
<div id="trailProgressCaer">70%</div>
</div>
<a href="/allTrails" class="riscaBanner">
<H2> Risca</H2> </a>
<div class="riscaBannerTrail">
<div id="trailCountRisca">Trails: 2</div>
<div id="trailProgressRisca">0%</div>
</div>
<a href="/allTrails" class="penarthBanner">
<H2> Penarth</H2> </a>
<div class="penarthBannerTrail">
<div id="trailCountPenarth">Trails: 5</div>
<div id="trailProgressPenarth">60%</div>
</div>
<div id="aboutUsFlavour"> This is placeholder text about VZTA, this application,
the trails and towns and resultant awards written in an excitable manner!!</div>
</div>
</main>
<footer th:insert="~{/towns/Templating.html::footer}"></footer>
</body>
</html>