1var FeedController = (function (c=null,uLogId = 0, uLogFoto = '', uLogRole = 0, where = 'home', publicacionId = 0, tagName='') { 2 3 var usuarioLogId = uLogId;//$("#usuarioLogId").val(); 4 var usuarioLogFoto = uLogFoto;//$("#usuarioLog").val(); 5 var usuarioLogRole = uLogRole;//$("#usuarioLogRole").val(); 6 7 var pubId = publicacionId; 8 var tagNombre = tagName; 9 10 var commons = (c == null) ? new Commons() : c; 11 var totalPages = 0; 12 var alreadyLoadedPage = 0; 13 var contador = 0; 14 var nd1 = new Date();var g1 = nd1.getSeconds(); 15 16 var creaImgAutor =function (post, tipo, usuario=null) { 17 let aImgAutor = document.createElement("A"); 18 19 aImgAutor.setAttribute("target","_blank"); 20 21 let imgAutor = document.createElement("IMG"); 22 imgAutor.classList.add("align-self-center","imgAutor","rounded-circle","d-inline-block","p-0"); 23 24 imgAutor.setAttribute("alt", "fotoUsuario_"+tipo); 25 aImgAutor.appendChild(imgAutor); 26 27 var href = ""; 28 var srcRaw = "/uploads/usuarios/logo_usuario.png"; 29 var src = commons.GetAsset(srcRaw); 30 //var src = commons.GetAsset("/uploads/usuarios/logo_usuario.png"); 31 switch (tipo) { 32 case "usuario": 33 case "loggin"://TODO - modificar la palabra loggin por login 34 href = (baseUrl+"docente/"+usuarioLogId+"/detalle"); 35 //src = baseUrl+usuarioLogFoto; 36 srcRaw = usuarioLogFoto; 37 //src = commons.GetAsset(usuarioLogFoto); 38 break; 39 case "autor": 40 href = (baseUrl+"docente/"+post.autorId+"/detalle"); 41 //src = baseUrl+post.autorFoto; 42 let fotoChat = post.autorFoto.replace(".", "-resize-55-55."); 43 //srcRaw = post.autorFoto; 44 srcRaw = fotoChat; 45 //src = commons.GetAsset(post.autorFoto); 46 break; 47 } 48 src = commons.GetAsset(srcRaw); 49 aImgAutor.setAttribute("href",href); 50 let urlShowPost = baseUrl+'showpost?pubId='+post.id+'&urlImg='+srcRaw; 51 imgAutor.setAttribute("src", src); 52 imgAutor.setAttribute("data-original", urlShowPost); 53 imgAutor.classList.add("lazyload"); 54 return aImgAutor; 55 };//end - creaImgAutor 56 57 58 var crearLinkDetalle = function (data_id,data_fechaCreacion_timestamp,data_publicacionId){ 59 //let spanHora = document.createElement("SPAN"); 60 let spanHora = document.createElement("A"); 61 spanHora.classList.add("ml-1", "spanHora");
62 let fechaPub = commons.fechaPublicacion(data_fechaCreacion_timestamp); 63 let fechaPubTexto = new Date(data_fechaCreacion_timestamp*1000); 64 spanHoraTxt = document.createTextNode(fechaPub); 65 if(data_publicacionId === undefined){ 66 let linkPost = baseUrl+"publicacion/"+data_id+"/detalle"; 67 spanHora.setAttribute("style",'cursor:pointer;'); 68 spanHora.setAttribute("title",'click para ver la publicación ('+fechaPubTexto.toLocaleString()+')'); 69 //spanHora.setAttribute("onclick",'location.href="'+linkPost+'"') 70 spanHora.setAttribute("href",linkPost); 71 spanHora.setAttribute("target",'_blank'); 72 spanHora.setAttribute("rel",'follow'); 73 } 74 spanHora.appendChild(spanHoraTxt); 75 return spanHora; 76 }; 77 78 var creaHeaderDePostCommRes = function (elementoDondeSeAgrega, tipo, data){ 79 var divImgAutor= document.createElement("DIV"); 80 81 // Nombre del Autor 82 var divNombreAutor = document.createElement("DIV"); 83 divNombreAutor.classList.add("ml-1","pl-1","pl-sm-2","row","col","justify-content-start","align-self-center", "divNombreAutor"); 84 85 var aNombre = document.createElement("A"); 86 aNombre.setAttribute("target","_blank"); 87 88 var h4Size = (tipo != "post" && tipo != "comm") ? "H4" : "H3"; 89 var h4Nombre = document.createElement(h4Size); 90 91 // span de la hora de publicacion 92 var spanHora = crearLinkDetalle(data.id,data.fechaCreacion.timestamp,data.publicacionId); 93 /* 94 var spanHora = document.createElement("SPAN"); 95 spanHora.classList.add("ml-1", "spanHora") 96 spanHoraTxt = document.createTextNode(commons.fechaPublicacion(data.fechaCreacion.timestamp)); 97 if(data.publicacionId === undefined){ 98 var linkPost = baseUrl+"publicacion/"+data.id+"/detalle"; 99 spanHora.setAttribute("style",'cursor:pointer;'); 100 spanHora.setAttribute("title",'click para ver la publicación'); 101 spanHora.setAttribute("onclick",'location.href="'+linkPost+'"') 102 } 103 spanHora.appendChild(spanHoraTxt); 104 */ 105 106 aNombre.appendChild(h4Nombre); 107 divNombreAutor.appendChild(aNombre); 108 divNombreAutor.appendChild(spanHora); 109 110 // se agregarn al header de la publicacion la foto y nombre del autor 111 var autorNombreApellido = (data.publicacionId === undefined) ? (data.autorNombre+' '+data.autorApellido) : (data.usuarioNombre+' '+data.usuarioApellido); 112 //var linkDocente = baseUrl+"docente/"+data.autorId+"/detalle"; 113 var linkDocente = commons.getDocenteLink(data.autorId); 114 var h4NombreTxt = '...'; 115 var claseFoto = ''; 116 var cia = ''; 117 118 elementoDondeSeAgrega.appendChild(divImgAutor); 119 elementoDondeSeAgrega.appendChild(divNombreAutor); 120 121 switch (tipo) { 122 case 'post': 123 claseFoto = 'fotoPost'; 124 cia = 'autor'; 125 divImgAutor.classList.add("pl-0"); 126 break; 127 case 'comm': 128 case 'ultimoCOmm': 129 claseFoto = 'fotoComm'; 130 cia = 'autor'; 131 divImgAutor.classList.add("pl-0"); 132 break; 133 case 'res': 134 claseFoto = 'fotoComm'; 135 cia = 'ultimoComm'; 136 divNombreAutor.classList.add("divNombreAutorRes"); 137 divImgAutor.classList.add("pl-2"); 138 break; 139 default: 140 claseFoto = 'fotoPost fotoPostDefault'; 141 cia = 'autor ciaDefault' 142 } 143 144 divImgAutor.classList.add("justify-content-start","align-self-center", claseFoto); 145 divImgAutor.appendChild(creaImgAutor(data, cia)); 146 aNombre.setAttribute("href",linkDocente); 147 h4NombreTxt = document.createTextNode(autorNombreApellido); 148 h4Nombre.appendChild(h4NombreTxt); 149 150 var contenedorMiniMenu = document.createElement("DIV"); 151 contenedorMiniMenu.classList.add("text-right"); 152 elementoDondeSeAgrega.appendChild(contenedorMiniMenu); 153 154 /* 155 aca se crean los 3 puntos para 156 los usuarios autores del post y/o administradores, 157 esto permite editar, borrar o fijar (solo admin) una publicacion. 158 */ 159 if((data.autorId == usuarioLogId) || (usuarioLogRole == 1)){ 160 //if((data.autorId == usuarioLogId) || (commons.chequearRolUsuario('',usuarioLogRole)){ 161 // contenedorMiniMenu.appendChild(crearGrupoBotonMenu(contenedorMiniMenu,data.id,tipo,data.estado)); 162 } 163 contenedorMiniMenu.appendChild(crearGrupoBotonMenu(data.autorId,usuarioLogId,usuarioLogRole,data.id,tipo,data.estado,data.publicacionId)); 164 };//end - creaHeaderDePostCommRes 165 166 var crearComm = function (elementoDondeSeAgrega, data, tipo, idOriginal){ 167 //console.log("paso por crearComm:",idOriginal, tipo, elementoDondeSeAgrega, data); 168 // creo el div contenedor del header del comentario y lo agrego al bloque de comentario 169 var contComm = document.createElement("DIV"); 170 contComm.classList.add("contenido-post-gris",'dcode-js-crearComm-contComm','pt-2','pr-2','pb-2','pl-3'); 171 elementoDondeSeAgrega.appendChild(contComm); 172 var divHeaderComm = document.createElement("DIV"); 173 divHeaderComm.classList.add("debug_creaComm_"+contador,"row","col-12","divHeaderResComm","dcode-js-divHeaderResComm-divHeaderComm-crearComm"); 174 divHeaderComm.style.marginLeft = "-5px !important"; 175 divHeaderComm.style.paddingRight = "0 !important"; 176 divHeaderComm.style.paddingLeft = "0 !important"; 177 contComm.appendChild(divHeaderComm); 178 // llama a funcion que crea div del contenido del comentario y lo agrego al bloque de comentarios 179 // if (tipo == "ultimoComm"){ 180 // // llamo a la funcion que crea el header de las publicacion Comentarios, Respuestas 181 // creaHeaderDePostCommRes(divHeaderComm, "ultimoComm", data); 182 // divContenidoDelPostCommRes( data, contComm, "pl-4", "ultimoComm"); 183 // creaBarraComm(elementoDondeSeAgrega, data, idOriginal); 184 // creaInputComm(elementoDondeSeAgrega, data, "comm", idOriginal); 185 // } else if( tipo == "comm"){ 186 // llamo a la funcion que crea el header de las publicacion Comentarios, Respuestas 187 creaHeaderDePostCommRes(divHeaderComm, "comm", data); 188 divContenidoDelPostCommRes( data, contComm, "pl-4", "comm"); 189 creaBarraComm(elementoDondeSeAgrega, data, idOriginal); 190 //creaInputComm(elementoDondeSeAgrega, data, tipo, idOriginal); 191 //var botonesPostId = (tipo == "respuesta") ? data.id+"-"+data.publicacionid : data.id+"-"; 192 var botonesPostId = (tipo == "respuesta") ? data.id+"-"+data.publicacionId : data.publicacionId+"-";
193 //var btnPost = document.getElementById('botonesPost-'+botonesPostId); 194 var btnPost = document.getElementById(botonesPostId+'barraComm'); 195 /* 196 console.log("----------------------------------------------------------",(btnPost != null)); 197 console.log("(btnPost != null):",(btnPost != null)); 198 console.log("esta es la llamada numero 3 - crearComm linea 117 - antes del IF:",data.id,data.publicacionId,tipo,btnPost,botonesPostId,data); 199 */ 200 if(btnPost != null){ 201 // console.log("paso por IF:",btnPost); console.log("esta es la llamada numero 3 - crearComm linea 117 - ADENTRO del IF:",tipo,btnPost,botonesPostId); 202 creaInputComm(btnPost, data, tipo, idOriginal); 203 } 204 // console.log("__________________________________________________________",(btnPost != null)); 205 206 var contenedorFormResponder = document.createElement("DIV"); 207 contenedorFormResponder.classList.add("row-2","dcode-js-crearComm-contenedorFormResponder-"+data.id); 208 contenedorFormResponder.setAttribute('id',`contenedorFormResponder-${data.id}`); 209 elementoDondeSeAgrega.appendChild(contenedorFormResponder); 210 211 creaInputComm(contenedorFormResponder, data, tipo, data.publicacionId); 212 213 var contenedorRespuestas = document.createElement("DIV"); 214 contenedorRespuestas.classList.add("row-2","dcode-js-crearComm-contenedorRespuestas-"+data.id); 215 contenedorRespuestas.setAttribute('id',`contenedorRespuestas-${data.id}`) 216 elementoDondeSeAgrega.appendChild(contenedorRespuestas) 217 if (data.respuestas.length >0){ 218 data.respuestas.forEach(res =>{ 219 crearResp(contenedorRespuestas,res); 220 } 221 ) 222 } 223 commons.animarElemento(contComm); 224 };//end - crearComm 225 226 var crearResp = function(contenedorRespuestas,res){ 227 // console.log('paso por crearResp:', contenedorRespuestas, res); 228 divRespuesta = document.createElement("DIV"); 229 createObject(divRespuesta, new Array('respuesta','dcode-js-divRespuesta'), {"id":`divRespuesta-${res.id}`}); 230 231 divHeaderRes = document.createElement("DIV");//divHeaderRes.classList.add("row", "justify-content-end"); 232 createObject(divHeaderRes, new Array("row", "justify-content-end")); 233 creaHeaderDePostCommRes(divHeaderRes, "res", res); 234 235 divRespuesta.appendChild(divHeaderRes); 236 divContenidoDelPostCommRes( res, divRespuesta, "ml-auto", "respuesta",'dcode-crearResp-divRespuesta'); 237 238 divLikeRespuesta = document.createElement("DIV"); 239 //createObject(divLikeRespuesta, new Array("justify-content-center", "row", "btnLikeRes",'dcode-js-crearResp-divLikeRespuesta-btnLikeRes')); 240 createObject(divLikeRespuesta, new Array("likeRespuesta", "block", "btnLikeRes",'dcode-js-crearResp-divLikeRespuesta-btnLikeRes'), {"id":`divLikeRespuesta-${res.id}`}); 241 242 //divRespuesta.appendChild(divLikeRespuesta); 243 244 pTxtLike = document.createElement("DIV"); 245 let spanLikes = document.createElement("SPAN"); 246 createObject(spanLikes, null, {'id':'ctnLikes-'+res.id+"-"+commons.getConstante('TipoNotificacion','LikeRespuesta')}); 247 248 let ctnLikes = document.createTextNode(res.likes); 249 250 spanLikes.appendChild(ctnLikes); 251 pTxtLike.appendChild(spanLikes); 252 253 let aon = (res.tieneLike >= 1) ? true : false; 254 btnInteractivos(res, "btnLike", aon, pTxtLike, "respuesta", res.publicacionId); 255 256 divLikeRespuesta.appendChild(pTxtLike); 257 if(contenedorRespuestas != null){ 258 contenedorRespuestas.prepend(divLikeRespuesta); 259 contenedorRespuestas.prepend(divRespuesta); 260 //divRespuesta.appendChild(divLikeRespuesta); 261 } 262 commons.animarElemento(divRespuesta); 263 /* 264 contenedorRespuestas.appendChild(divRespuesta);//divRespuesta.scrollIntoView();//divLikeRespuesta.scrollIntoView();console.log("divLikeRespuesta.offsetTop:",divLikeRespuesta.offsetTop);console.log("__divLikeRespuesta.scrollTop:",divLikeRespuesta.scrollTop);console.log("divRespuesta.offsetTop:",divRespuesta.offsetTop);console.log("__divRespuesta.scrollTop:",divRespuesta.scrollTop);console.log("contenedorRespuestas.offsetTop:",contenedorRespuestas.offsetTop);console.log("__contenedorRespuestas.scrollTop:",contenedorRespuestas.scrollTop);
264//contenedorRespuestaswindow.scrollTo(0,divRespuesta.offsetTop); 265 */ 266 };//end - crearResp 267 268 var creaBarraComm = function (elementoDondeSeAgrega, dataComm, idPostOriginal){ 269 var barraComm = document.createElement("DIV"); 270 barraComm.classList.add("barraComm", "text-center"); 271 barraComm.setAttribute("id", dataComm.id+"barraComm"); 272 barraComm.setAttribute("data-rel", dataComm.id+"_") 273 if(dataComm.publicacionId !== undefined){ 274 barraComm.setAttribute("data-rel", dataComm.id+"_"+dataComm.publicacionId); 275 } 276 elementoDondeSeAgrega.appendChild(barraComm); 277 // botones 278 var btnsComm = document.createElement("DIV"); 279 btnsComm.classList.add("btnsComm", "text-left", "ml-3"); 280 281 let likes = document.createElement("SPAN"); 282 likes.setAttribute('id','ctnLikes-'+dataComm.id+"-"+commons.getConstante('TipoNotificacion','LikeComentario')); 283 let ctnLikes = document.createTextNode(dataComm.likes); 284 likes.appendChild(ctnLikes); 285 btnsComm.appendChild(likes); 286 var commTieneLike = (dataComm.tieneLike == 0) ? false : true; 287 btnInteractivos(dataComm, "btnLike", commTieneLike, btnsComm, "LikeComentario", "",commons.getConstante('TipoNotificacion','LikeComentario')); 288 289 let comms = document.createElement("SPAN"); 290 comms.setAttribute('id', 'ctnResp-'+dataComm.publicacionId+"-"+dataComm.id); 291 let ctnComms = document.createTextNode(dataComm.respuestas.length); 292 comms.appendChild(ctnComms); 293 btnsComm.appendChild(comms) 294 btnInteractivos(dataComm, "btnComm", false, btnsComm, "respuesta", idPostOriginal); 295 barraComm.appendChild(btnsComm); 296 };//end - barraComm 297 298 var btnInteractivos = function ( post, tipo, activoOno, elementoDondeSeAgrega, originalORespuesta, idpostorginal,tipoLike=null){ 299 var btn = document.createElement("BUTTON"); 300 btn.classList.add(tipo,"btn", "btn-transparent", "px-1", "px-sm-2", "mr-0", "mr-sm-4", "dcode-js-btn-"+tipo ); 301 302 var icono = document.createElement("IMG") 303 btn.setAttribute( "data-idrelacion", post.id); 304 btn.setAttribute( "data-idautor", post.autorId); 305 btn.setAttribute( "data-idpublicacion", post.id); 306 btn.setAttribute( "data-idcomentario", 0); 307 if(post.publicacionId !== undefined){ 308 btn.setAttribute( "data-idcomentario", post.id); 309 btn.setAttribute( "data-idpublicacion", post.publicacionId); 310 } 311 312 switch(tipo){ 313 case 'btnLike': 314 let claseLike = "darLike"; 315 let dataLike = 0; 316 let imgLike = commons.GetAsset("atenea/images/feed/Like_des.png"); 317 if (activoOno){ 318 claseLike = "darDislike"; 319 dataLike = post.tieneLike; 320 imgLike = commons.GetAsset("atenea/images/feed/Like_selecc.png"); 321 } 322 btn.classList.add(claseLike); 323 btn.setAttribute( "data-like", dataLike); 324 icono.setAttribute("width", 24); 325 icono.setAttribute("src", imgLike); 326 break; 327 case 'btnComm': 328 let esResp = (post.tipoLike == 1) ? false : true; 329 let targetName = (esResp) ? "#inputCommRes-" : '#inputComm-'; 330 let focusName = (esResp) ? "inputTxtRes-" : "inputTxt-"; 331 let mixId = (esResp) ? idpostorginal+'-'+post.id : post.id+'-'; 332 let target = targetName+mixId; 333 let focus = focusName+mixId; 334 btn.setAttribute( "aria-controls", target); 335 btn.setAttribute( "data-focus", focus); 336 btn.setAttribute( "aria-expanded", "false"); 337 var comSel = (activoOno) ? commons.GetAsset("atenea/images/feed/Comment_selecc.png") : commons.GetAsset("atenea/images/feed/Comment_des.png"); 338 icono.setAttribute("src", comSel); 339 let dataTarget = "#loginModal"; 340 let dataToggle = "modal"; 341 if(usuarioLogId != 0){ 342 dataTarget = target; 343 dataToggle = "collapse"; 344 } 345 btn.setAttribute( "data-target", dataTarget); 346 btn.setAttribute( "data-toggle", dataToggle); 347 break; 348 case 'btnShare': 349 btn.setAttribute( "data-toggle", "modal"); 350 btn.setAttribute( "data-target", "#modal-socialmedia"); 351 icono.setAttribute("src", commons.GetAsset('atenea/images/feed/Compartir.png')); 352 break; 353 } 354 btn.setAttribute( "data-tipo",post.tipo);
355 btn.setAttribute( "data-tipolike",post.tipoLike); 356 btn.appendChild(icono); 357 elementoDondeSeAgrega.appendChild(btn); 358 };//end - btnInteractivos 359 360 var onlyUnique = function (value, index, self) { 361 return self.indexOf(value) === index; 362 }; 363 364 var divContenidoDelPostCommRes = function (data, elementoDondeSeAgrega, claseAdicional, tipoPostCommRes, unicoItem){ 365 let limiteCaracteres = 2000; 366 /* 367 console.log('inicio------------------------------------'); 368 console.log('data.id: ',data.id); 369 //console.log(data); 370 console.log('data++++++++++++++'); 371 */ 372 // div del contenido texto de la publicacion 373 let multiCollpase = "multi-collapse"+data.id; 374 var divTextPublicacion = document.createElement("DIV"); 375 divTextPublicacion.setAttribute("id", "divTextPublicacion-"+data.id); 376 divTextPublicacion.classList.add("textPublicacion","text-justify","textoCompletoPost","dcode-js-divTextPublicacion-divContenidoDelPostCommRes-textoCompletoPost",multiCollpase,"collapse");//,"collapse" 377 378 var divTextPublicacionVerMas = document.createElement("DIV"); 379 divTextPublicacionVerMas.setAttribute("id", "divTextPublicacionVerMas-"+data.id); 380 divTextPublicacionVerMas.classList.add("textPublicacion","text-justify","textoVerMasPost","dcode-js-divTextPublicacionVerMas-divContenidoDelPostCommRes-textoVerMasPost",multiCollpase,"collapse","show"); 381 382 // div del contenido texto de la publicacion 383 var divPreview = document.createElement("DIV"); 384 divPreview.classList.add("text-justify","dcode-js-divPreview-divContenidoDelPostCommRes"); 385 // crea elemento p del contenido 386 var pPost = document.createElement("P"); 387 pPost.classList.add("dcode-js-pPost-divContenidoDelPostCommRes") 388 // pPost.classList.add("mt-3") 389 var pPostVerMas = document.createElement("P"); 390 pPostVerMas.classList.add("dcode-js-pPostVerMas-divContenidoDelPostCommRes") 391 392 // dependiendo del tipo agrega el contenido de post original, comentario o respuesta del comentario 393 var pPostTxt = ""; 394 var pPostTxtVerMas = ""; 395 //console.log(data); 396 //console.log('cant ',data.contenido.length); 397 let dataContenido = data.contenido; 398 //console.log("aca 1+++"); 399 if (tipoPostCommRes == "post"){ 400 if(data.tipo == 5){ 401 pPostTxt = dataContenido; 402 }else{ 403 /* 404 console.log("aca 4"); 405 */ 406 if(dataContenido.length >= limiteCaracteres){ 407 pPostTxt = dataContenido; 408 pPostTxtVerMas = dataContenido.substr(0,limiteCaracteres);//se podria configurar un limite con alguna variable de .env .env.local 409 }else{ 410 pPostTxt = dataContenido; 411 pPostTxtVerMas = ""; 412 } 413 let matchesHREF; 414 let matchesHREFclean; 415 //console.log('pPostTxtVerMas',pPostTxtVerMas); 416 //pPostTxt = commons.getUrlText(data.contenido,'a-contenido'); 417 //var matches = data.contenido.match(/\bhttps?:\/\/\S+/gi); 418 //var matches = data.contenido.match(/\bhttps?:\/\/\S+/gi); 419 //var matches = data.contenido.match(/\bhref?=\/\/\S+/gi); 420 var matches = data.contenido.match(/<a\s+(?:[^>]*?\s+)?href=(["'])(.*?)\1/g); 421 if(matches != null){ 422 /* 423 console.log("aca 5 - se encontro algo con https"); 424 console.log(matches); 425 console.log("................................................................."); 426 */ 427 let contPostFancybox = document.getElementById("carouselInner-"+data.id); 428 contPostFancybox.classList.add("mt-2"); 429 //crearPrevisualiacionLink(matches[0],divPreview,data.id); 430 ///console.log(contPostFancybox); 431 //crearPrevisualiacionLink(matches[0], contPostFancybox, data.id, unicoItem); 432 let unicos = new Array(); 433 let encontrados = new Array(); 434 let incluye = false;
435 for (x in matches) { 436 if(matches[x].includes("nofollow")){ 437 matchesHREF = data.contenido.match(/\https?:\/\/\S+/gi); 438 //console.log(matchesHREF); 439 for (y in matchesHREF) { 440 matchesHREFclean = matchesHREF[y].replace(/['"]+/g, ''); 441 matchesHREFclean = matchesHREFclean.replace('</a>',''); 442 let ori = matchesHREFclean; 443 //let tempo = matchesHREFclean+'>'+matchesHREFclean+'</a>'; 444 let tempo = ori+'>'+ori+'</a>'; 445 //console.log('tempooooo:',tempo); 446 matchesHREFclean = matchesHREFclean.replace(tempo,''); 447 //tempo = matchesHREFclean+'>'+matchesHREFclean; 448 tempo = ori+'>'+ori; 449 matchesHREFclean = matchesHREFclean.replace(tempo,''); 450 //tempo = matchesHREFclean+'%3E'+matchesHREFclean; 451 tempo = ori+'%3E'+ori; 452 matchesHREFclean = matchesHREFclean.replace(tempo,''); 453 //matchesHREFclean = matchesHREFclean.replace('>',''); 454 if ( matchesHREFclean.includes(">") == false) { 455 //console.log('tempo es: ',tempo);console.log('matchesHREFclean:',matchesHREFclean); 456 //console.log('paso por if',matchesHREFclean); 457 //console.log('---------------------'); 458 encontrados.push(matchesHREFclean); 459 } 460 /* 461 incluye = matchesHREFclean.includes("</a>"); 462 if(incluye){ 463 //console.log('por IF no hace nada porque encontro el a final'); 464 }else{ 465 //console.log('va por ELSE y se agrega a encontrados'); 466 //crearPrevisualiacionLink(matches[x], contPostFancybox, data.id, unicoItem); 467 //crearPrevisualiacionLink(matchesHREFclean, contPostFancybox, data.id, unicoItem); 468 } 469 */ 470 } 471 } 472 } 473 unicos = encontrados.filter(onlyUnique); 474 //unicoItemFinal = ((unicoItem == true) && (z == 0)) ? true : false; 475 /* 476 console.log('unicos',unicos); 477 console.log('encontrados',encontrados); 478 console.log('.......................................'); 479 console.log('encontrados',encontrados); 480 */ 481 for (z in unicos) { 482 //unicoItem = ((unicos.length >= 1) && (z == 0)) ? false : true; 483 unicoItemFinal = (z == 0) ? unicoItem : false; 484 /* 485 console.log('unicoItemFinal',unicoItemFinal); 486 console.log('.......................................'); 487 console.log('encontrados[z]',encontrados[z]); 488 */ 489 crearPrevisualiacionLink(encontrados[z], contPostFancybox, data.id, unicoItemFinal); 490 } 491 } 492 } 493 } else { 494 //console.log("aca 6"); 495 pPost.classList.add("pCommRes"); 496 pPostTxt = dataContenido; 497 } 498 //console.log("aca 7---"); 499 //pPost.insertAdjacentHTML('beforeend',pPostTxt); 500 if(dataContenido.length >= limiteCaracteres){ 501 pPost.insertAdjacentHTML('beforeend',pPostTxt); 502 pPostVerMas.insertAdjacentHTML('beforeend',pPostTxtVerMas); 503 //pPost.insertAdjacentHTML('beforeend',pPostTxtVerMas); 504 }else{ 505 pPost.insertAdjacentHTML('beforeend',pPostTxt); 506 } 507 divTextPublicacion.appendChild(pPost); 508 if(dataContenido.length >= limiteCaracteres){ 509 divTextPublicacionVerMas.appendChild(pPostVerMas); 510 } 511 512 // se agrega el el contenido texto al div contenedor del contenido de post 513 elementoDondeSeAgrega.appendChild(divTextPublicacion); 514 if(dataContenido.length >= limiteCaracteres){ 515 elementoDondeSeAgrega.appendChild(divTextPublicacionVerMas); 516 517 let divVerMasContenidoPost = document.createElement("DIV"); 518 divVerMasContenidoPost.classList.add("textPublicacion","text-center","mb-4","mp-4","dcode-js-divVerMasContenidoPost"); 519 let pVerMasContenidoPost = document.createElement("BUTTON"); 520 pVerMasContenidoPost.setAttribute("id", "verMasContenido-"+data.id); 521 pVerMasContenidoPost.classList.add("btn","btn-primary","botonVerMasContenido","dcode-js-a-pVerMasContenidoPost"); 522 pVerMasContenidoPost.setAttribute("type", "button"); 523 pVerMasContenidoPost.setAttribute("data-toggle", "collapse"); 524 pVerMasContenidoPost.setAttribute("data-target", ".multi-collapse"+d
524ata.id); 525 pVerMasContenidoPost.setAttribute("aria-expanded", "false"); 526 pVerMasContenidoPost.setAttribute("aria-controls", "divTextPublicacion-"+data.id+" divTextPublicacionVerMas-"+data.id); 527 //let pVerMasContenidoPostTxtNode = dataContenido.substr(0,2000);//se podria configurar un limite con alguna variable de .env .env.local 528 let pVerMasContenidoPostTxtNode = "Ver Más";//se podria configurar un limite con alguna variable de .env .env.local 529 let pVerMasContenidoPostTxt = document.createTextNode(pVerMasContenidoPostTxtNode); 530 531 var divTextPublicacion = document.createElement("DIV"); 532 divTextPublicacion.classList.add("textPublicacion","text-justify","textoCompletoPost","dcode-js-divTextPublicacion-divContenidoDelPostCommRes-textoCompletoPost",multiCollpase,"collapse"); 533 534 535 pVerMasContenidoPost.appendChild(pVerMasContenidoPostTxt); 536 divVerMasContenidoPost.appendChild(pVerMasContenidoPost); 537 elementoDondeSeAgrega.appendChild(divVerMasContenidoPost); 538 }else{ 539 divTextPublicacion.classList.add("show");//,"collapse" 540 } 541 542 elementoDondeSeAgrega.appendChild(divPreview); 543 // si tiene archivo 544 /* ############# POR AHORA NO MOSTRAR IMAGEN EN COMENTARIOS ############################## 545 if (tipoPostCommRes != "respuesta" && tipoPostCommRes != "post"){ 546 if (data.archivos.length>0){ 547 var divArch = document.createElement("DIV"); 548 divArch.classList.add("text-center") 549 550 var imgEditar = document.createElement("IMG") 551 imgEditar.setAttribute("src", data.archivos[0].ruta) 552 imgEditar.classList.add("imgComm"); 553 divArch.appendChild(imgEditar); 554 elementoDondeSeAgrega.appendChild(divArch) 555 } 556 } 557 */ 558 };//end - divContenidoDelPostCommRes 559 560 var crearGrupoBotonMenu = function(data_autorId, usuarioLogId, usuarioLogRole , id, tipo, estado,postId){ 561 var grupoBtns = document.createElement("DIV"); 562 grupoBtns.classList.add("GrupoBotonMenu"); 563 grupoBtns.setAttribute("id", id+'_'+tipo+'_'+estado); 564 565 let mostrarBotones = false; 566 567 if (estado == commons.getConstante('EstadoPublicacion','Fijada')){ 568 mostrarBotones = true; 569 } 570 571 if (data_autorId == usuarioLogId){ 572 mostrarBotones = true; 573 } 574 575 if (usuarioLogRole == 1){ 576 mostrarBotones = true; 577 } 578 579 if (mostrarBotones){ 580 grupoBtns.classList.add("btn-group"); 581 var btnPuntitos = document.createElement("BUTTON"); 582 btnPuntitos.classList.add("btn", "btn-publicacion-menu", "dropdown-toggle","justify-content-start","align-self-center","btn-publicacion-menu-"+tipo+"-"+postId); 583 btnPuntitos.setAttribute("data-toggle", "dropdown"); 584 btnPuntitos.setAttribute("data-tipo", tipo); 585 btnPuntitos.setAttribute("aria-haspopup", "true"); 586 btnPuntitos.setAttribute("aria-expanded", "false"); 587 btnPuntitos.setAttribute("id", id); 588 if( estado == commons.getConstante('EstadoPublicacion','Fijada') ){ 589 var elemI = document.createElement("IMG"); 590 elemI.setAttribute("src",commons.GetAsset("atenea/images/Icono_Fijado.png")); 591 elemI.setAttribute("width","24"); 592 }else{ 593 var elemI = document.createElement("I"); 594 elemI.classList.add("fas", "fa-ellipsis-v"); 595 } 596 btnPuntitos.appendChild(elemI); 597 grupoBtns.appendChild(btnPuntitos); 598 } 599 600 var dropdown = document.createElement("DIV"); 601 dropdown.classList.add("dropdown-menu", "dropdown-publicaciones"); 602 grupoBtns.appendChild(dropdown); 603 604 if ( (data_autorId == usuarioLogId) || (usuarioLogRole == 1) ){ 605 var item2 = document.createElement("A"); 606 var txtTipo = (tipo == "post") ? "Publicación" : ""; 607 var actionDelete = (tipo == "post") ? "actionDeletePublicacion" : "actionDeleteComentario"; 608 item2.classList.add("dropdown-item", "dropdown-publicaciones-item", "btn", "text-muted", actionDelete); 609 var item2Txt = document.createTextNode("Eliminar "+txtTipo); 610 item2.setAttribute("id", id); 611 item2.appendChild(item2Txt); 612 dropdown.appendChild(item2); 613 } 614 615 // console.log('tipo: ',tipo); 616 617 if ( (usuarioLogRole == 1) && (tipo == "post") ){ 618 let item3 = document.createElement("A"); 619 //item3.classList.add("dropdown-item", "dropdown-publicaciones-item","btn","actionFijar","text-danger"); 620 item3.classList.add("dropdown-item", "dropdown-publicaciones-item","btn"); 621 item3.setAttribute('data-publicacion',id); 622 let item3TxtNode = "Fijar Publicación"; 623 if(estado == commons.getConstante('EstadoPublicacion','Fijada')){ 624 item3.classList.add("actionQuitarFijado","text-danger"); 625 item3TxtNode = "Desfijar Publicación"; 626 }else{ 627 item3.classList.add("actionFijar","text-warning"); 628 } 629 let item3Txt = document.createTextNode(item3TxtNode); 630 item3.appendChild(item3Txt); 631 dropdown.appendChild(item3); 632 } 633 634 if (tipo == "post"){ 635 /* 636 //por el momento no hay opcion de editar post 637 btnPuntitos.classList.add("miniMenuPost"); 638 var item1 = document.createElement("A"); 639 item1.classList.add("dropdown-item", "dropdown-publicaciones-item", "actionEditar"); 640 item2.classList.add("actionDelete"); 641 item1.setAttribute("type", "button"); 642 item1.setAttribute("data-toggle","modal" ); 643 item1.setAttribute("data-target",".modificarPost"); 644 item1.setAttribute("dataIdPost", id); 645 var item1Txt = document.createTextNode("Editar"); 646 item1.appendChild(item1Txt); 647 dropdown.appendChild(item1); 648 */ 649 } else{ 650 if ( (data_autorId == usuarioLogId) || (usuarioLogRole == 1) ){ 651 item2.classList.add("btn"); 652 //item2.classList.add("actionDeleteComentario"); 653 txtTipo = (tipo == 'comm') ? ' Comentario' : ' Respuesta'; 654 let item2Txt = document.createTextNode(txtTipo);//let comResTxt = (tipo == 'comm') ? 'Comentario' : 'Respuesta';//let item2Txt = document.createTextNode(comResTxt); 655 item2.appendChild(item2Txt); 656 item2.setAttribute("id", id); 657 } 658 } 659 return grupoBtns; 660 };//end - creeate3PointDots 661 662 var crearItemCarrusel = function(indexItem,pId,pArchivos,contDeImg){ 663 var divImg = document.createElement("DIV"); 664 divImg.classList.add("carousel-item"); 665 // si es la primera imagen agregale la clase active 666 if(indexItem == 0){ 667 divImg.classList.add("active"); 668 } 669 // crea la imagen o video 670 var divImgA = document.createElement("A"); 671 divImgA.classList.add("fancybox"); 672 let tipoArchivo = pArchivos[indexItem].tipo.slice(0,5); 673 let tipoArchivo2 = pArchivos[indexItem].tipo; 674 //console.log('+++++++++++++++++++++++++++++++++++++++++++++++tipoArchivo:',tipoArchivo); 675 //console.log('tipoArchivo2: --------------------------------> ',tipoArchivo2); 676 switch(tipoArchivo){ 677 case 'video': 678 var img = document.createElement("VIDEO"); 679 img.setAttribute("alt", "videoPost"); 680 img.setAttribute("controls", ""); 681 // img.setAttribute("type", pArchivos[indexItem].tipo.slice(0,5)); 682 break; 683
684 case 'appli'://pdfs - esto hay que cambiarlo para que funcione meindexItemor 685 var img = document.createElement("IMG"); 686 img.setAttribute("alt", "click para ver el pdf"); 687 img.setAttribute("title", "click para ver el pdf"); 688 //img.setAttribute("type", pArchivos[indexItem].tipo.slice(0,5)); 689 img.setAttribute("type", 'image'); 690 break; 691 692 default: 693 case 'img': 694 var img = document.createElement("IMG"); 695 img.setAttribute("alt", "imgPost"); 696 img.setAttribute("type", pArchivos[indexItem].tipo.slice(0,5)); 697 // img.setAttribute("data-toggle", "popover"); 698 // img.setAttribute("data-content", `<img style="max-width: 200%; max-height: 200%; margin: auto; min-width: 50%; max-height: 50%;" src="${baseUrl+pArchivos[indexItem].ruta}"></img>`); 699 // ="" title="Modal Short Text" data-content= 700 break; 701 } 702 /* 703 if (pArchivos[indexItem].tipo.slice(0,5) == "video"){ 704 var img = document.createElement("VIDEO"); 705 img.setAttribute("alt", "videoPost"); 706 img.setAttribute("controls", ""); 707 // img.setAttribute("type", pArchivos[indexItem].tipo.slice(0,5)); 708 } else { 709 var img = document.createElement("IMG"); 710 img.setAttribute("alt", "imgPost"); 711 img.setAttribute("type", pArchivos[indexItem].tipo.slice(0,5)); 712 // img.setAttribute("data-toggle", "popover"); 713 // img.setAttribute("data-content", `<img style="max-width: 200%; max-height: 200%; margin: auto; min-width: 50%; max-height: 50%;" src="${baseUrl+pArchivos[indexItem].ruta}"></img>`); 714 // ="" title="Modal Short Text" data-content= 715 } // cierra if de video p imagen 716 */ 717 divImgA.setAttribute("data-fancybox", "group"+pId); 718 divImgA.setAttribute("href", baseUrl+pArchivos[indexItem].ruta); 719 //img.setAttribute("src", baseUrl+pArchivos[indexItem].ruta); 720 img.setAttribute("width", 394); 721 img.setAttribute("height", 263); 722 img.setAttribute("src", commons.GetAsset('atenea/images/tenor.gif')); 723 //img.setAttribute("data-original", baseUrl+pArchivos[indexItem].ruta); 724 if(tipoArchivo == 'appli'){ 725 switch(tipoArchivo2){ 726 case 'application/vnd.openxmlformats-officedocument.presentationml.presentation': 727 img.setAttribute("data-original", commons.GetAsset('atenea/images/pptx.png')); 728 break; 729 case 'application/pdf': 730 default: 731 img.setAttribute("data-original", commons.GetAsset('atenea/images/pdf.png')); 732 break; 733 } 734 img.setAttribute("data-toggle", 'tooltip'); 735 img.setAttribute("data-placement", 'right'); 736 img.classList.add("pdf"); 737 img.classList.add("tt"); 738 }else{ 739 img.setAttribute("data-original", baseUrl+pArchivos[indexItem].ruta); 740 } 741 img.classList.add("d-block", "imgCarrusel", "mx-auto","lazyload","rounded"); 742 // agrega la imagen o video al div de la imgen 743 divImg.appendChild(divImgA); 744 divImgA.appendChild(img); 745 // agrega al contenedor de imagenes el div 746 contDeImg.appendChild(divImg) 747 };//end - crearItemCarrusel 748 749 var crearCarruselInner = function (postId,carDiv) { 750 carDiv.setAttribute("id", "carouselPublicaciones"+postId); 751 carDiv.classList.add("carousel","slide", "w-100"); 752 carDiv.setAttribute("data-ride", "carousel"); 753 carDiv.setAttribute("data-interval", "false"); 754 carDiv.setAttribute("style","margin:0 0 20px 0 !important;"); 755 };//end - crearCarruselInner 756 757 var crearCarrusel = function (postId,postArchivos){ 758 // crea carrusel- contenedor general de imagenes en carrusel 759 var carousel = document.createElement("DIV"); 760 crearCarruselInner(postId,carousel); 761 // crea el contenedor de las imagenes que forman el carrusel 762 var contenedorDeImg = document.createElement("DIV"); 763 contenedorDeImg.classList.add("carousel-inner"); 764 contenedorDeImg.setAttribute("id","carouselInner-"+postId); 765 // agrega el contenedor de imagenes al div de carrusel 766 carousel.appendChild(contenedorDeImg); 767 // para cada archivo S 768 for (let j = 0; j < postArchivos.length; j++) { 769 // crea div que contiene la imagen 770 crearItemCarrusel(j,postId,postArchivos,contenedorDeImg); 771 }//cierra el for de cada archivo 772 if (postArchivos.length >1){ 773 // crea botones del carrusel 774 var btnNext = document.createElement("A"); 775 btnNext.classList.add("carousel-control-next"); 776 btnNext.setAttribute("href", "#carouselPublicaciones"+postId); 777 btnNext.setAttribute("role", "button");
778 btnNext.setAttribute("data-slide", "next"); 779 var spanNext1 = document.createElement("SPAN"); 780 spanNext1.classList.add("carousel-control-next-icon"); 781 spanNext1.setAttribute("aria-hidden", "true"); 782 var spanNext2 = document.createElement("SPAN"); 783 spanNext2.classList.add("sr-only"); 784 spanNext2.innerHtml = "Next"; 785 btnNext.appendChild(spanNext1); 786 btnNext.appendChild(spanNext2); 787 var btnPrev = document.createElement("A"); 788 btnPrev.classList.add("carousel-control-prev"); 789 btnPrev.setAttribute("href", "#carouselPublicaciones"+postId); 790 btnPrev.setAttribute("role", "button"); 791 btnPrev.setAttribute("data-slide", "prev"); 792 var spanPrev1 = document.createElement("SPAN"); 793 spanPrev1.classList.add("carousel-control-prev-icon"); 794 spanPrev1.setAttribute("aria-hidden", "true"); 795 var spanPrev2 = document.createElement("SPAN"); 796 spanPrev2.classList.add("sr-only"); 797 spanPrev2.innerHtml = "Previous"; 798 btnPrev.appendChild(spanPrev1); 799 btnPrev.appendChild(spanPrev2); 800 // agrego botones 801 carousel.appendChild(btnPrev); 802 carousel.appendChild(btnNext); 803 } 804 // agrego el carrusel al contenido del post 805 return carousel; 806 };//end - crearCarrusel 807 808 const crearNuevoComentario = function(comentario){ 809 let id = 'ctnComms-'+comentario.publicacionId; 810 ////--------console.log('pase por crearNuevoComentario ANTES del if:',comentario); 811 // console.dir(comentario); 812 if (comentario.comentario !== null){ 813 // console.log('pase por crearNuevoComentario por el IF'); 814 var contenedorRespuestas = document.createElement("DIV"); 815 contenedorRespuestas.classList.add("row-2","dcode-js-crearNuevoComentario-contenedorRespuestas-"+comentario.id); 816 contenedorRespuestas.setAttribute('id',`contenedorRespuestas-${comentario.comentario}`); 817 $(`#bloqueComentario-${comentario.comentario}`).append(contenedorRespuestas); 818 //crearResp(document.getElementById(`contenedorRespuestas-${comentario.comentario}`), comentario); 819 }else{ 820 // console.log('pase por crearNuevoComentario por el ELSE'); 821 let nuevoComentario = document.createElement("DIV"); 822 //nuevoComentario.classList.add("m-3", "bloqueComm"); 823 nuevoComentario.classList.add("bloqueComm"); 824 nuevoComentario.setAttribute('id',`bloqueComentario-${comentario.id}`) 825 crearComm(nuevoComentario, comentario, 'comm', comentario.publicacionId); 826 $(`#contenedorComm${comentario.publicacionId}`).append(nuevoComentario); 827 } 828 /* 829 let pCant = document.getElementById(`cntCom-${comentario.publicacionId}`); 830 let nCant = parseInt(pCant.textContent)+1; 831 pCant.textContent = nCant; 832 */ 833 };//end - crearNuevoComentario 834 835 const guardarComentario = function(comentario) { 836 let formC; 837 //formC = document.getElementById(comentario.formularioid); 838 formC = $('#'+comentario.formularioid); 839 ////--------console.log("comentario:",comentario); 840 let formulario = (formC.length >= 1) ? formC[0] : formC; 841 let nfdata = new FormData(formulario); 842 /* 843 if (comentario.tipo == "original"){ 844 formC = document.getElementById(comentario.origen+"inputComm"); 845 } else{ 846 formC = document.getElementById(comentario.id+"inputCommRes"+comentario.origen); 847 }// cierra if original o respuesta 848 let nfdata = new FormData(formC) 849 */ 850 formulario.reset(); 851 let inputId = comentario.formularioid; 852 ////--------console.log('---------------inputId:',inputId); 853 let inp = $('#'+inputId); 854 inp.attr('placeholder','Enviando...'); 855 inp.attr('disabled','disabled'); 856 inp.animate({ 857 opacity: 0.01, 858 }, 500, function() { 859 formC.removeClass("show"); 860 $(this).css('opacity',1); 861 ////--------console.log('Animation complete.'); 862 }); 863 //commons.animarElemento(document.getElementById(comentario.formularioid).parentNode,'out'); 864 $.ajax({ 865 url: baseUrl+"secure/comentariors/nuevo", 866 type: 'POST', 867 data: nfdata, 868 processData: false, 869 contentType: false, 870 dataType: 'json', 871 success: function (data) { 872 // ////console.log("data", data) 873 if (data.status === 'Ok') { 874 let esComentario = (comentario.tipo == 'original') ? true : false;//el tipo original se utiliza en otra funcion, para saber si es un comentario o una respuesta, pero se hace el if inverso chequeando por respuesta 875 let tMsg = (esComentario) ? 'Comentario agregado' : 'Respuesta agregada'; 876 toastr.success(tMsg); 877 if(esComentario){ 878 crearNuevoComentario(data.data); 879 }else { 880 //let cr = $("#contenedorRespuestas-"+data.data.comentario); 881 let cr = document.getElementById("contenedorRespuestas-"+data.data.comentario); 882 crearResp(cr,data.data); 883 } 884 refrescarCantidadComentariosPublicacion('ctnComms-'+data.data.publicacionId,data.data.cantComentarios,data.data.cantRespuestasTotales); 885 //formC.reset(); 886 //$('#containerDivFormRespuesta'+comentario.formulario+'-'+comentario.comentario).removeClass; 887 //formC.collapse(); 888 // let fid = '#inputCommRes-'+comentario.formularioid+'-'+comentario.comentario; 889 //$(fid).removeClass('show'); 890 //fid.hide(); 891 //$('#'+comentario.formularioid).removeClass("show"); 892 // window.location.reload() 893 }else { 894 commons.showErrorsServer(data); 895 } 896 } //cierra success 897 }) //cierra ajax respuesta 898 };//end - guardarComentario 899 900 const crearPrevisualiacionLink = function(link,contenedorPadre,pubId,unicoItem){ 901 let publicacionId = pubId; 902 let urlPubId = "pubId="+pubId+"&"; 903 ////--------console.log('acaa-------------------^^^^'); 904 ////--------console.log(contenedorPadre); 905 ////--------console.log('acaa ARRIBA-------------------^^^^'); 906 let ajaxUrl = baseUrl+"previewlink?"+urlPubId+"url="+link; 907 if(ajaxUrl.substr(-3) == '<br'){ 908 return true; 909 } 910 $.ajax({ 911 url: ajaxUrl, 912 dataType: 'json', 913 type: 'GET', 914 success: function (data) { 915 let videoFrom = ''; 916 917 if(link.includes('youtube')||link.includes('youtu.be')){ 918 videoFrom = 'youtube'; 919 }else if(link.includes('vimeo')){ 920 videoFrom = 'vimeo'; 921 } 922 if(link.includes('youtube')||link.includes('youtu.be')||link.includes('vimeo')){ 923 //console.log(data); 924 let videoDIV = document.createElement('DIV'); 925 let videoA = document.createElement('A'); 926 let videoIMG = document.createElement('IMG'); 927 928 videoDIV.classList.add("carousel-item"); 929 if(unicoItem){ 930 videoDIV.classList.add("active"); 931 } 932 933 videoA.classList.add("fancybox"); 934 videoA.setAttribute("data-fancybox","group"+publicacionId); 935 videoA.setAttribute("href",link); 936 if(data.title !== undefined){ 937 $('a[href^="'+link+'"]').each(function(){ 938 let tieneClase = $(this).hasClass('fancybox'); 939 if(tieneClase == false){ 940 $(this).html(data.title); 941 $(this).attr('title','Click para ver: '+data.title); 942 } 943 }); 944 } 945 946 videoIMG.classList.add("d-block","mx-auto"); 947 videoIMG.setAttribute("alt","imgPost"); 948 videoIMG.setAttribute("type","image"); 949 videoIMG.setAttribute("style","width:90%"); 950 if(data.image == ''){ 951 videoIMG.setAttribute("src",'/img/noVideo.png'); 952 videoIMG.setAttribute("title","ocurrio un error al cargar el video"); 953 }else{ 954 videoIMG.setAttribute("src",data.image); 955 } 956 957 videoA.appendChild(videoIMG); 958 959 if(videoFrom == 'youtube' && data.image != ''){ 960 videoPlayIMG = document.createElement('IMG'); 961 //videoPlayIMG.setAttribute("src",commons.GetAsset("atenea/images/youtube-play-image-normal.png")); 962 videoPlayIMG.setAttribute("src",commons.GetAsset("atenea/images/play-button-vimeo.png")); 963 videoPlayIMG.setAttribute("width",'100'); 964 videoPlayIMG.setAttribute("height",'100'); 965 videoPlayIMG.setAttribute("style",'position:absolute;top:40%;left:42%;width:100px !important;height:62px !important;'); 966 videoA.appendChild(videoPlayIMG); 967 } 968 969 videoDIV.appendChild(videoA); 970 if(contenedorPadre != null){ 971 contenedorPadre.appendChild(videoDIV); 972 } 973 /* 974 let html = `<a class="fancybox" data-fancybox="group${publicacionId}" href="${link}"> 975 <img alt="imgPost" type="image" class="d-block mx-auto" style="width:90%" src="${data.image}"> 976 </a>`; 977 //contenedorPadre.innerHTML =innerHTML+html; 978 */ 979 }else{ 980 if (data.title!='' && data.image !=''){ 981 let html = `<a href="${link}" class="link-preview" target="_blank" rel="nofollow"> 982 <div class="link-area"> 983 <div class="og-image"> 984 <img src="${data.image}" title="click para visitar ${data.title}"> 985 </div> 986 <div class="descriptions-preview p-1 ttfeed" title="${data.title}" data-toggle="tooltip" data-placement="bottom"> 987 <div class="og-title text-truncate">${data.title}</div> 988 <div class="og-description invisible">${data.description}</div> 989 </div> 990 </div> 991 </a>` 992 contenedorPadre.innerHTML =html; 993 } 994 } 995 ////console.log(data.match(/<title>(.*?)<\/title>/)); 996 } 997 }); 998 };//end - crearPrevisualiacionLink 999 1000 const copyToClipboardFeed = function(selector) { 1001 var $temp = $("<div style='display:block;'>"); 1002 $("body").append($temp); 1003 $temp.attr("contenteditable", true); 1004 $temp.html(selector); 1005 $temp.select() 1006 .on("focus", function() { document.execCommand('selectAll',false,null); }) 1007 .focus(); 1008 document.execCommand("copy"); 1009 $temp.remove(); 1010 };//end - copyToClipboardFeed 1011 1012 var loadPage = function (page_num, loading, where){ 1013 // if(loading==false){ 1014 // loading = true; 1015 //console.log("where=",where); 1016 1017 var w = (where == 'home') ? 'home' : ''; 1018 page_num = (where == 'home') ? 1 : page_num; 1019 //console.log('alreadyLoadedPage',alreadyLoadedPage,'page_num',page_num); 1020 if(alreadyLoadedPage == page_num){ 1021 return true; 1022 } 1023 1024 var buscarPorPublicacionId = ""; 1025 var buscarPorTagNombre = ""; 1026 //console.log("w",w,"page_num",page_num); 1027 switch (where) { 1028 case 'feed': 1029 w = where; 1030 page_num = (where == 'home') ? 1 : page_num; 1031 ////--------console.log("desde FEED: ",where,w,page_num); 1032 break; 1033 1034 case 'detalle': 1035 w = 'detalle'; 1036 page_num = 1; 1037 buscarPorPublicacionId = "&idpub="+pubId;//pubId es global 1038 ////--------console.log("desde DETALLE: ",where,w,page_num); 1039 break; 1040 1041 case 'tag': 1042 w = 'tag'; 1043 page_num = (where == 'home') ? 1 : page_num; 1044 buscarPorTagNombre = "&tag="+tagNombre;//tagNombre es global 1045 ////--------console.log("desde FEED: ",where,w,page_num); 1046 break; 1047 1048 case 'usuario': 1049 w = 'usuario'; 1050 page_num = (where == 'home') ? 1 : page_num; 1051 buscarPorPublicacionId = "&idpub="+pubId;//por el momento se utiliza el idpub como iduser, pero el where es usuario 1052 ////--------console.log("desde FEED: ",where,w,page_num); 1053 break; 1054 1055 case 'home': 1056 default: 1057 w = (where == 'home') ? 'home' : ''; 1058 page_num = (where == 'home') ? 1 : page_num; 1059 ////--------console.log("desde HOME: ",where,w,page_num); 1060 break; 1061 } 1062 $.ajax({ 1063 url: baseUrl+"api/publicaciones?w="+w+"&page="+page_num+buscarPorPublicacionId+buscarPorTagNombre, 1064 type: "GET", 1065 beforeSend: function(){ 1066 $("#ajax-loader").show(); 1067 return; 1068 } 1069 }).done(function(data){ 1070 alreadyLoadedPage = page_num; 1071 //console.log('in AJAX done -> alreadyLoadedPage = page_num',alreadyLoadedPage,'=',page_num); 1072 totalPages = data.total_pages; 1073 $("#ajax-loader").hide(); 1074 var publicaciones = data.data; 1075 // loading = false;
1076 div=""; 1077 var pubLen = publicaciones.length; 1078 /* 1079 if(where == "home"){ 1080 pubLen = 4; 1081 } 1082 */ 1083 //if(pubLen != 0){ 1084 //console.log(where); 1085 //console.log(pubLen); 1086 if(pubLen >= 0 && where == 'usuario'){ 1087 let secDocPub = $('#section-docente-publicaciones'); 1088 let lblDocPub = $('#label-docente-publicaciones'); 1089 //console.log(secDocPub); 1090 //console.log(lblDocPub); 1091 if(pubLen >= 1){ 1092 secDocPub.removeClass('hide'); 1093 lblDocPub.removeClass('hide'); 1094 secDocPub.addClass('show'); 1095 lblDocPub.addClass('show'); 1096 }else{ 1097 secDocPub.removeClass('show'); 1098 lblDocPub.removeClass('show'); 1099 secDocPub.addClass('hide'); 1100 lblDocPub.addClass('hide'); 1101 } 1102 } 1103 if(pubLen <= 0 && where != 'usuario'){ 1104 //esto es para cuando no se encuentran datos de la publicacion, o sea que puede estar borrada o algo mas 1105 //window.location.href = `${baseUrl}`; 1106 var contenedor = document.createElement("DIV"); 1107 contenedor.classList.add("bordeNaranja","divContenedorPublicaciones","divGral","m-0","p-3","row","justify-content-around","h-100","dcode-js-contenedor-bordeNaranja-divGral-loadPage"); 1108 contenedor.setAttribute("id","contenedorPublicacion-0"); 1109 contenedor.innerHTML = "No existe ninguna publicación todavÃa, sé el primero haciendo click en el formulario de arriba!!!"; 1110 $("#div-publicacionesHome").append(contenedor); 1111 /* 1112 var contenedor = document.createElement("DIV"); 1113 contenedor.classList.add("bordeNaranja","divContenedorPublicaciones","divGral","m-0","p-3","row","justify-content-around","h-100","dcode-js-contenedor-bordeNaranja-divGral-loadPage"); 1114 contenedor.setAttribute("id","contenedorPublicacion-0"); 1115 1116 var divHeaderPost = document.createElement("DIV"); 1117 divHeaderPost.classList.add("divHeaderPost","row","col-12", "p-0", "dcode-js-divHeaderPost-loadPage"); 1118 divHeaderPost.setAttribute('data-prueba','esto_es_una_prueba'); 1119 divHeaderPost.setAttribute('data-id','pub_0'); 1120 1121 var verMasTxt = document.createTextNode("Error no se encuentra la publicacion"); 1122 1123 divHeaderPost.appendChild(verMasTxt); 1124 contenedor.appendChild(divHeaderPost); 1125 1126 $("#div-publicacionesHome").append(contenedor); 1127 */ 1128 }else{ 1129 for (var i = 0; i < pubLen; i++) { 1130 let post = publicaciones[i]; 1131 //let comentariosRS = publicaciones[i].ultimoComentario[0];//lo comente porque parece que no se utiliza en ning lado - 1132 1133 // CREATE ELEMENT 1134 // contenedor general de la publicacion 1135 var contenedor = document.createElement("DIV"); 1136 ////--------console.log("-.-.-.-.-.-.-.-.-.-.-.-"); 1137 ////--------console.log(post); 1138 ////--------console.log("-.-.-.-.-.-.-.-.-.-.-.-"); 1139 contenedor.classList.add("bordeNaranja","divContenedorPublicaciones","divGral","m-0","p-3","row","justify-content-around","h-100","dcode-js-contenedor-bordeNaranja-divGral-loadPage"); 1140 contenedor.setAttribute("id","contenedorPublicacion-"+post.id); 1141 1142 // se agrega al div de publicacion 1143 $("#div-publicacionesHome").append(contenedor); 1144 1145 // div del header de la publicacion 1146 var divHeaderPost = document.createElement("DIV"); 1147 divHeaderPost.classList.add("divHeaderPost","row","col-12", "p-0", "dcode-js-divHeaderPost-loadPage"); 1148 divHeaderPost.setAttribute('data-prueba','esto_es_una_prueba'); 1149 divHeaderPost.setAttribute('data-id','pub_'+i); 1150 1151 // se agrega el header al contenedor 1152 contenedor.appendChild(divHeaderPost); 1153 1154 creaHeaderDePostCommRes(divHeaderPost, "post", post); 1155 // div del Contenido de post 1156 var divContenidoPostGral = document.createElement("DIV"); 1157 divContenidoPostGral.classList.add("row","col","dcode-divContenidoPostGral-loadPage"); 1158 1159 // se agrega el contenido al contenedor principal 1160 contenedor.appendChild(divContenidoPostGral); 1161 1162 // si tiene archivos crea el carrusel 1163 let unicoItem=false; 1164 if( post.archivos.length > 0){ 1165 divContenidoPostGral.appendChild(crearCarrusel(post.id, post.archivos)); 1166 }else{ 1167 unicoItem=true; 1168 divContenidoPostGral.appendChild(crearCarrusel(post.id, new Array())); 1169 } 1170 divContenidoDelPostCommRes(post, divContenidoPostGral, "", "post", unicoItem); 1171 // creo div de botones de interaccion 1172 var botones = document.createElement("DIV"); 1173 botones.classList.add("botonesPost","row","text-center","justify-content-around","d-inline-block","dcode-js-div-botones-botonesPost-loadPage","ml-4"); 1174 botones.setAttribute("id","botonesPost-"+post.id+"-"); 1175 1176 /* 1177 // se agrega el lazyload para la tabla publicacion_views 1178 var pubViewLazyLoad = document.createElement("IMG"); 1179 pubViewLazyLoad.classList.add("lazyload","publicacion-views","dcode-js-img-lazyload-publicacion-views-loadPage","ml-4"); 1180 pubViewLazyLoad.setAttribute("src",baseUrl+"/api/publicaciones/view/"+post.id+"/publicacion_view_lazyload"); 1181 pubViewLazyLoad.setAttribute("width","1"); 1182 pubViewLazyLoad.setAttribute("height","1"); 1183 // agrego el div de los botones al contenedor de contendio de la publicacion 1184 divContenidoPostGral.appendChild(pubViewLazyLoad); 1185 */ 1186 1187 // agrego el div de los botones al contenedor de contendio de la publicacion 1188 divContenidoPostGral.appendChild(botones); 1189 1190 // crear span de la cantodad de likes 1191 1192 let likes = document.createElement("SPAN");
1193 likes.setAttribute("id","ctnLikes-"+post.id+"-"+post.tipoLike); 1194 let ctnLikes = document.createTextNode(post.likes); 1195 likes.appendChild(ctnLikes); 1196 botones.appendChild(likes); 1197 1198 // funciones que crean cada boton, el tipo de agrega btnLike btnComm btnShare 1199 // creando los botones 1200 var postTieneLike = (post.tieneLike == 0) ? false : true; 1201 btnInteractivos( post, "btnLike", postTieneLike, botones, "LikePublicacion", "",commons.getConstante('TipoNotificacion','LikePublicacion')); 1202 ////console.info('loadPage - btnInter_btnLike: '+post.id+' - tieneLike: '+post.tieneLike); 1203 1204 // span cantidad de comentarios 1205 let comms = document.createElement("SPAN"); 1206 comms.setAttribute("id","ctnComms-"+post.id); 1207 let ctnComms = document.createTextNode(post.comentarios); 1208 comms.appendChild(ctnComms); 1209 botones.appendChild(comms); 1210 btnInteractivos(post, "btnComm", false, botones, "", ""); 1211 btnInteractivos(post, "btnShare", true, botones, ""); 1212 1213 // cantidad de comentarios 1214 /* 1215 var ctnLikesYComm = document.createElement("DIV"); 1216 ctnLikesYComm.setAttribute("id","ctnLikesYCommContainer-"+post.id); 1217 ctnLikesYComm.setAttribute("data-idpublicacion",post.id); 1218 ctnLikesYComm.classList.add("ctnLikesYComm","p-0","text-center","align-self-center"); 1219 botones.appendChild(ctnLikesYComm); 1220 var pCtnLikesYComm = document.createElement("P"); 1221 var pCtnLikesYCommTxt = `<span id='ctnLikes-${post.id}'>${post.likes}</span> Me gusta | <span id='cntCom-${post.id}'>${post.comentarios}</span> comentarios`; 1222 ctnLikesYComm.appendChild(pCtnLikesYComm); 1223 pCtnLikesYComm.innerHTML = pCtnLikesYCommTxt; 1224 */ 1225 1226 // Contenedor de comentarios de la publicacion // agrego el contenedor de comentarios al contenedor general de la publicacion 1227 var divContenedorComm = document.createElement("DIV"); 1228 divContenedorComm.classList.add("col-12", "contenedorComm", "dcode-js-contenedorComm-divContenedorComm"); 1229 divContenedorComm.setAttribute("id", "contenedorComm"+post.id); 1230 //contenedor.appendChild(divContenedorComm); 1231 1232 // creo el hr del diseño y lo agrego al contenedor de comentarios 1233 var hr = document.createElement("HR"); 1234 hr.classList.add("my-3"); 1235 1236 // div contenedor bloque de respuesta del comentario lo agrego al contenedor de comm 1237 var bloqueComentario = document.createElement("DIV"); 1238 bloqueComentario.classList.add("bloqueComm", "dcode-js-bloqueComm-bloqueComentario","mr-md-4", "mr-sm-2"); 1239 1240 // console.log("esta es la llamada numero 4 - loadPage linea 586 - antes del IF:",botones); 1241 if(botones != null){ 1242 //console.info('ANTES del if * por botones != null'); 1243 // console.log("esta es la llamada numero 4 - loadPage linea 586 - ADENTRO del IF:",botones); 1244 creaInputComm(botones, post, "post", post.id); 1245 } 1246 botones.appendChild(hr); 1247 if (post.comentarios >0){ 1248 if(post.ultimoComentario[0] !== undefined){ 1249 bloqueComentario.setAttribute('id',`bloqueComentario-${post.ultimoComentario[0].id}`); 1250 // creaBarraComm(bloqueComentario, post.ultimoComentario[0], "comm"); 1251 //creaInputComm(bloqueComentario, post.ultimoComentario[0], "ultimoComm", post.id); 1252 crearComm(bloqueComentario, post.ultimoComentario[0], "ultimoComm", post.id); 1253 1254 // console.log("esta es la llamada numero 6 - loadPage linea 586 - antes del IF:",bloqueComentario); 1255 if(bloqueComentario != null){ 1256 // console.log("esta es la llamada numero 6 - loadPage linea 586 - ADENTRO del IF:",bloqueComentario); 1257 //let contenedorFormResponder = $('#contenedorFormResponder-'+post.id); 1258 let contenedorFormResponder = document.getElementById('contenedorFormResponder-'+post.id); 1259 // console.log('contenedorFormResponder:',contenedorFormResponder); 1260 //creaInputComm(bloqueComentario, post.ultimoComentario[0], "ultimoComm", post.id); 1261 //creaInputComm(contenedorFormResponder, post.ultimoComentario[0], "ultimoComm", post.id); 1262 } 1263 1264 //aca esta el codigo 1265 1266 var gifLoad = document.createElement("IMG"); 1267 gifLoad.classList.add("mx-auto", "gif"); 1268 gifLoad.setAttribute("src", commons.GetAsset("atenea/images/feed/ajax-loader.gif")); 1269 gifLoad.setAttribute("width", "16"); 1270 gifLoad.setAttribute("height", "16"); 1271 gifLoad.setAttribute("style", "width:16px;"); 1272 gifLoad.style.height="16px"; 1273 gifLoad.setAttribute("id", post.id+"loading"); 1274 gifLoad.style.display = "none"; 1275 contenedor.appendChild(gifLoad); 1276 } 1277 } 1278 contenedor.appendChild(divContenedorComm); 1279 //if(post.comentarios > 1 ){ 1280 // cierra if de Si tiene comentarios 1281 divContenedorComm.appendChild(bloqueComentario); 1282 1283 let cantComm = $('.btn-publicacion-menu-comm-'+post.id).length; 1284 let cantRes = $('.btn-publicacion-menu-res-'+post.id).length; 1285 let commResTotal = (cantComm + cantRes); 1286 //let hayMasComentarios = (post.comentarios >= 2) ? true : false;
1287 let hayMasComentarios = (post.comentarios > commResTotal) ? true : false; 1288 /* 1289 console.log('cantComm',cantComm); 1290 console.log('cantRes',cantRes); 1291 console.log('commResTotal',commResTotal); 1292 console.log('hayMasComentarios',hayMasComentarios); 1293 console.log('post.comentarios',post.comentarios); 1294 console.log('-------------------------------------------------'); 1295 */ 1296 1297 // a la barra se agregan Ver mas, botones y cantidad de coemntarios 1298 // ver mas 1299 //if(post.comentarios >= 2 ){ 1300 if(hayMasComentarios){ 1301 var verMas = document.createElement("DIV"); 1302 verMas.classList.add("col-12","align-self-center", "text-left"); 1303 verMas.setAttribute("id", post.id+"verMasDiv") 1304 var aVerMas = document.createElement("A"); 1305 aVerMas.classList.add("m-0"); 1306 aVerMas.setAttribute("data-pag", "1" ) 1307 aVerMas.setAttribute("data-id", post.id ); 1308 aVerMas.classList.add("verMas"); 1309 aVerMas.setAttribute("data-idPostOrginal", post.id); 1310 aVerMas.setAttribute("id", post.id+"verMas"); 1311 var verMasTxt = document.createTextNode("Ver más comentarios"); 1312 verMas.appendChild(aVerMas); 1313 aVerMas.appendChild(verMasTxt); 1314 //console.log('ifffffffffffff') 1315 1316 //console.log('verMas ++++++++++++++++++++++++++ ',verMas) 1317 if(verMas != null){ 1318 contenedor.appendChild(verMas) 1319 } 1320 } 1321 1322 //contenedor de input queQuieresCompartir contiene: imagen del autor, div con queQuieresCompartir 1323 } 1324 //cierra el for 1325 //console.log(':::::::::::::::::::::::: end FOR ::::::::::::::::::::::::::::::::') 1326 } 1327 //console.log('__________ end IF ________') 1328 //cierre del if 1329 $("img.lazyload").lazyload(); 1330 }) 1331 .fail(function(jqXHR, ajaxOptions, thrownError){ 1332 $("#ajax-loader").hide(); 1333 1334 }); 1335 // } 1336 };//end - LoadPage 1337 1338 var createObject = function(elemento, paramsClass=null, paramsAttr=null){ 1339 if(paramsClass != null) 1340 setHtmlClass(elemento,paramsClass); 1341 if(paramsAttr != null) 1342 setHtmlAttribrute(elemento,paramsAttr); 1343 };//end - createObject 1344 1345 var setHtmlClass = function(elemento, params=null){ 1346 if(params.length >= 1){ 1347 for(x in params){ 1348 elemento.classList.add(params[x]); 1349 } 1350 } 1351 };//end - setHtmlClass 1352 1353 var setHtmlAttribrute = function(elemento, params=null){ 1354 if(params != null){ 1355 for(x in params){ 1356 elemento.setAttribute(x,params[x]);////console.log("x: ",x," - params[x]: ",params[x]); 1357 } 1358 } 1359 };//end - setHtmlAttribrute 1360 1361 var creaInputComm = function (elementoDondeSeAgrega, post, tipo, idpostorginal){ 1362 //console.log('paso por creaInputComm:', tipo, idpostorginal, elementoDondeSeAgrega, post); 1363 contador++; 1364 var checkRespuestaTipo = (tipo == "respuesta" || tipo == "ultimoComm" || tipo == 'comm') ? true : false; 1365 //var checkRespuestaTipo = (tipo == "respuesta") ? true : false; 1366 let fullId = (checkRespuestaTipo) ? idpostorginal+'-'+post.id : idpostorginal+'-'; 1367 1368 var contenedorInput = document.createElement("DIV");//containerDivFormRespuesta 1369 var formRes = document.createElement("FORM");//.formRespuesta 1370 var divAutorCom = document.createElement("DIV"); 1371 var autorComm = creaImgAutor(post, "usuario"); // !!!ACA DEBE IR LA IMAGEN DEL USUARIO LOGUEADO!!!! 1372 var bordeNaranja = document.createElement("DIV");//.bordeNaranja .divInput 1373 var divInputContenido = document.createElement("INPUT");//.txtComentario 1374 var buttonComm = document.createElement("BUTTON");//.comentar .btnInput 1375 var labelIconoImg = document.createElement("LABEL");//imagen avion de papel 1376 var divInputUsuario = document.createElement("INPUT");//hidden usuario 1377 var divInputPublicacion = document.createElement("INPUT");//hidden puiblicacion 1378 var divInputNumComentario = document.createElement("INPUT");//hidden comentario 1379 var iconoImg = document.createElement("IMG"); 1380 1381 var arrayClass = new Array(); 1382 var obj = {}; 1383 1384 1385 // DIV - contenedor general - arrayClass = new Array('col-12');setHtmlClass(contenedorInput,arrayClass);//contenedorInput.classList.add('col-12'); 1386 createObject(contenedorInput,new Array('col-12','dcode-js-containerDivFormRespuesta-contenedorInput'+'-'+tipo+'-creaInputComm')); 1387 1388 1389 // DIV - imagen autor - arrayClass = new Array("mr-1");setHtmlClass(autorComm,arrayClass);//autorComm.classList.add("mr-1"); 1390 createObject(autorComm,new Array('mr-1',"dcode-js-autoComm1"+'-'+tipo+'-creaInputComm')); 1391 createObject(divAutorCom,new Array("col-1", "d-inline-block","pt-1","dcode-js-divAutoCom"+'-'+tipo+'-creaInputComm')); 1392 1393 1394 // DIV - borde naranja
1395 createObject(bordeNaranja,new Array("p-1", "col-9","d-inline-block", "ml-5", "bordeNaranja", "row", "divInput","justify-content-between","dcode-js-bordeNaranja"+'-'+tipo+'-creaInputComm'),{"data-id":post.id,"action":(baseUrl+"secure/comentariors/nuevo")}); 1396 1397 1398 //arrayClass = new Array("p-1", "col-9","d-inline-block", "ml-5", "bordeNaranja", "row", "divInput","justify-content-between"); 1399 //obj = {"data-id":post.id,"action":(baseUrl+"secure/comentariors/nuevo")}; 1400 //createObject(arrayClass, obj); 1401 1402 1403 // FORM - .formRespuesta 1404 createObject(autorComm,new Array("collapse","formRespuesta","row","justify-content-around","p-0","ml-auto","dcode-js-autorComm2"+'-'+tipo+'-creaInputComm'),{"data-id":post.id,"action":(baseUrl+"secure/comentariors/nuevo"),"method":"POST","enctype":"multipart/form-data","autocomplete":"off"}); 1405 1406 1407 // INPUT - *****creo input TXT para contenido - .txtComentario 1408 var inputTxt = "inputTxt-"; 1409 var inputComm = "inputComm-"; 1410 var txtcomentarioid = "inputTxt-"; 1411 var dataTipo = "comentario"; 1412 var placeholder = "¿Quieres comentar?"; 1413 if (checkRespuestaTipo){ 1414 inputTxt = "inputTxtRes-"; 1415 inputComm = "inputCommRes-"; 1416 txtcomentarioid = "inputTxtRes-"; 1417 dataTipo = "respuesta"; 1418 placeholder = "¿Quieres responder?"; 1419 } 1420 createObject(divInputContenido,new Array("col-9", "font-weight-light", "pl-0", "ml-1", "txtComentario", "emojis","dcode-js-divInputContenido"+'-'+tipo+'-creaInputComm',"dcode-js-inputComm-divInputContenidocreateObject"+"-"+dataTipo),{"type":"text","data-origen":idpostorginal,"data-id":post.id,"name":"contenido","id":inputTxt+fullId,"data-formularioid":inputComm+fullId,"data-txtcomentarioid":txtcomentarioid+fullId,"data-tipo":dataTipo,"placeholder":placeholder}); 1421 1422 1423 // LABEL - ****creo input para file img - .btnInput 1424 labelIconoImg.style.visibility = "none"; 1425 createObject(labelIconoImg,new Array("float-right", "btnInput"),{"for":("inputFile-"+fullId)}); 1426 1427 1428 // icon - ****creo input para file img - .btnInput 1429 createObject(iconoImg,new Array("iconInputImg"),{"for":("inputFile-"+fullId),"src":commons.GetAsset("atenea/images/feed/iconImageDark.svg"),"id":"labelInputFile-"+fullId}); 1430 1431 1432 //INPUT - file para cargar archivo al comentario - por ahora no existe esta funcionalidad 1433 1434 1435 // INPUT hidden - input usuario 1436 createObject(divInputUsuario,new Array('dcode-js-divInputUsuario'+'-'+tipo+'-creaInputComm'),{"type":"hidden","value":usuarioLogId,"name":"usuario"}); 1437 1438 1439 // INPUT hidden - input Publicacion 1440 createObject(divInputPublicacion,new Array('dcode-js-divInputPublicacion'+'-'+tipo+'-creaInputComm'),{"type":"hidden","value":idpostorginal,"name":"publicacion"}); 1441 1442 1443 // INPUT hidden - input Comentario 1444 var divInputComentarioValue = (checkRespuestaTipo) ? post.id : ""; 1445 createObject(divInputNumComentario,new Array('dcode-js-divInputNumComentario'+'-'+tipo+'-creaInputComm'),{"type":"hidden","value":divInputComentarioValue,"name":"comentario"}); 1446 1447 1448 // BUTTON - button enviar - icono de avion de papel 1449 arrayClass = new Array("comentar", "btn-transparent", "float-right", "btnInput", "btn"); 1450 setHtmlClass(buttonComm,arrayClass); 1451 obj = {"type":"button","data-origen":idpostorginal,"data-id":post.id}; 1452 setHtmlAttribrute(buttonComm,obj); 1453 buttonComm.innerHTML = "<i class='far fa-lg fa-paper-plane'></i>"; 1454 createObject(buttonComm,new Array('buttonComm'+'-'+tipo+'-creaInputComm'),{"type":"hidden","value":divInputComentarioValue,"name":"comentario","data-txtcomentarioid":inputTxt+fullId}); 1455 1456 1457 1458 // POR AHORA NO AGREGAR IMG CON LOS COMENTARIOS/* bordeNaranja.appendChi// POR AHORA NO AGREGAR IMG CON LOS COMENTARIOSld(labelIconoImg);bordeNaranja.appendChild(divInputArch);*/ 1459 1460 //var formResId = (checkRespuestaTipo) ? {"id":("inputCommRes-"+fullId)} : {"id":("inputComm-"+fullId)}; 1461 var formResId = (checkRespuestaTipo) ? ("inputCommRes-"+fullId) : ("inputComm-"+fullId); 1462 var buttonCommDataTipo = (checkRespuestaTipo) ? {"data-tipo":"respuesta"} : {"data-tipo":"original"}; 1463 var divInputContenidoDataTipo = (checkRespuestaTipo) ? {"data-tipo":"respuesta"} : {"data-tipo":"original"}; 1464 ////-----console.info('tipo:',tipo); 1465 ////-----console.info('checkRespuestaTipo:',checkRespuestaTipo); 1466 ////-----console.info('formResId:',formResId);
1467 createObject(formRes,new Array("formRespuesta","row","justify-content-around","p-0","ml-auto","dcode-js-formRespuesta-creaInputComm","collapse"),{'method':'POST','enctype':'multipart/form-data','autocomplete':'off','id':formResId}); 1468 //setHtmlAttribrute(formRes, formResId); 1469 setHtmlAttribrute(buttonComm, buttonCommDataTipo); 1470 setHtmlAttribrute(divInputContenido, divInputContenidoDataTipo); 1471 1472 1473 //divAutorCom.appendChild(autorComm); 1474 //labelIconoImg.appendChild(iconoImg); 1475 bordeNaranja.appendChild(divInputContenido); 1476 bordeNaranja.appendChild(buttonComm); 1477 bordeNaranja.appendChild(divInputUsuario); 1478 bordeNaranja.appendChild(divInputPublicacion); 1479 bordeNaranja.appendChild(divInputNumComentario); 1480 formRes.appendChild(divAutorCom); 1481 formRes.appendChild(bordeNaranja); 1482 contenedorInput.appendChild(formRes); 1483 1484 elementoDondeSeAgrega.appendChild(contenedorInput); 1485 1486 let contenedorRespuestaId = post.id+"barraComm"; 1487 var dtemp = document.createElement("DIV"); 1488 let dtempId = post.id+"barraComm-dtemp"; 1489 createObject(dtemp,new Array('dcode-js-dtemp'+'-'+tipo+'-creaInputComm'),{"id":dtempId}); 1490 1491 //let contenedorRespuestaId = "contenedorRespuestas-"+fullId; 1492 // console.log('contenedorRespuestaId:',contenedorRespuestaId); console.log('post.id:',post.id); console.log('divInputComentarioValue:',divInputComentarioValue); 1493 //$('#'+contenedorRespuestaId).insertAfter(contenedorInput); 1494 //$('#'+dtempId).insertAfter(contenedorInput); 1495 };//end - creaInputComm 1496 1497 var loadComm = function(data, loading){ 1498 // console.log('paso por loadComm:', data, loading); 1499 commons.debugtf('FeedController_loadComm',new Array(data, loading)); 1500 if(loading==false){ 1501 loading = true; 1502 post = data.dataset.idpostorginal; 1503 pageComm_num = data.dataset.pag 1504 pageComm_num == 1 ? completo = false : completo = true 1505 console.log("pageComm_num",pageComm_num); 1506 $.ajax({ 1507 url: baseUrl+"comentarios/"+post+"/publicacion?page="+pageComm_num, 1508 type: "GET", 1509 beforeSend: function(){ 1510 document.getElementById(post+"loading").style.display = "block"; 1511 return; 1512 }, 1513 complete: function(){ 1514 document.getElementById(post+"loading").style.display = "none";} 1515 }).done(function(data){ 1516 var totalComm = data.total_pages; 1517 listaComentarios = data.data; 1518 document.getElementById(post+"loading").style.display = "none";//none 1519 var elemContendor = document.getElementById("contenedorComm"+post); 1520 eleVerMas = document.getElementById(post+'verMasDiv'); 1521 if (pageComm_num == 1){ 1522 listaComentarios.shift(); 1523 } 1524 //$("#"+post+"loading").remove() 1525 loading = false; 1526 listaComentarios.forEach(comm => { 1527 var bloqueComentario = document.createElement("DIV"); 1528 bloqueComentario.classList.add("bloqueComm"); 1529 bloqueComentario.setAttribute('id',`bloqueComentario-${comm.id}`) 1530 elemContendor.appendChild(bloqueComentario); 1531 //crearComm(bloqueComentario, comm, "comm", post); 1532 crearComm(bloqueComentario, comm, "respuesta", post); 1533 })// cierra for de cada comentario 1534 var commentsLeft = ((data.total_items_count) - (data.items_per_pege * data.page_actual)); 1535 commentsLeft = (commentsLeft <= 0) ? 0 : commentsLeft; 1536 $("#"+post+'verMas').attr({"data-pag": (parseInt(pageComm_num) + 1),"title":"Ver más comentarios (quedan "+commentsLeft+")"}); 1537 /* 1538 var verMasSpan = document.createElement("SPAN"); 1539 verMasSpan.setAttribute("id", post+"verMasSpan"); 1540 verMasSpan.innerHTML = " ("+commentsLeft+")-"; 1541 $("#"+post+'verMasSpan').replaceWith(verMasSpan); 1542 //$("#"+post+'verMasSpan').replaceWith(" ("+commentsLeft+")"); 1543 */ 1544 if($('#'+post+'loading') == false){ 1545 var gifLoad = document.createElement("IMG"); 1546 gifLoad.classList.add("mx-auto----", "gif----"); 1547 gifLoad.setAttribute("src", commons.GetAsset("atenea/images/feed/ajax-loader.gif")); 1548 gifLoad.setAttribute("width", "16"); 1549 gifLoad.setAttribute("height", "16"); 1550 gifLoad.setAttribute("style", "width:16px;"); 1551 //gifLoad.style.width="16px"; 1552 gifLoad.style.height="16px"; 1553 gifLoad.style.display = "none"; 1554 gifLoad.setAttribute("id", post+"loading"); 1555 let ec = document.getElementById('#'+post+"verMasDiv"); 1556 if(ec != null){ 1557 ec.appendChild(gifLoad); 1558 } 1559 /* 1560 if(elemContendor != null){ 1561 elemContendor.appendChild(gifLoad); 1562 } 1563 */ 1564 } 1565 if (pageComm_num == totalComm){ 1566 $("#"+post+'verMas').remove() 1567 } 1568 }) //cierra Ajax Listar comentarios 1569 } //end IF loading 1570 };//end - loadComm 1571 1572 var carouselStart = function(){ 1573 var nd2 = new Date();var g2 = nd2.getSeconds(); 1574 $('.carruIndex').slick({ 1575 slidesToShow: 3, 1576 slidesToScroll: 1, 1577 autoplay: true, 1578 dots:false, 1579 autoplaySpeed: 3000,
1580 nextArrow: `<button class="btn-transparent nextNov " href="" role="button"> 1581 <span class="carousel-control-next-icon" aria-hidden="true"></span> 1582 <span class="sr-only">Next</span> 1583 </button>`, 1584 prevArrow: `<button class="btn-transparent prevNov " href="" role="button"> 1585 <span class="carousel-control-prev-icon" aria-hidden="true"></span> 1586 <span class="sr-only">prev</span> 1587 </button>`, 1588 responsive: [ 1589 { 1590 breakpoint: 1024, 1591 settings: { 1592 slidesToShow: 3, 1593 slidesToScroll: 1, 1594 infinite: true, 1595 dots: false 1596 } 1597 }, 1598 { 1599 breakpoint: 600, 1600 settings: { 1601 slidesToShow: 2, 1602 slidesToScroll: 1 1603 } 1604 }, 1605 { 1606 breakpoint: 480, 1607 settings: { 1608 slidesToShow: 1, 1609 slidesToScroll: 1 1610 } 1611 } 1612 // You can unslick at a given breakpoint now by adding: 1613 // settings: "unslick" 1614 // instead of a settings object 1615 ] 1616 });//end - slick 1617 $('.carruIndex').show(); 1618 //console.info('cargando pagina...'+g2); 1619 };//end - carouselStart 1620 1621 const eliminarPublicacion = function (btn,p_url) { 1622 $.ajax({ 1623 type: "DELETE", 1624 url: p_url, 1625 }).done(function (data) { 1626 if (data.code == 200) { 1627 toastr.options = { 1628 positionClass: 'toast-top-center', 1629 }; 1630 toastr["success"]("Publicacion Eliminada", ""); 1631 //toastr.success('Publicacion Eliminada'); 1632 let elem = document.getElementById('contenedorPublicacion-'+data.data.publicacion); 1633 elem.classList.add('animated','backOutRight','slow'); 1634 elem.addEventListener('animationend', () => { 1635 elem.remove(); 1636 }); 1637 }; 1638 }); 1639 };//end - eliminarPublicacion 1640 1641 const refrescarCantidadComentariosPublicacion = function(id,comentarios,respuestas){ 1642 ////--------console.log('id:',id,'comentarios:',comentarios,'respuestas:',respuestas); 1643 let elemento = document.getElementById(id); 1644 //let texto = (respuestas >= 1) ? (comentarios+' <sub>('+respuestas+')</sub>') : comentarios; 1645 // let texto = (comentarios+' <sub>('+respuestas+')</sub>'); 1646 let texto = ( comentarios + respuestas ); 1647 elemento.innerHTML = texto; 1648 commons.animarElemento(elemento,'tada','slow',true); 1649 //elemento.textContent = comentarios; 1650 /* 1651 elemento.classList.remove('animated'); 1652 elemento.classList.add('d-inline-block','animated','slower',item); 1653 */ 1654 };//end - refrescarCantidadComentariosPublicacion 1655 1656 const eliminarComentarioRespuesta = function (btn,p_url) { 1657 let mensaje = "Error al Eliminar el comentario o respuesta!!!"; 1658 $.ajax({ 1659 url: p_url, 1660 type: 'GET', 1661 success: function (data) { 1662 if (data.code == 200){ 1663 refrescarCantidadComentariosPublicacion(`ctnComms-${data.data.publicacion}`,data.data.cantComentarios,data.data.cantRespuestasTotales); 1664 let id = ""; 1665 let idLikeResp = ""; 1666 if(data.data.tipo ==="comentario"){ 1667 mensaje = "Comentario eliminado correctamente"; 1668 id = "bloqueComentario-"+data.data.comentario; 1669 }else{ 1670 mensaje = "Respuesta eliminada correctamente"; 1671 id = "divRespuesta-"+data.data.comentario;
1672 idLikeResp = "divLikeRespuesta-"+data.data.comentario; 1673 } 1674 let elem = document.getElementById(id); 1675 elem.classList.add('animated','backOutRight','slow'); 1676 elem.addEventListener('animationend', () => { 1677 elem.remove(); 1678 }); 1679 if(idLikeResp != ""){ 1680 let elemLR = document.getElementById(idLikeResp); 1681 elemLR.classList.add('animated','backOutRight','slow'); 1682 elemLR.addEventListener('animationend', () => { 1683 elemLR.remove(); 1684 }); 1685 } 1686 } 1687 ////console.log(data.match(/<title>(.*?)<\/title>/)); 1688 }, 1689 complete: function (data) { 1690 toastr.success(mensaje); 1691 } 1692 }) // cierra ajax eliminar comentario 1693 };//end - eliminarComentarioRespuesta 1694 1695 const comentar = function(idInput){ 1696 // console.info('valor de idInput: '+idInput); 1697 if(usuarioLogId != "nulo"){ 1698 var dataSet = document.getElementById(idInput).dataset; 1699 // console.log(dataSet); 1700 guardarComentario(dataSet); 1701 } else{ 1702 $("#loginModal").modal("show") 1703 } 1704 return false; 1705 };//end - comentar 1706 1707 var docReady = function(){ 1708 var page_num = 1; 1709 ////--------console.log('page_num',page_num); 1710 $('.carruIndex').hide(); 1711 1712 $(window).on('scroll', function() { 1713 //if ($(window).scrollTop() >= $('#footer').offset().top + $('#footer').outerHeight() - window.innerHeight) { 1714 let windowScrollTop = Math.floor($(window).scrollTop()); 1715 let footerOffsetTop = Math.floor($('#footer').offset().top); 1716 let footerOuterHeight = Math.floor($('#footer').outerHeight()); 1717 let wInnerHeight = Math.floor(window.innerHeight); 1718 let diffScrollTop = Math.floor(( ( footerOffsetTop + footerOuterHeight ) - wInnerHeight )); 1719 diffScrollTop-=10; 1720 //console.log("windowScrollTop",windowScrollTop);console.log("diffScrollTop",diffScrollTop);console.log("footerOffsetTop",footerOffsetTop,"footerOuterHeight",footerOuterHeight,"wInnerHeight",wInnerHeight); 1721 if (windowScrollTop >= diffScrollTop) { 1722 //console.log("------------------------- windowScrollTop",windowScrollTop,' >= diffScrollTop',diffScrollTop); 1723 page_num++; 1724 //console.log("page_num",page_num); 1725 if(page_num <= totalPages){ 1726 loadPage(page_num,false,where); 1727 } 1728 } 1729 }); 1730 1731 if(where != 'home'){ 1732 loadPage(page_num,false,where); 1733 } 1734 1735 btnInter = new BtnInteractivo(commons, usuarioLogId, usuarioLogFoto, usuarioLogRole, where); 1736 btnInter.init(); 1737 $('.ttfeed').tooltip({container:'body'}); 1738 //btnInter.addLike(); 1739 //setTimeout(function(){ carouselStart(); }, 1000); 1740 if(where == 'home'){ 1741 carouselStart(); 1742 } 1743 1744 //setea el focus cuando se muestra el modal para publicacion nueva 1745 $('#PostNuevo').on('shown.bs.modal', function (e) { 1746 $('.emojionearea-editor').focus();//hay que cambiar la clase por un id 1747 }); 1748 1749 $('.animated').on('animationend', function() { 1750 /* 1751 console.log('esto es el valor de (this):',$(this)); 1752 console.log('esto es el valor de ($(this) != undefined):',($(this) != undefined)); 1753 console.log('esto es el valor de (this).classList:',$(this).classList); 1754 console.log('esto es el valor de ($(this).classList != undefined):',($(this).classList != undefined)); 1755 */ 1756 if( ($(this) != undefined) && ($(this).classList != undefined) ){ 1757 $(this).classList.remove('animated'); 1758 } 1759 /* 1760 if($(this) != undefined){ 1761 if($(this).classList != undefined){ 1762 $(this).classList.remove('animated'); 1763 } 1764 } 1765 */ 1766 }); 1767 1768 // start - seccion Formulario Comentar boton e input 1769 $(document).on('keypress','.txtComentario', function(e) { 1770 var keycode = (e.keyCode ? e.keyCode : e.which); 1771 if (keycode == '13') { 1772 comentar($(this).data('txtcomentarioid')); 1773 e.preventDefault(); 1774 } 1775 }); 1776 1777 $(document).on('click','.comentar',function(e){ 1778 comentar($(this).data('txtcomentarioid')); 1779 e.preventDefault(); 1780 });// cierra comentar 1781 1782 $(document).on('submit','.formRespuesta',function(e){ 1783 if(usuarioLogId != "nulo"){ 1784 //$(this).hide(); 1785 e.preventDefault(); 1786 return false;
1787 } else{ 1788 $("#loginModal").modal("show") 1789 } 1790 }); 1791 1792 $(document).on('click','.btnComm',function(){ 1793 var t = $(this); 1794 // var idrel = t.data('idrelacion'); 1795 var idfocus = '#'+t.data('focus'); 1796 if(!t.hasClass('collapsed')){ 1797 //$('#'+idrel+'inputTxtRes').focus(); 1798 $(idfocus).focus(); 1799 } 1800 }); 1801 // end - seccion Formulario Comentar boton e input 1802 1803 1804 $(document).on('click','.verMas',function(){ 1805 commons.debugtf('FeedController_init-click-.verMas - usuarioLogId: '+usuarioLogId); 1806 console.info('FeedController_init-click-.verMas - usuarioLogId: '+usuarioLogId); 1807 if(usuarioLogId != "nulo"){ 1808 let btn = $(this); 1809 let pageComm_num = 1; 1810 let thisPost = btn[0]; 1811 loadComm(thisPost,false); 1812 } else{ 1813 $("#loginModal").modal("show") 1814 } 1815 });// cierra VERMAS 1816 1817 $(document).on('click','.actionDeleteComentario',function(){ 1818 let btn = $(this); 1819 // console.log('btn: ',btn); 1820 let url = baseUrl+"secure/comentariors/"+btn[0].id+"/eliminar"; 1821 eliminarComentarioRespuesta(btn,url); 1822 });//end - actionDeleteComentario 1823 1824 $(document).on('click','.pdf',function(e){ 1825 let btn = $(this); 1826 window.open(btn.parent().attr('href')); 1827 e.preventDefault(); 1828 }); 1829 1830 $(document).on('click','.actionDeletePublicacion',function(){ 1831 let btn = $(this); 1832 /* 1833 console.log('btn: ',btn); 1834 console.log('btn[0].id: ',btn[0].id); 1835 console.info(btn[0].id); 1836 console.log(btn[0].id); 1837 console.dir(btn[0].id); 1838 */ 1839 let url = baseUrl+"secure/publicacion/"+btn[0].id+"/eliminar"; 1840 eliminarPublicacion(btn,url); 1841 });//end - actionDeleteComentario 1842 1843 $(document).on('click','.botonVerMasContenido',function(e){ 1844 $(this).hide(); 1845 }); 1846 };//end - docReady 1847 1848 return { 1849 1850 init: function () { 1851 /* 1852 console.log(moment.tz.guess()); 1853 if ("geolocation" in navigator){ 1854 //navigator.geolocation.watchPosition(function(position){ 1855 navigator.geolocation.getCurrentPosition(function(position){ 1856 console.log(position); 1857 console.log("Found your location \nLat : "+position.coords.latitude+" \nLang :"+ position.coords.longitude); 1858 }); 1859 }else{ 1860 console.log("Browser doesn't support geolocation!"); 1861 } 1862 */ 1863 nd1 = new Date();g1 = nd1.getMinutes()+":"+nd1.getSeconds()+":"+nd1.getMilliseconds(); 1864 // console.info('cargando pagina... INIT()'+g1); 1865 //console.info('ANTES de cargando pagina...'+g1); 1866 /* 1867 setTimeout(function(){ 1868 var nd2 = new Date();var g2 = nd2.getMinutes()+":"+nd2.getSeconds()+":"+nd2.getMilliseconds(); 1869 console.info('cargando pagina...'+g2); 1870 }, 1000); 1871 */ 1872 $(document).ready(function(){ 1873 docReady(); 1874 1875 /* 1876 setTimeout(function(){ 1877 var nd2 = new Date();var g2 = nd2.getSeconds(); 1878 console.info('cargando pagina... ANTES'+g2); 1879 docReady(); 1880 var nd3 = new Date();var g3 = nd3.getMinutes()+":"+nd3.getSeconds()+":"+nd3.getMilliseconds(); 1881 console.info('cargando pagina... ------ DESPUES'+g3); 1882 }, 3000); 1883 */ 1884 });//end - document.ready 1885 }//end - init 1886 }//end - return 1887});//end - FeedController
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.