1var directorySocket = { 2 init: function() { 3 if(currentUser){ 4 directorySocket.emitEvent(wsCO, "join_room", {userId: userId, userName: currentUser.name}); 5 } 6 if(wsCO){ 7 wsCO.on("join_user", function(data){ 8 // pageProfil.init(); 9 if(pageProfil.params.view == "conode"){ 10 window[`communityGraph${contextData.id}`].addChild(data.collection, { 11 id: data._id.$id, 12 name: data.name, 13 bread: data.name, 14 group: data.collection, 15 profil: typeof data.profilThumbImageUrl != "undefined" ? data.profilThumbImageUrl : (typeof data.profilImageUrl != "undefined" ? data.profilImageUrl : null), 16 }); 17 } else if(pageProfil.params.view == "directory" && pageProfil.params.dir == "members"){ 18 19 let datas = {}; 20 let _id = data._id.$id; 21 22 datas[_id] = data; 23 24 let community = directorySocket.events.communityVariable(data, _id); 25 26 let str = directory.showResultsDirectoryHtml(datas, "", "", community); 27 28 let targetDiv = document.querySelector(`.msr-id-${_id}`); 29 if (targetDiv) { 30 targetDiv.parentElement.remove(); 31 } else { 32 directorySocket.events.updateNomberElements(datas, "add"); 33 } 34 filterGroup.results.$grid.prepend(str); 35 filterGroup.results.$grid.masonry('destroy'); 36 filterGroup.results.$grid.masonry({itemSelector: '.smartgrid-slide-element', 'columnWidth': '.searchEntityContainer.smartgrid-slide-element'}); 37 38 targetDiv = document.querySelector(`.msr-id-${_id}`); 39 let image = targetDiv.querySelectorAll('img.lzy_img'); 40 image.forEach((v) => { 41 v.dom = "#content-results-profil"; 42 imageObserver.observe(v); 43 }); 44 directory.bindEventAdmin(); 45 if(filterGroup.results.map.active){ 46 filterGroup.mapObj.addElts(datas); 47 } 48 49 } else { 50 filterGroup.search.init(filterGroup); 51 } 52 53 if(typeof window[`kanbanDom${contextData.id}`] != "undefined"){ 54 let newRole = { 55 _id : data._id.$id, 56 id : data._id.$id, 57 title : "<b>"+data.name+"</b>", 58 header : "memberof", 59 canEditHeader: false, 60 html : true, 61 collection : data.collection, 62 slug : data.slug, 63 actions : [ 64 { 65 'icon': 'fa fa-trash' , 66 'bstooltip' : { 67 'text' : 'Supprimer le membre de la communauter', 68 'position' : 'left' 69 }, 70 'action': 'onRemoveMember' 71 } 72 ] 73 } 74 window[`kanbanDom${contextData.id}`].kanban('addData', newRole); 75 } 76 }).on("remove_user", function(data){ 77 let _id = data._id.$id; 78 if(pageProfil.params.view == "conode"){ 79 window[`communityGraph${contextData.id}`].removeChild(data.collection, _id); 80 }else { 81 let targetDiv = document.querySelector(`.msr-id-${_id}`); 82 83 if (targetDiv) { 84 targetDiv.parentElement.remove(); 85 filterGroup.results.$grid.masonry('destroy'); 86 filterGroup.results.$grid.masonry({itemSelector: '.smartgrid-slide-element', 'columnWidth': '.searchEntityContainer.smartgrid-slide-element'}); 87 88 directorySocket.events.updateNomberElements(data, "remove"); 89 } 90 if(filterGroup.results.map.active && typeof filterGroup.mapObj.removeElts != "undefined"){ 91 filterGroup.mapObj.removeElts(_id); 92 } 93 } 94 if(typeof window[`kanbanDom${contextData.id}`] != "undefined"){ 95 var indexToDelete = window[`kanbanDom${contextData.id}`].find(`[data-column="memberof"] .kanban-list-card-detail`).index($(`div.kanban-list-card-detail[data-id=${_id}]`)); 96 window[`kanbanDom${contextData.id}`].kanban('deleteData', { column: "memberof", id:_id, index: indexToDelete }); 97 } 98 }).on("invite_user", function(data){ 99 let show = false; 100 if(data.invitedId == userId) { 101 directorySocket.events.invitedMe(); 102 } 103 104 if( 105 typeof userConnected.roles != "undefined" && typeof userConnected.roles.superAdmin != "undefined" && userConnected.roles.superAdmin 106 ){ 107 show = true; 108 }else if(contextData.type == "organizations"){ 109 if(typeof userConnected.links.memberOf[contextData.id] != "undefined" 110 && typeof userConnected.links.memberOf[contextData.id].isAdmin != "undefined" 111 && userConnected.links.memberOf[contextData.id].isAdmin 112 && (typeof userConnected.links.memberOf[contextData.id].isAdminPending == "undefined" || typeof userConnected.links.memberOf[contextData.id].isInviting == "undefined") 113 ){ 114 show = true; 115 } 116 }else if(contextData.type == "projects"){ 117 if(typeof userConnected.links.projects[contextData.id] != "undefined" 118 && typeof userConnected.links.projects[contextData.id].isAdmin != "undefined" 119 && userConnected.links.projects[contextData.id].isAdmin 120 && (typeof userConnected.links.projects[contextData.id].isAdminPending == "undefined" || typeof userConnected.links.projects[contextData.id].isInviting == "undefined") 121 ){ 122 show = true; 123 } 124 }else if(contextData.type == "organizations"){ 125 if(typeof userConnected.links.memberOf[contextData.id] != "undefined" 126 && typeof userConnected.links.memberOf[contextData.id].isAdmin != "undefined" 127 && userConnected.links.memberOf[contextData.id].isAdmin 128 && (typeof userConnected.links.memberOf[contextData.id].isAdminPending == "undefined" || typeof userConnected.links.memberOf[contextData.id].isInviting == "undefined") 129 ){ 130 show = true; 131 } 132 } 133 if(typeof data.donne != "undefined" && data.donne != null && show){ 134 135 let donne = data.donne; 136 let datas = {}; 137 datas[data.invitedId] = donne; 138
139 let community = directorySocket.events.communityVariable(donne, data.invitedId); 140 let str = directory.showResultsDirectoryHtml(datas, "", "", community); 141 var targetDiv = document.querySelector(`.msr-id-${data.invitedId}`); 142 if (targetDiv) { 143 targetDiv.parentElement.remove(); 144 } else { 145 directorySocket.events.updateNomberElements(datas, "add"); 146 } 147 148 filterGroup.results.$grid.prepend(str); 149 filterGroup.results.$grid.masonry('destroy'); 150 filterGroup.results.$grid.masonry({itemSelector: '.smartgrid-slide-element', 'columnWidth': '.searchEntityContainer.smartgrid-slide-element'}); 151 152 targetDiv = document.querySelector(`.msr-id-${data.invitedId}`); 153 var newSpan = document.createElement('span'); 154 newSpan.className = 'entityStatusLink italic'; 155 newSpan.textContent = 'Invitation envoyée'; 156 157 let slideHover = targetDiv.querySelector('.slide-hover'); 158 var textWrap = slideHover.querySelector('.text-wrap'); 159 var adminToolBar = slideHover.querySelector('.adminToolBarDirectory'); 160 161 let image = targetDiv.querySelectorAll('img.lzy_img'); 162 image.forEach((v) => { 163 v.dom = "#content-results-profil"; 164 imageObserver.observe(v); 165 }); 166 167 directory.bindEventAdmin(); 168 textWrap.insertBefore(newSpan, adminToolBar); 169 } 170 }).on('add_members', function(data){ 171 if(typeof window[`kanbanDom${contextData.id}`] != "undefined" && window[`kanbanDom${contextData.id}`]){ 172 window[`load${contextData.id}`] = false; 173 if($(`div#kanban-wrapper-${data.column.id}`).length == 0){ 174 var copyColumn = $.extend({}, data.column); 175 copyColumn.editable = false; 176 copyColumn.menus = []; 177 mylog.log("Column to add", copyColumn); 178 window[`kanbanDom${contextData.id}`].kanban('addColumn', {dom: $(".js-add-column").prev(".kanban-list-wrapper"), column: copyColumn}); 179 let newRole = { 180 _id : copyColumn.id, 181 id : copyColumn.id, 182 instanceIdentity : copyColumn.id, 183 title : "<i>"+copyColumn.label+"</i>", 184 name : copyColumn.label, 185 header : "listRole", 186 canEditHeader: false, 187 html : true, 188 canMoveCard: false, 189 actions : [ 190 {icon: 'fa fa-trash', action: 'onRemoveRole'}, 191 {icon: 'fa fa-user',badge: copyColumn.count, action: '' } 192 ] 193 } 194 window[`kanbanDom${contextData.id}`].kanban('addData', newRole); 195 } 196 var copy = $.extend({}, data.data); 197 copy.canMoveCard = false; 198 copy.actions = [ 199 { icon: 'fa fa-trash', action: 'onDelete'} 200 ]; 201 if(typeof contextData.links != "undefined" && 202 typeof contextData.links[data.connectType] != "undefined" && 203 typeof contextData.links[data.connectType][copy.instanceIdentity] != "undefined" && 204 typeof contextData.links[data.connectType][copy.instanceIdentity].roles != "undefined"){ 205 mylog.log("Roles to push", contextData.links[data.connectType][copy.instanceIdentity].roles) 206 contextData.links[data.connectType][copy.instanceIdentity].roles.push(data.column.label); 207 } 208 else 209 contextData.links[data.connectType][copy.instanceIdentity]={"roles": [data.column.label]}; 210 if(typeof window[`dataMember${contextData.id}`] != "undefined" && 211 typeof window[`dataMember${contextData.id}`][copy.instanceIdentity] != "undefined" && 212 typeof window[`dataMember${contextData.id}`][copy.instanceIdentity].links != "undefined" && 213 typeof window[`dataMember${contextData.id}`][copy.instanceIdentity].links[data.connectType == "members" ? "memberOf" : data.connectType] != "undefined" && 214 typeof window[`dataMember${contextData.id}`][copy.instanceIdentity].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id] != "undefined" && 215 typeof window[`dataMember${contextData.id}`][copy.instanceIdentity].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles != "undefined"){ 216 window[`dataMember${contextData.id}`][copy.instanceIdentity].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.push(data.column.label); 217 }else{ 218 window[`dataMember${contextData.id}`][copy.instanceIdentity].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles = [data.column.label]; 219 } 220 window[`kanbanDom${contextData.id}`].kanban('addData', copy); 221 let htm = `${data.column.count} <span class="fa fa-user"> </span>`;
222 $('div[data-id='+data.column.id+'] .kanban-footer-card .nbpers').html(htm); 223 if(!$(`div#kanban-wrapper-${data.column.id}`).is(":visible")){ 224 $(`div[data-id=${data.column.id}]`).click(); 225 } 226 pageProfil.views.directory(); 227 } 228 }).on("remove_members", function(data){ 229 window[`load${contextData.id}`] = false; 230 let htm = `${data.column.count} <span class="fa fa-user"> </span>`; 231 $('div[data-id='+data.column.id+'] .kanban-footer-card .nbpers').html(htm); 232 if(!$(`div#kanban-wrapper-${data.column.id}`).is(":visible")){ 233 $(`div[data-id=${data.column.id}]`).click(); 234 } 235 if(data.column.count == 0) { 236 $('div[data-id = '+data.column.id+']').addClass('hidden') 237 $('#kanban-wrapper-'+data.column.id).addClass('hidden') 238 } 239 if(typeof contextData.links != "undefined" && 240 typeof contextData.links[data.connectType] != "undefined" && 241 typeof contextData.links[data.connectType][data.data.instanceIdentity] != "undefined" && 242 typeof contextData.links[data.connectType][data.data.instanceIdentity].roles != "undefined"){ 243 contextData.links[data.connectType][data.data.instanceIdentity].roles.splice(contextData.links[data.connectType][data.data.instanceIdentity].roles.indexOf(data.column.label), 1); 244 } 245 if(typeof window[`dataMember${contextData.id}`] != "undefined" && 246 typeof window[`dataMember${contextData.id}`][data.data.instanceIdentity] != "undefined" && 247 typeof window[`dataMember${contextData.id}`][data.data.instanceIdentity].links != "undefined" && 248 typeof window[`dataMember${contextData.id}`][data.data.instanceIdentity].links[data.connectType == "members" ? "memberOf" : data.connectType] != "undefined" && 249 typeof window[`dataMember${contextData.id}`][data.data.instanceIdentity].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id] != "undefined" && 250 typeof window[`dataMember${contextData.id}`][data.data.instanceIdentity].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles != "undefined"){ 251 let indice = window[`dataMember${contextData.id}`][data.data.instanceIdentity].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.indexOf(data.column.label); 252 if(indice != -1){ 253 window[`dataMember${contextData.id}`][data.data.instanceIdentity].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.splice(indice, 1); 254 } 255 // window[`dataMember${contextData.id}`][data.data.instanceIdentity].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.push(data.column.label); 256 } 257 var indexToDelete = window[`kanbanDom${contextData.id}`].find(`[data-column=${data.column.id}] .kanban-list-card-detail`).index($(`div.kanban-list-card-detail[data-id=${data.data.id}${data.column.id}]`)); 258 window[`kanbanDom${contextData.id}`].kanban('deleteData', { column: data.column.id, id:data.data.id, index: indexToDelete }); 259 pageProfil.views.directory(); 260 }).on("remove_role", function(data){ 261 262 if(contextData.type == "organizations"){ 263 if(typeof window[`dataMember${contextData.id}`] != "undefined"){ 264 $.map(window[`dataMember${contextData.id}`], function(value, key) { 265 if(typeof value.links != "undefined" && typeof value.links.memberOf != "undefined"){ 266 $.map(value.links.memberOf, function(members, keyMembers) { 267 if(keyMembers == contextData.id && typeof members.roles != "undefined" && typeof members.roles == 'object' && Array.isArray(members.roles)){ 268 let indice = members.roles.indexOf(data.column.name); 269 if(indice != -1){ 270 members.roles.splice(indice, 1); 271 if(typeof contextData.links != "undefined" && 272 typeof contextData.links[data.connectType] != "undefined" && 273 typeof contextData.links[data.connectType][key] != "undefined" && 274 typeof contextData.links[data.connectType][key].roles != "undefined"){ 275 contextData.links[data.connectType][key].roles.splice(contextData.links[data.connectType][key].roles.indexOf(data.column.name), 1); 276 } 277 } 278 if(typeof window[`dataMember${contextData.id}`] != "undefined" && 279 typeof window[`dataMember${contextData.id}`][key] != "undefined" && 280 typeof window[`dataMember${contextData.id}`][key].links != "undefined" && 281 typeof window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType] != "undefined" && 282 typeof window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id] != "undefined" && 283 typeof window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles != "undefined"){ 284 let indiceDataMember = window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.indexOf(data.column.name); 285 if(indiceDataMember != -1){ 286 window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.splice(indice, 1); 287 } 288 // window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.push(data.column.label); 289 } 290 } 291 }) 292 } 293 }) 294 } 295 }else if(contextData.type == "projects"){ 296 if(typeof window[`dataMember${contextData.id}`] != "undefined"){ 297 $.map(window[`dataMember${contextData.id}`], function(value, key) { 298 if(typeof value.links != "undefined" && typeof value.links.projects != "undefined"){
299 $.map(value.links.projects, function(members, keyMembers) { 300 if(keyMembers == contextData.id && typeof members.roles != "undefined" && typeof members.roles == 'object' && Array.isArray(members.roles)){ 301 let indice = members.roles.indexOf(data.column.name); 302 if(indice != -1){ 303 members.roles.splice(indice, 1); 304 if(typeof contextData.links != "undefined" && 305 typeof contextData.links[data.connectType] != "undefined" && 306 typeof contextData.links[data.connectType][key] != "undefined" && 307 typeof contextData.links[data.connectType][key].roles != "undefined"){ 308 contextData.links[data.connectType][key].roles.splice(contextData.links[data.connectType][key].roles.indexOf(data.column.name), 1); 309 } 310 } 311 if(typeof window[`dataMember${contextData.id}`] != "undefined" && 312 typeof window[`dataMember${contextData.id}`][key] != "undefined" && 313 typeof window[`dataMember${contextData.id}`][key].links != "undefined" && 314 typeof window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType] != "undefined" && 315 typeof window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id] != "undefined" && 316 typeof window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles != "undefined"){ 317 let indiceDataMember = window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.indexOf(data.column.name); 318 if(indiceDataMember != -1){ 319 window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.splice(indice, 1); 320 } 321 // window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.push(data.column.label); 322 } 323 } 324 }) 325 } 326 }) 327 } 328 }else if(contextData.type == "events"){ 329 if(typeof window[`dataMember${contextData.id}`] != "undefined"){ 330 $.map(window[`dataMember${contextData.id}`], function(value, key) { 331 if(typeof value.links != "undefined" && typeof value.links.events != "undefined"){ 332 $.map(value.links.events, function(members, keyMembers) { 333 if(keyMembers == contextData.id && typeof members.roles != "undefined" && typeof members.roles == 'object' && Array.isArray(members.roles)){ 334 let indice = members.roles.indexOf(data.column.name); 335 if(indice != -1){ 336 members.roles.splice(indice, 1); 337 if(typeof contextData.links != "undefined" && 338 typeof contextData.links[data.connectType] != "undefined" && 339 typeof contextData.links[data.connectType][key] != "undefined" && 340 typeof contextData.links[data.connectType][key].roles != "undefined"){ 341 contextData.links[data.connectType][key].roles.splice(contextData.links[data.connectType][key].roles.indexOf(data.column.name), 1); 342 } 343 } 344 if(typeof window[`dataMember${contextData.id}`] != "undefined" && 345 typeof window[`dataMember${contextData.id}`][key] != "undefined" && 346 typeof window[`dataMember${contextData.id}`][key].links != "undefined" && 347 typeof window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType] != "undefined" && 348 typeof window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id] != "undefined" && 349 typeof window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles != "undefined"){ 350 let indiceDataMember = window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.indexOf(data.column.name); 351 if(indiceDataMember != -1){ 352 window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.splice(indice, 1); 353 } 354 // window[`dataMember${contextData.id}`][key].links[data.connectType == "members" ? "memberOf" : data.connectType][contextData.id].roles.push(data.column.label); 355 } 356 } 357 }) 358 } 359 }) 360 } 361 } 362 var indexToDelete = window[`kanbanDom${contextData.id}`].find(`[data-column=${data.column.header}] .kanban-list-card-detail`).index($(`div.kanban-list-card-detail[data-id=${data.column.id}]`)); 363 window[`kanbanDom${contextData.id}`].kanban('deleteData', { column: data.column.header, id:data.column.id, index: indexToDelete }); 364 $('#kanban-wrapper-'+data.column.id).addClass('hidden') 365 $('#kanban-wrapper-'+data.column.id).removeClass('visible') 366 367 pageProfil.views.directory(); 368 }).on("add_role", function(data){ 369 let connectType = contextData.type == "organizations" ? "memberOf" : (contextData.type == "projects" ? "projects" : "events"); 370 if(typeof window[`kanbanDom${contextData.id}`] != "undefined"){
371 data.newRoles.forEach(element => { 372 let roles = $('div[data-column="listRole"] .kanban-list-card-title'); 373 374 let exists = roles.filter(function() { 375 return $(this).text().trim() == element; 376 }); 377 let columnId = "Column"+Date.now(); 378 if(exists.length == 0){ 379 var copyColumn = $.extend({}, { 380 "id" : columnId, 381 "label": element, 382 }); 383 copyColumn.editable = false; 384 copyColumn.menus = []; 385 window[`kanbanDom${contextData.id}`].kanban('addColumn', {dom: $(".js-add-column").prev(".kanban-list-wrapper"), column: copyColumn}); 386 let newRole = { 387 _id : columnId, 388 id : columnId, 389 instanceIdentity : columnId, 390 title : "<b>"+element+"</b>", 391 name : element, 392 header : "listRole", 393 canEditHeader: false, 394 html : true, 395 canMoveCard: false, 396 actions : [ 397 {icon: 'fa fa-trash', action: 'onRemoveRole'}, 398 {icon: 'fa fa-user',badge: 1, action: '' } 399 ] 400 } 401 window[`kanbanDom${contextData.id}`].kanban('addData', newRole); 402 }else{ 403 columnId = exists.closest('.kanban-list-card-detail').attr('data-id'); 404 let nb = parseInt($('div[data-id='+columnId+'] .kanban-footer-card .nbpers').text()) + 1; 405 let htm = `${nb} <span class="fa fa-user"> </span>`; 406 $('div[data-id='+columnId+'] .kanban-footer-card .nbpers').html(htm); 407 } 408 if(typeof contextData.links != "undefined" && 409 typeof contextData.links[connectType] != "undefined" && 410 typeof contextData.links[connectType][data.memberid] != "undefined" && 411 typeof contextData.links[connectType][data.memberid].roles != "undefined"){ 412 if(contextData.links[connectType][data.memberid].roles.indexOf(element) == -1) 413 contextData.links[connectType][data.memberid].roles.push(element); 414 } 415 else 416 contextData.links[connectType][data.memberid]={"roles": [element]}; 417 418 if($(`.kanban-list-wrapper.roles-list[data-column="${columnId}"]`).find(`.kanban-list-card-detail[data-id='${data.memberid}${columnId}']`).length == 0){ 419 let mb = { 420 _id : data.memberid, 421 id : data.memberid, 422 instanceIdentity : data.memberid, 423 title : '<b>'+window[`dataMember${contextData.id}`][data.memberid].name+'</b>', 424 name : window[`dataMember${contextData.id}`][data.memberid].name, 425 header : columnId, 426 collection : window[`dataMember${contextData.id}`][data.memberid].collection, 427 html : true, 428 canMoveCard: false, 429 actions : [ 430 { 431 'icon': 'fa fa-trash', 432 'bstooltip' : { 433 'text' : 'Enlever cette role du membre', 434 'position' : 'left' 435 }, 436 'action': 'onDelete' 437 } 438 ] 439 } 440 window[`kanbanDom${contextData.id}`].kanban('addData', mb); 441 } 442 443 if(typeof data.oldRoles != "undefined" && $.inArray(element, data.oldRoles) >= 1) 444 data.oldRoles.splice(data.oldRoles.indexOf(element) , 1); 445 446 }); 447 if(typeof data.oldRoles != "undefined"){ 448 Object.values(data.oldRoles).forEach(element => { 449 450 if(typeof contextData.links != "undefined" && 451 typeof contextData.links[connectType] != "undefined" && 452 typeof contextData.links[connectType][data.memberid] != "undefined" && 453 typeof contextData.links[connectType][data.memberid].roles != "undefined"){ 454 let indice = contextData.links[connectType][data.memberid].roles.indexOf(element); 455 if(indice != -1){ 456 contextData.links[connectType][data.memberid].roles.splice(indice, 1); 457 } 458 } 459 if(typeof window[`dataMember${contextData.id}`] != "undefined" && 460 typeof window[`dataMember${contextData.id}`][data.memberid] != "undefined" && 461 typeof window[`dataMember${contextData.id}`][data.memberid].links != "undefined" && 462 typeof window[`dataMember${contextData.id}`][data.memberid].links[connectType] != "undefined" && 463 typeof window[`dataMember${contextData.id}`][data.memberid].links[connectType][contextData.id] != "undefined" && 464 typeof window[`dataMember${contextData.id}`][data.memberid].links[connectType][contextData.id].roles != "undefined"){ 465 let indiceDataMember = window[`dataMember${contextData.id}`][data.memberid].links[connectType][contextData.id].roles.indexOf(element); 466 if(indiceDataMember != -1){ 467 window[`dataMember${contextData.id}`][data.memberid].links[connectType][contextData.id].roles.splice(indiceDataMember, 1); 468 } 469 // window[`dataMember${contextData.id}`][data.memberid].links[connectType][contextData.id].roles.push(data.column.label); 470 } 471 let roles = $('div[data-column="listRole"] .kanban-list-card-title'); 472 let exists = roles.filter(function() { 473 return $(this).text().trim() == element; 474 });
475 let columnId = exists.closest('.kanban-list-card-detail').attr('data-id'); 476 let nb = parseInt($('div[data-id='+columnId+'] .kanban-footer-card .nbpers').text()) - 1; 477 let htm = `${nb} <span class="fa fa-user"> </span>`; 478 $('div[data-id='+columnId+'] .kanban-footer-card .nbpers').html(htm); 479 var indexToDelete = window[`kanbanDom${contextData.id}`].find(`[data-column=${columnId}] .kanban-list-card-detail`).index($(`div.kanban-list-card-detail[data-id=${data.memberid+columnId}]`)); 480 window[`kanbanDom${contextData.id}`].kanban('deleteData', { column: columnId, id:data.memberid+columnId, index: indexToDelete }); 481 482 if(nb == 0){ 483 $('div[data-id = '+columnId+']').addClass('hidden') 484 $('#kanban-wrapper-'+columnId).addClass('hidden') 485 } 486 }); 487 } 488 } 489 }); 490 } 491 }, 492 emitEvent: function(wsCO, nameEvent, data) { 493 if (coWsConfig.enable) { 494 wsCO.emit("directory_event", { 495 name: nameEvent, 496 id: contextData.id, 497 data: data 498 }) 499 } 500 }, 501 events: { 502 invitedMe: function(){ 503 var containInvitation = ""; 504 var copyContextData = JSON.parse(JSON.stringify(contextData)); 505 copyContextData.id = contextData._id.$id; 506 if(typeof copyContextData.costum != "undefined") 507 delete copyContextData.costum; 508 if(typeof copyContextData.oceco != "undefined") 509 delete copyContextData.oceco; 510 if(typeof copyContextData.contacts != "undefined") 511 delete copyContextData.contacts; 512 if(typeof copyContextData.links != "undefined") 513 delete copyContextData.links; 514 containInvitation += `<div id="containInvitation" class="animated bounceInRight "></div>`; 515 var param = { 516 element : copyContextData 517 } 518 // $("#social-header").append(containInvitation); 519 ajaxPost( 520 null, 521 baseUrl + '/co2/element/getinvitedme', 522 param, 523 function(data){ 524 $("#social-header .animated.bounceInRight").html(data); 525 } 526 ); 527 }, 528 communityVariable: function(data, _id) { 529 530 let community = { 531 connectType : "members", 532 links : { 533 "members" : {} 534 } 535 }; 536 537 if( 538 typeof userConnected.roles != "undefined" && typeof userConnected.roles.superAdmin != "undefined" && userConnected.roles.superAdmin 539 ){ 540 community.edit = true; 541 }else if(contextData.type == "organizations"){ 542 if(typeof userConnected.links.memberOf[contextData.id] != "undefined" 543 && typeof userConnected.links.memberOf[contextData.id].isAdmin != "undefined" 544 && userConnected.links.memberOf[contextData.id].isAdmin 545 && (typeof userConnected.links.memberOf[contextData.id].isAdminPending == "undefined" || typeof userConnected.links.memberOf[contextData.id].isInviting == "undefined") 546 ){ 547 community.edit = true; 548 } 549 }else if(contextData.type == "projects"){ 550 if(typeof userConnected.links.projects[contextData.id] != "undefined" 551 && typeof userConnected.links.projects[contextData.id].isAdmin != "undefined" 552 && userConnected.links.projects[contextData.id].isAdmin 553 && (typeof userConnected.links.projects[contextData.id].isAdminPending == "undefined" || typeof userConnected.links.projects[contextData.id].isInviting == "undefined") 554 ){ 555 community.edit = true; 556 } 557 }else if(contextData.type == "events"){ 558 if(typeof userConnected.links.events[contextData.id] != "undefined" 559 && typeof userConnected.links.events[contextData.id].isAdmin != "undefined" 560 && userConnected.links.events[contextData.id].isAdmin 561 && (typeof userConnected.links.events[contextData.id].isAdminPending == "undefined" || typeof userConnected.links.events[contextData.id].isInviting == "undefined") 562 ){ 563 community.edit = true; 564 } 565 } 566 567 568 community.links["members"][_id] = { 569 type: data.collection, 570 date : data.modified 571 } 572 573 return community; 574 }, 575 updateNomberElements: function(datas, type) { 576 if(contextData.type == "organizations" || contextData.type == "projects"){ 577 const aElement = $(`a[data-type-dir="${contextData.type == "organizations" ? "members" : "contributors"}"]`); 578 let badgeElement = aElement.find('.badge'); 579 if (badgeElement.length) { 580 const badge_content = parseInt(badgeElement.text()); 581 const tmp = type === "add" ? Object.keys(datas).length + badge_content : badge_content - 1; 582 badgeElement.text(tmp); 583 } 584 } 585 const spanElement = $('.count-nbr'); 586 if (spanElement.length) { 587 const span_content = parseInt(spanElement.text()); 588 const tmp = type === "add" ? Object.keys(datas).length + span_content : span_content - 1; 589 spanElement.text(tmp); 590 } 591 592 } 593 } 594};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.