Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- String.format = function() {
- var s = arguments[0];
- for (var i = 0; i < arguments.length - 1; i++) {
- var reg = new RegExp("\\{" + i + "\\}", "gm");
- s = s.replace(reg, arguments[i + 1]);
- }
- return s;
- };
- $.fn.hemisphereGridCalculo = function(configuracao) {
- if (typeof configuracao != "object") {
- console.error("A configuração deve ser um objeto");
- return;
- }
- configuracao.place = this;
- $.ajax({
- url : (configuracao.url === undefined ? '' : configuracao.url),
- type : (configuracao.method === undefined ? 'POST' : configuracao.method),
- dataType : (configuracao.protocolo === undefined ? 'json' : configuracao.protocolo),
- statusCode : {
- 404 : function() {
- console.error("Endereço de requisição invalido");
- return;
- },
- 500 : function() {
- console.error("Ocorreu um erro na requisição");
- return;
- }
- }
- }).done(function(data) {
- console.log("Done: ",data);
- configuracao.callback(data);
- }).error(function(jqXHR, textStatus, errorThrown) {
- return configuracao.onError(jqXHR, textStatus, errorThrown);
- }).success(function(data, textStatus, jqXHR) {
- //Limpa os parametros antigos
- $(configuracao.place).html("");
- var indice = 0;
- $.each(data.parametros, function (indice, valor) {
- // Input com validação customizada
- switch (valor.tipoParametroCalculo) {
- case "BOOLEAN":
- var input = String.format("<select name='valoresParametroCalculo[{0}].valor'>", indice);
- if(valor.valorDefault == true) {
- input += "<option value='true' selected='selected'>Verdadeiro</option>";
- input += "<option value='falso'>Falso</option>";
- }else {
- input += "<option value='true'>Verdadeiro</option>";
- input += "<option value='falso' selected='selected'>Falso</option>";
- }
- input += "</select>";
- break;
- case "DATE":
- var input = String.format("<input value='{0}' name='valoresParametroCalculo[{1}].valor' type='text' class='dataInicio'/>", valor.valorDefault, indice);
- break;
- default:
- if(valor.chave == 'tabela.vds') {
- var input = String.format("<select name='valoresParametroCalculo[{0}].valor'>", indice);
- $.ajax({
- url : configuracao.tabelavdsUrl,
- type : (configuracao.method === undefined ? 'POST' : configuracao.method),
- dataType : (configuracao.protocolo === undefined ? 'json' : configuracao.protocolo),
- }).success(function (data, textStatus, jqXHR) {
- console.log("Tabela VDS: ", data);
- input += "<option value='01'>Tabela 1</option>";
- });
- input += "</select>";
- }else {
- var input = String.format("<input value='{0}' name='valoresParametroCalculo[{1}].valor' type='text'/>", valor.valorDefault, indice);
- }
- break;
- }
- var idParametroInput = String.format("<input type='hidden' name='valoresParametroCalculo[{0}].parametro' value='{1}' />", indice, valor.id);
- var atributo = String.format("<tr><td>{0}</td><td>{1}{2}</td></tr>", valor.descricao, input, idParametroInput);
- $(configuracao.place).append(atributo);
- indice++;
- });
- if(data.parametros.length == 0) {
- var atributo = String.format("<tr><td colspan='2'>{0}</td></tr>", "Este cálculo não possui parâmetros de configuração");
- $(configuracao.place).append(atributo);
- }
- return data.parametros.length;
- });
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement