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 = $('