From c7c7cea39e29c300b9d9fa5ed320e6846d669570 Mon Sep 17 00:00:00 2001 From: Luca Trupiano Date: Fri, 14 Apr 2023 19:05:05 +0200 Subject: [PATCH] Aggiunti tab nell'area visualizza, modifiche grafiche alla ricerca --- css/custom1_4.3.css | 441 ++++++++++ css/custom2_4.3.css | 443 ++++++++++ index_4.3.html | 1928 +++++++++++++++++++++++++++++++++++++++++++ js/minimap_4.3.js | 165 ++++ js/script_4.3.js | 1428 ++++++++++++++++++++++++++++++++ 5 files changed, 4405 insertions(+) create mode 100644 css/custom1_4.3.css create mode 100644 css/custom2_4.3.css create mode 100644 index_4.3.html create mode 100644 js/minimap_4.3.js create mode 100644 js/script_4.3.js diff --git a/css/custom1_4.3.css b/css/custom1_4.3.css new file mode 100644 index 0000000..5b9cd2d --- /dev/null +++ b/css/custom1_4.3.css @@ -0,0 +1,441 @@ +@charset "UTF-8"; +/* custom.css */ + + +@font-face { + font-family: Humanist-777; + src: url(../fonts/Humanist-777-Font.otf); +} + +@font-face { + font-family: Bracciolini; + src: url(../fonts/LDR_Bracciolini.otf); +} + +html, body { + height: 100%; + font-family: 'Humanist-777', 'Roboto'; +} + +.tableMain { + height: 95%; + min-height: 600px; +} + +.distanziatore { + height: 63px; + overflow:hidden; +} + +.menuNavigazione { + width: 15%; +} + +#colVisualizza { + max-height: 95%; + min-height: 600px; +} + +.tableVis { + border-left-width: 2px !important; + border-bottom-width: 2px !important; +} + +#colMinimap { + padding-top: 63px; + min-height: 600px; + min-width: 111px !important; + width: 111px !important; + border-right-width: 2px !important; + border-bottom-width: 2px !important; +} + +.menuRicerca { + width: 30%; + min-width: 370px !important; +} + +#displaycantoWrapper { + display: d-flex; + overflow-y: scroll; + box-sizing: border-box; width: calc(100% + 17px); +} + +.visInfo2 { + padding-top: 4px; +} + +#displayinfo, #displaynote { + overflow: auto !important; +} + +.doubleborder { + z-index: 90; + border-bottom-width: 8px !important; + border-bottom-style: double !important; +} + +.badge-outline-info { + padding: .1rem .15rem; + margin-left: .15rem; + margin-right: .2rem; + font-weight: 300; + vertical-align: super; + border: 1px solid; +} + +.borderRadiusZero { + border-radius: 0 !important; +} + +.leftBorderRadiusZero { + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} + + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #5f8ec2; + background-color: #fff; + border: 1px solid #dee2e6; +} + +.lista-risultati:hover, .citazioneFrase:hover { + cursor: pointer; +} + +.navig-canto .sel-canto { + line-height: 1.2em; +} + +.navig-canto:hover { + font-weight: 800; + cursor: pointer; +} + +.ui-icon.inline { + display:inline-block; +}​ + +.ui-state-disabled-opacity-1 { + opacity: 1 !important; +} + +.ui-state-disabled-opacity-06 { + opacity: 0.6 !important; +} + +.ui-selectable { + list-style-type: none; + margin: 0; + padding: 0; +} + +#queryText { + width: 150px; + border-width: 2px !important; +} + + +/* +Minimap +*/ + +.minimap__container { + /*position: fixed;*/ + /*top: 160px;*/ + /*left: 600px;*/ + min-width: 20px; + z-index: 100; +} + +.minimap__size { + position: relative; + z-index: 5; +} + +.minimap__viewer { + width: 70px; + position:absolute; + top: 2px; + left: 1px; + transform-origin: 0 0; + z-index: 100; + border: 2px solid; +} + +.minimap__content { + position:absolute; + top: 63; + left: 0; + width:100%; + height: 100%; + z-index: 10; + transform-origin: 0 0; + margin: 4px 0px 0px 4px; + border-style: none; +} + +.filler { + width: 100%; + position: relative; +} + +.filler img { + position: absolute; top: 0; left: 0; + width: 100%; + height: 100%; +} + + +/* +Ex browsingldc.css +*/ + +.blog-main{ + font-size: 18px; + font-family: "Bracciolini", "Spectral", -apple-system, BlinkMacSystemFont, “Helvetica Neue”, + “Segoe UI”, “Roboto”, “Oxygen”, “Ubuntu”, “Cantarell”, “Fira Sans”, “Droid Sans”, sans-serif; +} + +.synt__info{ + font-size: 12px; + font-weight: normal; + font-style: italic; + font-family: Palatino; + letter-spacing:0.5px; +} +.synt__categ{ + font-size: 10px; + font-weight: normal; + font-family: Palatino; + letter-spacing:0.5px; + } +.numverso { + font-size: 12px; + font-family: 'Humanist-777', 'Roboto'; +} + +.espandiFrase:not(.disabled), .riduciFrase:not(.disabled) { + font-size: 10px; + font-family: 'Humanist-777', 'Roboto'; + border: 2px solid; + cursor: pointer; +} + +.espandiFrase.disabled, .riduciFrase.disabled { + font-size: 10px; + font-family: 'Humanist-777', 'Roboto'; + cursor: default; +} + +.citazioneFrase { + font-style: italic; + font-family: "Bracciolini", "Spectral", -apple-system, BlinkMacSystemFont, “Helvetica Neue”, + “Segoe UI”, “Roboto”, “Oxygen”, “Ubuntu”, “Cantarell”, “Fira Sans”, “Droid Sans”, sans-serif; + line-height: 0.5em; + font-size: 16px; +} + +.btn-outline-secondary.focus, .btn-outline-secondary:focus { + outline: none !important; + box-shadow: none; +} + + +/* on mouseOver classes */ + +.Nik_dropdown { + position: relative; + display: inline-block; +} + + +.Nik_dropdown-content { + max-width: 170px; + min-width: 70px; + padding: 0px 0px; + font-size: 12px; + z-index: 100; +} + +.Nik_dropdown:hover .Nik_dropdown-content { + display: block; +} + +cite.elencoris { + line-height: 2.5; +} + +.canto { + -webkit-user-select: none; + user-select: none; +} + +.itemelenco { + -webkit-user-select: none; + user-select: none; +} + +.ttContent { + padding: 5px 5px 0px 5px; +} + +li::marker { + font-size: 12px; + font-family: 'Humanist-777', 'Roboto'; + white-space: nowrap; + } + +/* ------- customize colors -------- */ + +/* LINK utili: + https://lingtalfi.com/bootstrap4-color-generator + https://colordesigner.io/gradient-generator/?mode=lch#fafa6e-2A4858 + https://colordesigner.io/#004056-2C858D-74CEB7-C9FFD5-FFFFCB + https://colordesigner.io/#fab37f-f1924e-4abd8c-00968e-106e7c + https://bootstrap.build/app +*/ +/* +- lida1: + + $primary rgb(95, 142, 194) #5f8ec2 + $secondary $gray-600 #6c757d + $success rgb(117, 159, 154) #759F9A + $info #935fc2 + $warning rgb(229, 194, 105) #E5C269 #eace87 + $danger #9f757a + + $text-muted $gray-700 #495057 +------------------------------------*/ + + +/* ------- #cbcbc0, #e7d4bf , #d9c8ca -------- */ +.navbar { + background-image: linear-gradient(to right, #e7d4bf , #d9c8ca); + border-bottom-width: 2px !important; + border-bottom-color: #cbcbc0 !important; +} + +.doubleborder { + border-bottom-color: #cbcbc0 !important; +} + + +/* ------- $primary #5f8ec2 -------- */ + +.badge-outline-info { + color: #5f8ec2; + border-color: #5f8ec2; +} +.navig-canto:hover, .citazioneFrase:hover { + color: #5f8ec2 !important; +} + +.minimap__viewer { + border-color: rgba(203, 203, 192, 1); + background-color: rgba(203, 203, 192, 0.5); +} + +/* ------- $success rgb(117, 159, 154) / #759F9A , #DEE2E6 -------- */ + +.custom-control-input:active~.custom-control-label::before { + background-color: rgba(117, 159, 154, 0.5) !important; + border-color: rgba(117, 159, 154, 0.5) !important; +} +.custom-control-input:focus:not(:checked)~.custom-control-label::before { + border-color: rgb(117, 159, 154) !important; +} +.custom-control-input:checked~.custom-control-label::before { + border-color: rgb(117, 159, 154) !important; + background-color: rgb(117, 159, 154) !important; +} +.ui-selectable .ui-selecting { + background: #759F9A; +} +.ui-selectable .ui-selected { + background: #DEE2E6; + color: #759F9A !important; +} + + +/* ------- $warning #eace87 -------- */ + +.mark { + background-color: #eace87 !important; +} + + +/* ------- #985949 -------- */ + +#displaycanto span:hover { + color: #985949; +} +.ttContent { + color: #985949; +} + + +/* ------- #5b352c -------- */ + +.citazioneFrase { + color: #5b352c; +} + + +/* ------- #1E90FF -------- */ + +.Nik_dropdown-content { + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + color: #1E90FF; +} + + +/* ricerca avanzata */ + +.bg-lida10 { + background-color: #c8d9d7 !important; +} + +/* clausola */ +.bg-lida11 { + background-color: #e3eceb !important; +} + +/* AND */ +.bg-lida12 { + background-color: #faf3e1 !important; +} + +/* OR */ +.bg-lida13 { + background-color: #ece3e4 !important; +} + + +/* visualizza e minimap */ +.bg-lida-vis, #displayminimap, .claCollBtn { + background-color: #fefeff! important; +} + +/* body */ +.body-vis { + background-color: #fcfaf7! important; + padding-top: 0px; +} + +.custom-select-sm.bg-light:hover, .custom-select-sm.bg-lida12:hover, .custom-select-sm.bg-lida13:hover { + background-color: #dae0e5!important; + cursor: pointer; +} + +.ui-icon-arrowthick-2-n-s:hover { + cursor: move; +} + + diff --git a/css/custom2_4.3.css b/css/custom2_4.3.css new file mode 100644 index 0000000..2c50b32 --- /dev/null +++ b/css/custom2_4.3.css @@ -0,0 +1,443 @@ +@charset "UTF-8"; +/* custom.css */ + + +@font-face { + font-family: Humanist-777; + src: url(../fonts/Humanist-777-Font.otf); +} + +@font-face { + font-family: Bracciolini; + src: url(../fonts/LDR_Bracciolini.otf); +} + +html, body { + height: 100%; + font-family: 'Humanist-777', 'Roboto'; +} + +.tableMain { + height: 95%; + min-height: 600px; +} + +.distanziatore { + height: 63px; + overflow:hidden; +} + +.menuNavigazione { + width: 15%; +} + +#colVisualizza { + max-height: 95%; + min-height: 600px; +} + +.tableVis { + border-left-width: 2px !important; + border-bottom-width: 2px !important; +} + +#colMinimap { + padding-top: 63px; + min-height: 600px; + min-width: 110px !important; + width: 110px !important; + border-right-width: 2px !important; + border-bottom-width: 2px !important; +} + +.menuRicerca { + width: 30%; + min-width: 370px !important; +} + +#displaycantoWrapper { + display: d-flex; + overflow-y: scroll; + box-sizing: border-box; width: calc(100% + 17px); +} + +.visInfo2 { + padding-top: 4px; +} + +#displayinfo, #displaynote { + overflow: auto !important; +} + +.doubleborder { + z-index: 90; + border-bottom-width: 8px !important; + border-bottom-style: double !important; +} + +.badge-outline-info { + padding: .1rem .15rem; + margin-left: .15rem; + margin-right: .2rem; + font-weight: 300; + vertical-align: super; + border: 1px solid; +} + +.borderRadiusZero { + border-radius: 0 !important; +} + +.leftBorderRadiusZero { + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} + +.lista-risultati:hover, .citazioneFrase:hover { + cursor: pointer; +} + +.navig-canto .sel-canto { + line-height: 1.2em; +} + +.navig-canto:hover { + font-weight: 800; + cursor: pointer; +} + +.ui-icon.inline { + display:inline-block; +}​ + +.ui-state-disabled-opacity-1 { + opacity: 1 !important; +} + +.ui-state-disabled-opacity-06 { + opacity: 0.6 !important; +} + +.ui-selectable { + list-style-type: none; + margin: 0; + padding: 0; +} + +#queryText { + width: 150px; + border-width: 2px !important; +} + + +/* +Minimap +*/ + +.minimap__container { + /*position: fixed;*/ + /*top: 160px;*/ + /*left: 600px;*/ + min-width: 20px; + z-index: 100; +} + +.minimap__size { + position: relative; + z-index: 5; +} + +.minimap__viewer { + width: 70px; + position:absolute; + top: 2px; + left: 1px; + transform-origin: 0 0; + z-index: 100; + border: 2px solid; +} + +.minimap__content { + position:absolute; + top: 63; + left: 0; + width:100%; + height: 100%; + z-index: 10; + transform-origin: 0 0; + margin: 4px 0px 0px 4px; + border-style: none; +} + +.filler { + width: 100%; + position: relative; +} + +.filler img { + position: absolute; top: 0; left: 0; + width: 100%; + height: 100%; +} + + +/* +Ex browsingldc.css +*/ + +.blog-main{ + font-size: 18px; + font-family: Book Antiqua,Palatino,Palatino Linotype,Palatino LT STD,Georgia,serif; +} + +.synt__info{ + font-size: 12px; + font-weight: normal; + font-style: italic; + font-family: Palatino; + letter-spacing:0.5px; +} +.synt__categ{ + font-size: 10px; + font-weight: normal; + font-family: Palatino; + letter-spacing:0.5px; + } +.numverso { + font-size: 12px; + font-family: 'Humanist-777', 'Roboto'; +} + +.espandiFrase:not(.disabled), .riduciFrase:not(.disabled) { + font-size: 10px; + font-family: 'Humanist-777', 'Roboto'; + border: 2px solid; + cursor: pointer; +} + +.espandiFrase.disabled, .riduciFrase.disabled { + font-size: 10px; + font-family: 'Humanist-777', 'Roboto'; + cursor: default; +} + +.citazioneFrase { + font-style: italic; + font-family: Book Antiqua,Palatino,Palatino Linotype,Palatino LT STD,Georgia,serif; + line-height: 0.5em; + font-size: 16px; +} + +.btn-outline-secondary.focus, .btn-outline-secondary:focus { + outline: none !important; + box-shadow: none; +} + + +/* on mouseOver classes */ + +.Nik_dropdown { + position: relative; + display: inline-block; +} + + +.Nik_dropdown-content { + max-width: 170px; + min-width: 70px; + padding: 0px 0px; + font-size: 12px; + z-index: 100; +} + +.Nik_dropdown:hover .Nik_dropdown-content { + display: block; +} + +cite.elencoris { + line-height: 2.5; +} + +.canto { + -webkit-user-select: none; + user-select: none; +} + +.itemelenco { + -webkit-user-select: none; + user-select: none; +} + +.ttContent { + padding: 5px 5px 0px 5px; +} + +li::marker { + font-size: 12px; + font-family: 'Humanist-777', 'Roboto'; + white-space: nowrap; + } + +/* ------- customize colors -------- */ + +/* LINK utili: + https://lingtalfi.com/bootstrap4-color-generator + https://colordesigner.io/gradient-generator/?mode=lch#fafa6e-2A4858 + https://colordesigner.io/#004056-2C858D-74CEB7-C9FFD5-FFFFCB + https://colordesigner.io/#fab37f-f1924e-4abd8c-00968e-106e7c + https://bootstrap.build/app +*/ +/* +- lida1: + + $primary rgb(95, 142, 194) #5f8ec2 + $secondary $gray-600 #6c757d + $success rgb(117, 159, 154) #759F9A + $info #935fc2 + $warning rgb(229, 194, 105) #E5C269 #eace87 + $danger #9f757a + + $text-muted $gray-700 #495057 + +- lida2: + $primary #734450 + $secondary $gray-600 #b8a387 - + $success rgb(65, 93, 67) #054a29 #415d43 + $info #55327d + $warning #325a7d + $danger #7d325a + + $text-muted $gray-700 +------------------------------------*/ + + +/* ------- #cbcbc0 -------- */ +.navbar { + /* background-image: linear-gradient(to right, #e7d4bf , #d9c8ca); */ + border-bottom-width: 2px !important; + border-bottom-color: #cbcbc0 !important; +} + +.doubleborder { + border-bottom-color: #cbcbc0 !important; +} + + +/* ------- $primary #734450 -------- */ + +.badge-outline-info { + color: #734450; + border-color: #734450; +} +.navig-canto:hover, .citazioneFrase:hover { + color: #734450 !important; +} + +.minimap__viewer { +/* border-color: #734450; */ + border-color: rgba(222, 226, 230, 1); + background-color: rgba(222, 226, 230, 0.5); +} + +/* ------- $success rgb(65, 93, 67) / #415d43 , #DEE2E6 -------- */ + +.custom-control-input:active~.custom-control-label::before { + background-color: rgba(65, 93, 67, 0.5) !important; + border-color: rgba(65, 93, 67, 0.5) !important; +} +.custom-control-input:focus:not(:checked)~.custom-control-label::before { + border-color: rgb(65, 93, 67) !important; +} +.custom-control-input:checked~.custom-control-label::before { + border-color: rgb(65, 93, 67) !important; + background-color: rgb(65, 93, 67) !important; +} +.ui-selectable .ui-selecting { + background: #054a29; +} +.ui-selectable .ui-selected { + background: #DEE2E6; + color: #054a29 !important; +} + + +/* ------- #eace87 -------- */ + +.mark { + background-color: #a996a0 !important; +} + + +/* ------- $danger #7d325a -------- */ + +#displaycanto span:hover { + color: #7d325a; +} +.ttContent { + color: #7d325a; +} + + +/* ------- #c6b59f -------- */ + +.citazioneFrase { + color: #c6b59f; +} + + +/* ------- #1E90FF -------- */ + +.Nik_dropdown-content { + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + color: #1E90FF; +} + + +/* ricerca avanzata */ + +.bg-lida10 { + background-color: #8dac91 !important; +} + +/* clausola */ +.bg-lida11 { + background-color: #c6d5c8 !important; +} + +/* AND */ +.bg-lida12 { + background-color: #c8c6d5 !important; +} + +/* OR */ +.bg-lida13 { + background-color: #d5c8c6 !important; +} + + +/* visualizza e minimap */ +.bg-lida-vis, #displayminimap, .claCollBtn { + background-color: #f8f9fa! important; +} + +/* body */ +.body-vis { + background-color: #f1ede7! important; + padding-top: 0px; +} + +.claLI { + border-color: #cbcbc0 !important; +} + +.custom-select-sm.bg-light:hover, .custom-select-sm.bg-lida12:hover, .custom-select-sm.bg-lida13:hover { + background-color: #dae0e5!important; + cursor: pointer; +} + +.ui-icon-arrowthick-2-n-s:hover { + cursor: move; +} + + + diff --git a/index_4.3.html b/index_4.3.html new file mode 100644 index 0000000..cce1d45 --- /dev/null +++ b/index_4.3.html @@ -0,0 +1,1928 @@ + + + + + +LiDa Dashboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ +
+ + + +
+ +
 
+
+
+
+
+
+
+
+
+
+
+ + +
+ + +
+
+
Visualizza annotazioni
+
+
+
+
Visualizza info periodo
+
+
+
+ +
+ + +
+
+
+ +
+
+
+
+ + + +
+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/js/minimap_4.3.js b/js/minimap_4.3.js new file mode 100644 index 0000000..50808a0 --- /dev/null +++ b/js/minimap_4.3.js @@ -0,0 +1,165 @@ +/** + * + */ + +const displayCantoId = '#displaycanto'; +const displayCantoWrapperId = '#displaycantoWrapper'; +const minimapviewerId = '#minimapviewer'; +const displayminimapId = '#displayminimap'; +const visCantoClass = '.visCanto'; +const fillerClass = '.filler'; +const bodyScript = ' ' + +let minimap = document.createElement('div'); +let viewer = document.createElement('div'); +let minimapContent = document.createElement('iframe'); +let realScale; +let currentMinimap = ''; +let initOffset = ''; +let correctionFactor = 1; +let scrollCorrectionFactor = 0.997; + + +function drawMinimap(name, onlyContent = false, cantoOffset = 0){ + var cantoHeightToSet = $("body")[0].clientHeight*cssCantoHeight; + var maxCantoHeightToSet = $("body")[0].clientHeight*cssTableMainHeight-110; // 63 padding top + 47 margine bottom + $(visCantoClass).css("max-height", maxCantoHeightToSet); + $(displayCantoId).css("max-height", maxCantoHeightToSet); + + currentMinimap = name; + + if (currentMinimap == '#vistaFrasi') { + //correctionFactor = 1.003; + correctionFactor = 1.009; + scrollCorrectionFactor = 0.997; + //scrollCorrectionFactor = 1; + } else { + correctionFactor = 1; + scrollCorrectionFactor = 0.997; + }; + + initOffset = parseInt($("body").css("padding-top").replace("px", ""))+63; + + if ($(displayminimapId).lenght > 0) { + $(displayminimapId)[0].remove(); + } + + showMinimap(onlyContent); + + if (onlyContent == false) { + $(displayCantoWrapperId).scrollTop(cantoOffset); + $(minimapviewerId).offset({ top: initOffset}); + var minimapTopPos = $(minimapviewerId).offset().top; + + $(minimapviewerId).draggable({ + axis: "y", + containment: $(displayminimapId), + scroll: false, + start: function(event, ui) { minimapScrolling = true; }, + stop: function(event, ui) { + minimapScrolling = false; + latestOffset = $(displayCantoWrapperId).scrollTop() + }, + drag: function(event, ui) { + minimapScrolling = true; + $(displayCantoWrapperId).scrollTop((ui.offset.top - minimapTopPos) / (realScale*correctionFactor)); + } + }); + trackScrollCanto(); + }; +} + + +function showMinimap(onlyContent) { + viewer.className = 'minimap__viewer'; + viewer.id = 'minimapviewer'; + minimapContent.className = 'minimap__content'; + minimap.append(viewer, minimapContent); + $(displayminimapId).append(minimap); + + let html = $(currentMinimap)[0].outerHTML; + if (html == null | html == '') + return; + + let iFrameDoc = minimapContent.contentWindow.document; + + var cssLinkb = document.createElement("link"); + cssLinkb.href = $("#" + currStyle + "-Boot")[0].href; + cssLinkb.rel = "stylesheet"; + cssLinkb.type = "text/css"; + + var cssLinkscroll = document.createElement("link"); + cssLinkscroll.href = $("#" + currStyle + "-Custom")[0].href; + cssLinkscroll.rel = "stylesheet"; + cssLinkscroll.type = "text/css"; + + iFrameDoc.open(); + iFrameDoc.write('
'); // da pulire... + iFrameDoc.write(html); + iFrameDoc.write('
'); + iFrameDoc.write(bodyScript); + iFrameDoc.close(); + + iFrameDoc.head.appendChild(cssLinkb); + iFrameDoc.head.appendChild(cssLinkscroll); + + let bgCanto = $(visCantoClass).css('background-color'); + $('iframe').contents().find('body').css('background-color', bgCanto + ' !important;'); + + var infoHeightToSet = $("body")[0].clientHeight*cssTableMainHeight - $(visCantoClass)[0].clientHeight-2-63-2-46 + $("#displayinfo").css("maxHeight", infoHeightToSet+"px"); + $("#displayinfo").css("height", infoHeightToSet+"px"); + $("#displaynote").css("maxHeight", infoHeightToSet+"px"); + $("#displaynote").css("height", infoHeightToSet+"px"); + $(".visInfo").css("height", (infoHeightToSet+4)+"px"); + + getDimensionsDiv(false, onlyContent); + } + + + function getDimensionsDiv(onlyViewer = false, onlyContent = false) { + var srcCantoWidth = $(currentMinimap)[0].clientWidth; + var srcCantoHeight = $(currentMinimap)[0].clientHeight; + var maxHeight = ($("#colMinimap")[0].clientHeight)-68; //h attuale dello spazio minimap; -63 top padding, -1 bordo col, -4 bordi iframe + var maxWidth = $(displayminimapId)[0].clientWidth; //w attuale della minimap (css) + var miniCantoWidth = srcCantoWidth+64; //w prevista del canto nella minimap 64: padding pr + blank space + var miniCantoHeight = srcCantoHeight*correctionFactor; //h prevista del canto nella minimap + var resizableWidth = $(visCantoClass)[0].clientWidth; + var resizableHeight = $(visCantoClass)[0].clientHeight; + var resizableRatio = resizableHeight/resizableWidth; + var heightRatio = resizableHeight/srcCantoHeight; + + if (onlyViewer == false) { + realScale= Math.min((maxWidth/miniCantoWidth), (maxHeight/miniCantoHeight), 1); + minimapContent.style.transform = `scale(${realScale})`; + minimapContent.style.height = miniCantoHeight + "px"; + minimapContent.style.width = maxWidth/realScale + "px"; + } + + let viewerHeight = (miniCantoHeight*realScale*heightRatio/correctionFactor)-2; // -2 = bordi + let viewerWidth = Math.min(viewerHeight/resizableRatio, maxWidth-3)+2; // -3 bordi + + var displayminimapHeight = (miniCantoHeight*realScale)+6; + + $(displayminimapId).height(displayminimapHeight); + $(fillerClass).height(Math.max(maxHeight-displayminimapHeight)+2, 0); + + if (onlyContent == false) { + viewer.style.height = viewerHeight + "px"; + viewer.style.width = viewerWidth + "px"; + trackScrollCanto(); + }; + }; + + + function trackScrollCanto() { + var minimapHeight = ($(currentMinimap)[0].clientHeight+32)*realScale; + var posDbefore = $(displayCantoWrapperId).scrollTop(); + var srcCantoHeight = $(currentMinimap)[0].clientHeight; + var posAfter = (minimapHeight*posDbefore*correctionFactor)/(srcCantoHeight*scrollCorrectionFactor); + $(minimapviewerId).offset({ top: initOffset + posAfter}); + latestOffset = posDbefore; + }; + + + diff --git a/js/script_4.3.js b/js/script_4.3.js new file mode 100644 index 0000000..5cb0453 --- /dev/null +++ b/js/script_4.3.js @@ -0,0 +1,1428 @@ +/** + * + */ + +var getJsonQuery; +var currPage = 0; +var latestPhraseId = ""; +var numeroPagine = 0; +var latestOffset = 0; + +const cssCantoHeight = 0.65; +const cssTableMainHeight = 0.95; //.tableMain {height: 95%;} +const bgImgUrl1 = "./images/fefeff.png"; +const bgImgUrl2 = "./images/f8f9fa.png"; + + +$(document).ready(function() { + + window.addEventListener("resize", function() { + clearTimeout(this.id); + this.id = setTimeout(doneResizing, 300); + }, true); + + function doneResizing(){ + $("#displayminimap").empty();; + $('#displayminimap').css('height', 'auto'); + drawMinimap(currentMinimap, false, latestOffset); + }; + + $(displayCantoWrapperId).scroll(function() { + if (minimapScrolling) { + minimapScrolling = false + } + else { + trackScrollCanto() + } + }); + + // Evento: click sul cambio stile + $('.stileLink').on('click', function() { + var newStyle = $(this)[0].id; + setStyle(newStyle); + }); + + + $("#incrFontSize").click(function() { + newFontSize = incSize($('#displaycanto').css("font-size"), 10, 18, 58) + newH4FontSize = incSize($('#displaycanto h4').css("font-size"), 12, 24, 72) + //newLiFontSize = incSize($('#displaycanto li::marker').css("font-size"), 6, 12, 32) + $('#displaycanto').css("font-size", newFontSize); + $('#displaycanto h4').css("font-size", newH4FontSize); + //$('#displaycanto li::marker').css("font-size", newLiFontSize); + drawMinimap(currentMinimap, false); + $('iframe').contents().find('.blog-main').css("font-size", newFontSize); + $('iframe').contents().find('.blog-main h4').css("font-size", newH4FontSize); + }); + + + // Funzioni di gestione del comportamento dei bottoni collapse + $('#collapseLogic').on('hidden.bs.collapse', function (e) { + if (e.target.id == "collapseLogic") { + $("#showLogic").html('Mostra'); + $("#collapseAdvanced").collapse('hide'); + }; + }) + + $('#collapseLogic').on('shown.bs.collapse', function () { + $("#showLogic").html('Nascondi'); + $("#collapseAdvanced").collapse('show'); + }) + + $('#collapseOptions').on('hidden.bs.collapse', function (e) { + if (e.target.id == "collapseOptions") { + $("#showOptions").html('Opzioni'); + }; + }) + + $('#collapseOptions').on('shown.bs.collapse', function () { + $("#showOptions").html('Opzioni'); + }) + + $('.collapse').on('hide.bs.collapse', function (e) { + if (e.target.id.substr(0,11) == "collapseCla") { + var claIdNum = e.target.id.substr(11); + $("#claCollapse" + claIdNum)[0].removeAttribute("style"); + $("#claCollapse" + claIdNum).removeClass( "border-bottom-0" ); + $("#claCollapse" + claIdNum).addClass( "border border-success" ); + $("#claCollapse" + claIdNum).blur(); + e.stopPropagation(); + }; + }) + + $('.collapse').on('show.bs.collapse', function (e) { + if (e.target.id.substr(0,11) == "collapseCla") { + var claIdNum = e.target.id.substr(11); + $("#claCollapse" + claIdNum)[0].setAttribute("style", "border-bottom-left-radius: 0;border-bottom-right-radius: 0;"); + $("#claCollapse" + claIdNum).removeClass( "border border-success" ); + $("#claCollapse" + claIdNum).addClass( "border-bottom-0" ); + $("#claCollapse" + claIdNum).blur(); + e.stopPropagation(); + }; + }) + + // Evento: click sullo switch di ricerca avanzata + $('#searchToggle').on('change', function() { + if ($(this).prop('checked')) { + queryJson.QueryAvanzata = "1"; + $("#collapseOptions").collapse('hide'); + $("#simpleSearchDiv").fadeOut(300, function(){ + $("#simpleSearchDiv").removeClass( "d-flex" ) + $("#advancedSearchDiv").addClass( "d-flex" ) + $("#advancedSearchDiv").fadeIn(400, function(){ + $("#collapseAdvanced").collapse('show'); + $("#collapseLogic").collapse('show'); + }); + }); + } else { + queryJson.QueryAvanzata = "0"; + $("#collapseAdvanced").collapse('hide'); + $("#advancedSearchDiv").fadeOut(300, function(){ + $("#advancedSearchDiv").removeClass( "d-flex" ) + $("#simpleSearchDiv").addClass( "d-flex" ) + $("#simpleSearchDiv").fadeIn(400); + + }); + }; + }); + + // Inizializza sortable + $( "#sortable0" ).sortable({ + items: "> li", + handle: ".handle" + }); + + // Inizializza selectable-xX0 e definisce le funzioni + $("#selectable-xX0").selectable({ + filter: ".sel-canto", + selected: function(event, ui) { + window.context0[ui.selected.id.substring(0,1)][ui.selected.id.substring(2)] = 1; + var tmpFocusBtn = "#plusBtn" + ui.selected.id.substring(0,1) + "-xX" + tabID; + $(tmpFocusBtn).focus(); + } + }); + + // Inizializza resizable + $(".menuNavigazione").resizable({ + handles: "e", + minWidth: 100, + maxWidth: 350, + resize: function(event, ui) { + getDimensionsDiv(true); + }, + stop: function(event, ui) { + setWidthInPercent(ui.element); + } + }); + + $(".menuRicerca").resizable({ + handles: "w", + minWidth: 350, + resize: function(event, ui) { + ui.position.left = 0; + getDimensionsDiv(true); + }, + stop: function(event, ui) { + setWidthInPercent(ui.element); + } + }); + + $(".visCanto").resizable({ + handles: "s", + minHeight: 80, + //maxHeight: 880, + alsoResize: "#displaycanto", + resize: function(event, ui) { + $("#displaycanto").width(" min-content"); + + var infoHeightToSet = $("body")[0].clientHeight*cssTableMainHeight - $(visCantoClass)[0].clientHeight-2-63-2-46 + $("#displayinfo").css("maxHeight", infoHeightToSet+"px"); + $("#displayinfo").css("height", infoHeightToSet+"px"); + $("#displaynote").css("maxHeight", infoHeightToSet+"px"); + $("#displaynote").css("height", infoHeightToSet+"px"); + $(".visInfo").css("height", (infoHeightToSet+4)+"px"); + + getDimensionsDiv(true); + }, + stop: function(event, ui) { + $("#displaycanto").width(" min-content"); + } + }); + + // Funzioni di gestione dei bottoni di paginazione + $('#collapseZero').on('shown.bs.collapse', function () { + managePage(); + }); + + $('#paginaLista').on('change', function() { + currPage = $("#paginaLista")[0].options[$("#paginaLista")[0].selectedIndex].value; + managePage(); + }); + + $('#pagPrecedente').on('click', function() { + if (!$(this).hasClass("disabled")){ + currPage--; + $('#paginaLista option[value=' + currPage + ']').prop('selected', true); + managePage(); + }; + }); + + $('#pagSuccessiva').on('click', function() { + if (!$(this).hasClass("disabled")){ + currPage++; + $('#paginaLista option[value=' + currPage + ']').prop('selected', true); + managePage(); + }; + }); + + // Evento: modifica dell'unita di ricerca' + $("#unitaRicerca").on('change', function() { + queryJson.unitaRicerca = $("#unitaRicerca")[0].options[$("#unitaRicerca")[0].selectedIndex].value; + }); + + // Evento: modifica di un campo clausole + $("form #lemma_forma,#queryText,#opzioni_testo").on('change', function() { + if ($(this)[0].id == "queryText"){ + var orgSelection = $('#lemma_forma option:selected')[0].value + var qText = $(this)[0].value; + if (qText !== null && qText !== '') {qText = ' "' + qText + '"';} + setLemmaForma(qText,orgSelection); + }; + refreshClaList(); + }); + + $('#cla-TabContent').on('change', '.monMe', function() { + refreshClaList(); + }); + + // Evento: click sull'icona rimuovi clausola + $('#cla-TabContent').on('click', '.removeCla', function() { + var claListItemId = $(this).closest('li').attr('id'); + var claIdNum = claListItemId.substr(6); + claListLen--; + $("#" + claListItemId)[0].remove(); + delete queryJson["Clausola" + claIdNum]; + delete window["context" + claIdNum]; + refreshClaList(); + refreshSortables(); + }); + + // Evento: click sull'icona rimuovi condizione + $('#sortable0').on('click', '.removeCond', function() { + $(this).closest('ul').parent().remove(); + condListLen--; + refreshClaList(); + refreshSortables(); + refreshConnectWith(); + if (claListLen == 0 && condListLen == 0) { + $('#sortable0').html(emptyClaList); + } + }); + + // Evento: click sulla lista di clausole nel dropbox "Aggiungi clausola di tipo:" o "aggiungi condizione logica:" + $('.addCCbtn').on('click', function() { + var addCC = $(this).attr('id'); + switch (addCC) { + case "btnAddCla1": + tabID++; + addGramCla("#sortable0",1,tabID,1); + break; + case "btnAddCla2": + tabID++; + addSyntCla("#sortable0",1,tabID,1); + break; + case "btnAddCla3": + tabID++; + addMetaCla("#sortable0",0,tabID,0); + break; + case "btnAddCond": + addLogicCond("#sortable0","OR"); + break; + default: + }; + refreshClaList(); + refreshSortables(); + }); + + // Evento: clausola spostata nella lista + $('#sortable0').sortable({ + opacity: 0.6, + cursor: 'move', + update: function() { + refreshClaList(); + refreshSortables(); + } + }); + + // Evento: cambiato il tipo della condizione logica + $('#cla-TabContent').on('change', '.condType', function() { + var condtype = $(this).val(); + var condId = $(this).attr('id').substring(12); + if (condtype == "AND") { + $("#cond" + condId).removeClass( "condLI-OR bg-lida13" ) + $("#cond" + condId).addClass( "condLI-AND bg-lida12" ) + $(this).removeClass( "bg-lida13" ) + $(this).addClass( "bg-lida12" ) + } else { + $("#cond" + condId).removeClass( "condLI-AND bg-lida12" ) + $("#cond" + condId).addClass( "condLI-OR bg-lida13" ) + $(this).removeClass( "bg-lida12" ) + $(this).addClass( "bg-lida13" ) + }; + refreshClaList(); + }); + + // Evento: click sul bottone di edit delle clausole + $('#cla-TabContent').on('click', '.claAct', function() { + var claListItemId = $(this).closest('li').attr('id'); + var tabPanelId = "#" + claListItemId.substring(3); + if ($(this).prop('checked')) { + $(tabPanelId).attr("data-claActive", 1); + $(this).closest('li').find('.clatext').fadeTo( "slow", 1 ); + } else { + $(tabPanelId).attr("data-claActive", 0); + $(this).closest('li').find('.clatext').fadeTo( "slow", 0.6 ); + } + refreshSortables(); + }); + + // Evento: click sull'icona di refresh dei radio button + $('#cla-TabContent').on('click', '.radioReset', function() { + fSet = $(this).siblings('fieldset'); + if (fSet.find(":checked").length) { + radioChecked = fSet.find(":checked")[0]; + radioChecked.checked = false; + }; + refreshClaList(); + }); + + // Evento: click sull'icona di trash del contesto + $('#rigaRicerca').on('click', '.trashClaCont', function() { + var claIdNum = $(this)[0].id.substring(15); + resetContext(claIdNum); + refreshClaList(); + }); + + // Evento: click sull'icona di add del contesto + $('#rigaRicerca').on('click', '.addClaCont', function() { + var claIdNum = $(this).closest('.ui-selectable').attr('id').substr(13); + var selectedCanti = $(this).closest('.card').find('.ui-selected'); + if (selectedCanti.length == 0) { + $(this).closest('.card').find('.ui-selectee').each(function() { + $(this).addClass( "ui-selected" ); + window["context" + claIdNum][$(this).attr("id").substring(0,1)][$(this).attr("id").substring(2)] = 1; + }); + }; + parseContext(claIdNum); + hideContextCanti(claIdNum); + if ($(this).closest('.card').find('span:visible').length == 1) { + $(this).closest('.card').find('div .sel-canti-intro').text("Selezionati tutti i canti."); + }; + refreshClaList(); + }); + + // Evento: click sull'icona di save local + $('#advancedSearchDiv').on('click', 'ion-icon[name="save-outline"]', function() { + var fileA = document.createElement("a"); + fileA.href = window.URL.createObjectURL(new Blob([JSON.stringify(queryJson)], {type: "text/plain;charset=utf-8"})); + fileA.download = "LiDaQuery.txt"; + fileA.click(); + fileA.remove(); + }); + + // Evento: click sull'icona di load local + $('#advancedSearchDiv').on('click', 'ion-icon[name="folder-open-outline"]', function() { + $('#apriFile').click(); + }); + + $("#apriFile").on('change', function() { + var file = $(this).prop('files')[0]; + var reader = new FileReader(); + reader.onload = function(data){ + queryJson = JSON.parse(data.target.result) + makeUpGui(queryJson); + }; + if (file) {reader.readAsText(file);} + }); + + // Evento: SCELTA CATEGORIA GRAMMATICALE + $('#cla-TabContent').on('change', 'select.catgram', function(e) { + e.preventDefault(); + var tabPaneId = ($(this).closest('.tab-pane').attr("id")); + var selectedValue = $(this).val(); + addCatgramSubcla(tabPaneId,selectedValue); + refreshClaList(); + }); + + // Evento: Submit form + $("form").submit(function(e){ + e.preventDefault(); + }); + + // Evento: click sul bottone di reset semplice + $('#cleanresult').on('click', function() { + resetResult(); + resetSimpleGui(); + refreshClaList(); + }); + + // Evento: click sul bottone di reset azanzata + $('#cleanresult2').on('click', function() { + resetResult(); + resetAdvGui(); + refreshClaList(); + }); + + // Variabili JSON per i filtri + var verboJson = { + "filtriverbo": { + "Diatesi": ["Attivo", "Passivo"], + "Transitivita": ["Transitivo", "Intransitivo"], + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Pers": ["Impersonale"], + "Rifl": ["Riflessivo"], + "Coniugazione": ["Qualsiasi coniugazione", "Prima coniugazione", "Seconda coniugazione", "Terza coniugazione", "Essere coniugazione", "Avere coniugazione"], + "Tempi": ["Qualsiasi tempo verbale", "Indicativo presente", "Indicativo passato prossimo", "Indicativo imperfetto", "Indicativo passato remoto", + "Indicativo trapassato prossimo", "Indicativo trapassato remoto", "Indicativo futuro semplice", "Indicativo futuro anteriore", "Congiuntivo presente", + "Congiuntivo imperfetto", "Congiuntivo passato", "Congiuntivo trapassato", "Condizionale presente", "Condizionale passato", "Imperativo presente", + "Infinito presente", "Infinito passato", "Participio presente", "Participio passato", "Gerundio presente", "Gerundio passato"], + "Persona" : ["Qualsiasi persona", "1ª persona singolare", "2ª persona singolare", "3ª persona singolare", "1ª persona plurale", "2ª persona plurale", "3ª persona plurale"], + "Funzione": ["Tutte le funzioni", "Aggettivo", "Sostantivo maschile", "Sostantivo femminile"], + "Declinazione": ["Tutte le declinazioni", "Prima declinazione", "Seconda declinazione", "Terza declinazione"], + } + } + + var sostantivoJson = { + "filtrisostantivo": { + "Numero": ["Singolare", "Plurale"], + "Genere_lemma": ["Lemma femminile", "Lemma maschile"], + "Genere_forma": ["Forma femminile", "Forma maschile"], + "riflpers": ["In locuzione"], + "Declinazione_sostantivo": ["Tutte le declinazioni", "Prima declinazione", "Seconda declinazione", "Terza declinazione"], + } + } + + var aggettivoJson = { + "filtriaggettivo": { + "Classe": ["1ª", "2ª"], + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Con_oggetto_indiretto": ["Con oggetto indiretto"], + "Tipo_aggettivo": ["Qualsiasi tipo aggettivo", "Qualificativo", "Indefinito", "Interrogativo", "Esclamativo", "Numerale", "Dimostrativo", "Relativo", "Possessivo", "In locuzione"], + "Grado": ["Qualsiasi grado", "Comparativo di maggioranza", "Comparativo di minoranza", "Comparativo di uguaglianza", "Superlativo relativo", "Superlativo assoluto"], + "Tipo_di_Complemento": ["Qualsiasi tipo di Complemento", "Introdotto da A", "Introdotto da CON", "Introdotto da CONTRO", "Introdotto da DA", "Introdotto da DI", "Introdotto da IN", + "Introdotto da PER", "Introdotto da SU", "Introdotto da TRA", "Introdotto da VERSO", "Introdotto da SOPRA", + "Introdotto da SOTTO", "Introdotto da DINANZI", "Introdotto da prep.", "Oggetto ind.", "Ogg. indi. + compl. con DI", "Ogg. ind. pronom."], + "Tipo_di_frase": ["Qualsiasi tipo di frase", "Con infinito retto da A", "Con infinito retto da DA", "Con infinito retto da DI", "Con infinito retto da PER", + "Con infinito retto da SE", "Con subordinata all'indic.", "Con subordinata al cong.", "In locuzione imp.+infinito", + "In locuzione imp.+che+indic.", "In locuzione imp.+che+cong.", "In locuzione imp.+se+indic.", "In locuzione imp.+se+cong.", + "In locuzione imp.+come+indic.", "In locuzione imp.+quando+indic.", "In locuzione imp.+perché+cong.", "In locuzione imp.+a+infinito"] + } + } + + var pronomeJson = { + "filtripronome": { + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Classe_Persona": ["Qualsiasi Classe Persona", "1ª", "2ª", "3ª"], + "Tipo": ["Qualsiasi tipo", "Personale", "Riflessivo", "Interrogativo", "Esclamativo", "Dimostrativo", "Relativo", "Possessivo"], + "Forma_Personali_Riflessivi": ["Qualsiasi forma (Personali-Riflessivi)", "Libero", "Libero in Composizione", "Proclitico", "Enclitico"], + "Funzione_Personali": ["Qualsiasi funzione (Personali)", "Libero - soggetto", "Libero - soggetto impersonale", "Libero - complemento", "Libero - rafforzativo", + "Clitico - accusativo", "Clitico - dativo", "Clitico - partitivo"], + "Tipo_Riflessivi": ["Qualsiasi tipo (Riflessivi)", "Proprio", "Lessicalizzato", "Impersonale", "Passivo", "Reciproco"] + } + } + + var articoloJson = { + "filtriarticolo": { + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Tipo": ["Determinativo", "Indeterminativo"] + } + } + + var avverbioJson = { + "filtriavverbio": { + "Tipo": ["Qualsiasi tipo", "Al comparativo di maggioranza", "Al comparativo di minoranza", + "Al superlativo assoluto", "Al superlativo relativo", + "In Locuzione", "In Locuzione separato", "Proclitico", "Enclitico"] + } + } + + var preposizioneJson = { + "filtripreposizione": { + "Tipo_I": ["Propria", "Impropria"], + "Tipo_preposizione": ["Qualsiasi tipo preposizione", "Semplice", "Articolata", "In locuzione", "In locuzione separata"], + "Sintassi": ["Qualsiasi sintassi", "Soggettiva", "Oggettiva", "Dichiarativa", "Completiva obliqua", "Finale", + "Causale", "Concessiva", "Consecutiva", "Temporale", "Modale", "Eccettuativa", "Esclusiva", + "Limitativa", "Comparativa", "Avversativa"], + "Complemento_(I)": ["Qualsiasi complemento (I)", "Di stato in luogo", "Di moto a luogo", "Di moto da luogo", "Di moto per luogo", + "Di luogo", "Predicativo del soggetto", "Predicativo dell'oggetto", "Di distanza", + "Di tempo determinato", "Di tempo continuato", "Di tempo", "Di termine", "Di vantaggio", + "Di svantaggio", "Di specificazione", "Di modo", "Di mezzo", "Di compagnia", + "Di unione", "Di allontanamento-separazione", "Di materia"], + "Complemento_(II)": ["Qualsiasi complemento (II)", "Di limitazione", "Di qualità", "Di causa", "Di agente", "Di causa efficiente", "Di fine o scopo", + "Di paragone", "Di argomento", "Distributivo", "Di sostituzione", "Di estensione", "Di rapporto", + "Di esclusione", "Di peso", "Di quantità", "Di colpa", "Di denominazione", "partitivo", + "Di abbondanza-privazione", "Di origine-provenienza", "Concessivo", "Di effetto", "Di pena", + "Simmetrico", "Indiretto esperiente", "Indiretto dativo", "Indiretto oggetto", "Indiretto possessore", + "Indiretto benefattivo"] + } + } + + var congiunzioneJson = { + "filtricongiunzione": { + "Coo_sub": ["Coordinativa", "Subordinativa"], + "Tipo": ["Qualsiasi tipo", "Semplice", "Composta", "Locuzione", "Locuzione separata"], + "Coord_tipo": ["Qualsiasi coord. tipo", "Copulativa", "Disgiuntiva", "Avversativa", "Esplicativa", "Conclusiva", "Correlativa"], + "Subord_tipo": ["Qualsiasi subord. tipo", "Soggettiva", "Oggettiva", "Dichiarativa", "Completiva obliqua", "Interrogativa", + "Finali", "Causali", "Concessiva", "Consecutiva", "Temporale", "Modale", + "Eccettuativa", "Comparativa", "Condizionale", "Esclusiva", "Limitativa"] + } + } + + var onomasticacitazioneJson = { + "filtrionomastica": { + "Tipo": ["Qualsiasi tipo", "Nome proprio", "Nome proprio separato", "Titolo"] + }, + + "filtricitazione": { + "Tipo": ["Qualsiasi tipo", "Latina", "Provenzale", "Francese", "Spagnola", "Ebraica", "Greca"] + } + } + + var categorie = { + "verbovolgare": "filtriverbo", + "sostantivovolgare": "filtrisostantivo", + "pronomevolgare": "filtripronome", + "aggettivovolgare": "filtriaggettivo", + "articolovolgare": "filtriarticolo", + "avverbiovolgare": "filtriavverbio", + "preposizionevolgare": "filtripreposizione", + "congiunzionevolgare": "filtricongiunzione", + "onomasticavolgare": "filtrionomastica", + "citazionevolgare": "filtricitazione" + } + + var catGrammsenzaspec = ['all', 'interiezionevolgare'] + + var subordinazioneJson = { + "subordinazione": { + "livello": ["Qualsiasi livello di subordinazione", "principale", "coordinata a una principale", "subordinata di I grado", + "subordinata di II grado", "subordinata di III grado", "subordinata di IV grado", "subordinata di V grado", + "subordinata di VI grado", "subordinata di VII grado", "coordinata a una subordinata di I grado", + "coordinata a una subordinata di II grado", "coordinata a una subordinata di III grado", + "coordinata a una subordinata di IV grado", "coordinata a una subordinata di V grado", "pseudo-coordinata", + "parentetica", "coordinata a una parentetica"] + } + } + + var categorieJson = $.extend({}, verboJson, sostantivoJson, pronomeJson, aggettivoJson, articoloJson, avverbioJson, preposizioneJson, congiunzioneJson, onomasticacitazioneJson); + + + // Variabili testuali per compattezza + const iconReset = '
'; + const iconCloseCond = '
'; + const emptyClaList = '
  • Nessuna clausola aggiunta.
  • '; + const defaultCond = '
    Clausole e condizioni in AND di default
    '; + const canticheList = ["Inferno","Purgatorio","Paradiso"]; + const cla0JsonText = '{"queryText": "", "lemma_forma": "lemma", "opzioni_testo": "parola", "TipoClausola": "0", "Attiva": "0"}'; + const condLIplaceholderText1 = 'Trascina qui almeno 1 clausola o condizione'; + const condLIplaceholderText2 = 'Trascina qui almeno 2 clausole o condizioni'; + const condLIplaceholderText1d = 'Trascina qui almeno 1 clausola o condizione, oppure attiva le clausole inattive'; + const condLIplaceholderText2d = 'Trascina qui almeno 2 clausole o condizioni, oppure attiva le clausole inattive'; + const condLIplaceholderPart1 = '
  • '; + + // Variabili e costanti funzionali + var minimapScrolling = false; + var tabID = 0; + var claListLen = 0; + var condListLen = 0; + var logicExprString = ``; + var guiLogicString = ``; + const cc0 = new Array(34).fill(0); + const cc1 = new Array(33).fill(0); + const cc2 = new Array(33).fill(0); + const contextEmpty = [cc0,cc1,cc2]; + var queryJson = JSON.parse('{"EsprLogica":"", "LogicaGui":"", "QueryAvanzata": "0"}'); + queryJson.LiDaVersion = "1.0"; + queryJson.unitaRicerca = "verso"; + queryJson.Clausola0 = JSON.parse(cla0JsonText); + queryJson.Clausola0.contesto = JSON.stringify(contextEmpty); + window.context0 = JSON.parse(JSON.stringify(contextEmpty)); + const jsonReplacer = (key, value) => + typeof value === 'undefined' ? 0 : value; + const nRisultatiPerPag = 25; + + // Fine variabili + + + getJsonQuery = function(){ + return queryJson; + }; + + // Funzione di creazione del tab delle clausole grammaticali + function addGramCla(sortableId,active,tabID,toExpand){ + if (active > 0) { + var checkInsert = ' checked="checked"'; + } else { + var checkInsert = ''; + }; + var claText = "Categoria grammaticale:
    "; + addLIitem(sortableId,tabID,claText,checkInsert,toExpand); + var claClone = document.getElementById("tipogrammaticaleN").cloneNode(true); + claClone.setAttribute("id","cla" + tabID); + claClone.setAttribute("data-claActive", active); + claClone.setAttribute("aria-labelledby","cla" + tabID + "-tab"); + claClone.setAttribute("style", ""); + $('#claBody' + tabID).append(claClone); + // se non cambio l'id della select react non rileva l'evento onchange: + $('#cla' + tabID + " #grammtypesN").attr("id","grammtypes" + tabID); + $('#cla' + tabID + " #lemma_formaN").attr("id","lemma_forma" + tabID); + $('#cla' + tabID + " #queryTextN").attr("id","queryText" + tabID); + $('#cla' + tabID + " #opzioni_testoN").attr("id","opzioni_testo" + tabID); + $('#cla' + tabID + " #contextDivN").attr("id","contextDiv" + tabID); + addClaContext(tabID); + } + + // Funzione di creazione delle subclausole grammaticali basate sul valore scelto + function addCatgramSubcla(tabPaneId,selectedValue){ + var dettagliBox = $("#" + tabPaneId + " .dettaglifiltri"); + dettagliBox.html(""); + if (Object.keys(categorie).includes(selectedValue)) { + var filtro = categorie[selectedValue] + var keys = Object.keys(categorieJson[filtro]) + for (var key in keys) { + var vals = categorieJson[filtro][keys[key]] + switch (vals.length) { + case 2: + var element = $('
    '); + element.attr('class', ' d-flex flex-sm-nowrap pr-2 py-1 mb-1 form-group form-control justify-content-between bg-light'); + var rbfieldset = $('
    '); + var flexdiv1 = $('
    '); + var flexdiv2 = $('
    '); + var input1 = $(''); + var input2 = $(''); + var label1 = $('