Browse Source

cria entr compilação p sapl-frontend e migra jsdiff

pull/2485/head
Leandro Roberto 7 years ago
parent
commit
fafd1b4e73
  1. 1
      sapl-frontend/package.json
  2. 284
      sapl-frontend/src/apps/compilacao/js/compilacao.js
  3. 6
      sapl-frontend/src/apps/compilacao/js/compilacao_edit.js
  4. 2
      sapl-frontend/src/apps/compilacao/js/compilacao_notas.js
  5. 40
      sapl-frontend/src/apps/compilacao/js/compilacao_view.js
  6. 56
      sapl-frontend/src/apps/compilacao/main.js
  7. 4
      sapl-frontend/vue.config.js
  8. 4
      sapl/templates/base.html
  9. 15
      sapl/templates/compilacao/base_compilacao.html
  10. 2
      sapl/templates/compilacao/dispositivo_form_alteracao.html
  11. 2
      sapl/templates/compilacao/dispositivo_form_definidor_vigencia.html
  12. 2
      sapl/templates/compilacao/dispositivo_form_vigencia.html
  13. 20
      sapl/templates/compilacao/text_list.html
  14. 8
      sapl/templates/compilacao/text_notificacoes.html
  15. 2
      sapl/templates/compilacao/textoarticulado_detail.html
  16. 4
      sapl/templates/compilacao/tipotextoarticulado_detail.html

1
sapl-frontend/package.json

@ -10,6 +10,7 @@
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-free": "^5.6.3", "@fortawesome/fontawesome-free": "^5.6.3",
"bootstrap": "^4.2.1", "bootstrap": "^4.2.1",
"diff": "^4.0.1",
"dotenv": "^6.2.0", "dotenv": "^6.2.0",
"imports-loader": "^0.8.0", "imports-loader": "^0.8.0",
"jquery": "^3.3.1", "jquery": "^3.3.1",

284
sapl-frontend/src/apps/compilacao/js/compilacao.js

@ -0,0 +1,284 @@
function SetCookie(cookieName,cookieValue,nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)
+ ";expires="+expire.toGMTString();
}
function ReadCookie(cookieName) {
var theCookie=" "+document.cookie;
var ind=theCookie.indexOf(" "+cookieName+"=");
if (ind==-1) ind=theCookie.indexOf(";"+cookieName+"=");
if (ind==-1 || cookieName=="") return "";
var ind1=theCookie.indexOf(";",ind+1);
if (ind1==-1) ind1=theCookie.length;
return unescape(theCookie.substring(ind+cookieName.length+2,ind1));
}
function insertWaitAjax(element) {
//jQuery(element).append('<div style="text-align:center;"><img src="/static/img/ajax-loader.gif"></div>');
jQuery(element).append('<div style="text-align:center;"><i style="font-size: 200%;"class="fa fa-refresh fa-spin"></i></div>');
}
function DispositivoSearch(opts) {
$(function() {
let formData = {}
var container_ds = $('body').children("#container_ds");
if (container_ds.length > 0)
$(container_ds).remove();
container_ds = $('<div id="container_ds"/>');
$('body').prepend(container_ds);
var fields = $("[data-sapl-ta='DispositivoSearch']");
fields.each(function() {
var field = $(this);
var data_type_selection = field.attr('data-type-selection');
var data_field = field.attr('data-field');
var data_function = field.attr('data-function');
var onChangeFieldSelects = function(event) {
if (data_type_selection == 'checkbox') {
var tas = field.find('input[name="ta_select_all"]'); //tas - Textos Articulados
tas.off();
tas.on('change', function(event) {
$(this).closest('ul').find('input[name="'+data_field+'"]').prop("checked", this.checked);
//$(this).prop("checked", false);
});
}
else {
var dpts = field.find('input');
dpts.off()
dpts.attr('type', 'hidden');
$('<a class="text-danger">')
.insertBefore(dpts)
.append($('<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>'))
.on('click', function() {
if ($(this).closest('ul').find('li').length == 2)
$(this).closest('ul').remove();
else
$(this).closest('li').remove();
});
}
}
onChangeFieldSelects();
var onChangeParamTA = function(event) {
var tipo_ta = $("select[name='tipo_ta']").val();
var tipo_model = $("select[name='tipo_model']").val();
var num_ta = $("input[name='num_ta']").val();
var ano_ta = $("input[name='ano_ta']").val();
var dispositivos_internos = $("input[name='dispositivos_internos']:checked").val();
var rotulo_dispositivo = $("input[name='rotulo_dispositivo']").val();
var texto_dispositivo = $("input[name='texto_dispositivo']").val();
var max_results = $("select[name='max_results']").val();
var url = '';
if (rotulo_dispositivo.length > 0 || texto_dispositivo.length > 0) {
$("input[name='dispositivos_internos']").prop('disabled', false);
$("input[name='dispositivos_internos']").each((idx, element) => {
element.parentElement.classList.remove('disabled')
});
$("input[name='dispositivos_internos']").closest('#div_id_dispositivos_internos').css('opacity','1');
}
else {
$("input[name='dispositivos_internos']").filter('[value="False"]').prop('checked', true);
$("input[name='dispositivos_internos']").prop('disabled', true);
$("input[name='dispositivos_internos']").each((idx, element) => {
element.parentElement.classList.add('disabled')
});
$("input[name='dispositivos_internos']").closest('#div_id_dispositivos_internos').css('opacity','0.3');
dispositivos_internos = 'False';
}
formData = {
'tipo_ta' : tipo_ta,
'tipo_model' : tipo_model,
'num_ta' : num_ta,
'ano_ta' : ano_ta,
'texto' : texto_dispositivo,
'rotulo' : rotulo_dispositivo,
'dispositivos_internos' : dispositivos_internos,
'max_results' : max_results,
'data_type_selection' : data_type_selection,
'data_field' : data_field,
'data_function' : data_function,
};
window.localStorage.setItem("dispositivo_search_form_data", JSON.stringify(formData))
url = '/ta/search_fragment_form';
$('.result-busca-dispositivo').html('');
insertWaitAjax('.result-busca-dispositivo')
$.get(url, formData).done(function( data ) {
$('.result-busca-dispositivo').html(data);
//OptionalCustomFrontEnd().init();
if (data_type_selection == 'checkbox') {
var tas = $('.result-busca-dispositivo').find('input[name="ta_select_all"]');
tas.off();
tas.on('change', function(event) {
$(this).closest('ul').find('input[name="'+data_field+'"]').prop("checked", this.checked);
});
}
});
}
var onKeyPressRotuloBuscaTextual = function(event) {
var rotulo_dispositivo = $("input[name='rotulo_dispositivo']").val();
var texto_dispositivo = $("input[name='texto_dispositivo']").val();
var dispositivos_internos = $("input[name='dispositivos_internos']:checked").val();
if (rotulo_dispositivo.length > 0 || texto_dispositivo.length > 0) {
$("input[name='dispositivos_internos']").prop('disabled', false);
$("input[name='dispositivos_internos']").each((idx, element) => {
element.parentElement.classList.remove('disabled')
});
$("input[name='dispositivos_internos']").closest('#div_id_dispositivos_internos').css('opacity','1');
}
else {
$("input[name='dispositivos_internos']").filter('[value="False"]').prop('checked', true);
$("input[name='dispositivos_internos']").prop('disabled', true);
$("input[name='dispositivos_internos']").each((idx, element) => {
element.parentElement.classList.add('disabled')
});
$("input[name='dispositivos_internos']").closest('#div_id_dispositivos_internos').css('opacity','0.3');
dispositivos_internos = 'False';
}
}
var button_ds = field.children("#button_ds");
if (button_ds.length > 0)
$(button_ds).remove();
button_ds = $('<div id="button_ds" class="clearfix"/>');
field.prepend(button_ds);
var btn_open_search = $('<button>')
.text(opts['text_button'])
.attr('type','button')
.attr('class','btn btn-sm btn-success btn-modal-open');
button_ds.append(btn_open_search);
btn_open_search.on('click', function() {
$.get(opts['url_form'], function(data) {
container_ds.html(data);
var modal_ds = $('#modal-ds');
OptionalCustomFrontEnd().init();
modal_ds.find("select[name='tipo_ta']").change(function(event) {
var url = '';
url = '/ta/search_fragment_form?action=get_tipos&tipo_ta='+this.value;
modal_ds.find("label[for='id_tipo_model']").html('Tipos de ' + this.children[this.selectedIndex].innerHTML);
var select = modal_ds.find("select[name='tipo_model']");
select.empty();
$('<option value="">Carregando...</option>').appendTo(select);
$.get(url).done(function( data ) {
select.empty();
for(var item in data) {
for (var i in data[item])
select.append($("<option>").attr('value',i).text(data[item][i]));
}
setTimeout(function() {
$("select[name='tipo_model']").val(formData.tipo_model);
}, 200)
//select.change(onChangeParamTA)
});
});
/*modal_ds.find("input[name='num_ta'], "
+"input[name='ano_ta'], "
+"select[name='tipo_model'], "
+"input[name='texto_dispositivo'], "
+"input[name='dispositivos_internos'], "
+"input[name='rotulo_dispositivo']"
).change(onChangeParamTA);*/
modal_ds.find("input[name='texto_dispositivo'], "
+"input[name='rotulo_dispositivo']")
.on('keyup', onKeyPressRotuloBuscaTextual)
modal_ds.find(".btn-busca").click(onChangeParamTA);
modal_ds.find("#btn-modal-select").click(function() {
// limpar selecionados se o tipo é radio
var listas = field.find('ul');
if (data_type_selection == 'radio')
listas.remove();
// adicionar itens selecionados na caixa modal
var selecionados = modal_ds.find('[name="'+data_field+'"]:checked');
// com base nos selecionados, limpa seus ta's removendo os não selecionados
selecionados.closest('ul').find('input:not(:checked)').filter('[name!="ta_select_all"]').closest('li').remove();
selecionados.closest('ul').each(function() {
//insere na lista de selecionados os ta's não presentes
var ul_lista = field.find('#'+this.id);
if (ul_lista.length == 0) {
field.append(this);
return;
}
//insere os dispositivos não presentes
var inputs_for_this = $(this).find('input');
inputs_for_this.each(function() {
if (ul_lista.find("#"+this.id).length > 0)
return;
ul_lista.append($(this).closest('li'));
});
});
onChangeFieldSelects();
modal_ds.modal('hide');
if ('post_selected' in opts)
opts['post_selected'](opts['params_post_selected'])
});
try {
formData = JSON.parse(window.localStorage.getItem("dispositivo_search_form_data"))
$("input[name='num_ta']").val(formData.num_ta);
$("input[name='ano_ta']").val(formData.ano_ta);
$("input[name='rotulo_dispositivo']").val(formData.rotulo);
$("input[name='texto_dispositivo']").val(formData.texto);
$("select[name='max_results']").val(formData.max_results);
} catch (e) {
}
setTimeout(function() {
try {
$("select[name='tipo_ta']").val(formData.tipo_ta);
$("select[name='tipo_ta']").trigger('change')
//modal_ds.find(".btn-busca").trigger('click')
//onChangeParamTA();
} catch (e) {
}
}, 200)
modal_ds.modal('show');
})
});
});
});
}
export default {
SetCookie,
ReadCookie,
insertWaitAjax,
DispositivoSearch
}

6
sapl/static/js/compilacao_edit.js → sapl-frontend/src/apps/compilacao/js/compilacao_edit.js

@ -112,7 +112,7 @@ function DispositivoEdit() {
var dpt_form = _this.children().filter('.dpt-form').children().first(); var dpt_form = _this.children().filter('.dpt-form').children().first();
var url_search = dpt_form[0]['id_dispositivo_search_form'].value; var url_search = dpt_form[0]['id_dispositivo_search_form'].value;
DispostivoSearch({ DispositivoSearch({
'url_form': url_search, 'url_form': url_search,
'text_button': 'Selecionar' 'text_button': 'Selecionar'
}); });
@ -134,7 +134,7 @@ function DispositivoEdit() {
var dpt_form = _this.children().filter('.dpt-form').children().first(); var dpt_form = _this.children().filter('.dpt-form').children().first();
var url_search = dpt_form[0]['id_dispositivo_search_form'].value; var url_search = dpt_form[0]['id_dispositivo_search_form'].value;
DispostivoSearch({ DispositivoSearch({
'url_form': url_search, 'url_form': url_search,
'text_button': 'Selecionar', 'text_button': 'Selecionar',
'post_selected': instance.allowed_inserts_registro_inclusao, 'post_selected': instance.allowed_inserts_registro_inclusao,
@ -159,7 +159,7 @@ function DispositivoEdit() {
var dpt_form = _this.children().filter('.dpt-form').children().first(); var dpt_form = _this.children().filter('.dpt-form').children().first();
var url_search = dpt_form[0]['id_dispositivo_search_form'].value; var url_search = dpt_form[0]['id_dispositivo_search_form'].value;
DispostivoSearch({ DispositivoSearch({
'url_form': url_search, 'url_form': url_search,
'text_button': 'Selecionar' 'text_button': 'Selecionar'
}); });

2
sapl/static/js/compilacao_notas.js → sapl-frontend/src/apps/compilacao/js/compilacao_notas.js

@ -24,7 +24,7 @@ function onEventsDneExec(pk, model) {
} }
else if (model == 'vide') { else if (model == 'vide') {
DispostivoSearch({ DispositivoSearch({
'url_form': '/ta/search_form', 'url_form': '/ta/search_form',
'text_button': 'Definir Dispositivo' 'text_button': 'Definir Dispositivo'
}); });

40
sapl/static/js/compilacao_view.js → sapl-frontend/src/apps/compilacao/js/compilacao_view.js

@ -1,3 +1,5 @@
let JsDiff = require('diff');
function isElementInViewport (el) { function isElementInViewport (el) {
//special bonus for those using jQuery //special bonus for those using jQuery
@ -141,38 +143,8 @@ function textoVigente(item, link) {
} }
} }
$(document).ready(function() { export default {
isElementInViewport,
setTimeout(function() { textoMultiVigente,
var href = location.href.split('#') textoVigente
if (href.length == 2) {
try {
$('html, body').animate({
scrollTop: $('#dptt' + href[1] ).offset().top - window.innerHeight / 9
}, 0);
} }
catch(err) {
}
}
}, 100);
$("#btn_font_menos").click(function() {
$(".dpt").css("font-size", "-=1");
});
$("#btn_font_mais").click(function() {
$(".dpt").css("font-size", "+=1");
});
$(".dpt.bloco_alteracao .dpt").each(function() {
var nivel = parseInt($(this).attr('nivel'));
$(this).css('z-index', 15-nivel)
});
/*$(".indent").each(function() {
$(this).removeClass('indent');
$(this.parentElement).addClass('indent');
});*/
});

56
sapl-frontend/src/apps/compilacao/main.js

@ -0,0 +1,56 @@
//import JsDiff from "diff/dist/diff";
import compilacao from "./js/compilacao";
import compilacao_view from "./js/compilacao_view";
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) {
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) {
}
}
}, 100);
$("#btn_font_menos").click(function() {
$(".dpt").css("font-size", "-=1");
});
$("#btn_font_mais").click(function() {
$(".dpt").css("font-size", "+=1");
});
$(".dpt.bloco_alteracao .dpt").each(function() {
var nivel = parseInt($(this).attr('nivel'));
$(this).css('z-index', 15-nivel)
});
});

4
sapl-frontend/vue.config.js

@ -49,6 +49,10 @@ module.exports = {
.add('./src/global/main.js') .add('./src/global/main.js')
.end() .end()
config.entry('compilacao')
.add('./src/apps/compilacao/main.js')
.end()
/*config /*config
.plugin('theme') .plugin('theme')
.use(webpack.DefinePlugin, [{ .use(webpack.DefinePlugin, [{

4
sapl/templates/base.html

@ -35,8 +35,10 @@
{% endcomment %} {% endcomment %}
{% block webpack_loader_css %}
{% render_bundle 'global' 'css' %} {% render_bundle 'global' 'css' %}
{% render_bundle THEME_CUSTOM 'css' %} {% render_bundle THEME_CUSTOM 'css' %}
{% endblock webpack_loader_css %}
{% endblock %} {% endblock %}
</head> </head>
@ -239,8 +241,10 @@
{% endif %} {% endif %}
{% block foot_js %} {% block foot_js %}
{% block webpack_loader_js %}
{% render_bundle 'global' 'js' %} {% render_bundle 'global' 'js' %}
{% render_bundle THEME_CUSTOM 'js' %} {% render_bundle THEME_CUSTOM 'js' %}
{% endblock webpack_loader_js %}
{% comment "" %} {% comment "" %}

15
sapl/templates/compilacao/base_compilacao.html

@ -0,0 +1,15 @@
{% extends "base.html" %}
{% load i18n %}
{% load render_bundle from webpack_loader %}
{% block webpack_loader_css %}
{% render_bundle 'global' 'css' %}
{% render_bundle 'compilacao' 'css' %}
{% render_bundle THEME_CUSTOM 'css' %}
{% endblock %}
{% block webpack_loader_js %}
{% render_bundle 'global' 'js' %}
{% render_bundle 'compilacao' 'js' %}
{% render_bundle THEME_CUSTOM 'js' %}
{% endblock %}

2
sapl/templates/compilacao/dispositivo_form_alteracao.html

@ -3,7 +3,7 @@
{% block extra_js %}{{block.super}} {% block extra_js %}{{block.super}}
<script type="text/javascript"> <script type="text/javascript">
DispostivoSearch({ DispositivoSearch({
'url_form': '{% url 'sapl.compilacao:dispositivo_search_form'%}', 'url_form': '{% url 'sapl.compilacao:dispositivo_search_form'%}',
'text_button': '{% trans 'Definir Dispositivo'%}' 'text_button': '{% trans 'Definir Dispositivo'%}'
}); });

2
sapl/templates/compilacao/dispositivo_form_definidor_vigencia.html

@ -3,7 +3,7 @@
{% block extra_js %}{{block.super}} {% block extra_js %}{{block.super}}
<script type="text/javascript"> <script type="text/javascript">
DispostivoSearch({ DispositivoSearch({
'url_form': '{% url 'sapl.compilacao:dispositivo_search_form'%}', 'url_form': '{% url 'sapl.compilacao:dispositivo_search_form'%}',
'text_button': '{% trans 'Adicionar Dispositivos'%}' 'text_button': '{% trans 'Adicionar Dispositivos'%}'
}); });

2
sapl/templates/compilacao/dispositivo_form_vigencia.html

@ -19,7 +19,7 @@
$('[name="inicio_vigencia"]').on('change', change_inconstitucionalidade); $('[name="inicio_vigencia"]').on('change', change_inconstitucionalidade);
change_inconstitucionalidade(); change_inconstitucionalidade();
DispostivoSearch({ DispositivoSearch({
'url_form': '{% url 'sapl.compilacao:dispositivo_search_form'%}', 'url_form': '{% url 'sapl.compilacao:dispositivo_search_form'%}',
'text_button': '{% trans 'Selecionar Dispositivo'%}' 'text_button': '{% trans 'Selecionar Dispositivo'%}'
}); });

20
sapl/templates/compilacao/text_list.html

@ -2,13 +2,6 @@
{% load i18n %} {% load i18n %}
{% load compilacao_filters %} {% load compilacao_filters %}
{% load common_tags %} {% load common_tags %}
{% load staticfiles %}
{% load sass_tags %}
{% block head_content %}
{{block.super}}
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
{% endblock %}
{% block title %} {% block title %}
<h2 class="page-header">{% if object.content_object.title_type %}{{object.content_object.title_type}}{%else%}{{object}}{% endif %}{% comment %}<small><i>{% trans 'Texto Multivigente em Edição' %}</i></small>{% endcomment %}</h2> <h2 class="page-header">{% if object.content_object.title_type %}{{object.content_object.title_type}}{%else%}{{object}}{% endif %}{% comment %}<small><i>{% trans 'Texto Multivigente em Edição' %}</i></small>{% endcomment %}</h2>
@ -112,16 +105,3 @@
{% include 'compilacao/text_list_bloco.html'%} {% include 'compilacao/text_list_bloco.html'%}
</div> </div>
{% endblock base_content %} {% endblock base_content %}
{% block extra_js %}
{{block.super}}
<script type="text/javascript" src="{% static 'js/compilacao.js' %}"></script>
<script type="text/javascript" src="{% static 'js/compilacao_view.js' %}"></script>
{% if perms.compilacao.add_nota %}
<script type="text/javascript" src="{% static 'js/compilacao_notas.js' %}"></script>
{% endif %}
{% endblock %}

8
sapl/templates/compilacao/text_notificacoes.html

@ -1,14 +1,8 @@
{% extends "compilacao/textoarticulado_detail.html" %} {% extends "compilacao/textoarticulado_detail.html" %}
{% load i18n crispy_forms_tags compilacao_filters common_tags sass_tags%} {% load i18n crispy_forms_tags compilacao_filters common_tags%}
{% block base_content %} {% block base_content %}
{% block head_content %}{{block.super}}
<link rel="stylesheet" href="{% sass_src 'styles/compilacao.scss' %}" type="text/css">
{% endblock %}
{% crispy form %} {% crispy form %}
<table class="table table-striped table-hover table-notificacoes"> <table class="table table-striped table-hover table-notificacoes">
<thead> <thead>
<tr> <tr>

2
sapl/templates/compilacao/textoarticulado_detail.html

@ -1,4 +1,4 @@
{% extends "base.html" %} {% extends "compilacao/base_compilacao.html" %}
{% load i18n %} {% load i18n %}
{% load compilacao_filters %} {% load compilacao_filters %}
{% load common_tags %} {% load common_tags %}

4
sapl/templates/compilacao/tipotextoarticulado_detail.html

@ -1,4 +1,6 @@
{% extends "base.html" %} {% load i18n %} {% load compilacao_filters %} {% extends "compilacao/base_compilacao.html" %}
{% load i18n %}
{% load compilacao_filters %}
{% load common_tags %} {% load common_tags %}
{% block base_content %} {% block base_content %}

Loading…
Cancel
Save