Skip to content

Server pagination #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jul 4, 2016
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Order server pagination
  • Loading branch information
skozlov committed Jun 9, 2016
commit d7c3bf891f53324c822dddd5c2e9bccaf368d303
11 changes: 5 additions & 6 deletions demo/bootstrap/js/serverPaginationApp.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,24 @@

$scope.gridOptions = {
data: [],
getData: myAppFactory.getUsersData,
getData: myAppFactory.getOrdersData,
sort: {
predicate: 'name',
direction: 'asc'
}
};
$scope.gridActions = {};

}

function MyAppFactory($http) {
var herokuDomain = 'https://server-pagination.herokuapp.com';
return {
getUsersData: getUsersData
getOrdersData: getOrdersData
};

function getUsersData(params, callback) {
$http.get(herokuDomain + '/users' + params).success(function (response) {
callback(response.users, response.usersCount);
function getOrdersData(params, callback) {
$http.get(herokuDomain + '/orders' + params).success(function (response) {
callback(response.orders, response.ordersCount);
});
}
}
Expand Down
175 changes: 142 additions & 33 deletions demo/bootstrap/server-pagination.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,69 +19,178 @@
vertical-align: top;
}
</style>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"><!-- load bootstrap -->
<link rel="icon" href="https://angularjs.org/favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<link rel="stylesheet" href="css/angular-data-grid.bootstrap.css">
</head>
<body ng-controller="myAppController">
<div class="container">
<hr>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label">Filter by Name</label>
<input type="text" class="form-control order-search-box"
placeholder="Search By name"
ng-change="gridActions.filter()"
ng-model="name"
filter-by="name"
filter-type="text">
<div>
<div class="col-md-4">
<div class="form-group">
<label for="orderIdFilter">Search by Order #</label>
<input id="orderIdFilter" type="text" class="form-control order-search-box"
placeholder="Enter Order #"
ng-change="gridActions.filter()"
ng-model="orderNo"
filter-by="orderNo"
filter-type="text">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="dateFromFilter">Date From</label>

<div class="input-group">
<input type="text"
id="dateFromFilter"
class="form-control"
uib-datepicker-popup="dd/MM/yyyy"
placeholder="DD/MM/YYYY"
max-date="dateTo"
close-text="Close"
ng-model="dateFrom"
show-weeks="true"
is-open="dateFromOpened"
ng-click="dateFromOpened = true"
filter-by="placed"
filter-type="dateFrom"
ng-blur="gridActions.filter()"
ng-focus="gridActions.filter()"
show-weeks="false"
close-text="Close"/>
<span class="input-group-btn">
<label for="dateFromFilter" class="btn btn-default">
<i class="fa fa-calendar"></i></label>
</span>
</div>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="dateToInput">Date To</label>

<div class="input-group">
<input type="text"
id="dateToInput"
class="form-control"
uib-datepicker-popup="dd/MM/yyyy"
placeholder="DD/MM/YYYY"
min-date="dateFrom"
close-text="Close"
ng-model="dateTo"
show-weeks="true"
is-open="dateToOpened"
ng-click="dateToOpened = true"
filter-by="placed"
filter-type="dateTo"
ng-blur="gridActions.filter()"
ng-focus="gridActions.filter()"
show-weeks="false"
close-text="Close">
<span class="input-group-btn">
<label for="dateToInput" class="btn btn-default">
<i class="fa fa-calendar"></i></label>
</span>
</div>
</div>
<div ng-show="dateTo || dateFrom" class="buttons-right">
<a href="" ng-click="dateTo = ''; dateFrom = ''; gridActions.refresh();">Clear Dates</a>
</div>
</div>
</div>
</div>


<div grid-data grid-options="gridOptions" grid-actions="gridActions" server-pagination="true">
<div class="row">
<div class="col-md-3"><span class="items">{{paginationOptions.totalItems}} items total</span></div>
<div class="col-md-9 text-right">
<form class="form-inline margin-bottom-basic">
<div class="form-group">
<div grid-pagination boundary-links="true"
ng-if="paginationOptions.totalItems > paginationOptions.itemsPerPage"
total-items="paginationOptions.totalItems"
ng-model="paginationOptions.currentPage"
ng-change="reloadGrid()"
class="pagination-sm"
items-per-page="paginationOptions.itemsPerPage">
</div>
</div>
<div class="form-group items-per-page">
<label for="itemsOnPageSelect1">Items per page:</label>
<select id="itemsOnPageSelect1" class="form-control input-sm" ng-init="paginationOptions.itemsPerPage = '10'" ng-model="paginationOptions.itemsPerPage"
ng-change="reloadGrid()">
<option>5</option>
<option>10</option>
<option>50</option>
<option>75</option>
</select>
</div>
</form>
</div>
</div>

<table class="table table-bordered">
<thead>
<tr>
<th sortable="name" class="sortable">Name</th>
<th sortable="surname" class="sortable">Surname</th>
<th sortable="orderNo" class="sortable">Order #</th>
<th sortable="datePlaced" class="sortable">Date Placed</th>
<th sortable="status" class="sortable">Statuses</th>
<th sortable="amount" class="sortable">Total</th>
</tr>
</thead>
<tbody>
<tr grid-item>
<td>{{item.name}}</td>
<td>{{item.surname}}</td>
<td>{{item.orderNo}}</td>
<td>{{item.datePlaced | date:'MM/dd/yyyy'}}</td>
<td>{{item.status}}</td>
<td>{{item.total}}</td>
</tr>
</tbody>
</table>
<div grid-pagination max-size="5" boundary-links="true"
ng-if="paginationOptions.totalItems > paginationOptions.itemsPerPage"
total-items="paginationOptions.totalItems"
ng-model="paginationOptions.currentPage"
ng-change="reloadGrid()"
items-per-page="paginationOptions.itemsPerPage">
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group items-per-page">
<label for="itemsOnPageSelect1">Items per page:</label>
<select id="itemsOnPageSelect1" class="form-control input-sm" ng-init="paginationOptions.itemsPerPage = '10'" ng-model="paginationOptions.itemsPerPage" ng-change="reloadGrid()">
<option>5</option>
<option>10</option>
<option>50</option>
<option>75</option>
</select>
</div>
<div class="col-md-3"><span class="items">{{paginationOptions.totalItems}} items total</span></div>
<div class="col-md-9 text-right">
<form class="form-inline margin-bottom-basic">
<div class="form-group">
<div grid-pagination boundary-links="true"
ng-if="paginationOptions.totalItems > paginationOptions.itemsPerPage"
total-items="paginationOptions.totalItems"
ng-model="paginationOptions.currentPage"
ng-change="reloadGrid()"
class="pagination-sm"
items-per-page="paginationOptions.itemsPerPage">
</div>
</div>
<div class="form-group items-per-page">
<label for="itemsOnPageSelect">Items per page:</label>
<select id="itemsOnPageSelect" class="form-control input-sm" ng-init="paginationOptions.itemsPerPage = '10'" ng-model="paginationOptions.itemsPerPage"
ng-change="reloadGrid()">
<option>5</option>
<option>10</option>
<option>50</option>
<option>75</option>
</select>
</div>
</form>
</div>
</div>
</div>
</div>

</body>

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script><!-- load jquery -->
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script><!-- load angular -->
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.14.3.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.14.3.js"></script>

<script src="../../dist/pagination.js"></script>
<script src="../../dist/dataGrid.js"></script>
<script src="js/serverPaginationApp.js"></script>
Expand Down