Blame view

datalets/datatable-datalet/datatable-datalet.html 2.92 KB
73bcce88   luigser   COMPONENTS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  <!--

  @group ROUTETOPA Polymer Core Elements

  

  The `datatables-datalet` is a porting of Datatables JQuery library in a web component that has built up by using Polymer.

  Pass to this component a data url(CKAN api uri) and a string with one or multiple query in JsonPath format(separated by spaces) and it'll show a

  table with data and query attributes with all Datatables library features.

  

  ### Code

  

  Example

  

      <datatables-datalet

          dataUrl="http://demo.ckan.org/api/action/datastore_search?resource_id=8324a4c9-66d6-47bf-a898-94237cc39b9f&amp;limit=50"

          query="$.result.records..Supplier $.result.records..Amount">

      </datatables-datalet>

  

  @class datatables-datalet

  -->

a1f0799c   isisadmin   datalet global re...
19
  <link rel="import" href="../base-ajax-json-jsonpath-datalet/base-ajax-json-jsonpath-datalet.html">

73bcce88   luigser   COMPONENTS
20
21
22
  

  <dom-module id="datatable-datalet">

      <template>

a1f0799c   isisadmin   datalet global re...
23
          <link rel="stylesheet" href="js/DataTables-master/media/css/jquery.dataTables.min.css">

73bcce88   luigser   COMPONENTS
24
25
26
  

          <table id="datatable" class="table table-striped table-bordered" cellspacing="0" style="height: auto; width: auto;">

          </table>

a1f0799c   isisadmin   datalet global re...
27
          <base-ajax-json-jsonpath-datalet data-url="{{dataUrl}}" fields="{{fields}}"></base-ajax-json-jsonpath-datalet>

73bcce88   luigser   COMPONENTS
28
29
30
      </template>

  

      <script src="js/DataTables-master/media/js/jquery.dataTables.js"></script>

73bcce88   luigser   COMPONENTS
31
32
33
  

      <script>

          var DatatableBehavior = {

73bcce88   luigser   COMPONENTS
34
  

5bc002a2   isisadmin   datalet refactoring
35
              presentData: function(){

a1f0799c   isisadmin   datalet global re...
36
                  if(!this.data || this.data == undefined) return;

73bcce88   luigser   COMPONENTS
37
38
39
                  html = "";

                  html += '<thead>'+

                             '<tr>';

a1f0799c   isisadmin   datalet global re...
40
41
                  for(var x = 0; x<this.data.length; x++){

                     html += '<th>' + this.data[x].name + '</th>';

73bcce88   luigser   COMPONENTS
42
43
44
45
46
                  }

                  html +=  '</tr>' +

                           '</thead>' +

                           '<tfoot>' +

                           '<tr>';

a1f0799c   isisadmin   datalet global re...
47
48
                  for(var x = 0; x<this.data.length; x++){

                      html += '<th>' + this.data[x].name + '</th>';

73bcce88   luigser   COMPONENTS
49
50
51
52
                  }

                  html += '</tr>' +

                          '</tfoot>' +

                          '<tbody>';

a1f0799c   isisadmin   datalet global re...
53
                  for(var i = 0; i<this.data[0].data.length; i++){

73bcce88   luigser   COMPONENTS
54
                      html += '<tr>';

a1f0799c   isisadmin   datalet global re...
55
56
                      for(var x = 0; x<this.data.length; x++){

                        html += '<td>' + this.data[x].data[i] + '</td>';

73bcce88   luigser   COMPONENTS
57
58
59
60
61
62
63
64
65
66
67
68
69
                      }

                      html += '</tr>';

                  }

                  html += '</tbody>';

  

                  $(this._component.$.datatable).append(html);

                  $(this._component.$.datatable).DataTable();

              }

          };

  

          Polymer({

              is : 'datatable-datalet' ,

              ready: function(){

a1f0799c   isisadmin   datalet global re...
70
                  var DatatableComponentBehavior =  $.extend(true, {}, BaseDataletBehavior, WorkcycleBehavior, AjaxJsonJsonPathBehavior, DatatableBehavior);

73bcce88   luigser   COMPONENTS
71
72
73
74
75
76
77
                  DatatableComponentBehavior.init(this);

              }

  

          });

      </script>

  </dom-module>