Abrir link clicando no dataTable

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.