(function(){ function open_create_institution_modal(evt) { evt.preventDefault(); jQuery.get("/plugin/mpog_software/create_institution", function(response){ jQuery("#institution_dialog").html(response); set_events(); jQuery("#institution_dialog").dialog({ modal: true, width: 500, height: 530, position: 'center', close: function() { jQuery("#institution_dialog").html(""); jQuery('#institution_empty_ajax_message').switchClass("show-field", "hide-field"); } }); }); } function show_public_institutions_fields() { jQuery(".public-institutions-fields").show(); jQuery("label[for='institutions_acronym']").html(jQuery("#acronym_translate").val()); } function show_private_institutions_fields() { jQuery(".public-institutions-fields").hide(); jQuery("label[for='institutions_acronym']").html(jQuery("#fantasy_name_translate").val()); jQuery("#institutions_governmental_power option").selected(0); jQuery("#institutions_governmental_sphere option").selected(0); } function get_selected_institution_type() { var radio_buttons = jQuery("input[type='radio'][name='type']"); var type = ""; for( var i = 0; i < radio_buttons.length; i++ ) { if( radio_buttons[i].checked ) { type = radio_buttons[i].value; break; } } return type; } function get_post_data() { return { community : { name : jQuery("#community_name").val(), country : jQuery("#community_country").val(), state : jQuery("#community_state").val(), city : jQuery("#community_city").val() }, governmental : { power : jQuery("#institutions_governmental_power").selected().val(), sphere : jQuery("#institutions_governmental_sphere").selected().val() }, juridical : { nature : jQuery("#institutions_juridical_nature").selected().val() }, institution : { cnpj: jQuery("#institutions_cnpj").val(), type: get_selected_institution_type(), acronym : jQuery("#institutions_acronym").val(), }, authenticity_token : jQuery("input[name='authenticity_token']").val(), recaptcha_response_field : jQuery('#recaptcha_response_field').val(), recaptcha_challenge_field : jQuery('#recaptcha_challenge_field').val() } } function success_ajax_response(response) { close_loading(); if(response.success){ var institution_name = response.institution_data.name; var institution_id = response.institution_data.id; jQuery("#institution_dialog").html("

"+response.message+"

"); jQuery("#create_institution_errors").switchClass("show-field", "hide-field"); jQuery(".institution_container").append(get_clone_institution_data(institution_id)); add_selected_institution_to_list(institution_id, institution_name); jQuery(".remove-institution").click(remove_institution); } else { var errors = ""; jQuery("#create_institution_errors").switchClass("hide-field", "show-field").html("

"+response.message+"

"+errors); } } function save_institution(evt) { evt.preventDefault(); var form_data = jQuery("#institution_form").serialize(); open_loading(jQuery("#loading_message").val()); jQuery.ajax({ url: "/plugin/mpog_software/new_institution", data : get_post_data(), type: "POST", success: success_ajax_response, error: function() { close_loading(); var error_message = jQuery("#institution_error_message").val(); jQuery("#create_institution_errors").switchClass("hide-field", "show-field").html("

"+error_message+"

"); } }); } function institution_already_exists(){ if( this.value.length >= 3 ) { jQuery.get("/plugin/mpog_software/institution_already_exists", {name:this.value}, function(response){ if( response == true ) { jQuery("#already_exists_text").switchClass("hide-field", "show-field"); } else { jQuery("#already_exists_text").switchClass("show-field", "hide-field"); } }); } } function get_clone_institution_data(value) { var user_institutions = jQuery(".user_institutions").first().clone(); user_institutions.val(value); return user_institutions; } function institution_autocomplete() { jQuery("#input_institution").autocomplete({ source : function(request, response){ jQuery.ajax({ type: "GET", url: "/plugin/mpog_software/get_institutions", data: {query: request.term}, success: function(result){ response(result); if( result.length == 0 ) { jQuery('#institution_empty_ajax_message').switchClass("hide-field", "show-field"); } else { jQuery('#institution_empty_ajax_message').switchClass("show-field", "hide-field"); } }, error: function(ajax, stat, errorThrown) { console.log('Link not found : ' + errorThrown); } }); }, minLength: 2, select : function (event, selected) { jQuery("#institution_selected").val(selected.item.id).attr("data-name", selected.item.label); } }); } function add_selected_institution_to_list(id, name) { var selected_institution = "
  • "+name; selected_institution += "
  • "; jQuery(".institutions_added").append(selected_institution); } function add_new_institution(evt) { evt.preventDefault(); var selected = jQuery("#institution_selected"); var institution_already_added = jQuery(".institutions_added li[data-institution='"+selected.val()+"']").length; if(selected.val().length > 0 && institution_already_added == 0) { //field that send the institutions to the server jQuery(".institution_container").append(get_clone_institution_data(selected.val())); // Visualy add the selected institution to the list add_selected_institution_to_list(selected.val(), selected.attr("data-name")); // clean the institution flag selected.val("").attr("data-name", ""); jQuery("#input_institution").val(""); jQuery(".remove-institution").click(remove_institution); } } function remove_institution(evt) { evt.preventDefault(); var code = jQuery(this).parent().attr("data-institution"); jQuery(".user_institutions[value="+code+"]").remove(); jQuery(this).parent().remove(); } function add_mask_to_form_items() { jQuery(".intitution_cnpj_field").mask("99.999.999/9999-99"); } function set_events() { jQuery("#create_institution_link").click(open_create_institution_modal); jQuery("#type_PrivateInstitution").click(show_private_institutions_fields); jQuery("#type_PublicInstitution").click(show_public_institutions_fields); jQuery('#save_institution_button').click(save_institution); jQuery("#community_name").keyup(institution_already_exists); jQuery("#add_new_institution").click(add_new_institution); jQuery(".remove-institution").click(remove_institution); add_mask_to_form_items(); institution_autocomplete(); } jQuery(document).ready(set_events); })();