fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [14258] added paginator to table


From: Saul
Subject: [Fmsystem-commits] [14258] added paginator to table
Date: Sat, 31 Oct 2015 00:06:22 +0000

Revision: 14258
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=14258
Author:   psaul
Date:     2015-10-31 00:06:21 +0000 (Sat, 31 Oct 2015)
Log Message:
-----------
added paginator to table

Modified Paths:
--------------
    branches/dev-syncromind/phpgwapi/js/jquery/common.js

Modified: branches/dev-syncromind/phpgwapi/js/jquery/common.js
===================================================================
--- branches/dev-syncromind/phpgwapi/js/jquery/common.js        2015-10-30 
12:11:18 UTC (rev 14257)
+++ branches/dev-syncromind/phpgwapi/js/jquery/common.js        2015-10-31 
00:06:21 UTC (rev 14258)
@@ -534,15 +534,110 @@
 
 
 
+function updateTablePaginator (p, m) {
+    var paginator = p;
+    
+    if (paginator.limit == 0) {
+        return;
+    }
+    
+    paginator.start += m;
+    var e = 0;
+    
+    if (paginator.start < 0) {
+        paginator.start = 0;
+        e++;
+    }
+    if ((paginator.start) > paginator.max){
+        paginator.start -= m;
+        e++;
+    }
+    
+    if ((paginator.start - Math.abs(m)) < 0) {
+        paginator.tablePaginatorPrevButton.classList.add('disabled');
+        paginator.tablePaginatorPrevButton.classList.remove('enabled');
+    }else{
+        paginator.tablePaginatorPrevButton.classList.remove('disabled');
+        paginator.tablePaginatorPrevButton.classList.add('enabled');
+    }
+    
+    if ((paginator.start + Math.abs(m)) > paginator.max) {
+        paginator.tablePaginatorNextButton.classList.add('disabled');
+        paginator.tablePaginatorNextButton.classList.remove('enabled');
+    }else{
+        paginator.tablePaginatorNextButton.classList.remove('disabled');
+        paginator.tablePaginatorNextButton.classList.add('enabled');
+    }
 
+    if (e > 0) {
+        return;
+    }
+    
createTable(paginator.container,paginator.url,paginator.col,paginator.r,paginator.class,paginator);
+}
 
+function createPaginatorTable (c, p) {
+    var paginator = p;
+    if (!paginator.limit) {
+        paginator.limit = 0;
+    }
 
+    var tablePaginator = document.createElement('ul');
+    var container = document.getElementById(c);    
+
+    var tablePaginatorPrev = document.createElement('li');
+    var tablePaginatorText = document.createElement('li');
+    var tablePaginatorNext = document.createElement('li');
+    var tablePaginatorPrevButton = document.createElement('a');
+    var tablePaginatorNextButton = document.createElement('a');    
+
+    tablePaginator.style.display = 'none';
+    tablePaginator.classList.add('tablePaginator');
+    
+    tablePaginatorPrev.classList.add('tablePaginatorPrev');
+    tablePaginatorText.classList.add('tablePaginatorText');
+    tablePaginatorNext.classList.add('tablePaginatorNext');
+
+    tablePaginatorPrevButton.classList.add('disabled');
+    tablePaginatorNextButton.classList.add('enabled');
+
+    tablePaginatorPrevButton.innerHTML = "Prev";
+    tablePaginatorNextButton.innerHTML = "Next";
+
+    tablePaginatorPrev.appendChild(tablePaginatorPrevButton);
+    tablePaginatorNext.appendChild(tablePaginatorNextButton);
+
+    tablePaginator.appendChild(tablePaginatorPrev);
+    tablePaginator.appendChild(tablePaginatorText);
+    tablePaginator.appendChild(tablePaginatorNext);
+
+    paginator.tablePaginator = tablePaginator;
+    paginator.tablePaginatorText = tablePaginatorText;
+    paginator.tablePaginatorPrevButton = tablePaginatorPrevButton;
+    paginator.tablePaginatorNextButton = tablePaginatorNextButton;
+
+    if (!paginator.start) {
+        paginator.start = 0;
+    }
+
+    tablePaginatorPrevButton.addEventListener('click', function(){
+        updateTablePaginator(paginator, (parseInt(paginator.limit) * -1 ) );
+    }, false);
+
+    tablePaginatorNextButton.addEventListener('click', function(){
+        updateTablePaginator(paginator, parseInt(paginator.limit));
+    }, false);
+
+    container.appendChild(tablePaginator);
+}
+
+
 //d  => div contenedor
 //u  => URL
 //c  => columnas
 //r  => respuesta
 //cl => clase
-function createTable (d,u,c,r,cl) {
+//l  => limit
+function createTable (d,u,c,r,cl,l) {
     var container = document.getElementById(d);
     var xTable = document.createElement('table');
     var tableHead = document.createElement('thead');
@@ -577,31 +672,27 @@
     tableBody.appendChild(tableBodyTr);
     xTable.appendChild(tableBody);
     
-    container.innerHTML = "";
+    $("#"+d+" table").remove();
+    
+    if (l) {
+        l.container = d;l.url = u;l.col = c;l.r = r;l.class = cl;
+        u += "&results="+l.limit+"&startIndex="+l.start;
+    }
+
     container.appendChild(xTable);
 
-//    var tableHead = "<thead><tr>";
-//    $.each(c, function(i, v) {
-//        var thHidden = "";
-//        var label = (v.label) ? v.label : "";
-//        if (v.hidden){
-//            thHidden = " style=\"display:none;\"";
-//        }
-//        tableHead += "<th"+thHidden+">"+label+"</th>";
-//    });
-//    tableHead += "</tr></thead>";
-//
-//    var tableBody = "<tbody>";
-
     $.get(u, function(data) {
         var selected = new Array();
+        var totalResults = "";
         if (typeof(r) == 'object') {
             selected = data;
             $.each(r, function(i, e){
                 selected = selected[e['n']];
             });
-        }else {
+            totalResults = data.ResultSet.totalRecords;
+        }else {            
             selected = data[r];
+            totalResults = data['recordsTotal'];
         }
 
         if (!selected){
@@ -609,21 +700,25 @@
         }
         tableBody.innerHTML = "";
         if (selected.length == 0) {
-//            tableClass = "pure-table pure-table-bordered";
-//            tableBody += "<tr><td colspan='"+c.length+"'>No records 
found</td></tr>";
             tableBodyTr.innerHTML = "";
             tableBodyTrTd.setAttribute('colspan', c.length);
             tableBodyTrTd.innerHTML = "No records found";
             tableBodyTr.appendChild(tableBodyTrTd);
             tableBody.appendChild(tableBodyTr);
         }else {
+            if (l) {
+                l.tablePaginator.style.display = 'block';
+                l.max = totalResults;
+                l.tablePaginatorText.innerHTML = (l.start+1) + " - " + ( ( 
(l.start+l.limit)>l.max || l.limit==0 ) ? l.max : l.start+l.limit ) + " / " + 
l.max;
+                if (l.limit > l.max || l.limit == 0) {
+                    l.tablePaginatorNextButton.classList.add('disabled');
+                    l.tablePaginatorNextButton.classList.remove('enabled');
+                }
+            }
+            
             $.each(selected, function(id, vd) {
-//                tableBodyTr.innerHTML = "";
                 var tableBodyTr = document.createElement('tr');
-//                tableBody += "<tr>";
                 $.each(c, function(ic, vc) {
-//                    var tableBodyTd = "";
-//                    var tdHidden = "";
                     var tableBodyTrTd = document.createElement('td');
                     tableBodyTrTdText = "";
                     if (vc['object']){
@@ -666,7 +761,6 @@
                         $.each(object, function(i, o) {
                             tableBodyTrTd.appendChild(o);
                         });
-//                        tableBodyTd = object;
                     }else if (vc['formatter']) {
                         vcfa = [];
                         vcft = 'genericLink';                        
@@ -716,27 +810,17 @@
                         var k = vc.key;
                         tableBodyTrTdText = vd[k];
                         tableBodyTrTd.innerHTML = tableBodyTrTdText;
-//                        if (vc.hidden){
-//                            tdHidden = " style=\"display:none;\"";
-//                        }
                     }
                     if (vc.attrs) {
                         $.each(vc.attrs, function(i, v) {
                             tableBodyTrTd.setAttribute(v.name, v.value);
                         });
                     }
-//                    tableBody += "<td" + tdHidden +">";
-//                    tableBody += tableBodyTd;
-//                    tableBody += "</td>";
                     tableBodyTr.appendChild(tableBodyTrTd);
                 });
-//                tableBody += "</tr>";
                 tableBody.appendChild(tableBodyTr);
             });
-            
         }
-//        tableBody += "</tbody>";
-//        $('#'+d).html("").append("<table 
class='"+tableClass+"'>"+tableHead+tableBody+"</table>");
     });
 }
 
@@ -755,8 +839,6 @@
                 objs.push('&nbsp;');
             }
             objs.push(element);
-//            obj += (i > 0) ? '&nbsp;' : '';
-//            obj += element.outerHTML;
         });
     };
     return objs;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]