From d1f3fb61bb1badfaf286edc78af2522dfde9cf7a Mon Sep 17 00:00:00 2001 From: LeandroRoberto Date: Mon, 14 Dec 2015 16:13:37 -0200 Subject: [PATCH] =?UTF-8?q?Reposicionamento=20da=20tela=20de=20usu=C3=A1ri?= =?UTF-8?q?o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reposicionar tela de usuário em textos articulados nos modos criados: - TMS - Texto Multivigente Sequencial - TMI - Texto Multivigente Integrado com Realce de Aterações - TVL - Texto Vigente COM Link para Normas Alteradoras - TVT - Texto Vigente --- static/js/compilacao_view.js | 78 ++++++++++++++++--- .../compilacao/index_bloco_alteracao.html | 6 +- 2 files changed, 70 insertions(+), 14 deletions(-) diff --git a/static/js/compilacao_view.js b/static/js/compilacao_view.js index a39a23889..372e44e93 100644 --- a/static/js/compilacao_view.js +++ b/static/js/compilacao_view.js @@ -7,14 +7,47 @@ $( window ).scroll(function() { $(window).load(function() { setTimeout(function() { - height = $( "section.vigencias" ).height(); - $('html, body').animate({ - scrollTop: window.pageYOffset - height - 55 - }, 300); + href = location.href.split('#') + if (href.length == 2) { + height = $( "section.vigencias" ).height(); + $('html, body').animate({ + scrollTop: window.pageYOffset - height - 55 + }, 300); + } }, 100); }); +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() */ + ); +} + 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])) { + elv = ldpts[i]; + break; + } + } + + + $(".cp .tipo-vigencias a").removeClass("selected") $(item).addClass("selected") $(".dptt.desativado").removeClass("displaynone"); @@ -75,16 +108,39 @@ function textoMultiVigente(item, diff) { }); //textoVigente(item, true); } + + if (elv) { + $('html, body').animate({ + scrollTop: $(elv).parent().offset().top - 60 + }, 0); + } } function textoVigente(item, link) { - $(".cp .tipo-vigencias a").removeClass("selected") - $(item).addClass("selected") - - $(".dptt.desativado").addClass("displaynone"); - $(".link_alterador").removeClass("displaynone"); - if (!link) - $(".link_alterador").addClass("displaynone"); + var elv = null; + var ldpts = $(".dptt") + for (var i = 0; i < ldpts.length; i++) { + if ($(ldpts[i]).hasClass('displaynone')) + continue; + if (isElementInViewport( ldpts[i])) { + elv = ldpts[i]; + break; + } + } + + $(".cp .tipo-vigencias a").removeClass("selected") + $(item).addClass("selected") + + $(".dptt.desativado").addClass("displaynone"); + $(".link_alterador").removeClass("displaynone"); + if (!link) + $(".link_alterador").addClass("displaynone"); + + if (elv) { + $('html, body').animate({ + scrollTop: $(elv).parent().offset().top - 60 + }, 0); + } } $(document).ready(function() { diff --git a/templates/compilacao/index_bloco_alteracao.html b/templates/compilacao/index_bloco_alteracao.html index ef12970ed..27a8c10cc 100644 --- a/templates/compilacao/index_bloco_alteracao.html +++ b/templates/compilacao/index_bloco_alteracao.html @@ -1,12 +1,12 @@ {% load compilacao_filters %} {% for ch in dpt.pk|get_bloco_atualizador %} {% spaceless %} + {% if ch.visibilidade %}
- {{ ch.tipo_dispositivo.rotulo_prefixo_html|safe }}{{ ch.rotulo }}{{ ch.tipo_dispositivo.rotulo_sufixo_html|safe }}{{ ch.tipo_dispositivo.texto_prefixo_html|safe }}{{ ch.texto|safe }} - -
+
+ {%endif%} {% endspaceless %} {% endfor %}