/** * Javascript functions for nodes */ /** * Render a list of nodes */ function displayWidgetNodes(objDiv,nodes,start,includeUser,uniqueid){ if (uniqueid == undefined) { uniqueid = 'widget-list'; } var lOL = new Element("ol", {'start':start, 'class':'idea-list-ol'}); for(var i=0; i < nodes.length; i++){ if(nodes[i].cnode){ var iUL = new Element("li", {'id':nodes[i].cnode.nodeid, 'class':'idea-list-li'}); lOL.insert(iUL); var blobDiv = new Element("div", {'class':'idea-blob-list'}); var blobNode = renderWidgetListNodeMini(nodes[i].cnode, uniqueid+i+start, nodes[i].cnode.role[0].role,includeUser); blobDiv.insert(blobNode); iUL.insert(blobDiv); } } objDiv.insert(lOL); } /** * Render a list of nodes in the Chat tree */ function displayChatNodes(objDiv,nodes,start,includeUser,uniqueid, childCountSpan){ if (uniqueid == undefined) { uniqueid = 'widget-list'; } var lOL = new Element("ol", {'start':start, 'class':'idea-list-ol'}); for(var i=0; i < nodes.length; i++){ if(nodes[i].cnode){ var iUL = new Element("li", {'id':nodes[i].cnode.nodeid, 'class':'idea-list-li'}); lOL.insert(iUL); var blobDiv = new Element("div", {'class':'idea-blob-list'}); var blobNode = renderChatNode(nodes[i].cnode, uniqueid+i+start, nodes[i].cnode.role[0].role,includeUser,'active', childCountSpan); blobDiv.insert(blobNode); iUL.insert(blobDiv); } } objDiv.insert(lOL); } /** * Render a list of connection nodes */ function displayConnectionNodes(objDiv, nodes,start,includeUser,uniqueid, childCountSpan, parentrefreshhandler){ if (uniqueid == undefined) { uniqueid = 'idea-list'; } var lOL = new Element("ol", {'start':start, 'class':'idea-list-ol'}); for(var i=0; i < nodes.length; i++){ if(nodes[i].cnode){ var iUL = new Element("li", {'id':nodes[i].cnode.nodeid, 'class':'idea-list-li'}); lOL.insert(iUL); var blobDiv = new Element("div", {'class':'idea-blob-list'}); var blobNode = renderConnectionNode(nodes[i].cnode, uniqueid,nodes[i].cnode.role[0].role,includeUser,'active', childCountSpan, parentrefreshhandler); blobDiv.insert(blobNode); iUL.insert(blobDiv); } } objDiv.insert(lOL); } /** * Render a list of nodes */ function displayHomeNodes(objDiv,nodes,start,includeUser,uniqueid){ if (uniqueid == undefined) { uniqueid = 'home-list'; } var lOL = new Element("ol", {'start':start, 'class':'idea-list-ol'}); for(var i=0; i < nodes.length; i++){ if(nodes[i].cnode){ var iUL = new Element("li", {'id':nodes[i].cnode.nodeid, 'class':'idea-list-li'}); lOL.insert(iUL); var blobDiv = new Element("div", {'class':'idea-blob-list'}); var blobNode = renderNodeMini(nodes[i].cnode, uniqueid+i+start,nodes[i].cnode.role[0].role,includeUser,'active', "", false, false); blobDiv.insert(blobNode); iUL.insert(blobDiv); } } objDiv.insert(lOL); } /** * Render a list of nodes */ function displayNodes(objDiv,nodes,start,includeUser,uniqueid,includevoting){ if (uniqueid == undefined) { uniqueid = 'idea-list'; } if (includevoting == undefined) { includevoting = true; } var lOL = new Element("ol", {'start':start, 'class':'idea-list-ol'}); for(var i=0; i < nodes.length; i++){ if(nodes[i].cnode){ var iUL = new Element("li", {'id':nodes[i].cnode.nodeid, 'class':'idea-list-li'}); lOL.insert(iUL); var blobDiv = new Element("div", {'class':'idea-blob-list'}); var blobNode = renderNodeMini(nodes[i].cnode, uniqueid+i+start,nodes[i].cnode.role[0].role,includeUser,'active', "", false, includevoting); blobDiv.insert(blobNode); iUL.insert(blobDiv); } } objDiv.insert(lOL); } /** * Render a list of nodes */ function displayNewsNodes(objDiv,nodes){ for(var i=0; i < nodes.length; i++){ if(nodes[i].cnode){ objDiv.insert(renderNodeNews(nodes[i].cnode)); } } } /** * Render a list of nodes for the Connectedness stats boxes */ function displayConnectionStatNodes(objDiv,nodes,start,includeUser,uniqueid){ if (uniqueid == undefined) { uniqueid = 'idea-list'; } var lOL = new Element("ol", {'start':start, 'class':'idea-list-ol'}); for(var i=0; i < nodes.length; i++){ if(nodes[i].cnode){ var iUL = new Element("li", {'id':nodes[i].cnode.nodeid, 'class':'idea-list-li'}); lOL.insert(iUL); var blobDiv = new Element("div", {'class':'idea-blob-list'}); var blobNode = renderNode(nodes[i].cnode, uniqueid+i+start,nodes[i].cnode.role[0].role,includeUser,'active', "", true); blobDiv.insert(blobNode); iUL.insert(blobDiv); } } objDiv.insert(lOL); } /** * Render a list of nodes */ function displaySearchNodes(objDiv,nodes,start,includeUser,uniqueid){ if (uniqueid == undefined) { uniqueid = 'search-list'; } for(var i=0; i < nodes.length; i++){ if(nodes[i].cnode){ var blobDiv = new Element("div", {'class':'idea-blob-list'}); var blobNode = renderNodeMini(nodes[i].cnode, uniqueid+i+start,nodes[i].cnode.role[0].role,includeUser,'active', "", false, false); objDiv.insert(blobNode); } } } /** * Render a list of nodes */ function displayReportNodes(objDiv,nodes,start){ for(var i=0; i < nodes.length; i++){ if(nodes[i].cnode){ var iUL = new Element("span", {'id':nodes[i].cnode.nodeid, 'class':'idea-list-li', 'style':'padding-bottom: 5px;'}); objDiv.insert(iUL); var blobDiv = new Element("div", {'style':'margin: 2px; width: 650px'}); var blobNode = renderReportNode(nodes[i].cnode,'idea-list'+i+start, nodes[i].cnode.role[0].role); blobDiv.insert(blobNode); iUL.insert(blobDiv); } } } /** * Render a list of connection nodes for the print of the knowledge trees */ function displayReportConnectionNodes(objDiv, nodes,start,includeUser,uniqueid){ if (uniqueid == undefined) { uniqueid = 'knowledgetreereport'; } var lOL = new Element("div", {'start':start, 'class':'idea-list-ol', 'style':'float:left;margin-top:0px;padding-top: 0px;padding-bottom:0px;'}); for(var i=0; i < nodes.length; i++){ if(nodes[i].cnode){ var blobDiv = new Element("div", {'class':'idea-blob-list', 'style':'clear:both;float:left;margin: 0px; padding: 0px;'}); var blobNode = renderReportConnectionNode(nodes[i].cnode, uniqueid,nodes[i].cnode.role[0].role,includeUser); blobDiv.insert(blobNode); lOL.insert(blobDiv); } } objDiv.insert(lOL); } /** * Render the given node. * Used for Activities, Multi connection Viewer, Stats pages etc. where the node is drawn as a Cohere style box. * * @param node the node object to render * @param uniQ is a unique id element prepended to the nodeid to form an overall unique id within the currently visible site elements * @param role the role object for this node * @param includemenu whether to include the drop-down menu * @param type defaults to 'active', but can be 'inactive' so nothing is clickable * or a specialized type for some of the popups */ function renderNodeFromLocalJSon(node, uniQ, role, includemenu, type) { if (type === undefined) { type = "active"; } if (includemenu === undefined) { includemenu = true; } if(role === undefined){ role = node.role[0]; } var user = null; // JSON structure different if coming from popup where json_encode used. if (node.users[0].userid) { user = node.users[0]; } else { user = node.users[0].user; } var breakout = ""; //needs to check if embedded as a snippet if(top.location != self.location){ breakout = " target='_blank'"; } // used mostly for getting data from Audit history. So nodes repeated a lot. // creation date will be the same, but modification date will be different for each duplicated node in the Audit uniQ = node.modificationdate+node.nodeid + uniQ; var iDiv = new Element("div", {'class':'idea-container'}); var ihDiv = new Element("div", {'class':'idea-header'}); var itDiv = new Element("div", {'class':'idea-title'}); var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable"; if (type == "connselect") { nodeTable.style.cursor = 'pointer'; Event.observe(nodeTable,'click',function (){ loadConnectionNode(node, role); }); } var row = nodeTable.insertRow(-1); var leftCell = row.insertCell(-1); leftCell.vAlign="top"; leftCell.align="left"; var rightCell = row.insertCell(-1); rightCell.vAlign="top"; rightCell.align="right"; //get url for any saved image. //add left side with icon image and node text. var alttext = getNodeTitleAntecedence(role.name, false); if (node.imagethumbnail != null && node.imagethumbnail != "") { var originalurl = ""; if(node.urls && node.urls.length > 0){ for (var i=0 ; i < node.urls.length; i++){ var urlid = node.urls[i].url.urlid; if (urlid == node.imageurlid) { originalurl = node.urls[i].url.url; break; } } } if (originalurl == "") { originalurl = node.imagethumbnail; } var iconlink = new Element('a', { 'href':originalurl, 'title':"Visualizza l'immagine originale", 'target': '_blank' }); var nodeicon = new Element('img',{'alt':"Visualizza l'immagine originale", 'style':'padding-right:5px;', 'src': URL_ROOT + node.imagethumbnail}); iconlink.insert(nodeicon); itDiv.insert(iconlink); itDiv.insert(alttext+": "); } else if (role.image != null && role.image != "") { var nodeicon = new Element('img',{'alt':alttext, 'title':alttext, 'style':'padding-right:5px;', 'src': URL_ROOT + role.image}); itDiv.insert(nodeicon); } else { itDiv.insert(alttext+": "); } if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { itDiv.insert(""+node.description+""); } else { itDiv.insert(""+node.name+""); } leftCell.appendChild(itDiv); // Add right side with user image and date below var iuDiv = new Element("div", {'class':'idea-user'}); var userimageThumb = new Element('img',{'alt':user.name, 'title': user.name, 'style':'padding-right:5px;','align':'right', 'src': user.thumb}); if (type == "active") { var imagelink = new Element('a', { 'target':'_blank', 'href':URL_ROOT+"user.php?userid="+user.userid, 'title':user.name}); if (breakout != "") { imagelink.target = "_blank"; } imagelink.insert(userimageThumb); iuDiv.update(imagelink); } else { iuDiv.insert(userimageThumb) } var modDate = new Date(node.creationdate*1000); if (modDate) { var fomatedDate = modDate.format(DATE_FORMAT); iuDiv.insert("
"+fomatedDate+""); } rightCell.appendChild(iuDiv); ihDiv.insert(nodeTable); if (COMMENT_TYPES.indexOf(role.name) == -1) { var iwDiv = new Element("div", {'class':'idea-wrapper'}); var imDiv = new Element("div", {'class':'idea-main'}); var idDiv = new Element("div", {'class':'idea-detail'}); var headerDiv = new Element("div", {'class':'idea-menus', 'style':'width: 100%'}); idDiv.insert(headerDiv); if (type == 'active') { var exploreButton = new Element("a", {'title':'Clicca su Mostra/Nascondi per visualizzare più informazioni e attività su questo elemento'} ); exploreButton.insert("Esplora >>"); exploreButton.href= URL_ROOT+"explore.php?id="+node.nodeid; exploreButton.target = 'coheremain'; headerDiv.appendChild(exploreButton); } imDiv.insert(idDiv); iwDiv.insert(imDiv); iwDiv.insert('
'); } iDiv.insert(ihDiv); iDiv.insert('
'); iDiv.insert(iwDiv); return iDiv; } /** * Render the given node for drawing on the item Picker list. * @param node the node object to render * @param role the role object for this node * @param includemenu whether to include the drop-down menu (and bookmark and spam buttons) * @param type defaults to 'active', but can be 'inactive' so nothing is clickable * or a specialized type for some of the popups */ function renderPickerNode(node, role,includeUser){ if(role === undefined){ role = node.role[0].role; } var user = null; // JSON structure different if coming from popup where json_encode used. if (node.users[0].userid) { user = node.users[0]; } else { user = node.users[0].user; } var iDiv = new Element("div", {'style':'padding:0px;margin:0px;', 'class':'pickerNode'}); var ihDiv = new Element("div", {'style':'padding:0px;margin:0px;'}); var itDiv = new Element("div", {'class':'idea-title'}); var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable"; nodeTable.style.cursor = 'pointer'; var row = nodeTable.insertRow(-1); var leftCell = row.insertCell(-1); leftCell.vAlign="top"; leftCell.align="left"; var rightCell = row.insertCell(-1); rightCell.vAlign="top"; rightCell.align="right"; var alttext = getNodeTitleAntecedence(role.name, false); if (role.image != null && role.image != "") { var nodeicon = new Element('img',{'alt':alttext, 'title':alttext, 'style':'padding-right:5px;','src': URL_ROOT + role.image}); itDiv.insert(nodeicon); } else { itDiv.insert(alttext+": "); } Event.observe(itDiv,'click',function (){ loadSelecteditem(node); }); if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { itDiv.insert(""+node.description+""); } else { itDiv.insert(""+node.name+""); } leftCell.appendChild(itDiv); if (includeUser) { var iuDiv = new Element("div", {'class':'idea-user2'}); var userimageThumb = new Element('img',{'alt':user.name, 'title': user.name, 'style':'padding-right:5px;','align':'right', 'src': user.thumb}); iuDiv.insert(userimageThumb) rightCell.appendChild(iuDiv); } ihDiv.insert(nodeTable); iDiv.insert(ihDiv); iDiv.insert('
'); var iwDiv = new Element("div", {'class':'idea-wrapper'}); iwDiv.insert('
'); iDiv.insert(iwDiv); return iDiv; } /** * Render the given News node. * @param node the node object do render */ function renderNodeNews(node){ var description = node.description; description = removeHTMLTags(description); if (description.length > 100) { description = description.substr(0, 100)+'...'; } var title = node.name.replace(' & ',' & '); var link = 'https://netlab.evidence-hub.net/explore.php?id='+node.nodeid; var cDate = new Date(node.creationdate*1000); var date = cDate.format('mmmm d, yyyy'); var div = new Element("div", {'class':'d-block'}); var para1 = new Element("p", {'class':'row newsText'}); var role = node.role[0].role; if (role.image != null && role.image != "") { var nodeicon = new Element('img',{'alt':role.name, 'title':role.name, 'class':'col-auto', 'style':'max-width: 45px;','src': URL_ROOT + role.image}); para1.insert(nodeicon); } var strong = new Element("strong",{'class':'col p-0'}); para1.insert(strong); var anchor = new Element("a"); anchor.href = link; anchor.insert(title); strong.insert(anchor); strong.insert('
'); var small = new Element("small", {'class':'col-12'}); para1.insert(small); var em = new Element("em"); em.insert('Postato su '+date); small.insert(em); para1.insert(small); div.insert(para1); return div; } /** * Render the given node. * @param node the node object do render * @param uniQ is a unique id element prepended to the nodeid to form an overall unique id within the currently visible site elements * @param role the role object for this node. Defaults to the node role. * @param includeUser whether to include the user image and link. Defaults to true. * @param type defaults to 'active', but can be 'inactive' so nothing is clickable. * or a specialized type for some of the popups * @param parentrefreshhandler a statment to eval after actions have occurred to refresh this list. Defaults to empty string. * @param includeconnectedness should the connectedness count be included - defaults to false. * @param includevoting should the voting buttons be included - defaults to true. */ function renderNodeMini(node, uniQ, role, includeUser, type, parentrefreshhandler, includeconnectedness, includevoting){ if(role === undefined){ role = node.role[0].role; } if(includeUser === undefined){ includeUser = true; } if (type === undefined) { type = "active"; } if (parentrefreshhandler === undefined) { parentrefreshhandler = ""; } if (includeconnectedness === undefined) { includeconnectedness = false; } if (includevoting === undefined) { includevoting = true; } var user = null; // JSON structure different if coming from popup where json_encode used. if (node.users[0].userid) { user = node.users[0]; } else { user = node.users[0].user; } uniQ = node.nodeid + uniQ; var breakout = ""; //needs to check if embedded as a snippet if(top.location != self.location){ breakout = " target='_blank'"; } var iDiv = new Element("div", {'class':'m-0 p-0'}); var ihDiv = new Element("div", {'class':'m-0 p-0'}); var itDiv = new Element("div", {'class':'idea-title', 'style':''}); var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable table table-borderless "; itDiv.insert(nodeTable); var row = nodeTable.insertRow(-1); if (includevoting == true && type == 'active') { if (COMMENT_TYPES.indexOf(role.name) == -1 && role.name != "Idea") { // ADD VOTING ACTION if (role.name == 'Claim' || role.name == 'Issue' || role.name == 'Solution' || role.name == 'Challenge' || EVIDENCE_TYPES_STR.indexOf(role.name) != -1) { var voteCell = row.insertCell(-1); voteCell.className = "voting-td"; var voteDiv = new Element("div", {'class':'voting'}); voteCell.insert(voteDiv); // vote for var voteforimg = document.createElement('img'); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-grey3.png'); voteforimg.setAttribute('alt', 'Vota per'); voteforimg.setAttribute('id','nodefor'+node.nodeid); voteforimg.nodeid = node.nodeid; voteforimg.vote='Y'; voteDiv.insert(voteforimg); if (!node.positivevotes) { node.positivevotes = 0; } if(USER != ""){ voteforimg.style.cursor = 'pointer'; if (node.uservote && node.uservote == 'Y') { Event.observe(voteforimg,'click',function (){ deleteNodeVote(this) } ); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-filled3.png'); voteforimg.setAttribute('title', 'Cancella il setting...'); } else if (!node.uservote || node.uservote != 'Y') { Event.observe(voteforimg,'click',function (){ nodeVote(this) } ); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-empty3.png'); voteforimg.setAttribute('title', 'Supporta questo...'); } voteDiv.insert(''+node.positivevotes+''); } else { voteforimg.setAttribute('title', 'Accedi per promuovere questo'); voteDiv.insert(''+node.positivevotes+''); } // vote against var voteagainstimg = document.createElement('img'); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-grey3.png'); voteagainstimg.setAttribute('alt', 'Vota contro'); voteagainstimg.setAttribute('id', 'nodeagainst'+node.nodeid); voteagainstimg.nodeid = node.nodeid; voteagainstimg.vote='N'; voteDiv.insert(voteagainstimg); if (!node.negativevotes) { node.negativevotes = 0; } if(USER != ""){ voteagainstimg.style.cursor = 'pointer'; if (node.uservote && node.uservote == 'N') { Event.observe(voteagainstimg,'click',function (){ deleteNodeVote(this) } ); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-filled3.png'); voteagainstimg.setAttribute('title', 'Cancella il setting...'); } else if (!node.uservote || node.uservote != 'N') { Event.observe(voteagainstimg,'click',function (){ nodeVote(this) } ); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-empty3.png'); voteagainstimg.setAttribute('title', 'osteggia...'); } voteDiv.insert(''+node.negativevotes+''); } else { voteagainstimg.setAttribute('title', 'Accedi per osteggiare questo'); voteDiv.insert(''+node.negativevotes+''); } } } } var textCell = row.insertCell(-1); var alttext = getNodeTitleAntecedence(role.name, false); if (role.image != null && role.image != "") { var nodeicon = new Element('img',{'alt':alttext, 'class':'node-image-icon', 'src': URL_ROOT + role.image}); textCell.insert(nodeicon); } else { textCell.insert(alttext+": "); } var title = node.name; if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { title=node.description; } if (COMMENT_TYPES.indexOf(role.name) != -1 || role.name == "Idea") { textCell.insert(""+title+""); } else { var exploreButton = new Element('a', {'title':'Visualizza le informazioni su questo elemento.', 'id':'desctoggle'+uniQ, 'style':'line-height:1.8em;font-weight:normal', 'class':'itemtext'}); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } exploreButton.insert(title); textCell.insert(exploreButton); } // ADD MENU ACTIONS if (type == 'active') { if (COMMENT_TYPES.indexOf(role.name) != -1 || role.name == "Idea") { var toolbarCell = row.insertCell(-1); toolbarCell.vAlign="middle"; toolbarCell.align="left"; if (USER != "" && (( (BUILD_FROM_PERMISSIONS == "all") || (BUILD_FROM_PERMISSIONS == "user" && USER == user.userid) || (BUILD_FROM_PERMISSIONS == "admin" && IS_USER_ADMIN == "Y")) || USER == user.userid )){ var menuButton = new Element('img',{'alt':'>', 'class':'menuicon', 'src': 'https://netlab.evidence-hub.net/sites/multi/netlab.evidence-hub.net/theme/netlab/images/menuicon.png'}); toolbarCell.appendChild(menuButton); Event.observe(menuButton,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(menuButton,'mouseover',function (event) { var position = getPosition(this); var panel = $('toolbardiv'+uniQ); var panelWidth = 140; var viewportHeight = getWindowHeight(); var viewportWidth = getWindowWidth(); var x = position.x; var y = position.y;toolbardiv if ( (x+panelWidth+30) > viewportWidth) { x = x-(panelWidth+30); } else { x = x+10; } x = x+30+getPageOffsetX(); panel.style.left = x+"px"; panel.style.top = y+"px"; showBox('toolbardiv'+uniQ); }); var toolbarDiv = new Element("div", {'id':'toolbardiv'+uniQ, 'class':'toolbarDiv', 'style':'left:-1px;top:-1px;clear:both;position:absolute;display:none;z-index:60;padding:5px;width:140px;border:1px solid gray;background:white'} ); Event.observe(toolbarDiv,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(toolbarDiv,'mouseover',function (event){ showBox('toolbardiv'+uniQ); }); toolbarCell.appendChild(toolbarDiv); if (USER == user.userid) { var editButton = new Element("span", {'class':'active d-block', 'title':'Modifica questa FONTE'} ); editButton.insert("Modifica"); Event.observe(editButton,'click',function (){loadDialog('editcomment',URL_ROOT+"ui/popups/commentedit.php?handler="+parentrefreshhandler+"&nodeid="+node.nodeid, 750,500)}); toolbarDiv.appendChild(editButton); if (node.otheruserconnections == 0) { var delButton = new Element("span", {'class':'active d-block', 'title':'Cancella questo elemento'} ); delButton.insert("Cancella"); Event.observe(delButton,'click',function (){deleteNode(node.nodeid,node.name,role.name,parentrefreshhandler)}); toolbarDiv.appendChild(delButton); } else { var delButton = new Element("span", {'style':'margin-bottom:5px; display: block;', 'title':'Non puoi cancellare questo elemento. Qualcun altro si è collegato ad esso'} ); delButton.insert("Cancella"); toolbarDiv.appendChild(delButton); } } if (USER != "" && ( (BUILD_FROM_PERMISSIONS == "all") || (BUILD_FROM_PERMISSIONS == "user" && USER == user.userid) || (BUILD_FROM_PERMISSIONS == "admin" && IS_USER_ADMIN == "Y") )){ if (USER == user.userid) { toolbarDiv.appendChild(createMenuSpacer()); } var details = node.description; if (node.description == "") { details = node.name; } var addButton = new Element("span", {'class':'active d-block', 'title':'Converti questa CHAT in una SFIDA'} ); addButton.insert("TrasformaSFIDA"); Event.observe(addButton,'click',function (){loadDialog('addissue',URL_ROOT+"ui/popups/issueadd.php?handler="+node.handler+"&chatnodeid="+node.nodeid+"&desc="+encodeURIComponent(details), 750,500)}); toolbarDiv.appendChild(addButton); if (hasClaim) { var addButton = new Element("span", {'class':'active d-block', 'title':'Converti questa CHAT in una -'} ); addButton.insert("Trasforma-"); Event.observe(addButton,'click',function (){loadDialog('addclaim',URL_ROOT+"ui/popups/claimadd.php?handler="+node.handler+"&chatnodeid="+node.nodeid+"&desc="+encodeURIComponent(details), 750,500)}); toolbarDiv.appendChild(addButton); } if (hasSolution) { var addButton = new Element("span", {'class':'active d-block', 'title':'Converti questa CHAT in una PROPOSTA'} ); addButton.insert("TrasformaPROPOSTA"); Event.observe(addButton,'click',function (){loadDialog('addsolution',URL_ROOT+"ui/popups/solutionadd.php?handler="+node.handler+"&chatnodeid="+node.nodeid+"&desc="+encodeURIComponent(details), 750,500)}); toolbarDiv.appendChild(addButton); } var addButton = new Element("span", {'class':'active d-block', 'title':'Converti questa CHAT in una ARGOMENTAZIONE'} ); addButton.insert("TrasformaARGOMENTAZIONE"); Event.observe(addButton,'click',function (){loadDialog('addevidence',URL_ROOT+"ui/popups/evidenceadd.php?handler="+node.handler+"&chatnodeid="+node.nodeid+"&desc="+encodeURIComponent(details), 750,500)}); toolbarDiv.appendChild(addButton); } } } } ihDiv.insert(itDiv); if (COMMENT_TYPES.indexOf(role.name) != -1 || role.name == "Idea") { var iwDiv = new Element("div", {'class':'idea-wrapper'}); var imDiv = new Element("div", {'class':'idea-main'}); var idDiv = new Element("div", {'class':'idea-detail'}); var expandDiv = new Element("div", {'id':'desc'+uniQ,'class':'ideadata', 'style':'display:none;'} ); var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable"; expandDiv.insert(nodeTable); var row = nodeTable.insertRow(-1); var nextCell = row.insertCell(-1); nextCell.vAlign="middle"; nextCell.align="left"; // USER ICON NAME AND CREATIONS DATES var userbar = new Element("div", {'class':'userbar'} ); if (includeUser == true) { // Add right side with user image and date below var iuDiv = new Element("div", {'class':'idea-user2', 'style':'clear:both;float:left;'}); var userimageThumb = new Element('img',{'alt':user.name, 'title': user.name, 'style':'padding-right:5px;', 'src': user.thumb}); if (type == "active") { var imagelink = new Element('a', { 'href':URL_ROOT+"user.php?userid="+user.userid, 'title':user.name}); if (breakout != "") { imagelink.target = "_blank"; } imagelink.insert(userimageThumb); iuDiv.update(imagelink); } else { iuDiv.insert(userimageThumb) } userbar.appendChild(iuDiv); } var iuDiv = new Element("div", {'style':'float:left;'}); var dStr = ""; var cDate = new Date(node.creationdate*1000); dStr += "aggiunto il: "+ cDate.format(DATE_FORMAT) + "
"; dStr += "aggiunto da: "+ user.name + ""; iuDiv.insert(dStr); userbar.insert(iuDiv); nextCell.appendChild(userbar); // META DATA - DESCRIPTION, TAGS, URLS, LOCATION ETC // add url if a resource node if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { expandDiv.insert('Url:'); var link = new Element("a", {'href':node.name,'target':'_blank','title':'Vai al sito'} ); link.insert(node.name); expandDiv.insert(link); if (node.urls && node.urls.length > 0) { var hasClips = false; var iUL = new Element("ul", {}); for (var i=0 ; i < node.urls.length; i++){ if (node.urls[i].url.clip && node.urls[i].url.clip != "") { var link = new Element("li"); link.insert(node.urls[i].url.clip); iUL.insert(link); hasClips = true; } if (node.urls[i].url.identifier && node.urls[i].url.identifier != "" && role.name == 'Publication') { expandDiv.insert('
DOI: '+node.urls[i].url.identifier+''); } } if (hasClips) { expandDiv.insert('
Clips:
'); } expandDiv.insert(iUL); } } //tags if(node.tags && node.tags.length > 0){ var grpStr = "
Tags: "; for (var i=0 ; i < node.tags.length; i++){ var tag = null; if (node.tags[i].name) { tag = node.tags[i]; } else { tag = node.tags[i].tag } if (type == "active") { grpStr += ''+tag.name+''; } else { grpStr += tag.name; } if (i < node.tags.length-1) { grpStr += ','; } } grpStr += '
'; expandDiv.insert(grpStr); } var searchid=""; if (node.searchid) { searchid = node.searchid; } if (COMMENT_TYPES.indexOf(role.name) != -1 || role.name == "Idea") { var commentdiv = new Element("div", { 'id':'commentdiv'+uniQ, 'name':'commentdiv', 'class':'d-block commentdiv'}); expandDiv.insert(commentdiv); if (role.name == "Idea") { childcommentload(commentdiv, node.nodeid, "built from", "Solution,Issue,Challenge,Claim,"+EVIDENCE_TYPES_STR, uniQ, searchid); } else { childchatusageload(commentdiv, node.nodeid,"is related to", EVIDENCE_TYPES_STR+","+BASE_TYPES_STR+","+COMMENT_TYPES, uniQ, searchid); } } else if (EVIDENCE_TYPES.indexOf(role.name) != -1 || role.name == "Challenge" || role.name == "Issue" || role.name == "Solution" || role.name == "Claim") { var commentdiv = new Element("div", { 'id':'commentdiv'+uniQ, 'name':'commentdiv', 'class':'commentdiv'}); expandDiv.insert(commentdiv); childcommentload(commentdiv, node.nodeid,"built from", COMMENT_TYPES+",Idea", uniQ, searchid); } var dStr = ""; if (RESOURCE_TYPES_STR.indexOf(role.name) == -1) { if(node.description || node.hasdesc){ dStr += '
Descrizione
'; if (node.description && node.description != "") { expandDiv.description = true; dStr += node.description; } dStr += '
'; expandDiv.insert(dStr); } } // CHILD LISTS if (role.name == 'Challenge') { expandDiv.insert('
'); var issueStr = ") "; expandDiv.insert(issueStr); var issueDiv = new Element("div", {'id':'issue'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(issueDiv); expandDiv.insert('
'); var solutionStr = ") "; expandDiv.insert(solutionStr); var solutionDiv = new Element("div", {'id':'solution'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(solutionDiv); expandDiv.insert('
'); var claimStr = ") "; expandDiv.insert(claimStr); var claimDiv = new Element("div", {'id':'claim'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(claimDiv); expandDiv.insert('
'); } else if (role.name == 'Issue') { expandDiv.insert('
'); var solutionStr = ") "; expandDiv.insert(solutionStr); var solutionDiv = new Element("div", {'id':'solution'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(solutionDiv); expandDiv.insert('
'); var claimStr = ") "; expandDiv.insert(claimStr); var claimDiv = new Element("div", {'id':'claim'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(claimDiv); expandDiv.insert('
'); } else if (role.name == 'Claim' || role.name == 'Solution') { expandDiv.insert('
'); var supportStr = ") "; expandDiv.insert(supportStr); var supportDiv = new Element("div", {'id':'support'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(supportDiv); expandDiv.insert('
'); var opposeStr = ") "; expandDiv.insert(opposeStr); var opposingDiv = new Element("div", {'id':'oppose'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(opposingDiv); expandDiv.insert('
'); } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1) { expandDiv.insert('
'); var resourceStr = ") "; expandDiv.insert(resourceStr); var resourceDiv = new Element("div", {'id':'resource'+uniQ, 'style':'clear:both;float:left;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(resourceDiv); expandDiv.insert('
'); } else if (role.name == 'Comment' && node.connection) { var tN = node.connection.to[0].cnode; var tRole = tN.role[0].role; var title=tN.name; if (RESOURCE_TYPES_STR.indexOf(tRole.name) != -1) { title = tN.description; } if (tN.role[0].role.name == "Comment") { var nextStr = ""; nextStr += "Connesso a "; nextStr += ""+title+""; nextStr += ""; expandDiv.insert(nextStr); if (node.connection.parentnode) { var nextStr = ""; nextStr += "QualeCHAT riguarda: "; nextStr += ""; expandDiv.insert(nextStr); var icon = getNodeIconElement(node.connection.parentnode[0].cnode); var title = node.connection.parentnode[0].cnode.name; var parentid = node.connection.parentnode[0].cnode.nodeid; var exploreButton = new Element("a", {'class':'d-block','title':'Vedi tutte le CHAT su questo elemento'} ); if (icon != null) { exploreButton.insert(icon); exploreButton.insert(''+title+''); } else { exploreButton.insert(title); } exploreButton.href= "chats.php?chatnodeid="+node.nodeid+"&id="+parentid; expandDiv.insert(exploreButton); } } else { var nextStr = ""; nextStr += "Connesso a "; nextStr += ""; expandDiv.insert(nextStr); var icon = getNodeIconElement(tN); var exploreButton = new Element("a", {'class':'d-block','title':'Vedi tutte le CHAT su questo elemento'} ); if (icon != null) { exploreButton.insert(icon); exploreButton.insert(''+title+''); } else { exploreButton.insert(title); } exploreButton.href= "chats.php?chatnodeid="+node.nodeid+"&id="+tN.nodeid; expandDiv.insert(exploreButton); } } idDiv.insert(expandDiv); imDiv.insert(idDiv); iwDiv.insert(imDiv); } iDiv.insert(ihDiv); iDiv.insert(iwDiv); return iDiv; } /** * Render the given node. * @param node the node object do render * @param uniQ is a unique id element prepended to the nodeid to form an overall unique id within the currently visible site elements * @param role the role object for this node * @param includeUser whether to include the user image and link * @param type defaults to 'active', but can be 'inactive' so nothing is clickable * or a specialized type for some of the popups * @param parentrefreshhandler a statment to eval after actions have occurred to refresh this list. * @param includeconnectedness should the connectedness count be included - defaults to false. */ function renderNode(node, uniQ, role, includeUser, type, parentrefreshhandler, includeconnectedness){ if (type === includeconnectedness) { includeconnectedness = false; } if (type === undefined) { type = "active"; } if(role === undefined){ role = node.role[0].role; } var user = null; // JSON structure different if coming from popup where json_encode used. if (node.users[0].userid) { user = node.users[0]; } else { user = node.users[0].user; } uniQ = node.nodeid + uniQ; var breakout = ""; //needs to check if embedded as a snippet if(top.location != self.location){ breakout = " target='_blank'"; } var iDiv = new Element("div", {'style':'padding:0px;margin:0px;'}); var ihDiv = new Element("div", {'style':'padding:0px;margin:0px;'}); var itDiv = new Element("div", {'class':'idea-title', 'style':''}); var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable"; itDiv.insert(nodeTable); var row = nodeTable.insertRow(-1); var textCell = row.insertCell(-1); textCell.vAlign="middle"; textCell.align="left"; var alttext = getNodeTitleAntecedence(role.name, false); if (node.imagethumbnail != null && node.imagethumbnail != "") { var originalurl = ""; if(node.urls && node.urls.length > 0){ for (var i=0 ; i < node.urls.length; i++){ var urlid = node.urls[i].url.urlid; if (urlid == node.imageurlid) { originalurl = node.urls[i].url.url; break; } } } if (originalurl == "") { originalurl = node.imagethumbnail; } var iconlink = new Element('a', { 'href':originalurl, 'title':"Visualizza l'immagine originale", 'target': '_blank' }); var nodeicon = new Element('img',{'alt':"Visualizza l'immagine originale", 'style':'width:auto;height:20px;margin-top:0;padding-right:10px;', 'src': URL_ROOT + node.imagethumbnail}); iconlink.insert(nodeicon); textCell.insert(iconlink); textCell.insert(alttext+": "); } else if (role.image != null && role.image != "") { var nodeicon = new Element('img',{'alt':alttext, 'title':alttext, 'style':'width:auto;height:20px;margin-top:0;padding-right:10px;','src': URL_ROOT + role.image}); textCell.insert(nodeicon); } else { textCell.insert(alttext+": "); } var title = node.name; if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { title=node.description; } textCell.insert(""+title+""); if (includeconnectedness && node.connectedness) { var countCell = row.insertCell(-1); countCell.vAlign="middle"; countCell.align="left"; countCell.insert("("+node.connectedness+")"); } var toolbarCell = row.insertCell(-1); toolbarCell.vAlign="middle"; toolbarCell.align="left"; // ADD MENU ACTIONS if (type == 'active') { if (COMMENT_TYPES.indexOf(role.name) != -1 || role.name == "Idea") { if (USER != "" && (( (BUILD_FROM_PERMISSIONS == "all") || (BUILD_FROM_PERMISSIONS == "user" && USER == user.userid) || (BUILD_FROM_PERMISSIONS == "admin" && IS_USER_ADMIN == "Y")) || USER == user.userid )){ var menuButton = new Element('img',{'alt':'>', 'class':'menuicon','src': 'https://netlab.evidence-hub.net/sites/multi/netlab.evidence-hub.net/theme/netlab/images/menuicon.png'}); toolbarCell.appendChild(menuButton); Event.observe(menuButton,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(menuButton,'mouseover',function (event) { var position = getPosition(this); var panel = $('toolbardiv'+uniQ); var panelWidth = 140; var viewportHeight = getWindowHeight(); var viewportWidth = getWindowWidth(); var x = position.x; var y = position.y; if ( (x+panelWidth+30) > viewportWidth) { x = x-(panelWidth+30); } else { x = x+10; } x = x+30+getPageOffsetX(); panel.style.left = x+"px"; panel.style.top = y+"px"; showBox('toolbardiv'+uniQ); }); var toolbarDiv = new Element("div", {'id':'toolbardiv'+uniQ, 'class':'toolbarDiv', 'style':'left:-1px;top:-1px;clear:both;position:absolute;display:none;z-index:60;padding:5px;width:140px;border:1px solid gray;background:white'} ); Event.observe(toolbarDiv,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(toolbarDiv,'mouseover',function (event){ showBox('toolbardiv'+uniQ); }); toolbarCell.appendChild(toolbarDiv); if (USER == user.userid) { var editButton = new Element("span", {'class':'active d-block', 'title':'Modifica questa FONTE'} ); editButton.insert("Modifica"); Event.observe(editButton,'click',function (){loadDialog('editcomment',URL_ROOT+"ui/popups/commentedit.php?handler="+parentrefreshhandler+"&nodeid="+node.nodeid, 750,500)}); toolbarDiv.appendChild(editButton); if (node.otheruserconnections == 0) { var delButton = new Element("span", {'class':'active d-block', 'title':'Cancella questo elemento'} ); delButton.insert("Cancella"); Event.observe(delButton,'click',function (){deleteNode(node.nodeid,node.name,role.name,parentrefreshhandler)}); toolbarDiv.appendChild(delButton); } else { var delButton = new Element("span", {'style':'margin-bottom:5px; display: block;', 'title':'Non puoi cancellare questo elemento. Qualcun altro si è collegato ad esso'} ); delButton.insert("Cancella"); toolbarDiv.appendChild(delButton); } } if (USER != "" && ( (BUILD_FROM_PERMISSIONS == "all") || (BUILD_FROM_PERMISSIONS == "user" && USER == user.userid) || (BUILD_FROM_PERMISSIONS == "admin" && IS_USER_ADMIN == "Y") )){ if (USER == user.userid) { toolbarDiv.appendChild(createMenuSpacer()); } var details = node.description; if (node.description == "") { details = node.name; } var addButton = new Element("span", {'class':'active d-block', 'title':'Converti questa CHAT in una SFIDA'} ); addButton.insert("TrasformaSFIDA"); Event.observe(addButton,'click',function (){loadDialog('addissue',URL_ROOT+"ui/popups/issueadd.php?handler="+node.handler+"&chatnodeid="+node.nodeid+"&desc="+encodeURIComponent(details), 750,500)}); toolbarDiv.appendChild(addButton); if (hasClaim) { var addButton = new Element("span", {'class':'active d-block', 'title':'Converti questa CHAT in una -'} ); addButton.insert("Trasforma-"); Event.observe(addButton,'click',function (){loadDialog('addclaim',URL_ROOT+"ui/popups/claimadd.php?handler="+node.handler+"&chatnodeid="+node.nodeid+"&desc="+encodeURIComponent(details), 750,500)}); toolbarDiv.appendChild(addButton); } if (hasSolution) { var addButton = new Element("span", {'class':'active d-block', 'title':'Converti questa CHAT in una PROPOSTA'} ); addButton.insert("TrasformaPROPOSTA"); Event.observe(addButton,'click',function (){loadDialog('addsolution',URL_ROOT+"ui/popups/solutionadd.php?handler="+node.handler+"&chatnodeid="+node.nodeid+"&desc="+encodeURIComponent(details), 750,500)}); toolbarDiv.appendChild(addButton); } var addButton = new Element("span", {'class':'active d-block', 'title':'Converti questa CHAT in una ARGOMENTAZIONE'} ); addButton.insert("TrasformaARGOMENTAZIONE"); Event.observe(addButton,'click',function (){loadDialog('addevidence',URL_ROOT+"ui/popups/evidenceadd.php?handler="+node.handler+"&chatnodeid="+node.nodeid+"&desc="+encodeURIComponent(details), 750,500)}); toolbarDiv.appendChild(addButton); } } } else { var menuButton = new Element('img',{'alt':'>', 'class':'menuicon', 'src': 'https://netlab.evidence-hub.net/sites/multi/netlab.evidence-hub.net/theme/netlab/images/menuicon.png'}); toolbarCell.appendChild(menuButton); Event.observe(menuButton,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(menuButton,'mouseover',function (event) { var position = getPosition(this); var panel = $('toolbardiv'+uniQ); var panelWidth = 175; var viewportHeight = getWindowHeight(); var viewportWidth = getWindowWidth(); var x = position.x; var y = position.y; if ( (x+panelWidth+30) > viewportWidth) { x = x-(panelWidth+30); } else { x = x+10; } x = x+30+getPageOffsetX(); panel.style.left = x+"px"; panel.style.top = y+"px"; closeSubmenus(uniQ); showBox('toolbardiv'+uniQ, event); }); var toolbarDiv = new Element("div", {'id':'toolbardiv'+uniQ, 'class':'toolbarDiv connectionsToolbar', 'style':'left:-1px;top:-1px;clear:both;position:absolute;display:none;z-index:60;padding:5px;width:175px;border:1px solid gray;background:white;'} ); Event.observe(toolbarDiv,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(toolbarDiv,'mouseover',function (event){ showBox('toolbardiv'+uniQ); }); toolbarCell.appendChild(toolbarDiv); createExploreMenuOption(toolbarDiv, node, role, uniQ); createConnectionMenuOption(toolbarDiv, node, role, uniQ); // IF OWNER ADD EDIT / DEL ACTIONS if (USER == user.userid) { createEditMenuOption(toolbarDiv, node, role, parentrefreshhandler, user); if (node.otheruserconnections == 0) { var deletename = node.name; if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { deletename = node.description; } var delButton = new Element("span", {'class':'active d-block', 'title':'Cancella questo elemento'} ); delButton.insert("Cancella"); Event.observe(delButton,'click',function (){deleteNode(node.nodeid,deletename,role.name,parentrefreshhandler)}); toolbarDiv.appendChild(delButton); } else { var delButton = new Element("span", {'style':'margin-bottom:5px;', 'title':'Non puoi cancellare questo elemento. Qualcun altro si è collegato ad esso'} ); delButton.insert("Cancella"); toolbarDiv.appendChild(delButton); } } toolbarDiv.insert(createSpamMenuOption(node, role)); // ADD VOTING ACTION if (role.name == 'Claim' || role.name == 'Issue' || role.name == 'Solution' || role.name == 'Challenge' || EVIDENCE_TYPES_STR.indexOf(role.name) != -1) { var voteDiv = new Element("div", {'class':'voteDiv d-flex mt-1'}); voteDiv.insert('Vota:'); toolbarDiv.insert(voteDiv); // vote for var voteforimg = document.createElement('img'); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-grey3.png'); voteforimg.setAttribute('alt', 'Vota per'); voteforimg.setAttribute('id','nodefor'+node.nodeid); voteforimg.nodeid = node.nodeid; voteforimg.vote='Y'; voteforimg.style.verticalAlign="bottom"; voteforimg.style.marginRight="3px"; voteDiv.insert(voteforimg); if (!node.positivevotes) { node.positivevotes = 0; } if(USER != ""){ voteforimg.style.cursor = 'pointer'; if (node.uservote && node.uservote == 'Y') { Event.observe(voteforimg,'click',function (){ deleteNodeVote(this) } ); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-filled3.png'); voteforimg.setAttribute('title', 'Cancella il setting...'); } else if (!node.uservote || node.uservote != 'Y') { Event.observe(voteforimg,'click',function (){ nodeVote(this) } ); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-empty3.png'); voteforimg.setAttribute('title', 'Supporta questo...'); } voteDiv.insert(''+node.positivevotes+''); } else { voteforimg.setAttribute('title', 'Accedi per promuovere questo'); voteDiv.insert(''+node.positivevotes+''); } // vote against var voteagainstimg = document.createElement('img'); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-grey3.png'); voteagainstimg.setAttribute('alt', 'Vota contro'); voteagainstimg.setAttribute('id', 'nodeagainst'+node.nodeid); voteagainstimg.nodeid = node.nodeid; voteagainstimg.vote='N'; voteagainstimg.style.verticalAlign="bottom"; voteagainstimg.style.marginRight="3px"; voteDiv.insert(voteagainstimg); if (!node.negativevotes) { node.negativevotes = 0; } if(USER != ""){ voteagainstimg.style.cursor = 'pointer'; if (node.uservote && node.uservote == 'N') { Event.observe(voteagainstimg,'click',function (){ deleteNodeVote(this) } ); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-filled3.png'); voteagainstimg.setAttribute('title', 'Cancella il setting...'); } else if (!node.uservote || node.uservote != 'N') { Event.observe(voteagainstimg,'click',function (){ nodeVote(this) } ); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-empty3.png'); voteagainstimg.setAttribute('title', 'osteggia...'); } voteDiv.insert(''+node.negativevotes+''); } else { voteagainstimg.setAttribute('title', 'Accedi per osteggiare questo'); voteDiv.insert(''+node.negativevotes+''); } } } } ihDiv.insert(itDiv); var iwDiv = new Element("div", {'class':'idea-wrapper'}); var imDiv = new Element("div", {'class':'idea-main'}); var idDiv = new Element("div", {'class':'idea-detail'}); var expandDiv = new Element("div", {'id':'desc'+uniQ,'class':'ideadata', 'style':'display:none;'} ); var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable"; expandDiv.insert(nodeTable); var row = nodeTable.insertRow(-1); var nextCell = row.insertCell(-1); nextCell.vAlign="middle"; nextCell.align="left"; // USER ICON NAME AND CREATIONS DATES var userbar = new Element("div", {'class':'userbar'} ); if (includeUser == true) { // Add right side with user image and date below var iuDiv = new Element("div", {'class':'idea-user2', 'style':'clear:both;float:left;'}); var userimageThumb = new Element('img',{'alt':user.name, 'title': user.name, 'style':'padding-right:5px;', 'src': user.thumb}); if (type == "active") { var imagelink = new Element('a', { 'href':URL_ROOT+"user.php?userid="+user.userid, 'title':user.name}); if (breakout != "") { imagelink.target = "_blank"; } imagelink.insert(userimageThumb); iuDiv.update(imagelink); } else { iuDiv.insert(userimageThumb) } userbar.appendChild(iuDiv); } var iuDiv = new Element("div", {'style':'float:left;'}); var dStr = ""; var cDate = new Date(node.creationdate*1000); dStr += "aggiunto il: "+ cDate.format(DATE_FORMAT) + "
"; dStr += "aggiunto da: "+ user.name + ""; iuDiv.insert(dStr); userbar.insert(iuDiv); nextCell.appendChild(userbar); // META DATA - DESCRIPTION, TAGS, URLS, LOCATION ETC // add url if a resource node if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { expandDiv.insert('Url:'); var link = new Element("a", {'href':node.name,'target':'_blank','title':'Vai al sito'} ); link.insert(node.name); expandDiv.insert(link); if (node.urls && node.urls.length > 0) { var hasClips = false; var iUL = new Element("ul", {}); for (var i=0 ; i < node.urls.length; i++){ if (node.urls[i].url.clip && node.urls[i].url.clip != "") { var link = new Element("li"); link.insert(node.urls[i].url.clip); iUL.insert(link); hasClips = true; } if (node.urls[i].url.identifier && node.urls[i].url.identifier != "" && role.name == 'Publication') { expandDiv.insert('
DOI: '+node.urls[i].url.identifier+''); } } if (hasClips) { expandDiv.insert('
Clips:
'); } expandDiv.insert(iUL); } } //tags if(node.tags && node.tags.length > 0){ var grpStr = "
Tags: "; for (var i=0 ; i < node.tags.length; i++){ var tag = null; if (node.tags[i].name) { tag = node.tags[i]; } else { tag = node.tags[i].tag } if (type == "active") { grpStr += ''+tag.name+''; } else { grpStr += tag.name; } if (i < node.tags.length-1) { grpStr += ','; } } grpStr += '
'; expandDiv.insert(grpStr); } var searchid=""; if (node.searchid) { searchid = node.searchid; } if (COMMENT_TYPES.indexOf(role.name) != -1 || role.name == "Idea") { var commentdiv = new Element("div", { 'id':'commentdiv'+uniQ, 'name':'commentdiv', 'class':'d-block commentdiv'}); expandDiv.insert(commentdiv); if (role.name == "Idea") { childcommentload(commentdiv, node.nodeid, "built from", "Solution,Issue,Challenge,Claim,"+EVIDENCE_TYPES_STR, uniQ, searchid); } else { childchatusageload(commentdiv, node.nodeid,"is related to", EVIDENCE_TYPES_STR+","+BASE_TYPES_STR+","+COMMENT_TYPES, uniQ, searchid); } } else if (EVIDENCE_TYPES.indexOf(role.name) != -1 || role.name == "Challenge" || role.name == "Issue" || role.name == "Solution" || role.name == "Claim") { var commentdiv = new Element("div", { 'id':'commentdiv'+uniQ, 'name':'commentdiv', 'class':'d-block commentdiv'}); expandDiv.insert(commentdiv); childcommentload(commentdiv, node.nodeid,"built from", COMMENT_TYPES+",Idea", uniQ, searchid); } var dStr = ""; if (RESOURCE_TYPES_STR.indexOf(role.name) == -1) { if(node.description || node.hasdesc){ dStr += '
Descrizione
'; if (node.description && node.description != "") { expandDiv.description = true; dStr += node.description; } dStr += '
'; expandDiv.insert(dStr); } } // CHILD LISTS if (role.name == 'Challenge') { expandDiv.insert('
'); var issueStr = ") "; expandDiv.insert(issueStr); var issueDiv = new Element("div", {'id':'issue'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(issueDiv); expandDiv.insert('
'); var solutionStr = ") "; expandDiv.insert(solutionStr); var solutionDiv = new Element("div", {'id':'solution'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(solutionDiv); expandDiv.insert('
'); var claimStr = ") "; expandDiv.insert(claimStr); var claimDiv = new Element("div", {'id':'claim'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(claimDiv); expandDiv.insert('
'); } else if (role.name == 'Issue') { expandDiv.insert('
'); var solutionStr = ") "; expandDiv.insert(solutionStr); var solutionDiv = new Element("div", {'id':'solution'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(solutionDiv); expandDiv.insert('
'); var claimStr = ") "; expandDiv.insert(claimStr); var claimDiv = new Element("div", {'id':'claim'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(claimDiv); expandDiv.insert('
'); } else if (role.name == 'Claim' || role.name == 'Solution') { expandDiv.insert('
'); var supportStr = ") "; expandDiv.insert(supportStr); var supportDiv = new Element("div", {'id':'support'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(supportDiv); expandDiv.insert('
'); var opposeStr = ") "; expandDiv.insert(opposeStr); var opposingDiv = new Element("div", {'id':'oppose'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(opposingDiv); expandDiv.insert('
'); } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1) { expandDiv.insert('
'); var resourceStr = ") "; expandDiv.insert(resourceStr); var resourceDiv = new Element("div", {'id':'resource'+uniQ, 'style':'clear:both;float:left;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(resourceDiv); expandDiv.insert('
'); } else if (role.name == 'Comment' && node.connection) { var tN = node.connection.to[0].cnode; var tRole = tN.role[0].role; var title=tN.name; if (RESOURCE_TYPES_STR.indexOf(tRole.name) != -1) { title = tN.description; } if (tN.role[0].role.name == "Comment") { var nextStr = ""; nextStr += "Connesso a "; nextStr += ""+title+""; nextStr += ""; expandDiv.insert(nextStr); if (node.connection.parentnode) { var nextStr = ""; nextStr += "QualeCHAT riguarda: "; nextStr += ""; expandDiv.insert(nextStr); var icon = getNodeIconElement(node.connection.parentnode[0].cnode); var title = node.connection.parentnode[0].cnode.name; var parentid = node.connection.parentnode[0].cnode.nodeid; var exploreButton = new Element("a", {'class':'d-block','title':'Vedi tutte le CHAT su questo elemento'} ); if (icon != null) { exploreButton.insert(icon); exploreButton.insert(''+title+''); } else { exploreButton.insert(title); } exploreButton.href= "chats.php?chatnodeid="+node.nodeid+"&id="+parentid; expandDiv.insert(exploreButton); } } else { var nextStr = ""; nextStr += "Connesso a "; nextStr += ""; expandDiv.insert(nextStr); var icon = getNodeIconElement(tN); var exploreButton = new Element("a", {'class':'d-block','title':'Vedi tutte le CHAT su questo elemento'} ); if (icon != null) { exploreButton.insert(icon); exploreButton.insert(''+title+''); } else { exploreButton.insert(title); } exploreButton.href= "chats.php?chatnodeid="+node.nodeid+"&id="+tN.nodeid; expandDiv.insert(exploreButton); } } idDiv.insert(expandDiv); imDiv.insert(idDiv); iwDiv.insert(imDiv); iDiv.insert(ihDiv); iDiv.insert(iwDiv); return iDiv; } /** * Render the given node from an associated connection in the knowledge tree. * @param node the node object do render * @param uniQ is a unique id element prepended to the nodeid to form an overall unique id within the currently visible site elements * @param role the role object for this node * @param includeUser whether to include the user image and link * @param type defaults to 'active', but can be 'inactive' so nothing is clickable * or a specialized type for some of the popups * @param childCountSpan The element into which to put the running total of children in this conneciotn tree.. * @param parentrefreshhandler a statment to eval after actions have occurred to refresh this list. */ function renderConnectionNode(node, uniQ, role, includeUser, type, childCountSpan, parentrefreshhandler){ if (type === undefined) { type = "active"; } if (childCountSpan === undefined) { childCountSpan = null; } var originaluniQ = uniQ; if(role === undefined){ role = node.role[0].role; } var nodeuser = null; // JSON structure different if coming from popup where json_encode used. if (node.users[0].userid) { nodeuser = node.users[0]; } else { nodeuser = node.users[0].user; } var connection = node.connection; var user = null; if (connection) { user = connection.users[0].user; } //needs to check if embedded as a snippet var breakout = ""; if(top.location != self.location){ breakout = " target='_blank'"; } var focalnodeid = ""; if (node.focalnodeid) { focalnodeid = node.focalnodeid; } var focalrole = ""; var connrole = role; var otherend = ""; if (connection) { uniQ = connection.connid+uniQ; var fN = connection.from[0].cnode; var tN = connection.to[0].cnode; if (node.nodeid == fN.nodeid) { connrole = connection.fromrole[0].role; focalrole = tN.role[0].role; otherend = tN; } else { connrole = connection.torole[0].role; focalrole = fN.role[0].role; otherend = fN; } } else { uniQ = node.nodeid + uniQ; } var iDiv = new Element("div", {'class':'d-block'}); var ihDiv = new Element("div", {'class':'d-block'}); var itDiv = new Element("div", {'class':'idea-title'}); var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable"; itDiv.insert(nodeTable); var row = nodeTable.insertRow(-1); // ADD THE ARROW IF REQUIRED if (node.istop) { var expandArrow = null; if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 || role.name == "Challenge" || role.name == "Issue" || role.name == "Solution" || role.name == "Claim") { var arrowCell = row.insertCell(-1); if (DEBATE_TREE_OPEN_ARRAY["desc"+uniQ] && DEBATE_TREE_OPEN_ARRAY["desc"+uniQ] == true) { expandArrow = new Element('span', {'id':'explorearrow'+uniQ }); expandArrow = new Element('img',{'id':'explorearrow'+uniQ, 'name':'explorearrow', 'class':'explorearrow', 'alt':'>', 'title':"Mostra/Nascondi l'albero della conoscenza",'src': 'https://netlab.evidence-hub.net/images/arrow-down-blue.png'}); expandArrow.uniqueid = uniQ; } else { expandArrow = new Element('span', {'id':'explorearrow'+uniQ }); expandArrow = new Element('img',{'id':'explorearrow'+uniQ, 'name':'explorearrow', 'class':'explorearrow', 'alt':'>', 'title':"Mostra/Nascondi l'albero della conoscenza",'src': 'https://netlab.evidence-hub.net/images/arrow-right-blue.png'}); expandArrow.uniqueid = uniQ; } Event.observe(expandArrow,'click',function (){ toggleDebate("treedesc"+uniQ,uniQ);}); arrowCell.insert(expandArrow); } } else { var lineCell = row.insertCell(-1); lineCell.width="15px;" lineCell.vAlign="middle"; var lineDiv = new Element('div',{'class':'graylinewide', 'style':'float:left;width:100%;'}); lineCell.insert(lineDiv); } var textCell = row.insertCell(-1); textCell.vAlign="middle"; textCell.align="left"; var textCellDiv = new Element("div", { 'id':'textDivCell'+uniQ, 'name':'textDivCell', 'class':'textDivCell whiteborder'}); textCellDiv.nodeid = node.nodeid; textCellDiv.focalnodeid = node.focalnodeid; textCellDiv.nodetype = role.name; textCellDiv.parentuniQ = originaluniQ; if (connection) { textCellDiv.connection = connection; } if (node.nodeid == CURRENT_ADD_AREA_NODEID) { var bordercolor = 'plainborder'; var backcolor = 'focusedback'; var nodetype = role.name; if (nodetype == 'Challenge') { bordercolor = 'challengeborder'; if (node.nodeid == node.focalnodeid) { backcolor = 'challengeback'; } } else if (nodetype == 'Issue') { bordercolor = 'issueborder'; if (node.nodeid == node.focalnodeid) { backcolor = 'issueback'; } } else if (nodetype == 'Claim') { bordercolor = 'claimborder'; if (node.nodeid == node.focalnodeid) { backcolor = 'claimback'; } } else if (nodetype == 'Solution') { bordercolor = 'solutionborder'; if (node.nodeid == node.focalnodeid) { backcolor = 'solutionback'; } } else if (EVIDENCE_TYPES_STR.indexOf(nodetype) != -1) { bordercolor = 'evidenceborder'; if (node.nodeid == node.focalnodeid) { backcolor = 'evidenceback'; } } else if (RESOURCE_TYPES_STR.indexOf(nodetype) != -1) { bordercolor = 'resourceborder'; if (node.nodeid == node.focalnodeid) { backcolor = 'resourceback'; } } //if (node.nodeid == node.focalnodeid) { // bordercolor = 'selectedborder'; //} textCellDiv = new Element("div", { 'id':'textDivCell'+uniQ, 'name':'textDivCell', 'class':'textDivCell '+backcolor+' '+bordercolor}); textCellDiv.nodeid = node.nodeid; textCellDiv.nodetype = role.name; textCellDiv.focalnodeid = node.focalnodeid; textCellDiv.parentuniQ = originaluniQ; if (connection) { textCellDiv.connection = connection; } } else if (node.nodeid == node.focalnodeid) { var bordercolor = 'plainborder'; var backcolor = 'whiteback'; var nodetype = role.name; if (nodetype == 'Challenge') { bordercolor = 'challengeborder'; backcolor = 'challengeback'; } else if (nodetype == 'Issue') { bordercolor = 'issueborder'; backcolor = 'issueback'; } else if (nodetype == 'Claim') { bordercolor = 'claimborder'; backcolor = 'claimback'; } else if (nodetype == 'Solution') { bordercolor = 'solutionborder'; backcolor = 'solutionback'; } else if (EVIDENCE_TYPES_STR.indexOf(nodetype) != -1) { bordercolor = 'evidenceborder'; backcolor = 'evidenceback'; } else if (RESOURCE_TYPES_STR.indexOf(nodetype) != -1) { bordercolor = 'resourceborder'; backcolor = 'resourceback'; } textCellDiv = new Element("div", { 'id':'textDivCell'+uniQ, 'name':'textDivCell', 'class':'textDivCell '+backcolor+' '+bordercolor}); textCellDiv.nodeid = node.nodeid; textCellDiv.nodetype = role.name; textCellDiv.focalnodeid = node.focalnodeid; textCellDiv.parentuniQ = originaluniQ; if (connection) { textCellDiv.connection = connection; } } var toolbarCell = row.insertCell(-1); toolbarCell.vAlign="middle"; toolbarCell.align="left"; toolbarCell.width="80"; textCell.insert(textCellDiv); var cDate = new Date(connection.creationdate*1000); var dStr = "Connesso da "+user.name+ " on "+cDate.format(DATE_FORMAT)+' - Clicca per visualizzare/nascondere ulteriori informazioni' // ADD THE NODE ICON var nodeArea = new Element("a", {'class':'itemtext', 'name':'nodeArea','title':dStr} ); nodeArea.nodeid = node.nodeid; nodeArea.focalnodeid = node.focalnodeid; var alttext = getNodeTitleAntecedence(role.name, false); if (node.imagethumbnail != null && node.imagethumbnail != "") { var originalurl = ""; if(node.urls && node.urls.length > 0){ for (var i=0 ; i < node.urls.length; i++){ var urlid = node.urls[i].url.urlid; if (urlid == node.imageurlid) { originalurl = node.urls[i].url.url; break; } } } if (originalurl == "") { originalurl = node.imagethumbnail; } var iconlink = new Element('a', { 'href':originalurl, 'title':"Visualizza l'immagine originale", 'target': '_blank' }); var nodeicon = new Element('img',{'alt':"Visualizza l'immagine originale", 'src': URL_ROOT + node.imagethumbnail}); iconlink.insert(nodeicon); nodeArea.insert(iconlink); nodeArea.insert(alttext+": "); } else if (connrole.image != null && connrole.image != "") { var nodeicon = new Element('img',{'alt':alttext, 'title':alttext,'src': URL_ROOT + connrole.image}); nodeArea.insert(nodeicon); } else { nodeArea.insert(alttext+": "); } // ADD THE NODE LABEL textCellDiv.appendChild(nodeArea); if (type == 'active' && role.name != 'Comment') { if (node.nodeid == CURRENT_ADD_AREA_NODEID) { if (node.nodeid == node.focalnodeid) { nodeArea.className = "itemtextwhite"; } else { nodeArea.className = "itemtext selectedlabel"; } } else { if (node.nodeid == node.focalnodeid) { nodeArea.className = "itemtextwhite"; } else { nodeArea.className = "itemtext unselectedlabel"; } } var nodeextra = getNodeTitleAntecedence(role.name, true); if (RESOURCE_TYPES_STR.indexOf(connrole.name) != -1) { nodeArea.insert(""+nodeextra+""+node.description); } else { nodeArea.insert(""+nodeextra+""+node.name); } nodeArea.href= "#"; Event.observe(nodeArea,'click',function (){ ideatoggle3("desc"+uniQ, uniQ, node.nodeid,"desc",role.name); }); } else if (type == 'active' && role.name == 'Comment' && connection && CONTEXT == USER_CONTEXT) { nodeArea.insert(node.name); nodeArea.href= "explore.php?id="+connection.to[0].cnode.nodeid; } if (node.istop) { var expandArrow = null; if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 || role.name == "Challenge" || role.name == "Issue" || role.name == "Solution" || role.name == "Claim") { var childCount = new Element('div',{'class':'toptreecount', 'title':'Il numero di voci attualmente aggiunte a questo albero della conoscenza'}); childCount.insert("("); childCountSpan = new Element('span',{'name':'toptreecount'}); childCountSpan.id = 'toptreecount'+uniQ; childCountSpan.insert(1); childCountSpan.uniqueid = uniQ; childCount.insert(childCountSpan); childCount.insert(")"); toolbarCell.insert(childCount); } } // ADD ACTION MENU var menuButton = null; if (type == 'active') { menuButton = new Element('img',{'alt':'>', 'class':'menuicon', 'src': 'https://netlab.evidence-hub.net/sites/multi/netlab.evidence-hub.net/theme/netlab/images/add.png'}); toolbarCell.appendChild(menuButton); Event.observe(menuButton,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(menuButton,'mouseover',function (event) { var position = getPosition(this); var panel = $('toolbardiv'+uniQ); var panelWidth = 185; var viewportHeight = getWindowHeight(); var viewportWidth = getWindowWidth(); var x = position.x; var y = position.y; if ( (x+panelWidth+30) > viewportWidth) { x = x-(panelWidth+30); } else { x = x+10; } x = x+30+getPageOffsetX(); panel.style.left = x+"px"; panel.style.top = y+"px"; showBox('toolbardiv'+uniQ); }); var toolbarDiv = new Element("div", {'id':'toolbardiv'+uniQ, 'class':'toolbarDiv', 'style':'left:-1px;top:-1px;clear:both;position:absolute;display:none;z-index:60;padding:5px 15px;border:1px solid gray;background:white'} ); Event.observe(toolbarDiv,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(toolbarDiv,'mouseover',function (event){ showBox('toolbardiv'+uniQ); }); toolbarCell.appendChild(toolbarDiv); var key=""; var handler = ""; var nodetofocusid = ""; var nodeid = node.nodeid; // ADD BUTTON if (RESOURCE_TYPES_STR.indexOf(role.name) == -1 || (nodeObj && node.nodeid == nodeObj.nodeid)) { if (USER != "") { var theme = ""; if (nodeObj && nodeObj.role.name == 'Theme') { var decodedTheme = htmlspecialchars_decode(nodeObj.name); theme = escape(encodeURIComponent(decodedTheme)); } if (role.name == 'Claim') { var linktype = 'supports'; toolbarDiv.insert('add Aggiungi un ARGOMENTAZIONE a favore'); var linktype = 'challenges'; toolbarDiv.insert('add Aggiungi un ARGOMENTAZIONE contro'); } else if (role.name == 'Solution') { var linktype = 'supports'; toolbarDiv.insert('add Aggiungi un ARGOMENTAZIONE a favore'); var linktype = 'challenges'; toolbarDiv.insert('add Aggiungi un ARGOMENTAZIONE contro'); } else if (role.name == 'Challenge') { // hide the issue add button if issues are managed var model = HUB_DATAMODEL.challengeToIssue; var filternodetypes = model.getOtherEnd(); var linktypename = model.linktypes; var focalnodeend = model.direction; var hint = model.hint; toolbarDiv.insert('add Aggiungi un SFIDA'); } else if (role.name == 'Issue') { if (hasClaim && hasSolution) { var model = HUB_DATAMODEL.issueToSolution; var filternodetypes = model.getOtherEnd(); var linktypename = model.linktypes; var focalnodeend = model.direction; var hint = model.hint; toolbarDiv.insert('add Aggiungi un PROPOSTA'); var model = HUB_DATAMODEL.issueToClaim; var filternodetypes = model.getOtherEnd(); var linktypename = model.linktypes; var focalnodeend = model.direction; var hint = model.hint; toolbarDiv.insert('add Aggiungi un -'); } else if (hasSolution) { var model = HUB_DATAMODEL.issueToSolution; var filternodetypes = model.getOtherEnd(); var linktypename = model.linktypes; var focalnodeend = model.direction; var hint = model.hint; toolbarDiv.insert('add Aggiungi un PROPOSTA'); } else if (hasClaim) { var model = HUB_DATAMODEL.issueToClaim; var filternodetypes = model.getOtherEnd(); var linktypename = model.linktypes; var focalnodeend = model.direction; var hint = model.hint; toolbarDiv.insert('add Aggiungi un -'); } } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1) { var model = HUB_DATAMODEL.evidenceToResource; var filternodetypes = model.getOtherEnd(); var linktypename = model.linktypes; var focalnodeend = model.direction; let hint = model.hint; let alink = 'add Aggiungi un FONTE'; toolbarDiv.insert(alink); } } else { let alink = ' 50) { parentname = parentname.substr(0, 50)+"..."; } parentname = " "+parentname; var del = new Element('span',{'class':'active d-block','title':"Disconnetti da: "+parentname}); del.insert("Disconnetti"); del.connid = connection.connid; var fromName = node.name; if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { fromName = node.description; } var toName = connection.to[0].cnode.name; if (RESOURCE_TYPES_STR.indexOf(connection.to[0].cnode.role[0].role.name) != -1) { toName = connection.to[0].cnode.description; } Event.observe(del,'click',function (){deleteNodeConnection(this.connid, fromName, toName, node.handler)}); toolbarDiv.insert(del); } if (connection.description == "" && (COMMENT_TYPES.indexOf(role.name) == -1 && role.name != "Theme" && focalrole.name != "Theme")) { var extra = getNodeTitleAntecedence(connection.from[0].cnode.role[0].role.name, false); var addRelevance = new Element('a',{'class':'d-block', 'href':'#', 'title':"Aggiungi il motivo per cui questa connessione è rilevante "+extra}); addRelevance.insert("Aggiungi rilevanza"); addRelevance.connid = connection.connid; Event.observe(addRelevance,'click',function () { editConnectionDescription(this.connid, "") }); toolbarDiv.insert(addRelevance); } else if (connection.description != "" && (COMMENT_TYPES.indexOf(role.name) == -1 && role.name != "Theme" && focalrole.name != "Theme")) { var extra = getNodeTitleAntecedence(connection.from[0].cnode.role[0].role.name, false); var editRelevance = new Element('a',{'class':'d-block','href':'#', 'title':"Modifica il motivo per cui questa connessione è rilevante "+extra}); editRelevance.insert("Modifica rilevanza "); editRelevance.connid = connection.connid; Event.observe(editRelevance,'click',function () { editConnectionDescription(this.connid, connection.description) }); toolbarDiv.insert(editRelevance); } } // Add voting icons if (connection && connection.linktype[0].linktype.label != 'see also') { if ( (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && (connection.torole[0].role.name == "Claim" || connection.torole[0].role.name == "Solution")) || (role.name == 'Claim' && (connection.torole[0].role.name == "Issue" || connection.torole[0].role.name == "Challenge")) || (role.name == 'Solution' && (connection.torole[0].role.name == "Issue" || connection.torole[0].role.name == "Challenge")) ) { if (connection && USER != connection.users[0].user.userid && node.nodeid != connection.from[0].cnode.nodeid) { toolbarDiv.appendChild(createMenuSpacer()); } var voteDiv = new Element("span", {'class':'d-block'}); voteDiv.insert('Vota:'); Event.observe(voteDiv,'mouseover',function (event){ showBox('toolbardiv'+uniQ); }); toolbarDiv.insert(voteDiv); var toRoleName = getNodeTitleAntecedence(connection.torole[0].role.name, false); // vote for var voteforimg = document.createElement('img'); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-grey.png'); voteforimg.setAttribute('alt', 'Vota per'); voteforimg.setAttribute('id', connection.connid+'for'); voteforimg.nodeid = node.nodeid; voteforimg.connid = connection.connid; voteforimg.vote='Y'; voteforimg.style.verticalAlign="bottom"; voteforimg.style.marginRight="3px"; voteforimg.style.marginLeft="10px"; voteDiv.insert(voteforimg); if (!connection.positivevotes) { connection.positivevotes = 0; } if(USER != ""){ voteforimg.style.cursor = 'pointer'; if (role.name == 'Solution') { voteforimg.oldtitle = 'PROPOSTA forte per questo '+toRoleName; } else if (role.name == 'Claim') { voteforimg.oldtitle = '- robusta er questo '+toRoleName; } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && connection.torole[0].role.name == "Solution") { voteforimg.oldtitle = 'ARGOMENTAZIONE convincente per questo '+toRoleName; } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && connection.torole[0].role.name == "Claim") { voteforimg.oldtitle = 'ARGOMENTAZIONE robusto per questo '+toRoleName; } else { voteforimg.oldtitle = 'Supporta questo...'; } if (connection.uservote && connection.uservote == 'Y') { Event.observe(voteforimg,'click',function (){ deleteConnectionVote(this) } ); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-filled.png'); voteforimg.setAttribute('title', 'Cancella il setting...'); } else if (!connection.uservote || connection.uservote != 'Y') { Event.observe(voteforimg,'click',function (){ connectionVote(this) } ); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-empty.png'); voteforimg.setAttribute('title', voteforimg.oldtitle); } voteDiv.insert(''+connection.positivevotes+''); } else { voteforimg.setAttribute('title', 'Accedi per promuovere questo'); voteDiv.insert(''+connection.positivevotes+''); } // vote against var voteagainstimg = document.createElement('img'); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-grey.png'); voteagainstimg.setAttribute('alt', 'Vota contro'); voteagainstimg.setAttribute('id', connection.connid+'against'); voteagainstimg.nodeid = node.nodeid; voteagainstimg.connid = connection.connid; voteagainstimg.vote='N'; voteagainstimg.style.verticalAlign="bottom"; voteagainstimg.style.marginRight="3px"; voteDiv.insert(voteagainstimg); if (!connection.negativevotes) { connection.negativevotes = 0; } if(USER != ""){ voteagainstimg.style.cursor = 'pointer'; if (role.name == 'Solution') { voteagainstimg.oldtitle = 'PROPOSTA debole per questo '+toRoleName; } else if (role.name == 'Claim') { voteagainstimg.oldtitle = '- non robusta per questo '+toRoleName; } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && connection.torole[0].role.name == "Solution") { voteagainstimg.oldtitle = 'ARGOMENTAZIONE non convincente per questo '+toRoleName; } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && connection.torole[0].role.name == "Claim") { voteagainstimg.oldtitle = 'ARGOMENTAZIONE non robusta per questo '+toRoleName; } else { voteagainstimg.oldtitle = 'osteggia...'; } if (connection.uservote && connection.uservote == 'N') { Event.observe(voteagainstimg,'click',function (){ deleteConnectionVote(this) } ); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-filled.png'); voteagainstimg.setAttribute('title', 'Cancella il setting...'); } else if (!connection.uservote || connection.uservote != 'N') { Event.observe(voteagainstimg,'click',function (){ connectionVote(this) } ); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-empty.png'); voteagainstimg.setAttribute('title', voteagainstimg.oldtitle); } voteDiv.insert(''+connection.negativevotes+''); } else { voteagainstimg.setAttribute('title', 'Login to Demote this'); voteDiv.insert(''+connection.negativevotes+''); } } } if (toolbarDiv.innerHTML != "") { toolbarDiv.appendChild(createMenuSpacer()); } if (connection.description != "" && node.nodeid == connection.from[0].cnode.nodeid && (COMMENT_TYPES.indexOf(role.name) == -1 && role.name != "Theme" && focalrole.name != "Theme") ) { var extra = getNodeTitleAntecedence(connection.from[0].cnode.role[0].role.name, false); var addRelevance = new Element('a',{'style':'margin-bottom:5px;float:left;clear:both','href':'#', 'title':"Scopri perché questa è un'associazione pertinente a quanto sopra "+extra}); addRelevance.insert("Visualizza rilevanza"); addRelevance.connid = connection.connid; Event.observe(addRelevance,'click',function () { viewConnectionDescription(connection.description) }); toolbarDiv.insert(addRelevance); } var exploreButton = new Element("a", {'class':'d-block','title':"Visualizza le informazioni su questo elemento."} ); Event.observe(exploreButton,'click',function () { var width = getWindowWidth()-20; var height = getWindowHeight()-20; loadDialog('details', URL_ROOT+"explore.php?id="+node.nodeid, width, height); }); Event.observe(exploreButton,'mouseover',function (event){ showBox('toolbardiv'+uniQ); }); exploreButton.insert("Dettagli completi"); exploreButton.href= "#"; toolbarDiv.appendChild(exploreButton); if (nodeObj && node.nodeid != nodeObj.nodeid) { var exploreButton = new Element("a", {'class':'d-block','title':"Vai ed esplora gli alberi della conoscenza su questo elemento"} ); exploreButton.href= URL_ROOT+"knowledgetrees.php?id="+node.nodeid; exploreButton.insert("alberi della conoscenza"); toolbarDiv.appendChild(exploreButton); } var connector = new Element('a',{'class':'d-block','title':"Vai alla Home Page del connettore: "+user.name}); connector.insert("Chi l\'ha collegato?"); connector.href = URL_ROOT+"user.php?userid="+user.userid, toolbarDiv.appendChild(connector); toolbarDiv.insert(createSpamMenuOption(node, role)); } ihDiv.insert(itDiv); var iwDiv = new Element("div", {'class':'idea-wrapper'}); var imDiv = new Element("div", {'class':'idea-main'}); var idDiv = new Element("div", {'class':'idea-detail'}); var expandDiv = new Element("div", {'id':'treedesc'+uniQ,'class':'ideadata', 'style':'padding:left:0px;margin-left:0px;color:Gray;'} ); if (node.istop) { if (DEBATE_TREE_OPEN_ARRAY["treedesc"+uniQ] && DEBATE_TREE_OPEN_ARRAY["treedesc"+uniQ] == true) { expandDiv.style.display = 'block'; } else { expandDiv.style.display = 'none'; } } else { expandDiv.style.display = 'block'; } var hint = alttext+": "+node.name; if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { hint = node.description; } hint += " - Clicca per scorrere fino a questo" /** * This is for the rollover hint around the vertical line - background image 21px wide 1px line in middle * This was the only way to get it to work in all four main browsers!!!!! **/ var expandTable = document.createElement( 'table', {'style':'empty-cells:show;border-collapse:collapse;'} ); expandTable.height="100%"; //expandTable.border="1"; var expandrow = expandTable.insertRow(-1); expandrow.style.height="100%"; if (node.istop) { expandTable.style.marginLeft = "5px"; } else { expandTable.style.marginLeft = "20px"; } var lineCell = expandrow.insertCell(-1); lineCell.style.borderLeft = "1px solid white"; // needed for IE to draw the background image lineCell.width="5px;"; lineCell.style.marginLeft="3px"; lineCell.title=hint; lineCell.className="grayline"; Event.observe(lineCell,'click',function (){ var pos = getPosition(textCellDiv); window.scroll(0,pos.y-3); }); var childCell = expandrow.insertCell(-1); childCell.vAlign="top"; childCell.align="left"; childCell.style.padding="0px"; childCell.style.margin="0px"; expandDiv.insert(expandTable); if (node.istop) { expandDiv.style.marginLeft = "22px"; } else { expandDiv.style.marginLeft = "4px"; } /** EXPAND DIV **/ var innerexpandDiv = new Element("div", {'id':'desc'+uniQ,'class':'ideadata', 'style':'display:none;'} ); var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable"; innerexpandDiv.insert(nodeTable); var row = nodeTable.insertRow(-1); var nextCell = row.insertCell(-1); nextCell.vAlign="middle"; nextCell.align="left"; // USER ICON NAME AND CREATIONS DATES var userbar = new Element("div", {'class':'userbar'} ); if (includeUser == true) { // Add right side with user image and date below var iuDiv = new Element("div", {'class':'idea-user2', 'style':'clear:both;float:left;'}); var userimageThumb = new Element('img',{'alt':nodeuser.name, 'title': nodeuser.name, 'style':'padding-right:5px;', 'src': nodeuser.thumb}); if (type == "active") { var imagelink = new Element('a', { 'href':URL_ROOT+"user.php?userid="+nodeuser.userid, 'title':nodeuser.name}); if (breakout != "") { imagelink.target = "_blank"; } imagelink.insert(userimageThumb); iuDiv.update(imagelink); } else { iuDiv.insert(userimageThumb) } userbar.appendChild(iuDiv); } var iuDiv = new Element("div", {'style':'float:left;'}); var dStr = ""; var cDate = new Date(node.creationdate*1000); dStr += "aggiunto il: "+ cDate.format(DATE_FORMAT) + "
"; dStr += "aggiunto da: "+ nodeuser.name + ""; iuDiv.insert(dStr); userbar.insert(iuDiv); nextCell.appendChild(userbar); // META DATA - DESCRIPTION, TAGS, URLS, LOCATION ETC // add url if a resource node if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { innerexpandDiv.insert('Url:'); var link = new Element("a", {'href':node.name,'target':'_blank','title':'Vai al sito'} ); link.insert(node.name); innerexpandDiv.insert(link); if (node.urls && node.urls.length > 0) { var hasClips = false; var iUL = new Element("ul", {}); for (var i=0 ; i < node.urls.length; i++){ if (node.urls[i].url.clip && node.urls[i].url.clip != "") { var link = new Element("li"); link.insert(node.urls[i].url.clip); iUL.insert(link); hasClips = true; } if (node.urls[i].url.identifier && node.urls[i].url.identifier != "" && role.name == 'Publication') { expandDiv.insert('
DOI: '+node.urls[i].url.identifier+''); } } if (hasClips) { innerexpandDiv.insert('
Clips:
'); } innerexpandDiv.insert(iUL); } } //tags if(node.tags && node.tags.length > 0){ var grpStr = "
Tags: "; for (var i=0 ; i < node.tags.length; i++){ var tag = null; if (node.tags[i].name) { tag = node.tags[i]; } else { tag = node.tags[i].tag } if (type == "active") { grpStr += ''+tag.name+''; } else { grpStr += tag.name; } if (i < node.tags.length-1) { grpStr += ','; } } grpStr += '
'; innerexpandDiv.insert(grpStr); } if (connection && connection.description != "" && (COMMENT_TYPES.indexOf(role.name) == -1 && role.name != "Theme") && node.nodeid == connection.from[0].cnode.nodeid) { innerexpandDiv.insert('Rilevanza '+connection.description+''); innerexpandDiv.insert('
'); } var dStr = ""; if (RESOURCE_TYPES_STR.indexOf(role.name) == -1) { if(node.description || node.hasdesc){ dStr += '
Descrizione
'; if (node.description && node.description != "") { innerexpandDiv.description = true; dStr += node.description; } dStr += '
'; innerexpandDiv.insert(dStr); } } // CHILD LISTS if (node.children && DEBATE_TREE_SMALL) { var nodes = node.children if (nodes.length > 0) { childCell.insert('
'); var childrenDiv = new Element("div", {'id':'children'+uniQ, 'style':'clear:both;float:left;margin-left:0px;padding-left:0px;margin-bottom:5px;color:Gray;display:block;'} ); childCell.insert(childrenDiv); childCell.insert('
'); if (expandArrow) { expandArrow.style.visibility = 'visible'; } var parentrefreshhanlder = ""; //"refreshchildren(\'children"+uniQ+"\', \'"+nodeid+"\', \'"+title+"\', \'"+linktype+"\', \'"+role.name+"\')"; if (node.istop) { childCountSpan.update(nodes.length+1); } else { if (childCountSpan != null) { var countnow = parseInt(childCountSpan.innerHTML); var finalcount = countnow+nodes.length; childCountSpan.innerHTML = finalcount; } } displayConnectionNodes(childrenDiv, nodes, parseInt(0), true, uniQ, childCountSpan, parentrefreshhanlder); } } else if (DEBATE_TREE_SMALL == false) { if (role.name == 'Challenge') { childCell.insert('
'); var issueDiv = new Element("div", {'id':'issue'+uniQ, 'style':'clear:both;float:left;padding-left:10px;margin-bottom:5px;color:Gray;display:block;'} ); childCell.insert(issueDiv); childload(issueDiv, node.nodeid, "Issues", "is related to", "Issue", focalnodeid, uniQ, childCountSpan); childCell.insert('
'); } else if (role.name == 'Issue') { childCell.insert('
'); var solutionDiv = new Element("div", {'id':'solution'+uniQ, 'style':'clear:both;float:left;padding-left:10px;margin-bottom:5px;color:Gray;display:block;'} ); childCell.insert(solutionDiv); childload(solutionDiv ,node.nodeid,"Solutions", "addresses", "Solution", focalnodeid, uniQ, childCountSpan); childCell.insert('
'); var claimDiv = new Element("div", {'id':'claim'+uniQ, 'style':'clear:both;float:left;padding-left:10px;margin-bottom:5px;color:Gray;display:block;'} ); childCell.insert(claimDiv); childload(claimDiv, node.nodeid,"Claims", "responds to", "Claim", focalnodeid, uniQ, childCountSpan); childCell.insert('
'); } else if (role.name == 'Claim' || role.name == 'Solution') { childCell.insert('
'); var supportDiv = new Element("div", {'id':'support'+uniQ, 'style':'clear:both;float:left;padding-left:10px;margin-bottom:5px;color:Gray;display:block;'} ); childCell.insert(supportDiv); childload(supportDiv, node.nodeid,"Supporting Evidence", "supports", "Pro", focalnodeid, uniQ, childCountSpan); childCell.insert('
'); var opposingDiv = new Element("div", {'id':'oppose'+uniQ, 'style':'clear:both;float:left;padding-left:10px;margin-bottom:5px;color:Gray;display:block;'} ); childCell.insert(opposingDiv); childload(opposingDiv, node.nodeid, "Counter Evidence", "challenges", "Con", node.focalnodeid, uniQ, childCountSpan); childCell.insert('
'); } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1) { childCell.insert('
'); var resourceDiv = new Element("div", {'id':'resource'+uniQ, 'style':'clear:both;float:left;padding-left:10px;margin-bottom:5px;color:Gray;display:block;'} ); childCell.insert(resourceDiv); childload(resourceDiv, node.nodeid,"Resources", "is related to", RESOURCE_TYPES_STR, focalnodeid, uniQ, childCountSpan); childCell.insert('
'); } else { lineCell.className=""; // "1px solid white"; // hide the dot } } else { lineCell.className=""; // = "1px solid white"; // hide the dot } idDiv.insert(innerexpandDiv); idDiv.insert(expandDiv); imDiv.insert(idDiv); iwDiv.insert(imDiv); iDiv.insert(ihDiv); iDiv.insert(iwDiv); return iDiv; } /** * Render the given node from an associated connection of the knowledge tree in a print page. * @param node the node object do render * @param uniQ is a unique id element prepended to the nodeid to form an overall unique id within the currently visible site elements * @param role the role object for this node * @param includeUser whether to include the user image and link * @param type defaults to 'active', but can be 'inactive' so nothing is clickable * or a specialized type for some of the popups */ function renderReportConnectionNode(node, uniQ, role, includeUser){ var originaluniQ = uniQ; if(role === undefined){ role = node.role[0].role; } var nodeuser = null; // JSON structure different if coming from popup where json_encode used. if (node.users[0].userid) { nodeuser = node.users[0]; } else { nodeuser = node.users[0].user; } var connection = node.connection; var user = null; if (connection) { user = connection.users[0].user; } var focalnodeid = ""; if (node.focalnodeid) { focalnodeid = node.focalnodeid; } var focalrole = ""; var connrole = role; var otherend = ""; if (connection) { uniQ = connection.connid+uniQ; var fN = connection.from[0].cnode; var tN = connection.to[0].cnode; if (node.nodeid == fN.nodeid) { connrole = connection.fromrole[0].role; focalrole = tN.role[0].role; otherend = tN; } else { connrole = connection.torole[0].role; focalrole = fN.role[0].role; otherend = fN; } } else { uniQ = node.nodeid + uniQ; } var iDiv = new Element("div", {'style':'padding:0px;margin:0px;'}); var ihDiv = new Element("div", {'style':'padding:0px;margin:0px;'}); var itDiv = new Element("div", {'class':'idea-title','style':'padding:0px;'}); var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable"; itDiv.insert(nodeTable); var row = nodeTable.insertRow(-1); if (!node.istop) { var lineCell = row.insertCell(-1); lineCell.width="15px;" lineCell.vAlign="middle"; } var textCell = row.insertCell(-1); textCell.vAlign="middle"; textCell.align="left"; var textCellDiv = new Element("div", { 'id':'textDivCell'+uniQ, 'name':'textDivCell', 'class':'whiteborder', 'style':'float:left;padding:3px;'}); textCellDiv.nodeid = node.nodeid; textCellDiv.focalnodeid = node.focalnodeid; textCellDiv.nodetype = role.name; textCellDiv.parentuniQ = originaluniQ; if (connection) { textCellDiv.connection = connection; } var toolbarCell = row.insertCell(-1); toolbarCell.vAlign="middle"; toolbarCell.align="left"; toolbarCell.width="80"; textCell.insert(textCellDiv); var cDate = new Date(connection.creationdate*1000); var dStr = "Connesso da "+user.name+ " on "+cDate.format(DATE_FORMAT)+' - Clicca per visualizzare/nascondere ulteriori informazioni' // ADD THE NODE ICON var nodeArea = new Element("span", {'class':'itemtextblackinactive', 'name':'nodeArea', 'style':'float:left;padding-top:2px;'} ); nodeArea.nodeid = node.nodeid; nodeArea.focalnodeid = node.focalnodeid; var alttext = getNodeTitleAntecedence(role.name, false); // ADD THE NODE LABEL textCellDiv.appendChild(nodeArea); if (role.name != 'Comment') { var nodeextra = getNodeTitleAntecedence(role.name, true); if (node.nodeid == CURRENT_ADD_AREA_NODEID) { if (RESOURCE_TYPES_STR.indexOf(connrole.name) != -1) { nodeArea.insert("

"+nodeextra+""+node.description+"

"); } else { nodeArea.insert("

"+nodeextra+""+node.name+"

"); } } else { if (RESOURCE_TYPES_STR.indexOf(connrole.name) != -1) { nodeArea.insert(""+nodeextra+""+node.description+""); } else { nodeArea.insert(""+nodeextra+""+node.name+""); } } // get descriptions as they don't come over by default in connections if (node.hasdesc){ var reqUrl = SERVICE_ROOT + "&method=getnode&nodeid=" + encodeURIComponent(node.nodeid); new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } Element.insert($("desc"+uniQ+"div"), json.cnode[0].description); } }); } } if (node.istop) { var expandArrow = null; if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 || role.name == "Challenge" || role.name == "Issue" || role.name == "Solution" || role.name == "Claim") { var childCount = new Element('div',{'class':'toptreecount', 'title':'Il numero di voci attualmente aggiunte a questo albero della conoscenza'}); } } ihDiv.insert(itDiv); var iwDiv = new Element("div", {'class':'idea-wrapper'}); var imDiv = new Element("div", {'class':'idea-main'}); var idDiv = new Element("div", {'class':'idea-detail'}); var expandDiv = new Element("div", {'id':'treedesc'+uniQ, 'style':'padding:left:0px;margin-left:0px;color:black;'} ); expandDiv.style.display = 'block'; var hint = alttext+": "+node.name; if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { hint = node.description; } hint += " - Clicca per scorrere fino a questo" /** * This is for the rollover hint around the vertical line - background image 21px wide 1px line in middle * This was the only way to get it to work in all four main browsers!!!!! **/ var expandTable = document.createElement( 'table', {'style':'empty-cells:show;border-collapse:collapse;'} ); expandTable.height="100%"; var expandrow = expandTable.insertRow(-1); expandrow.style.height="100%"; if (node.istop) { expandTable.style.marginLeft = "5px"; } else { expandTable.style.marginLeft = "20px"; } var lineCell = expandrow.insertCell(-1); lineCell.style.borderLeft = "1px solid white"; // needed for IE to draw the background image lineCell.width="5px;"; lineCell.style.marginLeft="3px"; var childCell = expandrow.insertCell(-1); childCell.vAlign="top"; childCell.align="left"; childCell.style.padding="0px"; childCell.style.margin="0px"; expandDiv.insert(expandTable); if (node.istop) { expandDiv.style.marginLeft = "22px"; } else { expandDiv.style.marginLeft = "4px"; } /** EXPAND DIV **/ var innerexpandDiv = new Element("div", {'id':'desc'+uniQ,'class':'ideadata', 'style':'padding-left:20px;color:black;display:block;'} ); var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable"; innerexpandDiv.insert(nodeTable); var row = nodeTable.insertRow(-1); var nextCell = row.insertCell(-1); nextCell.vAlign="middle"; nextCell.align="left"; // USER ICON NAME AND CREATIONS DATES var userbar = new Element("div", {'class':'userbar'} ); if (includeUser == true) { // Add right side with user image and date below var iuDiv = new Element("div", {'class':'idea-user2', 'style':'clear:both;float:left;'}); var userimageThumb = new Element('img',{'alt':nodeuser.name, 'title': nodeuser.name, 'style':'padding-right:5px;', 'src': nodeuser.thumb}); iuDiv.insert(userimageThumb) userbar.appendChild(iuDiv); } var iuDiv = new Element("div", {'style':'float:left;'}); var dStr = ""; var cDate = new Date(node.creationdate*1000); dStr += "aggiunto il: "+ cDate.format(DATE_FORMAT) + "
"; dStr += "aggiunto da: "+ nodeuser.name + ""; iuDiv.insert(dStr); userbar.insert(iuDiv); nextCell.appendChild(userbar); // META DATA - DESCRIPTION, TAGS, URLS, LOCATION ETC // add url if a resource node if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { innerexpandDiv.insert('Url:'); var link = new Element("a", {'href':node.name,'target':'_blank','title':'Vai al sito'} ); link.insert(node.name); innerexpandDiv.insert(link); if (node.urls && node.urls.length > 0) { var hasClips = false; var iUL = new Element("ul", {}); for (var i=0 ; i < node.urls.length; i++){ if (node.urls[i].url.clip && node.urls[i].url.clip != "") { var link = new Element("li"); link.insert(node.urls[i].url.clip); iUL.insert(link); hasClips = true; } if (node.urls[i].url.identifier && node.urls[i].url.identifier != "" && role.name == 'Publication') { innerexpandDiv.insert('
DOI: '+node.urls[i].url.identifier+''); } } if (hasClips) { innerexpandDiv.insert('
Clips:
'); } innerexpandDiv.insert(iUL); } } //tags if(node.tags && node.tags.length > 0){ var grpStr = "
Tags: "; for (var i=0 ; i < node.tags.length; i++){ var tag = null; if (node.tags[i].name) { tag = node.tags[i]; } else { tag = node.tags[i].tag } grpStr += tag.name; if (i < node.tags.length-1) { grpStr += ','; } } grpStr += '
'; innerexpandDiv.insert(grpStr); } if (connection && connection.description != "" && (COMMENT_TYPES.indexOf(role.name) == -1 && role.name != "Theme") && node.nodeid == connection.from[0].cnode.nodeid) { innerexpandDiv.insert('Rilevanza '+connection.description+''); innerexpandDiv.insert('
'); } var dStr = ""; if (RESOURCE_TYPES_STR.indexOf(role.name) == -1) { if(node.description || node.hasdesc){ dStr += '
Descrizione '; if (node.description && node.description != "") { innerexpandDiv.description = true; dStr += node.description; } dStr += '
'; innerexpandDiv.insert(dStr); } } // CHILD LISTS if (node.children) { var nodes = node.children if (nodes.length > 0) { childCell.insert('
'); var childrenDiv = new Element("div", {'id':'children'+uniQ, 'style':'clear:both;float:left;margin-left:0px;padding-left:0px;margin-bottom:5px;color:Gray;display:block;'} ); childCell.insert(childrenDiv); childCell.insert('
'); displayReportConnectionNodes(childrenDiv, nodes, parseInt(0), true, uniQ); } } idDiv.insert(innerexpandDiv); idDiv.insert(expandDiv); imDiv.insert(idDiv); iwDiv.insert(imDiv); iDiv.insert(ihDiv); iDiv.insert(iwDiv); return iDiv; } /** * Render the given node from an associated connection in the debate tree. * @param node the node object do render * @param uniQ is a unique id element prepended to the nodeid to form an overall unique id within the currently visible site elements * @param role the role object for this node * @param includeUser whether to include the user image and link * @param type defaults to 'active', but can be 'inactive' so nothing is clickable * or a specialized type for some of the popups */ function renderChatNode(node, uniQ, role, includeUser, type, childCountSpan){ if (type === undefined) { type = "active"; } if (childCountSpan === undefined) { childCountSpan = null; } var originaluniQ = uniQ; if(role === undefined){ role = node.role[0].role; } var user = null; // JSON structure different if coming from popup where json_encode used. if (node.users[0].userid) { user = node.users[0]; } else { user = node.users[0].user; } var connection = node.connection; if (connection) { user = connection.users[0].user; } //needs to check if embedded as a snippet var breakout = ""; if(top.location != self.location){ breakout = " target='_blank'"; } var focalnodeid = ""; if (node.focalnodeid) { focalnodeid = node.focalnodeid; } var focalrole = ""; var connrole = role; var otherend = ""; if (connection) { uniQ = connection.connid+uniQ; var fN = connection.from[0].cnode; var tN = connection.to[0].cnode; if (node.nodeid == fN.nodeid) { connrole = connection.fromrole[0].role; focalrole = tN.role[0].role; otherend = tN; } else { connrole = connection.torole[0].role; focalrole = fN.role[0].role; otherend = fN; } } else { uniQ = node.nodeid + uniQ; } var iDiv = new Element("div", {'style':'padding:0px;margin:0px;'}); var ihDiv = new Element("div", {'style':'padding:0px;margin:0px;'}); var itDiv = new Element("div", {'class':'idea-title','style':'padding:0px;'}); var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable"; itDiv.insert(nodeTable); var row = nodeTable.insertRow(-1); // ADD THE ARROW IF REQUIRED if (node.istop) { var expandArrow = null; var arrowCell = row.insertCell(-1); arrowCell.width = "25px" if (CHAT_TREE_OPEN_ARRAY["chat"+uniQ] && CHAT_TREE_OPEN_ARRAY["chat"+uniQ] == true) { expandArrow = new Element('img',{'id':'explorechatarrow'+uniQ, 'name':'explorechatarrow', 'alt':'>', 'title':'Mostra/Nascondi le risposte','src': 'https://netlab.evidence-hub.net/images/arrow-down-blue.png'}); expandArrow.uniqueid = uniQ; } else { expandArrow = new Element('img',{'id':'explorechatarrow'+uniQ, 'name':'explorechatarrow', 'alt':'>', 'title':'Mostra/Nascondi le risposte','src': 'https://netlab.evidence-hub.net/images/arrow-right-blue.png'}); expandArrow.uniqueid = uniQ; } Event.observe(expandArrow,'click',function (){ toggleChat("chat"+uniQ,uniQ, false);}); arrowCell.insert(expandArrow); } else { var lineCell = row.insertCell(-1); lineCell.style.borderLeft = "1px solid white"; // needed for IE to draw the background image lineCell.width="15px;" lineCell.vAlign="middle"; var lineDiv = new Element('div',{'class':'graylinewide', 'style':'float:left;width:100%;'}); lineCell.insert(lineDiv); } var textCell = row.insertCell(-1); textCell.vAlign="middle"; textCell.align="left"; var textCellDiv = new Element("div", { 'id':'textChatDivCell'+uniQ, 'name':'textChatDivCell', 'class':'whiteborder textChatDivCell'}); textCellDiv.nodeid = node.nodeid; textCellDiv.focalnodeid = node.focalnodeid; textCellDiv.nodetype = role.name; textCellDiv.parentuniQ = originaluniQ; if (connection) { textCellDiv.connection = connection; } var toolbarCell = row.insertCell(-1); toolbarCell.vAlign="middle"; toolbarCell.align="left"; toolbarCell.width="100"; textCell.insert(textCellDiv); var cDate = new Date(connection.creationdate*1000); var dStr = "aggiunte su "+cDate.format(TIME_FORMAT); // ADD THE NODE ICON - User IMAGE var nodeArea = new Element("span", {'name':'nodeArea' ,'title':dStr} ); nodeArea.nodeid = node.nodeid; nodeArea.focalnodeid = node.focalnodeid; var alttext = getNodeTitleAntecedence(role.name, false); var userimageThumb = new Element('img',{'alt':user.name, 'title': user.name, 'class':'userChat', 'src': user.thumb}); if (type == "active") { var imagelink = new Element('a', { 'href':URL_ROOT+"user.php?userid="+user.userid, 'title':user.name}); if (breakout != "") { imagelink.target = "_blank"; } imagelink.insert(userimageThumb); nodeArea.update(imagelink); } else { nodeArea.insert(userimageThumb) } nodeArea.insert(node.name); textCellDiv.appendChild(nodeArea); // if this node is the latest node added to the tree - highlight it // parentnode in the case of the chat topic connection, is the newest node added, rather than the parent connection. if (node.chattopic.parentnode && node.chattopic.parentnode[0].cnode.nodeid == node.nodeid) { textCellDiv.className = 'plainborder recentReply'; } if (CHATNODEID != "" && CHATNODEID == node.nodeid) { textCellDiv.className = textCellDiv.className + ' selectedback'; } // ADD THE MENU ICON IF REQUIRED var menuButton = null; var toolbarDiv = new Element("div", {'id':'toolbardiv'+uniQ, 'class':'toolbarDiv', 'style':'left:-1px;top:-1px;clear:both;position:absolute;display:none;z-index:60;padding:5px;width:130px;border:1px solid gray;background:white'} ); Event.observe(toolbarDiv,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(toolbarDiv,'mouseover',function (event){ showBox('toolbardiv'+uniQ); }); if (node.istop) { var expandArrow = null; var childCount = new Element('div',{'class':'toptreecount', 'title':'Il numero di risposte attualmente aggiunte a questo argomento della CHAT'}); childCount.insert("("); childCountSpan = new Element('span',{'name':'topchattreecount'}); childCountSpan.id = 'topchattreecount'+uniQ; childCountSpan.insert(0); childCountSpan.uniqueid = uniQ; childCount.insert(childCountSpan); childCount.insert(")"); toolbarCell.insert(childCount); } var delButton = null; // ADD ACTION MENU if (type == 'active') { menuButton = new Element('img',{'alt':'>', 'class':'menuicon', 'src': 'https://netlab.evidence-hub.net/sites/multi/netlab.evidence-hub.net/theme/netlab/images/menuicon.png'}); toolbarCell.appendChild(menuButton); Event.observe(menuButton,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(menuButton,'mouseover',function (event) { var position = getPosition(this); var panel = $('toolbardiv'+uniQ); var panelWidth = 150; var viewportHeight = getWindowHeight(); var viewportWidth = getWindowWidth(); var x = position.x; var y = position.y; if ( (x+panelWidth+30) > viewportWidth) { x = x-(panelWidth+30); } else { x = x+10; } x = x+30+getPageOffsetX(); panel.style.left = x+"px"; panel.style.top = y+"px"; showBox('toolbardiv'+uniQ); }); var toolbarDiv = new Element("div", {'id':'toolbardiv'+uniQ, 'class':'toolbarDiv', 'style':'left:-1px;top:-1px;clear:both;position:absolute;display:none;z-index:60;padding:5px;width:150px;border:1px solid gray;background:white'} ); Event.observe(toolbarDiv,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(toolbarDiv,'mouseover',function (event){ showBox('toolbardiv'+uniQ); }); toolbarCell.appendChild(toolbarDiv); if (USER != "") { var addButton = new Element("a", {'class':'d-block', 'title':'Post una risposta sulla CHAT di questo elemento'} ); Event.observe(addButton,'click',function () { hideBox('toolbardiv'+uniQ); $('prompttext').innerHTML=""; var viewportHeight = getWindowHeight(); var viewportWidth = getWindowWidth(); var x = (viewportWidth-400)/2; var y = (viewportHeight-200)/2; var innerPromptDiv = new Element('div', {'class':'prompttext-inner'}); var textarea1 = new Element('textarea', {'id':'messagetextarea','rows':'5','class':'form-control'}); var buttonOK = new Element('input', { 'class':'btn btn-primary', 'type':'button', 'value':'Aggiungi'}); Event.observe(buttonOK,'click', function() { var comment = textarea1.value; if (comment != "") { var type = "Comment"; var parentconnid = node.chattopic.connid; var reqUrl = SERVICE_ROOT + "&method=connectnodetocomment&nodetypename="+type+"&nodeid="+node.nodeid+"&parentconnid="+parentconnid+"&parentid="+nodeObj.nodeid+"&comment="+encodeURIComponent(comment); new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); } else { var from = json.connection[0].from[0].cnode; CHATNODEID = from.nodeid; refreshExploreChats(); } }, }); } $('prompttext').style.display = "none"; $('prompttext').update(""); var backDrop = document.getElementById("backDrop"); backDrop.remove(); }); var buttonCancel = new Element('input', { 'class':'btn btn-secondary', 'type':'button', 'value':'Cchiudi'}); Event.observe(buttonCancel,'click', function() { $('prompttext').style.display = "none"; $('prompttext').update(""); var backDrop = document.getElementById("backDrop"); backDrop.remove(); }); var footerPromptDiv = new Element('div', {'class':'prompttext-footer'}); footerPromptDiv.insert(buttonOK); footerPromptDiv.insert(buttonCancel); innerPromptDiv.insert(textarea1); innerPromptDiv.insert(footerPromptDiv); $('prompttext').insert(innerPromptDiv); $('prompttext').style.display = "block"; document.body.classList.add("modal-open"); var backDrop = new Element('div', {'class':'modal-backdrop fade show', 'id':'backDrop'}); document.body.insert(backDrop); textarea1.focus(); }); Event.observe(addButton,'mouseover',function (event){ showBox('toolbardiv'+uniQ); }); addButton.insert("Rispondi"); addButton.href= "#"; toolbarDiv.appendChild(addButton); if (connection && USER == connection.users[0].user.userid && node.nodeid == connection.from[0].cnode.nodeid) { var parentname = otherend.name; if (parentname.length > 50) { parentname = parentname.substr(0, 50)+"..."; } parentname = " "+parentname; delButton = new Element('span',{'id':'chatremove'+uniQ, 'class':'active', 'style':'display:none;','title':"Cancella questo elemento "}); delButton.insert("Cancella"); delButton.connid = connection.connid; var parentconnid = node.chattopic.connid Event.observe(delButton,'click',function (){deleteChatNode(node.nodeid, node.name, node.handler, parentconnid)}); toolbarDiv.insert(delButton); } toolbarDiv.insert(createSpamMenuOption(node, role)); if (USER != "" && ( (BUILD_FROM_PERMISSIONS == "all") || (BUILD_FROM_PERMISSIONS == "user" && USER == user.userid) || (BUILD_FROM_PERMISSIONS == "admin" && IS_USER_ADMIN == "Y") )){ toolbarDiv.appendChild(createMenuSpacer()); var addButton = new Element("span", {'class':'active d-block', 'title':'Converti questa CHAT in una SFIDA'} ); addButton.insert("TrasformaSFIDA"); Event.observe(addButton,'click',function (){loadDialog('addissue',URL_ROOT+"ui/popups/issueadd.php?handler="+node.handler+"&chatnodeid="+node.nodeid+"&chatparentid=+"+nodeObj.nodeid+"&issue="+encodeURIComponent(node.name), 750,500)}); toolbarDiv.appendChild(addButton); if (hasClaim) { var addButton = new Element("span", {'class':'active d-block', 'title':'Converti questa CHAT in una -'} ); addButton.insert("Trasforma-"); Event.observe(addButton,'click',function (){loadDialog('addclaim',URL_ROOT+"ui/popups/claimadd.php?handler="+node.handler+"&chatnodeid="+node.nodeid+"&chatparentid=+"+nodeObj.nodeid+"&claim="+encodeURIComponent(node.name), 750,500)}); toolbarDiv.appendChild(addButton); } if (hasSolution) { var addButton = new Element("span", {'class':'active d-block', 'title':'Converti questa CHAT in una PROPOSTA'} ); addButton.insert("TrasformaPROPOSTA"); Event.observe(addButton,'click',function (){loadDialog('addsolution',URL_ROOT+"ui/popups/solutionadd.php?handler="+node.handler+"&chatnodeid="+node.nodeid+"&chatparentid=+"+nodeObj.nodeid+"&solution="+encodeURIComponent(node.name), 750,500)}); toolbarDiv.appendChild(addButton); } var addButton = new Element("span", {'class':'active d-block', 'title':'Converti questa CHAT in una ARGOMENTAZIONE'} ); addButton.insert("TrasformaARGOMENTAZIONE"); Event.observe(addButton,'click',function (){loadDialog('addevidence',URL_ROOT+"ui/popups/evidenceadd.php?handler="+node.handler+"&chatnodeid="+node.nodeid+"&chatparentid=+"+nodeObj.nodeid+"&summary="+encodeURIComponent(node.name), 750,500)}); toolbarDiv.appendChild(addButton); } } else { var button = new Element("span"); button.style.color="dimgray"; button.style.cursor="pointer"; button.title="Accedi per contribuire all'Evidence Hub"; button.insert("Rispondi"); Event.observe(button,"click", function(){ $('loginsubmit').click(); return true; }); toolbarDiv.appendChild(button); } } ihDiv.insert(itDiv); var iwDiv = new Element("div", {'class':'idea-wrapper'}); var imDiv = new Element("div", {'class':'idea-main'}); var idDiv = new Element("div", {'class':'idea-detail'}); var expandDiv = new Element("div", {'id':'chat'+uniQ,'class':'ideadata', 'style':'padding:left:0px;margin-left:0px;color:Gray;'} ); if (node.istop) { if (CHAT_TREE_OPEN_ARRAY["chat"+uniQ] && CHAT_TREE_OPEN_ARRAY["chat"+uniQ] == true) { expandDiv.style.display = 'block'; } else { expandDiv.style.display = 'none'; } } else { expandDiv.style.display = 'block'; } var hint = node.name+" - Clicca per scorrere fino a questo" /** * This is for the rollover hint around the vertical line - background image 21px wide 1px line in middle * This was the only way to get it to work in all four main browsers!!!!! **/ var expandTable = document.createElement( 'table', {'style':'empty-cells:show;border-collapse:collapse;'} ); expandTable.height="100%"; var expandrow = expandTable.insertRow(-1); expandrow.style.height="100%"; if (node.istop) { expandTable.style.marginLeft = "9px"; } else { expandTable.style.marginLeft = "26px"; } var lineCell = expandrow.insertCell(-1); lineCell.style.borderLeft = "1px solid white"; // needed for IE to draw the background image lineCell.width="5px;"; lineCell.style.marginLeft="3px"; lineCell.title=hint; lineCell.className="grayline"; Event.observe(lineCell,'click',function (){ var pos = getPosition(textCellDiv); window.scroll(0,pos.y-3); }); var childCell = expandrow.insertCell(-1); childCell.vAlign="top"; childCell.align="left"; childCell.style.padding="0px"; childCell.style.margin="0px"; expandDiv.insert(expandTable); if (node.istop) { expandDiv.style.marginLeft = "22px"; } else { expandDiv.style.marginLeft = "4px"; } // CHECK FOR / LOAD CHILD LISTS if (node.children) { var nodes = node.children; nodes.sort(creationdatenodesortasc); if (nodes.length > 0){ // process the child list adding properties. for (var i=0; i < nodes.length; i++) { var nextchild = nodes[i]; nextchild.cnode['parentid'] = node.nodeid; nextchild.cnode['chattopic'] = node.chattopic; } childCell.insert('
'); var childrenDiv = new Element("div", {'id':'children'+uniQ, 'style':'clear:both;float:left;margin-left:0px;padding-left:0px;margin-bottom:5px;color:Gray;display:block;'} ); childCell.insert(childrenDiv); childCell.insert('
'); var parentrefreshhanlder = ""; if (node.istop) { childCountSpan.update(nodes.length); if ($('explorechatarrow'+uniQ)) { $('explorechatarrow'+uniQ).style.visibility = 'visible'; } } else { if (childCountSpan != null) { var countnow = parseInt(childCountSpan.innerHTML); var finalcount = countnow+nodes.length; childCountSpan.innerHTML = finalcount; } } displayChatNodes(childrenDiv, nodes, parseInt(0), true, uniQ, childCountSpan); } else { if (delButton) { delButton.style.display = "block"; } } } else { if (delButton) { delButton.style.display = "block"; } } idDiv.insert(expandDiv); imDiv.insert(idDiv); iwDiv.insert(imDiv); iDiv.insert(ihDiv); iDiv.insert(iwDiv); return iDiv; } /** * Render the given node from an associated connection. * @param node the node object do render * @param uniQ is a unique id element prepended to the nodeid to form an overall unique id within the currently visible site elements * @param role the role object for this node * @param includeUser whether to include the user image and link * @param type defaults to 'active', but can be 'inactive' so nothing is clickable * or a specialized type for some of the popups */ function renderWidgetListNode(node, uniQ, role, includeUser, type){ if (type === undefined) { type = "active"; } if(role === undefined){ role = node.role[0].role; } var nodeuser = null; // JSON structure different if coming from popup where json_encode used. if (node.users[0].userid) { nodeuser = node.users[0]; } else { nodeuser = node.users[0].user; } var user = null; var connection = node.connection; if (connection) { user = connection.users[0].user; } var breakout = ""; //needs to check if embedded as a snippet if(top.location != self.location){ breakout = " target='_blank'"; } var focalrole = ""; if (connection) { uniQ = connection.connid+uniQ; var fN = connection.from[0].cnode; var tN = connection.to[0].cnode; if (node.nodeid == fN.nodeid) { focalrole = tN.role[0].role; } else { focalrole = fN.role[0].role; } } else { uniQ = node.nodeid + uniQ; } var iDiv = new Element("div", {'style':'padding:0px;margin:0px;'}); var ihDiv = new Element("div", {'style':'padding:0px;margin:0px;'}); var itDiv = new Element("div", {'class':'idea-title'}); ihDiv.insert(itDiv); var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable"; itDiv.insert(nodeTable); var row = nodeTable.insertRow(-1); var textCell = row.insertCell(-1); textCell.vAlign="middle"; textCell.align="left"; var alttext = getNodeTitleAntecedence(role.name, false); if (node.imagethumbnail != null && node.imagethumbnail != "") { var originalurl = ""; if(node.urls && node.urls.length > 0){ for (var i=0 ; i < node.urls.length; i++){ var urlid = node.urls[i].url.urlid; if (urlid == node.imageurlid) { originalurl = node.urls[i].url.url; break; } } } if (originalurl == "") { originalurl = node.imagethumbnail; } var iconlink = new Element('a', { 'href':originalurl, 'title':"Visualizza l'immagine originale", 'target': '_blank' }); var nodeicon = new Element('img',{'alt':"Visualizza l'immagine originale", 'style':'width:20px;height:20px;padding-right:5px;', 'src': URL_ROOT + node.imagethumbnail}); iconlink.insert(nodeicon); textCell.insert(iconlink); textCell.insert(alttext+": "); } else if (role.image != null && role.image != "") { var nodeicon = new Element('img',{'alt':alttext, 'title':alttext, 'style':'width:20px;height:20px;margin-top:3px;padding-right:5px;','src': URL_ROOT + role.image}); textCell.insert(nodeicon); } else { textCell.insert(alttext+": "); } if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { textCell.insert(""+node.description+""); } else { textCell.insert(""+node.name+""); } if (connection) { var cDate = new Date(connection.creationdate*1000); var dStr = "Connesso da "+user.name+ " on "+cDate.format(DATE_FORMAT)+' - Clicca per visualizzare/nascondere ulteriori informazioni'; textCell.title = dStr; } var toolbarCell = row.insertCell(-1); toolbarCell.vAlign="middle"; toolbarCell.align="left"; // ADD ACTION MENU / ITEMS if (type == 'active') { if (COMMENT_TYPES.indexOf(role.name) == -1 ) { var menuButton = new Element('img',{'alt':'>', 'class':'menuicon','src': 'https://netlab.evidence-hub.net/sites/multi/netlab.evidence-hub.net/theme/netlab/images/menuicon.png'}); toolbarCell.appendChild(menuButton); Event.observe(menuButton,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(menuButton,'mouseover',function (event) { var position = getPosition(this); var panel = $('toolbardiv'+uniQ); var panelWidth = 130; var viewportHeight = getWindowHeight(); var viewportWidth = getWindowWidth(); var x = position.x; var y = position.y; if ( (x+panelWidth+30) > viewportWidth) { x = x-(panelWidth+30); } else { x = x+10; } x = x+30+getPageOffsetX(); panel.style.left = x+"px"; panel.style.top = y+"px"; showBox('toolbardiv'+uniQ); }); var toolbarDiv = new Element("div", {'id':'toolbardiv'+uniQ, 'class':'toolbarDiv', 'style':'left:-1px;top:-1px;clear:both;position:absolute;display:none;z-index:60;padding:5px;width:130px;border:1px solid gray;background:white'} ); Event.observe(toolbarDiv,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(toolbarDiv,'mouseover',function (event){ showBox('toolbardiv'+uniQ); }); toolbarCell.appendChild(toolbarDiv); if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { var link = new Element("a", {'href':node.name,'title':'Apri la pagina associata in una tab', 'target':'_blank', 'style':'margin-bottom:5px;clear:both;float:left;'} ); link.insert("Vai alla pagina web"); toolbarDiv.insert(link); } var exploreButton = new Element("a", {'class':'d-block','title':"Visualizza le informazioni su questo elemento."} ); exploreButton.insert("Dettagli completi"); exploreButton.href= "explore.php?id="+node.nodeid; toolbarDiv.appendChild(exploreButton); if (role.name != 'Theme' && role.name != 'Organization' && role.name != 'Project') { var exploreButton = new Element("a", {'class':'d-block','title':"Vai ed esplora gli alberi della conoscenza su questo elemento"} ); exploreButton.insert("alberi della conoscenza"); exploreButton.href= "knowledgetrees.php?id="+node.nodeid; toolbarDiv.appendChild(exploreButton); } var exploreButton = new Element("a", {'class':'d-block','title':"Vedi tutte le CHAT su questo elemento"} ); exploreButton.insert("CHAT"); exploreButton.href= "chats.php?id="+node.nodeid; toolbarDiv.appendChild(exploreButton); var exploreButtonNet = new Element("a", {'class':'d-block','title':"Vedi il grafico di rete su questo elemento (utilizza un'applet Java)"} ); exploreButtonNet.insert("Grafico di rete"); exploreButtonNet.href= "networkgraph.php?id="+node.nodeid; toolbarDiv.appendChild(exploreButtonNet); toolbarDiv.appendChild(createMenuSpacer()); if (USER == nodeuser.userid) { createEditMenuOption(toolbarDiv, node, role, "", nodeuser); } if (connection && USER == connection.users[0].user.userid) { var del = new Element("span", {'class':'active d-block', 'title':"Disconnettilo dall'elemento focale corrente"} ); del.insert("Rimuovi"); del.connid = connection.connid; var parentname = ""; if (node.nodeid == connection.from[0].cnode.nodeid) { parentname = connection.to[0].cnode.name; if (RESOURCE_TYPES_STR.indexOf(connection.to[0].cnode.role[0].role.name) != -1) { parentname = connection.to[0].cnode.description; } } else { parentname = connection.from[0].cnode.name; if (RESOURCE_TYPES_STR.indexOf(connection.from[0].cnode.role[0].role.name) != -1) { parentname = connection.from[0].cnode.description; } } var fromName = node.name; if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { fromName = node.description; } var toName = parentname; Event.observe(del,'click',function (){ deleteNodeConnection(this.connid, fromName, toName, node.handler)}); toolbarDiv.insert(del); if (connection.description == "" && (COMMENT_TYPES.indexOf(role.name) == -1 && role.name != "Theme" && focalrole.name != "Theme") ) { var addRelevance = new Element("span", {'class':'active d-block', 'title':"Aggiungi perché questa è un'associazione rilevante al nodo focale"} ); addRelevance.insert("Aggiungi rilevanza"); addRelevance.connid = connection.connid; var handler = new function() { location.reload(); } Event.observe(addRelevance,'click',function () { editConnectionDescription(this.connid, "", handler) }); toolbarDiv.appendChild(addRelevance); } else if (connection.description != "" && (COMMENT_TYPES.indexOf(role.name) == -1 && role.name != "Theme" && focalrole.name != "Theme") ) { var editRelevance = new Element("span", {'class':'active d-block', 'title':"Modifica il testo che hai inserito sul motivo per cui questa è un'associazione rilevante al nodo focale"} ); editRelevance.insert("Modifica Rilevanza"); editRelevance.connid = connection.connid; var handler = new function() { location.reload(); } Event.observe(editRelevance,'click',function (){ editConnectionDescription(this.connid, connection.description, handler) }); toolbarDiv.appendChild(editRelevance); } } var connector = new Element('a',{'class':'d-block','title':"Vai alla Home Page del connettore: "+user.name}); connector.insert("Chi l\'ha collegato?"); connector.href = URL_ROOT+"user.php?userid="+user.userid, toolbarDiv.appendChild(connector); toolbarDiv.insert(createSpamMenuOption(node, role)); // Add voting icons if (connection && connection.linktype[0].linktype.label != 'see also') { if ( (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && (connection.torole[0].role.name == "Claim" || connection.torole[0].role.name == "Solution")) || (role.name == 'Claim' && (connection.torole[0].role.name == "Issue" || connection.torole[0].role.name == "Challenge")) || (role.name == 'Solution' && (connection.torole[0].role.name == "Issue" || connection.torole[0].role.name == "Challenge")) ) { var voteDiv = new Element("div", {'class':'voteDiv d-flex mt-1'}); voteDiv.insert('Vota:'); toolbarDiv.insert(voteDiv); var toRoleName = getNodeTitleAntecedence(connection.torole[0].role.name, false); // vote for var voteforimg = document.createElement('img'); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-grey.png'); voteforimg.setAttribute('alt', 'Vota per'); voteforimg.setAttribute('id', connection.connid+'for'); voteforimg.nodeid = node.nodeid; voteforimg.connid = connection.connid; voteforimg.vote='Y'; voteforimg.style.verticalAlign="bottom"; voteforimg.style.marginRight="3px"; voteDiv.insert(voteforimg); if (!connection.positivevotes) { connection.positivevotes = 0; } if(USER != ""){ voteforimg.style.cursor = 'pointer'; if (role.name == 'Solution') { voteforimg.oldtitle = 'PROPOSTA forte per questo '+toRoleName; } else if (role.name == 'Claim') { voteforimg.oldtitle = '- robusta er questo '+toRoleName; } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && connection.torole[0].role.name == "Solution") { voteforimg.oldtitle = 'ARGOMENTAZIONE convincente per questo '+toRoleName; } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && connection.torole[0].role.name == "Claim") { voteforimg.oldtitle = 'ARGOMENTAZIONE robusto per questo '+toRoleName; } else { voteforimg.oldtitle = 'Supporta questo...'; } if (connection.uservote && connection.uservote == 'Y') { Event.observe(voteforimg,'click',function (){ deleteConnectionVote(this) } ); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-filled.png'); voteforimg.setAttribute('title', 'Cancella il setting...'); } else if (!connection.uservote || connection.uservote != 'Y') { Event.observe(voteforimg,'click',function (){ connectionVote(this) } ); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-empty.png'); voteforimg.setAttribute('title', voteforimg.oldtitle); } voteDiv.insert(''+connection.positivevotes+''); } else { voteforimg.setAttribute('title', 'Accedi per promuovere questo'); voteDiv.insert(''+connection.positivevotes+''); } // vote against var voteagainstimg = document.createElement('img'); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-grey.png'); voteagainstimg.setAttribute('alt', 'Vota contro'); voteagainstimg.setAttribute('id', connection.connid+'against'); voteagainstimg.nodeid = node.nodeid; voteagainstimg.connid = connection.connid; voteagainstimg.vote='N'; voteagainstimg.style.verticalAlign="bottom"; voteagainstimg.style.marginRight="3px"; voteDiv.insert(voteagainstimg); if (!connection.negativevotes) { connection.negativevotes = 0; } if(USER != ""){ voteagainstimg.style.cursor = 'pointer'; if (role.name == 'Solution') { voteagainstimg.oldtitle = 'PROPOSTA debole per questo '+toRoleName; } else if (role.name == 'Claim') { voteagainstimg.oldtitle = '- non robusta per questo '+toRoleName; } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && connection.torole[0].role.name == "Solution") { voteagainstimg.oldtitle = 'ARGOMENTAZIONE non convincente per questo '+toRoleName; } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && connection.torole[0].role.name == "Claim") { voteagainstimg.oldtitle = '$LNG->NODE_VOTE_AGAINST_EVIDENCE_CLAIM_HINT '+toRoleName; } else { voteagainstimg.oldtitle = 'osteggia...'; } if (connection.uservote && connection.uservote == 'N') { Event.observe(voteagainstimg,'click',function (){ deleteConnectionVote(this) } ); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-filled.png'); voteagainstimg.setAttribute('title', 'Cancella il setting...'); } else if (!connection.uservote || connection.uservote != 'N') { Event.observe(voteagainstimg,'click',function (){ connectionVote(this) } ); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-empty.png'); voteagainstimg.setAttribute('title', voteagainstimg.oldtitle); } voteDiv.insert(''+connection.negativevotes+''); } else { voteagainstimg.setAttribute('title', 'Accedi per osteggiare questo'); voteDiv.insert(''+connection.negativevotes+''); } } } } } ihDiv.insert(itDiv); var iwDiv = new Element("div", {'class':'idea-wrapper'}); var imDiv = new Element("div", {'class':'idea-main'}); var idDiv = new Element("div", {'class':'idea-detail'}); var expandDiv = new Element("div", {'id':'desc'+uniQ,'class':'ideadata', 'style':'display:none;'} ); if (node.nodetofocusid && node.nodetofocusid != "" && node.nodetofocusid == node.nodeid) { expandDiv.style.display="block"; loadDescriptionRef(node.nodeid, "desc"+uniQ, role.name); } var nodeTable = document.createElement( 'table' ); nodeTable.className = "toConnectionsTable"; expandDiv.insert(nodeTable); var row = nodeTable.insertRow(-1); var nextCell = row.insertCell(-1); nextCell.vAlign="middle"; nextCell.align="left"; var userbar = new Element("div", {'style':'clear:both;float:left;'} ); if (includeUser == true) { // Add right side with user image and date below var iuDiv = new Element("div", {'class':'idea-user2', 'style':'float:left;'}); var userimageThumb = new Element('img',{'alt':nodeuser.name, 'title': nodeuser.name, 'style':'padding-left:5px;', 'src': nodeuser.thumb}); if (type == "active") { var imagelink = new Element('a', { 'href':URL_ROOT+"user.php?userid="+nodeuser.userid, 'title':nodeuser.name}); if (breakout != "") { imagelink.target = "_blank"; } imagelink.insert(userimageThumb); iuDiv.update(imagelink); } else { iuDiv.insert(userimageThumb) } userbar.appendChild(iuDiv); } var iuDiv = new Element("div", {'style':'float:left;'}); var dStr = ""; var cDate = new Date(node.creationdate*1000); dStr += "aggiunto il: "+ cDate.format(DATE_FORMAT) + "
"; dStr += "aggiunto da: "+ nodeuser.name + ""; iuDiv.insert(dStr); userbar.insert(iuDiv); nextCell.appendChild(userbar); if (node.commonthemes) { expandDiv.insert("
TEMI condivisi: "+ node.commonthemes + "

"); } if (connection && connection.description != "" && (COMMENT_TYPES.indexOf(role.name) == -1 && role.name != "Theme" && focalrole.name != "Theme")) { expandDiv.insert('Rilevanza '+connection.description+''); expandDiv.insert('
'); } if (RESOURCE_TYPES_STR.indexOf(role.name) == -1) { if(node.description || node.hasdesc){ var dStr = '
Descrizione
'; if (node.description && node.description != "") { expandDiv.description = true; dStr += node.description; } dStr += '
'; expandDiv.insert(dStr); } } // CHILD LISTS if (role.name == 'Challenge') { expandDiv.insert('
'); var issueStr = ") "; expandDiv.insert(issueStr); var issueDiv = new Element("div", {'id':'issue'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(issueDiv); expandDiv.insert('
'); var solutionStr = ") "; expandDiv.insert(solutionStr); var solutionDiv = new Element("div", {'id':'solution'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(solutionDiv); expandDiv.insert('
'); var claimStr = ") "; expandDiv.insert(claimStr); var claimDiv = new Element("div", {'id':'claim'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(claimDiv); expandDiv.insert('
'); } else if (role.name == 'Issue') { expandDiv.insert('
'); var solutionStr = ") "; expandDiv.insert(solutionStr); var solutionDiv = new Element("div", {'id':'solution'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(solutionDiv); expandDiv.insert('
'); var claimStr = ") "; expandDiv.insert(claimStr); var claimDiv = new Element("div", {'id':'claim'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(claimDiv); expandDiv.insert('
'); } else if (role.name == 'Claim' || role.name == 'Solution') { expandDiv.insert('
'); var supportStr = ") "; expandDiv.insert(supportStr); var supportDiv = new Element("div", {'id':'support'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(supportDiv); expandDiv.insert('
'); var opposeStr = ") "; expandDiv.insert(opposeStr); var opposingDiv = new Element("div", {'id':'oppose'+uniQ, 'style':'clear:both;float:left;margin-left:5px;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(opposingDiv); expandDiv.insert('
'); } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1) { expandDiv.insert('
'); var resourceStr = ") "; expandDiv.insert(resourceStr); var resourceDiv = new Element("div", {'id':'resource'+uniQ, 'style':'clear:both;float:left;margin-bottom:5px;color:Gray;display:none;'} ); expandDiv.insert(resourceDiv); expandDiv.insert('
'); } else if (role.name == 'Comment' && node.connection) { var tN = node.connection.to[0].cnode; var tRole = tN.role[0].role; var title=tN.name; if (RESOURCE_TYPES_STR.indexOf(tRole.name) != -1) { title = tN.description; } if (tN.role[0].role.name == "Comment") { if (node.connection.parentnode) { var nextStr = ""; nextStr += "Questo elemento appare in una CHAT su: "; nextStr += ""; expandDiv.insert(nextStr); var title = node.connection.parentnode[0].cnode.name; var parentid = node.connection.parentnode[0].cnode.nodeid; var exploreButton = new Element("a", {'class':'d-block','title':'Vedi tutte le CHAT su questo elemento'} ); exploreButton.insert(title); exploreButton.href= "chats.php?chatnodeid="+node.nodeid+"&id="+parentid; expandDiv.insert(exploreButton); } } else { var nextStr = ""; nextStr += "Connesso a "; nextStr += ""; expandDiv.insert(nextStr); var exploreButton = new Element("a", {'class':'d-block','title':'Vedi tutte le CHAT su questo elemento'} ); exploreButton.insert(title); exploreButton.href= "chats.php?chatnodeid="+node.nodeid+"&id="+tN.nodeid; expandDiv.insert(exploreButton); } } idDiv.insert(expandDiv); imDiv.insert(idDiv); iwDiv.insert(imDiv); iDiv.insert(ihDiv); iDiv.insert(iwDiv); return iDiv; } /** * Render the given node from an associated connection. * @param node the node object do render * @param uniQ is a unique id element prepended to the nodeid to form an overall unique id within the currently visible site elements * @param role the role object for this node * @param includeUser whether to include the user image and link * @param type defaults to 'active', but can be 'inactive' so nothing is clickable * or a specialized type for some of the popups */ function renderWidgetListNodeMini(node, uniQ, role, includeUser, type){ if (type === undefined) { type = "active"; } if(role === undefined){ role = node.role[0].role; } var nodeuser = null; // JSON structure different if coming from popup where json_encode used. if (node.users[0].userid) { nodeuser = node.users[0]; } else { nodeuser = node.users[0].user; } var user = null; var connection = node.connection; if (connection) { user = connection.users[0].user; } var breakout = ""; //needs to check if embedded as a snippet if(top.location != self.location){ breakout = " target='_blank'"; } var focalrole = ""; if (connection) { uniQ = connection.connid+uniQ; var fN = connection.from[0].cnode; var tN = connection.to[0].cnode; if (node.nodeid == fN.nodeid) { focalrole = tN.role[0].role; } else { focalrole = fN.role[0].role; } } else { uniQ = node.nodeid + uniQ; } var nodeTable = document.createElement('table'); nodeTable.className = "toConnectionsTable"; var row = nodeTable.insertRow(-1); // VOTING if (type == 'active') { // Add voting icons if (connection && connection.linktype[0].linktype.label != 'see also') { if ( (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && (connection.torole[0].role.name == "Claim" || connection.torole[0].role.name == "Solution")) || (role.name == 'Claim' && (connection.torole[0].role.name == "Issue" || connection.torole[0].role.name == "Challenge")) || (role.name == 'Solution' && (connection.torole[0].role.name == "Issue" || connection.torole[0].role.name == "Challenge")) ) { var voteCell = row.insertCell(-1); voteCell.vAlign="top"; voteCell.align="left"; var voteDiv = new Element("div", {'class':'voteDiv d-flex mt-1'}); voteCell.insert(voteDiv); var toRoleName = getNodeTitleAntecedence(connection.torole[0].role.name, false); // vote for var voteforimg = document.createElement('img'); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-grey.png'); voteforimg.setAttribute('alt', 'Vota per'); voteforimg.setAttribute('id', connection.connid+'for'); voteforimg.nodeid = node.nodeid; voteforimg.connid = connection.connid; voteforimg.vote='Y'; voteDiv.insert(voteforimg); if (!connection.positivevotes) { connection.positivevotes = 0; } if(USER != ""){ voteforimg.style.cursor = 'pointer'; if (role.name == 'Solution') { voteforimg.oldtitle = 'PROPOSTA forte per questo '+toRoleName; } else if (role.name == 'Claim') { voteforimg.oldtitle = '- robusta er questo '+toRoleName; } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && connection.torole[0].role.name == "Solution") { voteforimg.oldtitle = 'ARGOMENTAZIONE convincente per questo '+toRoleName; } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && connection.torole[0].role.name == "Claim") { voteforimg.oldtitle = 'ARGOMENTAZIONE robusto per questo '+toRoleName; } else { voteforimg.oldtitle = 'Supporta questo...'; } if (connection.uservote && connection.uservote == 'Y') { Event.observe(voteforimg,'click',function (){ deleteConnectionVote(this) } ); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-filled.png'); voteforimg.setAttribute('title', 'Cancella il setting...'); } else if (!connection.uservote || connection.uservote != 'Y') { Event.observe(voteforimg,'click',function (){ connectionVote(this) } ); voteforimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-empty.png'); voteforimg.setAttribute('title', voteforimg.oldtitle); } voteDiv.insert(''+connection.positivevotes+''); } else { voteforimg.setAttribute('title', 'Accedi per promuovere questo'); voteDiv.insert(''+connection.positivevotes+''); } // vote against var voteagainstimg = document.createElement('img'); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-grey.png'); voteagainstimg.setAttribute('alt', 'Vota contro'); voteagainstimg.setAttribute('id', connection.connid+'against'); voteagainstimg.nodeid = node.nodeid; voteagainstimg.connid = connection.connid; voteagainstimg.vote='N'; voteDiv.insert(voteagainstimg); if (!connection.negativevotes) { connection.negativevotes = 0; } if(USER != ""){ voteagainstimg.style.cursor = 'pointer'; if (role.name == 'Solution') { voteagainstimg.oldtitle = 'PROPOSTA debole per questo '+toRoleName; } else if (role.name == 'Claim') { voteagainstimg.oldtitle = '- non robusta per questo '+toRoleName; } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && connection.torole[0].role.name == "Solution") { voteagainstimg.oldtitle = 'ARGOMENTAZIONE non convincente per questo '+toRoleName; } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1 && connection.torole[0].role.name == "Claim") { voteagainstimg.oldtitle = '$LNG->NODE_VOTE_AGAINST_EVIDENCE_CLAIM_HINT '+toRoleName; } else { voteagainstimg.oldtitle = 'osteggia...'; } if (connection.uservote && connection.uservote == 'N') { Event.observe(voteagainstimg,'click',function (){ deleteConnectionVote(this) } ); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-filled.png'); voteagainstimg.setAttribute('title', 'Cancella il setting...'); } else if (!connection.uservote || connection.uservote != 'N') { Event.observe(voteagainstimg,'click',function (){ connectionVote(this) } ); voteagainstimg.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-empty.png'); voteagainstimg.setAttribute('title', voteagainstimg.oldtitle); } voteDiv.insert(''+connection.negativevotes+''); } else { voteagainstimg.setAttribute('title', 'Accedi per osteggiare questo'); voteDiv.insert(''+connection.negativevotes+''); } } } } var textCell = row.insertCell(-1); textCell.vAlign="middle"; textCell.align="left"; textCell.width="90%"; var alttext = getNodeTitleAntecedence(role.name, false); if (role.image != null && role.image != "") { var nodeicon = new Element('img',{'alt':alttext, 'title':alttext, 'style':'width:20px;height:20px;margin-top:3px;padding-right:5px;','src': URL_ROOT + role.image}); textCell.insert(nodeicon); } else { textCell.insert(alttext+": "); } var title = node.name; if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { title=node.description; } var exploreButton = new Element('a', {'class':'itemtext', 'id':'desctoggle'+uniQ, 'style':'line-height:1.8em;'}); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } exploreButton.insert(title); textCell.insert(exploreButton); if (connection) { var cDate = new Date(connection.creationdate*1000); var dStr = "Connesso da "+user.name+ " on "+cDate.format(DATE_FORMAT)+' - Visualizza le informazioni su questo elemento.'; textCell.title = dStr; } if (connection && USER == connection.users[0].user.userid) { var delCell = row.insertCell(-1); delCell.vAlign="middle"; delCell.align="right"; delCell.width="20"; var del = new Element("span", {'class':'active d-block', 'title':"Disconnettilo dall'elemento focale corrente"} ); del.insert(''); del.connid = connection.connid; var parentname = ""; if (node.nodeid == connection.from[0].cnode.nodeid) { parentname = connection.to[0].cnode.name; if (RESOURCE_TYPES_STR.indexOf(connection.to[0].cnode.role[0].role.name) != -1) { parentname = connection.to[0].cnode.description; } } else { parentname = connection.from[0].cnode.name; if (RESOURCE_TYPES_STR.indexOf(connection.from[0].cnode.role[0].role.name) != -1) { parentname = connection.from[0].cnode.description; } } var fromName = node.name; if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { fromName = node.description; } var toName = parentname; Event.observe(del,'click',function (){ deleteNodeConnection(this.connid, fromName, toName, node.handler)}); delCell.insert(del); } return nodeTable; } /** * Render the given node for a report. * @param node the node object do render * @param uniQ is a unique id element prepended to the nodeid to form an overall unique id within the currently visible site elements * @param role the role object for this node */ function renderReportNode(node, uniQ, role){ if(role === undefined){ role = node.role[0].role; } var user = null; // JSON structure different if coming from popup where json_encode used. if (node.users[0].userid) { user = node.users[0]; } else { user = node.users[0].user; } var breakout = ""; //needs to check if embedded as a snippet if(top.location != self.location){ breakout = " target='_blank'"; } uniQ = node.nodeid + uniQ; var iDiv = new Element("div", {'style':'clear:both;float:left; margin-bottom:10px'}); var itDiv = new Element("div", {'style':'float:left;'}); //get url for any saved image. //add left side with icon image and node text. var alttext = getNodeTitleAntecedence(role.name, false); if (role.image != null && role.image != "") { var nodeicon = new Element('img',{'alt':alttext, 'title':alttext, 'style':'width:16px;height:16px;margin-right:5px;','width':'16','height':'16', 'src': URL_ROOT + role.image}); itDiv.insert(nodeicon); } else { itDiv.insert(alttext+": "); } if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { if (node.description != "") { iDiv.insert(itDiv); var str = node.description; if (node.urls && node.urls.length > 0) { str += '
Url: '+node.urls[0].url.url+''; } iDiv.insert(str); } } else { if (node.name != "") { iDiv.insert(itDiv); var str = "
"+node.name; str += "
"; iDiv.insert(str); } } return iDiv; } /*** HELPER FUNCTIONS ***/ var DEBATE_TREE_OPEN_ARRAY = {}; /** * Open and close the knowledge tree */ function toggleDebate(section, uniQ) { $(section).toggle(); if($(section).visible()){ DEBATE_TREE_OPEN_ARRAY[section] = true; $('explorearrow'+uniQ).src='https://netlab.evidence-hub.net/images/arrow-down-blue.png'; } else { DEBATE_TREE_OPEN_ARRAY[section] = false; $('explorearrow'+uniQ).src='https://netlab.evidence-hub.net/images/arrow-right-blue.png'; } } var CHAT_TREE_OPEN_ARRAY = {}; /** * Open and close the chat tree */ function toggleChat(section, uniQ, forceOpen) { if (forceOpen) { $(section).style.display = "block"; } else { $(section).toggle(); } if($(section).visible() || forceOpen){ CHAT_TREE_OPEN_ARRAY[section] = true; $('explorechatarrow'+uniQ).src='https://netlab.evidence-hub.net/images/arrow-down-blue.png'; } else { CHAT_TREE_OPEN_ARRAY[section] = false; $('explorechatarrow'+uniQ).src='https://netlab.evidence-hub.net/images/arrow-right-blue.png'; } } /** * Open and close the meta data sections - get additional stuff if required. */ function ideatoggle2(section, uniQ, id, sect, rolename) { $(section).toggle(); if(sect == "desc" && $(section).visible() && !$(section).description){ var reqUrl = SERVICE_ROOT + "&method=getnode&nodeid=" + encodeURIComponent(id); new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } Element.insert($(section+'div'), {'bottom':json.cnode[0].description}); $(section).description = 'true'; } }); } } /** * Open and close the meta data sections - get additional stuff if required. */ function ideatoggle3(section, uniQ, id, sect, rolename) { $(section).toggle(); if($('open'+section)){ if($(section).visible()){ $('open'+section).update("« "); } else { $('open'+section).update("»"); } } if(sect == "desc" && $(section).visible() && !$(section).description){ var reqUrl = SERVICE_ROOT + "&method=getnode&nodeid=" + encodeURIComponent(id); new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } Element.insert($(section+'div'), {'bottom':json.cnode[0].description}); $(section).description = 'true'; } }); } } function loadDescriptionRef(id, section, rolename) { if (EVIDENCE_TYPES_STR.indexOf(rolename) != -1) { // EVIDENCE loadReference(section+"ref", id); } } /** * Open and close the meta data sections - get details if required. */ function ideatoggle(section, id, sect){ $(section).toggle(); if($('open'+section)){ if($(section).visible()){ $('open'+section).update("-"); } else { $('open'+section).update("+"); } } //if it is the description if(sect == "desc" && $(section).visible() && !$(section).description){ var reqUrl = SERVICE_ROOT + "&method=getnode&nodeid=" + encodeURIComponent(id); new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } Element.insert($(section), {'bottom':json.cnode[0].description}); $(section).description = 'true'; } }); } } /** * Open and close the meta data sections */ function justideatoggle(section){ $(section).toggle(); if($('open'+section)){ if($(section).visible()){ $('open'+section).update("-"); } else { $('open'+section).update("+"); } } } /** * Fetch the refence for an Evidence node */ function loadReference(section, nodeid) { if($(section) && !$(section).reference){ var reqUrl = SERVICE_ROOT + "&method=getconnectionsbynode&style=long&filternodetypes="+RESOURCE_TYPES+"&filterlist="+encodeURIComponent('is related to')+"&start=0&max=-1&nodeid=" + encodeURIComponent(nodeid); new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } var url = ""; var refNode = ""; var conns = json.connectionset[0].connections; var nodes = new Array(); var j=0; for(var i=0; i < conns.length; i++){ var c = conns[i].connection; var fN = c.from[0].cnode; var tN = c.to[0].cnode; var fnRole = c.fromrole[0].role; var tnRole = c.torole[0].role; if (RESOURCE_TYPES.indexOf(fnRole.name) && fN.nodeid != nodeid) { if (fN.name != "") { nodes[j] = fN; j++; } } else if (RESOURCE_TYPES.indexOf(tnRole.name) && tN.nodeid != nodeid) { if (tN.name != "") { nodes[j] = tN; j++; } } } for(var i=0; i < nodes.length; i++){ var node = nodes[i]; if (node.urls && node.urls.length > 0) { var iUL = new Element("li", {}); var link = new Element("a", {'href':node.urls[0].url.url,'target':'_blank','title':'Vai al sito'} ); link.insert(node.urls[0].url.title); iUL.insert(link); $(section).insert(iUL); } } $(section).reference = 'true'; } }); } } /** * Open and close the evidence - get data if required. */ function childtoggle(section, nodeid, title, linktype, nodetype){ $(section).toggle(); if($('open'+section)){ if($(section).visible()){ $('open'+section).update("-"); } else { $('open'+section).update("+"); } } childload(section, nodeid, title, linktype, nodetype); } /** * load data if required as per parameters. */ function childloadcount(section, nodeid, linktype, nodetype){ var reqUrl = SERVICE_ROOT + "&method=getconnectionsbynode&style=long"; reqUrl += "&filterlist="+encodeURIComponent(linktype)+"&filternodetypes="+nodetype+"&scope=all&start=0&max=0&nodeid="+nodeid; new Ajax.Request(reqUrl, { method:'post', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } var count = json.connectionset[0].totalno; if (count > 0) { $("toggle"+section).style.display = 'block'; $("count"+section).update(count); } else { $("toggle"+section).style.display = 'none'; } } }); } /** * Refresh child list */ function refreshchildren(section, nodeid, title, linktype, nodetype) { $(section).loaded = 'false'; childload(section, nodeid, title, linktype, nodetype); } /** * load child list, if required as per parameters. */ function childload(section, nodeid, title, linktype, nodetype, focalnodeid, uniQ, childCountSpan){ if (!DEBATE_TREE_SMALL) { DEBATE_LOADED_ARRAY['nodeid'+uniQ] = false; } if (typeof section === "string") { section = $(section); } if(section.visible() && (!section.loaded || section.loaded == 'false')){ var reqUrl = SERVICE_ROOT + "&method=getconnectionsbynode&style=long"; reqUrl += "&filterlist="+encodeURIComponent(linktype)+"&filternodetypes="+nodetype+"&scope=all&start=0&max=-1&nodeid="+nodeid; new Ajax.Request(reqUrl, { method:'post', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } var conns = json.connectionset[0].connections; section.update(""); if (!DEBATE_TREE_SMALL) { DEBATE_LOADED_ARRAY['nodeid'+uniQ] = true; } if (conns.length == 0) { section.style.display = 'none'; } else { var nodes = new Array(); for(var i=0; i < conns.length; i++){ var c = conns[i].connection; var fN = c.from[0].cnode; var tN = c.to[0].cnode; var fnRole = c.fromrole[0].role; var tnRole = c.torole[0].role; if ((fnRole.name == nodetype || nodetype.indexOf(fnRole.name) != -1) && fN.nodeid != nodeid) { if (fN.name != "") { var next = c.from[0]; next.cnode['parentid'] = nodeid; next.cnode['connection'] = c; next.cnode['focalnodeid'] = focalnodeid; nodes.push(next); } } else if ((tnRole.name == nodetype || nodetype.indexOf(tnRole.name) != -1) && tN.nodeid != nodeid) { if (tN.name != "") { var next = c.to[0]; next.cnode['parentid'] = nodeid; next.cnode['connection'] = c; next.cnode['focalnodeid'] = focalnodeid; nodes.push(next); } } } if (nodes.length > 0){ if ($('explorearrow'+uniQ)) { $('explorearrow'+uniQ).style.visibility = 'visible'; } // ONLY SORT OF TYPE IS RESOURCES - ALL OTHERS SHOULD BE SPLIT CORRECTLY if (nodetype == RESOURCE_TYPES_STR) { nodes.sort(connectiontypenodesort); nodes.sort(connectiontypealphanodesort); } if (childCountSpan != null) { var countnow = parseInt(childCountSpan.innerHTML); var finalcount = countnow+nodes.length; childCountSpan.innerHTML = finalcount; } var parentrefreshhanlder = ""; displayConnectionNodes(section, nodes, parseInt(0), true, uniQ, childCountSpan, parentrefreshhanlder); } section.loaded = 'true'; } } }); } else { childloadcount(section, nodeid, linktype, nodetype); } } /** * load comments built from data, if required as per parameters. */ function childcommentload(section, nodeid, linktype, nodetype, uniQ, searchid){ if (typeof section === "string") { section = $(section); } var title= "Usato per costruire:"; if (nodetype == COMMENT_TYPES+",Idea") { title= "Costruito da:"; } if(!section.loaded || section.loaded == 'false'){ var reqUrl = SERVICE_ROOT + "&method=getconnectionsbynode&style=long"; reqUrl += "&filterlist="+encodeURIComponent(linktype)+"&filternodetypes="+nodetype+"&scope=all&start=0&max=-1&nodeid="+nodeid; new Ajax.Request(reqUrl, { method:'post', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } var conns = json.connectionset[0].connections; if (conns.length > 0) { var nodes = new Array(); for(var i=0; i < conns.length; i++){ var c = conns[i].connection; var fN = c.from[0].cnode; var tN = c.to[0].cnode; var fnRole = c.fromrole[0].role; var tnRole = c.torole[0].role; if ((tnRole.name == nodetype || nodetype.indexOf(tnRole.name) != -1) && tN.nodeid != nodeid) { if (tN.name != "") { var next = c.to[0]; next.cnode['parentid'] = nodeid; next.cnode['connection'] = c; nodes.push(next); } } else if ((fnRole.name == nodetype || nodetype.indexOf(fnRole.name) != -1) && fN.nodeid != nodeid) { if (fN.name != "") { var next = c.from[0]; next.cnode['parentid'] = nodeid; next.cnode['connection'] = c; next.cnode['direction'] = "from"; nodes.push(next); } } } if (nodes.length > 0) { section.insert(""+title+"
"); var count = nodes.length; for (var i=0; i < count; i++) { var node = nodes[i]; node = node.cnode; var rolename = node.role[0].role.name; var icon = getNodeIconElement(node); var nodeTable = document.createElement( 'table' ); nodeTable.width="100%"; section.insert(nodeTable); var row = nodeTable.insertRow(-1); var iconCell = row.insertCell(-1); iconCell.vAlign="top"; iconCell.align="left"; var textCell = row.insertCell(-1); textCell.vAlign="middle"; textCell.align="left"; if (rolename != "Comment" && rolename != "Idea") { if (icon != null) { iconCell.insert(icon); } var exploreButton = new Element("a", {'style':'clear:both;float:left;;', 'title':'Clicca su Mostra/Nascondi per visualizzare più informazioni e attività su questo elemento'} ); exploreButton.insert(node.name); if (searchid != "") { exploreButton.href= "explore.php?id="+node.nodeid+"&sid="+searchid; } else { exploreButton.href= "explore.php?id="+node.nodeid; } textCell.insert(exploreButton); } else { if (icon != null) { iconCell.insert(icon); } if (rolename == "Idea") { var exploreButton = new Element("a", {'style':'clear:both;float:left;', 'title':'Vai alla lista SEGNALAZIONE for per questo SEGNALAZIONE'} ); exploreButton.insert(node.name); if (searchid != "") { exploreButton.href= "explore.php?id="+node.nodeid+"&sid="+searchid; } else { exploreButton.href= "index.php?q="+encodeURIComponent(node.name)+"&sid="+node.searchid+"#comment-list"; } textCell.insert(exploreButton); } else { var exploreDiv = new Element("div", {'style':'clear:both;float:left;', 'title':'Vai alla lista SEGNALAZIONE for per questo SEGNALAZIONE'} ); var textdiv = new Element("div", {'style':'margin-top:3px;margin-bottom:5px;clear:both;float:left;;'} ); textdiv.insert(node.name); var innerdiv = new Element("div", {'style':'clear:both;float:left;;'} ); exploreDiv.insert(textdiv); exploreDiv.insert(innerdiv); textCell.insert(exploreDiv); childchatusageload(innerdiv, node.nodeid,"is related to", EVIDENCE_TYPES_STR+","+BASE_TYPES_STR+","+COMMENT_TYPES, uniQ+node.nodeid, searchid); } } } } section.loaded = 'true'; } //if ($('loading'+uniQ)) { // $('loading'+uniQ).remove(); //} } }); } } /** * load child list, if required as per parameters. */ function childchatusageload(section, nodeid, linktype, nodetype, uniQ, searchid){ if (typeof section === "string") { section = $(section); } if(!section.loaded || section.loaded == 'false'){ //if (section.innerHTML == "" && (!section.loaded || section.loaded == 'false')) { // var hourglass = getLoadingLine("Controllo dell\'utilizzo"); // hourglass.id="loading"+uniQ; // section.insert(hourglass); //} var reqUrl = SERVICE_ROOT + "&method=getconnectionsbynode&style=long"; reqUrl += "&filterlist="+encodeURIComponent(linktype)+"&filternodetypes="+nodetype+"&scope=all&start=0&max=-1&nodeid="+nodeid; new Ajax.Request(reqUrl, { method:'post', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } var conns = json.connectionset[0].connections; if (conns.length > 0) { var nodes = new Array(); for(var i=0; i < conns.length; i++){ var c = conns[i].connection; var fN = c.from[0].cnode; var tN = c.to[0].cnode; var fnRole = c.fromrole[0].role; var tnRole = c.torole[0].role; // only want to get the To end if ((tnRole.name == nodetype || nodetype.indexOf(tnRole.name) != -1) && tN.nodeid != nodeid) { if (tN.name != "") { var next = c.to[0]; next.cnode['parentid'] = nodeid; next.cnode['connection'] = c; nodes.push(next); } } } if (nodes.length > 0) { var title="QualeCHAT riguarda:"; section.insert(''+title+''); var count = nodes.length; for (var i=0; i < count; i++) { var node = nodes[i]; node = node.cnode; var role = node.role[0].role; var name = node.name if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { name = node.description; } if (role.name == "Comment") { if (node.connection.parentnode) { var icon = getNodeIconElement(node.connection.parentnode[0].cnode); var innertitle = node.connection.parentnode[0].cnode.name; var parentid = node.connection.parentnode[0].cnode.nodeid; var exploreButton = new Element("a", {'class':'d-block','title':'Vedi tutte le CHAT su questo elemento'} ); if (icon != null) { exploreButton.insert(icon); exploreButton.insert(''+innertitle+''); } else { exploreButton.insert(innertitle); } if (searchid != "") { exploreButton.href= "chats.php?chatnodeid="+nodeid+"&id="+parentid+"&sid="+searchid; } else { exploreButton.href= "chats.php?chatnodeid="+nodeid+"&id="+parentid; } section.insert(exploreButton); } var nextStr = ""; nextStr += "Connesso a "; nextStr += ""+name+""; nextStr += ""; section.insert(nextStr); } else { var icon = getNodeIconElement(node); var exploreButton = new Element("a", {'class':'d-block','title':'Vedi tutte le CHAT su questo elemento'} ); if (icon != null) { exploreButton.insert(icon); exploreButton.insert(''+name+''); } else { exploreButton.insert(name); } if (searchid != "") { exploreButton.href= "chats.php?chatnodeid="+nodeid+"&id="+node.nodeid+"&sid="+searchid; } else { exploreButton.href= "chats.php?chatnodeid="+nodeid+"&id="+node.nodeid; } section.insert(exploreButton); var nextStr = ""; nextStr += "Connesso a "; nextStr += ""+name+""; nextStr += ""; section.insert(nextStr); } } } section.loaded = 'true'; } } }); } } /** * load child list on chat page, if required as per parameters. */ function childchatload(section, nodeid, title, linktype, nodetype, chattopic, focalnodeid, uniQ, childCountSpan){ CHAT_LOADED_ARRAY['nodeid'+uniQ] = false; if (typeof section === "string") { section = $(section); } if($(section).visible() && (!$(section).loaded || $(section).loaded == 'false')){ var reqUrl = SERVICE_ROOT + "&method=getconnectionsbynode&style=long&sort=ASC&orderby=date"; reqUrl += "&filterlist="+encodeURIComponent('is related to')+"&filternodetypes=Comment&scope=all&start=0&max=-1&nodeid="+nodeid; new Ajax.Request(reqUrl, { method:'post', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } CHAT_LOADED_ARRAY['nodeid'+uniQ] = true; var conns = json.connectionset[0].connections; section.update(""); if (conns.length == 0) { //section.style.display = 'none'; if ($('chat'+uniQ)) { $('chat'+uniQ).style.display = 'none'; } } else { var nodes = new Array(); for(var i=0; i < conns.length; i++){ var c = conns[i].connection; var fN = c.from[0].cnode; var tN = c.to[0].cnode; var fnRole = c.fromrole[0].role; var tnRole = c.torole[0].role; var fnRole = c.from[0].cnode.role[0].role; // c.fromrole[0].role; var tnRole = c.to[0].cnode.role[0].role; //c.torole[0].role; if (fN.nodeid != nodeid && COMMENT_TYPES.indexOf(fnRole.name) != -1) { if (fN.name != "") { var next = c.from[0]; next.cnode['parentid'] = nodeid; next.cnode['chattopic'] = chattopic; next.cnode['connection'] = c; next.cnode['handler'] = 'refreshExploreChats'; nodes.push(next); } } } if (nodes.length > 0){ if ($('explorechatarrow'+uniQ)) { $('explorechatarrow'+uniQ).style.visibility = 'visible'; } if ($('chatremove'+uniQ)) { $('chatremove'+uniQ).style.display = "none"; } if (childCountSpan != null) { var countnow = parseInt(childCountSpan.innerHTML); var finalcount = countnow+nodes.length; childCountSpan.innerHTML = finalcount; } displayChatNodes(section, nodes, parseInt(0), true, uniQ, childCountSpan); } else { if ($('chat'+uniQ)) { $('chat'+uniQ).style.display = 'none'; } section.style.display = 'none'; } section.loaded = 'true'; } } }); } else { //childloadcount(section, nodeid, linktype, nodetype); } } /** * Delete the selected node */ function deleteNode(nodeid, name, type, handler, handlerparam){ var typename = getNodeTitleAntecedence(type, false); if (type == "") { typename = 'item'; } var ans = confirm("Sei sicuro di voler cancellare "+typename+": '"+htmlspecialchars_decode(name)+"'?"); if(ans){ var reqUrl = SERVICE_ROOT + "&method=deletenode&nodeid=" + encodeURIComponent(nodeid); new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } //now refresh the page if (handler) { if (typeof handler == 'string') { var pos = handler.indexOf(")"); if (pos != -1) { eval ( handler ); } else { if (handlerparam) { eval( handler + "('"+handlerparam+"')" ); } else { eval( handler + "()" ); } } } else if (typeof handler == 'function') { if (handlerparam) { handler(handlerparam); } else { handler(); } } else { console.log(typeof handler); } } else { try { // If you are deleting the currently viewed item if (nodeid == NODE_ARGS['nodeid']) { window.location.href = "https://netlab.evidence-hub.net/"; } else { window.location.reload(true); } } catch(err) { //do nothing } } } }); } } function nodeVote(obj) { var reqUrl = SERVICE_ROOT + "&method=nodevote&vote="+obj.vote+"&nodeid="+obj.nodeid; new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error) { alert(json.error[0].message); return; } else { if (obj.vote == 'Y') { $$("#nodevotefor"+obj.nodeid).each(function(elmt) { elmt.innerHTML = json.cnode[0].positivevotes; }); $$("#nodefor"+obj.nodeid).each(function(elmt) { elmt.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-filled3.png'); elmt.setAttribute('title', 'Cancella il setting...'); Event.stopObserving(elmt, 'click'); Event.observe(elmt,'click', function (){deleteNodeVote(this);}); }); $$("#nodevoteagainst"+obj.nodeid).each(function(elmt) { elmt.innerHTML = json.cnode[0].negativevotes; }); $$("#nodeagainst"+obj.nodeid).each(function(elmt) { elmt.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-empty3.png'); elmt.setAttribute('title', 'osteggia...'); Event.stopObserving(elmt, 'click'); Event.observe(elmt,'click', function (){nodeVote(this) } ); }); } else if (obj.vote == 'N') { $$("#nodevoteagainst"+obj.nodeid).each(function(elmt) { elmt.innerHTML = json.cnode[0].negativevotes; }); $$("#nodeagainst"+obj.nodeid).each(function(elmt) { elmt.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-filled3.png'); elmt.setAttribute('title', 'Cancella il setting...'); Event.stopObserving(elmt, 'click'); Event.observe(elmt,'click', function (){deleteNodeVote(this) } ); }); $$("#nodevotefor"+obj.nodeid).each(function(elmt) { elmt.innerHTML = json.cnode[0].positivevotes; }); $$("#nodefor"+obj.nodeid).each(function(elmt) { elmt.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-empty3.png'); elmt.setAttribute('title', 'Supporta questo...'); Event.stopObserving(elmt, 'click'); Event.observe(elmt,'click', function (){nodeVote(this) } ); }); } } } }); } function deleteNodeVote(obj) { var reqUrl = SERVICE_ROOT + "&method=deletenodevote&vote="+obj.vote+"&nodeid="+obj.nodeid; new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error) { alert(json.error[0].message); return; } else { if (obj.vote == 'Y') { $$("#nodevotefor"+obj.nodeid).each(function(elmt) { elmt.innerHTML = json.cnode[0].positivevotes; }); $$("#nodefor"+obj.nodeid).each(function(elmt) { elmt.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-empty3.png'); elmt.setAttribute('title', 'Supporta questo...'); Event.stopObserving(elmt, 'click'); Event.observe(elmt,'click', function (){nodeVote(this);}); }); $$("#nodevoteagainst"+obj.nodeid).each(function(elmt) { elmt.innerHTML = json.cnode[0].negativevotes; }); $$("#nodeagainst"+obj.nodeid).each(function(elmt) { elmt.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-empty3.png'); elmt.setAttribute('title', 'osteggia...'); Event.stopObserving(elmt, 'click'); Event.observe(elmt,'click', function (){nodeVote(this) } ); }); $(obj.nodeid+obj.uniqueid+'nodeagainst').setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-empty3.png'); $(obj.nodeid+obj.uniqueid+'nodeagainst').setAttribute('title', 'osteggia...'); Event.stopObserving($(obj.nodeid+obj.uniqueid+'nodeagainst'), 'click'); Event.observe($(obj.nodeid+obj.uniqueid+'nodeagainst'),'click', function (){ connectionVote(this) } ); } if (obj.vote == 'N') { $$("#nodevoteagainst"+obj.nodeid).each(function(elmt) { elmt.innerHTML = json.cnode[0].negativevotes; }); $$("#nodeagainst"+obj.nodeid).each(function(elmt) { elmt.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-empty3.png'); elmt.setAttribute('title', 'osteggia...'); Event.stopObserving(elmt, 'click'); Event.observe(elmt,'click', function (){nodeVote(this) } ); }); $$("#nodevotefor"+obj.nodeid).each(function(elmt) { elmt.innerHTML = json.cnode[0].positivevotes; }); $$("#nodefor"+obj.nodeid).each(function(elmt) { elmt.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-empty3.png'); elmt.setAttribute('title', 'Supporta questo...'); Event.stopObserving(elmt, 'click'); Event.observe(elmt,'click', function (){nodeVote(this) } ); }); } } } }); } function followNode(node, obj, handler) { let nodeid = node.nodeid; if (obj && obj.nodeid) { nodeid = obj.nodeid; } var reqUrl = SERVICE_ROOT + "&method=addfollowing&itemid="+nodeid; new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error) { alert(json.error[0].message); return; } else { node.userfollow = "Y"; if (handler) { if (typeof handler === 'string') { var pos = handler.indexOf(")"); if (pos != -1) { eval ( handler ); } else { eval( handler + "()" ); } } else if (typeof handler == 'function') { handler(); } if (obj) { obj.setAttribute('src', 'https://netlab.evidence-hub.net/images/following.png'); obj.setAttribute('title', 'Non seguire più questo elemento...'); Event.stopObserving(obj, 'click'); Event.observe(obj,'click', function (){ unfollowNode(node, this, handler) } ); } } } } }); } function unfollowNode(node, obj, handler) { let nodeid = node.nodeid; if (obj && obj.nodeid) { nodeid = obj.nodeid; } var reqUrl = SERVICE_ROOT + "&method=deletefollowing&itemid="+nodeid; new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error) { alert(json.error[0].message); return; } else { node.userfollow = "N"; if (handler) { if (typeof handler === 'string') { var pos = handler.indexOf(")"); if (pos != -1) { eval ( handler ); } else { eval( handler + "()" ); } } else if (typeof handler == 'function') { handler(); } if (obj) { obj.setAttribute('src', 'https://netlab.evidence-hub.net/images/follow.png'); obj.setAttribute('title', 'Segui questo elemento...'); Event.stopObserving(obj, 'click'); Event.observe(obj,'click', function (){ followNode(node, this, handler) } ); } } } } }); } /** * Called from user home page follow list. */ function unfollowMyNode(nodeid) { var reqUrl = SERVICE_ROOT + "&method=deletefollowing&itemid="+nodeid; 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 } } } }); } /** * show an RSS feed of the nodes for the given arguments */ function getNodesFeed(nodeargs) { var url = SERVICE_ROOT.replace('format=json','format=rss'); var args = Object.clone(nodeargs); args["start"] = 0; args["style"] = 'long'; var reqUrl = url+"&method=getnodesby"+CONTEXT+"&"+Object.toQueryString(args); window.location.href = reqUrl; } /** * show an RSS feed of the nodes for the given arguments */ function getCommentNodesFeed(nodeargs) { var url = SERVICE_ROOT.replace('format=json','format=rss'); var args = Object.clone(nodeargs); args["start"] = 0; args["style"] = 'long'; var reqUrl = url+"&method=getconnectednodesby"+CONTEXT+"&"+Object.toQueryString(args); window.location.href = reqUrl; } /** * Print current node list in new popup window */ function printNodes(nodeargs, title) { var url = SERVICE_ROOT; var args = Object.clone(nodeargs); args["start"] = 0; args["max"] = -1; args["style"] = 'long'; var reqUrl = url+"&method=getnodesby"+CONTEXT+"&"+Object.toQueryString(args); var urlcall = URL_ROOT+"ui/popups/printnodes.php?context="+CONTEXT+"&title="+title+"&filternodetypes="+args['filternodetypes']+"&url="+encodeURIComponent(reqUrl); loadDialog('printnodes', urlcall, 800, 700); } /** * Print current node list in new popup window */ function printCommentNodes(nodeargs, title) { var url = SERVICE_ROOT; var args = Object.clone(nodeargs); args["start"] = 0; args["max"] = -1; args["style"] = 'long'; var reqUrl = url+"&method=getconnectednodesby"+CONTEXT+"&"+Object.toQueryString(args); var urlcall = URL_ROOT+"ui/popups/printnodes.php?context="+CONTEXT+"&title="+title+"&filternodetypes="+args['filternodetypes']+"&url="+encodeURIComponent(reqUrl); loadDialog('printnodes', urlcall, 800, 700); } /** * Print current explore page in new popup window */ function printNodeExplore(nodeargs, title, nodeid){ var url = SERVICE_ROOT; var args = Object.clone(nodeargs); args["start"] = 0; args["max"] = -1; args["style"] = 'long'; var reqUrl = url+"&method=getnode&"+Object.toQueryString(args); var urlcall = URL_ROOT+"ui/popups/printexplore.php?context="+CONTEXT+"&title="+encodeURIComponent(title)+"&nodeid="+nodeid+"&url="+encodeURIComponent(reqUrl); loadDialog('printexplore', urlcall, 800, 700); } /** * Print current knowledge tree explore page in new popup window */ function printKnowledgeTreeExplore(nodeargs, title, nodeid, name){ var url = SERVICE_ROOT; var args = Object.clone(nodeargs); args["start"] = 0; args["max"] = -1; args["style"] = 'long'; var urlcall = URL_ROOT+"ui/popups/printknowledgetree.php?context="+CONTEXT+"&title="+encodeURIComponent(title)+"&nodetype="+args['nodetype']+"&nodeid="+nodeid+"&name="+encodeURIComponent(name); loadDialog('printknowledgetree', urlcall, 800, 700); } // NODE CONNECTION FUNCTIONS function connectionVote(obj) { var reqUrl = SERVICE_ROOT + "&method=connectionvote&vote="+obj.vote+"&connid="+obj.connid; new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error) { alert(json.error[0].message); return; } else { if (obj.vote == 'Y') { $(obj.connid+'votefor').innerHTML = json.connection[0].positivevotes; obj.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-filled.png'); obj.setAttribute('title', 'Cancella il setting...'); Event.stopObserving(obj, 'click'); Event.observe(obj,'click', function (){ deleteConnectionVote(this) } ); $(obj.connid+'voteagainst').innerHTML = json.connection[0].negativevotes; $(obj.connid+'against').setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-empty.png'); $(obj.connid+'against').setAttribute('title', $(obj.connid+'against').oldtitle); Event.stopObserving($(obj.connid+'against'), 'click'); Event.observe($(obj.connid+'against'),'click', function (){ connectionVote(this) } ); } else if (obj.vote == 'N') { $(obj.connid+'voteagainst').innerHTML = json.connection[0].negativevotes; obj.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-filled.png'); obj.setAttribute('title', 'Cancella il setting...'); Event.stopObserving(obj, 'click'); Event.observe(obj,'click', function (){ deleteConnectionVote(this) } ); $(obj.connid+'votefor').innerHTML = json.connection[0].positivevotes; $(obj.connid+'for').setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-empty.png'); $(obj.connid+'for').setAttribute('title', $(obj.connid+'for').oldtitle); Event.stopObserving($(obj.connid+'for'), 'click'); Event.observe($(obj.connid+'for'),'click', function (){ connectionVote(this) } ); } } } }); } function deleteConnectionVote(obj) { var reqUrl = SERVICE_ROOT + "&method=deleteconnectionvote&vote="+obj.vote+"&connid="+obj.connid; new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error) { alert(json.error[0].message); return; } else { if (obj.vote == 'Y') { $(obj.connid+'votefor').innerHTML = json.connection[0].positivevotes; obj.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-empty.png'); obj.setAttribute('title', obj.oldtitle); Event.stopObserving(obj, 'click'); Event.observe(obj,'click', function (){ connectionVote(this) } ); $(obj.connid+'voteagainst').innerHTML = json.connection[0].negativevotes; $(obj.connid+'against').setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-empty.png'); $(obj.connid+'against').setAttribute('title', $(obj.connid+'against').oldtitle); Event.stopObserving($(obj.connid+'against'), 'click'); Event.observe($(obj.connid+'against'),'click', function (){ connectionVote(this) } ); } if (obj.vote == 'N') { $(obj.connid+'voteagainst').innerHTML = json.connection[0].negativevotes; obj.setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-down-empty.png'); obj.setAttribute('title', obj.oldtitle); Event.stopObserving(obj, 'click'); Event.observe(obj,'click', function (){ connectionVote(this) } ); $(obj.connid+'votefor').innerHTML = json.connection[0].positivevotes; $(obj.connid+'for').setAttribute('src', 'https://netlab.evidence-hub.net/images/thumb-up-empty.png'); $(obj.connid+'for').setAttribute('title', $(obj.connid+'for').oldtitle); Event.stopObserving($(obj.connid+'for'), 'click'); Event.observe($(obj.connid+'for'),'click', function (){ connectionVote(this) } ); } } } }); } /** * Edit the connection description for the given connection id. */ function editConnectionDescription(connid, desc, handler) { textAreaPrompt('Perché questa associazione è rilevante?', desc, connid, handler, 'processConnectionDesciption'); } /** * View the connection description. */ function viewConnectionDescription(desc) { alert(desc); } /** * Save the edit of the connection description for the given connection id. */ function processConnectionDesciption(connid, desc, handler) { var reqUrl = SERVICE_ROOT + "&method=editconnectiondescription&description="+encodeURIComponent(desc)+"&connid=" + encodeURIComponent(connid); new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } if (handler === 'undefined' || handler === undefined) { try { window.location.reload(true); } catch(err) { //do nothing } } else { var pos = handler.indexOf(")"); if (pos != -1) { eval ( handler ); } else { eval( handler + "()" ); } } } }); } /** * Delete the connection for the given connection id. */ function deleteNodeConnection(connid, childname, parentname, handler) { var ans = confirm("Sei sicuro di disconnetterti \n\n'"+htmlspecialchars_decode(childname)+"'\n\n da \n\n'"+htmlspecialchars_decode(parentname)+"' ?"); if(ans){ var reqUrl = SERVICE_ROOT + "&method=deleteconnection&connid=" + encodeURIComponent(connid); new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } if (handler) { var pos = handler.indexOf(")"); if (pos != -1) { eval ( handler ); } else { eval( handler + "()" ); } } else { try { window.location.reload(true); } catch(err) { //do nothing } } } }); } } /** * Delete the connection for the given connection id for a chat item. */ function deleteChatNode(nodeid, name, handler, parentconnid) { var ans = confirm("Sei sicuro di voler cancellare laCHAT: '"+htmlspecialchars_decode(name)+"'?"); if(ans){ var reqUrl = SERVICE_ROOT + "&method=deletecomment&nodeid=" +encodeURIComponent(nodeid)+"&parentconnid="+encodeURIComponent(parentconnid); new Ajax.Request(reqUrl, { method:'get', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } if (handler) { var pos = handler.indexOf(")"); if (pos != -1) { eval ( handler ); } else { eval( handler + "()" ); } } else { try { window.location.reload(true); } catch(err) { //do nothing } } } }); } } /** * Redraw the nodes borders when a different node is selected for connecting. */ function refreshTextDivCell() { var cellsArray = document.getElementsByName('textDivCell'); var count = cellsArray.length; var next = null; for (var i=0; i < count; i++) { next = cellsArray[i]; if (next.nodeid == CURRENT_ADD_AREA_NODEID) { var bordercolor = 'plainborder'; var backcolor = 'focusedback'; if (next.nodetype == 'Challenge') { bordercolor = 'challengeborder'; if (next.nodeid == next.focalnodeid) { backcolor = 'challengeback'; } } else if (next.nodetype == 'Issue') { bordercolor = 'issueborder'; if (next.nodeid == next.focalnodeid) { backcolor = 'issueback'; } } else if (next.nodetype == 'Claim') { bordercolor = 'claimborder'; if (next.nodeid == next.focalnodeid) { backcolor = 'claimback'; } } else if (next.nodetype == 'Solution') { bordercolor = 'solutionborder'; if (next.nodeid == next.focalnodeid) { backcolor = 'solutionback'; } } else if (EVIDENCE_TYPES_STR.indexOf(next.nodetype) != -1) { bordercolor = 'evidenceborder'; if (next.nodeid == next.focalnodeid) { backcolor = 'evidenceback'; } } else if (RESOURCE_TYPES_STR.indexOf(next.nodetype) != -1) { bordercolor = 'resourceborder'; if (next.nodeid == next.focalnodeid) { backcolor = 'resourceback'; } } //if (next.nodeid == next.focalnodeid) { //bordercolor = 'selectedborder'; //} next.className = backcolor+' '+bordercolor; } else if (next.nodeid == next.focalnodeid) { var bordercolor = 'plainborder'; var backcolor = 'whiteback'; if (next.nodetype == 'Challenge') { bordercolor = 'challengeborder'; backcolor = 'challengeback'; } else if (next.nodetype == 'Issue') { bordercolor = 'issueborder'; backcolor = 'issueback'; } else if (next.nodetype == 'Claim') { bordercolor = 'claimborder'; backcolor = 'claimback'; } else if (next.nodetype == 'Solution') { bordercolor = 'solutionborder'; backcolor = 'solutionback'; } else if (EVIDENCE_TYPES_STR.indexOf(next.nodetype) != -1) { bordercolor = 'evidenceborder'; backcolor = 'evidenceback'; } else if (RESOURCE_TYPES_STR.indexOf(next.nodetype) != -1) { bordercolor = 'resourceborder'; backcolor = 'resourceback'; } next.className = backcolor+' '+bordercolor; } else { next.className = 'whiteborder'; } } var nodeAreaArray = document.getElementsByName('nodeArea'); count = nodeAreaArray.length; next = null; for (var i=0; i < count; i++) { next = nodeAreaArray[i]; if (next.nodeid == next.focalnodeid) { continue; } if (next.nodeid == CURRENT_ADD_AREA_NODEID) { if (next.nodeid == next.focalnodeid) { next.className = 'itemtextwhite'; } else { next.className = 'itemtext selectedlabel'; } } else { next.className = 'itemtext unselectedlabel'; } } } /** * does the narrow debate tree contain the currently selected node?. * If not, display a helpful message to the user. * (a node on the expanded tree may have been selected that is not in the narrow view). */ function checkHasNarrowGotSelected() { } /** * does the debate tree contain the passed node?. * If not, ask user if they want to refocus the debate on the given nodeid. * If yes, scroll to the first occurrence and add a 'New' message to the title. */ function checkDebateHasNode(nodetofocusid) { if (nodetofocusid === undefined) { nodetofocusid = ""; } if (nodetofocusid != "") { // Are all the debates closed? // If so we want to open the ones the new node is in. var allClosed = true; var arrowsArray = document.getElementsByName('explorearrow'); var uniQArray = new Array(); var uniQArrayToOpen = new Array(); var nextarrow = null; var countarrow = arrowsArray.length; for (var i=0; i < countarrow; i++) { nextarrow = arrowsArray[i]; var uniQ = nextarrow.uniqueid; uniQArray.push(uniQ); if ($("treedesc"+uniQ) && $("treedesc"+uniQ).style.display == 'block') { allClosed = false; break; } } //alert(allClosed); var cellsArray = document.getElementsByName('textDivCell'); var count = cellsArray.length; var next = null; var found = false; var foundCell = null; for (var i=0; i < count; i++) { next = cellsArray[i]; if (next.connection) { var fNnodeid = next.connection.from[0].cnode.nodeid; var tNnodeid = next.connection.to[0].cnode.nodeid; if ( (nodetofocusid == fNnodeid && tNnodeid == CURRENT_ADD_AREA_NODEID) || (nodetofocusid == tNnodeid && fNnodeid == CURRENT_ADD_AREA_NODEID)) { if (next.nodeid == nodetofocusid) { if (allClosed) { for (var j=0; j
'); } } else { if (allClosed) { for (var j=0; j'); } } }else { // If coming from an edit it will not match the CURRENT_ADD_AREA_NODEID if ( (nodetofocusid == fNnodeid) || (nodetofocusid == tNnodeid)) { if (next.nodeid == nodetofocusid) { if (allClosed) { for (var j=0; j'); } } else { if (allClosed) { for (var j=0; j'); } } } } } if (!found) { if (DEBATE_TREE_SMALL) { if (next.id.indexOf('narrow') != -1) { if (next.nodeid == nodetofocusid) { foundCell = next; found = true; } } } else { if (next.nodeid == nodetofocusid) { found = true; foundCell = next; } } } } if (!found) { var reply = confirm("Il nuovo elemento che hai appena aggiunto non apparirà nell'albero delle conoscenze corrente.\n\nVuoi riorientare l'albero delle conoscenze sul nuovo elemento?\n\n(Premi Annulla per rimanere su questa pagina)"); if (reply == true) { window.location.href="https://netlab.evidence-hub.net//knowledgetrees.php?id="+nodetofocusid; } } else { //open the required debates if (allClosed) { for (var i=0; i < uniQArrayToOpen.length; i++) { var nextuniq = uniQArrayToOpen[i]; if ($("treedesc"+nextuniq)) { toggleDebate("treedesc"+nextuniq, nextuniq); } } } var pos = getPosition(foundCell); window.scroll(0,pos.y-100); } } else { var arrowsArray = document.getElementsByName('explorearrow'); var countarrow = arrowsArray.length; if (countarrow <= 1) { nextarrow = arrowsArray[0]; var uniQ = nextarrow.uniqueid; var countnow = parseInt($('toptreecount'+uniQ).innerHTML); if (countnow < 10 || countarrow == 1) { toggleDebate("treedesc"+uniQ, uniQ); } } } } /** * does the chat tree contain anything? * If not, hide the arrows. */ function checkChatHasNode(nodetofocusid) { if (CHATNODEID != "") { // Are all the chats closed? // If so we want to open the one the chat node is in. var uniQArray = new Array(); var uniQArrayToOpen = new Array(); var allClosed = true; var arrowsArray = document.getElementsByName('explorechatarrow'); var nextarrow = null; var countarrow = arrowsArray.length; for (var i=0; i < countarrow; i++) { nextarrow = arrowsArray[i]; var uniQ = nextarrow.uniqueid; uniQArray.push(uniQ); if ($("chat"+uniQ) && $("chat"+uniQ).style.display == 'block') { allClosed = false; } var countnow = parseInt($('topchattreecount'+uniQ).innerHTML); if (countnow == 0) { nextarrow.style.display = "none"; } else { nextarrow.style.display = "block"; } } //alert(allClosed); var cellsArray = document.getElementsByName('textChatDivCell'); var count = cellsArray.length; var next = null; var found = false; var foundCell = null; for (var i=0; i < count; i++) { next = cellsArray[i]; if (next.nodeid == CHATNODEID) { if (allClosed) { for (var j=0; j 0 && countnow < 15) { toggleChat("chat"+uniQ, uniQ, true); } } } } } } function highlightDebateAddArea() { //$('debateadddiv').style.border = '2px solid yellow'; $('debateadddiv').style.background = '#F9FABC'; var fade=setTimeout("new function(){/*$('debateadddiv').style.border = '2px solid #D3D3D3';*/$('debateadddiv').style.background = 'white';}",1500); } /** * Send a spam alert to the server. */ function reportNodeSpamAlert(obj, nodetype, node) { var name = node.name; if (RESOURCE_TYPES_STR.indexOf(nodetype) != -1) { name = node.description; } var ans = confirm("Sei sicuro di voler segnalare\n\n"+name+"\n\ncome Spam / Inappropriato?\n\n"); if (ans){ var reqUrl = URL_ROOT + "spamalert.php?type=idea&id="+node.nodeid; new Ajax.Request(reqUrl, { method:'get', onError: function(error) { alert(error); }, onSuccess: function(transport){ node.status = 1; obj.title = 'Questo è stato segnalato come spam / contenuto non appropriato'; if (obj.alt) { obj.alt = 'segnalato come spam'; obj.src= 'https://netlab.evidence-hub.net/images/spam-reported.png'; obj.style.cursor = 'auto'; Event.stopObserving(obj, 'click'); } else { obj.innerHTML = 'segnalato come spam'; } obj.className = ""; fadeMessage(name+"

è stato segnalato come spam"); } }); } } /** * Create a span menu option to report spam / show spam reported / or say login to report. * * @param node the node to report */ function createSpamMenuOption(node, nodetype) { var spaming = new Element("span", {'class':'active d-block'} ); if (node.status == 1) { spaming.insert("segnalato come spam"); spaming.title = 'Questo è stato segnalato come spam / contenuto non appropriato'; spaming.className = ""; } else if (node.status == 0) { if (USER != "") { spaming.insert("Segnala come Spam"); spaming.title = 'Segnala come Spam / contenuto non appropriato'; Event.observe(spaming,'click',function (){ reportNodeSpamAlert(this, nodetype, node); } ); } else { spaming.insert("Accedi per segnalare come spam"); spaming.title = 'Accedi per segnalare come spam'; Event.observe(spaming,'click',function (){ $('loginsubmit').click(); return true; } ); } } return spaming; } function getNodeIconElement(node) { var role = node.role[0].role; if (node.imagethumbnail != null && node.imagethumbnail != "") { var originalurl = ""; if(node.urls && node.urls.length > 0){ for (var i=0 ; i < node.urls.length; i++){ var urlid = node.urls[i].url.urlid; if (urlid == node.imageurlid) { originalurl = node.urls[i].url.url; break; } } } if (originalurl == "") { originalurl = node.imagethumbnail; } var iconlink = new Element('a', { 'href':originalurl, 'title':"Visualizza l'immagine originale", 'target': '_blank' }); var nodeicon = new Element('img',{'alt':"Visualizza l'immagine originale", 'class':'nodeIcon', 'src': URL_ROOT + node.imagethumbnail}); iconlink.insert(nodeicon); return iconlink; } else if (role.image != null && role.image != "") { var alttext = getNodeTitleAntecedence(role.name, false); var nodeicon = new Element('img',{'alt':alttext, 'class':'nodeIcon','src': URL_ROOT + role.image}); return nodeicon; } return null; } /** * Create a menu spacer line */ function createMenuSpacer() { var spacer = new Element("hr", {'class':'hrline-slim', 'style':'margin-bottom:10px;width:100%'} ); return spacer; } /** * Create an edit menu option * * @param toolbarDiv the div to add the menu optioj to * @param node the node to connect * @param role the node type of the node * @param parentrefreshhandler the name of the function that handles the refresh after edit. * @param user the user wanting to edit this item. */ function createEditMenuOption(toolbarDiv, node, role, parentrefreshhandler, user) { // IF OWNER ADD EDIT / DEL ACTIONS if (USER == user.userid) { if (role.name == 'Issue') { var editButton = new Element("span", {'class':'active d-block', 'title':'Modifica questa SFIDA'} ); editButton.insert("Modifica"); Event.observe(editButton,'click',function (){loadDialog('editissue',URL_ROOT+"ui/popups/issueedit.php?handler="+parentrefreshhandler+"&nodeid="+node.nodeid, 750,500)}); toolbarDiv.appendChild(editButton); } else if (role.name == 'Challenge') { var editButton = new Element("span", {'class':'active d-block', 'title':'Modifica questa -'} ); editButton.insert("Modifica"); Event.observe(editButton,'click',function (){loadDialog('editchallenge',URL_ROOT+"ui/popups/challengeedit.php?handler="+parentrefreshhandler+"&nodeid="+node.nodeid, 750,500)}); toolbarDiv.appendChild(editButton); } else if (role.name == 'Claim') { var editButton = new Element("span", {'class':'active d-block', 'title':'Modifica questa -'} ); editButton.insert("Modifica"); Event.observe(editButton,'click',function (){loadDialog('editclaim',URL_ROOT+"ui/popups/claimedit.php?handler="+parentrefreshhandler+"&nodeid="+node.nodeid, 750,500)}); toolbarDiv.appendChild(editButton); } else if (role.name == 'Solution') { var editButton = new Element("span", {'class':'active d-block', 'title':'Modifica questa PROPOSTA'} ); editButton.insert("Modifica"); Event.observe(editButton,'click',function (){loadDialog('editsolution',URL_ROOT+"ui/popups/solutionedit.php?handler="+parentrefreshhandler+"&nodeid="+node.nodeid, 750,500)}); toolbarDiv.appendChild(editButton); } else if (role.name == 'Organization') { var editButton = new Element("span", {'class':'active d-block', 'title':'Modifica questo SOGGETTO O ORGANIZZAZIONE'} ); editButton.insert("Modifica"); Event.observe(editButton,'click',function (){loadDialog('editorg',URL_ROOT+"ui/popups/organizationedit.php?handler="+parentrefreshhandler+"&nodeid="+node.nodeid, 750,500)}); toolbarDiv.appendChild(editButton); } else if (role.name == 'Project') { var editButton = new Element("span", {'class':'active d-block', 'title':'Modifica questo PROGETTO, SERVIZIO O INIZIATIVA'} ); editButton.insert("Modifica"); Event.observe(editButton,'click',function (){loadDialog('editorg',URL_ROOT+"ui/popups/organizationedit.php?handler="+parentrefreshhandler+"&nodeid="+node.nodeid, 750,500)}); toolbarDiv.appendChild(editButton); } else if (EVIDENCE_TYPES_STR.indexOf(role.name) != -1) { //EVIDENCE var editButton = new Element("span", {'class':'active d-block', 'title':'Modifica questa ARGOMENTAZIONE'} ); editButton.insert("Modifica"); Event.observe(editButton,'click',function (){loadDialog('editevidence',URL_ROOT+"ui/popups/evidenceedit.php?handler="+parentrefreshhandler+"&nodetypename="+role.name+"&nodeid="+node.nodeid, 750,500)}); toolbarDiv.appendChild(editButton); } else if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { //RESOURCES var editButton = new Element("span", {'class':'active d-block', 'title':'Modifica questa FONTE'} ); editButton.insert("Modifica"); Event.observe(editButton,'click',function (){loadDialog('editresource',URL_ROOT+"ui/popups/resourceedit.php?handler="+parentrefreshhandler+"&nodetypename="+role.name+"&nodeid="+node.nodeid, 750,500)}); toolbarDiv.appendChild(editButton); } } } /** * Create a explore menu option * * @param toolbarDiv the div to add the menu optioj to * @param node the node to connect * @param role the node type of the node * @param uniQ the unique id added to interface elements for this node option. */ function createExploreMenuOption(toolbarDiv, node, role, uniQ) { var exploreButton = new Element("div", {'class':'active','style':'font-style:italic;margin-bottom:5px;'} ); exploreButton.insert("Esplora >>"); toolbarDiv.appendChild(exploreButton); var exploresubmenu = createExploreSubMenu(node, role, uniQ) exploreButton.appendChild(exploresubmenu); Event.observe(exploreButton,'mouseover',function (event){ exploresubmenu.style.display = 'block'; }); } /** * Create a explore sub menu options. * * @param node the node to connect * @param role the node type of the node * @param uniQ the unique id added to interface elements for this node option. */ function createExploreSubMenu(node, role, uniQ) { var exploresubmenu = new Element("div", {'id':'exploresubmenu'+uniQ, 'style':'font-style:normal;clear:both;display:none;padding:5px;padding-top:2px;margin-left:30px;'} ); var exploreButton = new Element("a", {'class':'d-block','title':"Visualizza le informazioni su questo elemento."} ); exploreButton.insert("Dettagli completi"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } exploresubmenu.appendChild(exploreButton); if (role.name != 'Theme' && role.name != 'Organization' && role.name != 'Project') { var exploreButton = new Element("a", {'class':'d-block','title':"Vai ed esplora gli alberi della conoscenza su questo elemento"} ); exploreButton.insert("alberi della conoscenza"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/knowledgetrees.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/knowledgetrees.php?id="+node.nodeid; } exploresubmenu.appendChild(exploreButton); } var exploreButton = new Element("a", {'class':'d-block','title':"Vedi tutte le CHAT su questo elemento"} ); exploreButton.insert("CHAT"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/chats.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/chats.php?id="+node.nodeid; } exploresubmenu.appendChild(exploreButton); exploreButton = new Element("a", {'class':'d-block','title':"Vedi il grafico di rete su questo elemento (utilizza un'applet Java)"} ); exploreButton.insert("Grafico di rete"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/networkgraph.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/networkgraph.php?id="+node.nodeid; } exploresubmenu.appendChild(exploreButton); if (RESOURCE_TYPES_STR.indexOf(role.name) != -1) { var link = new Element("a", {'href':node.name,'title':"Apri la pagina associata in una tab", 'target':'_blank', 'style':'margin-bottom:5px;clear:both;float:left;'} ); link.insert("Vai alla pagina web"); exploresubmenu.insert(link); } return exploresubmenu; } /** * Create a 'connect To' menu option. * * @param toolbarDiv the div to add the menu optioj to * @param node the node to connect * @param role the node type of the node * @param uniQ the unique id added to interface elements for this node option. */ function createConnectionMenuOption(toolbarDiv, node, role, uniQ) { if (USER != "") { var connectButton = new Element("div", {'class':'active','style':'font-style:italic;margin-bottom:5px;'} ); connectButton.insert("Aggiungi >>"); toolbarDiv.appendChild(connectButton); var connectionsubmenu = createConnectionSubMenu(node, role, uniQ) connectButton.appendChild(connectionsubmenu); Event.observe(connectButton,'mouseover',function (event){ connectionsubmenu.style.display = 'block'; }); } else { var connectButton = new Element("div", {'class':'active d-block'} ); connectButton.insert("Accedi per aggiungere"); connectButton.title = 'Devi accedere per poter aggiungere elementi a questo'; Event.observe(connectButton,'click',function (){ $('loginsubmit').click(); return true; } ); toolbarDiv.appendChild(connectButton); } } /** * Create a connection sub menu options. * * @param node the node to connect * @param role the node type of the node * @param uniQ the unique id added to interface elements for this node option. */ function createConnectionSubMenu(node, role, uniQ) { var connectionsubmenu = new Element("div", {'id':'connectionsubmenu'+uniQ, 'style':'font-style:normal;clear:both;display:none;padding:5px;padding-top:2px;margin-left:30px;'} ); var type = role.name; if (type == "Challenge") { var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("SFIDE"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/knowledgetrees.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/knowledgetrees.php?id="+node.nodeid; } connectionsubmenu.appendChild(exploreButton); var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("SOGGETTI O ORGANIZZAZIONI"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("PROGETTI, SERVIZI O INIZIATIVE"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); } else if (type == "Issue") { if (hasChallenge) { var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("-"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.appendChild(exploreButton); } if (hasSolution) { var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("PROPOSTE"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/knowledgetrees.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/knowledgetrees.php?id="+node.nodeid; } connectionsubmenu.appendChild(exploreButton); } if (hasClaim) { var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("-"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/knowledgetrees.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/knowledgetrees.php?id="+node.nodeid; } connectionsubmenu.appendChild(exploreButton); } var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("SOGGETTI O ORGANIZZAZIONI"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("PROGETTI, SERVIZI O INIZIATIVE"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); } else if (type == "Solution" || type == "Claim") { var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("SFIDE"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.appendChild(exploreButton); var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("ARGOMENTAZIONI"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/knowledgetrees.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/knowledgetrees.php?id="+node.nodeid; } connectionsubmenu.appendChild(exploreButton); var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("SOGGETTI O ORGANIZZAZIONI"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("PROGETTI, SERVIZI O INIZIATIVE"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); } else if (EVIDENCE_TYPES_STR.indexOf(type) != -1) { if (hasSolution) { var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("PROPOSTE"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.appendChild(exploreButton); } if (hasClaim) { var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("-"); if (node.searchid && node.searchid != "") { exploreButton.href= "explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "explore.php?id="+node.nodeid; } connectionsubmenu.appendChild(exploreButton); } var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("FONTI"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/knowledgetrees.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/knowledgetrees.php?id="+node.nodeid; } connectionsubmenu.appendChild(exploreButton); var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("SOGGETTI O ORGANIZZAZIONI"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("PROGETTI, SERVIZI O INIZIATIVE"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); } else if (RESOURCE_TYPES_STR.indexOf(type) != -1) { var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("ARGOMENTAZIONI"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.appendChild(exploreButton); var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("SOGGETTI O ORGANIZZAZIONI"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("PROGETTI, SERVIZI O INIZIATIVE"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); } else if (type == "Organization" || type == "Project") { var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("Partner"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); if (type == "Organization") { exploreButton.insert("PROGETTI, SERVIZI O INIZIATIVE gestito"); } else { exploreButton.insert("SOGGETTI O ORGANIZZAZIONI che gestisce"); } if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); if (hasChallenge) { var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("-"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); } var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("SFIDE"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); if (hasSolution) { var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("PROPOSTE"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); } if (hasClaim) { var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("-"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); } var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("ARGOMENTAZIONI"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); var exploreButton = new Element("a", {'style':'margin-bottom:5px; display: block;'} ); exploreButton.insert("FONTI"); if (node.searchid && node.searchid != "") { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid+"&sid="+node.searchid; } else { exploreButton.href= "https://netlab.evidence-hub.net/explore.php?id="+node.nodeid; } connectionsubmenu.insert(exploreButton); } return connectionsubmenu; } function closeSubmenus(uniQ) { if ($('connectionsubmenu'+uniQ)) { $('connectionsubmenu'+uniQ).style.display = 'none'; } if ($('exploresubmenu'+uniQ)) { $('exploresubmenu'+uniQ).style.display = 'none'; } } /*****************/ /** FOR DEBATES **/ /*****************/ /** * Render the given node. * @param width the width of the node box (e.g. 200px or 20%) * @param height the height of the node box (e.g. 200px or 20%) * @param node the node object do render * @param uniQ is a unique id element prepended to the nodeid to form an overall unique id within the currently visible site elements * @param role the role object for this node. Defaults to the node role. * @param includeUser whether to include the user image and link. Defaults to true. * @param type defaults to 'active', but can be 'inactive' so nothing is clickable. * or a specialized type for some of the popups * @param includeconnectedness should the connectedness count be included - defaults to false. * @param includevoting should the voting buttons be included - defaults to true. * @param cropdesc whether to crop the description text. * @param mainheading whether or not the title is a main heading instead of a link. * @param includestats whether or not to include the stats list below this Debate. */ function renderIssueNode(width, height, node, uniQ, role, includeUser, type, includeconnectedness, includevoting, cropdesc, mainheading, includestats){ var iDiv = new Element("div", {'class':'mainnodewrapper'}); let key = "Node"+node.nodeid; let thistype = 'issue'; let color = 'issueback'; var creationdate = node.creationdate; var positivevotes = node.positivevotes; var negativevotes = node.negativevotes; var userimage = node.users[0].thumb; var nodeid = node.nodeid; var name = node.name; var nodetype = node.role.name; var title=getNodeTitleAntecedence(nodetype); var username = node.users[0].name; var userid = node.users[0].userid; var userfollow = node.userfollow; var otheruserconnections = node.otheruserconnections; var icon = URL_ROOT+node.role.image; var widgetDiv = new Element("div", {'class':'widgetdivnode', 'id':key+'div'}); var widgetBody = new Element("div", {'class':'widgetnodebody', 'id':key+'body'}); var widgetHeader = new Element("div", {'id':key+'header', 'class':'widgetheadernode'}); widgetDiv.insert(widgetHeader); var widgetHeaderLabel = new Element("label", {'class':'linearnodeheaderlabel', 'id':'widgetheaderlabel'}); widgetHeaderLabel.insert(""+title+""+name); let exploreheaderlabel = $('exploreheaderlabel'); if (icon) { var iconObj = new Element('img',{'style':'text-align: middle;margin-right: 5px; width:24px; ', 'alt':type+' Icona', 'src':icon}); iconObj.align='left'; exploreheaderlabel.appendChild(iconObj); } exploreheaderlabel.appendChild(widgetHeaderLabel); var toolbar = new Element("div", {'class':'nodewidgettoolbar', 'style':'margin-bottom:5px;'}); buildExploreToolbar(toolbar, title+name, thistype, node, 'debate'); widgetHeader.insert(toolbar); var spacer = new Element("hr", {'class':'widgetnodespacer'}); widgetBody.appendChild(spacer); var innerwidgetBody = new Element("div", {'id':key+'innerbody', 'class':'widgetnodeinnerbody'}); var userbar = new Element("div", {'class':'debate-user'} ); var detailbar = new Element("div", {'class':'issue-details'} ); detailbar.insert("

"+title+name+"

"); innerwidgetBody.insert(detailbar); var iuDiv = new Element("div", {'class':'idea-user2'}); var userimageThumb = new Element('img',{'alt':username, 'title': username, 'style':'padding-right:5px;','src': userimage}); var imagelink = new Element('a', {'href':URL_ROOT+"user.php?userid="+userid, 'title':username}); imagelink.insert(userimageThumb); iuDiv.update(imagelink); detailbar.appendChild(iuDiv); var iuDiv = new Element("div", {'class':'issue-user-details'}); var cDate = new Date(creationdate*1000); iuDiv.insert('

aggiunto il:'+ cDate.format(DATE_FORMAT) + '

'); iuDiv.insert('

aggiunto da:'+username+'

'); if (node.imageurlid && node.imageurlid != "") { var iuDiv = new Element("div", {'style':'float:left'}); var nodeimage = new Element("img", {'id':key+'nodeimg', 'src':node.imageurlid}); iuDiv.insert(nodeimage); iuDiv.insert(iuDiv); } if (node.startdatetime && node.startdatetime != "" && node.role.name == 'Project') { var sDate = new Date(node.startdatetime*1000); iuDiv.insert('

Data di inizio:'+sDate.format(DATE_FORMAT_PROJECT)+'

'); if (node.enddatetime && node.enddatetime != "") { var eDate = new Date(node.enddatetime*1000); iuDiv.insert('

Data di fine:'+eDate.format(DATE_FORMAT_PROJECT)+'

'); } } if (node.identifier && node.identifier != "" && node.role.name == 'Publication') { iuDiv.insert('

DOI:'+node.identifier+'

'); } if (node.locationaddress1 && node.locationaddress1 != "") { iuDiv.insert('Indirizzo 1: '+node.locationaddress1+'
'); } if (node.locationaddress2 && node.locationaddress2 != "") { iuDiv.insert('Indirizzo 2: '+node.locationaddress2+'
'); } if (node.location && node.location != "") { iuDiv.insert('Città: '+node.location+'
'); } if (node.locationpostcode && node.locationpostcode != "") { iuDiv.insert('CAP: '+node.locationpostcode+'
'); } if (node.country && node.country != "") { iuDiv.insert('Paese: '+node.country+'
'); } //tags if(node.tags && node.tags.length > 0){ var grpStr = "

Tags: "; for (var i=0 ; i < node.tags.length; i++){ var tag = null; if (node.tags[i].name) { tag = node.tags[i]; } else { tag = node.tags[i].tag } grpStr += ''+tag.name+''; if (i < node.tags.length-1) { grpStr += ','; } } grpStr += '

'; iuDiv.insert(grpStr); } if (thistype != 'web' && thistype != "theme") { var commentdiv = new Element("div", { 'id':'commentdiv', 'name':'commentdiv', 'class':'commentdiv d-block'}); iuDiv.insert(commentdiv); childcommentload(commentdiv, node.nodeid,"built from", COMMENT_TYPES+",Idea", 'commentchild', ''); } if (node.description && node.description != "" && thistype != 'web') { var dStr = '
Descrizione '; dStr += node.description; dStr += '
'; iuDiv.insert(dStr); } detailbar.insert(iuDiv); innerwidgetBody.appendChild(detailbar); widgetBody.insert(innerwidgetBody); widgetDiv.insert(widgetBody); iDiv.insert(widgetDiv); return iDiv; } /** * Render a list of nodes */ function displayIdeaList(objDiv,nodes,start,includeUser,uniqueid,type,status){ if (includeUser == undefined) { includeUser = true; } if (type == undefined) { type = 'active'; } if (uniqueid == undefined) { uniqueid = 'idea-list'; } if (status == undefined) { status = 0; } var myuniqueid = ""; var lOL = new Element("ol", {'start':start, 'class':'idea-list-ol'}); for(var i=0; i < nodes.length; i++){ var node = nodes[i].cnode; if(node){ myuniqueid = uniqueid+i+start; var connection = node.connection; if (connection) { myuniqueid = node.nodeid + connection.connid+myuniqueid; } else { myuniqueid = node.nodeid + myuniqueid; } var iUL = new Element("li", {'id':node.nodeid, 'class':'idea-list-li'}); lOL.insert(iUL); var blobDiv = new Element("div", {'id':'ideablobdiv'+myuniqueid, 'class':'idea-blob-list'}); try { var blobNode = renderIdeaList(node, myuniqueid, node.role[0].role,includeUser,type,status, i); blobDiv.insert(blobNode); iUL.insert(blobDiv); } catch(err) { console.log(err); } } } objDiv.insert(lOL); } /** * Render the given node from an associated idea connection. * @param node the node object do render * @param uniQ is a unique id element prepended to the nodeid to form an overall unique id within the currently visible site elements * @param role the role object for this node * @param includeUser whether to include the user image and link * @param type defaults to 'active', but can be 'inactive' so nothing is clickable * or a specialized type for some of the popups * @param status, active nodes or retired nodes. (active = 0, spam = 1, retired = 2. */ function renderIdeaList(node, uniQ, role, includeUser, type, status, i){ if (i === undefined) { i = -1; } if (type === undefined) { type = "active"; } if(role === undefined){ role = node.role[0].role; } if (status == undefined) { status = 0; } var nodeuser = null; // JSON structure different if coming from popup where json_encode used. if (node.users[0].userid) { nodeuser = node.users[0]; } else { nodeuser = node.users[0].user; } var user = null; var connection = node.connection; if (connection) { user = connection.users[0].user; } var breakout = ""; //needs to check if embedded as a snippet if(top.location != self.location){ breakout = " target='_blank'"; } var focalrole = ""; if (connection) { var fN = connection.from[0].cnode; var tN = connection.to[0].cnode; if (node.nodeid == fN.nodeid) { focalrole = tN.role[0].role; } else { focalrole = fN.role[0].role; } } var itDiv = new Element("div", {'class':'idea-title boxshadowsquaredarker'}); var nodeTable = new Element('table'); nodeTable.className = "toConnectionsTable table"; itDiv.insert(nodeTable); var row = nodeTable.insertRow(-1); row.setAttribute('name','idearowitem'); row.setAttribute('id','idearowitem'+uniQ); row.setAttribute('uniQ',uniQ); row.setAttribute('nodeid',node.nodeid); if (node.nodeid == NODE_ARGS['selectednodeid']) { //alert("hightlighting!!"); //row.className = "selectedback"; var options = new Array(); options['startcolor'] = '#FAFB7D'; options['endcolor'] = '#FDFDE3'; options['restorecolor'] = 'transparent'; options['duration'] = 5; highlightElement(row, options); } else { row.className = "transparent"; } //row.style.borderBottom = "3px solid #4E725F"; //update stats if (node.parentid) { if (connection) { var votestats = $('debatestatsvotes'+node.parentid); if (votestats) { votestats.votes[node.nodeid] = parseInt(parseInt(connection.positivevotes)+parseInt(connection.negativevotes)); } } } if (includeUser == true) { var userCell = row.insertCell(-1); userCell.setAttribute('style','width:40px;'); userCell.setAttribute('style','max-width:40px;'); userCell.vAlign="top"; userCell.align="left"; userCell.width="40"; if (connection) { var cDate = new Date(connection.creationdate*1000); var dStr = "aggiunto da: "+nodeuser.name+ " on "+cDate.format(DATE_FORMAT) userCell.title = dStr; } // Add right side with user image and date below var iuDiv = new Element("div", { 'id':'editformuserdividea'+uniQ, 'class':'idea-user2', 'style':'float:left;' }); var userimageThumb = new Element('img',{'alt':nodeuser.name, 'style':'padding-left:5px;padding-top:5px;', 'src': nodeuser.thumb}); if (type == "active") { var imagelink = new Element('a', { 'href':URL_ROOT+"user.php?userid="+nodeuser.userid }); if (breakout != "") { imagelink.target = "_blank"; } imagelink.insert(userimageThumb); iuDiv.update(imagelink); } else { iuDiv.insert(userimageThumb) } userCell.insert(iuDiv); } var textCell = row.insertCell(-1); //textCell.setAttribute('style','width:85%'); textCell.vAlign="top"; textCell.align="left"; textCell.setAttribute('width','95%'); var textDiv = new Element("div", { 'id':'textdividea'+uniQ, 'class':'textdividea' }); textCell.insert(textDiv); var title = node.name; var textspan = new Element("a", { 'id':'desctoggle'+uniQ, 'class':'idearowtitle debatetext', 'href': URL_ROOT+"explore.php?id="+node.nodeid, 'title':'Visualizza le informazioni su questo elemento.', }); textspan.insert(title); textspan.datadisabled = false; textDiv.insert(textspan); /* Event.observe(textspan,'click',function (){ if (textspan.datadisabled == false) { ideatoggle('arguments'+uniQ, uniQ, node.nodeid, 'arguments', role.name); } }); */ if (USER == nodeuser.userid && type == 'active') { var editbutton = new Element("img", { 'class':'imagebuttonfaded', 'src':'https://netlab.evidence-hub.net/images/edit.png', 'title':'Modifica questa PROPOSTA', }); textDiv.insert(editbutton); Event.observe(editbutton,'click',function (){ editInline(uniQ, 'idea'); }); if (!node.otheruserconnections || node.otheruserconnections == 0) { var deletename = node.name; var del = new Element('img',{'class':'delete-solution','alt':'Cancella', 'src': 'https://netlab.evidence-hub.net/images/delete.png'}); Event.observe(del,'click',function (){ var callback = function () { refreshSolutions(); } deleteNode(node.nodeid, deletename, role.name, callback); }); textDiv.insert(del); } else { var del = new Element('img',{'class':'delete-solution', 'alt':'Impossibile cancellare', 'title': 'Non puoi cancellare questo elemento. Qualcuno ci si è collegato', 'src': 'https://netlab.evidence-hub.net/images/delete-off.png'}); textDiv.insert(del); } } if(node.description || node.hasdesc){ var dStr = '
'; if (node.description && node.description != "") { dStr += node.description; } dStr += '
'; textDiv.insert(dStr); } var argumentLink = new Element("span", { 'name':'ideaargumentlink', 'id':'ideaargumentlink'+uniQ, 'class':'active ideaargumentlink', 'style':'clear:both;float:left;display:block;;margin-top:7px;font-weight:bold;', 'title':'Visualizza e aggiungi una ARGOMENTAZIONI su questa PROPOSTA', }); argumentLink.nodeid = node.nodeid; argumentLink.datadisabled = false; Event.observe(argumentLink,'click',function (){ if (argumentLink.datadisabled == false) { ideatoggle('arguments'+uniQ, uniQ, node.nodeid, 'arguments', role.name); } }); if (USER == '') { argumentLink.insert('add'); } argumentLink.insert('ARGOMENTAZIONI ('); var argumentCount = new Element("span", { 'id':'ideaargumentcount'+node.nodeid, }); //alert(node.childrencount); argumentCount.insert(node.childrencount); argumentLink.insert(argumentCount); argumentLink.insert(')'); textDiv.insert(argumentLink); if (USER == '') { var signinlink = new Element("a", { 'href':'https://netlab.evidence-hub.net/ui/pages/login.php?ref='+NODE_ARGS["ref"], 'title':'Aggiungi un ARGOMENTO a questa PROPOSTA', 'class':'lightgreenbutton', 'style':'float:left;margin-left:30px;;margin-top:2px;', }); signinlink.insert('Contribuisci'); textDiv.insert(signinlink); } /** ADD THE EDIT FORM FOR THE IDEA **/ if (USER == user.userid && type == 'active') { var editDiv = new Element("fieldset", { 'name':'editformdividea', 'id':'editformdividea'+uniQ, 'class':'editformdividea', 'style':'clear:both;float:left;display:none;' }); var legend = new Element("legend", {}); var legendtitle = new Element("h2", {'style':'margin-bottom:0px;',}); legendtitle.insert('Modifica'); legend.insert(legendtitle); editDiv.insert(legend); var editideaid = new Element("input", { 'name':'editideaid', 'id':'editideaid'+uniQ, 'type':'hidden', 'value':node.nodeid, }); editDiv.insert(editideaid); var editnodetypeid = new Element("input", { 'name':'editideanodetypeid', 'id':'editideanodetypeid'+uniQ, 'type':'hidden', 'value':role.roleid, }); editDiv.insert(editnodetypeid); var rowDiv1 = new Element("div", { 'class':'mb-3 row', }); editDiv.insert(rowDiv1); var editideaname = new Element("input", { 'class':'form-control', 'placeholder':'Titolo PROPOSTA...', 'id':'editideaname'+uniQ, 'name':'editideaname', 'value':node.name, }); rowDiv1.insert(editideaname); var rowDiv2 = new Element("div", { 'class':'mb-3 row', }); editDiv.insert(rowDiv2); var editideadesc = new Element("textarea", { 'rows':'3', 'class':'form-control', 'placeholder':'Descrizione PROPOSTA...', 'id':'editideadesc'+uniQ, 'name':'editideadesc', }); editideadesc.insert(node.description); rowDiv2.insert(editideadesc); var rowDiv4 = new Element("div", { 'class':'mb-3 row', 'id':'linksdivedit'+uniQ, 'style':'margin-bottom:0px;padding-bottom:0px;' }); rowDiv4.linkcount = 0; editDiv.insert(rowDiv4); var rowDiv3 = new Element("div", { 'class':'mb-3 row', }); editDiv.insert(rowDiv3); var editideasave = new Element("input", { 'type':'button', 'class':'submitright', 'id':'editidea', 'name':'editidea', 'value':'Salva', }); Event.observe(editideasave,'click',function (){ editIdeaNode(node, uniQ, 'idea', type, includeUser, status); }); rowDiv3.insert(editideasave); var editideacancel = new Element("input", { 'type':'button', 'class':'submitright', 'id':'cancelidea', 'name':'editidea', 'value':'Cancella', 'style':'margin-right:10px;', }); Event.observe(editideacancel,'click',function (){ cancelEditAction(uniQ, 'idea'); }); rowDiv3.insert(editideacancel); textCell.insert(editDiv); } /** PRO AND CON LISTS **/ var kidsTable = new Element('table', { 'name':'ideaforagainstdiv', 'id':'ideaforagainstdiv'+uniQ, 'nodeid':node.nodeid, 'id':'arguments'+uniQ, 'class':'ideaforagainsttable', 'style':'display:none;' }); itDiv.insert(kidsTable); //kidsTable.border = "1"; var row = kidsTable.insertRow(-1); row.width="100%"; var forCell = row.insertCell(-1); forCell.vAlign="top"; forCell.align="left"; var forHeading = new Element('h3'); forHeading.style.marginBottom = "2px"; forHeading.style.marginTop = "5px"; forHeading.style.color = "green"; forHeading.style.fontWeight = "normal"; forHeading.insert('ARGOMENTAZIONI a favore ('); var forCount = new Element('span', {'id':'count-support'+uniQ}); forCount.insert('0'); forHeading.insert(forCount); forHeading.insert(')'); forCell.insert(forHeading); var forKidsDiv = new Element('div', {'id':'supportkidsdiv'+uniQ, 'class':'supportkidsdiv'}); forKidsDiv.style.borderTop = "1px solid #D8D8D8"; forCell.insert(forKidsDiv); if (type == 'active' && USER != '') { var addProDiv = new Element("div", { 'name':'addformdivpro', 'id':'addformdivpro'+uniQ, 'class':'addformdivpro' }); addProDiv.insert('

Aggiungi un ARGOMENTAZIONE di supporto

'); var rowDiv0 = new Element("div", { 'class':'mb-3 row', }); addProDiv.insert(rowDiv0); var addpronevtype = new Element("select", { 'class':'form-select', 'id':'pronodetypename'+uniQ, 'name':'pronodetypename' }); rowDiv0.insert(addpronevtype); var addpronevtypeelement = null; addpronevtypeelement = new Element("option", { 'value':'Argument', }); addpronevtypeelement.insert("AFFERMAZIONE"); addpronevtype.insert(addpronevtypeelement); var rowDiv1 = new Element("div", { 'class':'mb-3 row', }); addProDiv.insert(rowDiv1); var addproname = new Element("input", { 'class':'form-control', 'placeholder':'Titolo PRO...', 'id':'addproname'+uniQ, 'name':'addproname', 'value':'', }); rowDiv1.insert(addproname); var rowDiv2 = new Element("div", { 'class':'mb-3 row', }); addProDiv.insert(rowDiv2); var addprodesc = new Element("textarea", { 'rows':'3', 'class':'form-control', 'placeholder':'Descrizione PRO...', 'id':'addprodesc'+uniQ, 'name':'addprodesc', }); rowDiv2.insert(addprodesc); var rowDiv3 = new Element("div", { 'id':'linksdivpro'+uniQ, 'style':'margin-bottom:0px;padding-bottom:0px;' }); rowDiv3.linkcount = 0; addProDiv.insert(rowDiv3); let rowDiv4 = new Element("div", {'id' : 'row4resourceareapro'+uniQ, 'class': 'formrowsm', 'style':'margin:0px;padding:0px;'}); addProDiv.insert(rowDiv4); let resourcelabel = new Element("label", {'for':'resourceformlabelpro'+uniQ, 'style': 'font-weight:bold'}); resourcelabel.insert("FONTI:"); rowDiv4.insert(resourcelabel); let rowDiv5 = new Element("div", { 'class':'mb-3 row', }); addProDiv.insert(rowDiv5); let resourceform = new Element("div", {'id' : 'resourceformpro'+uniQ}); resourceform.noResources = 1; rowDiv5.insert(resourceform); const newitem = getArgumentResource('resourceformpro'+uniQ, 'pro'+uniQ, 0); resourceform.insert(newitem); let rowDiv6 = new Element("div", { 'class':'mb-3 row', }); addProDiv.insert(rowDiv6); let addURL = new Element("a", { 'class':'hgrinput', 'href':'javascript:void(0)', 'style':'margin-top:0px;padding-top:0px;' }); addURL.insert("Aggiungi un'altra FONTE"); Event.observe(addURL,'click',function (){ addArgumentResource('resourceformpro'+uniQ, 'pro'+uniQ); }); rowDiv6.insert(addURL); let rowDiv7 = new Element("div", { 'class':'mb-3 row', }); addProDiv.insert(rowDiv7); var addprosave = new Element("input", { 'type':'button', 'class':'btn btn-primary', 'id':'addprosave'+uniQ, 'name':'addprosave', 'value':"Inoltra", }); Event.observe(addprosave,'click',function (){ // get type from selection in form const evtype = $('connodetypename'+uniQ).value; addArgumentNode(node, uniQ, 'pro', evtype, type, includeUser, status); }); rowDiv7.insert(addprosave); forCell.insert(addProDiv); } var conCell = row.insertCell(-1); conCell.vAlign="top"; conCell.align="left"; var conHeading = new Element('h3'); conHeading.style.marginBottom = "2px"; conHeading.style.marginTop = "5px"; conHeading.style.color = "red"; conHeading.style.fontWeight = "normal"; conHeading.insert('ARGOMENTAZIONI contro ('); var conCount = new Element('span', {'id':'count-counter'+uniQ}); conCount.insert('0'); conHeading.insert(conCount); conHeading.insert(')'); conCell.insert(conHeading); var conKidsDiv = new Element('div', {'id':'counterkidsdiv'+uniQ, 'class':'counterkidsdiv'}); conKidsDiv.style.borderTop = "1px solid #D8D8D8"; conCell.insert(conKidsDiv); if (type == 'active' && USER) { var addConDiv = new Element("div", { 'name':'addformdivcon', 'id':'addformdivcon'+uniQ, 'class':'addformdivcon' }); addConDiv.insert('

Aggiungi un ARGOMENTAZIONEcontatore

'); var rowDiv0 = new Element("div", { 'class':'mb-3 row', }); addConDiv.insert(rowDiv0); var addconevtype = new Element("select", { 'class':'form-select', 'id':'connodetypename'+uniQ, 'name':'connodetypename' }); rowDiv0.insert(addconevtype); var addconnevtypeelement = null; addconnevtypeelement = new Element("option", { 'value':'Argument', }); addconnevtypeelement.insert("AFFERMAZIONE"); addconevtype.insert(addconnevtypeelement); var rowDiv1 = new Element("div", { 'class':'mb-3 row', }); addConDiv.insert(rowDiv1); var addconname = new Element("input", { 'class':'form-control', 'placeholder':'Titolo CONTRO ...', 'id':'addconname'+uniQ, 'name':'addconname', 'value':'', }); rowDiv1.insert(addconname); var rowDiv2 = new Element("div", { 'class':'mb-3 row', }); addConDiv.insert(rowDiv2); var addcondesc = new Element("textarea", { 'rows':'3', 'class':'form-control', 'placeholder':'Descrizione CONTRO...', 'id':'addcondesc'+uniQ, 'name':'addcondesc', }); rowDiv2.insert(addcondesc); let rowDiv4 = new Element("div", {'id' : 'row4resourceareacon'+uniQ, 'class': 'formrowsm', 'style':'margin:0px;padding:0px;'}); addConDiv.insert(rowDiv4); let resourcelabel = new Element("label", {'for':'resourceformlabelcon'+uniQ, 'style': 'font-weight:bold'}); resourcelabel.insert("FONTI:"); rowDiv4.insert(resourcelabel); let rowDiv5 = new Element("div", { 'class':'mb-3 row', }); addConDiv.insert(rowDiv5); let resourceform = new Element("div", {'id' : 'resourceformcon'+uniQ}); resourceform.noResources = 1; rowDiv5.insert(resourceform); const newitem = getArgumentResource('resourceformcon'+uniQ, 'con'+uniQ, 0); resourceform.insert(newitem); let rowDiv6 = new Element("div", { 'class':'mb-3 row', }); addConDiv.insert(rowDiv6); let addURL = new Element("a", { 'class':'hgrinput', 'href':'javascript:void(0)', 'style':'margin-top:0px;padding-top:0px;' }); addURL.insert("Aggiungi un'altra FONTE"); Event.observe(addURL,'click',function (){ //insertArgumentLink(uniQ, 'con'); addArgumentResource('resourceformcon'+uniQ, 'con'+uniQ); }); rowDiv6.insert(addURL); let rowDiv7 = new Element("div", { 'class':'mb-3 row', }); addConDiv.insert(rowDiv7); var addconsave = new Element("input", { 'type':'button', 'class':'btn btn-primary', 'id':'addconsave'+uniQ, 'name':'addconsave', 'value':"Inoltra", }); Event.observe(addconsave,'click',function (){ // get type from selection in form const evtype = $('connodetypename'+uniQ).value; addArgumentNode(node, uniQ, 'con', evtype, type, includeUser, status); }); rowDiv7.insert(addconsave); conCell.insert(addConDiv); } votebarDiv = "" loadChildArguments(forKidsDiv, node.nodeid, 'PRO', 'supports', "Pro", node.parentid, uniQ, 'count-support', type, status, votebarDiv); loadChildArguments(conKidsDiv, node.nodeid, 'CONTRO', 'challenges', "Con", node.parentid, uniQ, 'count-counter', type, status, votebarDiv); return itDiv; } /** * load child list, if required as per parameters. */ function loadChildArguments(section, nodeid, title, linktype, nodetype, focalnodeid, uniQ, countArea, type, status, votebar){ if (typeof section === "string") { section = $(section); } if (section.loaded == undefined) { section.loaded = 'false'; } if (status == undefined) { status = 0; } if(section.visible() && (!section.loaded || section.loaded == 'false')){ section.update(getLoading("Caricamente elementi")); var reqUrl = SERVICE_ROOT + "&method=getconnectionsbynode&style=long&sort=ASC&orderby=date&status="+status; reqUrl += "&filterlist="+encodeURIComponent(linktype)+"&filternodetypes="+nodetype+"&scope=all&start=0&max=-1&nodeid="+nodeid; //alert(reqUrl); new Ajax.Request(reqUrl, { method:'post', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); return; } var conns = json.connectionset[0].connections; section.update(""); if ($('ideaargumentcount'+nodeid)) { $('ideaargumentcount'+nodeid).update(0); } if ($(countArea+uniQ)) { $(countArea+uniQ).update(0); } //alert(conns.length); var nodes = new Array(); var otherend = ""; var positivevotes = 0; var negativevotes = 0; if (conns.length > 0) { for(var i=0; i < conns.length; i++){ var c = conns[i].connection; var fN = c.from[0].cnode; var tN = c.to[0].cnode; var fnRole = c.fromrole[0].role; var tnRole = c.torole[0].role; if (fN.nodeid == NODE_ARGS['selectednodeid']) { otherend = tN.nodeid; } if (tN.nodeid == NODE_ARGS['selectednodeid']) { otherend = fN.nodeid; } if ((fnRole.name == nodetype || nodetype.indexOf(fnRole.name) != -1) && fN.nodeid != nodeid) { if (fN.name != "") { var next = c.from[0]; next.cnode['parentid'] = nodeid; next.cnode['parentuniq'] = uniQ; next.cnode['connection'] = c; if (focalnodeid) { next.cnode['focalnodeid'] = focalnodeid; } nodes.push(next); } } else if ((tnRole.name == nodetype || nodetype.indexOf(tnRole.name) != -1) && tN.nodeid != nodeid) { if (tN.name != "") { var next = c.to[0]; next.cnode['parentid'] = nodeid; next.cnode['parentuniq'] = uniQ; next.cnode['connection'] = c; if (focalnodeid) { next.cnode['focalnodeid'] = focalnodeid; } nodes.push(next); } } } section.loaded = 'true'; } if ($(countArea+uniQ)) { $(countArea+uniQ).update(nodes.length); } var otherAmount = 0; if (nodetype == "Pro" && $('count-counter'+uniQ)) { otherAmount = parseInt($('count-counter'+uniQ).innerHTML); } else if ($('count-support'+uniQ)) { otherAmount = parseInt($('count-support'+uniQ).innerHTML); } if ($('ideaargumentcount'+nodeid)) { $('ideaargumentcount'+nodeid).update(otherAmount+nodes.length); } if (nodes.length > 0){ displayArgumentNodes(section, nodes, parseInt(0), true, uniQ, type, status, nodetype); // for View auditing on toggle if ($('arguments'+uniQ)) { if (nodetype == "Con") { $('arguments'+uniQ).connodes = nodes; } else { $('arguments'+uniQ).pronodes = nodes; } } } if (otherend != "") { openSelectedItem(otherend, 'arguments'); } } }); } } /** * Render a list of Pro and Con nodes */ async function displayArgumentNodes(objDiv,nodes,start,includeUser,uniqueid, type, status, nodetype){ if (includeUser == undefined) { includeUser = true; } if (type == undefined) { type = 'active'; } if (uniqueid == undefined) { uniqueid = 'widget-list'; } if (status == undefined) { status = 0; } var myuniqueid = ""; var lOL = new Element("ol", {'start':start, 'class':'idea-list-ol'}); for(var i=0; i < nodes.length; i++){ var node = nodes[i].cnode; //console.log(node); if(node){ myuniqueid = uniqueid+i+start; var connection = node.connection; if (connection) { myuniqueid = node.nodeid + connection.connid+myuniqueid; } else { myuniqueid = node.nodeid + myuniqueid; } var iUL = new Element("li", {'id':nodes[i].cnode.nodeid, 'class':'idea-list-li'}); if (nodes[i].cnode.nodeid == NODE_ARGS['selectednodeid']) { //row.className = "selectedback"; var options = new Array(); options['startcolor'] = '#FAFB7D'; options['endcolor'] = '#FDFDE3'; options['restorecolor'] = 'white'; options['duration'] = 5; highlightElement(iUL, options); } lOL.insert(iUL); var blobDiv = new Element("div", {'id':'argumentblobdiv'+myuniqueid, 'class':'idea-blob-list argumentblobdiv'}); var blobNode = await renderArgumentNode(nodes[i].cnode, myuniqueid, nodes[i].cnode.role[0].role, includeUser, type, status, nodetype); blobDiv.insert(blobNode); iUL.insert(blobDiv); } } objDiv.insert(lOL); } /** * Render the given node from an associated connection. * @param node the node object to render * @param uniQ is a unique id element prepended to the nodeid to form an overall unique id within the currently visible site elements * @param role the role object for this node * @param includeUser whether to include the user image and link * @param type defaults to 'active', but can be 'inactive' so nothing is clickable * or a specialized type for some of the popups */ async function renderArgumentNode(node, uniQ, role, includeUser, type, status, nodetype){ if (type === undefined) { type = "active"; } if(role === undefined){ role = node.role[0].role; } if (status == undefined) { status = 0; } var nodeuser = null; // JSON structure different if coming from popup where json_encode used. if (node.users[0].userid) { nodeuser = node.users[0]; } else { nodeuser = node.users[0].user; } var user = null; var connection = node.connection; if (connection) { user = connection.users[0].user; } var breakout = ""; //needs to check if embedded as a snippet if(top.location != self.location){ breakout = " target='_blank'"; } var focalrole = ""; var otherend = ""; if (connection) { var fN = connection.from[0].cnode; var tN = connection.to[0].cnode; if (node.nodeid == fN.nodeid) { focalrole = tN.role[0].role; otherend = tN; } else { focalrole = fN.role[0].role; otherend = fN; } } var nodeTable = new Element('table'); nodeTable.className = "toConnectionsTable table"; var row = nodeTable.insertRow(-1); row.setAttribute('name','argumentrowitem'); row.setAttribute('id','argumentrowitem'+uniQ); row.setAttribute('uniQ',uniQ); row.setAttribute('nodeid',node.nodeid); row.setAttribute('parentid',node.parentid); var textCell = row.insertCell(-1); textCell.vAlign="top"; textCell.align="left"; var textDiv = new Element("div", { 'id':'textdivargument'+uniQ, 'class':'textdivargument' }); textCell.insert(textDiv); var title = node.name; var textspan = new Element("a", { 'id':'desctoggle'+uniQ, 'class':'itemtext', 'title':'Visualizza le informazioni su questo elemento.', 'href': URL_ROOT+"explore.php?id="+node.nodeid, }); textspan.insert(title); textDiv.insert(textspan); if (USER == nodeuser.userid && type == "active") { var editbutton = new Element("img", { 'class':'imagebuttonfaded', 'src':'https://netlab.evidence-hub.net/images/edit.png', 'title':'Modifica questa ARGOMENTAZIONE', }); textDiv.insert(editbutton); Event.observe(editbutton,'click',function (){ editInline(uniQ, 'argument'); }); var deletename = node.name; var del = new Element('img',{'style':'cursor: pointer;padding-left:5px;','alt':'Cancella', 'src': 'https://netlab.evidence-hub.net/images/delete.png'}); Event.observe(del,'click',function (){ var callback = function () { if (nodetype == "Con") { $('counterkidsdiv'+node.parentuniq).loaded = 'false'; loadChildArguments('counterkidsdiv'+node.parentuniq, node.parentid, 'CONTRO', 'challenges', 'Con', node.parentid, node.parentuniq, 'count-counter', type, status, $('votebardiv'+node.parentuniq)); refreshStats(); } else if (nodetype == 'Pro') { $('supportkidsdiv'+node.parentuniq).loaded = 'false'; loadChildArguments('supportkidsdiv'+node.parentuniq, node.parentid, 'PRO', 'supports', 'Pro', node.parentid, node.parentuniq, 'count-support', type, status, $('votebardiv'+node.parentuniq)); refreshStats(); } } deleteNode(node.nodeid, deletename, role.name, callback); }); textDiv.insert(del); } try { const resourcenodes = await loadChildResources(node.nodeid, status); //console.log(resourcenodes); node.resourcenodes = resourcenodes; //console.log(node.resourcenodes); } catch(err) { console.log(err); } if (node.resourcenodes && node.resourcenodes.length > 0) { var menuButton = new Element('img',{'alt':'>', 'style':'margin-left:10px;width:16px;height:16px;','src': 'https://netlab.evidence-hub.net/images/nodetypes/Default/reference-32x32.png'}); textDiv.appendChild(menuButton); Event.observe(menuButton,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(menuButton,'mouseover',function (event) { var position = getPosition(this); var panel = $('toolbardiv'+uniQ); var panelWidth = 200; var viewportHeight = getWindowHeight(); var viewportWidth = getWindowWidth(); var x = position.x; var y = position.y; if ( (x+panelWidth+30) > viewportWidth) { x = x-(panelWidth+30); } else { x = x+10; } x = x+30+getPageOffsetX(); panel.style.left = x+"px"; panel.style.top = y+"px"; //console.log(panel) showBox('toolbardiv'+uniQ); }); var toolbarDiv = new Element("div", {'id':'toolbardiv'+uniQ, 'class':'toolbarDiv', 'style':'left:-1px;top:-1px;clear:both;position:absolute;display:none;z-index:60;padding:5px;border:1px solid gray;background:white'} ); Event.observe(toolbarDiv,'mouseout',function (event){ hideBox('toolbardiv'+uniQ); }); Event.observe(toolbarDiv,'mouseover',function (event){ showBox('toolbardiv'+uniQ); }); textDiv.appendChild(toolbarDiv); for(var i=0; i < node.resourcenodes.length; i++){ if(node.resourcenodes[i].urls && node.resourcenodes[i].urls && node.resourcenodes[i].urls.length > 0){ const next = node.resourcenodes[i].urls[0]; const url = next.url.url; let weblink = new Element("a", {'style':'clear:both;float:left;margin-bottom:6px;','target':'_blank'}); weblink.href = url; let resourcetype = "Web Resource"; if (RESOURCE_TYPES.indexOf(node.resourcenodes[i].role[0].role.name)!= -1) { resourcetype = RESOURCE_TYPE_NAMES[RESOURCE_TYPES.indexOf(node.resourcenodes[i].role[0].role.name)] } weblink.insert(next.url.title+' ('+resourcetype+")"); toolbarDiv.insert(weblink); } } } if(node.description || node.hasdesc){ var dStr = '
'; if (node.description && node.description != "") { dStr += node.description; } dStr += '
'; textDiv.insert(dStr); } // VOTING if (includeUser == true) { var userCell = row.insertCell(-1); if (connection) { var cDate = new Date(connection.creationdate*1000); var dStr = "aggiunto da: "+user.name+ " on "+cDate.format(DATE_FORMAT) userCell.title = dStr; } // Add right side with user image and date below var iuDiv = new Element("div", { 'id':'editformuserdivargument'+uniQ, 'class':'idea-user2' }); var userimageThumb = new Element('img',{'alt':nodeuser.name, 'src': nodeuser.thumb}); if (type == "active") { var imagelink = new Element('a', { 'href':URL_ROOT+"user.php?userid="+nodeuser.userid }); if (breakout != "") { imagelink.target = "_blank"; } imagelink.insert(userimageThumb); iuDiv.update(imagelink); } else { iuDiv.insert(userimageThumb) } userCell.insert(iuDiv); } var row2 = nodeTable.insertRow(-1); var editCell = row2.insertCell(-1); /** ADD THE EDIT FORM FOR THE ARGUMENT **/ if (USER == user.userid && type == 'active') { var editDiv = new Element("div", { 'class':'addformdivedit', 'id':'editformdivargument'+uniQ, 'style':'display:none' }); editCell.insert(editDiv); var legendtitle = new Element("h2", {'style':'margin-bottom:10px;',}); legendtitle.insert('Modifica'); editDiv.insert(legendtitle); var editargumentid = new Element("input", { 'name':'editargumentid', 'id':'editargumentid'+uniQ, 'type':'hidden', 'value':node.nodeid, }); editDiv.insert(editargumentid); var editargumentroleid = new Element("input", { 'name':'editargumentnodetypeid', 'id':'editargumentnodetypeid'+uniQ, 'type':'hidden', 'value':role.roleid, }); editDiv.insert(editargumentroleid); var rowDiv1 = new Element("div", { 'class':'mb-3 row', 'style':'padding-top:0px;', }); editDiv.insert(rowDiv1); var editargumentname = new Element("input", { 'class':'hgrinput', 'placeholder':'Titolo PROPOSTA...', 'id':'editargumentname'+uniQ, 'name':'editargumentname', 'value':node.name, }); rowDiv1.insert(editargumentname); var rowDiv2 = new Element("div", { 'class':'mb-3 row', }); editDiv.insert(rowDiv2); var editargumentdesc = new Element("textarea", { 'rows':'3', 'class':'hgrinput', 'placeholder':'Descrizione PROPOSTA...', 'id':'editargumentdesc'+uniQ, 'name':'editargumentdesc', }); editargumentdesc.insert(node.description); rowDiv2.insert(editargumentdesc); var rowDiv = new Element("div", { 'class':'mb-3 row', 'id':'linksdivedit'+uniQ, 'style':'margin-bottom:0px;padding-bottom:0px;' }); rowDiv.linkcount = 0; editDiv.insert(rowDiv); let resourcelabel = new Element("label", {'for':'resourceformlabelpro'+uniQ, 'style': 'font-weight:bold'}); resourcelabel.insert('FONTI:'); rowDiv.insert(resourcelabel); if (node.resourcenodes && node.resourcenodes.length > 0) { rowDiv.linkcount = node.resourcenodes.length-1; for(var i=0; i < node.resourcenodes.length; i++){ if(node.resourcenodes[i].urls && node.resourcenodes[i].urls && node.resourcenodes[i].urls.length > 0){ rowDiv.noResources = 0; const newitem = getArgumentResource('linksdivedit'+uniQ, 'edit'+nodetype.toLowerCase()+uniQ, rowDiv.noResources, node.resourcenodes[i]); rowDiv.noResources ++; rowDiv.insert(newitem); } } } else { rowDiv.noResources = 0; const newitem = getArgumentResource('linksdivedit'+uniQ, 'edit'+nodetype.toLowerCase()+uniQ, rowDiv.noResources); rowDiv.noResources ++; rowDiv.insert(newitem); } var rowDiv5 = new Element("div", { 'class':'mb-3 row', }); editDiv.insert(rowDiv5); var addURL = new Element("a", { 'class':'hgrinput', 'href':'javascript:void(0)', 'style':'margin-top:0px;padding-top:0px;;' }); addURL.insert("Aggiungi un'altra FONTE"); Event.observe(addURL,'click',function (){ addArgumentResource('linksdivedit'+uniQ, 'edit'+nodetype.toLowerCase()+uniQ); //insertArgumentLink(uniQ, 'edit'); }); rowDiv5.insert(addURL); var rowDiv6 = new Element("div", { 'class':'mb-3 row', }); editDiv.insert(rowDiv6); var editargumentsave = new Element("input", { 'type':'button', 'id':'editargument', 'name':'editargument', 'value':"Salva", }); Event.observe(editargumentsave,'click',function () { editArgumentNode(node, uniQ, 'argument', nodetype, type, includeUser, status); }); rowDiv6.insert(editargumentsave); var editargumentcancel = new Element("input", { 'type':'button', 'id':'cancelargument', 'name':'editargument', 'value':"Cancella", 'style':'margin-top:10px;', }); Event.observe(editargumentcancel,'click',function (){ cancelEditAction(uniQ, 'argument'); }); rowDiv6.insert(editargumentcancel); } return nodeTable; } /** * Add another resource block */ function addArgumentResource(section, uniQ) { let noResources = 0; if ($(section).noResources) { noResources = $(section).noResources; } else { $(section).noResources = 0; } const newitem = getArgumentResource(section, uniQ, noResources); $(section).insert(newitem); noResources++; $(section).noResources = noResources; } function getArgumentResource(section, uniQ, noResources, node) { let uniQid = uniQ; if (node) { uniQid = node.nodeid+uniQ; } var newitem = '
'; if (node) { newitem += ''; } else { newitem += ''; } newitem += '
'; newitem += ''; newitem += '
'; newitem += '
'; if (node) { newitem += ''; } else { newitem += ''; } newitem += '
'; newitem += '
'; if (node) { newitem += ''; } else { newitem += ''; } newitem += '
'; if (node && node.role[0].role.name == "Publication") { newitem += '
'; newitem += ''; newitem += '
'; } else { newitem += ''; } newitem += '
'; newitem += 'Elimina
'; newitem += '
'; newitem += '
'; return newitem; } function typeChangedArgumentResource(uniQ, num) { var type = $('resource'+uniQ+num+'menu').value; if (type == "Publication") { $('identifierdiv-'+uniQ+num).style.display = "block"; } else { $('identifierdiv-'+uniQ+num).style.display = "none"; } } function removeArgumentResource(section, uniQ, i) { var answer = confirm("Sei sicuro di voler rimuovere questo elemento? Questa azione non può essere annullata!"); if(answer){ if ($(section) && $('resourcefield'+uniQ+i)) { console.log($(section).childElements()); if( $(section).childElements().length > 0){ $('resourcefield'+uniQ+i).remove(); } } } return; } /** * load child list of resources, if required as per parameters. */ async function loadChildResources(nodeid, status){ return new Promise( ( resolve, reject ) => { var reqUrl = SERVICE_ROOT + "&method=getconnectionsbynode&style=long&sort=ASC&orderby=date&status="+status; reqUrl += "&filterlist="+"is related to"+"&filternodetypes="+RESOURCE_TYPES_STR+"&scope=all&start=0&max=-1&nodeid="+nodeid; //console.log(reqUrl); new Ajax.Request(reqUrl, { method:'post', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); reject(new Array()); } var conns = json.connectionset[0].connections; //console.log(conns.length); var nodes = new Array(); if (conns.length > 0) { for(var i=0; i < conns.length; i++){ var c = conns[i].connection; var fN = c.from[0].cnode; var tN = c.to[0].cnode; if (fN.nodeid == nodeid) { tN.connid = c.connid; nodes.push(tN); } if (tN.nodeid == nodeid) { fN.connid = c.connid; nodes.push(fN); } } } resolve(nodes); }, onFailure: function(response) { console.log(response); reject(new Array()); } }); }); } function ideatoggle(section, uniQ, id, sect, rolename, focalnodeid) { if ($(section).style.display == 'block') { $(section).style.display = 'none'; } else if ($(section).style.display == 'none') { $(section).style.display = 'block'; } //Audit viewing of child lists only if opening area if ($(section).style.display == 'block') { if (sect == "arguments") { if ($(section).pronodes) { var nodes = $(section).pronodes; var count = nodes.length; var nodeids = ""; for (var i=0; i < count; i++) { var node = nodes[i]; if (i == 0) { nodeids = nodeids + node.cnode.nodeid; } else { nodeids = nodeids+","+node.cnode.nodeid; } } var reqUrl = SERVICE_ROOT + "&method=auditnodeviewmulti&nodeids="+nodeids+"&viewtype=list"; new Ajax.Request(reqUrl, { method:'post', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); } } }); } if ($(section).connodes) { var nodes = $(section).connodes; var count = nodes.length; var nodeids = ""; for (var i=0; i < count;i++) { var node = nodes[i]; if (i == 0) { nodeids = nodeids + node.cnode.nodeid; } else { nodeids = nodeids + ","+node.cnode.nodeid; } } var reqUrl = SERVICE_ROOT + "&method=auditnodeviewmulti&nodeids="+nodeids+"&viewtype=list"; new Ajax.Request(reqUrl, { method:'post', onSuccess: function(transport){ var json = transport.responseText.evalJSON(); if(json.error){ alert(json.error[0].message); } } }); } } } if ($('idearowitem'+uniQ)) { if( ($('comments'+uniQ) && $('comments'+uniQ).style.display == 'none' && $('arguments'+uniQ).style.display == 'none') || (!$('comments'+uniQ) && $('arguments'+uniQ).style.display == 'none') ){ $('idearowitem'+uniQ).style.background = "transparent"; } else { $('idearowitem'+uniQ).style.background = "#E8E8E8"; } } }