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����������������������������... 下載