Diferencia entre revisiones de «MediaWiki:Filtros.js»
Ir a la navegación
Ir a la búsqueda
(No se muestran 69 ediciones intermedias de 2 usuarios) | |||
Línea 1: | Línea 1: | ||
jQuery(document).ready(function($){ | jQuery(document).ready(function($){ | ||
+ | |||
+ | if($(".iframe-libro").length){ | ||
+ | $(".iframe-libro").html('<iframe id="Iframe1" class="iframe-paginas" data-delay="50" width="100%" height="700" frameborder="0" src="' + $(".iframe-libro").data("src") + '"></iframe>') | ||
+ | } | ||
+ | if($(".tomos").length){ | ||
+ | $(".tomos a").click(function(e){ | ||
+ | var ulrTomo = $(this).attr("href"); | ||
+ | console.log(ulrTomo); | ||
+ | //$('#Iframe1').attr("src", "https://"+ulrTomo); | ||
+ | $(".l-tomo").addClass("hide"); | ||
+ | $(ulrTomo).removeClass("hide"); | ||
+ | $(".tomos a span").removeClass("active"); | ||
+ | $("span",this).addClass("active"); | ||
+ | e.preventDefault(); | ||
+ | }) | ||
+ | } | ||
function listFilter(input, list) { | function listFilter(input, list) { | ||
Línea 38: | Línea 54: | ||
} | } | ||
− | if($('.mw-category').length > 0){ | + | setTimeout(function(){ |
− | + | if($('.mw-category').length > 0){ | |
− | + | var filtro = $('<div class="filtro"><img src="/skins/Vector/images/search.png?39f97"><input type="text" id="filtro" /></div>'); | |
− | + | $('.mw-category').prepend(filtro); | |
− | + | listFilter($('#filtro'),$('.mw-category ')); | |
− | + | } | |
− | + | ||
− | + | if($('#listwidget-1-nav').length > 0){ | |
− | + | var filtro = $('<div class="filtro"><img src="/skins/Vector/images/search.png?39f97"><input type="text" placeholder="Busca en el listado" class="createboxInput" id="filtro" /></div>'); | |
− | + | $('#listwidget-1-nav').append(filtro); | |
− | + | ||
− | + | var abbrs = {}; | |
− | + | $("ul#listwidget-1 li a").each(function (i) { | |
− | + | if(this.firstChild.nodeValue!=null){ | |
− | + | var letter1 = this.firstChild.nodeValue.toLowerCase().trim(); | |
− | + | abbrs[letter1] = this; | |
− | + | var inicial = letter1[0]; | |
− | + | if($(this).closest('li').hasClass('ln--')){ | |
− | + | if(inicial == 'á') inicial = 'a'; | |
− | + | else if(inicial == 'é') inicial = 'e'; | |
− | + | else if(inicial == 'í') inicial = 'i'; | |
− | + | else if(inicial == 'ó') inicial = 'o'; | |
− | + | else if(inicial == 'ú') inicial = 'u'; | |
− | + | $(this).closest('li').removeClass('ln--').addClass('ln-'+inicial); | |
− | + | } | |
− | + | } | |
− | + | }); | |
− | + | //console.log(abbrs); | |
− | + | var abbrsLetters = {}; | |
− | + | $(".ln-letters a").each(function (i) { | |
− | + | if(this.firstChild.nodeValue!=null){ | |
− | + | var letter = this.firstChild.nodeValue.toLowerCase().trim(); | |
− | + | letter = letter.replace("-", ""); | |
− | + | if(letter == "09") letter="_"; | |
− | + | if(letter == "...") letter="-"; | |
− | + | //console.log("#listwidget-1 li.ln-" + letter) | |
− | + | abbrsLetters[letter] = $("#listwidget-1 li.ln-" + letter ).length; | |
+ | } | ||
+ | }); | ||
+ | //console.log(abbrsLetters) | ||
+ | $('.ln-last').hide(); | ||
+ | $('.ln-selected').click(); | ||
+ | |||
+ | $("#filtro").on("keyup", function() { | ||
+ | var filterBy = this.value.toLowerCase().trim(); | ||
+ | if(filterBy.length > 3){ | ||
+ | for (var abbr in abbrs) { | ||
+ | var li = abbrs[abbr]; | ||
+ | if (abbr.indexOf(filterBy) !== -1) { | ||
+ | $(li).parent().parent().parent().show() | ||
+ | //console.log(li) | ||
+ | // show li | ||
+ | }else{ | ||
+ | $(li).parent().parent().parent().hide() | ||
+ | } | ||
+ | } | ||
+ | }else{ | ||
+ | for (var abbr in abbrs) { | ||
+ | var li = abbrs[abbr]; | ||
+ | $(li).parent().parent().parent().show() | ||
+ | } | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | // Ponemos número de búsquedas: | ||
+ | for (var lt in abbrsLetters) { | ||
+ | var lnum = abbrsLetters[lt]; | ||
+ | $("." + lt).append(" <span>(" + lnum + ")</span>") | ||
+ | //console.log(lt + ">" + lnum) | ||
+ | } | ||
+ | |||
+ | } | ||
+ | },500) | ||
}); | }); | ||
Línea 264: | Línea 316: | ||
} | } | ||
− | $("#footer-info-lastmod").append(" El Diccionario interactivo de Ceán Bermúdez está subvencionado por la Dirección General de Bibliotecas, Archivos y Museos (Área de Gobierno de Cultura, Turismo y Deporte) del Ayuntamiento de Madrid con cargo a los presupuestos municipales del año 2020") | + | if(params["redlink"]){ |
+ | if(params["redlink"] == "1"){ | ||
+ | var htmlModal = ` | ||
+ | <h2>Vas a crear un nuevo contenido. ¿Esta nueva página corresponde con una obra?</h2> | ||
+ | <div class="modal-txt">Si es una obra se asignará la categoría correspondiente y se recargará la página. Después podrás volver a editar la obra. Te recomendamos que edites <strong>mediante el formuario</strong>.</div> | ||
+ | <div class="modal-btn"> | ||
+ | <div class="hide spinner">Un momento por favor...</div> | ||
+ | <a class="btn" href="javascript://" onclick="modalAction(1)">Sí, es una obra</a> | ||
+ | <a class="btn" href="javascript://" onclick="modalAction(0)">No, es una página</a> | ||
+ | </div> | ||
+ | ` | ||
+ | $("#content").append('<div id="modal-edit" class="modal-editar"><div class="modal-container"><div class="modal-editar-wrapper">'+htmlModal+'</div></div></div>') | ||
+ | function modalAction(accion){ | ||
+ | switch(accion){ | ||
+ | case 1: | ||
+ | //Ponemos la cateogoria | ||
+ | $("textarea#wpTextbox1").val("{{Obra:footer}}[[Category:Obras]]"); | ||
+ | $(".btn").addClass("hide"); | ||
+ | $(".spinner").removeClass("hide"); | ||
+ | $("#editform").submit(); | ||
+ | break; | ||
+ | case 0: | ||
+ | $("#modal-edit").remove(); | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function waitForEl(selector, callback){ | ||
+ | var poller1 = setInterval(function(){ | ||
+ | $jObject = jQuery(selector); | ||
+ | if($jObject.length < 1){ | ||
+ | return; | ||
+ | } | ||
+ | clearInterval(poller1); | ||
+ | callback($jObject) | ||
+ | },5); | ||
+ | } | ||
+ | if(params["title"]){ | ||
+ | waitForEl("#postedit-modqueued", function() { | ||
+ | $("#postedit-modqueued p").first().append('<p class="aviso-edit-form">Te recomendamos que edites el contenido <a href="/wiki/Especial:FormEdit/Obra/'+params["title"]+'">desde este formulario</a></p>') | ||
+ | $(".mw-notification").addClass("mw-edit-form"); | ||
+ | $(".aviso-edit-form").slideDown(); | ||
+ | }); | ||
+ | } | ||
+ | //Añadir edición de formulario en modal de aviso de moderación | ||
+ | /*setTimeout(function(){ | ||
+ | if($("#postedit-modqueued").length > 0 && params["title"]){ | ||
+ | $("#postedit-modqueued p").first().append('<p class="aviso-edit-form">Te recomendamos que edites el contenido <a href="/wiki/Especial:FormEdit/Obra/'+params["title"]+'">desde este formulario</a></p>') | ||
+ | $(".mw-notification").addClass("mw-edit-form"); | ||
+ | $(".aviso-edit-form").slideDown(); | ||
+ | } | ||
+ | }, 500)*/ | ||
+ | |||
+ | |||
+ | //Aviso de contenido nuevo | ||
+ | if($("body").hasClass("action-view") && $.trim($("#mw-content-text .mw-parser-output").text()) === "" && $("#mw-content-text .mw-parser-output").length > 0){ | ||
+ | if($("#catlinks").length > 0 ){ | ||
+ | if($.trim($("#catlinks").text()) != ""){ | ||
+ | var htmlModal = ` | ||
+ | <h2>Gracias por ayudarnos a hacer crecer el diccionario</h2> | ||
+ | <div class="modal-txt">Antes de que comiences la edición de la obra, sólo queremos que tengas en cuenta las siguientes recomendaciones:<br> | ||
+ | <ul> | ||
+ | <li>Para una correcta edición de todos los datos, es recomendable que edites <strong>mediante el formuario</strong>.</li> | ||
+ | <li>Puedes encontrar la opción <strong>"Editar con formulario"</strong> en la parte del menú superior junto al buscador.</li> | ||
+ | <li>No es necesario que se completen todos los datos</li> | ||
+ | <li>Si editas directamente, asegúrate de no borrar el código de la categoría asociada a la obra</li> | ||
+ | </ul> | ||
+ | </div> | ||
+ | <div class="modal-btn"> | ||
+ | <div class="hide spinner">Un momento por favor...</div> | ||
+ | <a class="btn" href="javascript://" onclick="$('#modal-edit').remove();">Continuar</a> | ||
+ | </div> | ||
+ | ` | ||
+ | $("#content").append('<div id="modal-edit" class="modal-editar"><div class="modal-container"><div class="modal-editar-wrapper">'+htmlModal+'</div></div></div>') | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | $('.add-referencia').click(function(e){ | ||
+ | e.preventDefault(); | ||
+ | |||
+ | var htmlModal = ` | ||
+ | <h2>Nueva referencia bibliográfica</h2> | ||
+ | <div class="modal-txt"> | ||
+ | <form id="form-referencia" class="filtro"> | ||
+ | <div class="bloque-tipo"> | ||
+ | <label>Tipo de referencia</label> | ||
+ | <select name="tipo" id="tipo" class="createboxInput webfonts-changed"> | ||
+ | <option value="libro">Libro</option> | ||
+ | <option value="capitulo">Capítulo de libro</option> | ||
+ | <option value="catalogo">Catálogo de exposición</option> | ||
+ | <option value="ficha">Ficha de catálogo de exposición</option> | ||
+ | <option value="revista">Artículo de revista</option> | ||
+ | <option value="web">Página web</option> | ||
+ | </select> | ||
+ | </div> | ||
+ | <div class="bloque-autores"> | ||
+ | <label>Autores: <a href="#" class="add-autor">Añadir autor</a></label> | ||
+ | <div class="autores-container"></div> | ||
+ | </div> | ||
+ | |||
+ | <div class="form-block libro capitulo"> | ||
+ | <label>Título del libro</label> | ||
+ | <input type="text" name="titulo-libro" id="titulo-libro" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block capitulo"> | ||
+ | <label>Capítulo del libro</label> | ||
+ | <input type="text" name="capitulo-libro" id="capitulo-libro" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block capitulo ficha bloque-autores"> | ||
+ | <label>Editor / Comisario: <a href="#" class="add-editor">Añadir editor</a></label> | ||
+ | <div class="editores-container"></div> | ||
+ | </div> | ||
+ | <div class="form-block ficha"> | ||
+ | <label>Título de la obra</label> | ||
+ | <input type="text" name="titulo-obra" id="titulo-obra" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block catalogo ficha"> | ||
+ | <label>Título exposición</label> | ||
+ | <input type="text" name="titulo-exposicion" id="titulo-exposicion" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block revista"> | ||
+ | <label>Título artículo</label> | ||
+ | <input type="text" name="titulo-articulo" id="titulo-articulo" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block revista"> | ||
+ | <label>Título revista</label> | ||
+ | <input type="text" name="titulo-revista" id="titulo-revista" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block web"> | ||
+ | <label>Título web</label> | ||
+ | <input type="text" name="titulo-web" id="titulo-web" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block web"> | ||
+ | <label>Título publicación</label> | ||
+ | <input type="text" name="titulo-publicacion-web" id="titulo-publicacion-web" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block libro capitulo"> | ||
+ | <label>Lugar de edición</label> | ||
+ | <input type="text" name="lugar-edicion" id="lugar-edicion" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block catalogo ficha"> | ||
+ | <label>Lugar de la exposición</label> | ||
+ | <input type="text" name="lugar-exposicion" id="lugar-exposicion" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block catalogo ficha"> | ||
+ | <label>Museo o institución</label> | ||
+ | <input type="text" name="museo-institucion" id="museo-institucion" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | |||
+ | <div class="form-block libro capitulo"> | ||
+ | <label>Año de edición</label> | ||
+ | <input type="text" name="anyo-edicion" id="anyo-edicion" class="createboxInput webfonts-changed"/> | ||
+ | </div> | ||
+ | <div class="form-block catalogo ficha revista"> | ||
+ | <label>Año</label> | ||
+ | <input type="text" name="anyo" id="anyo" class="createboxInput webfonts-changed"/> | ||
+ | </div> | ||
+ | <div class="form-block ficha revista"> | ||
+ | <label>Número</label> | ||
+ | <input type="text" name="numero" id="numero" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block libro capitulo catalogo ficha revista"> | ||
+ | <label>Páginas</label> | ||
+ | <input type="text" name="paginas" id="paginas" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block web"> | ||
+ | <label>URL</label> | ||
+ | <input type="text" name="url" id="url" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | <div class="form-block web"> | ||
+ | <label>Consultado en fecha</label> | ||
+ | <input type="text" name="fecha_consulta" id="fecha_consulta" class="createboxInput webfonts-changed" /> | ||
+ | </div> | ||
+ | </form> | ||
+ | </div> | ||
+ | <div class="modal-btn"> | ||
+ | <div class="hide spinner">Un momento por favor...</div> | ||
+ | <a class="btn" href="javascript://" onclick="$('#modal-edit').remove();">Cancelar</a> | ||
+ | <a class="btn" href="javascript://" onclick="insertar_referencia();$('#modal-edit').remove();" style="background:#e1251b">Insertar</a> | ||
+ | </div> | ||
+ | ` | ||
+ | $("#content").append('<div id="modal-edit" class="modal-editar modal-editar-ref"><div class="modal-container"><div class="modal-editar-wrapper">'+htmlModal+'</div></div></div>'); | ||
+ | $('.libro').slideDown({ | ||
+ | start: function () { | ||
+ | $(this).css({ | ||
+ | display: "flex" | ||
+ | }) | ||
+ | } | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | $('body').on('click','.add-autor',function(e){ | ||
+ | e.preventDefault(); | ||
+ | |||
+ | var html = `<div class="bloque-autor"> | ||
+ | <input type="text" name="iniciales[]" class="iniciales createboxInput webfonts-changed" placeholder="Inicial" /> | ||
+ | <input type="text" name="apellidos[]" class="apellidos createboxInput webfonts-changed" placeholder="Apellido" /> | ||
+ | <a href="#" class="borrar-autor">X</a> | ||
+ | </div>`; | ||
+ | $('.autores-container').append(html); | ||
+ | }); | ||
+ | $('body').on('click','.add-editor',function(e){ | ||
+ | e.preventDefault(); | ||
+ | |||
+ | var html = `<div class="bloque-autor"> | ||
+ | <input type="text" name="iniciales_ed[]" class="iniciales_ed createboxInput webfonts-changed" placeholder="Inicial" /> | ||
+ | <input type="text" name="apellidos_ed[]" class="apellidos_ed createboxInput webfonts-changed" placeholder="Apellido" /> | ||
+ | <a href="#" class="borrar-autor">X</a> | ||
+ | </div>`; | ||
+ | $('.editores-container').append(html); | ||
+ | }); | ||
+ | |||
+ | $('body').on('click','.borrar-autor',function(e){ | ||
+ | e.preventDefault(); | ||
+ | $(this).closest('.bloque-autor').remove(); | ||
+ | }); | ||
+ | |||
+ | |||
+ | $('body').on('change','#tipo',function(e){ | ||
+ | e.preventDefault(); | ||
+ | |||
+ | var tipo = $(this).find('option:selected').val(); | ||
+ | $('.form-block').hide(); | ||
+ | $('.'+tipo).slideDown({ | ||
+ | start: function () { | ||
+ | $(this).css({ | ||
+ | display: "flex" | ||
+ | }) | ||
+ | } | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | |||
+ | function insertar_referencia(){ | ||
+ | var tipo = $('#tipo').find('option:selected').val(); | ||
+ | var ref = "\n*"; | ||
+ | var editores = ''; | ||
+ | |||
+ | $('.iniciales').each(function(index){ | ||
+ | if(index < 2){ | ||
+ | ref = ref + $(this).val()+'. '+$('.apellidos:eq('+index+')').val()+', '; | ||
+ | } else if(index == 2) { | ||
+ | ref = ref + 'et al., '; | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | $('.iniciales_ed').each(function(index){ | ||
+ | if(index < 2){ | ||
+ | editores = editores + $(this).val()+'. '+$('.apellidos_ed:eq('+index+')').val(); | ||
+ | if(index+1 < $('.iniciales_ed').length ){ | ||
+ | editores = editores+', '; | ||
+ | } | ||
+ | } else if(index == 2) { | ||
+ | editores = editores + 'et al. '; | ||
+ | } | ||
+ | }); | ||
+ | if(tipo == 'capitulo' && editores.length > 0) editores = editores+' (eds.),'; | ||
+ | if(tipo == 'ficha' && editores.length > 0) editores = editores+' (coord.),'; | ||
+ | |||
+ | |||
+ | switch(tipo){ | ||
+ | case 'libro': | ||
+ | ref = ref + "''" + $('#titulo-libro').val()+ "''" +', '+$('#lugar-edicion').val()+', '+$('#anyo-edicion').val()+', p.'+$('#paginas').val()+'.' | ||
+ | break; | ||
+ | case 'capitulo': | ||
+ | ref = ref + '"Capítulo ' + $('#capitulo-libro').val()+'" en '+"''" + $('#titulo-libro').val()+ "''" +', '+' '+editores+' '+$('#lugar-edicion').val()+', '+$('#anyo-edicion').val()+', pp.'+$('#paginas').val()+'.' | ||
+ | break; | ||
+ | case 'catalogo': | ||
+ | ref = ref + "''" + $('#titulo-exposicion').val()+ "'', cat.exp. " +', '+$('#lugar-exposicion').val()+', '+$('#museo-institucion').val()+', '+$('#anyo').val()+', p.'+$('#paginas').val()+'.' | ||
+ | break; | ||
+ | case 'ficha': | ||
+ | ref = ref + '"' + $('#titulo-obra').val() + '", en '+' '+editores+' ' + "''" + $('#titulo-exposicion').val()+ "'', cat.exp." +', '+$('#lugar-exposicion').val()+', '+$('#museo-institucion').val()+', '+$('#anyo').val()+', n.'+$('#numero').val()+', pp.'+$('#paginas').val()+'.' | ||
+ | break; | ||
+ | case 'revista': | ||
+ | ref = ref + '"' + $('#titulo-articulo').val() + '", '+ "''" + $('#titulo-revista').val()+ "''" +', n.'+$('#numero').val()+', '; | ||
+ | if($('#anyo').val) { | ||
+ | ref = ref + $('#anyo').val()+', '; | ||
+ | } | ||
+ | ref = ref + 'p.'+$('#paginas').val()+'.' | ||
+ | break; | ||
+ | case 'web': | ||
+ | if($('#titulo-publicacion-web').val()){ | ||
+ | ref = ref + '"' + $('#titulo-web').val() + '", en ' + $('#titulo-publicacion-web').val() + '. Accesible en: ' + $('#url').val() + ' (consultado en ' + $('#fecha_consulta').val()+')'; | ||
+ | } else { | ||
+ | ref = ref + $('#titulo-web').val() + ' [en línea], ' + $('#url').val()+ ' (consultado en ' + $('#fecha_consulta').val()+')'; | ||
+ | } | ||
+ | break; | ||
+ | } | ||
+ | |||
+ | console.log(ref); | ||
+ | var refs = $('textarea[name*="[ref_bibliografica]"]').val(); | ||
+ | $('textarea[name*="[ref_bibliografica]"]').val( refs + ref); | ||
+ | } | ||
+ | |||
+ | //$('#referencias-footer').append($('#referencias-obra')); | ||
+ | //$('#referencias-obra').show(); | ||
+ | |||
+ | //$("#footer-info-lastmod").append(" El Diccionario interactivo de Ceán Bermúdez está subvencionado por la Dirección General de Bibliotecas, Archivos y Museos (Área de Gobierno de Cultura, Turismo y Deporte) del Ayuntamiento de Madrid con cargo a los presupuestos municipales del año 2020") |
Revisión actual del 09:49 20 ene 2022
jQuery(document).ready(function($){
if($(".iframe-libro").length){
$(".iframe-libro").html('<iframe id="Iframe1" class="iframe-paginas" data-delay="50" width="100%" height="700" frameborder="0" src="' + $(".iframe-libro").data("src") + '"></iframe>')
}
if($(".tomos").length){
$(".tomos a").click(function(e){
var ulrTomo = $(this).attr("href");
console.log(ulrTomo);
//$('#Iframe1').attr("src", "https://"+ulrTomo);
$(".l-tomo").addClass("hide");
$(ulrTomo).removeClass("hide");
$(".tomos a span").removeClass("active");
$("span",this).addClass("active");
e.preventDefault();
})
}
function listFilter(input, list) {
var sc = true;
$(input)
.change( function () {
var filter = $(this).val();
if(filter) {
$(list).find("li:not(:Contains(" + filter + "))").slideUp(function(){
if($(this).closest('.mw-category-group').find('li:visible').length == 0){
if($(this).closest('.mw-category-group').is(':visible')) {
$(this).closest('.mw-category-group').slideUp();
}
} else {
if(!$(this).closest('.mw-category-group').is(':visible')) {
$(this).closest('.mw-category-group').slideDown();
}
}
});
$(list).find("li:Contains(" + filter + ")").slideDown(function(){
if(!$(this).closest('.mw-category-group').is(':visible')) {
$(this).closest('.mw-category-group').slideDown();
}
});
} else {
$(list).find("li").slideDown();
$('.mw-category-group').slideDown();
}
return false;
})
.keyup( function () {
$(this).change();
if(sc) {$("html, body").animate({ scrollTop: $(".filtro").offset().top - 80 }, 500);sc=false;}
});
}
setTimeout(function(){
if($('.mw-category').length > 0){
var filtro = $('<div class="filtro"><img src="/skins/Vector/images/search.png?39f97"><input type="text" id="filtro" /></div>');
$('.mw-category').prepend(filtro);
listFilter($('#filtro'),$('.mw-category '));
}
if($('#listwidget-1-nav').length > 0){
var filtro = $('<div class="filtro"><img src="/skins/Vector/images/search.png?39f97"><input type="text" placeholder="Busca en el listado" class="createboxInput" id="filtro" /></div>');
$('#listwidget-1-nav').append(filtro);
var abbrs = {};
$("ul#listwidget-1 li a").each(function (i) {
if(this.firstChild.nodeValue!=null){
var letter1 = this.firstChild.nodeValue.toLowerCase().trim();
abbrs[letter1] = this;
var inicial = letter1[0];
if($(this).closest('li').hasClass('ln--')){
if(inicial == 'á') inicial = 'a';
else if(inicial == 'é') inicial = 'e';
else if(inicial == 'í') inicial = 'i';
else if(inicial == 'ó') inicial = 'o';
else if(inicial == 'ú') inicial = 'u';
$(this).closest('li').removeClass('ln--').addClass('ln-'+inicial);
}
}
});
//console.log(abbrs);
var abbrsLetters = {};
$(".ln-letters a").each(function (i) {
if(this.firstChild.nodeValue!=null){
var letter = this.firstChild.nodeValue.toLowerCase().trim();
letter = letter.replace("-", "");
if(letter == "09") letter="_";
if(letter == "...") letter="-";
//console.log("#listwidget-1 li.ln-" + letter)
abbrsLetters[letter] = $("#listwidget-1 li.ln-" + letter ).length;
}
});
//console.log(abbrsLetters)
$('.ln-last').hide();
$('.ln-selected').click();
$("#filtro").on("keyup", function() {
var filterBy = this.value.toLowerCase().trim();
if(filterBy.length > 3){
for (var abbr in abbrs) {
var li = abbrs[abbr];
if (abbr.indexOf(filterBy) !== -1) {
$(li).parent().parent().parent().show()
//console.log(li)
// show li
}else{
$(li).parent().parent().parent().hide()
}
}
}else{
for (var abbr in abbrs) {
var li = abbrs[abbr];
$(li).parent().parent().parent().show()
}
}
});
// Ponemos número de búsquedas:
for (var lt in abbrsLetters) {
var lnum = abbrsLetters[lt];
$("." + lt).append(" <span>(" + lnum + ")</span>")
//console.log(lt + ">" + lnum)
}
}
},500)
});
// Control de parámetros para búsqueda resaltada
var paramresalte = "find";
//Recuperamos parámetros
var get_params = function(search_string) {
var parse = function(params, pairs) {
var pair = pairs[0];
var parts = pair.split('=');
var key = decodeURIComponent(parts[0]);
var value = decodeURIComponent(parts.slice(1).join('='));
// Handle multiple parameters of the same name
if (typeof params[key] === "undefined") {
params[key] = value;
} else {
params[key] = [].concat(params[key], value);
}
return pairs.length == 1 ? params : parse(params, pairs.slice(1))
}
// Get rid of leading ?
return search_string.length == 0 ? {} : parse({}, search_string.substr(1).split('&'));
}
var params = get_params(location.search);
if(params["search"]){
document.querySelectorAll(".mw-search-result-heading a").forEach(a => {
a.href = a.href + "?"+paramresalte+"="+params["search"];
});
}
var InstantSearch = {
"highlight": function (container, highlightText)
{
var internalHighlighter = function (options)
{
var id = {
container: "container",
tokens: "tokens",
all: "all",
token: "token",
className: "className",
sensitiveSearch: "sensitiveSearch"
},
tokens = options[id.tokens],
allClassName = options[id.all][id.className],
allSensitiveSearch = options[id.all][id.sensitiveSearch];
function checkAndReplace(node, tokenArr, classNameAll, sensitiveSearchAll)
{
var nodeVal = node.nodeValue, parentNode = node.parentNode,
i, j, curToken, myToken, myClassName, mySensitiveSearch,
finalClassName, finalSensitiveSearch,
foundIndex, begin, matched, end,
textNode, span, isFirst;
for (i = 0, j = tokenArr.length; i < j; i++)
{
curToken = tokenArr[i];
myToken = curToken[id.token];
myClassName = curToken[id.className];
mySensitiveSearch = curToken[id.sensitiveSearch];
finalClassName = (classNameAll ? myClassName + " " + classNameAll : myClassName);
finalSensitiveSearch = (typeof sensitiveSearchAll !== "undefined" ? sensitiveSearchAll : mySensitiveSearch);
isFirst = true;
while (true)
{
if (finalSensitiveSearch)
foundIndex = nodeVal.indexOf(myToken);
else
foundIndex = nodeVal.toLowerCase().indexOf(myToken.toLowerCase());
if (foundIndex < 0)
{
if (isFirst)
break;
if (nodeVal)
{
textNode = document.createTextNode(nodeVal);
parentNode.insertBefore(textNode, node);
} // End if (nodeVal)
parentNode.removeChild(node);
break;
} // End if (foundIndex < 0)
isFirst = false;
begin = nodeVal.substring(0, foundIndex);
matched = nodeVal.substr(foundIndex, myToken.length);
if (begin)
{
textNode = document.createTextNode(begin);
parentNode.insertBefore(textNode, node);
} // End if (begin)
span = document.createElement("span");
span.className += finalClassName;
span.appendChild(document.createTextNode(matched));
parentNode.insertBefore(span, node);
nodeVal = nodeVal.substring(foundIndex + myToken.length);
} // Whend
} // Next i
}; // End Function checkAndReplace
function iterator(p)
{
if (p === null) return;
var children = Array.prototype.slice.call(p.childNodes), i, cur;
if (children.length)
{
for (i = 0; i < children.length; i++)
{
cur = children[i];
if (cur.nodeType === 3)
{
checkAndReplace(cur, tokens, allClassName, allSensitiveSearch);
}
else if (cur.nodeType === 1)
{
iterator(cur);
}
}
}
}; // End Function iterator
iterator(options[id.container]);
} // End Function highlighter
;
internalHighlighter(
{
container: container
, all:
{
className: "highlighter"
}
, tokens: [
{
token: highlightText
, className: "highlight"
, sensitiveSearch: false
}
]
}
); // End Call internalHighlighter
} // End Function highlight
};
if(params[paramresalte]){
var container = document.getElementById("mw-content-text");
var findWord = params[paramresalte];
findWord = findWord.replace(",", "");
const regex = /(?<=")[^"]+(?=")/;
var find1 = findWord.match(regex);
console.log(find1);
if(find1!=null){
findWord = find1[0].replace("+", " ");
}
var findWordArr = findWord.split("+");
//$('html,body').animate({scrollTop:( )},1000,function(){});
findWordArr.forEach(a => {
InstantSearch.highlight(container, a);
});
}
if(params["redlink"]){
if(params["redlink"] == "1"){
var htmlModal = `
<h2>Vas a crear un nuevo contenido. ¿Esta nueva página corresponde con una obra?</h2>
<div class="modal-txt">Si es una obra se asignará la categoría correspondiente y se recargará la página. Después podrás volver a editar la obra. Te recomendamos que edites <strong>mediante el formuario</strong>.</div>
<div class="modal-btn">
<div class="hide spinner">Un momento por favor...</div>
<a class="btn" href="javascript://" onclick="modalAction(1)">Sí, es una obra</a>
<a class="btn" href="javascript://" onclick="modalAction(0)">No, es una página</a>
</div>
`
$("#content").append('<div id="modal-edit" class="modal-editar"><div class="modal-container"><div class="modal-editar-wrapper">'+htmlModal+'</div></div></div>')
function modalAction(accion){
switch(accion){
case 1:
//Ponemos la cateogoria
$("textarea#wpTextbox1").val("{{Obra:footer}}[[Category:Obras]]");
$(".btn").addClass("hide");
$(".spinner").removeClass("hide");
$("#editform").submit();
break;
case 0:
$("#modal-edit").remove();
break;
}
}
}
}
function waitForEl(selector, callback){
var poller1 = setInterval(function(){
$jObject = jQuery(selector);
if($jObject.length < 1){
return;
}
clearInterval(poller1);
callback($jObject)
},5);
}
if(params["title"]){
waitForEl("#postedit-modqueued", function() {
$("#postedit-modqueued p").first().append('<p class="aviso-edit-form">Te recomendamos que edites el contenido <a href="/wiki/Especial:FormEdit/Obra/'+params["title"]+'">desde este formulario</a></p>')
$(".mw-notification").addClass("mw-edit-form");
$(".aviso-edit-form").slideDown();
});
}
//Añadir edición de formulario en modal de aviso de moderación
/*setTimeout(function(){
if($("#postedit-modqueued").length > 0 && params["title"]){
$("#postedit-modqueued p").first().append('<p class="aviso-edit-form">Te recomendamos que edites el contenido <a href="/wiki/Especial:FormEdit/Obra/'+params["title"]+'">desde este formulario</a></p>')
$(".mw-notification").addClass("mw-edit-form");
$(".aviso-edit-form").slideDown();
}
}, 500)*/
//Aviso de contenido nuevo
if($("body").hasClass("action-view") && $.trim($("#mw-content-text .mw-parser-output").text()) === "" && $("#mw-content-text .mw-parser-output").length > 0){
if($("#catlinks").length > 0 ){
if($.trim($("#catlinks").text()) != ""){
var htmlModal = `
<h2>Gracias por ayudarnos a hacer crecer el diccionario</h2>
<div class="modal-txt">Antes de que comiences la edición de la obra, sólo queremos que tengas en cuenta las siguientes recomendaciones:<br>
<ul>
<li>Para una correcta edición de todos los datos, es recomendable que edites <strong>mediante el formuario</strong>.</li>
<li>Puedes encontrar la opción <strong>"Editar con formulario"</strong> en la parte del menú superior junto al buscador.</li>
<li>No es necesario que se completen todos los datos</li>
<li>Si editas directamente, asegúrate de no borrar el código de la categoría asociada a la obra</li>
</ul>
</div>
<div class="modal-btn">
<div class="hide spinner">Un momento por favor...</div>
<a class="btn" href="javascript://" onclick="$('#modal-edit').remove();">Continuar</a>
</div>
`
$("#content").append('<div id="modal-edit" class="modal-editar"><div class="modal-container"><div class="modal-editar-wrapper">'+htmlModal+'</div></div></div>')
}
}
}
$('.add-referencia').click(function(e){
e.preventDefault();
var htmlModal = `
<h2>Nueva referencia bibliográfica</h2>
<div class="modal-txt">
<form id="form-referencia" class="filtro">
<div class="bloque-tipo">
<label>Tipo de referencia</label>
<select name="tipo" id="tipo" class="createboxInput webfonts-changed">
<option value="libro">Libro</option>
<option value="capitulo">Capítulo de libro</option>
<option value="catalogo">Catálogo de exposición</option>
<option value="ficha">Ficha de catálogo de exposición</option>
<option value="revista">Artículo de revista</option>
<option value="web">Página web</option>
</select>
</div>
<div class="bloque-autores">
<label>Autores: <a href="#" class="add-autor">Añadir autor</a></label>
<div class="autores-container"></div>
</div>
<div class="form-block libro capitulo">
<label>Título del libro</label>
<input type="text" name="titulo-libro" id="titulo-libro" class="createboxInput webfonts-changed" />
</div>
<div class="form-block capitulo">
<label>Capítulo del libro</label>
<input type="text" name="capitulo-libro" id="capitulo-libro" class="createboxInput webfonts-changed" />
</div>
<div class="form-block capitulo ficha bloque-autores">
<label>Editor / Comisario: <a href="#" class="add-editor">Añadir editor</a></label>
<div class="editores-container"></div>
</div>
<div class="form-block ficha">
<label>Título de la obra</label>
<input type="text" name="titulo-obra" id="titulo-obra" class="createboxInput webfonts-changed" />
</div>
<div class="form-block catalogo ficha">
<label>Título exposición</label>
<input type="text" name="titulo-exposicion" id="titulo-exposicion" class="createboxInput webfonts-changed" />
</div>
<div class="form-block revista">
<label>Título artículo</label>
<input type="text" name="titulo-articulo" id="titulo-articulo" class="createboxInput webfonts-changed" />
</div>
<div class="form-block revista">
<label>Título revista</label>
<input type="text" name="titulo-revista" id="titulo-revista" class="createboxInput webfonts-changed" />
</div>
<div class="form-block web">
<label>Título web</label>
<input type="text" name="titulo-web" id="titulo-web" class="createboxInput webfonts-changed" />
</div>
<div class="form-block web">
<label>Título publicación</label>
<input type="text" name="titulo-publicacion-web" id="titulo-publicacion-web" class="createboxInput webfonts-changed" />
</div>
<div class="form-block libro capitulo">
<label>Lugar de edición</label>
<input type="text" name="lugar-edicion" id="lugar-edicion" class="createboxInput webfonts-changed" />
</div>
<div class="form-block catalogo ficha">
<label>Lugar de la exposición</label>
<input type="text" name="lugar-exposicion" id="lugar-exposicion" class="createboxInput webfonts-changed" />
</div>
<div class="form-block catalogo ficha">
<label>Museo o institución</label>
<input type="text" name="museo-institucion" id="museo-institucion" class="createboxInput webfonts-changed" />
</div>
<div class="form-block libro capitulo">
<label>Año de edición</label>
<input type="text" name="anyo-edicion" id="anyo-edicion" class="createboxInput webfonts-changed"/>
</div>
<div class="form-block catalogo ficha revista">
<label>Año</label>
<input type="text" name="anyo" id="anyo" class="createboxInput webfonts-changed"/>
</div>
<div class="form-block ficha revista">
<label>Número</label>
<input type="text" name="numero" id="numero" class="createboxInput webfonts-changed" />
</div>
<div class="form-block libro capitulo catalogo ficha revista">
<label>Páginas</label>
<input type="text" name="paginas" id="paginas" class="createboxInput webfonts-changed" />
</div>
<div class="form-block web">
<label>URL</label>
<input type="text" name="url" id="url" class="createboxInput webfonts-changed" />
</div>
<div class="form-block web">
<label>Consultado en fecha</label>
<input type="text" name="fecha_consulta" id="fecha_consulta" class="createboxInput webfonts-changed" />
</div>
</form>
</div>
<div class="modal-btn">
<div class="hide spinner">Un momento por favor...</div>
<a class="btn" href="javascript://" onclick="$('#modal-edit').remove();">Cancelar</a>
<a class="btn" href="javascript://" onclick="insertar_referencia();$('#modal-edit').remove();" style="background:#e1251b">Insertar</a>
</div>
`
$("#content").append('<div id="modal-edit" class="modal-editar modal-editar-ref"><div class="modal-container"><div class="modal-editar-wrapper">'+htmlModal+'</div></div></div>');
$('.libro').slideDown({
start: function () {
$(this).css({
display: "flex"
})
}
});
});
$('body').on('click','.add-autor',function(e){
e.preventDefault();
var html = `<div class="bloque-autor">
<input type="text" name="iniciales[]" class="iniciales createboxInput webfonts-changed" placeholder="Inicial" />
<input type="text" name="apellidos[]" class="apellidos createboxInput webfonts-changed" placeholder="Apellido" />
<a href="#" class="borrar-autor">X</a>
</div>`;
$('.autores-container').append(html);
});
$('body').on('click','.add-editor',function(e){
e.preventDefault();
var html = `<div class="bloque-autor">
<input type="text" name="iniciales_ed[]" class="iniciales_ed createboxInput webfonts-changed" placeholder="Inicial" />
<input type="text" name="apellidos_ed[]" class="apellidos_ed createboxInput webfonts-changed" placeholder="Apellido" />
<a href="#" class="borrar-autor">X</a>
</div>`;
$('.editores-container').append(html);
});
$('body').on('click','.borrar-autor',function(e){
e.preventDefault();
$(this).closest('.bloque-autor').remove();
});
$('body').on('change','#tipo',function(e){
e.preventDefault();
var tipo = $(this).find('option:selected').val();
$('.form-block').hide();
$('.'+tipo).slideDown({
start: function () {
$(this).css({
display: "flex"
})
}
});
});
function insertar_referencia(){
var tipo = $('#tipo').find('option:selected').val();
var ref = "\n*";
var editores = '';
$('.iniciales').each(function(index){
if(index < 2){
ref = ref + $(this).val()+'. '+$('.apellidos:eq('+index+')').val()+', ';
} else if(index == 2) {
ref = ref + 'et al., ';
}
});
$('.iniciales_ed').each(function(index){
if(index < 2){
editores = editores + $(this).val()+'. '+$('.apellidos_ed:eq('+index+')').val();
if(index+1 < $('.iniciales_ed').length ){
editores = editores+', ';
}
} else if(index == 2) {
editores = editores + 'et al. ';
}
});
if(tipo == 'capitulo' && editores.length > 0) editores = editores+' (eds.),';
if(tipo == 'ficha' && editores.length > 0) editores = editores+' (coord.),';
switch(tipo){
case 'libro':
ref = ref + "''" + $('#titulo-libro').val()+ "''" +', '+$('#lugar-edicion').val()+', '+$('#anyo-edicion').val()+', p.'+$('#paginas').val()+'.'
break;
case 'capitulo':
ref = ref + '"Capítulo ' + $('#capitulo-libro').val()+'" en '+"''" + $('#titulo-libro').val()+ "''" +', '+' '+editores+' '+$('#lugar-edicion').val()+', '+$('#anyo-edicion').val()+', pp.'+$('#paginas').val()+'.'
break;
case 'catalogo':
ref = ref + "''" + $('#titulo-exposicion').val()+ "'', cat.exp. " +', '+$('#lugar-exposicion').val()+', '+$('#museo-institucion').val()+', '+$('#anyo').val()+', p.'+$('#paginas').val()+'.'
break;
case 'ficha':
ref = ref + '"' + $('#titulo-obra').val() + '", en '+' '+editores+' ' + "''" + $('#titulo-exposicion').val()+ "'', cat.exp." +', '+$('#lugar-exposicion').val()+', '+$('#museo-institucion').val()+', '+$('#anyo').val()+', n.'+$('#numero').val()+', pp.'+$('#paginas').val()+'.'
break;
case 'revista':
ref = ref + '"' + $('#titulo-articulo').val() + '", '+ "''" + $('#titulo-revista').val()+ "''" +', n.'+$('#numero').val()+', ';
if($('#anyo').val) {
ref = ref + $('#anyo').val()+', ';
}
ref = ref + 'p.'+$('#paginas').val()+'.'
break;
case 'web':
if($('#titulo-publicacion-web').val()){
ref = ref + '"' + $('#titulo-web').val() + '", en ' + $('#titulo-publicacion-web').val() + '. Accesible en: ' + $('#url').val() + ' (consultado en ' + $('#fecha_consulta').val()+')';
} else {
ref = ref + $('#titulo-web').val() + ' [en línea], ' + $('#url').val()+ ' (consultado en ' + $('#fecha_consulta').val()+')';
}
break;
}
console.log(ref);
var refs = $('textarea[name*="[ref_bibliografica]"]').val();
$('textarea[name*="[ref_bibliografica]"]').val( refs + ref);
}
//$('#referencias-footer').append($('#referencias-obra'));
//$('#referencias-obra').show();
//$("#footer-info-lastmod").append(" El Diccionario interactivo de Ceán Bermúdez está subvencionado por la Dirección General de Bibliotecas, Archivos y Museos (Área de Gobierno de Cultura, Turismo y Deporte) del Ayuntamiento de Madrid con cargo a los presupuestos municipales del año 2020")