Viewing File: /usr/local/cpanel/whostmgr/docroot/templates/autossl/views/PendingQueueController.js
/* global define: false */
define(
[
"angular",
"cjt/util/locale",
"lodash",
"uiBootstrap",
"cjt/directives/toggleSortDirective",
"cjt/directives/searchDirective",
"cjt/directives/pageSizeDirective",
"cjt/directives/toggleSwitchDirective",
"cjt/directives/actionButtonDirective",
"cjt/filters/startFromFilter",
"cjt/decorators/paginationDecorator",
"ngSanitize"
],
function(angular, LOCALE, _) {
// Retrieve the current application
var app = angular.module("App");
// Setup the controller
var controller = app.controller(
"PendingQueueController", [
"$scope", "$filter", "manageService", "pending_queue_items",
function($scope, $filter, manageService, pending_queue_items) {
$scope.pending_queue_items = pending_queue_items;
$scope.items = $scope.pending_queue_items;
$scope.filteredList = [];
$scope.showPager = true;
$scope.all_rows_selected = false;
$scope.loading_queue = false;
$scope.meta = {
// sort settings
sortReverse: false,
sortBy: "request_time",
sortDirection: "dsc",
// pager settings
maxPages: 0,
totalItems: $scope.items.length,
currentPage: 1,
pageSize: 20,
pageSizes: [20, 50, 100, 500],
start: 0,
limit: 20,
filterValue: "",
};
$scope.showing_text = function() {
var first_item = ($scope.meta.currentPage - 1) * $scope.meta.pageSize;
first_item += 1;
var last_item = $scope.meta.currentPage * $scope.meta.pageSize;
last_item = Math.min(last_item, $scope.items.length);
return LOCALE.maketext("[output,strong,Showing] [numf,_1] - [numf,_2] of [quant,_3,item,items]", first_item, last_item, $scope.items.length);
};
$scope.get_request_time = function(item) {
var d = new Date(item.request_time);
// datetime() always kicks out UTC.
// We could use local_datetime(), but
// that would break compatibility with
// Perl’s Locale, which doesn’t have
// local_datetime(). So, instead we
// “trick” datetime() by feeding it
// an offset epoch seconds count.
var compensated_time = d.getTime();
compensated_time -= 60 * 1000 * d.getTimezoneOffset();
compensated_time /= 1000;
return LOCALE.maketext("[datetime,_1,datetime_format_medium]", compensated_time);
};
$scope.get_autossl_pending_queue = function() {
return manageService.get_autossl_pending_queue().then(function(pending_queue_items) {
$scope.pending_queue_items = pending_queue_items;
$scope.items = $scope.pending_queue_items;
$scope.fetch();
});
};
$scope.fetch = function() {
var filteredList = [];
// filter list based on search text
if ($scope.meta.filterValue !== "") {
filteredList = $filter("filter")($scope.items, $scope.meta.filterValue, false);
} else {
filteredList = $scope.items;
}
// sort the filtered list
if ($scope.meta.sortDirection !== "" && $scope.meta.sortBy !== "") {
filteredList = $filter("orderBy")(filteredList, $scope.meta.sortBy, $scope.meta.sortDirection === "asc" ? false : true);
}
// update the total items after search
$scope.meta.totalItems = filteredList.length;
// filter list based on page size and pagination
if ($scope.meta.totalItems > _.min($scope.meta.pageSizes)) {
var start = ($scope.meta.currentPage - 1) * $scope.meta.pageSize;
var limit = $scope.meta.pageSize;
filteredList = $filter("limitTo")($filter("startFrom")(filteredList, start), limit);
$scope.showPager = true;
// table statistics
$scope.meta.start = start + 1;
$scope.meta.limit = start + filteredList.length;
} else {
// hide pager and pagination
$scope.showPager = false;
if (filteredList.length === 0) {
$scope.meta.start = 0;
} else {
// table statistics
$scope.meta.start = 1;
}
$scope.meta.limit = filteredList.length;
}
var countNonSelected = $filter("filter")(filteredList, function(item) {
if (item.rowSelected) {
return false;
}
return true;
}).length;
$scope.filteredList = filteredList;
// Clear the 'Select All' checkbox if at least one row is not selected.
$scope.all_rows_selected = (filteredList.length > 0) && (countNonSelected === 0);
return filteredList;
};
$scope.fetch();
}
]
);
return controller;
}
);
Back to Directory
File Manager