/** * 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("
profile image for "+ user.name +"
"); } else { cI.insert("
profile image for "+ user.name +"
"); } } 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 = "
"; if (user.creationdate && user.creationdate > 0) { var cDate = new Date(user.creationdate*1000); str += "Date Joined: "+cDate.format(DATE_FORMAT)+""; } else { var cDate = new Date(user.creationdate*1000); str += "Date Joined: "+cDate.format(DATE_FORMAT)+""; } if (user.lastactive && user.lastactive > 0) { var cDate = new Date(user.lastactive*1000); str += "Last Active: "+cDate.format(TIME_FORMAT)+""; } else { var cDate = new Date(user.lastlogin*1000); str += "Last Sign In: "+cDate.format(TIME_FORMAT)+""; } uiDiv.insert(str+"
"); if(user.description != ""){ uiDiv.insert("
"+user.description+"
"); } if(user.website != ""){ uiDiv.insert("
"+user.website+"
"); } if(user.tags && user.tags.length > 0) { var tagsStr = "
Profile Tags: "; for (var i=0 ; i< user.tags.length; i++){ if (i > 0) { tagsStr += ", "; } tagsStr += user.tags[i].tag.name; } tagsStr += "
"; uiDiv.insert(tagsStr); } uDiv.insert(uiDiv); return uDiv; } /** * Draw a single user entry in a widget list. */ function renderWidgetUser(user){ var uDiv = new Element("div",{id:'context'}); var imgDiv = new Element("div", {"class":"idea-user-image-wrap row"}); var cI = new Element("div", {'class':'idea-user2 col-auto'}); if(user.isgroup == 'Y'){ cI.insert("profile image for "+user.name+""); } else { cI.insert("profile image for "+user.name+"") } imgDiv.insert(cI); var uiDiv = new Element("div", {"class":"idea-user-wrap col"}); if(user.isgroup == 'Y'){ uiDiv.insert("" + user.name + ""); } else { uiDiv.insert("" + user.name + ""); } if (user.followdate){ var cDate = new Date(user.followdate*1000); uiDiv.insert("
Started following on: "+ cDate.format(DATE_FORMAT)); } imgDiv.insert(uiDiv); uDiv.insert(imgDiv); uDiv.insert("
"); return uDiv; } /** * Draw a single user entry on a widget page. */ function renderChatUser(user){ var uDiv = new Element("div",{id:'context', 'class':'chatUserList'}); var imgDiv = new Element("div", {'class':'row'}); var cI = new Element("div", {'class':'idea-user2 col-auto'}); if(user.isgroup == 'Y'){ cI.insert("profile image for "+user.name+""); } else { cI.insert("profile image for "+user.name+"") } imgDiv.insert(cI); var uiDiv = new Element("div", {'class':'chatUserInfo col-auto'}); if(user.isgroup == 'Y'){ uiDiv.insert("" + user.name + ""); } else { uiDiv.insert("" + user.name + ""); } if (user.chatlogtime){ var cDate = new Date(user.chatlogtime*1000); uiDiv.insert("
Arrived at this chat: "+ cDate.format(TIME_FORMAT)); } imgDiv.insert(uiDiv); uDiv.insert(imgDiv); uDiv.insert("
"); return uDiv; } /** * Draw a single user entry in a report list. */ function renderReportUser(user){ var uDiv = new Element("div",{id:'context'}); var imgDiv = new Element("div", {'style':'clear:both;float:left'}); var uiDiv = new Element("div", {'style':'float:left;'}); uiDiv.insert("
"+user.name+"
"); imgDiv.insert(uiDiv); uDiv.insert(imgDiv); uDiv.insert("
"); return uDiv; }