From fafd1b4e73c68134cd04c98bb9ca668787821f97 Mon Sep 17 00:00:00 2001 From: Leandro Roberto Date: Fri, 18 Jan 2019 21:55:11 -0200 Subject: [PATCH] =?UTF-8?q?cria=20entr=20compila=C3=A7=C3=A3o=20p=20sapl-f?= =?UTF-8?q?rontend=20e=20migra=20jsdiff?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl-frontend/package.json | 1 + .../src/apps/compilacao/js/compilacao.js | 284 ++++++++++++++++++ .../apps/compilacao}/js/compilacao_edit.js | 6 +- .../apps/compilacao}/js/compilacao_notas.js | 2 +- .../apps/compilacao}/js/compilacao_view.js | 42 +-- sapl-frontend/src/apps/compilacao/main.js | 56 ++++ sapl-frontend/vue.config.js | 4 + sapl/templates/base.html | 12 +- .../templates/compilacao/base_compilacao.html | 15 + .../dispositivo_form_alteracao.html | 2 +- .../dispositivo_form_definidor_vigencia.html | 2 +- .../compilacao/dispositivo_form_vigencia.html | 2 +- sapl/templates/compilacao/text_list.html | 20 -- .../compilacao/text_notificacoes.html | 8 +- .../compilacao/textoarticulado_detail.html | 2 +- .../tipotextoarticulado_detail.html | 4 +- 16 files changed, 387 insertions(+), 75 deletions(-) create mode 100644 sapl-frontend/src/apps/compilacao/js/compilacao.js rename {sapl/static => sapl-frontend/src/apps/compilacao}/js/compilacao_edit.js (99%) rename {sapl/static => sapl-frontend/src/apps/compilacao}/js/compilacao_notas.js (99%) rename {sapl/static => sapl-frontend/src/apps/compilacao}/js/compilacao_view.js (81%) create mode 100644 sapl-frontend/src/apps/compilacao/main.js create mode 100644 sapl/templates/compilacao/base_compilacao.html diff --git a/sapl-frontend/package.json b/sapl-frontend/package.json index 016f92c1a..a6929c5f2 100644 --- a/sapl-frontend/package.json +++ b/sapl-frontend/package.json @@ -10,6 +10,7 @@ "dependencies": { "@fortawesome/fontawesome-free": "^5.6.3", "bootstrap": "^4.2.1", + "diff": "^4.0.1", "dotenv": "^6.2.0", "imports-loader": "^0.8.0", "jquery": "^3.3.1", diff --git a/sapl-frontend/src/apps/compilacao/js/compilacao.js b/sapl-frontend/src/apps/compilacao/js/compilacao.js new file mode 100644 index 000000000..31c1de7f7 --- /dev/null +++ b/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('
'); + jQuery(element).append('
'); + } + + function DispositivoSearch(opts) { + $(function() { + let formData = {} + var container_ds = $('body').children("#container_ds"); + if (container_ds.length > 0) + $(container_ds).remove(); + 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'); + $('') + .insertBefore(dpts) + .append($('')) + .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 = $('
'); + field.prepend(button_ds); + + var btn_open_search = $('