Skip to content

Instantly share code, notes, and snippets.

@mvnp
Created December 18, 2017 13:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mvnp/e1c1e8e42496a714063c86293f669405 to your computer and use it in GitHub Desktop.
Save mvnp/e1c1e8e42496a714063c86293f669405 to your computer and use it in GitHub Desktop.
(function(){
'use strict';
var empresas_id = "#ajax_empresa";
var local_id = "#ajax_local";
var servicos_id = "#ajax_servico";
var pesquisadores_id = "#ajax_persquisador";
var pesquisa_id = "#ajax_pesquisa";
var unidades_id = "#ajax_unidade";
var funcoes_id = "#ajax_funcao";
var equipes_id = "#ajax_equipe"; // <<<<<<<<<
var created_at = "input[name='DESEMP_DATA_DESDE']";
var finished_at = "input[name='DESEMP_DATA_ATE']";
var clean_button_id = "#removeselecaodoform";
var send_button_id = "#submit_form";
var empresas_data;
var local_data;
var servicos_data;
var pesquisadores_data;
var pesquisa_data;
var unidades_data;
var funcoes_data;
var equipes_data; // <<<<<<<<<
make_all_mult_select();
$.when(equipes_set(), funcoes_set(), unidades_set(), empresa_set(), local_set(), pesquisadores_set(), servicos_set(), pesquisa_set()).done(function(){ // <<<<<<<<<
add_options(empresas_id, empresas_data);
select_if_can();
$('#ajax_empresa').multiselect({
includeSelectAllOption: true,
nSelectedText: 'selecionados ..',
nonSelectedText:'Nenhum selecionado ..',
allSelectedText: 'Todos selecionados ..',
selectAllText: 'Selecionar todos ..',
numberDisplayed: 1,
onDropdownHide: function(option, checked){
select_if_can(false);
}
});
});
function empresa_set(){
return $.ajax({
url: 'http://pesquisa.wshare.com.br/get.php',
type: 'POST',
dataType: 'JSON',
data: {qual: "getempresas"},
success: function(resposta){
empresas_data = resposta;
}
});
}
function unidades_set(){
return $.ajax({
url: 'http://pesquisa.wshare.com.br/get.php',
type: 'POST',
dataType: 'JSON',
data: {qual: "getunidades"},
success: function(resposta){
unidades_data = resposta;
}
});
}
function pesquisa_set(){
return $.ajax({
url: 'http://pesquisa.wshare.com.br/get.php',
type: 'POST', dataType: 'json',
data: {qual: "getpesquisas"},
success: function(retorno){
pesquisa_data = retorno;
}
});
}
function local_set(){
return $.ajax({
url: 'http://pesquisa.wshare.com.br/get.php',
type: 'POST', dataType: 'json',
data: {qual: "requestlocals"},
success: function(retorno){
local_data = retorno;
}
});
}
function funcoes_set(){
return $.ajax({
url: 'http://pesquisa.wshare.com.br/get.php',
type: 'POST', dataType: 'json',
data: {qual: "requestfuncoes"},
success: function(retorno){
funcoes_data = retorno;
}
});
}
function pesquisadores_set(){
return $.ajax({
url: 'http://pesquisa.wshare.com.br/get.php',
type: 'POST', dataType: 'json',
data: {qual: "getpesquisadores"},
success: function(retorno){
pesquisadores_data = retorno;
}
});
}
function servicos_set(){
return $.ajax({
url: 'http://pesquisa.wshare.com.br/get.php',
type: 'POST', dataType: 'json',
data: {qual: "requestservicos"},
success: function(retorno){
servicos_data = retorno;
}
});
}
function equipes_set(){ // <<<<<<<<<
return $.ajax({
url: 'http://pesquisa.wshare.com.br/get.php',
type: 'POST', dataType: 'json',
data: {qual: "getequipes"},
success: function(retorno){
equipes_data = retorno; // <<<<<<<<<
}
});
}
$(send_button_id).click(function(event) {
save_selecteds();
});
$(clean_button_id).click(function(event){
event.preventDefault();
clean_campos();
clean_filtro();
});
function clean_filtro(){
$.ajax({
url: '/sessao/limparfiltro',
type: 'POST', dataType: 'json',
data: {parametro: "limpar"},
success: function(data){
var url = window.location.href;
window.location = url;
}
});
}
function select_if_can(mudar_empresas = true){
var empresas_selecionas = get_selects(empresas_id);
var Local_selecionas = null;
var Servicos_selecionas = null;
var Pesquisador_selecionas = null;
var Pesquisas_selecionas = null;
var Unidades_selecionas = null;
var Funcoes_selecionas = null;
var Equipes_selecionas = null; // <<<<<<<<<
if( window.localStorage.getItem("Saved_selects") !== null ){
var data = window.localStorage.getItem("Saved_selects");
data = $.parseJSON(data);
empresas_selecionas = data.Empresas_field;
Local_selecionas = data.Local_field;
Servicos_selecionas = data.Servicos_field;
Pesquisador_selecionas = data.Pesquisador_field;
Pesquisas_selecionas = data.Pesquisas_field;
Unidades_selecionas = data.Unidades_field;
Funcoes_selecionas = data.Funcoes_field;
Equipes_selecionas = data.Equipes_field; // <<<<<<<<<
}
if( mudar_empresas == true ){
$(empresas_id).html("");
add_options(empresas_id, empresas_data, empresas_selecionas);
}
preenche_campos(Local_selecionas, Servicos_selecionas, Pesquisador_selecionas, Pesquisas_selecionas, Unidades_selecionas, Funcoes_selecionas, Equipes_selecionas); // <<<<<<<<<
}
function clean_campos(){
window.localStorage.removeItem("Saved_selects");
$(empresas_id).multiselect('destroy');
$(local_id).multiselect('destroy');
$(servicos_id).multiselect('destroy');
$(pesquisadores_id).multiselect('destroy');
$(pesquisa_id).multiselect('destroy');
$(unidades_id).multiselect('destroy');
$(funcoes_id).multiselect('destroy');
$(equipes_id).multiselect('destroy'); // <<<<<<<<<
$(empresas_id).html("");
$(local_id).html("");
$(servicos_id).html("");
$(pesquisadores_id).html("");
$(pesquisa_id).html("");
$(unidades_id).html("");
$(funcoes_id).html("");
$(equipes_id).html(""); // <<<<<<<<<
add_options(empresas_id, empresas_data);
make_all_mult_select();
$('#ajax_empresa').multiselect({
includeSelectAllOption: true,
nSelectedText: 'selecionados ..',
nonSelectedText:'Nenhum selecionado ..',
allSelectedText: 'Todos selecionados ..',
selectAllText: 'Selecionar todos ..',
numberDisplayed: 1,
onDropdownHide: function(option, checked){
select_if_can(false);
}
});
}
function save_selecteds(){
var data = {
"Empresas_field": get_selects(empresas_id),
"Local_field": get_selects(local_id),
"Servicos_field": get_selects(servicos_id),
"Pesquisador_field": get_selects(pesquisadores_id),
"Pesquisas_field": get_selects(pesquisa_id),
"Unidades_field": get_selects(unidades_id),
"Funcoes_field": get_selects(funcoes_id),
"Equipes_field": get_selects(equipes_id) // <<<<<<<<<
}
window.localStorage.setItem("Saved_selects", JSON.stringify(data));
}
function preenche_campos(local_options = null, servicos_options = null, pesquisadores_options = null, pesquisas_options = null, unidades_options = null, funcoes_options = null, equipes_options = null){ // <<<<<<<<<
var empresas = get_selects(empresas_id);
if( jQuery.isEmptyObject(empresas) ){
empresas = [];
$(empresas_id+" option").each(function(){
var item = $(this).val();
empresas.push(item);
});
}
var data_append_servicos = servicos_data;
var data_append_local = get_data(empresas, local_id, local_data);
var data_append_pesquisadores = get_data(empresas, pesquisadores_id, pesquisadores_data);
var data_append_unidades = get_data(empresas, unidades_id, unidades_data);
var data_append_equipes = get_data(empresas, equipes_id, equipes_data); // <<<<<<<<<
var data_append_pesquisas = pesquisa_data;
var data_append_funcoes = funcoes_data;
add_options_multiselect(local_id, data_append_local, local_options);
add_options_multiselect(servicos_id, data_append_servicos, servicos_options);
add_options_multiselect(pesquisadores_id, data_append_pesquisadores, pesquisadores_options);
add_options_multiselect(pesquisa_id, data_append_pesquisas, pesquisas_options);
add_options_multiselect(unidades_id, data_append_unidades, unidades_options);
add_options_multiselect(funcoes_id, data_append_funcoes, funcoes_options);
add_options_multiselect(equipes_id, data_append_equipes, equipes_options); // <<<<<<<<<
}
function get_data(data, variavel, data_to_consult){
var return_data = [];
for (var i = 0; i < data.length; i++) {
var id_empresa = data[i];
for (var e = 0; e < data_to_consult.length; e++) {
var item = data_to_consult[e];
var id = item.PESQUISADOR_EMP_ID;
if( variavel == local_id ){
id = item.LOCAL_EMP_ID;
}
if( variavel == unidades_id ){
id = item.UO_EMP_ID;
}
if( variavel == equipes_id ){
id = item.VISITAS_EQUIPE_EMP_ID;
}
if( id == id_empresa ){
return_data.push(item);
}
}
}
return return_data;
}
function add_options_multiselect(id, options, selectec_ones = null){
$(id).multiselect('destroy');
$(id).html("");
for (var i = 0; i < options.length; i++) {
var option = document.createElement("option");
var text = get_text(id, options[i]);
var value = get_value(id, options[i]);
option.text = text;
option.value = value;
if( selectec_ones != null ){
for (var e = 0; e < selectec_ones.length; e++) {
var select = selectec_ones[e];
if( value == select ){
option.setAttribute('selected', 'selected');
}
}
}
$(id).append(option);
}
$(id).multiselect({
includeSelectAllOption: true,
nSelectedText: 'selecionados ..',
nonSelectedText:'Nenhum selecionado ..',
allSelectedText: 'Todos selecionados ..',
selectAllText: 'Selecionar todos ..',
numberDisplayed: 1,
});
}
function add_options(id, options, selectec_ones = null){
for (var i = 0; i < options.length; i++) {
var option = document.createElement("option");
var text = get_text(id, options[i]);
var value = get_value(id, options[i]);
option.text = text;
option.value = value;
if( selectec_ones !== null ){
for (var e = 0; e < selectec_ones.length; e++) {
var select = selectec_ones[e];
if( value == select ){
option.setAttribute('selected', 'selected');
}
}
}
$(id).append(option);
}
}
function get_text(id, data){
if( id == empresas_id ){
return data.EMP_NOME;
}
if( id == local_id ){
return data.LOCAL_DESCRICAO;
}
if( id == servicos_id ){
return data.SERV_DESC;
}
if( id == pesquisadores_id ){
return data.PESQUISADOR_NOME;
}
if( id == pesquisa_id ){
return data.PESQ_TIT;
}
if( id == unidades_id ){
return data.UO_NOME;
}
if( id == funcoes_id ){
return data.FC_DESCR;
}
if( id == equipes_id ){ // <<<<<<<<<
return data.VISITAS_EQUIPE_NOME+" "+data.VISITAS_EQUIPE_SOBRENOME;
}
}
function get_value(id, data){
if( id == empresas_id ){
return data.ID;
}
if( id == local_id ){
return data.LOCAL_ID;
}
if( id == servicos_id ){
return data.SERV_ID;
}
if( id == pesquisadores_id ){
return data.PESQUISADOR_ID;
}
if( id == pesquisa_id ){
return data.ID;
}
if( id == unidades_id ){
return data.UO_ID;
}
if( id == funcoes_id ){
return data.FC_ID;
}
if( id == equipes_id ){ // <<<<<<<<<
return data.VISITAS_EQUIPE_ID;
}
}
function make_all_mult_select(){
$(local_id+", "+servicos_id+", "+pesquisadores_id+", "+pesquisa_id+", "+unidades_id+", "+funcoes_id+", "+equipes_id).multiselect({
includeSelectAllOption: true,
nSelectedText: 'selecionados ..',
nonSelectedText:'Nenhum selecionado ..',
allSelectedText: 'Todos selecionados ..',
selectAllText: 'Selecionar todos ..',
numberDisplayed: 1,
});
}
function get_selects(id){
var return_data = [];
$(id+" option:selected").each(function(){
var item = $(this).val();
return_data.push(item);
});
return return_data;
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment