[Groonga-commit] groonga/groonga-admin at bbfa7e9 [master] Implement pagination

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Nov 4 18:11:19 JST 2014


Kouhei Sutou	2014-11-04 18:11:19 +0900 (Tue, 04 Nov 2014)

  New Revision: bbfa7e9ba4c46139fde92da30b0b13b6bec3580e
  https://github.com/groonga/groonga-admin/commit/bbfa7e9ba4c46139fde92da30b0b13b6bec3580e

  Message:
    Implement pagination
    
    But there is a bug that pagination parameter isn't kept.

  Modified files:
    app/index.html
    app/scripts/app.js
    app/scripts/controllers/table-search-controller.js
    app/scripts/groonga-client.js
    app/views/tables/search.html
    bower.json

  Modified: app/index.html (+1 -0)
===================================================================
--- app/index.html    2014-11-04 15:12:20 +0900 (55f61b9)
+++ app/index.html    2014-11-04 18:11:19 +0900 (df3baed)
@@ -66,6 +66,7 @@
     <script src="bower_components/angular-animate/angular-animate.js"></script>
     <script src="bower_components/angular-touch/angular-touch.js"></script>
     <script src="bower_components/angular-route/angular-route.js"></script>
+    <script src="bower_components/angular-ui-bootstrap-bower/ui-bootstrap-tpls.js"></script>
     <!-- endbower -->
     <!-- endbuild -->
 

  Modified: app/scripts/app.js (+2 -1)
===================================================================
--- app/scripts/app.js    2014-11-04 15:12:20 +0900 (bd93af9)
+++ app/scripts/app.js    2014-11-04 18:11:19 +0900 (d89db2e)
@@ -15,7 +15,8 @@ angular
     'ngResource',
     'ngRoute',
     'ngSanitize',
-    'ngTouch'
+    'ngTouch',
+    'ui.bootstrap'
   ])
   .config(function ($routeProvider) {
     $routeProvider

  Modified: app/scripts/controllers/table-search-controller.js (+12 -8)
===================================================================
--- app/scripts/controllers/table-search-controller.js    2014-11-04 15:12:20 +0900 (9490712)
+++ app/scripts/controllers/table-search-controller.js    2014-11-04 18:11:19 +0900 (8db80ad)
@@ -11,6 +11,10 @@ angular.module('groongaAdminApp')
   .controller('TableSearchController', function ($scope, $routeParams, $location, $http) {
     var client = new GroongaClient($http);
 
+    function computeCurrentPage(offset) {
+      return Math.ceil((parseInt(offset) + 1) / $scope.nRecordsInPage);
+    }
+
     function initialize() {
       $scope.table = $routeParams.table;
       $scope.style = 'table';
@@ -23,7 +27,10 @@ angular.module('groongaAdminApp')
       $scope.message = '';
       $scope.elapsedTimeInMilliseconds = 0;
       $scope.nTotalRecords = 0;
+      $scope.nRecordsInPage = 10;
+      $scope.maxNPages = 10;
       $scope.parameters = angular.copy($location.search());
+      $scope.currentPage = computeCurrentPage($scope.parameters.offset || 0);
 
       $scope.search = search;
       $scope.clear  = clear;
@@ -41,14 +48,11 @@ angular.module('groongaAdminApp')
     }
 
     function search() {
-      var matchColumns = packInUseColumns($scope.indexedColumns);
-      var outputColumns = packInUseColumns($scope.outputColumns);
-      var parameters = angular.extend({},
-                                      $scope.parameters,
-                                      {
-                                        'match_columns':  matchColumns,
-                                        'output_columns': outputColumns
-                                      });
+      var parameters = angular.copy($scope.parameters);
+      parameters.match_columns = packInUseColumns($scope.indexedColumns);
+      parameters.output_columns = packInUseColumns($scope.outputColumns);
+      parameters.offset = ($scope.currentPage - 1) * $scope.nRecordsInPage;
+      parameters.limit = $scope.nRecordsInPage;
       $location.search(parameters);
     }
 

  Modified: app/scripts/groonga-client.js (+1 -1)
===================================================================
--- app/scripts/groonga-client.js    2014-11-04 15:12:20 +0900 (124abb9)
+++ app/scripts/groonga-client.js    2014-11-04 18:11:19 +0900 (1633019)
@@ -43,7 +43,7 @@
 
   GroongaClient.Request.prototype.commandLine = function() {
     function escapeCommandValue(value) {
-      return value.replace(/(["\\])/g, function(match) {
+      return value.toString().replace(/(["\\])/g, function(match) {
         return '\\' + match[1];
       });
     }

  Modified: app/views/tables/search.html (+16 -0)
===================================================================
--- app/views/tables/search.html    2014-11-04 15:12:20 +0900 (13ef2ba)
+++ app/views/tables/search.html    2014-11-04 18:11:19 +0900 (df19bdc)
@@ -41,6 +41,14 @@
     <span id="elapsed-time">({{elapsedTimeInMilliseconds | number : 3}}ms)</span>
   </p>
 
+  <pagination total-items="nTotalRecords"
+              items-per-page="nRecordsInPage"
+              max-size="maxNPages"
+              rotate="false"
+              ng-model="currentPage"
+              ng-change="search()">
+  </pagination>
+
   <ul class="nav nav-tabs" role="tablist">
     <li role="tab" data-toggle="tab" class="active">
       <a ng-click="style = 'table'">Table</a>
@@ -90,4 +98,12 @@
   </div>
 
   <pre ng-show="style == 'json'">{{rawData | json}}</pre>
+
+  <pagination total-items="nTotalRecords"
+              items-per-page="nRecordsInPage"
+              max-size="maxNPages"
+              rotate="false"
+              ng-model="currentPage"
+              ng-change="search()">
+  </pagination>
 </div>

  Modified: bower.json (+2 -1)
===================================================================
--- bower.json    2014-11-04 15:12:20 +0900 (5946193)
+++ bower.json    2014-11-04 18:11:19 +0900 (787d935)
@@ -11,7 +11,8 @@
     "angular-sanitize": "~1.2.0",
     "angular-animate": "~1.2.0",
     "angular-touch": "~1.2.0",
-    "angular-route": "~1.2.0"
+    "angular-route": "~1.2.0",
+    "angular-ui-bootstrap-bower": "~0.11.0"
   },
   "devDependencies": {
     "angular-mocks": "~1.2.0",
-------------- next part --------------
HTML����������������������������...
下載 



More information about the Groonga-commit mailing list
Back to archive index