| author | salimr <riwad.salim@yahoo.fr> |
| Tue, 14 Aug 2018 20:39:55 +0200 | |
| changeset 144 | 8b950885ddae |
| parent 137 | 279e1dffa213 |
| child 168 | ea92f4fe783d |
| permissions | -rw-r--r-- |
|
134
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
1 |
import Immutable from 'immutable'; |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
2 |
import { ActionEnum } from '../constants' |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
3 |
|
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
4 |
|
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
5 |
const getSessionMapSelector = actionVal => state => |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
6 |
state.get('sessions') |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
7 |
.filter(s => s.get('action') === actionVal) |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
8 |
.reduce( |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
9 |
(res, obj) => { |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
10 |
return res.set(obj.get('_id'), obj); |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
11 |
}, |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
12 |
Immutable.Map() |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
13 |
); |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
14 |
|
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
15 |
const getNoteMapSelector = actionVal => state => { |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
16 |
const deletedSessions = state.get('sessions') |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
17 |
.filter(s => s.get('action') === ActionEnum.DELETED) |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
18 |
.reduce( |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
19 |
(res, obj) => { |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
20 |
return res.set(obj.get('_id'), obj); |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
21 |
}, |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
22 |
Immutable.Map() |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
23 |
); |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
24 |
return state.get('notes') |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
25 |
.filter(n => (n.get('action') === actionVal && !deletedSessions.has(n.get('session')))) |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
26 |
.reduce( |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
27 |
(res, obj) => { |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
28 |
return res.set(obj.get('_id'), obj); |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
29 |
}, |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
30 |
Immutable.Map() |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
31 |
); |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
32 |
} |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
33 |
|
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
34 |
|
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
35 |
export const getUpdatedSessions = getSessionMapSelector(ActionEnum.UPDATED); |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
36 |
|
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
37 |
export const getCreatedSessions = getSessionMapSelector(ActionEnum.CREATED); |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
38 |
|
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
39 |
export const getDeletedSessions = getSessionMapSelector(ActionEnum.DELETED); |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
40 |
|
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
41 |
export const getUpdatedNotes = getNoteMapSelector(ActionEnum.UPDATED); |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
42 |
|
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
43 |
export const getCreatedNotes = getNoteMapSelector(ActionEnum.CREATED); |
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
44 |
|
|
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
45 |
export const getDeletedNotes = getNoteMapSelector(ActionEnum.DELETED); |
|
137
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
46 |
|
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
47 |
export const getActiveSessions = state => state.get('sessions').filter(session => session.get('action') !== ActionEnum.DELETED) |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
48 |
|
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
49 |
export const getSessions = state => state.get('sessions') |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
50 |
export const getNotes = state => state.get('notes') |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
51 |
|
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
52 |
export const getSession = (sessionId, state) => { |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
53 |
const sessions = getSessions(state); |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
54 |
return sessions.find(session => session._id === sessionId) |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
55 |
} |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
56 |
|
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
57 |
export const getSessionNotes = (sessionId, state) => { |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
58 |
const notes = getNotes(state); |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
59 |
return notes.filter(note => { |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
60 |
return (note.get('session') === sessionId && note.get('action') !== ActionEnum.DELETED); |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
61 |
}).sortBy( n => n.get('startedAt') ); |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
62 |
} |
|
279e1dffa213
session is now created with current group and protocol
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
63 |