Compare commits
21 Commits
4d6387ca8b
...
364f39c4bc
Author | SHA1 | Date | |
---|---|---|---|
364f39c4bc | |||
f2675ed764 | |||
490bf403f0 | |||
c61a092809 | |||
2cffe28720 | |||
060526c20d | |||
af8bc8872d | |||
82cf7cbfaf | |||
3b63896439 | |||
bd3b03dfea | |||
b38b1ab6b8 | |||
6e0a9a46e5 | |||
2d8fcb4712 | |||
fcb48ac71a | |||
043f5c87d2 | |||
a03983d625 | |||
b382bf957f | |||
bbddcb26ad | |||
71c2af7fcb | |||
c717205764 | |||
8ac1f7ed8b |
@ -12,14 +12,8 @@ import org.springframework.http.HttpStatus;
|
|||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
|
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
|
||||||
import ovh.herisson.Clyde.Services.AuthenticatorService;
|
import ovh.herisson.Clyde.Services.*;
|
||||||
import ovh.herisson.Clyde.Services.LessonRequestService;
|
import ovh.herisson.Clyde.Tables.*;
|
||||||
import ovh.herisson.Clyde.Services.LessonService;
|
|
||||||
import ovh.herisson.Clyde.Services.ProtectionService;
|
|
||||||
import ovh.herisson.Clyde.Tables.LessonChangesRequest;
|
|
||||||
import ovh.herisson.Clyde.Tables.RequestState;
|
|
||||||
import ovh.herisson.Clyde.Tables.Role;
|
|
||||||
import ovh.herisson.Clyde.Tables.User;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -28,11 +22,13 @@ import java.util.Map;
|
|||||||
public class LessonRequestsController {
|
public class LessonRequestsController {
|
||||||
private final LessonRequestService lessonRequestServ;
|
private final LessonRequestService lessonRequestServ;
|
||||||
private final AuthenticatorService authServ;
|
private final AuthenticatorService authServ;
|
||||||
|
private final UserService userServ;
|
||||||
|
|
||||||
private final LessonService lessonServ;
|
private final LessonService lessonServ;
|
||||||
public LessonRequestsController(LessonRequestService lessonRequestServer, AuthenticatorService authServ, LessonService lessonServ) {
|
public LessonRequestsController(LessonRequestService lessonRequestServer, AuthenticatorService authServ, UserService userServ, LessonService lessonServ) {
|
||||||
this.lessonRequestServ = lessonRequestServer;
|
this.lessonRequestServ = lessonRequestServer;
|
||||||
this.authServ = authServ;
|
this.authServ = authServ;
|
||||||
|
this.userServ = userServ;
|
||||||
this.lessonServ = lessonServ;
|
this.lessonServ = lessonServ;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -113,6 +109,7 @@ public class LessonRequestsController {
|
|||||||
if(lessonRequest.getRequestType() == 0 ) {
|
if(lessonRequest.getRequestType() == 0 ) {
|
||||||
if (!lessonRequestServ.modifyCreateRequestState(lessonRequest, state, local))
|
if (!lessonRequestServ.modifyCreateRequestState(lessonRequest, state, local))
|
||||||
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
|
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
|
||||||
|
userServ.Notify(lessonRequest.getUser(), new Notification("Request took in charge","Request"+ state + ":" + lessonRequest.getCourse().getTitle(), "#/manage-owned-lessons"));
|
||||||
}
|
}
|
||||||
|
|
||||||
else if(lessonRequest.getRequestType() == 1){
|
else if(lessonRequest.getRequestType() == 1){
|
||||||
@ -122,12 +119,14 @@ public class LessonRequestsController {
|
|||||||
if(!lessonRequestServ.modifyChangeRequestState(infos,lessonRequest.getLessonId(),state))
|
if(!lessonRequestServ.modifyChangeRequestState(infos,lessonRequest.getLessonId(),state))
|
||||||
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
|
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
|
||||||
lessonRequest.setState(state);
|
lessonRequest.setState(state);
|
||||||
|
userServ.Notify(lessonRequest.getUser(), new Notification("Request took in charge","Request"+ state + ":" + lessonServ.findById(lessonRequest.getLessonId()).getCourse().getTitle(), "#/manage-owned-lessons"));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else{
|
else{
|
||||||
|
userServ.Notify(lessonRequest.getUser(), new Notification("Request took in charge","Request"+ state + ":" + lessonServ.findById(lessonRequest.getLessonId()).getCourse().getTitle(), "#/manage-owned-lessons"));
|
||||||
lessonRequestServ.modifyDeleteRequest(lessonRequest, state);
|
lessonRequestServ.modifyDeleteRequest(lessonRequest, state);
|
||||||
lessonRequest.setState(state);
|
lessonRequest.setState(state);
|
||||||
|
|
||||||
}
|
}
|
||||||
lessonRequestServ.save(lessonRequest);
|
lessonRequestServ.save(lessonRequest);
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
@ -44,7 +44,7 @@ public class UserController {
|
|||||||
@GetMapping("/user/{id}")
|
@GetMapping("/user/{id}")
|
||||||
public ResponseEntity<HashMap<String ,Object>> getUserById(@RequestHeader("Authorization") String token, @PathVariable Long id){
|
public ResponseEntity<HashMap<String ,Object>> getUserById(@RequestHeader("Authorization") String token, @PathVariable Long id){
|
||||||
|
|
||||||
if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary,Role.InscriptionService},token))
|
if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary,Role.InscriptionService, Role.Teacher},token))
|
||||||
return new UnauthorizedResponse<>(null);
|
return new UnauthorizedResponse<>(null);
|
||||||
|
|
||||||
return new ResponseEntity<>(ProtectionService.userWithoutPassword(userService.getUserById(id)), HttpStatus.OK);
|
return new ResponseEntity<>(ProtectionService.userWithoutPassword(userService.getUserById(id)), HttpStatus.OK);
|
||||||
|
@ -22,6 +22,9 @@ public interface ScheduleLessonRepository extends CrudRepository<ScheduleLesson,
|
|||||||
@Query("select distinct sl.schedule from ScheduleLesson sl where sl.schedule.curriculum = ?1")
|
@Query("select distinct sl.schedule from ScheduleLesson sl where sl.schedule.curriculum = ?1")
|
||||||
Schedule findScheduleByCurriculum(Curriculum curriculum);
|
Schedule findScheduleByCurriculum(Curriculum curriculum);
|
||||||
|
|
||||||
|
@Query("select distinct sl from ScheduleLesson sl where sl.lesson = ?1")
|
||||||
|
ScheduleLesson findByLesson(Lesson lesson);
|
||||||
|
|
||||||
@Modifying
|
@Modifying
|
||||||
@Transactional
|
@Transactional
|
||||||
@Query("delete from ScheduleLesson sl where sl.lesson =?1")
|
@Query("delete from ScheduleLesson sl where sl.lesson =?1")
|
||||||
|
@ -13,9 +13,11 @@ public interface UserCurriculumRepository extends CrudRepository<UserCurriculum,
|
|||||||
@Query("select uc.curriculum from UserCurriculum uc where uc.user = ?1")
|
@Query("select uc.curriculum from UserCurriculum uc where uc.user = ?1")
|
||||||
Curriculum findByUser(User student);
|
Curriculum findByUser(User student);
|
||||||
|
|
||||||
|
@Query("select distinct uc.user from UserCurriculum uc where uc.curriculum = ?1")
|
||||||
|
Iterable<User> findUsersByCurriculum(Curriculum curriculum);
|
||||||
|
|
||||||
ArrayList<UserCurriculum> findByUserOrderByCurriculum(User student);
|
ArrayList<UserCurriculum> findByUserOrderByCurriculum(User student);
|
||||||
UserCurriculum findByUserAndCurriculumAndActual(User user, Curriculum curriculum, boolean actual);
|
UserCurriculum findByUserAndCurriculumAndActual(User user, Curriculum curriculum, boolean actual);
|
||||||
|
|
||||||
ArrayList<UserCurriculum> findByUserAndActual(User user, boolean actual);
|
ArrayList<UserCurriculum> findByUserAndActual(User user, boolean actual);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,10 +7,7 @@ package ovh.herisson.Clyde.Services;
|
|||||||
* @scope Extension Horaire
|
* @scope Extension Horaire
|
||||||
******************************************************/
|
******************************************************/
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ovh.herisson.Clyde.Repositories.CourseRepository;
|
import ovh.herisson.Clyde.Repositories.*;
|
||||||
import ovh.herisson.Clyde.Repositories.CurriculumCourseRepository;
|
|
||||||
import ovh.herisson.Clyde.Repositories.LessonRepository;
|
|
||||||
import ovh.herisson.Clyde.Repositories.UserCurriculumRepository;
|
|
||||||
import ovh.herisson.Clyde.Tables.*;
|
import ovh.herisson.Clyde.Tables.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -19,12 +16,17 @@ import java.util.Map;
|
|||||||
@Service
|
@Service
|
||||||
public class LessonService {
|
public class LessonService {
|
||||||
private final LessonRepository lessonRepo;
|
private final LessonRepository lessonRepo;
|
||||||
|
|
||||||
|
private final ScheduleLessonRepository scheduleLessonRepo;
|
||||||
private final UserCurriculumRepository userCurriculumRepo;
|
private final UserCurriculumRepository userCurriculumRepo;
|
||||||
|
private final UserService userServ;
|
||||||
private final CourseRepository courseRepo;
|
private final CourseRepository courseRepo;
|
||||||
private final CurriculumCourseRepository curriculumCourseRepo;
|
private final CurriculumCourseRepository curriculumCourseRepo;
|
||||||
public LessonService(LessonRepository lessonRepo, UserCurriculumRepository userCurriculumRepo, CourseRepository courseRepo, CurriculumCourseRepository curriculumCourseRepo){
|
public LessonService(LessonRepository lessonRepo, ScheduleLessonRepository scheduleLessonRepo, UserCurriculumRepository userCurriculumRepo, UserService userServ, CourseRepository courseRepo, CurriculumCourseRepository curriculumCourseRepo){
|
||||||
this.lessonRepo = lessonRepo;
|
this.lessonRepo = lessonRepo;
|
||||||
|
this.scheduleLessonRepo = scheduleLessonRepo;
|
||||||
this.userCurriculumRepo = userCurriculumRepo;
|
this.userCurriculumRepo = userCurriculumRepo;
|
||||||
|
this.userServ = userServ;
|
||||||
this.courseRepo = courseRepo;
|
this.courseRepo = courseRepo;
|
||||||
this.curriculumCourseRepo = curriculumCourseRepo;
|
this.curriculumCourseRepo = curriculumCourseRepo;
|
||||||
}
|
}
|
||||||
@ -136,7 +138,12 @@ public class LessonService {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lessonRepo.save(target);
|
Lesson lesson = lessonRepo.save(target);
|
||||||
|
ScheduleLesson scheduleLesson = scheduleLessonRepo.findByLesson(lesson);
|
||||||
|
Iterable<User> users = userCurriculumRepo.findUsersByCurriculum(scheduleLesson.getSchedule().getCurriculum());
|
||||||
|
for(User user: users){
|
||||||
|
userServ.Notify(user, new Notification("Course modified in the schedule", "Course Modified " + lesson.getCourse().getTitle() , "/#/schedule"));
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
@ -6,7 +6,9 @@ import lombok.AllArgsConstructor;
|
|||||||
import ovh.herisson.Clyde.Repositories.CourseRepository;
|
import ovh.herisson.Clyde.Repositories.CourseRepository;
|
||||||
import ovh.herisson.Clyde.Repositories.Msg.ForumRepository;
|
import ovh.herisson.Clyde.Repositories.Msg.ForumRepository;
|
||||||
import ovh.herisson.Clyde.Repositories.Msg.TopicRepository;
|
import ovh.herisson.Clyde.Repositories.Msg.TopicRepository;
|
||||||
|
import ovh.herisson.Clyde.Services.UserService;
|
||||||
import ovh.herisson.Clyde.Tables.Course;
|
import ovh.herisson.Clyde.Tables.Course;
|
||||||
|
import ovh.herisson.Clyde.Tables.Notification;
|
||||||
import ovh.herisson.Clyde.Tables.User;
|
import ovh.herisson.Clyde.Tables.User;
|
||||||
import ovh.herisson.Clyde.Tables.Msg.Answer;
|
import ovh.herisson.Clyde.Tables.Msg.Answer;
|
||||||
import ovh.herisson.Clyde.Tables.Msg.Forum;
|
import ovh.herisson.Clyde.Tables.Msg.Forum;
|
||||||
@ -16,17 +18,24 @@ import ovh.herisson.Clyde.Tables.Msg.Topic;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class ForumService {
|
public class ForumService {
|
||||||
|
|
||||||
|
private UserService userServ;
|
||||||
private CourseRepository courseRepo;
|
private CourseRepository courseRepo;
|
||||||
private ForumRepository forumRepo;
|
private ForumRepository forumRepo;
|
||||||
private TopicRepository topicRepo;
|
private TopicRepository topicRepo;
|
||||||
|
|
||||||
public void createForum(Course c, Forum f){
|
public void createForum(Course c, Forum f){
|
||||||
c.addForum(f);
|
c.addForum(f);
|
||||||
|
for (User u: f.getRegister()) {
|
||||||
|
userServ.Notify(u, new Notification("forum.notification.forum.new", f.getName(), "/#/Forum"));
|
||||||
|
}
|
||||||
courseRepo.save(c);
|
courseRepo.save(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createTopic(Forum f, Topic data) {
|
public void createTopic(Forum f, Topic data) {
|
||||||
f.addTopic(data);
|
f.addTopic(data);
|
||||||
|
for (User u: f.getRegister()) {
|
||||||
|
userServ.Notify(u, new Notification("forum.notification.topic.new", data.getSubject(), "/#/Forum"));
|
||||||
|
}
|
||||||
forumRepo.save(f);
|
forumRepo.save(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,22 +9,26 @@ import org.springframework.stereotype.Service;
|
|||||||
import ovh.herisson.Clyde.Repositories.LessonRepository;
|
import ovh.herisson.Clyde.Repositories.LessonRepository;
|
||||||
import ovh.herisson.Clyde.Repositories.ScheduleLessonRepository;
|
import ovh.herisson.Clyde.Repositories.ScheduleLessonRepository;
|
||||||
import ovh.herisson.Clyde.Repositories.ScheduleRepository;
|
import ovh.herisson.Clyde.Repositories.ScheduleRepository;
|
||||||
|
import ovh.herisson.Clyde.Repositories.UserCurriculumRepository;
|
||||||
import ovh.herisson.Clyde.Tables.*;
|
import ovh.herisson.Clyde.Tables.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ScheduleLessonService {
|
public class ScheduleLessonService {
|
||||||
|
|
||||||
private final ScheduleLessonRepository scheduleLessonRepo;
|
private final ScheduleLessonRepository scheduleLessonRepo;
|
||||||
|
|
||||||
|
private final UserCurriculumRepository userCurriculumRepo;
|
||||||
|
private final UserService userServ;
|
||||||
private final LessonRepository lessonRepo;
|
private final LessonRepository lessonRepo;
|
||||||
private final ScheduleRepository scheduleRepo;
|
private final ScheduleRepository scheduleRepo;
|
||||||
public ScheduleLessonService(ScheduleLessonRepository scheduleLessonRepo, LessonRepository lessonRepo, ScheduleRepository scheduleRepo) {
|
public ScheduleLessonService(ScheduleLessonRepository scheduleLessonRepo, UserCurriculumRepository userCurriculumRepo, UserService userServ, LessonRepository lessonRepo, ScheduleRepository scheduleRepo) {
|
||||||
this.scheduleLessonRepo = scheduleLessonRepo;
|
this.scheduleLessonRepo = scheduleLessonRepo;
|
||||||
|
this.userCurriculumRepo = userCurriculumRepo;
|
||||||
|
this.userServ = userServ;
|
||||||
this.lessonRepo = lessonRepo;
|
this.lessonRepo = lessonRepo;
|
||||||
this.scheduleRepo = scheduleRepo;
|
this.scheduleRepo = scheduleRepo;
|
||||||
}
|
}
|
||||||
@ -32,19 +36,22 @@ public class ScheduleLessonService {
|
|||||||
if(scheduleLesson == null)
|
if(scheduleLesson == null)
|
||||||
return false;
|
return false;
|
||||||
scheduleLessonRepo.save(scheduleLesson);
|
scheduleLessonRepo.save(scheduleLesson);
|
||||||
|
Iterable<User> users = userCurriculumRepo.findUsersByCurriculum(scheduleLesson.getSchedule().getCurriculum());
|
||||||
|
for(User user: users){
|
||||||
|
userServ.Notify(user, new Notification("New course in the schedule", "Course added " + scheduleLesson.getLesson().getCourse().getTitle(), "/#/schedule"));
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Save a lesson to all the schedule it is linked
|
* Save a lesson to all the schedule it is linked
|
||||||
*/
|
*/
|
||||||
public boolean saveToAllSchedule(Lesson lesson){
|
public void saveToAllSchedule(Lesson lesson){
|
||||||
Iterable<Schedule> schedules = scheduleRepo.findAllLessonSchedule(lesson.getCourse());
|
Iterable<Schedule> schedules = scheduleRepo.findAllLessonSchedule(lesson.getCourse());
|
||||||
if(schedules == null)
|
if(schedules == null)
|
||||||
return false;
|
return;
|
||||||
for (Schedule schedule : schedules){
|
for (Schedule schedule : schedules){
|
||||||
save(new ScheduleLesson(schedule, lesson));
|
save(new ScheduleLesson(schedule, lesson));
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Delete a scheduleLesson via its lesson
|
* Delete a scheduleLesson via its lesson
|
||||||
@ -52,6 +59,11 @@ public class ScheduleLessonService {
|
|||||||
public boolean delete(long lessonId){
|
public boolean delete(long lessonId){
|
||||||
if(lessonId == 0)
|
if(lessonId == 0)
|
||||||
return false;
|
return false;
|
||||||
|
ScheduleLesson scheduleLesson = scheduleLessonRepo.findByLesson(lessonRepo.findById(lessonId));
|
||||||
|
Iterable<User> users = userCurriculumRepo.findUsersByCurriculum(scheduleLesson.getSchedule().getCurriculum());
|
||||||
|
for(User user: users){
|
||||||
|
userServ.Notify(user, new Notification("Course deleted in the schedule","Course deleted " + scheduleLesson.getLesson().getCourse().getTitle(), "/#/schedule"));
|
||||||
|
}
|
||||||
scheduleLessonRepo.delete(lessonRepo.findById(lessonId));
|
scheduleLessonRepo.delete(lessonRepo.findById(lessonId));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ import ovh.herisson.Clyde.Tables.Msg.Discussion;
|
|||||||
import ovh.herisson.Clyde.Tables.Msg.Message;
|
import ovh.herisson.Clyde.Tables.Msg.Message;
|
||||||
import ovh.herisson.Clyde.Tables.Notification.Status;
|
import ovh.herisson.Clyde.Tables.Notification.Status;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -41,7 +42,7 @@ public class User {
|
|||||||
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
|
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
|
||||||
private List<Notification> notifications;
|
private List<Notification> notifications = new ArrayList<>();
|
||||||
|
|
||||||
////// Extension Messagerie /////
|
////// Extension Messagerie /////
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
|
@ -203,6 +203,8 @@ msg.notification.new=You have a new message
|
|||||||
forum.create=Create forum
|
forum.create=Create forum
|
||||||
forum.create.name=New forum's name
|
forum.create.name=New forum's name
|
||||||
forum.post.create.name=New post's title
|
forum.post.create.name=New post's title
|
||||||
|
forum.notification.topic.new=New topic created
|
||||||
|
forum.notification.forum.new=New Forum created
|
||||||
firstname/name=Firstname/Name
|
firstname/name=Firstname/Name
|
||||||
regNo=regNo
|
regNo=regNo
|
||||||
From=From
|
From=From
|
||||||
@ -282,7 +284,7 @@ rereg=Reregister in the next year of one of my cursus
|
|||||||
reregsup=Register in a supplementary cursus
|
reregsup=Register in a supplementary cursus
|
||||||
chcur=Change from a cursus to another
|
chcur=Change from a cursus to another
|
||||||
iwouldlike=I would like to :
|
iwouldlike=I would like to :
|
||||||
newcurr=New curriculum
|
newcurr=Actual curriculums
|
||||||
cursusprereq=The cursus you selected has some prerequisites ensure that your external curriculum data is updated in your profile
|
cursusprereq=The cursus you selected has some prerequisites ensure that your external curriculum data is updated in your profile
|
||||||
imposecurriculum=Impose a curriculum
|
imposecurriculum=Impose a curriculum
|
||||||
impose=Impose
|
impose=Impose
|
||||||
|
@ -201,6 +201,8 @@ msg.notification.new=Vous avez un nouveau message!
|
|||||||
forum.create=Créer un forum
|
forum.create=Créer un forum
|
||||||
forum.create.name=Nom du forum
|
forum.create.name=Nom du forum
|
||||||
forum.post.create.name=Titre du post
|
forum.post.create.name=Titre du post
|
||||||
|
forum.notification.topic.new=Nouveau Topic crée
|
||||||
|
forum.notification.forum.new=Nouveau forum crée
|
||||||
firstname/name=Prénom/Nom
|
firstname/name=Prénom/Nom
|
||||||
regNo=Matricule
|
regNo=Matricule
|
||||||
From=De
|
From=De
|
||||||
@ -280,7 +282,7 @@ rereg=Me réinscrire dans l'année supérieure
|
|||||||
reregsup=M'inscrire dans un cursus supplémentaire
|
reregsup=M'inscrire dans un cursus supplémentaire
|
||||||
chcur=Changer d'un cursus vers un autre
|
chcur=Changer d'un cursus vers un autre
|
||||||
iwouldlike=Je voudrais :
|
iwouldlike=Je voudrais :
|
||||||
newcurr=Nouveau cursus
|
newcurr=Cursus actuels
|
||||||
cursusprereq=Le cursus que vous avez selectionné a des prérequis assurez vous que votre dossier de parcours est a jour dans votre profil
|
cursusprereq=Le cursus que vous avez selectionné a des prérequis assurez vous que votre dossier de parcours est a jour dans votre profil
|
||||||
imposecurriculum=Imposer un cursusgotimposed
|
imposecurriculum=Imposer un cursusgotimposed
|
||||||
impose=Imposer
|
impose=Imposer
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
import { toast } from 'vue3-toastify';
|
import { toast } from 'vue3-toastify';
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import i18n, { setLang } from './i18n.js'
|
import i18n, { setLang } from './i18n.js'
|
||||||
import { isLogged } from '@/rest/Users.js'
|
import { isLogged, getSelf } from '@/rest/Users.js'
|
||||||
import { notifications, fetchNotifications, archiveNotification } from '@/rest/notifications.js'
|
import { notifications, fetchNotifications, archiveNotification } from '@/rest/notifications.js'
|
||||||
|
|
||||||
import { appList, currentView } from '@/rest/apps.js'
|
import { appList, currentView } from '@/rest/apps.js'
|
||||||
@ -14,9 +14,11 @@ window.onhashchange = function() {
|
|||||||
currentURL = window.location.hash;
|
currentURL = window.location.hash;
|
||||||
}
|
}
|
||||||
const Logged = ref(isLogged());
|
const Logged = ref(isLogged());
|
||||||
|
const user = ref();
|
||||||
|
|
||||||
if(Logged.value){
|
if(Logged.value){
|
||||||
fetchNotifications();
|
fetchNotifications();
|
||||||
|
getSelf().then(e => user.value = e);
|
||||||
}
|
}
|
||||||
|
|
||||||
window.addEventListener('hashchange', () => {
|
window.addEventListener('hashchange', () => {
|
||||||
@ -75,6 +77,7 @@ window.addEventListener('hashchange', () => {
|
|||||||
{{i18n("app.manage.profile")}}
|
{{i18n("app.manage.profile")}}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
<span v-if=Logged>RegNo - {{ user.regNo }}</span>
|
||||||
</div>
|
</div>
|
||||||
</a></li>
|
</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -133,10 +136,12 @@ window.addEventListener('hashchange', () => {
|
|||||||
|
|
||||||
|
|
||||||
.dropdown {
|
.dropdown {
|
||||||
|
color:black;
|
||||||
margin-top:55px;
|
margin-top:55px;
|
||||||
width:160px;
|
width:160px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
height:110px;
|
/* height:110px; */
|
||||||
|
text-align: center;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
@ -162,12 +167,12 @@ window.addEventListener('hashchange', () => {
|
|||||||
margin-top: var(--header-size);
|
margin-top: var(--header-size);
|
||||||
top:0;
|
top:0;
|
||||||
left:0;
|
left:0;
|
||||||
padding: 25px 0 0;
|
padding: 25px 0;
|
||||||
width: 70px ;
|
width: 70px ;
|
||||||
background-color: rgb(53, 53, 53);
|
background-color: rgb(53, 53, 53);
|
||||||
border-right:5px;
|
border-right:5px;
|
||||||
border-color:black;
|
border-color:black;
|
||||||
height: 100%;
|
height: calc( 95% - var(--header-size) ) ;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
overflow: scroll;
|
overflow: scroll;
|
||||||
transition-duration: .3s;
|
transition-duration: .3s;
|
||||||
@ -237,8 +242,7 @@ window.addEventListener('hashchange', () => {
|
|||||||
.text {
|
.text {
|
||||||
right: 0%;
|
right: 0%;
|
||||||
width: 0%;
|
width: 0%;
|
||||||
visibility: collapse;
|
display:none;
|
||||||
opacity: 0;
|
|
||||||
color: white;
|
color: white;
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
@ -247,7 +251,7 @@ window.addEventListener('hashchange', () => {
|
|||||||
|
|
||||||
ul.vertical:hover .text {
|
ul.vertical:hover .text {
|
||||||
opacity:1;
|
opacity:1;
|
||||||
visibility:visible;
|
display: inline;
|
||||||
width: 60%;
|
width: 60%;
|
||||||
transition-duration: .3s;
|
transition-duration: .3s;
|
||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
|
@ -147,8 +147,7 @@ async function modify(){
|
|||||||
column-gap:2.7%;
|
column-gap:2.7%;
|
||||||
row-gap:45px;
|
row-gap:45px;
|
||||||
grid-template-areas:
|
grid-template-areas:
|
||||||
"profilPic globalInfos"
|
"profilPic globalInfos";
|
||||||
"minfos minfos";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.profilPic{
|
.profilPic{
|
||||||
@ -167,7 +166,8 @@ async function modify(){
|
|||||||
display:flex;
|
display:flex;
|
||||||
align-items:center;
|
align-items:center;
|
||||||
justify-content:center;
|
justify-content:center;
|
||||||
margin-top:5%;
|
margin-right: auto;
|
||||||
|
margin-left: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.subContainer{
|
.subContainer{
|
||||||
|
@ -32,6 +32,9 @@
|
|||||||
<div>
|
<div>
|
||||||
{{ i18n("firstname/name") }} : {{user.firstName}} {{user.lastName}}
|
{{ i18n("firstname/name") }} : {{user.firstName}} {{user.lastName}}
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
{{ i18n("regNo") }} : {{user.regNo}}
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
{{ i18n("login.guest.email") }}: {{user.email}}
|
{{ i18n("login.guest.email") }}: {{user.email}}
|
||||||
</div>
|
</div>
|
||||||
|
@ -80,7 +80,7 @@ function isExempted(course){
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="list === false">
|
<div v-if="list === false">
|
||||||
<button @click="list=!list;submitted=!submitted">{{ i18n("courses.back") }}</button>
|
<button @click="list=!list;submitted=false">{{ i18n("courses.back") }}</button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@
|
|||||||
<div class="studentfirstname">{{item.user.firstName}}</div>
|
<div class="studentfirstname">{{item.user.firstName}}</div>
|
||||||
<div class="studentlastname">{{item.user.lastName}}</div>
|
<div class="studentlastname">{{item.user.lastName}}</div>
|
||||||
<div class="reqState">{{ i18n("approval")}}{{item.state}}</div>
|
<div class="reqState">{{ i18n("approval")}}{{item.state}}</div>
|
||||||
<div class="teacherApproval">{{ i18n("teacherapproval") }} : {{item.teacherApprovalState}}</div>
|
<div class="teacherApproval">{{ i18n("teacherapproval") }} {{item.teacherApprovalState}}</div>
|
||||||
<div class="infos"><button @click="windowsState=5;targetId=item.id">{{ i18n("request.moreInfos") }}</button></div>
|
<div class="infos"><button @click="windowsState=5;targetId=item.id">{{ i18n("request.moreInfos") }}</button></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -192,10 +192,10 @@
|
|||||||
<div>
|
<div>
|
||||||
{{ i18n("login.guest.email") }}: {{user.email}}
|
{{ i18n("login.guest.email") }}: {{user.email}}
|
||||||
</div>
|
</div>
|
||||||
<div v-if="user.role==='Student'">
|
<div>
|
||||||
{{ i18n("regNo") }} : {{user.regNo}}
|
{{ i18n("regNo") }} : {{user.regNo}}
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div>
|
||||||
{{ i18n("role") }}: {{i18n((user.role))}}
|
{{ i18n("role") }}: {{i18n((user.role))}}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@ -253,7 +253,7 @@
|
|||||||
{{ i18n("alreadypaid") }}
|
{{ i18n("alreadypaid") }}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button @click="windowState=7" v-if="minerv.value.toPay <= 0">{{ i18n("askscholarship") }}</button>
|
<button @click="windowState=7" v-if="minerv.value.toPay >= 0">{{ i18n("askscholarship") }}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="windowState === 5">
|
<div v-if="windowState === 5">
|
||||||
@ -369,7 +369,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="windowState === 0" class="moreInfos">
|
<div v-if="windowState === 0 && user.role==='Student'" class="moreInfos">
|
||||||
<div class = "oldcursus">
|
<div class = "oldcursus">
|
||||||
<div class="listTitle">
|
<div class="listTitle">
|
||||||
{{ i18n("oldcursus") }}
|
{{ i18n("oldcursus") }}
|
||||||
|
@ -2,9 +2,14 @@ import { ref } from 'vue'
|
|||||||
import { restGet, restPost } from '@/rest/restConsumer.js'
|
import { restGet, restPost } from '@/rest/restConsumer.js'
|
||||||
|
|
||||||
export const notifications = ref([]);
|
export const notifications = ref([]);
|
||||||
|
let timerSet = false
|
||||||
|
|
||||||
export function fetchNotifications(){
|
export function fetchNotifications(){
|
||||||
restGet("/notifications").then( e => notifications.value = e );
|
restGet("/notifications").then( e => notifications.value = e );
|
||||||
|
if(!timerSet){
|
||||||
|
timerSet = true;
|
||||||
|
setTimeout(() => {timerSet = false; fetchNotifications()}, 5000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function archiveNotification(id){
|
export function archiveNotification(id){
|
||||||
|
Loading…
Reference in New Issue
Block a user