Added user to every page, preparing for special access rights.
This commit is contained in:
parent
89c74f4925
commit
1aa6895aec
|
@ -0,0 +1,105 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
viewBox="0 0 64.000001 64.000001"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="TAA.svg"
|
||||
inkscape:export-filename="/home/andrew/Programming/Projects/Teaching_Assistant_Assistant/src/main/resources/static/images/logo.png"
|
||||
inkscape:export-xdpi="360"
|
||||
inkscape:export-ydpi="360">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="11.2"
|
||||
inkscape:cx="24.365199"
|
||||
inkscape:cy="32.206088"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1030"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-988.36216)">
|
||||
<rect
|
||||
style="opacity:1;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect4136"
|
||||
width="60"
|
||||
height="60"
|
||||
x="1"
|
||||
y="991.36218"
|
||||
ry="16" />
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot4138"
|
||||
style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
transform="matrix(2.0532963,0,0,2.0532963,-37.008,965.44742)"><flowRegion
|
||||
id="flowRegion4140"><rect
|
||||
id="rect4142"
|
||||
width="18.125"
|
||||
height="26.249994"
|
||||
x="27.5"
|
||||
y="9.8928566" /></flowRegion><flowPara
|
||||
id="flowPara4144"
|
||||
style="fill:#ffffff;fill-opacity:1">T</flowPara></flowRoot> <flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot4154"
|
||||
style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
transform="matrix(1.3900147,0,0,1.3900147,-2.1586653,998.49896)"><flowRegion
|
||||
id="flowRegion4156"><rect
|
||||
id="rect4158"
|
||||
width="18.125"
|
||||
height="26.249994"
|
||||
x="27.5"
|
||||
y="9.8928566" /></flowRegion><flowPara
|
||||
id="flowPara4160"
|
||||
style="fill:#ffffff;fill-opacity:1">A</flowPara></flowRoot> <flowRoot
|
||||
transform="matrix(1.3900147,0,0,1.3900147,-29.448313,998.49896)"
|
||||
style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="flowRoot4162"
|
||||
xml:space="preserve"><flowRegion
|
||||
id="flowRegion4164"><rect
|
||||
y="9.8928566"
|
||||
x="27.5"
|
||||
height="26.249994"
|
||||
width="18.125"
|
||||
id="rect4166" /></flowRegion><flowPara
|
||||
style="fill:#ffffff;fill-opacity:1"
|
||||
id="flowPara4168">A</flowPara></flowRoot> </g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
|
@ -37,7 +37,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
|||
.and()
|
||||
|
||||
.authorizeRequests()
|
||||
.antMatchers("/css/**")
|
||||
.antMatchers("/css/**", "/images/**")
|
||||
.permitAll()
|
||||
.and()
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.PostMapping;
|
|||
* Controller for the list of courses in the system.
|
||||
*/
|
||||
@Controller
|
||||
public class CoursesController {
|
||||
public class CoursesController extends UserPageController {
|
||||
|
||||
private CourseRepository courseRepository;
|
||||
|
||||
|
|
|
@ -1,22 +1,14 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.security.UserDetails;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
@Controller
|
||||
public class RootController {
|
||||
public class RootController extends UserPageController {
|
||||
|
||||
@RequestMapping(
|
||||
path = "/",
|
||||
produces = "text/html"
|
||||
)
|
||||
public String index(Authentication authentication, Model model) {
|
||||
UserDetails userDetails = (UserDetails) authentication.getPrincipal();
|
||||
model.addAttribute("user", userDetails.getUser());
|
||||
@GetMapping("/")
|
||||
public String index(Model model) {
|
||||
return "index";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.GetMapping;
|
|||
* Controller for operations dealing with the global collection of students, not particular to one course.
|
||||
*/
|
||||
@Controller
|
||||
public class StudentsController {
|
||||
public class StudentsController extends UserPageController {
|
||||
|
||||
private StudentRepository studentRepository;
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ import java.util.Optional;
|
|||
* Controller for the list of teaching assistants in the system.
|
||||
*/
|
||||
@Controller
|
||||
public class TeachingAssistantsController {
|
||||
public class TeachingAssistantsController extends UserPageController {
|
||||
|
||||
private TeachingAssistantRepository teachingAssistantRepository;
|
||||
private CourseRepository courseRepository;
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.security.User;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.security.UserDetails;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
|
||||
/**
|
||||
* An abstract controller which simplifies the definition of controllers for pages that require a user to be signed in.
|
||||
*/
|
||||
public abstract class UserPageController {
|
||||
|
||||
/**
|
||||
* A shortcut to get the current authenticated user.
|
||||
* @param auth The spring authentication.
|
||||
* @return The user that's logged in.
|
||||
*/
|
||||
@ModelAttribute("user")
|
||||
protected User getUser(Authentication auth) {
|
||||
UserDetails userDetails = (UserDetails) auth.getPrincipal();
|
||||
return userDetails.getUser();
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.repositories.CourseRepository;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
@ -13,7 +14,7 @@ import java.util.Optional;
|
|||
* Controller for the course entity, that is, one individual course.
|
||||
*/
|
||||
@Controller
|
||||
public class CourseEntity {
|
||||
public class CourseEntity extends UserPageController {
|
||||
|
||||
private CourseRepository courseRepository;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.repositories.CourseRepository;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
@ -7,7 +8,7 @@ import org.springframework.ui.Model;
|
|||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
@Controller
|
||||
public class CreateCourse {
|
||||
public class CreateCourse extends UserPageController {
|
||||
|
||||
private CourseRepository courseRepository;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.repositories.CourseRepository;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.util.sample_data.CourseGenerator;
|
||||
|
@ -10,7 +11,7 @@ import org.springframework.web.bind.annotation.GetMapping;
|
|||
import java.util.List;
|
||||
|
||||
@Controller
|
||||
public class Generate {
|
||||
public class Generate extends UserPageController {
|
||||
|
||||
private CourseRepository courseRepository;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses.entity;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.teams.StudentTeam;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.repositories.CourseRepository;
|
||||
|
@ -22,7 +23,7 @@ import java.util.Optional;
|
|||
* Controller for importing students from a CSV sheet.
|
||||
*/
|
||||
@Controller
|
||||
public class ImportStudents {
|
||||
public class ImportStudents extends UserPageController {
|
||||
|
||||
private CourseRepository courseRepository;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses.entity.student_teams;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.Student;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.teams.StudentTeam;
|
||||
|
@ -18,7 +19,7 @@ import java.util.Optional;
|
|||
* Controller for exporting team information into readable files.
|
||||
*/
|
||||
@Controller
|
||||
public class ExportStudentTeams {
|
||||
public class ExportStudentTeams extends UserPageController {
|
||||
|
||||
private CourseRepository courseRepository;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses.entity.student_teams;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.teams.StudentTeam;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.repositories.CourseRepository;
|
||||
|
@ -15,7 +16,7 @@ import java.io.IOException;
|
|||
import java.util.Optional;
|
||||
|
||||
@Controller
|
||||
public class GenerateRepositories {
|
||||
public class GenerateRepositories extends UserPageController {
|
||||
|
||||
private CourseRepository courseRepository;
|
||||
private StudentTeamRepository studentTeamRepository;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses.entity.student_teams;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.teams.StudentTeam;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.repositories.CourseRepository;
|
||||
|
@ -20,7 +21,7 @@ import java.util.Optional;
|
|||
* TODO: Implement this functionality automatically.
|
||||
*/
|
||||
@Controller
|
||||
public class MergeSingleTeams {
|
||||
public class MergeSingleTeams extends UserPageController {
|
||||
|
||||
private Logger logger = LogManager.getLogger(MergeSingleTeams.class);
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses.entity.student_teams;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.Student;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.teams.StudentTeam;
|
||||
|
@ -20,7 +21,7 @@ import java.util.List;
|
|||
import java.util.Optional;
|
||||
|
||||
@Controller
|
||||
public class StudentTeamEntity {
|
||||
public class StudentTeamEntity extends UserPageController {
|
||||
|
||||
private StudentTeamRepository studentTeamRepository;
|
||||
private CourseRepository courseRepository;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses.entity.student_teams;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.teams.StudentTeam;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.repositories.CourseRepository;
|
||||
|
@ -15,7 +16,7 @@ import java.util.Optional;
|
|||
* Updates branch protection for all student repositories in a given course.
|
||||
*/
|
||||
@Controller
|
||||
public class UpdateBranchProtection {
|
||||
public class UpdateBranchProtection extends UserPageController {
|
||||
|
||||
private CourseRepository courseRepository;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses.entity.students;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.Student;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.repositories.CourseRepository;
|
||||
|
@ -17,7 +18,7 @@ import java.util.List;
|
|||
import java.util.Optional;
|
||||
|
||||
@Controller
|
||||
public class InviteAllToRepository {
|
||||
public class InviteAllToRepository extends UserPageController {
|
||||
|
||||
private CourseRepository courseRepository;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses.entity.teaching_assistant_teams;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.teams.StudentTeam;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.teams.TeachingAssistantTeam;
|
||||
|
@ -14,7 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|||
import java.util.*;
|
||||
|
||||
@Controller
|
||||
public class AssignToStudentTeams {
|
||||
public class AssignToStudentTeams extends UserPageController {
|
||||
|
||||
private CourseRepository courseRepository;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses.entity.teaching_assistant_teams;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.TeachingAssistant;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.teams.TeachingAssistantTeam;
|
||||
|
@ -15,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|||
import java.util.Optional;
|
||||
|
||||
@Controller
|
||||
public class CreateTeachingAssistantTeam {
|
||||
public class CreateTeachingAssistantTeam extends UserPageController {
|
||||
|
||||
private CourseRepository courseRepository;
|
||||
private TeachingAssistantRepository teachingAssistantRepository;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.courses.entity.teaching_assistant_teams;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.teams.TeachingAssistantTeam;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.repositories.CourseRepository;
|
||||
|
@ -12,7 +13,7 @@ import org.springframework.web.bind.annotation.PathVariable;
|
|||
import java.util.Optional;
|
||||
|
||||
@Controller
|
||||
public class TeachingAssistantTeamEntity {
|
||||
public class TeachingAssistantTeamEntity extends UserPageController {
|
||||
|
||||
private CourseRepository courseRepository;
|
||||
private TeachingAssistantTeamRepository teachingAssistantTeamRepository;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.students;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.Course;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.Student;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.repositories.CourseRepository;
|
||||
|
@ -17,7 +18,7 @@ import java.util.Optional;
|
|||
* Controller for creating a new student.
|
||||
*/
|
||||
@Controller
|
||||
public class StudentCreateController {
|
||||
public class StudentCreateController extends UserPageController {
|
||||
|
||||
/**
|
||||
* A constant which defines what value is returned if the user says that the newly created student should not be
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.students;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.Student;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.repositories.StudentRepository;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
@ -13,7 +14,7 @@ import java.util.Optional;
|
|||
* Controller for a single student entity.
|
||||
*/
|
||||
@Controller
|
||||
public class StudentEntityController {
|
||||
public class StudentEntityController extends UserPageController {
|
||||
|
||||
private StudentRepository studentRepository;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package nl.andrewlalis.teaching_assistant_assistant.controllers.teaching_assistants;
|
||||
|
||||
import nl.andrewlalis.teaching_assistant_assistant.controllers.UserPageController;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.people.TeachingAssistant;
|
||||
import nl.andrewlalis.teaching_assistant_assistant.model.repositories.TeachingAssistantRepository;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
@ -13,7 +14,7 @@ import java.util.Optional;
|
|||
* Controller for a single teaching assistant entity.
|
||||
*/
|
||||
@Controller
|
||||
public class TeachingAssistantEntityController {
|
||||
public class TeachingAssistantEntityController extends UserPageController {
|
||||
|
||||
private TeachingAssistantRepository teachingAssistantRepository;
|
||||
|
||||
|
|
|
@ -1,17 +1,9 @@
|
|||
.footer_bar {
|
||||
background-color: darkslategray;
|
||||
color: whitesmoke;
|
||||
height: 30px;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
z-index: -1; /* Make this footer appear above all other things. */
|
||||
body {
|
||||
padding-bottom: 110px;
|
||||
}
|
||||
|
||||
.third {
|
||||
width: 33%;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
.footer {
|
||||
background-color: darkslategray;
|
||||
color: whitesmoke;
|
||||
height: 100px;
|
||||
}
|
|
@ -1,45 +1,13 @@
|
|||
body {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background-color: whitesmoke;
|
||||
}
|
||||
|
||||
.header_bar {
|
||||
.header {
|
||||
background-color: green;
|
||||
width: 100%;
|
||||
color: whitesmoke;
|
||||
padding-bottom: 20px;
|
||||
padding-top: 20px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.header_title {
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
width: 25%;
|
||||
display: inline;
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.header_link_list {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 75%;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.header_link_list li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.header_link_list a {
|
||||
.header a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
background-color: darkgreen;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.header_link_list a:hover {
|
||||
background-color: darkgray;
|
||||
.header a:hover {
|
||||
color: lightgray;
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
body {
|
||||
font-family: sans-serif;
|
||||
background-color: white;
|
||||
padding-bottom: 70px;
|
||||
}
|
||||
|
||||
.content_container {
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
Binary file not shown.
After Width: | Height: | Size: 9.3 KiB |
|
@ -5,19 +5,32 @@
|
|||
</head>
|
||||
<body>
|
||||
|
||||
<footer th:fragment="footer" class="footer_bar">
|
||||
<!-- <link rel="stylesheet" href="../../../resources/static/css/footer.css" th:href="@{/css/footer.css}"/>-->
|
||||
|
||||
<!-- <div class="third">-->
|
||||
<!-- First third of footer-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="third">-->
|
||||
<!-- Middle of footer-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="third">-->
|
||||
<!-- Right side of footer.-->
|
||||
<!-- </div>-->
|
||||
<footer th:fragment="footer" class="container-fluid footer fixed-bottom">
|
||||
<link rel="stylesheet" th:href="@{/css/footer.css}" type="text/css"/>
|
||||
|
||||
<div class="row text-center">
|
||||
<div class="col-sm-12 col-md-4">
|
||||
<h5>Quick Links</h5>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-4">
|
||||
<h5>More links</h5>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-4">
|
||||
<h5>Yet more links</h5>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 text-center">
|
||||
Social media icons go here.
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 text-center">
|
||||
<p class="h6">
|
||||
© 2019 Andrew Lalis, all rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -7,16 +7,36 @@
|
|||
<body>
|
||||
|
||||
|
||||
<nav th:fragment="header" class="header_bar">
|
||||
<link rel="stylesheet" href="../../../resources/static/css/header.css" th:href="@{/css/header.css}"/>
|
||||
<h1 class="header_title">Teaching Assistant <em>Assistant</em></h1>
|
||||
<ul class="header_link_list">
|
||||
<li><a href="/" th:href="@{/}">Home</a>
|
||||
<li><a href="/courses" th:href="@{/courses}">Courses</a>
|
||||
<li><a href="/students" th:href="@{/students}">Students</a></li>
|
||||
<li><a href="/teaching_assistants" th:href="@{/teaching_assistants}">Teaching Assistants</a></li>
|
||||
<li><a href="/logout" th:href="@{/logout}">Log Out</a></li>
|
||||
<nav th:fragment="header" class="navbar navbar-expand navbar- header">
|
||||
<link rel="stylesheet" th:href="@{/css/header.css}"/>
|
||||
|
||||
<a class="navbar-brand" href="/">
|
||||
<img src="/../resources/static/images/logo.png" th:src="@{/images/logo.png}" class="d-inline-block align-top" alt="" width="30" height="30"/>
|
||||
Teaching Assistant Assistant
|
||||
</a>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" th:href="@{/}">Home</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" th:href="@{/courses}">Courses</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" th:href="@{/students}">Students</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" th:href="@{/teaching_assistants}">
|
||||
Teaching Assistants
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" th:href="@{/logout}">
|
||||
Log out (Logged in as <span th:text="${user.getPerson().getFullName()}"></span>)
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -4,10 +4,14 @@
|
|||
<meta charset="UTF-8">
|
||||
<title th:replace="${title}">basic_page</title>
|
||||
<link rel="stylesheet" href="../../../resources/static/css/style.css" th:href="@{/css/style.css}" />
|
||||
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"/>
|
||||
<link rel="icon" th:href="@{/images/favicon.ico}"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header th:if="${user != null}">
|
||||
<div th:replace="~{fragments/header :: header}"></div>
|
||||
</header>
|
||||
|
||||
<div class="content_container">
|
||||
<div th:replace="${content}">
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" th:fragment="layout (title, content, sidebar_content)" xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title th:replace="${title}">basic_page</title>
|
||||
<link rel="stylesheet" href="../../../resources/static/css/style.css" th:href="@{/css/style.css}" />
|
||||
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"/>
|
||||
<link rel="icon" th:href="@{/images/favicon.ico}"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header th:replace="~{fragments/header :: header}"></header>
|
||||
|
||||
<div class="content_container">
|
||||
<div th:replace="${content}">
|
||||
<p>
|
||||
Basic page content block.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sidebar_container">
|
||||
<div th:replace="${sidebar_content}">
|
||||
<p>
|
||||
Basic page sidebar block.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="~{fragments/footer :: footer}"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,5 +1,5 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns:th="http://www.thymeleaf.org" lang="en">
|
||||
<html xmlns:th="http://www.thymeleaf.org" th:replace="~{layouts/basic_page :: layout (~{::title}, ~{::#content}, ~{::#sidebar})}" lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Login</title>
|
||||
|
@ -7,7 +7,7 @@
|
|||
</head>
|
||||
<body>
|
||||
|
||||
<section class="container">
|
||||
<section id="content" class="container">
|
||||
<div class="row justify-content-center">
|
||||
<h1>Teaching Assistant <em>Assistant</em></h1>
|
||||
</div>
|
||||
|
@ -47,33 +47,9 @@
|
|||
</div>
|
||||
</section>
|
||||
|
||||
<section class="fixed-bottom">
|
||||
<div class="container-fluid">
|
||||
<div class="row text-center">
|
||||
<div class="col-xs-12 col-4">
|
||||
<h5>Quick Links</h5>
|
||||
<div id="sidebar">
|
||||
|
||||
</div>
|
||||
<div class="col-xs-12 col-4">
|
||||
<h5>More links</h5>
|
||||
</div>
|
||||
<div class="col-xs-12 col-4">
|
||||
<h5>Yet more links</h5>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 text-center">
|
||||
Social media icons go here.
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 text-center">
|
||||
<p class="h6">
|
||||
© 2019 Andrew Lalis, all rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue