From 173489a29aa2349f1a4c9c09d9aec448c78b24c3 Mon Sep 17 00:00:00 2001 From: Nils Gerstner Date: Fri, 1 Sep 2017 16:01:31 +0200 Subject: [PATCH] signIn madness --- com.rotanareg.skolan.iml | 7 +- docs/JavaEE_Project.pdf | Bin 0 -> 110841 bytes docs/jcdb.txt | 16 +++ pom.xml | 21 ++- .../CourseUserAssociation.java | 73 +++++++++++ .../CourseUserAssociationId.java | 25 ++++ .../com/rotanareg/skolan/AttendanceBean.java | 109 ++++++++++++++++ src/main/java/com/rotanareg/skolan/Role.java | 4 +- .../java/com/rotanareg/skolan/UserBean.java | 87 +++++++++++++ .../attendancePersist/AttendanceEntity.java | 98 ++++++++++++++ .../attendancePersist/AttendanceService.java | 35 +++++ .../AttendanceServiceImpl.java | 92 +++++++++++++ .../skolan/coursePersist/CourseEntity.java | 54 +++++--- .../skolan/coursePersist/CourseService.java | 9 +- .../coursePersist/CourseServiceImpl.java | 7 +- .../skolan/domains/AttendanceDomain.java | 80 ++++++++++++ .../com/rotanareg/skolan/domains/Course.java | 15 +++ .../com/rotanareg/skolan/signIn/LoggedIn.java | 26 ++++ .../com/rotanareg/skolan/signIn/SignIn.java | 49 +++++++ .../java/com/rotanareg/skolan/user/DateB.java | 21 --- .../user/admin/admindomain/AdminDomain.java | 4 - .../user/admin/adminejb/AdminService.java | 4 - .../user/admin/adminejb/AdminServiceImpl.java | 4 - .../skolan/user/admin/adminjpa/Admin.java | 4 - .../skolan/user/admin/adminjsf/AdminBean.java | 4 - .../student/studentdomain/StudentDomain.java | 4 - .../student/studentejb/StudentService.java | 4 - .../studentejb/StudentServiceImpl.java | 4 - .../user/student/studentjpa/Student.java | 4 - .../user/student/studentjsf/StudentBean.java | 5 - .../teacher/teacherdomain/TeacherDomain.java | 4 - .../teacherejb/TeacherServiceImpl.java | 4 - .../teacher/teacherejb/TeaherService.java | 4 - .../user/teacher/teacherjpa/Teacher.java | 4 - .../user/teacher/teacherjsf/TeacherBean.java | 4 - .../userManager/EmailAddressValidator.java | 20 --- .../skolan/userManager/PhoneNumber.java | 28 ---- .../userManager/PhoneNumberConverter.java | 45 ------- .../userManager/PhoneNumberValidator.java | 33 ----- .../rotanareg/skolan/userManager/SignIn.java | 40 ------ .../rotanareg/skolan/userManager/User.java | 123 ------------------ .../skolan/userManager/UserDetail.java | 30 ----- .../skolan/userManager/UserManager.java | 60 --------- .../skolan/userManager/UserService.java | 9 -- .../skolan/userManager/UserServiceImpl.java | 23 ---- .../skolan/userManager/ValidEmailAddress.java | 20 --- .../skolan/userPersist/UserEntity.java | 39 +++++- .../skolan/userPersist/UserService.java | 6 +- .../skolan/userPersist/UserServiceImpl.java | 10 +- src/main/resources/META-INF/persistence.xml | 12 +- src/main/webapp/WEB-INF/faces-config.xml | 21 ++- src/main/webapp/admin.xhtml | 22 ++-- src/main/webapp/course.xhtml | 11 -- src/main/webapp/course_detail.xhtml | 24 ---- src/main/webapp/course_details.xhtml | 20 +-- src/main/webapp/create_course.xhtml | 29 ----- src/main/webapp/inc/inc_form_login.xhtml | 28 ++++ src/main/webapp/index.xhtml | 22 +--- .../webapp/resources/skolan/css/style.css | 83 ------------ .../resources/skolan/images/testBild2.jpg | Bin 93028 -> 0 bytes .../resources/skolan/theme/blueheven.css | 62 --------- src/main/webapp/signIn.xhtml | 57 ++++---- src/main/webapp/stats.xhtml | 31 +++++ src/main/webapp/stats_test.xhtml | 41 ++++++ src/main/webapp/student.xhtml | 93 +++---------- src/main/webapp/teacher.xhtml | 25 ++-- .../webapp/templates/footer_template.xhtml | 12 -- src/main/webapp/templates/form_login.xhtml | 28 ++++ .../webapp/templates/header_template.xhtml | 12 -- src/main/webapp/templates/page_template.xhtml | 41 ------ .../webapp/templates/template_footer.xhtml | 2 +- src/main/webapp/templates/template_page.xhtml | 2 + .../webapp/templates/top_panel_template.xhtml | 11 -- src/main/webapp/user_detail.xhtml | 76 +++++------ 74 files changed, 1102 insertions(+), 1038 deletions(-) create mode 100644 docs/JavaEE_Project.pdf create mode 100644 docs/jcdb.txt create mode 100644 src/main/java/com/rotanareg/skolan/AssociatedPersist/CourseUserAssociation.java create mode 100644 src/main/java/com/rotanareg/skolan/AssociatedPersist/CourseUserAssociationId.java create mode 100644 src/main/java/com/rotanareg/skolan/AttendanceBean.java create mode 100644 src/main/java/com/rotanareg/skolan/UserBean.java create mode 100644 src/main/java/com/rotanareg/skolan/attendancePersist/AttendanceEntity.java create mode 100644 src/main/java/com/rotanareg/skolan/attendancePersist/AttendanceService.java create mode 100644 src/main/java/com/rotanareg/skolan/attendancePersist/AttendanceServiceImpl.java create mode 100644 src/main/java/com/rotanareg/skolan/domains/AttendanceDomain.java create mode 100644 src/main/java/com/rotanareg/skolan/signIn/LoggedIn.java create mode 100644 src/main/java/com/rotanareg/skolan/signIn/SignIn.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/DateB.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/admin/admindomain/AdminDomain.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/admin/adminejb/AdminService.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/admin/adminejb/AdminServiceImpl.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/admin/adminjpa/Admin.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/admin/adminjsf/AdminBean.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/student/studentdomain/StudentDomain.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/student/studentejb/StudentService.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/student/studentejb/StudentServiceImpl.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/student/studentjpa/Student.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/student/studentjsf/StudentBean.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/teacher/teacherdomain/TeacherDomain.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/teacher/teacherejb/TeacherServiceImpl.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/teacher/teacherejb/TeaherService.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/teacher/teacherjpa/Teacher.java delete mode 100644 src/main/java/com/rotanareg/skolan/user/teacher/teacherjsf/TeacherBean.java delete mode 100644 src/main/java/com/rotanareg/skolan/userManager/EmailAddressValidator.java delete mode 100644 src/main/java/com/rotanareg/skolan/userManager/PhoneNumber.java delete mode 100644 src/main/java/com/rotanareg/skolan/userManager/PhoneNumberConverter.java delete mode 100644 src/main/java/com/rotanareg/skolan/userManager/PhoneNumberValidator.java delete mode 100644 src/main/java/com/rotanareg/skolan/userManager/SignIn.java delete mode 100644 src/main/java/com/rotanareg/skolan/userManager/User.java delete mode 100644 src/main/java/com/rotanareg/skolan/userManager/UserDetail.java delete mode 100644 src/main/java/com/rotanareg/skolan/userManager/UserManager.java delete mode 100644 src/main/java/com/rotanareg/skolan/userManager/UserService.java delete mode 100644 src/main/java/com/rotanareg/skolan/userManager/UserServiceImpl.java delete mode 100644 src/main/java/com/rotanareg/skolan/userManager/ValidEmailAddress.java delete mode 100644 src/main/webapp/course.xhtml delete mode 100644 src/main/webapp/course_detail.xhtml delete mode 100644 src/main/webapp/create_course.xhtml create mode 100644 src/main/webapp/inc/inc_form_login.xhtml delete mode 100644 src/main/webapp/resources/skolan/css/style.css delete mode 100644 src/main/webapp/resources/skolan/images/testBild2.jpg delete mode 100644 src/main/webapp/resources/skolan/theme/blueheven.css create mode 100644 src/main/webapp/stats.xhtml create mode 100644 src/main/webapp/stats_test.xhtml delete mode 100644 src/main/webapp/templates/footer_template.xhtml create mode 100644 src/main/webapp/templates/form_login.xhtml delete mode 100644 src/main/webapp/templates/header_template.xhtml delete mode 100644 src/main/webapp/templates/page_template.xhtml delete mode 100644 src/main/webapp/templates/top_panel_template.xhtml diff --git a/com.rotanareg.skolan.iml b/com.rotanareg.skolan.iml index 0ed5a4b..50a4b38 100644 --- a/com.rotanareg.skolan.iml +++ b/com.rotanareg.skolan.iml @@ -15,7 +15,9 @@ - + + + @@ -33,7 +35,6 @@ - @@ -41,5 +42,7 @@ + + \ No newline at end of file diff --git a/docs/JavaEE_Project.pdf b/docs/JavaEE_Project.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0d1b21a9293dd728d1a9d05aa71f27b2f661b4fc GIT binary patch literal 110841 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 literal 0 HcmV?d00001 diff --git a/docs/jcdb.txt b/docs/jcdb.txt new file mode 100644 index 0000000..198828d --- /dev/null +++ b/docs/jcdb.txt @@ -0,0 +1,16 @@ +F�r att skapa connection poolen och resursen jdbc/school, +k�r f�ljande kommando i asadmin +(OBS: ni m�ste eventuellt anpassa l�senordet...) + +------------------------------------------------------- + + +(Om DB inte igång, skriv: "start-domain" kommando tolken) + +create-jdbc-connection-pool --datasourceclassname org.postgresql.ds.PGSimpleDataSource --restype javax.sql.XADataSource --property portNumber=5432:password=LexiconJava:user=postgres:serverName=localhost:databaseName=school jpa_school_postgresql_pool + + + +create-jdbc-resource --connectionpoolid jpa_school_postgresql_pool jdbc/school + +stop-domain \ No newline at end of file diff --git a/pom.xml b/pom.xml index cdfa35e..de98012 100644 --- a/pom.xml +++ b/pom.xml @@ -36,20 +36,27 @@ javaee-api 7.0 - - - org.primefaces - primefaces - 6.1 - org.eclipse.persistence org.eclipse.persistence.jpa 2.6.4 + + + postgresql + postgresql + 8.1-404.jdbc3 + + + + org.primefaces + primefaces + 6.0 + + - + \ No newline at end of file diff --git a/src/main/java/com/rotanareg/skolan/AssociatedPersist/CourseUserAssociation.java b/src/main/java/com/rotanareg/skolan/AssociatedPersist/CourseUserAssociation.java new file mode 100644 index 0000000..348f753 --- /dev/null +++ b/src/main/java/com/rotanareg/skolan/AssociatedPersist/CourseUserAssociation.java @@ -0,0 +1,73 @@ +package com.rotanareg.skolan.AssociatedPersist; + +import com.rotanareg.skolan.coursePersist.CourseEntity; +import com.rotanareg.skolan.userPersist.UserEntity; + +import javax.persistence.*; + +/** + * Created by Nils Gerstner on 2017-08-31. + */ + +@Entity +@Table(name="COURSE_USER") +@IdClass(CourseUserAssociationId.class) +public class CourseUserAssociation { + + @Id + private long courseId; + @Id + private long personId; + + @Column(name="IS_TEACHER") + private boolean isTeacher; + + @ManyToOne + @PrimaryKeyJoinColumn(name="COURSEID", referencedColumnName = "ID") + private CourseEntity course; + @ManyToOne + @PrimaryKeyJoinColumn(name="PERSONID", referencedColumnName = "ID") + + private UserEntity person; + + public long getCourseId() { + return courseId; + } + + public void setCourseId(Long courseId) { + this.courseId = courseId; + } + + public long getPersonId() { + return personId; + } + + public void setPersonId(Long personId) { + this.personId = personId; + } + + public boolean isTeacher() { + return isTeacher; + } + + public void setTeacher(boolean teacher) { + isTeacher = teacher; + } + + public CourseEntity getCourse() { + return course; + } + + public void setCourse(CourseEntity course) { + this.course = course; + } + + public UserEntity getPerson() { + return person; + } + + public void setPerson(UserEntity person) { + this.person = person; + } +} + diff --git a/src/main/java/com/rotanareg/skolan/AssociatedPersist/CourseUserAssociationId.java b/src/main/java/com/rotanareg/skolan/AssociatedPersist/CourseUserAssociationId.java new file mode 100644 index 0000000..0809eaa --- /dev/null +++ b/src/main/java/com/rotanareg/skolan/AssociatedPersist/CourseUserAssociationId.java @@ -0,0 +1,25 @@ +package com.rotanareg.skolan.AssociatedPersist; + +import java.io.Serializable; + +/** + * Created by Nils Gerstner on 2017-08-31. + */ +public class CourseUserAssociationId implements Serializable { + private long personId; + private long courseId; + + @Override + public int hashCode() { + return (int) (personId + courseId); + } + + @Override + public boolean equals(Object o) { + if (o instanceof CourseUserAssociationId) { + CourseUserAssociationId otherId = (CourseUserAssociationId) o; + return (otherId.personId == this.personId) && (otherId.courseId == this.courseId); + } + return false; + } +} diff --git a/src/main/java/com/rotanareg/skolan/AttendanceBean.java b/src/main/java/com/rotanareg/skolan/AttendanceBean.java new file mode 100644 index 0000000..f1fb8f4 --- /dev/null +++ b/src/main/java/com/rotanareg/skolan/AttendanceBean.java @@ -0,0 +1,109 @@ +/****************************** + * JSF - Managed-Bean, hämta info till/från xhtml filen. (Mellan Back och Front -end.) + ******************************/ + +//TODO: inkludera logik + +package com.rotanareg.skolan; + +import com.rotanareg.skolan.attendancePersist.*; +import com.rotanareg.skolan.domains.*; + +import javax.ejb.EJB; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.RequestScoped; +import java.sql.Date; +import java.util.List; + +/** + * Created by Marko K. Seppänen. + */ +@ManagedBean +@RequestScoped +public class AttendanceBean { + private Long id; + // private Course course; +// private User user; + private Date sqlDate; //yyyy-mm-dd + private boolean hasAttended; + + @EJB + AttendanceService aService; + + public String addCourse() { + if (getId() == null) { + aService.addAttendance(new AttendanceDomain(getDate(), isHasAttended())); + }else { + // Update +// aService.updateCourse(new AttendanceDomain(getId(), getDate(), isHasAttended())); + } + + setId(null); + setDate(null); + setHasAttended(false); + return "stats_test"; + } +/* + public String editCourse(Long id) { + CourseDomain courseDomain = courseService.getCourse(id); + setId(courseDomain.getId()); + setName(courseDomain.getName()); + setCode(courseDomain.getCode()); + return "course"; + } + + public String removeCourse(Long id) { + courseService.removeCourse(id); + return "course"; + } +*/ + public List getAttendances() { + return aService.getAttendances(); + } +/* + public List getCoursesFilter() { + if (myFilter == null || myFilter.equals("")) + return courseService.getCourses(); + else + return courseService.getCoursesNameContain(myFilter); + } +*/ + public String getSubmitButton() { + if (id == null) + return "Add"; + else + return "Update"; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Date getDate() { + return sqlDate; + } + + public void setDate(Date date) { + this.sqlDate = date; + } + + public boolean isHasAttended() { + return hasAttended; + } + + public void setHasAttended(boolean hasAttended) { + this.hasAttended = hasAttended; + } + + public AttendanceService getCourseService() { + return aService; + } + + public void setCourseService(AttendanceService courseService) { + this.aService = courseService; + } +} diff --git a/src/main/java/com/rotanareg/skolan/Role.java b/src/main/java/com/rotanareg/skolan/Role.java index 2601485..070e1ae 100644 --- a/src/main/java/com/rotanareg/skolan/Role.java +++ b/src/main/java/com/rotanareg/skolan/Role.java @@ -10,9 +10,9 @@ public enum Role { public String toString() { switch (this) { case STUDENT: - return "StudentJAS"; + return "Student"; case TEACHER: - return "TeacherJAS"; + return "Teacher"; case ADMIN: return "Admin"; } diff --git a/src/main/java/com/rotanareg/skolan/UserBean.java b/src/main/java/com/rotanareg/skolan/UserBean.java new file mode 100644 index 0000000..4c4e10c --- /dev/null +++ b/src/main/java/com/rotanareg/skolan/UserBean.java @@ -0,0 +1,87 @@ +package com.rotanareg.skolan; + +import java.util.List; + +import com.rotanareg.skolan.domains.User; +import com.rotanareg.skolan.userPersist.*; +import javax.ejb.EJB; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.RequestScoped; + + +@ManagedBean +@RequestScoped +public class UserBean { + private Long id; + private String name; + private String lastName; + private Role role; + private String passWord; + @EJB + UserService userService; + + public String addUser(){ + if (getId()==null) + userService.addUser(new User(name,lastName,role)); + else + userService.addUser(new User(getId(),getName(),getLastName(),getRole(),getPassWord())); + + setId(null); + setName(""); + setLastName(""); + setRole(null); + setPassWord(""); + return "user"; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public Role getRole() { + return role; + } + + public void setRole(Role role) { + this.role = role; + } + + public String getPassWord() { + return passWord; + } + + public void setPassWord(String passWord) { + this.passWord = passWord; + } + + public UserService getUserService() { + return userService; + } + + public void setUserService(UserService userService) { + this.userService = userService; + } + public UserService getUsers(){ + return userService; + } +} diff --git a/src/main/java/com/rotanareg/skolan/attendancePersist/AttendanceEntity.java b/src/main/java/com/rotanareg/skolan/attendancePersist/AttendanceEntity.java new file mode 100644 index 0000000..0bf086a --- /dev/null +++ b/src/main/java/com/rotanareg/skolan/attendancePersist/AttendanceEntity.java @@ -0,0 +1,98 @@ +/****************************** + * JPA Entity class defines whose instances can be stored in the database. + * The Entity represents your Data Object Model. + ******************************/ + +package com.rotanareg.skolan.attendancePersist; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; +//import java.util.*; +import java.sql.Date; +import java.text.DateFormat.*; +import java.text.*; + +/** + * Created by Marko K. Seppänen. + */ +/*@NamedQueries({ + @NamedQuery(name = "selectAll", query = "SELECT p FROM Course p"), + @NamedQuery(name = "selectSome", query = "SELECT t FROM Course t WHERE LOCATE(:filt,t.name) >0 ") +})*/ +@Entity +@Table(name = "Attendance") +@NamedQueries({ + @NamedQuery(name = "selectAll", query = "SELECT p FROM AttendanceEntity p"), + //@NamedQuery(name = "selectSome", query = "SELECT t FROM AttendanceEntity t WHERE LOCATE(:filt,t.name) >0 ") +}) +public class AttendanceEntity { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + //@NotNull + //private Long courseId; +/* private CourseEntity course; + + //@NotNull + //private Long userId; + private UserEntity user; +*/ + ////@Temporal(TemporalType.DATE) + ////@DateFormat(format = "yyyy-MM-dd") + //@NotNull + private Date sqlDate; //yyyy-mm-dd + private boolean hasAttended; + + public AttendanceEntity() { + } + + public AttendanceEntity(Date date, boolean hasAttended) { + this.sqlDate = date; + this.hasAttended = hasAttended; + } + + /* public AttendanceEntity(CourseEntity course, UserEntity user, Date sqlDate, boolean hasAttended) { + this.course = course; + this.user = user; + this.sqlDate = sqlDate; + this.hasAttended = hasAttended; + } +*/ + public Long getId() { + return id; + } + +/* public CourseEntity getCourse() { + return course; + } + + public void setCourse(CourseEntity course) { + this.course = course; + } + + public UserEntity getUser() { + return user; + } + + public void setUser(UserEntity user) { + this.user = user; + } +*/ + public Date getDate() { + return sqlDate; + } + + public void setDate(Date date) { + this.sqlDate = date; + } + + public boolean isHasAttended() { + return hasAttended; + } + + public void setHasAttended(boolean hasAttended) { + this.hasAttended = hasAttended; + } +} diff --git a/src/main/java/com/rotanareg/skolan/attendancePersist/AttendanceService.java b/src/main/java/com/rotanareg/skolan/attendancePersist/AttendanceService.java new file mode 100644 index 0000000..d4ed292 --- /dev/null +++ b/src/main/java/com/rotanareg/skolan/attendancePersist/AttendanceService.java @@ -0,0 +1,35 @@ +/****************************** + * EJB - Interface för våran tjänst ("kontrakt" för varje EJB att följa om den vill stödja tjänsten för Attendance) + ******************************/ + +package com.rotanareg.skolan.attendancePersist; + +import com.rotanareg.skolan.domains.*; + +import javax.ejb.Local; +import java.util.List; + +/** + * Created by Marko K. Seppänen. + */ +@Local +public interface AttendanceService { + + // (C)reate / add. + void addAttendance(AttendanceDomain attendance); +/* + // (R)ead / get. + AttendanceDomain getAttendance(Long id); + + // (U)pdate. + void updateAttendance(AttendanceDomain attendance); + + // (D)elete. + void deleteAttendance(Long id); +*/ + + List getAttendances(); +/* + public List getCoursesNameContain(String filter); + */ +} diff --git a/src/main/java/com/rotanareg/skolan/attendancePersist/AttendanceServiceImpl.java b/src/main/java/com/rotanareg/skolan/attendancePersist/AttendanceServiceImpl.java new file mode 100644 index 0000000..b05b446 --- /dev/null +++ b/src/main/java/com/rotanareg/skolan/attendancePersist/AttendanceServiceImpl.java @@ -0,0 +1,92 @@ +/****************************** + * EJB - Enterprise bean (EJB), som stödjer tjänsten AttendanceService. + ******************************/ + +package com.rotanareg.skolan.attendancePersist; + +import com.rotanareg.skolan.domains.*; + +import javax.ejb.Stateless; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; +import java.sql.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * Created by Marko K. Seppänen. + */ +@Stateless +public class AttendanceServiceImpl implements AttendanceService { + @PersistenceContext + EntityManager em; + + // (C)reate / add. + @Override + public void addAttendance(AttendanceDomain ad){ + AttendanceEntity dom = new AttendanceEntity(ad.getDate(), ad.isHasAttended()); // Create the Data Object Model + em.persist(dom); + } + + // (R)ead / get. +/* @Override + public AttendanceDomain getAttendance(Long id){ + Course c = em.find(Course.class, id); + return new CourseDomain(c.getId(), c.getName(), c.getCode()); + } + + // (U)pdate. + @Override + public void updateAttendance(AttendanceDomain attendance){ + Course c = em.find(Course.class, course.getId()); + c.setName(course.getName()); + c.setCode(course.getCode()); + em.merge(c); + + } + + // (D)elete. + @Override + public void deleteAttendance(Long id){ + Course c = em.find(Course.class, id); + em.remove(c); + } +*/ + + @Override + public List getAttendances() { + /*Query query = em.createQuery("select a from Course a where a.code = :lname and a.name = :fname", Course.class); + query.setParameter("lname", "Karlsson"); + query.setParameter("fname", "Kalle"); + */ + /*Query query = em.createQuery("select a from Attendance a where a.code = :lname and a.name = :fname", AttendanceEntity.class); + query.setParameter("lname", "Karlsson"); + query.setParameter("fname", "Kalle"); + */ + //List courseEntityList = em.createNamedQuery("selectAllCourses").getResultList(); + + /* + List courseRecords = query.getResultList(); + System.out.println("course Size " + courseRecords.size()); + */ + + List l = em.createNamedQuery("selectAll").getResultList(); + + return l.stream(). + map(a -> new AttendanceDomain(a.getId(), a.getDate(), a.isHasAttended())). + collect(Collectors.toList()); + } +/* + @Override + public List getCoursesNameContain(String filter) { + + List l = em.createNamedQuery("selectSome").setParameter("filt", filter).getResultList(); + + return l.stream(). + map(p -> new CourseDomain(p.getId(), p.getName(), p.getCode())). + collect(Collectors.toList()); + + } +*/ +} diff --git a/src/main/java/com/rotanareg/skolan/coursePersist/CourseEntity.java b/src/main/java/com/rotanareg/skolan/coursePersist/CourseEntity.java index 2f0df3b..3e3c188 100644 --- a/src/main/java/com/rotanareg/skolan/coursePersist/CourseEntity.java +++ b/src/main/java/com/rotanareg/skolan/coursePersist/CourseEntity.java @@ -1,23 +1,21 @@ package com.rotanareg.skolan.coursePersist; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.NamedQueries; -import javax.persistence.NamedQuery; -import javax.persistence.Table; - - -/** - * Created by Solidbeans on 2017-03-20. - */ +import com.rotanareg.skolan.AssociatedPersist.CourseUserAssociation; +import com.rotanareg.skolan.Role; +import com.rotanareg.skolan.userPersist.UserEntity; + +import javax.persistence.*; + +import java.util.ArrayList; +import java.util.List; + + + @Entity @Table(name = "Course") @NamedQueries({ - @NamedQuery(name="selectAll",query="SELECT c FROM CourseEntity c"), - @NamedQuery(name="selectSome",query="SELECT t FROM CourseEntity t WHERE LOCATE(:filt,t.name) >0 ") + @NamedQuery(name="selectAllCourses",query="SELECT c FROM CourseEntity c"), + @NamedQuery(name="selectSomeCourses",query="SELECT t FROM CourseEntity t WHERE LOCATE(:filt,t.name) >0 ") }) public class CourseEntity { @@ -30,6 +28,9 @@ public class CourseEntity { private String description; private String courseNr; + @OneToMany(mappedBy="course") + private List persons; + public CourseEntity() { } @@ -70,4 +71,27 @@ public class CourseEntity { public void setCourseNr(String courseNr) { this.courseNr = courseNr; } + + public List getPersons() { + return persons; + } + public void addPerson (UserEntity person, boolean isTeacher) { + CourseUserAssociation courseUserAssociation = new CourseUserAssociation(); + if (person.getRole() == Role.ADMIN) { + System.out.println("Nor TEACHER or STUDENT; not added!"); + } else { + if (isTeacher && person.getRole() == Role.TEACHER) + courseUserAssociation.setTeacher(true); + else if (!isTeacher && person.getRole() != Role.STUDENT) + courseUserAssociation.setTeacher(false); + courseUserAssociation.setPerson(person); + courseUserAssociation.setCourse(this); + courseUserAssociation.setPersonId(person.getId()); + courseUserAssociation.setCourseId(this.getId()); + if (this.persons == null) + this.persons = new ArrayList<>(); + this.persons.add(courseUserAssociation); + } + } + } diff --git a/src/main/java/com/rotanareg/skolan/coursePersist/CourseService.java b/src/main/java/com/rotanareg/skolan/coursePersist/CourseService.java index 279a498..a455277 100644 --- a/src/main/java/com/rotanareg/skolan/coursePersist/CourseService.java +++ b/src/main/java/com/rotanareg/skolan/coursePersist/CourseService.java @@ -1,12 +1,11 @@ package com.rotanareg.skolan.coursePersist; -import java.util.List; -import javax.ejb.Local; import com.rotanareg.skolan.domains.Course; -/** - * Created by Solidbeans on 2017-03-20. - */ +import javax.ejb.Local; +import java.util.List; + + @Local public interface CourseService { diff --git a/src/main/java/com/rotanareg/skolan/coursePersist/CourseServiceImpl.java b/src/main/java/com/rotanareg/skolan/coursePersist/CourseServiceImpl.java index 2cbf259..a6fffd8 100644 --- a/src/main/java/com/rotanareg/skolan/coursePersist/CourseServiceImpl.java +++ b/src/main/java/com/rotanareg/skolan/coursePersist/CourseServiceImpl.java @@ -8,9 +8,6 @@ import javax.persistence.PersistenceContext; import java.util.List; import java.util.stream.Collectors; -/** - * Created by Solidbeans on 2017-03-20. - */ @Stateless public class CourseServiceImpl implements CourseService{ @@ -49,7 +46,7 @@ public class CourseServiceImpl implements CourseService{ @Override public List getCourses() { - List courseEntityList = em.createNamedQuery("selectAll").getResultList(); + List courseEntityList = em.createNamedQuery("selectAllCourses").getResultList(); if (courseEntityList.isEmpty()){ CourseEntity a = new CourseEntity("Engelska", "Du som behärskar engelska kommer långt. Engelska är ett världsspråk och antalet engelsktalande människor i världen ökar ständigt. Men engelska är inte bara samtal. Det är också litteratur att läsa och texter att skriva. Välkommen till oss när du vill förbättra din engelska!", @@ -71,7 +68,7 @@ public class CourseServiceImpl implements CourseService{ @Override public List getCoursesContaining(String filter) { - List courseEntityList = em.createNamedQuery("selectSome").setParameter("filt",filter).getResultList(); + List courseEntityList = em.createNamedQuery("selectSomeCourses").setParameter("filt",filter).getResultList(); return courseEntityList.stream(). map(c->new Course(c.getId(),c.getName(),c.getDescription(),c.getCourseNr())). diff --git a/src/main/java/com/rotanareg/skolan/domains/AttendanceDomain.java b/src/main/java/com/rotanareg/skolan/domains/AttendanceDomain.java new file mode 100644 index 0000000..025f2ea --- /dev/null +++ b/src/main/java/com/rotanareg/skolan/domains/AttendanceDomain.java @@ -0,0 +1,80 @@ +/****************************** + * POJO - Mellanskikt mellan AttendanceBean (vanlig böna) och EJB (Enterprise-böna), samt JPA (transformerings-klass). + * Inkapslings-klass (hjälp-klass) för att underlätta transporten av data mellan objekt. + ******************************/ + +package com.rotanareg.skolan.domains; + +import java.sql.Date; + +/** + * Created by Marko K. Seppänen. + */ +public class AttendanceDomain { + private Long id; +// private Course course; +// private User user; + private Date sqlDate; //yyyy-mm-dd + private boolean hasAttended; + + public AttendanceDomain(Date date, boolean hasAttended) { + this.sqlDate = date; + this.hasAttended = hasAttended; + } + + public AttendanceDomain(Long id, Date date, boolean hasAttended) { + this.id = id; + this.sqlDate = date; + this.hasAttended = hasAttended; + } + + /* public AttendanceDomain(Long id, Course course, User user, Date date, boolean hasAttended) { + this.id = id; + this.courseId = courseId; + this.userId = userId; + this.sqlDate = date; + this.hasAttended = hasAttended; + } +*/ + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + +/* public Course getCourse() { + return course; + } + + public void setCourse(Course course) { + this.course = course; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } +*/ + public Date getDate() { + return sqlDate; + } + + public void setDate(Date date) { + this.sqlDate = sqlDate; + } + + public boolean isHasAttended() { + return hasAttended; + } + + public void setHasAttended(boolean hasAttended) { + this.hasAttended = hasAttended; + } + +} diff --git a/src/main/java/com/rotanareg/skolan/domains/Course.java b/src/main/java/com/rotanareg/skolan/domains/Course.java index 2c577d0..23ef40c 100644 --- a/src/main/java/com/rotanareg/skolan/domains/Course.java +++ b/src/main/java/com/rotanareg/skolan/domains/Course.java @@ -1,5 +1,11 @@ package com.rotanareg.skolan.domains; +import com.rotanareg.skolan.AssociatedPersist.CourseUserAssociation; +import com.rotanareg.skolan.userPersist.UserEntity; + +import java.util.ArrayList; +import java.util.List; + /** * Created by Nils Gerstner on 8/20/17. */ @@ -9,6 +15,7 @@ public class Course { private String name; private String description; private String courseNr; + private List persons; public Course(String name, String description, String courseNr){ this.name = name; @@ -55,6 +62,14 @@ public class Course { this.courseNr = courseNr; } + public List getPersons() { + return persons; + } + + public void setPersons(List persons) { + this.persons = persons; + } + @Override public String toString(){ final StringBuilder sbc = new StringBuilder("CourseEntity{"); diff --git a/src/main/java/com/rotanareg/skolan/signIn/LoggedIn.java b/src/main/java/com/rotanareg/skolan/signIn/LoggedIn.java new file mode 100644 index 0000000..7fae19a --- /dev/null +++ b/src/main/java/com/rotanareg/skolan/signIn/LoggedIn.java @@ -0,0 +1,26 @@ +package com.rotanareg.skolan.signIn; + +import javax.enterprise.context.SessionScoped; +import javax.inject.Named; +import java.io.Serializable; + +/** + * Created by Nils Gerstner on 2017-09-01. + */ + +@Named +@SessionScoped +public class LoggedIn implements Serializable { + private Long id = null; + + public LoggedIn() { + } + + public LoggedIn(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } +} diff --git a/src/main/java/com/rotanareg/skolan/signIn/SignIn.java b/src/main/java/com/rotanareg/skolan/signIn/SignIn.java new file mode 100644 index 0000000..847db06 --- /dev/null +++ b/src/main/java/com/rotanareg/skolan/signIn/SignIn.java @@ -0,0 +1,49 @@ +package com.rotanareg.skolan.signIn; + +import javax.ejb.EJB; +import javax.enterprise.context.*; +import javax.inject.*; + +import com.rotanareg.skolan.userPersist.UserService; + +@Named +@RequestScoped +public class SignIn { + + @Inject + private LoggedIn loggedIn; + + @EJB + private UserService us; + + private String username; + private String password; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public void setPassword(String password) { + this.password = password; + } + + public void submit() { + if (us.getUserContaining(username).get(0).getPassWord().equals(password)){ + this.loggedIn = new LoggedIn(us.getUserContaining(username).get(0).getId()); + } + } + + public boolean loggedIn(){ + if (loggedIn != null) + return true; + return false; + } + + public void logout(){ + this.loggedIn = null; + } +} diff --git a/src/main/java/com/rotanareg/skolan/user/DateB.java b/src/main/java/com/rotanareg/skolan/user/DateB.java deleted file mode 100644 index 81628bf..0000000 --- a/src/main/java/com/rotanareg/skolan/user/DateB.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.rotanareg.skolan.user; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; - - - -public class DateB { - - public static Date date(String s) { - SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); - try { - return dateFormat.parse(s); - } catch (ParseException e) { - e.printStackTrace(); - } - return null; - } -} - diff --git a/src/main/java/com/rotanareg/skolan/user/admin/admindomain/AdminDomain.java b/src/main/java/com/rotanareg/skolan/user/admin/admindomain/AdminDomain.java deleted file mode 100644 index ef27539..0000000 --- a/src/main/java/com/rotanareg/skolan/user/admin/admindomain/AdminDomain.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.admin.admindomain; - -public class AdminDomain { -} diff --git a/src/main/java/com/rotanareg/skolan/user/admin/adminejb/AdminService.java b/src/main/java/com/rotanareg/skolan/user/admin/adminejb/AdminService.java deleted file mode 100644 index 9c01b9d..0000000 --- a/src/main/java/com/rotanareg/skolan/user/admin/adminejb/AdminService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.admin.adminejb; - -public class AdminService { -} diff --git a/src/main/java/com/rotanareg/skolan/user/admin/adminejb/AdminServiceImpl.java b/src/main/java/com/rotanareg/skolan/user/admin/adminejb/AdminServiceImpl.java deleted file mode 100644 index 5ff00e7..0000000 --- a/src/main/java/com/rotanareg/skolan/user/admin/adminejb/AdminServiceImpl.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.admin.adminejb; - -public class AdminServiceImpl { -} diff --git a/src/main/java/com/rotanareg/skolan/user/admin/adminjpa/Admin.java b/src/main/java/com/rotanareg/skolan/user/admin/adminjpa/Admin.java deleted file mode 100644 index ada60f2..0000000 --- a/src/main/java/com/rotanareg/skolan/user/admin/adminjpa/Admin.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.admin.adminjpa; - -public class Admin { -} diff --git a/src/main/java/com/rotanareg/skolan/user/admin/adminjsf/AdminBean.java b/src/main/java/com/rotanareg/skolan/user/admin/adminjsf/AdminBean.java deleted file mode 100644 index 78b5556..0000000 --- a/src/main/java/com/rotanareg/skolan/user/admin/adminjsf/AdminBean.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.admin.adminjsf; - -public class AdminBean { -} diff --git a/src/main/java/com/rotanareg/skolan/user/student/studentdomain/StudentDomain.java b/src/main/java/com/rotanareg/skolan/user/student/studentdomain/StudentDomain.java deleted file mode 100644 index b769e07..0000000 --- a/src/main/java/com/rotanareg/skolan/user/student/studentdomain/StudentDomain.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.student.studentdomain; - -public class StudentDomain { -} diff --git a/src/main/java/com/rotanareg/skolan/user/student/studentejb/StudentService.java b/src/main/java/com/rotanareg/skolan/user/student/studentejb/StudentService.java deleted file mode 100644 index 95a5ea1..0000000 --- a/src/main/java/com/rotanareg/skolan/user/student/studentejb/StudentService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.student.studentejb; - -public class StudentService { -} diff --git a/src/main/java/com/rotanareg/skolan/user/student/studentejb/StudentServiceImpl.java b/src/main/java/com/rotanareg/skolan/user/student/studentejb/StudentServiceImpl.java deleted file mode 100644 index 7849f7c..0000000 --- a/src/main/java/com/rotanareg/skolan/user/student/studentejb/StudentServiceImpl.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.student.studentejb; - -public class StudentServiceImpl { -} diff --git a/src/main/java/com/rotanareg/skolan/user/student/studentjpa/Student.java b/src/main/java/com/rotanareg/skolan/user/student/studentjpa/Student.java deleted file mode 100644 index 6f17e71..0000000 --- a/src/main/java/com/rotanareg/skolan/user/student/studentjpa/Student.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.student.studentjpa; - -public class Student { -} diff --git a/src/main/java/com/rotanareg/skolan/user/student/studentjsf/StudentBean.java b/src/main/java/com/rotanareg/skolan/user/student/studentjsf/StudentBean.java deleted file mode 100644 index 35747ec..0000000 --- a/src/main/java/com/rotanareg/skolan/user/student/studentjsf/StudentBean.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.rotanareg.skolan.user.student.studentjsf; - -public class StudentBean { - -} diff --git a/src/main/java/com/rotanareg/skolan/user/teacher/teacherdomain/TeacherDomain.java b/src/main/java/com/rotanareg/skolan/user/teacher/teacherdomain/TeacherDomain.java deleted file mode 100644 index f5b9a3f..0000000 --- a/src/main/java/com/rotanareg/skolan/user/teacher/teacherdomain/TeacherDomain.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.teacher.teacherdomain; - -public class TeacherDomain { -} diff --git a/src/main/java/com/rotanareg/skolan/user/teacher/teacherejb/TeacherServiceImpl.java b/src/main/java/com/rotanareg/skolan/user/teacher/teacherejb/TeacherServiceImpl.java deleted file mode 100644 index 50dac17..0000000 --- a/src/main/java/com/rotanareg/skolan/user/teacher/teacherejb/TeacherServiceImpl.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.teacher.teacherejb; - -public class TeacherServiceImpl { -} diff --git a/src/main/java/com/rotanareg/skolan/user/teacher/teacherejb/TeaherService.java b/src/main/java/com/rotanareg/skolan/user/teacher/teacherejb/TeaherService.java deleted file mode 100644 index dff970c..0000000 --- a/src/main/java/com/rotanareg/skolan/user/teacher/teacherejb/TeaherService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.teacher.teacherejb; - -public class TeaherService { -} diff --git a/src/main/java/com/rotanareg/skolan/user/teacher/teacherjpa/Teacher.java b/src/main/java/com/rotanareg/skolan/user/teacher/teacherjpa/Teacher.java deleted file mode 100644 index e1121ac..0000000 --- a/src/main/java/com/rotanareg/skolan/user/teacher/teacherjpa/Teacher.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.teacher.teacherjpa; - -public class Teacher { -} diff --git a/src/main/java/com/rotanareg/skolan/user/teacher/teacherjsf/TeacherBean.java b/src/main/java/com/rotanareg/skolan/user/teacher/teacherjsf/TeacherBean.java deleted file mode 100644 index b01aa0a..0000000 --- a/src/main/java/com/rotanareg/skolan/user/teacher/teacherjsf/TeacherBean.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.rotanareg.skolan.user.teacher.teacherjsf; - -public class TeacherBean { -} diff --git a/src/main/java/com/rotanareg/skolan/userManager/EmailAddressValidator.java b/src/main/java/com/rotanareg/skolan/userManager/EmailAddressValidator.java deleted file mode 100644 index 4b001b1..0000000 --- a/src/main/java/com/rotanareg/skolan/userManager/EmailAddressValidator.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.rotanareg.skolan.userManager; - -import javax.validation.ConstraintValidator; -import javax.validation.ConstraintValidatorContext; - -public class EmailAddressValidator implements ConstraintValidator { - - @Override - public void initialize(ValidEmailAddress constraintAnnotation) { - } - - @Override - public boolean isValid(String value, ConstraintValidatorContext context) { - return value == null || value.equals("") || value.contains("@"); - } -} - - - - diff --git a/src/main/java/com/rotanareg/skolan/userManager/PhoneNumber.java b/src/main/java/com/rotanareg/skolan/userManager/PhoneNumber.java deleted file mode 100644 index 1276f3e..0000000 --- a/src/main/java/com/rotanareg/skolan/userManager/PhoneNumber.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.rotanareg.skolan.userManager; - -import java.io.Serializable; - -public class PhoneNumber implements Serializable { - - private static final long serialVersionUID = 1L; - - private String countryCode; - private String subscriberNumber; - - public String getCountryCode() { - return countryCode; - } - - public void setCountryCode(String countryCode) { - this.countryCode = countryCode; - } - - - public String getSubscriberNumber() { - return subscriberNumber; - } - - public void setSubscriberNumber(String subscriberNumber) { - this.subscriberNumber = subscriberNumber; - } -} diff --git a/src/main/java/com/rotanareg/skolan/userManager/PhoneNumberConverter.java b/src/main/java/com/rotanareg/skolan/userManager/PhoneNumberConverter.java deleted file mode 100644 index 577c0ab..0000000 --- a/src/main/java/com/rotanareg/skolan/userManager/PhoneNumberConverter.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.rotanareg.skolan.userManager; - -import javax.faces.application.FacesMessage; -import javax.faces.component.UIComponent; -import javax.faces.context.FacesContext; -import javax.faces.convert.Converter; -import javax.faces.convert.ConverterException; -import javax.faces.convert.FacesConverter; -import java.util.regex.Pattern; - -@FacesConverter(forClass = PhoneNumber.class) -public class PhoneNumberConverter implements Converter { - - private static final Pattern PHONE_NUMBER_PATTERN = Pattern.compile("[0-8]{2}-[0-8]{3}-[0-8]{3}"); - - @Override - public Object getAsObject(FacesContext context, UIComponent component, String value) { - if (value == null || value.equals("")) { - return null; - } - - if (!PHONE_NUMBER_PATTERN.matcher(value).matches()) { - throw new ConverterException( - new FacesMessage("Fyll i det rätta formen på telefonummer: 00-000-000.")); - } - - PhoneNumber phoneNumber = new PhoneNumber(); - phoneNumber.setCountryCode(value.substring(0, 2)); - phoneNumber.setSubscriberNumber(value.substring(3)); - - return phoneNumber; - } - - @Override - public String getAsString(FacesContext context, UIComponent component, Object value) { - if (value == null) { - return null; - } - - PhoneNumber phoneNumber = (PhoneNumber) value; - - return phoneNumber.getCountryCode() + "-" + phoneNumber.getSubscriberNumber(); - } -} - diff --git a/src/main/java/com/rotanareg/skolan/userManager/PhoneNumberValidator.java b/src/main/java/com/rotanareg/skolan/userManager/PhoneNumberValidator.java deleted file mode 100644 index 2120eaf..0000000 --- a/src/main/java/com/rotanareg/skolan/userManager/PhoneNumberValidator.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.rotanareg.skolan.userManager; - -import javax.faces.application.FacesMessage; -import javax.faces.component.UIComponent; -import javax.faces.context.FacesContext; -import javax.faces.validator.FacesValidator; -import javax.faces.validator.Validator; -import javax.faces.validator.ValidatorException; - - -@FacesValidator("com.rotanareg.skolan.user.PhoneNumber") -public class PhoneNumberValidator implements Validator { - - @Override - public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException { - PhoneNumber phoneNumber = (PhoneNumber) value; - - - - if (phoneNumber != null) { - checkCountryCode(phoneNumber.getCountryCode()); - - } - } - - private void checkCountryCode(String countryCode) { - int firstDigit = Character.digit(countryCode.charAt(0), 10); - if (firstDigit == 0 || firstDigit == 1) { - throw new ValidatorException( - new FacesMessage("Första siffran i ditt tfn får inte vara 0 or 1.")); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/rotanareg/skolan/userManager/SignIn.java b/src/main/java/com/rotanareg/skolan/userManager/SignIn.java deleted file mode 100644 index 3fccb61..0000000 --- a/src/main/java/com/rotanareg/skolan/userManager/SignIn.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.rotanareg.skolan.userManager; -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; - -@Named -@RequestScoped -public class SignIn { - - @Inject - private UserManager userManager; - - @Pattern(regexp = "[A-Za-z0-9]{2,20}", message = "Användarnamnet skall innehålla bara bokstäver och siffror samt vara långt mellan 2 och 20 tecken.") - private String username; - - @Size(min = 8, message = "Ditt password måste innehålla minst 8 tecken.") - private String password; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String submit() { - return userManager.signIn(username, password); - } -} diff --git a/src/main/java/com/rotanareg/skolan/userManager/User.java b/src/main/java/com/rotanareg/skolan/userManager/User.java deleted file mode 100644 index 3d87108..0000000 --- a/src/main/java/com/rotanareg/skolan/userManager/User.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.rotanareg.skolan.userManager; - -import com.rotanareg.skolan.Role; - -import javax.validation.constraints.Past; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - - -public class User implements Serializable { - - private static final long serialVersionUID = 1L; - - private Role role; - private List rolesList; - - public User() { - rolesList = new ArrayList(); - rolesList.add(Role.STUDENT); - rolesList.add(Role.TEACHER); - rolesList.add(Role.ADMIN); - role = Role.STUDENT; // set the first role as default - } - - @Pattern(regexp = "[A-Za-z0-9]{2,20}", message = "Skriv in ditt användarnamn mellan 2 och 20 tecken långt, innehållande bokstäver och siffror") - private String username; - - @Size(min = 8, message = "Ditt pasword måste innehålla minst 8 tecken") - private String password; - - @Size(min = 1, max = 30, message = "Skriv in ditt Förnamn mellan 1 och 30 tecken långt.") - private String firstName; - - @Size(min = 1, max = 30, message = "Skriv in ditt Efternamn mellan 1 och 30 tecken långt.") - private String lastName; - - @ValidEmailAddress - private String emailAddress; - - private PhoneNumber phoneNumber; - - @Past(message = "Ditt födelsedatum måste vara i dåtid .") - private Date birthDate; - - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - - this.lastName = lastName; - } - - - public String getEmailAddress() { - return emailAddress; - } - - public void setEmailAddress(String emailAddress) { - this.emailAddress = emailAddress; - } - - public PhoneNumber getPhoneNumber() { - return phoneNumber; - } - - public void setPhoneNumber(PhoneNumber phoneNumber) { - this.phoneNumber = phoneNumber; - } - - public Date getBirthDate() { - return birthDate; - } - - public void setBirthDate(Date birthDate) { - this.birthDate = birthDate; - } - - public Role getRole() { - return role; - } - - public void setRole(Role role) { - this.role = role; - } - - public List getRolesList() { - return rolesList; - } - -} - - diff --git a/src/main/java/com/rotanareg/skolan/userManager/UserDetail.java b/src/main/java/com/rotanareg/skolan/userManager/UserDetail.java deleted file mode 100644 index 807f288..0000000 --- a/src/main/java/com/rotanareg/skolan/userManager/UserDetail.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.rotanareg.skolan.userManager; - - -import javax.faces.view.ViewScoped; -import javax.inject.Inject; -import javax.inject.Named; -import java.io.Serializable; -@Named -@ViewScoped -public class UserDetail implements Serializable { - private static final long serialVersionUID = 1L; - - @Inject - private UserManager userManager; - - private User user; - - public User getUser() { - return user; - } - - public void onload() { - user = userManager.isSignedIn() ? userManager.getCurrentUser() : new User(); - } - - public String submit() { - return userManager.save(user); - } - -} diff --git a/src/main/java/com/rotanareg/skolan/userManager/UserManager.java b/src/main/java/com/rotanareg/skolan/userManager/UserManager.java deleted file mode 100644 index b2ad538..0000000 --- a/src/main/java/com/rotanareg/skolan/userManager/UserManager.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.rotanareg.skolan.userManager; - -import com.rotanareg.skolan.Role; - -import javax.enterprise.context.SessionScoped; -import javax.faces.context.FacesContext; -import javax.inject.Inject; -import javax.inject.Named; -import java.io.Serializable; - -@Named -@SessionScoped -public class UserManager implements Serializable { - - private static final long serialVersionUID = 1L; - - @Inject - private UserService userService; - - private User currentUser; - - public boolean isSignedIn() { - return currentUser != null; - } - - public User getCurrentUser() { - return currentUser; - } - - public String signIn(String username, String password) { - User user = userService.getUser(username); - if (user == null || !password.equals(user.getPassword())) { - return "signIn"; - } - currentUser = user; - - switch (user.getRole()) { - case STUDENT: - return "student"; // xhtml-page to redirect to when signed in - case TEACHER: - return "teacher"; // xhtml-page to redirect to when signed in - case ADMIN: - return "admin"; // xhtml-page to redirect to when signed in - } - return ""; // should never happen, but redirects to the default xhtml-page - } - - public void signOut() { - FacesContext.getCurrentInstance().getExternalContext().invalidateSession(); - } - - public String save(User user) { - userService.saveUser(user); - currentUser = user; - - return "index"; - } -} - - diff --git a/src/main/java/com/rotanareg/skolan/userManager/UserService.java b/src/main/java/com/rotanareg/skolan/userManager/UserService.java deleted file mode 100644 index f07deea..0000000 --- a/src/main/java/com/rotanareg/skolan/userManager/UserService.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.rotanareg.skolan.userManager; - -public interface UserService { - // get information om användare - User getUser(String username); - - // spara information om användare - void saveUser(User user); -} diff --git a/src/main/java/com/rotanareg/skolan/userManager/UserServiceImpl.java b/src/main/java/com/rotanareg/skolan/userManager/UserServiceImpl.java deleted file mode 100644 index 27840ff..0000000 --- a/src/main/java/com/rotanareg/skolan/userManager/UserServiceImpl.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.rotanareg.skolan.userManager; - -import javax.enterprise.context.ApplicationScoped; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -@ApplicationScoped // skall stored i databas -public class UserServiceImpl implements UserService { - - - private final Map users = new ConcurrentHashMap<>(); - - @Override - public User getUser(String username) { - return users.get(username); - } - - @Override - public void saveUser(User user) { - users.put(user.getUsername(), user); - } -} - diff --git a/src/main/java/com/rotanareg/skolan/userManager/ValidEmailAddress.java b/src/main/java/com/rotanareg/skolan/userManager/ValidEmailAddress.java deleted file mode 100644 index 994871c..0000000 --- a/src/main/java/com/rotanareg/skolan/userManager/ValidEmailAddress.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.rotanareg.skolan.userManager; - -import javax.validation.Constraint; -import javax.validation.Payload; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Constraint(validatedBy = EmailAddressValidator.class) -@Target(ElementType.FIELD) -@Retention(RetentionPolicy.RUNTIME) -public @interface ValidEmailAddress { - - String message() default "Skriv din rätta e-mail adressen."; - - Class[] groups() default {}; - - Class[] payload() default {}; -} diff --git a/src/main/java/com/rotanareg/skolan/userPersist/UserEntity.java b/src/main/java/com/rotanareg/skolan/userPersist/UserEntity.java index 1e4d956..ca8db8e 100644 --- a/src/main/java/com/rotanareg/skolan/userPersist/UserEntity.java +++ b/src/main/java/com/rotanareg/skolan/userPersist/UserEntity.java @@ -1,16 +1,19 @@ package com.rotanareg.skolan.userPersist; import javax.persistence.*; +import com.rotanareg.skolan.AssociatedPersist.CourseUserAssociation; import com.rotanareg.skolan.Role; +import com.rotanareg.skolan.coursePersist.CourseEntity; + +import java.util.ArrayList; +import java.util.List; + -/** - * Created by Solidbeans on 2017-03-20. - */ @Entity @Table(name = "Person") @NamedQueries({ - @NamedQuery(name="selectAll",query="SELECT u FROM UserEntity u"), - @NamedQuery(name="selectSome",query="SELECT t FROM UserEntity t WHERE LOCATE(:filt,t.name) >0 ") + @NamedQuery(name="selectAllUsers",query="SELECT u FROM UserEntity u"), + @NamedQuery(name="selectSomeUsers",query="SELECT t FROM UserEntity t WHERE LOCATE(:filt,t.name) >0 ") }) public class UserEntity { @@ -23,6 +26,9 @@ public class UserEntity { private String lastName; private String passWord; + @OneToMany(mappedBy = "person") + private List courses; + public UserEntity() { } @@ -72,4 +78,27 @@ public class UserEntity { public String getPassWord() { return passWord; } + + public List getCourses() { + return courses; + } + + public void addCourse (CourseEntity course, boolean isTeacher) { + CourseUserAssociation courseUserAssociation = new CourseUserAssociation(); + if (this.getRole() == Role.ADMIN) { + System.out.println("Nor TEACHER or STUDENT; not added!"); + } else { + if (isTeacher && this.getRole() == Role.TEACHER) + courseUserAssociation.setTeacher(true); + else if (!isTeacher && this.getRole() != Role.STUDENT) + courseUserAssociation.setTeacher(false); + courseUserAssociation.setPerson(this); + courseUserAssociation.setCourse(course); + courseUserAssociation.setPersonId(this.getId()); + courseUserAssociation.setCourseId(course.getId()); + if (this.courses == null) + this.courses = new ArrayList<>(); + this.courses.add(courseUserAssociation); + } + } } diff --git a/src/main/java/com/rotanareg/skolan/userPersist/UserService.java b/src/main/java/com/rotanareg/skolan/userPersist/UserService.java index 413dc98..d39e2d5 100644 --- a/src/main/java/com/rotanareg/skolan/userPersist/UserService.java +++ b/src/main/java/com/rotanareg/skolan/userPersist/UserService.java @@ -5,9 +5,7 @@ import com.rotanareg.skolan.domains.User; import javax.ejb.Local; import java.util.List; -/** - * Created by Solidbeans on 2017-03-20. - */ + @Local public interface UserService { @@ -15,6 +13,6 @@ public interface UserService { void updateUser(User user); void removeUser(Long id); User getUser(Long id); - List getUser(); + List getUsers(); public List getUserContaining(String filter); } diff --git a/src/main/java/com/rotanareg/skolan/userPersist/UserServiceImpl.java b/src/main/java/com/rotanareg/skolan/userPersist/UserServiceImpl.java index c225e36..b4aa0ce 100644 --- a/src/main/java/com/rotanareg/skolan/userPersist/UserServiceImpl.java +++ b/src/main/java/com/rotanareg/skolan/userPersist/UserServiceImpl.java @@ -9,9 +9,7 @@ import javax.persistence.PersistenceContext; import java.util.List; import java.util.stream.Collectors; -/** - * Created by Solidbeans on 2017-03-20. - */ + @Stateless public class UserServiceImpl implements UserService{ @@ -47,8 +45,8 @@ public class UserServiceImpl implements UserService{ return ud; } @Override - public List getUser() { - List userEntityList = em.createNamedQuery("selectAll").getResultList(); + public List getUsers() { + List userEntityList = em.createNamedQuery("selectAllUsers").getResultList(); if (userEntityList.isEmpty()){ UserEntity a = new UserEntity("Nils","Gerstner",Role.STUDENT,"1234"); em.persist(a); @@ -65,7 +63,7 @@ public class UserServiceImpl implements UserService{ @Override public List getUserContaining(String filter) { - List userEntityList = em.createNamedQuery("selectSome").setParameter("filt",filter).getResultList(); + List userEntityList = em.createNamedQuery("selectSomeUsers").setParameter("filt",filter).getResultList(); return userEntityList.stream(). map(c->new User(c.getId(),c.getName(),c.getLastName(),c.getRole(),c.getPassWord())). diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index 9808c80..6c98409 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -3,13 +3,17 @@ - - jdbc/school + http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> + + + + jdbc/school false + + - \ No newline at end of file + diff --git a/src/main/webapp/WEB-INF/faces-config.xml b/src/main/webapp/WEB-INF/faces-config.xml index c2df863..eccae5c 100644 --- a/src/main/webapp/WEB-INF/faces-config.xml +++ b/src/main/webapp/WEB-INF/faces-config.xml @@ -1,7 +1,22 @@ - + + index.xhtml + /index.xhtml + + success + /pupil1.xhtml + + + + index.xhtml + /index.xhtml + + failure + /index.xhtml + + \ No newline at end of file diff --git a/src/main/webapp/admin.xhtml b/src/main/webapp/admin.xhtml index 7754f1f..aced9d6 100644 --- a/src/main/webapp/admin.xhtml +++ b/src/main/webapp/admin.xhtml @@ -1,24 +1,30 @@ - + + xmlns:ui="http://xmlns.jcp.org/jsf/facelets" + xmlns:f="http://xmlns.jcp.org/jsf/core"> + + - - - + +
- - + Logga ut
+
+

Admin

+ Registrera nya användare
-
+ + diff --git a/src/main/webapp/course.xhtml b/src/main/webapp/course.xhtml deleted file mode 100644 index b64e7be..0000000 --- a/src/main/webapp/course.xhtml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - diff --git a/src/main/webapp/course_detail.xhtml b/src/main/webapp/course_detail.xhtml deleted file mode 100644 index 1d70762..0000000 --- a/src/main/webapp/course_detail.xhtml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - -
- -

#{course.name}

-

-
-
-
-
- diff --git a/src/main/webapp/course_details.xhtml b/src/main/webapp/course_details.xhtml index 6183246..1f2df28 100644 --- a/src/main/webapp/course_details.xhtml +++ b/src/main/webapp/course_details.xhtml @@ -1,6 +1,6 @@ - + - - + + - -
- -

#{course.name}

-

#{course.description}

-
+ +
+ +

#{courseDetails.course.name}

+

#{courseDetails.course.description}

+
diff --git a/src/main/webapp/create_course.xhtml b/src/main/webapp/create_course.xhtml deleted file mode 100644 index da2073e..0000000 --- a/src/main/webapp/create_course.xhtml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - -
- -

Ny kurs panel top

- -
-
- - -
- -

Kurs kod

-

Kurs namn

-

Kurs deskription

-

Ansvarig lärare

-
-
-
- -
- \ No newline at end of file diff --git a/src/main/webapp/inc/inc_form_login.xhtml b/src/main/webapp/inc/inc_form_login.xhtml new file mode 100644 index 0000000..ca41c04 --- /dev/null +++ b/src/main/webapp/inc/inc_form_login.xhtml @@ -0,0 +1,28 @@ + + +

+
+ +
+ + Användarnamn123:
+
+ +
+ + Lösenord:
+
+ +
+ + +

+
+ +
+ diff --git a/src/main/webapp/index.xhtml b/src/main/webapp/index.xhtml index 3bd85b3..0c73128 100644 --- a/src/main/webapp/index.xhtml +++ b/src/main/webapp/index.xhtml @@ -1,27 +1,19 @@ - + + xmlns:ui="http://xmlns.jcp.org/jsf/facelets" + xmlns:f="http://xmlns.jcp.org/jsf/core"> - - - - -
- -

Logga in

- -
-
+ +
- - +
- diff --git a/src/main/webapp/resources/skolan/css/style.css b/src/main/webapp/resources/skolan/css/style.css deleted file mode 100644 index 00c43bb..0000000 --- a/src/main/webapp/resources/skolan/css/style.css +++ /dev/null @@ -1,83 +0,0 @@ -html { - margin: 0; - padding: 0; - font-family: Tahoma, sans-serif; -} - -body { - margin: 0; - padding: 0; -} - -h1, h2, h3, h4, h5, h6 { - margin: 0 0 8px 0; - padding: 0; -} - -p { - margin: 8px 0 0 0; - padding: 0; -} - -input, button,select { - font-family: Tahoma, sans-serif; - font-size: 100%; -} - -body > header { - padding: 16px; - clear: both; - text-align: center; - font-size: 200%; -} - -body > header > h1 { - margin: 0; -} - -body > section , body > form > section{ - margin: 8px 20%; - padding: 18px; - overflow: hidden; -.bild -background-image: url("testBild2.jpg"); - background-repeat: no-repeat; - background-size: cover; - background-position: 100%; -} - -body > footer { - padding: 8px; - clear: both; - font-size: 13px; - text-align: center; -} - -body > footer > p { - margin: 0; -} -.student-table { - width: 100%; -} - -.student-header { - padding: 4px; - text-align: left; - font-weight: bold; -} - -.student-col-name { - padding: 4px; - text-align: left; -} - -.student-col-courseCode, .student-col-courseName, .student-col-teacherName { - padding: 4px; - text-align: right; -} - -.student-footer { - padding: 4px; - font-weight: bold; - text-align: right; -} \ No newline at end of file diff --git a/src/main/webapp/resources/skolan/images/testBild2.jpg b/src/main/webapp/resources/skolan/images/testBild2.jpg deleted file mode 100644 index c622c867260b61cface8571c69f13e19f206d7cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93028 zcmbTdbyQnV6fT-V3oR5Vw9w)$POu`urG~pD5Uf~%KybITrMN?}V8u01B)GK2ihC$t zBv9NP!prZzyY5}~HVcx&3qd7w||$L0JKC2VZ#a@B#q0 zO8^#mZ@UiwfVw&W2mk=?A-qTUUm?1Cm+&4j z5i#+9_5K6W2lwxj+$Sa`AtNCneTXl_56CIV9+Lle{ojxL_xOKL;g5&+iSPf{V@EIqQ~0i#4IjPgg(XR+-H4L^^;m>be~Pw!u9h55}K#a zXzAEFIJvliA|O#QaS6${@8lH}m6TO<_4L6I14F2#mGuW3TRWJWyN9Qjw~ueom*9}l zu<(e4#IH%oDXD45+`RmP!lL4m((0O8bX|QzW7DsW&aUpB-@Scf;}esZsXx;*OUo;( z*tPY48=D7*N5?0pXXh7}|KYj=ApE~!{V!zy4_uUZTm*O-+$H`G*Bt_{|A158z4t

I-U%>u1 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 header { - background-color: #2badca; - color: white; -} - -body > section, body > form > section { - background-color: rgba(114, 207, 179, 0.38); - color: black; -} - -body > footer { - background-color: #2badca; - color: #e5e5e5; -} -.student-header { - background-color: #2a17f1; - color: white; -} - -.student-row-odd { - background-color: #e0e0e0; -} - -.student-row-even { - background-color: #f0f0f0; -} - -.student-footer { - background-color: #2a17f1; - color: white; -} \ No newline at end of file diff --git a/src/main/webapp/signIn.xhtml b/src/main/webapp/signIn.xhtml index a787040..ded119e 100644 --- a/src/main/webapp/signIn.xhtml +++ b/src/main/webapp/signIn.xhtml @@ -1,41 +1,48 @@ - + - - + +
- - -

- - + +

Logga in

+

Skriv ditt användarnamn

+
+ + + +

Välkommen, #{userBean.users.getUser(loggedIn.id).name}!

+

Du är redan inloggad. + Vill dulogga ut?

+
+
- -
- - - - Användarnamn - - - Password - - - - - - -
+ +
+ + + Användarnamn + + + Password + + + + + + +
- \ No newline at end of file + diff --git a/src/main/webapp/stats.xhtml b/src/main/webapp/stats.xhtml new file mode 100644 index 0000000..22a6c28 --- /dev/null +++ b/src/main/webapp/stats.xhtml @@ -0,0 +1,31 @@ + + + + + + + + + +
+ Logga ut +
+
+ + + +
+

Statistik

+--marko jobbar på statistik-biten...--- +
+ +
+
+
+ + + diff --git a/src/main/webapp/stats_test.xhtml b/src/main/webapp/stats_test.xhtml new file mode 100644 index 0000000..ae656f3 --- /dev/null +++ b/src/main/webapp/stats_test.xhtml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + Id + + + + Datum + + + + Närvaro + + + + + + + + + + diff --git a/src/main/webapp/student.xhtml b/src/main/webapp/student.xhtml index 9533426..ce33f14 100644 --- a/src/main/webapp/student.xhtml +++ b/src/main/webapp/student.xhtml @@ -1,14 +1,26 @@ - + - - - - + xmlns:ui="http://xmlns.jcp.org/jsf/facelets" + xmlns:f="http://xmlns.jcp.org/jsf/core"> + + + +
+ Logga ut +
+
+ + + + + #{myUser.name} #{myUser.role} + +
@@ -16,72 +28,9 @@ #{myCourse.description} - - - - Kurs kod - - - #{line.courseCode.name} - - - - Kurs namn - #{line.courseName.name} - - - Ansvarig lärare - #{line.teacherName} - - - - - - - - -
+
+
- -
- - - - Kurs kod - - - #{line.courseCode.name} - - - - Kurs namn - #{line.courseName.name} - - - Ansvarig lärare - #{line.teacherName} + - - - - - - - - -
-
- - - \ No newline at end of file diff --git a/src/main/webapp/teacher.xhtml b/src/main/webapp/teacher.xhtml index 2b10212..6288645 100644 --- a/src/main/webapp/teacher.xhtml +++ b/src/main/webapp/teacher.xhtml @@ -1,24 +1,27 @@ - + + xmlns:ui="http://xmlns.jcp.org/jsf/facelets" + xmlns:f="http://xmlns.jcp.org/jsf/core"> - - - + + +
-

lärare sidan panel top

- + Logga ut
-
-

lärare sidan panel main

- +

Lärare

+

Bla bla bla

- \ No newline at end of file + + + + diff --git a/src/main/webapp/templates/footer_template.xhtml b/src/main/webapp/templates/footer_template.xhtml deleted file mode 100644 index df389b4..0000000 --- a/src/main/webapp/templates/footer_template.xhtml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - -
-

Skolan 2017

-
-
- diff --git a/src/main/webapp/templates/form_login.xhtml b/src/main/webapp/templates/form_login.xhtml new file mode 100644 index 0000000..3a6f517 --- /dev/null +++ b/src/main/webapp/templates/form_login.xhtml @@ -0,0 +1,28 @@ + + + + + \ No newline at end of file diff --git a/src/main/webapp/templates/header_template.xhtml b/src/main/webapp/templates/header_template.xhtml deleted file mode 100644 index 114cae4..0000000 --- a/src/main/webapp/templates/header_template.xhtml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - -
-

Rotana Reg skola

-
-
- \ No newline at end of file diff --git a/src/main/webapp/templates/page_template.xhtml b/src/main/webapp/templates/page_template.xhtml deleted file mode 100644 index 82c300d..0000000 --- a/src/main/webapp/templates/page_template.xhtml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - RotanaReg Skolan #{pageTitel} - - - - - - - - -
-

Hej

-
-
- - -
-

Main Panel

-

Placeholder text.

-
-
- -
-
- diff --git a/src/main/webapp/templates/template_footer.xhtml b/src/main/webapp/templates/template_footer.xhtml index 328fa4f..ea3372e 100644 --- a/src/main/webapp/templates/template_footer.xhtml +++ b/src/main/webapp/templates/template_footer.xhtml @@ -9,7 +9,7 @@
- +
diff --git a/src/main/webapp/templates/template_page.xhtml b/src/main/webapp/templates/template_page.xhtml index e23331e..c5241eb 100644 --- a/src/main/webapp/templates/template_page.xhtml +++ b/src/main/webapp/templates/template_page.xhtml @@ -26,6 +26,8 @@ | + | + diff --git a/src/main/webapp/templates/top_panel_template.xhtml b/src/main/webapp/templates/top_panel_template.xhtml deleted file mode 100644 index a90fdb3..0000000 --- a/src/main/webapp/templates/top_panel_template.xhtml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/src/main/webapp/user_detail.xhtml b/src/main/webapp/user_detail.xhtml index cbfea45..6e4048b 100644 --- a/src/main/webapp/user_detail.xhtml +++ b/src/main/webapp/user_detail.xhtml @@ -1,17 +1,15 @@ - + - - - + - @@ -19,48 +17,46 @@ Tillbaka - -
- - - Användarnamn - +
+ + + Användarnamn + - Password - + Password + - Förnamn - + Förnamn + - Efternamn - + Efternamn + - E-mail address - + E-mail address + - Telefon nummer - - - - Födelsedatum - - - + Telefon nummer + - - - - + Födelsedatum + + + - - - - -
- + + + + + + + +
+
+
+
- \ No newline at end of file +