function showJsonRoster()

in source/javascripts/phonebook.js [561:602]


function showJsonRoster(obj, type, json, name, attr, checkUnix) {
   var id = 'details_' + type + '_' + name
   var details = document.getElementById(id)
   if (!details) {
      details = document.createElement('p')
      details.setAttribute("id", id)
      var podtype = json[name]['podling']
      if (podtype) {
         details.innerHTML += "<b>podling:</b> " + podtype + "<br><br>"
      }
      var cl;
      if (attr == 'owners') {
         cl = json[name].owners.slice()
      } else if (attr == 'members') {
         cl = json[name].members.slice()
      } else {
         cl = json[name].roster.slice()
      }
      cl.sort()
      for (var i in cl) {
         var uid = cl[i]
         cl[i] = "<tr><td onmouseover='hoverCommitter(this, \"" + uid + "\");' onmouseout='hoverCommitter(this, null);'><kbd>" + hiliteMember(uid) + "</kbd></td><td>" + getCommitterName(uid) + "</td>"
         if (checkUnix) { // check against Unix project
            if (ldapprojects[name]) { // make sure project exists!
               if (ldapprojects[name].members.indexOf(uid) > -1) {
                  cl[i] += "<td>&nbsp;</td>"
               } else {
                  cl[i] += "<td> N.B. not found in corresponding Unix group</td>"
               }
            }
         }
         cl[i] += "</tr>"
      }

      if (cl && cl.length > 0) {
         details.innerHTML += "<b>Roster:</b><br><br><table>" + cl.join("\n") + "</table><br/>"
      }
      obj.appendChild(details)
   } else {
      obj.removeChild(details)
   }
}