@@ -59,7 +59,10 @@ export class DataService {
5959
6060 getLoggedInUser ( ) {
6161 let teacherId = this . getLocalstorage ( 'loggedInUser' ) ;
62- return teacherId ;
62+ let teacher = this . getTeacher ( teacherId ) ;
63+ if ( teacher && ! teacher . deleted ) //deleted or not existing users can't be logged in
64+ { return teacherId ; }
65+ else return undefined ;
6366 }
6467
6568 setLoggedInUser ( teacherId ) {
@@ -79,8 +82,12 @@ export class DataService {
7982 return ret ;
8083 }
8184
85+ getTeachersVisible ( ) {
86+ return this . getTeachers ( ) . filter ( x => ! x . deleted ) ;
87+ }
88+
8289 getTeacherList ( ) {
83- let t = this . getTeachers ( ) ;
90+ let t = this . getTeachersVisible ( ) ;
8491 t . shift ( ) ; //remove root user from List
8592 t = t . sort ( ( a , b ) => a . firstName . localeCompare ( b . firstName ) ) ;
8693 t = t . sort ( ( a , b ) => a . lastName . localeCompare ( b . lastName ) ) ;
@@ -93,19 +100,21 @@ export class DataService {
93100 }
94101
95102 getTeacherByMail ( mail ) {
96- return this . getTeachers ( ) . find ( x => x . mail . toLowerCase ( ) == mail . toLowerCase ( ) ) ;
103+ return this . getTeachersVisible ( ) . find ( x => x . mail . toLowerCase ( ) == mail . toLowerCase ( ) ) ;
97104 }
98105
99106 getTeacherName ( id ) {
100107 let t = this . getTeacher ( id ) ;
101108 return t . firstName + " " + t . lastName ;
102109 }
103110
111+
104112 removeTeacher ( id ) {
105113 let teachers = this . getTeachers ( ) ;
106- teachers = teachers . filter ( e => e . id ! == id ) ;
114+ teachers . find ( e => e . id == id ) . deleted = true ;
107115 this . saveLocalstorage ( 'teachers' , teachers ) ;
108116 }
117+
109118
110119 addTeacher ( fName , lName , mail ) {
111120 let teachers = this . getTeachers ( ) ;
@@ -157,6 +166,9 @@ export class DataService {
157166 }
158167 }
159168
169+ getClassesVisible ( ) {
170+ return this . getClasses ( ) . filter ( x => ! x . deleted ) ;
171+ }
160172 getClass ( id ) {
161173 let classes = this . getClasses ( ) ;
162174 return classes . filter ( e => e . id == id ) [ 0 ] ;
@@ -176,12 +188,12 @@ export class DataService {
176188 c [ id ] = { id : + id , name : name , grade : grade } ;
177189 this . saveLocalstorage ( 'classes' , c ) ;
178190 }
179-
180191 removeClass ( id ) {
181192 let c = this . getClasses ( ) ;
182- c = c . filter ( e => e . id !== id ) ;
193+ c . find ( e => e . id === id ) . deleted = true ;
183194 this . saveLocalstorage ( 'classes' , c ) ;
184195 }
196+
185197
186198
187199 /******************** Pupil **********************/
@@ -226,7 +238,7 @@ export class DataService {
226238
227239 removePupil ( id ) {
228240 let p = this . getPupils ( ) ;
229- p = p . filter ( e => e . id !== id ) ;
241+ p . find ( x => x . id == id ) . deleted = true ;
230242 this . saveLocalstorage ( 'pupils' , p ) ;
231243 }
232244
@@ -263,6 +275,9 @@ export class DataService {
263275 return this . notes ;
264276 }
265277 }
278+ getNotesVisible ( ) {
279+ return this . getNotes ( ) . filter ( x => ! x . deleted ) ;
280+ }
266281
267282 getNote ( id ) {
268283 let notes = this . getNotes ( ) ;
@@ -310,7 +325,8 @@ export class DataService {
310325
311326 removeNote ( id ) {
312327 let n = this . getNotes ( ) ;
313- n = n . filter ( e => e . id !== id ) ;
328+ n . find ( e => e . id === id ) . deleted = false ;
314329 this . saveLocalstorage ( 'notes' , n ) ;
315330 }
331+
316332}
0 commit comments