Boa tarde Pessoal
Estamos trabalhando no workflow financeiro que faz a visualização do borderôs de lançamentos financeiros do RM, ele possui um formulário que foi melhorado... Incluímos um datatable que apresenta informações dos lançamentos financeiros. Um dos campos da datatable é o numero workflow fluig que rodou no movimento de compras. Então gostaria de criar um link neste campo ou nestas linha para que ao clicar seja aberto o outro workflow do processo de compras.
Como montar um link em um campo da datatable?
Trecho de código do formulário relacionado, link comentado é o que eu gostaria de incluir no campo FluigMov: record.FLUIG_MOV,
// Montando uma tabela para visualização do dataset
mydata = [];
for (var index in records) {
var record = records[index];
mydata.push({
Indice: parseFloat(index) + 1, //Criando um contador para indice
Documento: record.NUMERODOCUMENTO,
Favorecido: record.FAVORECIDO,
ValorLiquido: record.VALORLIQUIDO,
IdLan: record.IDLAN,
FluigMov: record.FLUIG_MOV,
//http://#############/portal/p/01/pageworkflowview?app_ecm_workflowview_detailsProcessInstanceID='+record.FLUIG_MOV, //Gostaria de incluir este link
noResults: false
});
}
// preenchimento da tabela do formulario
var myTable = FLUIGC.datatable('#target', {
dataRequest: mydata,
renderContent: ['Indice','Documento', 'Favorecido', 'ValorLiquido','IdLan','FluigMov'],
header: [
{'title': 'Indice'},
{'title': 'Número Doc.'},
{'title': 'Favorecido'},
{'title': 'Valor LÃquido'},
{'title': 'Ident. Lançamento'},
{'title': 'Solicitação Aprovada'}
]
}, function(err, data) {
// DO SOMETHING (error or success)
});
Herick, no seu html (costumo colocar lá no final, antes de fechar o body), coloque o seguinte código
<script type="text/template" id="templateExemplo" class="templateExemplo">
<tr>
<td>{{Indice}}</td>
<td>{{Documento}}</td>
<td>{{Favorecido}}</td>
<td>{{ValorLiquido}}</td>
<td>{{IdLan}}</td>
<td><a href="http://#############/portal/p/01/pageworkflowview?app_ecm_workflowview_detailsProcessInstanceID={{FluigMov}}" target="_blank">{{FluigMov}}</a></td>
</tr>
</script>
no código do seu datatable, troque
renderContent: ['Indice','Documento', 'Favorecido', 'ValorLiquido','IdLan','FluigMov'],
por
renderContent: '.templateExemplo',
veja se atende;
Exemplo do if no template
<script type="text/template" id="templateSemTermo" class="templateSemTermo">
{{#FluigMov}}
<tr>
<td>{{CPF}}</td>
<td>{{CHAPA}}</td>
<td>{{NOME}}</td>
<td>{{CARGO}}</td>
<td>{{DATA_ADMISSAO}}</td>
<td>{{SITUACAO_STR}}</td>
</tr>
{{/FluigMov}}
{{^FluigMov}}
<tr class="active" style="font-weight:bold" >
<td colspan="6">Total de registros encontrados: {{TOTAL_REGISTRO}}</td>
</tr>
{{/FluigMov}}
</script>
Funcionou Otto, muito obrigado
Boa noite Otto, se o valor retornado em {{FluigMov}} for null. Como poderia inativar o link? Tentei de várias maneiras… Mas não permite if-else dentro da .
vou complementar na minha resposta um exemplo de um if no template. Se o FluigMov estiver preenchido o template será um, se não, o outro. talvez deva lhe ser útil
Tentei postar aqui nos comentários, mas quebrou a resposta. Vou postar como resposta mesmo.
Otto, muito legal isso de usar section e section inverse pra fazer um if/else
Sobre não exibir o link caso o FluigMov esteja vazio.
O Mustache, sistema de template JS que o Fluig usa, é bem simples e não permite muita coisa mesmo. Talvez algo assim resolva (criando uma section que só imprime o conteúdo de dentro se a variável não for null ou false), mas realmente não sei se funciona:
<td>{{#FluigMov}}<a href="http://#############/portal/p/01/pageworkflowview?app_ecm_workflowview_detailsProcessInstanceID={{FluigMov}}" target="_blank">{{FluigMov}}</a>{{/FluigMov}}</td>
Uncaught Error: Unclosed section “FluigMov” at 366
at parseTemplate (mustache-min.js:1)
at Writer.parse (mustache-min.js:1)
at Writer.renderPartial (mustache-min.js:1)
at Writer.renderTokens (mustache-min.js:1)
at Writer.renderSection (mustache-min.js:1)
at Writer.renderTokens (mustache-min.js:1)
at Writer.render (mustache-min.js:1)
at Object.render (mustache-min.js:1)
at L (fluig-style-guide.min.js:16)
at fluig-style-guide.min.js:16
Então ele só aceita section identada como o Otto postou na resposta dele. Eu nunca tinha usado esse Mustache.