tamielbr / Ciclope

Aggregates data visualization tools for research output
3 stars 3 forks source link

Incluir export para CSV/JSON #49

Closed tamielbr closed 8 years ago

tamielbr commented 8 years ago

Precisamos exportar dados do Datatables, que permite incluir isso automaticamente:

          "order": [0,'asc'],
              dom: 'Bfrtip',
              buttons: [
                 {
                  extend: 'csvHtml5',
                  title: 'data'
                }
                ]
                });
        });``
gabrielfedel commented 8 years ago

@tamielbr nossa, fiz vários testes e não consegui fazer o botão aparecer :( mesmo olhando a documentação por acaso tem algum código com o botão pronto aí?

tamielbr commented 8 years ago

Sim, não sei se você viu que precisa de um .js.

  <link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.0.3/css/buttons.dataTables.min.css">
  <link rel="stylesheet" href="https://cdn.datatables.net/1.10.9/css/jquery.dataTables.min.css">
  <script type='text/javascript' src='http://code.jquery.com/jquery-1.11.1.min.js'></script>
  <script type='text/javascript' src='https://cdn.datatables.net/1.10.9/js/jquery.dataTables.min.js'></script>
  <script type='text/javascript' src='script/currency_sort_br.js'></script>
  <script type='text/javascript' src='https://cdn.datatables.net/buttons/1.0.3/js/buttons.html5.min.js'></script>
  <script type='text/javascript' src='https://cdn.datatables.net/buttons/1.0.3/js/dataTables.buttons.min.js'></script>

<script>
//Pegar dados do index sobre o projeto
$(function() {
     $.getJSON('index.json', function(json) {
        //Posição fixa no vetor do arquivo index.json para popular o header (precisa ser aprimorado!)
        var position = 6;
        $('.header').append(json.data[position][0]);
        $('.header').append('<br>'+json.data[position][7]);
        $('.header').append('<br>'+'Última atualização: '+json.data[position][6]);
        $('.header').append('<br>'+'<a href="'+json.data[position][5]+'"a>'+'JSON'+'</a>');
        //Passa os dados para o datatables, mostrando dados em div=#table_data
        $('#table_data').dataTable( {
            "columnDefs": [
                              {
                                   "render": function ( data, type, row ) {
                                        return '<a href="'+data+'" class="dark">Link</a>';
                                        },
                                        "targets" : 1
                                   },
                              ],
                "language": {
                    "url": "json/PT_datatables.json"
                    },
                    "ajax": json.data[position][5],
                    "paging": true,
                    "order": [0,'asc'],
                    dom: 'Bfrtip',
                    buttons: [
                      {
                      extend: 'csvHtml5',
                      title: 'data'
                    }
                    ]
                    });
            });
     });
</script>
gabrielfedel commented 8 years ago

Eu tentei adicionar vários js's (indicados na documentação do datatable), mas vou fazer mais uns testes olhando esse exemplo como referência

gabrielfedel commented 8 years ago

Tentei mais um pouco mais ainda não consegui, acho que tem alguns dos javascript's conflitando (dos quê já usávamos, e dos quê são necessário para que o botão apareça)

gabrielfedel commented 8 years ago

Ufa! resolvi, tive que mudar as ordens de alguns .js pra funcionar