|
@@ -64,6 +64,8 @@ function handle_Letters(json, mittente, destinatario){
|
|
|
}
|
|
|
|
|
|
function handleLemma(json, lemma) {
|
|
|
+
|
|
|
+ let anni = [];
|
|
|
|
|
|
thead = '<div class="row def_res"> \
|
|
|
<div class="col-10">Documento</div> \
|
|
@@ -73,6 +75,7 @@ function handleLemma(json, lemma) {
|
|
|
var DocumentsTable = thead;
|
|
|
|
|
|
var i = 0;
|
|
|
+ var anno = "";
|
|
|
|
|
|
$.each(
|
|
|
json['results']['bindings'],
|
|
@@ -81,6 +84,12 @@ function handleLemma(json, lemma) {
|
|
|
var uri_document = value['uri_document']['value'];
|
|
|
var uri_info = "";
|
|
|
var type = "";
|
|
|
+ var date = "";
|
|
|
+ var year = "";
|
|
|
+ var month = "";
|
|
|
+ var day = "";
|
|
|
+ var sigla = "";
|
|
|
+ var text = "Nessun testo trovato";
|
|
|
var object_button = "";
|
|
|
|
|
|
if(value.hasOwnProperty('uri_infObj')) {
|
|
@@ -89,6 +98,24 @@ function handleLemma(json, lemma) {
|
|
|
if(value.hasOwnProperty('types')) {
|
|
|
type = value['types']['value'];
|
|
|
}
|
|
|
+ if(value.hasOwnProperty('time_span')) {
|
|
|
+ date = value['time_span']['value'];
|
|
|
+ }
|
|
|
+ if(value.hasOwnProperty('year')) {
|
|
|
+ year = value['year']['value'];
|
|
|
+ }
|
|
|
+ if(value.hasOwnProperty('month')) {
|
|
|
+ month = value['month']['value'];
|
|
|
+ }
|
|
|
+ if(value.hasOwnProperty('day')) {
|
|
|
+ day = value['day']['value'];
|
|
|
+ }
|
|
|
+ if(value.hasOwnProperty('text')) {
|
|
|
+ text = value['text']['value'];
|
|
|
+ }
|
|
|
+ if(value.hasOwnProperty('sigla')) {
|
|
|
+ sigla = value['sigla']['value'];
|
|
|
+ }
|
|
|
|
|
|
if (type.includes("lettera")) {
|
|
|
object_button = '<button type="button" id="' + uri_info +
|
|
@@ -106,80 +133,219 @@ function handleLemma(json, lemma) {
|
|
|
'<div class="col-2">' + object_button + '</div>' +
|
|
|
'</div>';
|
|
|
|
|
|
+ var aaaa = "";
|
|
|
+
|
|
|
+ if (anno != year) {
|
|
|
+ anno = year;
|
|
|
+ aaaa = year;
|
|
|
+ createYearPoint(aaaa);
|
|
|
+ }
|
|
|
+
|
|
|
+ anni.push(year);
|
|
|
+
|
|
|
+ querySigla = prefixes + (queryManager['queryRES']['queryTrovaSigla']).replace('<{SIGLA}>', sigla).replace('<{LEMMA}>', lemma);
|
|
|
+ doJsonQuery(querySigla).done(function(r) { manageTimeline(r, date, aaaa, month, day, document, uri_document, text); });
|
|
|
+
|
|
|
+ let element = [date, year, month, day, document, uri_document, text, uri_info];
|
|
|
+
|
|
|
+ createTimelineNode(element);
|
|
|
+
|
|
|
i++;
|
|
|
|
|
|
});
|
|
|
-
|
|
|
|
|
|
- document.getElementById("results_table").innerHTML = DocumentsTable;
|
|
|
- document.getElementById("results_title").innerHTML = i + " documenti con citazione di " + lemma;
|
|
|
-}
|
|
|
+ let uniqueyears = [...new Set(anni)];
|
|
|
|
|
|
- /*if(pageInfo.query1){
|
|
|
- document.getElementById("mittente_id").innerHTML = pageInfo.query1.mittente.value;
|
|
|
- //document.getElementById("mittente_btn").innerHTML = createButton("fa fa-user", "Scheda persona", "schedaPersona('PERS')".replace("PERS", pageInfo.query1.mittente.value));
|
|
|
- }
|
|
|
- if(pageInfo.query1){
|
|
|
- document.getElementById("destinatario_id").innerHTML = pageInfo.query1.destinatario.value;
|
|
|
- //document.getElementById("destinatario_btn").innerHTML = createButton("fa fa-user", "Scheda persona", "schedaPersona('PERS')".replace("PERS", pageInfo.query1.destinatario.value));
|
|
|
- }
|
|
|
- if(pageInfo.query1){
|
|
|
- document.getElementById("imageASPO").innerHTML = createEmbed(pageInfo.query1.subject.value);
|
|
|
- }
|
|
|
- if(pageInfo.query1){
|
|
|
- document.getElementById("luogo_partenza_id").innerHTML = pageInfo.query1.luogo_partenza.value;
|
|
|
- document.getElementById("luogo_partenza_btn").innerHTML = createButton("fa fa-map", "Vedi mappa", "schedaMappa('LUOGO')".replace("LUOGO", pageInfo.query1.uriLuogoPartenza.value));
|
|
|
- }
|
|
|
- if(pageInfo.query1){
|
|
|
- document.getElementById("luogo_arrivo_id").innerHTML = pageInfo.query1.luogo_arrivo.value;
|
|
|
- document.getElementById("luogo_arrivo_btn").innerHTML = createButton("fa fa-map", "Vedi mappa", "schedaMappa('LUOGO')".replace("LUOGO", pageInfo.query1.uriLuogoArrivo.value));
|
|
|
- }
|
|
|
- if(pageInfo.query1) document.getElementById("data_partenza_id").innerHTML = pageInfo.query1.data_partenza.value;
|
|
|
- if(pageInfo.query1) document.getElementById("data_arrivo_id").innerHTML = pageInfo.query1.data_arrivo.value;
|
|
|
- if(pageInfo.descrizione) document.getElementById("descrizione_id").innerHTML = pageInfo.descrizione.descrizione.value;
|
|
|
- if(pageInfo.areaLinguistica) document.getElementById("lingua_id").innerHTML = pageInfo.areaLinguistica.lingua.value;
|
|
|
- if(pageInfo.areaLinguistica) document.getElementById("area_linguistica_id").innerHTML = pageInfo.areaLinguistica.area_linguistica.value;
|
|
|
- if(pageInfo.sigla) document.getElementById("sigla_OVI").innerHTML = pageInfo.sigla.sigla_OVI.value;
|
|
|
- if(pageInfo.segnatura){
|
|
|
- document.getElementById("segnatura_id").innerHTML = pageInfo.segnatura.segnatura_OVI.value;
|
|
|
- document.getElementById("segnatura_btn").innerHTML = createButton("fa fa-link", "Link ASPO", "schedaASPO('SEGN')".replace("SEGN", thisUrlParams.link));
|
|
|
- }
|
|
|
- if(pageInfo.edizione){
|
|
|
- document.getElementById("edizione_id").innerHTML = pageInfo.edizione.edizione.value;
|
|
|
- document.getElementById("edizione_btn").innerHTML = createButton("fa fa-comments", "Cita Edizione", "schedaEdizione('EDIZ')".replace("EDIZ", pageInfo.edizione.edizione.value));
|
|
|
- }
|
|
|
- if(pageInfo.testo) document.getElementById("trascrizione_id").innerHTML = pageInfo.testo.testo_lemmatizzato.value;
|
|
|
- //
|
|
|
- if(pageInfo.antroponimi && pageInfo.antroponimi.length){
|
|
|
- const listaAntroponimi = pageInfo.antroponimi.map(elem => elem.antroponimo.value);
|
|
|
- document.getElementById("antroponimi").innerHTML = formatListAsLi(listaAntroponimi);
|
|
|
- }
|
|
|
- if(pageInfo.toponimi && pageInfo.toponimi.length){
|
|
|
- const listaToponimi = pageInfo.toponimi.map(elem => elem.toponimo.value);
|
|
|
- document.getElementById("toponimi").innerHTML = formatListAsLi(listaToponimi);
|
|
|
- }
|
|
|
+ var AnniList = "<h3>Anni</h3><ul>";
|
|
|
|
|
|
- if(pageInfo.query2) {
|
|
|
- if(pageInfo.query2.hasOwnProperty('mittente')) document.getElementById("mittente_id_ASPO").innerHTML = pageInfo.query2.mittente.value;
|
|
|
- if(pageInfo.query2.hasOwnProperty('uriSender')) document.getElementById("mittente_btn_ASPO").innerHTML = createButton("fa fa-user", "Scheda persona", "schedaPersona('PERS')".replace("PERS", pageInfo.query2.uriSender.value));
|
|
|
- if(pageInfo.query2.hasOwnProperty('destinatario')) document.getElementById("destinatario_id_ASPO").innerHTML = pageInfo.query2.destinatario.value;
|
|
|
- if(pageInfo.query2.hasOwnProperty('uriReceiver')) document.getElementById("destinatario_btn_ASPO").innerHTML = createButton("fa fa-user", "Scheda persona", "schedaPersona('PERS')".replace("PERS", pageInfo.query2.uriReceiver.value));
|
|
|
- if(pageInfo.query2.hasOwnProperty('placeSend')) document.getElementById("luogo_partenza_id_ASPO").innerHTML = pageInfo.query2.placeSend.value;
|
|
|
- if(pageInfo.query2.hasOwnProperty('placeReceive')) document.getElementById("luogo_arrivo_id_ASPO").innerHTML = pageInfo.query2.placeReceive.value;
|
|
|
- if(pageInfo.query2.hasOwnProperty('timeSpanSend')) document.getElementById("data_partenza_id_ASPO").innerHTML = pageInfo.query2.timeSpanSend.value;
|
|
|
- if(pageInfo.query2.hasOwnProperty('timeSpanReceive')) document.getElementById("data_arrivo_id_ASPO").innerHTML = pageInfo.query2.timeSpanReceive.value;
|
|
|
- if(pageInfo.query2.hasOwnProperty('material')) document.getElementById("consistenzaASPO").innerHTML = pageInfo.query2.material.value;
|
|
|
- if(pageInfo.query2.hasOwnProperty('dimension')) document.getElementById("dimensioneASPO").innerHTML = pageInfo.query2.dimension.value;
|
|
|
- if(pageInfo.query2.hasOwnProperty('identifier')) document.getElementById("segnatura_id_ASPO").innerHTML = pageInfo.query2.identifier.value;
|
|
|
- if(pageInfo.query2.hasOwnProperty('currentLocation')) document.getElementById("ownerASPO").innerHTML = pageInfo.query2.currentLocation.value;
|
|
|
-
|
|
|
+ for (var i=0; i<uniqueyears.length; i++) {
|
|
|
+ if (uniqueyears[i] != "") {
|
|
|
+ AnniList += "<li><button class='btn btn-default anno' id=\""+ uniqueyears[i] + "\">" + uniqueyears[i] + "</button></li>";
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ AnniList += "</ul>";
|
|
|
+
|
|
|
+ document.getElementById("lemma_buttons").style.display = "flex";
|
|
|
+ document.getElementById("anni").innerHTML = AnniList;
|
|
|
+ document.getElementById("results_table").innerHTML = DocumentsTable;
|
|
|
+ document.getElementById("results_title").innerHTML = titleCase(lemma);
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+function manageTimeline(json, date, year, month, day, document, uri_document, text) {
|
|
|
+
|
|
|
+ num = "";
|
|
|
+
|
|
|
+ $.each(
|
|
|
+ json['results']['bindings'],
|
|
|
+ function (index, value) {
|
|
|
+
|
|
|
+ if(value.hasOwnProperty('id')) {
|
|
|
+ num = value['id']['value'];
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
- if(pageInfo.sigla){
|
|
|
- document.getElementById("evt_button").innerHTML = createButtonEVT(pageInfo.sigla.sigla_OVI.value);
|
|
|
+ var testo = text;
|
|
|
+
|
|
|
+ /*if (num != "") {
|
|
|
+ var toReplace = "n='" + num + "'";
|
|
|
+ var toSearch = "<lem n='numero'\.* />[a-z]+";
|
|
|
+ testo = text.replaceAll(toReplace, "class='highlight'");
|
|
|
+ let rr = toSearch.replace("numero", num)
|
|
|
+ let rer = new RegExp(rr);
|
|
|
+ var pos = text.search(rer);
|
|
|
+ var searchedString = text.match(rer);
|
|
|
+ const regex = new RegExp(/<lem n=${testVar}.*>/);
|
|
|
+ text.replace(regex, num);
|
|
|
+ let regE = new RegExp("[0-9]+[]a$|[0-9]+[]" , 'g')
|
|
|
+ var result = String("la tua stringa").match(regE );
|
|
|
+ var ss = pos-150;
|
|
|
+ var ee = pos+150;
|
|
|
+ var start = 0;
|
|
|
+ var end = ee;
|
|
|
+ if (ss<0) {
|
|
|
+ start = 0;
|
|
|
+ } else {
|
|
|
+ start = ss;
|
|
|
+ }
|
|
|
+
|
|
|
+ testo = text.substring(start, end)
|
|
|
+
|
|
|
+ console.log([start, end, testo]);
|
|
|
+ } else {
|
|
|
+ testo = text;
|
|
|
}*/
|
|
|
|
|
|
+}
|
|
|
+
|
|
|
+function createTimelineNode(array) {
|
|
|
+
|
|
|
+ var data = array[0];
|
|
|
+ var anno = array[1];
|
|
|
+ var mese = array[2];
|
|
|
+ var giorno = array[3];
|
|
|
+ var titolo = array[4];
|
|
|
+ var testo = array[6];
|
|
|
+ var link = array[5];
|
|
|
+ var infObj = array[7]
|
|
|
+
|
|
|
+
|
|
|
+ var TimelineNode = '<li>' +
|
|
|
+ '<div class="timeline-time">' +
|
|
|
+ '<span class="time">'+ data +'</span>' +
|
|
|
+ '</div>' +
|
|
|
+ '<div class="timeline-icon">' +
|
|
|
+ '<a href="javascript:;"> </a>' +
|
|
|
+ '</div>' +
|
|
|
+ '<div class="timeline-body">' +
|
|
|
+ '<div class="timeline-header">' +
|
|
|
+ '<span id="' + infObj + '" class="lettera username">' + titolo + '</span>' +
|
|
|
+ '</div>' +
|
|
|
+ '<div class="timeline-content">' +
|
|
|
+ '<p>' + testo + '</p>' +
|
|
|
+ '</div>' +
|
|
|
+ '</div></li>';
|
|
|
+
|
|
|
+ document.getElementById("docTimeline").innerHTML += TimelineNode;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+function createYearPoint(anno) {
|
|
|
+
|
|
|
+ var TimelineNode = '<li>' +
|
|
|
+ '<div class="timeline-icon">' +
|
|
|
+ '<span id="anno_' + anno + '">' + anno + '</span>' +
|
|
|
+ '</div></li>';
|
|
|
+
|
|
|
+ document.getElementById("docTimeline").innerHTML += TimelineNode;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+function handle_map(json) {
|
|
|
+ console.log(json);
|
|
|
+
|
|
|
+ const locations = [];
|
|
|
+ const place_names = [];
|
|
|
+
|
|
|
+ var lat = 0;
|
|
|
+ var long = 0;
|
|
|
+ var i=0;
|
|
|
+ var myPlaces = "";
|
|
|
+
|
|
|
+ $.each(
|
|
|
+ json['results']['bindings'],
|
|
|
+ function (index, value) {
|
|
|
+ const loc = []
|
|
|
+ var uri = value['place']['value'];
|
|
|
+ var label = value['label']['value'];
|
|
|
+ var coord = value['coordinates']['value'];
|
|
|
+ const coordinates = coord.split(", ");
|
|
|
+ loc.push(label);
|
|
|
+ //myPlaces += "<div class='row'><div class='clickPlace col-10' data-point='"+ coordinates + "'>" + label + "</div><div class='luogo col' id='" +
|
|
|
+ //uri + "'><i class='far fa-map' style='cursor:pointer'></i></div></div>";
|
|
|
+ loc.push(coordinates[0]);
|
|
|
+ lat += parseInt(coordinates[0]);
|
|
|
+ loc.push(coordinates[1]);
|
|
|
+ long += parseInt(coordinates[1].replace(/^(\.)/,"0.").replace("-.", "-0."));
|
|
|
+ locations.push(loc);
|
|
|
+ i++;
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ console.log(locations);
|
|
|
+
|
|
|
+ var latitude = lat/i;
|
|
|
+ var longitude = long/i;
|
|
|
+
|
|
|
+ //document.getElementById("list_places_person").innerHTML = myPlaces;
|
|
|
+
|
|
|
+
|
|
|
+ var cloudmadeUrl = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png',
|
|
|
+ cloudmadeAttribution = 'Map data © 2011 OpenStreetMap contributors, Imagery © 2011 CloudMade, Points © 2012 LINZ',
|
|
|
+ cloudmade = new L.TileLayer(cloudmadeUrl, {maxZoom: 17, attribution: cloudmadeAttribution}),
|
|
|
+ latlng = new L.LatLng(latitude, longitude);
|
|
|
+
|
|
|
+
|
|
|
+ var map = new L.Map('map', {center: latlng, zoom: 5, layers: [cloudmade]});
|
|
|
+ mapLink = '<a href="https://openstreetmap.org">OpenStreetMap</a>';
|
|
|
+
|
|
|
+ var markers = new L.MarkerClusterGroup();
|
|
|
+ var markerList = [];
|
|
|
+
|
|
|
+ var geo = new L.tileLayer(
|
|
|
+ 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
|
|
+ attribution: '© ' + mapLink + ' Contributors',
|
|
|
+ maxZoom: 18,
|
|
|
+ }).addTo(map);
|
|
|
+
|
|
|
+ function populate() {
|
|
|
+ for (var i = 0; i < locations.length; i++) {
|
|
|
+ var a = locations[i];
|
|
|
+ var title = a[0];
|
|
|
+ var marker = new L.Marker(new L.LatLng(a[1], a[2]), { title: title });
|
|
|
+ marker.bindPopup(title);
|
|
|
+ markers.addLayer(marker);
|
|
|
+ markerList.push(marker);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ populate();
|
|
|
+
|
|
|
+ map.addLayer(markers);
|
|
|
+
|
|
|
+ $('.clickPlace').on('click', function(){
|
|
|
+ // parse lat and lng from the divs data attribute
|
|
|
+ var latlng = $(this).data().point.split(',');
|
|
|
+ var lat = latlng[0];
|
|
|
+ var lng = latlng[1];
|
|
|
+ var zoom = 10;
|
|
|
+
|
|
|
+ // set the view
|
|
|
+ map.setView([lat, lng], zoom);
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
// Mini-utility per formattare liste
|
|
|
function formatListAsLi(thisList){
|
|
|
toRet = "";
|
|
@@ -355,5 +521,49 @@ $(document).on("click", ".object", function (ev) {
|
|
|
//$('#myModal').text("");
|
|
|
window.open("object.html?link="+this.id);
|
|
|
|
|
|
+});
|
|
|
+
|
|
|
+function scrollPos(point) {
|
|
|
+ alert("helo");
|
|
|
+ var div = document.getElementById(point).scrollTop;
|
|
|
+ document.getElementById("pos").innerHTML = div;
|
|
|
+}
|
|
|
+
|
|
|
+$(document).on("click", ".anno", function (ev) {
|
|
|
+ var link = this.id;
|
|
|
+ var point = "#anno_" + link;
|
|
|
+ $('html, body').animate({
|
|
|
+ scrollTop: $(point).offset().top
|
|
|
+ }, 2000);
|
|
|
+
|
|
|
+});
|
|
|
+
|
|
|
+function titleCase(str) {
|
|
|
+ var splitStr = str.toLowerCase().split(' ');
|
|
|
+ for (var i = 0; i < splitStr.length; i++) {
|
|
|
+ // You do not need to check if i is larger than splitStr length, as your for does that for you
|
|
|
+ // Assign it back to the array
|
|
|
+ splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);
|
|
|
+ }
|
|
|
+ // Directly return the joined string
|
|
|
+ return splitStr.join(' ');
|
|
|
+ }
|
|
|
+
|
|
|
+function show_list(){
|
|
|
+ document.getElementById("res_container").style.display = "block";
|
|
|
+ document.getElementById("lemmiMappa").style.display = "none";
|
|
|
+ document.getElementById("lemmiTimeline").style.display = "none";
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+function show_timeline(){
|
|
|
+ document.getElementById("res_container").style.display = "none";
|
|
|
+ document.getElementById("lemmiMappa").style.display = "none";
|
|
|
+ document.getElementById("lemmiTimeline").style.display = "block";
|
|
|
+}
|
|
|
|
|
|
-});
|
|
|
+function show_map(){
|
|
|
+ document.getElementById("res_container").style.display = "none";
|
|
|
+ document.getElementById("lemmiMappa").style.display = "block";
|
|
|
+ document.getElementById("lemmiTimeline").style.display = "none";
|
|
|
+}
|