/** * Javascript functions for drawing a list of users */ function displayUsers(objDiv,users,start){ var lOL = new Element("ol", {'class':'user-list-ol user-list-tab-view'}); for(var i=0; i< users.length; i++){ if(users[i].user){ var iUL = new Element("li", {'id':users[i].user.userid, 'class':'user-list-li'}); lOL.insert(iUL); var blobDiv = new Element("div", {'class':'user-blob'}); var blobUser = renderUser(users[i].user); blobDiv.insert(blobUser); iUL.insert(blobDiv); } } objDiv.insert(lOL); } /** * Javascript functions for drawing list of users in a widget */ function displayWidgetUsers(objDiv,users,start){ var lOL = new Element("ol", {'class':'user-list-ol user-dashboard-view'}); for(var i=0; i< users.length; i++){ if(users[i].user){ var iUL = new Element("li", {'id':users[i].user.userid, 'class':'user-list-li'}); lOL.insert(iUL); var blobDiv = new Element("div", {'class':'user-blob'}); var blobUser = renderWidgetUser(users[i].user); blobDiv.insert(blobUser); iUL.insert(blobDiv); } } objDiv.insert(lOL); } /** * Javascript functions for drawing list of users on the chat page */ function displayChatUsers(objDiv,users,start){ var lOL = new Element("ol", {'class':'user-list-ol chatUsers'}); for(var i=0; i< users.length; i++){ if(users[i].user){ var iUL = new Element("li", {'id':users[i].user.userid, 'class':'user-list-li'}); lOL.insert(iUL); var blobDiv = new Element("div", {'class':'user-blob'}); var blobUser = renderChatUser(users[i].user); blobDiv.insert(blobUser); iUL.insert(blobDiv); } } objDiv.insert(lOL); } /** * Javascript functions for drawing a list of users in a report */ function displayReportUsers(objDiv,users,start){ for(var i=0; i< users.length; i++){ if(users[i].user){ var iUL = new Element("span", {'id':users[i].user.userid, 'class':'idea-list-li'}); objDiv.insert(iUL); var blobDiv = new Element("div", {'style':'margin: 2px; width: 650px'}); var blobUser = renderReportUser(users[i].user); blobDiv.insert(blobUser); iUL.insert(blobDiv); } } } /** * Makes ajax call for the current user to follow a person with the userid of the given obj. */ function followUser(obj) { var reqUrl = SERVICE_ROOT + "&method=addfollowing&itemid="+obj.userid; new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error) { alert(json.error[0].message); return; } else { obj.setAttribute('src', 'https://isave.evidence-hub.net/images/following.png'); obj.setAttribute('title', 'Unfollow this person...'); Event.stopObserving(obj, 'click'); Event.observe(obj,'click', function (){ unfollowUser(this) } ); } } }); } /** * Makes ajax call for the current user to unfollow a person with the userid of the given obj. */ function unfollowUser(obj) { var reqUrl = SERVICE_ROOT + "&method=deletefollowing&itemid="+obj.userid; new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error) { alert(json.error[0].message); return; } else { obj.setAttribute('src', 'https://isave.evidence-hub.net/images/follow.png'); obj.setAttribute('title', 'Follow this person...'); Event.stopObserving(obj, 'click'); Event.observe(obj,'click', function (){ followUser(this) } ); } } }); } /** * Makes ajax call to follow the given userid. Called from user home page follow list. */ function followMyUser(userid) { var reqUrl = SERVICE_ROOT + "&method=addfollowing&itemid="+userid; new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error) { alert(json.error[0].message); return; } else { try { window.location.reload(true); } catch(err) { //do nothing } } } }); } /** * Makes ajax call to unfollow the given userid. Called from user home page follow list. */ function unfollowMyUser(userid) { var reqUrl = SERVICE_ROOT + "&method=deletefollowing&itemid="+userid; new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error) { alert(json.error[0].message); return; } else { try { window.location.reload(true); } catch(err) { //do nothing } } } }); } /** * Send a spam alert to the server. */ function reportUserSpamAlert(obj, user) { var ans = confirm("Are you sure you want to report \n\n"+obj.label+"\n\nas a Spammer / Inappropriate?\n\n"); if (ans){ var reqUrl = URL_ROOT + "spamalert.php?type=user&id="+obj.id; new Ajax.Request(reqUrl, { method:'get', onError: function(error) { }, onSuccess: function(transport){ obj.setAttribute('alt', "Reported"); obj.setAttribute('title', "User has been reported as a Spammer / Inappropriate"); obj.setAttribute('src', "https://isave.evidence-hub.net/images/spam-reported.png"); obj.style.cursor = 'auto'; $(obj).unbind("click"); user.status = 1; } }); } } /** * Draw a single user item in a list. */ function renderUser(user){ var uDiv = new Element("div", {"id":'context', "class": "row"}); var cI = new Element('div', {'id':'contextimage'}); // fake white invisible border to make IE draw the name properly at top of image area not lower down. var imgDiv = new Element("div",{'class':'renderUser col-auto'}); if(user.isgroup == 'Y'){ cI.insert("
"); } else { if (user.searchid && user.searchid != "") { cI.insert(""); } else { cI.insert(""); } } imgDiv.insert(cI); // Add spam icon var spamDiv = new Element("div"); var spamimg = document.createElement('img'); if(USER != ""){ if (user.status == 1) { spamimg.setAttribute('alt', "Reported"); spamimg.setAttribute('title', "User has been reported as a Spammer / Inappropriate"); spamimg.setAttribute('src', 'https://isave.evidence-hub.net/images/spam-reported.png'); } else if (user.status == 0) { spamimg.setAttribute('alt', "Report"); spamimg.setAttribute('title', "Report this User as a Spammer / Inappropriate"); spamimg.setAttribute('src', 'https://isave.evidence-hub.net/images/spam.png'); spamimg.id = user.userid; spamimg.label = user.name; Event.observe(spamimg,'click',function (){ reportUserSpamAlert(this, user) } ); } } else { spamimg.setAttribute('alt', "Login to Report"); spamimg.setAttribute('title', "Login to report this User or Group as Spam / Inappropriate"); spamimg.setAttribute('src', 'https://isave.evidence-hub.net/images/spam-disabled.png'); } spamDiv.insert(spamimg); cI.insert(spamDiv); uDiv.insert(imgDiv); var uiDiv = new Element("div",{id:'contextinfo', "class":"col contextinfo"}); uDiv.insert(uiDiv); if(user.isgroup == 'N'){ var statusImg = document.createElement('img'); statusImg.setAttribute('alt', 'Offline'); statusImg.setAttribute('title', "User offline or inactive for more than 20 minutes"); statusImg.setAttribute('src', URL_ROOT+'images/red-light.png'); uiDiv.insert(statusImg); if (user.lastactive && user.lastactive > 0) { var cDate = new Date(user.lastactive*1000); var now = new Date(); if ( (now.getTime() - cDate.getTime()) < (20*60*1000) ) { // 20 minutes ago statusImg.setAttribute('alt', 'Online'); statusImg.setAttribute('title', "User active in the last 20 minutes"); statusImg.setAttribute('src', URL_ROOT+'images/green-light.png'); } } } if(user.isgroup == 'Y'){ uiDiv.insert("" + user.name + ""); } else { if (user.searchid && user.searchid != "") { uiDiv.insert("" + user.name + ""); } else { uiDiv.insert("" + user.name + ""); } } if(USER != ""){ var followDiv = new Element("div"); var followbutton = document.createElement('img'); followbutton.setAttribute('src', 'https://isave.evidence-hub.net/images/follow.png'); followbutton.setAttribute('alt', "Follow"); followbutton.setAttribute('id','follow'+user.userid); followbutton.userid = user.userid; followDiv.insert(followbutton); if (user.userfollow && user.userfollow == "Y") { Event.observe(followbutton,'click',function (){ unfollowUser(this) } ); followbutton.setAttribute('src', 'https://isave.evidence-hub.net/images/following.png'); followbutton.setAttribute('title', "Unfollow this person..."); } else { Event.observe(followbutton,'click',function (){ followUser(this) } ); followbutton.setAttribute('src', 'https://isave.evidence-hub.net/images/follow.png'); followbutton.setAttribute('title', "Follow this person..."); } uiDiv.insert(followDiv); } var str = "