Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Merge pull request #185 from vrockai/MVP06
Browse files Browse the repository at this point in the history
App pagination + ResolveAll alerts button
  • Loading branch information
mtho11 committed Jun 3, 2015
2 parents 13c4ea6 + 3007d53 commit a6b34da
Show file tree
Hide file tree
Showing 6 changed files with 129 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ <h1>No alerts.</h1>
<p class="pull-right"><strong>{{(mac.alertList | filter:timeFilter).length}} alerts</strong> last week.</p>
</div>
-->

<div class="clearfix">
<div ng-repeat="alert in mac.alertList | filter:timeFilter | orderBy: '-start'">

Expand Down Expand Up @@ -75,8 +74,10 @@ <h1>No alerts.</h1>
</a>
</div>
</div>

</div>


</div>
<div class="clearfix" ng-show="mac.alertList.length > 0">
<button class="btn btn-danger pull-right" ng-click="mac.resolveAll()" ng-disabled="mac.isResolvingAll">
<span class="fa fa-check-square-o" style="color:white"></span>
Resolve all</button>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@ <h1>No application servers set up.</h1>
</tr>
</tbody>
</table>
<div class="dataTables_footer"><div class="dataTables_paginate paging_bootstrap_input" id="DataTables_Table_0_paginate"><ul class="pagination"><li class="first disabled"><span class="i fa fa-angle-double-left"></span></li><li class="prev disabled"><span class="i fa fa-angle-left"></span></li></ul><div class="pagination-input"><input type="text" class="paginate_input"><span class="paginate_of">of <b>1</b></span></div><ul class="pagination"><li class="next disabled"><span class="i fa fa-angle-right"></span></li><li class="last disabled"><span class="i fa fa-angle-double-right"></span></li></ul></div></div>
<div class="dataTables_footer">
<hk-data-pagination resource-list="vm.resourceList" current-page="vm.resCurPage" page-setter="vm.setPage(pageNumber)"
per-page="vm.resPerPage" headers="vm.headerLinks"></hk-data-pagination>
</div>
</div>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<div class="dataTables_paginate paging_bootstrap_input" id="DataTables_Table_0_paginate">
<ul class="pagination">
<li ng-class="{disabled: pagesNumber === 1}" class="first" ng-click="goToFirst()"><span class="i fa fa-angle-double-left"></span></li>
<li ng-class="{disabled: pagesNumber === 1}" class="prev" ng-click="setPage(currentPage - 1)"><span class="i fa fa-angle-left"></span></li>
</ul>
<div class="pagination-input">
<form ng-submit="setPage(currentPageView - 1)">
<input type="text" class="paginate_input" ng-model="currentPageView">
<span class="paginate_of">of <b>{{goTos.length}}</b></span>
</form>
</div>
<ul class="pagination">
<li ng-class="{disabled: pagesNumber === 1}" class="next" ng-click="setPage(currentPage + 1)"><span class="i fa fa-angle-right"></span></li>
<li ng-class="{disabled: pagesNumber === 1}" class="last" ng-click="goToLast()"><span class="i fa fa-angle-double-right"></span></li>
</ul>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ module HawkularMetrics {
private metricId: string;
public alertList: any = [];
public openSetup: any;
public isResolvingAll: boolean = false;

constructor(private $scope:any,
private HawkularAlert:any,
Expand Down Expand Up @@ -90,6 +91,20 @@ module HawkularMetrics {
}
}

public resolveAll(): void {
this.isResolvingAll = true;
var alertIdList = '';
for (var i = 0; i < this.alertList.length; i++) {
alertIdList = alertIdList + this.alertList[i].id + ',';
}
alertIdList = alertIdList.slice(0, - 1);

this.HawkularAlert.Alert.resolve({alertIds: alertIdList}, {}).$promise.then( () => {
this.alertList.length = 0;
this.isResolvingAll = false;
});
}

}

_module.controller('MetricsAlertController', MetricsAlertController);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ module HawkularMetrics {

export class AppServerListController {
/// this is for minification purposes
public static $inject = ['$location', '$scope', '$rootScope', '$interval', '$log', '$filter', '$modal', 'HawkularInventory', 'HawkularMetric', 'HawkularAlert', 'HawkularAlertsManager', 'HawkularErrorManager', '$q', 'md5'];
public static $inject = ['$location', '$scope', '$rootScope', '$interval', '$log', '$filter', '$modal', 'HawkularInventory', 'HawkularMetric', 'HawkularAlert', 'HawkularAlertsManager', 'HawkularErrorManager', '$q', 'md5', 'HkHeaderParser'];

private httpUriPart = 'http://';
public addProgress: boolean = false;
Expand All @@ -32,6 +32,7 @@ module HawkularMetrics {
private resPerPage = 5;
private resCurPage = 0;
private autoRefreshPromise: ng.IPromise<number>;
public headerLinks = {};

constructor(private $location: ng.ILocationService,
private $scope: any,
Expand All @@ -47,6 +48,7 @@ module HawkularMetrics {
private HawkularErrorManager: HawkularMetrics.IHawkularErrorManager,
private $q: ng.IQService,
private md5: any,
private HkHeaderParser: HawkularMetrics.IHkHeaderParser,
public startTimeStamp:TimestampInMillis,
public endTimeStamp:TimestampInMillis,
public resourceUrl: string) {
Expand All @@ -62,7 +64,10 @@ module HawkularMetrics {
this.autoRefresh(20);
}


public setPage(page): void {
this.resCurPage = page;
this.getResourceList();
}

cancelAutoRefresh(): void {
this.$interval.cancel(this.autoRefreshPromise);
Expand All @@ -82,6 +87,7 @@ module HawkularMetrics {
getResourceList(currentTenantId?: TenantId):any {
var tenantId:TenantId = currentTenantId || this.$rootScope.currentPersona.id;
this.HawkularInventory.ResourceOfType.query({tenantId: tenantId, resourceTypeId: 'WildFly Server', per_page: this.resPerPage, page: this.resCurPage}, (aResourceList, getResponseHeaders) => {
this.headerLinks = this.HkHeaderParser.parse(getResponseHeaders());
var promises = [];
angular.forEach(aResourceList, function(res, idx) {
promises.push(this.HawkularMetric.AvailabilityMetricData.query({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,58 @@ module HawkularMetrics {

_module.service('HkHeaderParser', HkHeaderParser);

var paginationController = ($scope: any) => {

$scope.currentPageView = $scope.currentPage + 1;
$scope.pagesNumber = getPagesNumber();

function getPagesNumber() {
return Math.ceil(($scope.headers.total || 1) / $scope.perPage);
}

$scope.setPage = (pageNumber: number) => {
$scope.pagesNumber = getPagesNumber();

if ($scope.pagesNumber === 1) {
$scope.currentPageView = 1;
return;
}

if (pageNumber < 1) {
$scope.pageSetter({pageNumber: 0});
$scope.currentPageView = 1;
} else if (pageNumber >= $scope.pagesNumber) {
$scope.pageSetter({pageNumber: $scope.pagesNumber - 1});
$scope.currentPageView = pageNumber;
} else {
$scope.pageSetter({pageNumber: pageNumber});
}
};

$scope.goToFirst = () => {
$scope.pageSetter({pageNumber: 0});
};

$scope.goToLast = () => {
$scope.pagesNumber = getPagesNumber();
$scope.pageSetter({pageNumber: $scope.pagesNumber - 1});
};

$scope.goTos = [0];

$scope.$watch('currentPage', (recentCurrentPage) => {
$scope.currentPageView = parseInt(recentCurrentPage, 10) + 1;
});

$scope.$watchGroup(['headers', 'perPage'], () => {
$scope.pagesNumber = getPagesNumber();
$scope.goTos = new Array($scope.pagesNumber);
});

};

class HkPagination {
public link: (scope: any, element: ng.IAugmentedJQuery, attrs: ng.IAttributes) => void;
public controller: ($scope: any) => void;
public templateUrl = 'plugins/metrics/html/url-pagination.html';
public scope = {
resourceList: '=',
Expand All @@ -95,33 +145,43 @@ module HawkularMetrics {
};
public replace = 'true';

constructor(/*list of dependencies*/) {
this.link = (scope: any, element: ng.IAugmentedJQuery, attrs: ng.IAttributes) => {
constructor() {
this.controller = paginationController;
}

public static Factory() {
var directive = () => {
return new HkPagination();
};

directive['$inject'] = [];

scope.setPage = function(pageNumber){
var pagesNumber = Math.ceil((scope.headers.total || 1) / scope.perPage);
return directive;
}
}

if (pageNumber < 1) {
scope.pageSetter({pageNumber: 0});
} else if (pageNumber >= pagesNumber) {
scope.pageSetter({pageNumber: pagesNumber - 1});
} else {
scope.pageSetter({pageNumber: pageNumber});
}
};
_module.directive('hkPagination', HkPagination.Factory());

scope.goTos = [0];
scope.$watchGroup(['headers', 'perPage'], () => {
var pagesNumber = Math.ceil((scope.headers.total || 1) / scope.perPage);
scope.goTos = new Array(pagesNumber);
});
class HkDataPagination {
public controller: (scope: ng.IScope) => void;
public templateUrl = 'plugins/metrics/html/data-pagination.html';
public scope = {
resourceList: '=',
currentPage: '=',
linkHeader: '=',
pageSetter: '&',
perPage: '=',
headers: '='
};
public replace = 'true';

};
constructor() {
this.controller = paginationController;
}

public static Factory() {
var directive = () => {
return new HkPagination();
return new HkDataPagination();
};

directive['$inject'] = [];
Expand All @@ -130,5 +190,5 @@ module HawkularMetrics {
}
}

_module.directive('hkPagination', HkPagination.Factory());
_module.directive('hkDataPagination', HkDataPagination.Factory());
}

0 comments on commit a6b34da

Please sign in to comment.