1
1
<h1 >Invite user to multiple projects</h1 >
2
2
3
- <form style = " float : right " >
3
+ <form id = " removeUsers " action = " /remove " method = " post " accept-charset = " utf-8 " >
4
4
<div id =" users" ></div >
5
- <input type =" button" name =" remove" value =" Remove Selected Users" id =" remove" >
5
+ <input type =" hidden" name =" projects" value =" " id =" removeUsersFromProjects" >
6
+ <input type =" submit" name =" remove" value =" Remove Selected Users" id =" remove" >
6
7
</form >
7
8
8
9
<form action =" /add" method =" post" accept-charset =" utf-8" id =" projects" >
30
31
var findUsers = function (elems ) {
31
32
var urls = [], obj = {}, emails = [];
32
33
elems .each (function () {
33
- var parent = $ (this ).parents (' .project' );
34
- var uri = $ (parent).attr (' data-project-uri' );
34
+ var uri = $ (this ).val ();
35
35
if (urls .indexOf (uri) == - 1 ) urls .push (uri);
36
36
});
37
37
43
43
};
44
44
45
45
$ (' #projects .project label' ).mouseover (function () {
46
- $ (' #users' ).html (findUsers ($ (' #projects input:checked' ).add (this )).join (' <br>' ));
47
- });
48
-
49
- $ (' #users' ).delegate (' label' , ' click' , function () {
50
- console .log (' test' );
51
- if ($ (' #users input:checked' ).size () > 0 ) $ (' #remove' ).show ();
52
- else $ (' #remove' ).hide ();
46
+ $ (' #users' ).html (findUsers ($ (' #projects input:checked' ).add ($ (this ).children (' input' ))).join (' <br>' ));
53
47
});
54
48
55
49
$ (' #projects input' ).change (function () {
56
50
var elems = $ (' #projects input:checked' );
57
51
selectedMode = elems .size ();
58
52
var emails = findUsers (elems);
59
53
$ (' #users' ).html (emails .join (' <br>' ));
60
- console .log ($ (' #users label' ).size ());
54
+ });
55
+
56
+ $ (' #users' ).delegate (' label' , ' click' , function () {
57
+ if ($ (' #users input:checked' ).size () > 0 ) $ (' #remove' ).show ();
58
+ else $ (' #remove' ).hide ();
61
59
});
62
60
63
61
$ (' #remove' ).click (function () {
64
- var selectedUsers = {};
62
+ var selectedUsers = {}, projectsHash = {} ;
65
63
$ (' #users input:checked' ).each (function () { selectedUsers[$ (this ).val ()] = []; });
66
64
67
- var project, email;
65
+ var projects, project, email;
68
66
$ (' #projects input:checked' ).each (function () {
69
67
project = $ (this ).val ();
70
68
// filter out users that were checked, send to Client.prototype.disableUsers
71
- users[project].forEach (function (projUser ) {
72
- email = projUser .user .content .email ;
73
- if (selectedUsers[email]) selectedUsers[email].push (project);
74
- });
69
+ projectsHash[project] = users[project].filter (function (user ) { return selectedUsers[user .user .content .email ]; }).map (function (user ) { return user .user .links .self ; });
75
70
});
76
- console . log (selectedUsers );
71
+ $ ( ' #removeUsersFromProjects ' ). val ( JSON . stringify (projectsHash) );
77
72
});
78
73
});
79
74
</script >
0 commit comments