(function($){
$(function(){
var $formFilter = $('#formcadastro');
var $submitButton = $('#botao_busca');
var $resultTable = $('#form_resultado .tablelistagem').addClass('horizontal-expand');
$resultTable.children().remove();
$('
').attr('id', 'first-bar-action')
.attr('class', 'bar-action hide-on-search')
.prependTo($resultTable.parent());
$('').attr('id', 'second-bar-action')
.attr('class', 'bar-action hide-on-search')
.appendTo($resultTable.parent());
var $barActions = $('.bar-action').hide();
$('').appendTo($barActions);
var $selectAllButton = $barActions.find('input.selecionar');
$('').appendTo($barActions);
var $actionButton = $barActions.find('input.processar');
$('').appendTo($barActions);
var $destroyButton = $barActions.find('input.destroy');
var PageUrlBase = 'processamento';
var ApiUrlBase = 'processamentoApi';
var $resourceOptionsTable = $('#resource-options');
$resourceOptionsTable.find('tr:even').addClass('even');
$resourceOptionsTable.hide().prependTo($formFilter.parent());
var $disciplinasManualTable = $('#disciplinas-manual');
$('#new-disciplina-line').click(function(){
var $lastDisplinaRow = $disciplinasManualTable.find('tr.disciplina:last');
var $newRow = $lastDisplinaRow.clone().removeClass('notice').insertAfter($lastDisplinaRow);
var $fieldNome = $newRow.find('input.nome');
resetAutoCompleteNomeDisciplinaEvent($fieldNome.val(''));
$fieldNome.focus();
setRemoveDisciplinaLineEvent($newRow.find('.remove-disciplina-line'));
});
function resetAutoCompleteNomeDisciplinaEvent($element){
var handleSelect = function(event, ui){
$j(event.target).val(ui.item.label);
return false;
};
var search = function(request, response) {
var searchPath = '/module/Api/ComponenteCurricular?oper=get&resource=componente_curricular-search';
var params = { query : request.term };
$j.get(searchPath, params, function(dataResponse) {
simpleSearch.handleSearch(dataResponse, response);
});
};
$element.autocomplete({
source : search,
select : handleSelect,
minLength : 1,
autoFocus : true
});
}
function setRemoveDisciplinaLineEvent($targetElement){
$targetElement.click(function(event){
event.preventDefault();
if($disciplinasManualTable.find('tr.disciplina').length > 1)
$(this).closest('tr').remove();
else
handleMessages([{type : 'notice', msg : 'Não é possivel remover a primeira linha.'}], $(this).closest('tr'));
});
}
setRemoveDisciplinaLineEvent($('.remove-disciplina-line'));
var $notasField = $resourceOptionsTable.find('#notas');
$notasField.change(function(){
var $targetElementId = '#notas-manual';
if ($notasField.val() == 'informar-manualmente')
$($targetElementId).show().removeAttr('disabled');
else if($notasField.val() == 'AP')
$($targetElementId).show().removeAttr('disabled').val('AP');
else
$($targetElementId).hide().attr('disabled', 'disabled');
});
var changeStateFieldManual = function($containerElementId, $targetElementId){
$targetElement = $($targetElementId);
if ($($containerElementId).val() == 'informar-manualmente'){
$targetElement.show().removeAttr('disabled').find('.change-state-with-parent').show().removeAttr('disabled');
}
else{
$targetElement.hide().attr('disabled', 'disabled').find('.change-state-with-parent').hide().attr('disabled', 'disabled');
}
};
$resourceOptionsTable.find('#percentual-frequencia').change(function(){
changeStateFieldManual('#percentual-frequencia', '#percentual-frequencia-manual');
});
$resourceOptionsTable.find('#faltas').change(function(){
changeStateFieldManual('#faltas', '#faltas-manual');
});
$resourceOptionsTable.find('#disciplinas').change(function(){
changeStateFieldManual('#disciplinas', '#disciplinas-manual');
/*chama .change para respectivos elementos esconderem / mostrar os campos que
dependam deles*/
if ($(this).val() == 'informar-manualmente'){
$('.disable-and-hide-wen-disciplinas-manual').hide().attr('disabled', 'disabled').change();
$('#disciplinas-manual').find('input.nome').focus();
}
else
$('.disable-and-hide-wen-disciplinas-manual').show().removeAttr('disabled').change();
});
$('.disable-on-search').attr('disabled', 'disabled');
$('.hide-on-search').hide();
$('#ref_cod_curso').change(function(){
$('.clear-on-change-curso').val('');
});
var $navActions = $('').attr('id', 'nav-actions').hide();
$navActions.prependTo($formFilter.parent());
var $tableSearchDetails = $('
')
.attr('id', 'search-details')
.addClass('styled')
.addClass('horizontal-expand')
.addClass('center')
.hide()
.prependTo($formFilter.parent()).hide();
var $feedbackMessages = $('').attr('id', 'feedback-messages').appendTo($formFilter.parent());
var $additionalFields = $j('#resource-options select, #resource-options input[type="text"]');
fixupFieldsWidth($additionalFields);
//url builders
var resourceUrlBuilder = {
buildUrl : function(urlBase, vars){
_vars = '';
for(varName in vars){
_vars += '&'+varName+'='+vars[varName];
}
return urlBase + '?' + _vars;
}
};
var deleteResourceUrlBuilder = {
buildUrl : function(urlBase, resourceName, additionalVars){
var vars = {
att : resourceName,
oper : 'delete',
instituicao_id : $('#ref_cod_instituicao').val(),
matricula_id : ''
};
return resourceUrlBuilder.buildUrl(urlBase, $.extend(vars, additionalVars));
}
};
var postResourceUrlBuilder = {
buildUrl : function(urlBase, resourceName, additionalVars){
var vars = {
att : resourceName,
oper : 'post',
instituicao_id : $('#ref_cod_instituicao').val(),
matricula_id : ''
};
return resourceUrlBuilder.buildUrl(urlBase, $.extend(vars, additionalVars));
}
};
var getResourceUrlBuilder = {
buildUrl : function(urlBase, resourceName, additionalVars){
var vars = {
att : resourceName,
oper : 'get',
instituicao_id : $('#ref_cod_instituicao').val(),
escola_id : $('#ref_cod_escola').val(),
curso_id : $('#ref_cod_curso').val(),
serie_id : $('#ref_cod_serie').val(),
turma_id : $('#ref_cod_turma').val(),
ano : $('#ano').val(),
etapa : $('#etapa').val()
};
return resourceUrlBuilder.buildUrl(urlBase, $.extend(vars, additionalVars));
}
};
function changeResource($resourceElement, postFunction, deleteFunction){
if ($.trim($resourceElement.val()) == '')
deleteFunction($resourceElement);
else
postFunction($resourceElement);
};
var changeResourceName = function(event){
changeResource($(this), postFalta, deleteFalta);
};
function postResource(options, errorCallback){
$.ajax(options).error(errorCallback);
}
function updateFieldSituacao(linkToHistorico, matricula_id, situacao){
if(situacao){
var $fieldSituacao = $('#situacao-matricula-' + matricula_id);
var situacaoHistorico = safeUtf8Decode(situacao);
$fieldSituacao.html(getLinkToHistorico(linkToHistorico, situacaoHistorico));
$fieldSituacao.data('situacao_historico', situacaoHistorico);
}
}
//callback handlers
//delete
function handleDelete(dataResponse){
try{
var $checkbox = $('matricula-' + dataResponse.matricula_id);
var $targetElement = $j('#matricula-'+dataResponse.matricula_id).closest('tr').first();
handleMessages(dataResponse.msgs, $targetElement);
updateFieldSituacao(dataResponse.link_to_historico, dataResponse.matricula_id, dataResponse.situacao_historico);
}
catch(error){
showNewSearchButton();
handleMessages([{type : 'error', msg : 'Ocorreu um erro ao remover o recurso, por favor tente novamente, detalhes: ' + error}], '');
safeLog(dataResponse);
}
}
function handleErrorDeleteResource(response){
handleMessages([{type : 'error', msg : 'Erro ao alterar recurso, detalhes:' + response.responseText}], '');
safeLog(response);
}
function handleErrorPost(response){
handleMessages([{type : 'error', msg : 'Erro ao alterar recurso, detalhes:' + response.responseText}], '');
safeLog(response);
}
function setTableSearchDetails(dataDetails){
$('
').html(safeUtf8Decode('Processamento dos históricos')).appendTo($tableSearchDetails);
//set headers table
var $linha = $('
');
$('
').html('Ano').appendTo($linha);
$('
').html('Escola').appendTo($linha);
$('
').html('Curso').appendTo($linha);
$('
').html('Serie').appendTo($linha);
$('
').html('Turma').appendTo($linha);
$('
').html('Matricula').appendTo($linha);
$linha.appendTo($tableSearchDetails);
var $linha = $('
').addClass('even');
$('
').html($('#ano').val()).appendTo($linha);
//field escola pode ser diferente de select caso usuario comum
var $htmlEscolaField = $('#ref_cod_escola').children("[selected='selected']").html() ||
$j('#tr_nm_escola span:last').html();
$('