mirror of https://github.com/interlegis/sapl.git
5 changed files with 169 additions and 169 deletions
@ -1,150 +1,158 @@ |
|||
let JsDiff = require('diff'); |
|||
|
|||
function isElementInViewport (el) { |
|||
|
|||
//special bonus for those using jQuery
|
|||
if (typeof jQuery === "function" && el instanceof jQuery) { |
|||
el = el[0]; |
|||
} |
|||
|
|||
var rect = el.getBoundingClientRect(); |
|||
|
|||
return ( |
|||
rect.top >= 0 && |
|||
rect.left >= 0 && |
|||
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */ |
|||
rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */ |
|||
); |
|||
let JsDiff = require("diff"); |
|||
|
|||
function isElementInViewport(el) { |
|||
if (typeof jQuery === "function" && el instanceof jQuery) { |
|||
el = el[0]; |
|||
} |
|||
|
|||
var rect = el.getBoundingClientRect(); |
|||
|
|||
return ( |
|||
rect.top >= 0 && |
|||
rect.left >= 0 && |
|||
rect.bottom <= |
|||
(window.innerHeight || document.documentElement.clientHeight) && |
|||
rect.right <= (window.innerWidth || document.documentElement.clientWidth) |
|||
); |
|||
} |
|||
|
|||
function textoMultiVigente(item, diff) { |
|||
var elv = null; |
|||
var ldpts = $(".dptt") |
|||
for (var i = 0; i < ldpts.length; i++) { |
|||
if ($(ldpts[i]).hasClass('displaynone')) |
|||
continue; |
|||
if (isElementInViewport( ldpts[i])) { |
|||
if (i+1 < ldpts.length) |
|||
elv = ldpts[i+1]; |
|||
else { |
|||
elv = ldpts[i]; |
|||
} |
|||
break; |
|||
} |
|||
var elv = null; |
|||
var ldpts = $(".dptt"); |
|||
for (var i = 0; i < ldpts.length; i++) { |
|||
if ($(ldpts[i]).hasClass("displaynone")) continue; |
|||
if (isElementInViewport(ldpts[i])) { |
|||
if (i + 1 < ldpts.length) elv = ldpts[i + 1]; |
|||
else { |
|||
elv = ldpts[i]; |
|||
} |
|||
break; |
|||
} |
|||
} |
|||
|
|||
$(".cp .tipo-vigencias a").removeClass("selected"); |
|||
$(item).addClass("selected"); |
|||
$(".dptt.desativado").removeClass("displaynone"); |
|||
$(".dtxt").removeClass("displaynone"); |
|||
$(".dtxt.diff").remove(); |
|||
$(".nota-alteracao").removeClass("displaynone"); |
|||
|
|||
if (diff) { |
|||
$(".dtxt[id^='da'").each(function() { |
|||
if ( |
|||
$(this) |
|||
.html() |
|||
.search(/<\/\w+>/g) > 0 |
|||
) |
|||
return; |
|||
|
|||
var pk = $(this).attr("pk"); |
|||
var pks = $(this).attr("pks"); |
|||
|
|||
var a = $("#d" + pks) |
|||
.contents() |
|||
.filter(function() { |
|||
return this.nodeType === Node.TEXT_NODE; |
|||
}); |
|||
var b = $("#da" + pk) |
|||
.contents() |
|||
.filter(function() { |
|||
return this.nodeType === Node.TEXT_NODE; |
|||
}); |
|||
|
|||
$(".cp .tipo-vigencias a").removeClass("selected") |
|||
$(item).addClass("selected") |
|||
$(".dptt.desativado").removeClass("displaynone"); |
|||
$(".dtxt").removeClass("displaynone"); |
|||
$(".dtxt.diff").remove(); |
|||
$(".nota-alteracao").removeClass("displaynone"); |
|||
|
|||
if (diff) { |
|||
$(".dtxt[id^='da'").each(function() { |
|||
|
|||
if ( $(this).html().search( /<\/\w+>/g ) > 0) |
|||
|
|||
return; |
|||
|
|||
var pk = $(this).attr('pk') |
|||
var pks = $(this).attr('pks') |
|||
|
|||
var a = $('#d'+pks).contents().filter(function () { |
|||
return this.nodeType === Node.TEXT_NODE; |
|||
}); |
|||
var b = $('#da'+pk).contents().filter(function () { |
|||
return this.nodeType === Node.TEXT_NODE; |
|||
}); |
|||
|
|||
|
|||
|
|||
|
|||
var diff = JsDiff.diffWordsWithSpace($(a).text(), $(b).text()); |
|||
|
|||
if (diff.length > 0) { |
|||
$('#d'+pks).closest('.desativado').addClass("displaynone"); |
|||
|
|||
var diff = JsDiff.diffWordsWithSpace($(a).text(), $(b).text()); |
|||
|
|||
var clone = $('#da'+pk).clone(); |
|||
$('#da'+pk).after( clone ); |
|||
$('#da'+pk).addClass('displaynone'); |
|||
$(clone).addClass('diff').html(''); |
|||
if (diff.length > 0) { |
|||
$("#d" + pks) |
|||
.closest(".desativado") |
|||
.addClass("displaynone"); |
|||
|
|||
var clone = $("#da" + pk).clone(); |
|||
$("#da" + pk).after(clone); |
|||
$("#da" + pk).addClass("displaynone"); |
|||
$(clone) |
|||
.addClass("diff") |
|||
.html(""); |
|||
|
|||
diff.forEach(function(part){ |
|||
var color = part.added ? '#018' : |
|||
part.removed ? '#faa' : ''; |
|||
diff.forEach(function(part) { |
|||
//var color = part.added ? "#018" : part.removed ? "#faa" : "";
|
|||
|
|||
var span = document.createElement('span'); |
|||
var span = document.createElement("span"); |
|||
|
|||
var value = part.value; |
|||
var value = part.value; |
|||
|
|||
if (part.removed) { |
|||
$(span).addClass('desativado') |
|||
value += ' '; |
|||
} |
|||
else if (part.added) { |
|||
$(span).addClass('added') |
|||
} |
|||
if (part.removed) { |
|||
$(span).addClass("desativado"); |
|||
value += " "; |
|||
} else if (part.added) { |
|||
$(span).addClass("added"); |
|||
} |
|||
|
|||
span.appendChild(document.createTextNode(value)); |
|||
$(clone).append(span); |
|||
}); |
|||
} |
|||
span.appendChild(document.createTextNode(value)); |
|||
$(clone).append(span); |
|||
}); |
|||
//textoVigente(item, true);
|
|||
} |
|||
|
|||
if (elv) { |
|||
try { |
|||
$('html, body').animate({ |
|||
scrollTop: $(elv).parent().offset().top - 60 |
|||
}, 0); |
|||
} |
|||
catch(err) { |
|||
} |
|||
|
|||
} |
|||
}); |
|||
//textoVigente(item, true);
|
|||
} |
|||
|
|||
if (elv) { |
|||
try { |
|||
$("html, body").animate( |
|||
{ |
|||
scrollTop: |
|||
$(elv) |
|||
.parent() |
|||
.offset().top - 60 |
|||
}, |
|||
0 |
|||
); |
|||
} catch (err) { |
|||
console.log(err); |
|||
} |
|||
} |
|||
} |
|||
|
|||
function textoVigente(item, link) { |
|||
var elv = null; |
|||
var ldpts = $(".dptt") |
|||
for (var i = 0; i < ldpts.length; i++) { |
|||
if ($(ldpts[i]).hasClass('displaynone')) |
|||
continue; |
|||
if (isElementInViewport( ldpts[i])) { |
|||
if (i+1 < ldpts.length) |
|||
elv = ldpts[i+1]; |
|||
else { |
|||
elv = ldpts[i]; |
|||
} |
|||
break; |
|||
} |
|||
var elv = null; |
|||
var ldpts = $(".dptt"); |
|||
for (var i = 0; i < ldpts.length; i++) { |
|||
if ($(ldpts[i]).hasClass("displaynone")) continue; |
|||
if (isElementInViewport(ldpts[i])) { |
|||
if (i + 1 < ldpts.length) elv = ldpts[i + 1]; |
|||
else { |
|||
elv = ldpts[i]; |
|||
} |
|||
break; |
|||
} |
|||
|
|||
$(".cp .tipo-vigencias a").removeClass("selected") |
|||
$(item).addClass("selected") |
|||
|
|||
$(".dptt.desativado").addClass("displaynone"); |
|||
$(".nota-alteracao").removeClass("displaynone"); |
|||
if (!link) |
|||
$(".nota-alteracao").addClass("displaynone"); |
|||
|
|||
if (elv) { |
|||
try { |
|||
$('html, body').animate({ |
|||
scrollTop: $(elv).parent().offset().top - 60 |
|||
}, 0); |
|||
} |
|||
catch(err) { |
|||
} |
|||
} |
|||
|
|||
$(".cp .tipo-vigencias a").removeClass("selected"); |
|||
$(item).addClass("selected"); |
|||
|
|||
$(".dptt.desativado").addClass("displaynone"); |
|||
$(".nota-alteracao").removeClass("displaynone"); |
|||
if (!link) $(".nota-alteracao").addClass("displaynone"); |
|||
|
|||
if (elv) { |
|||
try { |
|||
$("html, body").animate( |
|||
{ |
|||
scrollTop: |
|||
$(elv) |
|||
.parent() |
|||
.offset().top - 60 |
|||
}, |
|||
0 |
|||
); |
|||
} catch (err) { |
|||
console.log(err); |
|||
} |
|||
} |
|||
} |
|||
|
|||
export default { |
|||
isElementInViewport, |
|||
textoMultiVigente, |
|||
textoVigente |
|||
} |
|||
isElementInViewport, |
|||
textoMultiVigente, |
|||
textoVigente |
|||
}; |
|||
|
|||
@ -1,56 +1,46 @@ |
|||
//import JsDiff from "diff/dist/diff";
|
|||
|
|||
// TODO: migrar compilacao para VueJs
|
|||
|
|||
import compilacao from "./js/compilacao"; |
|||
import compilacao_view from "./js/compilacao_view"; |
|||
import compilacao_notas from "./js/compilacao_notas"; |
|||
import _ from "lodash"; |
|||
|
|||
//import "./js/compilacao_notas";
|
|||
//import "./js/compilacao_edit";
|
|||
|
|||
//require("imports-loader?this=>window!./js/compilacao.js");
|
|||
//require("imports-loader?this=>window!./js/compilacao_edit.js");
|
|||
//require("imports-loader?this=>window!./js/compilacao_notas.js");
|
|||
//require("imports-loader?this=>window!./js/compilacao_view.js");
|
|||
|
|||
|
|||
_.forEach(compilacao, function (func, key) { |
|||
_.forEach(_.merge(_.merge(compilacao, compilacao_notas),compilacao_view), function(func, key) { |
|||
window[key] = func; |
|||
|
|||
}); |
|||
_.forEach(compilacao_view, function (func, key) { |
|||
window[key] = func; |
|||
|
|||
}); |
|||
|
|||
|
|||
$(document).ready(function() { |
|||
|
|||
setTimeout(function() { |
|||
var href = location.href.split('#') |
|||
if (href.length == 2) { |
|||
try { |
|||
$('html, body').animate({ |
|||
scrollTop: $('#dptt' + href[1] ).offset().top - window.innerHeight / 9 |
|||
}, 0); |
|||
} |
|||
catch(err) { |
|||
} |
|||
var href = location.href.split("#"); |
|||
if (href.length == 2) { |
|||
try { |
|||
$("html, body").animate( |
|||
{ |
|||
scrollTop: |
|||
$("#dptt" + href[1]).offset().top - window.innerHeight / 9 |
|||
}, |
|||
0 |
|||
); |
|||
} catch (err) { |
|||
console.log(err); |
|||
} |
|||
} |
|||
}, 100); |
|||
|
|||
$("#btn_font_menos").click(function() { |
|||
$(".dpt").css("font-size", "-=1"); |
|||
$(".dpt").css("font-size", "-=1"); |
|||
}); |
|||
$("#btn_font_mais").click(function() { |
|||
$(".dpt").css("font-size", "+=1"); |
|||
$(".dpt").css("font-size", "+=1"); |
|||
}); |
|||
|
|||
$(".dpt.bloco_alteracao .dpt").each(function() { |
|||
var nivel = parseInt($(this).attr('nivel')); |
|||
|
|||
$(this).css('z-index', 15-nivel) |
|||
|
|||
var nivel = parseInt($(this).attr("nivel")); |
|||
$(this).css("z-index", 15 - nivel); |
|||
}); |
|||
|
|||
onReadyNotasVides(); |
|||
|
|||
}); |
|||
|
|||
Loading…
Reference in new issue