You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kibble.apache.org by hu...@apache.org on 2017/10/20 13:35:34 UTC

[kibble] 10/12: add rudimentary membership list and options

This is an automated email from the ASF dual-hosted git repository.

humbedooh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kibble.git

commit 6063629ebbfd3fe4f5941cfda2a4841c3beff38d
Author: Daniel Gruno <hu...@apache.org>
AuthorDate: Fri Oct 20 15:31:18 2017 +0200

    add rudimentary membership list and options
---
 ui/js/coffee/kibble_organisation.coffee | 41 ++++++++++++++++++++++++++++++++-
 ui/js/coffee/pageloader.coffee          |  1 +
 2 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/ui/js/coffee/kibble_organisation.coffee b/ui/js/coffee/kibble_organisation.coffee
index 5692805..6f4a20a 100644
--- a/ui/js/coffee/kibble_organisation.coffee
+++ b/ui/js/coffee/kibble_organisation.coffee
@@ -99,4 +99,43 @@ orglist = (json, state) ->
         fieldset.inject(btn)
         
         state.widget.inject(fieldset)
-        
\ No newline at end of file
+        
+
+inviteMember = (eml, admin) ->
+    put('org/members', { email: eml, admin: admin}, null, memberInvited)
+    
+removeMember = (eml, admin) ->
+    xdelete('org/members', { email: eml, admin: admin}, null, memberInvited)
+
+memberInvited = (json, state) ->
+    window.setTimeout(
+        () ->
+            location.reload()
+        , 1000
+        )
+
+membershipList = (json, state) ->
+    list = new HTML('table')
+    
+    for member in json.members
+        tr = new HTML('tr')
+        eml = new HTML('td', { style: { padding: "5px"}}, member)
+        isAdmin = member in json.admins
+        admin = new HTML('td', { style: { padding: "5px"}}, if isAdmin then "Admin" else "Member")
+        alink = new HTML('a', { href: "javascript:void(inviteMember('#{member}', true));"}, "Make admin")
+        if isAdmin
+            alink = new HTML('a', { href: "javascript:void(inviteMember('#{member}', false));"}, "Remove as admin")
+        admopt = new HTML('td', { style: { padding: "5px"}}, alink)
+        
+        # Remove member
+        dlink = new HTML('a', { href: "javascript:void(removeMember('#{member}'));"}, "Remove from oganisation")
+        delopt = new HTML('td', { style: { padding: "5px"}}, dlink)
+        
+        tr.inject(eml)
+        tr.inject(admin)
+        tr.inject(admopt)
+        tr.inject(delopt)
+        list.inject(tr)
+        
+    state.widget.inject(list, true)
+    
\ No newline at end of file
diff --git a/ui/js/coffee/pageloader.coffee b/ui/js/coffee/pageloader.coffee
index 9ba57fd..26f3700 100644
--- a/ui/js/coffee/pageloader.coffee
+++ b/ui/js/coffee/pageloader.coffee
@@ -106,6 +106,7 @@ setupPage = (json, state) ->
                 when 'comstat' then widget.load(comstat)
                 when 'worldmap' then widget.load(worldmap)
                 when 'orglist' then widget.load(orglist)
+                when 'membership' then widget.load(membershipList)
 
 
 

-- 
To stop receiving notification emails like this one, please contact
"commits@kibble.apache.org" <co...@kibble.apache.org>.