mirror of https://github.com/portainer/portainer
commit
a2a367725b
|
@ -25,16 +25,46 @@
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" ng-model="toggle" ng-change="toggleSelectAll()" /> Action</th>
|
<th><label><input type="checkbox" ng-model="toggle" ng-change="toggleSelectAll()" /> Select</label></th>
|
||||||
<th>Name</th>
|
<th>
|
||||||
<th>Image</th>
|
<a href="#/containers/" ng-click="order('Names')">
|
||||||
<th>Command</th>
|
Name
|
||||||
<th>Created</th>
|
<span ng-show="sortType == 'Names' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
<th>Status</th>
|
<span ng-show="sortType == 'Names' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/containers/" ng-click="order('Image')">
|
||||||
|
Image
|
||||||
|
<span ng-show="sortType == 'Image' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Image' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/containers/" ng-click="order('Command')">
|
||||||
|
Command
|
||||||
|
<span ng-show="sortType == 'Command' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Command' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/containers/" ng-click="order('Created')">
|
||||||
|
Created
|
||||||
|
<span ng-show="sortType == 'Created' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Created' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/containers/" ng-click="order('Status')">
|
||||||
|
Status
|
||||||
|
<span ng-show="sortType == 'Status' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Status' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr ng-repeat="container in containers | filter:filter | orderBy:predicate">
|
<tr ng-repeat="container in containers | filter:filter | orderBy:sortType:sortReverse">
|
||||||
<td><input type="checkbox" ng-model="container.Checked" /></td>
|
<td><input type="checkbox" ng-model="container.Checked" /></td>
|
||||||
<td><a href="#/containers/{{ container.Id }}/">{{ container|containername}}</a></td>
|
<td><a href="#/containers/{{ container.Id }}/">{{ container|containername}}</a></td>
|
||||||
<td><a href="#/images/{{ container.Image }}/">{{ container.Image }}</a></td>
|
<td><a href="#/images/{{ container.Image }}/">{{ container.Image }}</a></td>
|
||||||
|
|
|
@ -1,10 +1,16 @@
|
||||||
angular.module('containers', [])
|
angular.module('containers', [])
|
||||||
.controller('ContainersController', ['$scope', 'Container', 'Settings', 'Messages', 'ViewSpinner',
|
.controller('ContainersController', ['$scope', 'Container', 'Settings', 'Messages', 'ViewSpinner',
|
||||||
function ($scope, Container, Settings, Messages, ViewSpinner) {
|
function ($scope, Container, Settings, Messages, ViewSpinner) {
|
||||||
$scope.predicate = '-Created';
|
$scope.sortType = 'Created';
|
||||||
|
$scope.sortReverse = true;
|
||||||
$scope.toggle = false;
|
$scope.toggle = false;
|
||||||
$scope.displayAll = Settings.displayAll;
|
$scope.displayAll = Settings.displayAll;
|
||||||
|
|
||||||
|
$scope.order = function(sortType) {
|
||||||
|
$scope.sortReverse = ($scope.sortType === sortType) ? !$scope.sortReverse : false;
|
||||||
|
$scope.sortType = sortType;
|
||||||
|
};
|
||||||
|
|
||||||
var update = function (data) {
|
var update = function (data) {
|
||||||
ViewSpinner.spin();
|
ViewSpinner.spin();
|
||||||
Container.query(data, function (d) {
|
Container.query(data, function (d) {
|
||||||
|
|
|
@ -21,15 +21,39 @@
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" ng-model="toggle" ng-change="toggleSelectAll()" /> Action</th>
|
<th><label><input type="checkbox" ng-model="toggle" ng-change="toggleSelectAll()" /> Select</label></th>
|
||||||
<th>Id</th>
|
<th>
|
||||||
<th>Repository</th>
|
<a href="#/images/" ng-click="order('Id')">
|
||||||
<th>VirtualSize</th>
|
Id
|
||||||
<th>Created</th>
|
<span ng-show="sortType == 'Id' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Id' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/images/" ng-click="order('RepoTags')">
|
||||||
|
Repository
|
||||||
|
<span ng-show="sortType == 'RepoTags' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'RepoTags' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/images/" ng-click="order('VirtualSize')">
|
||||||
|
VirtualSize
|
||||||
|
<span ng-show="sortType == 'VirtualSize' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'VirtualSize' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/images/" ng-click="order('Created')">
|
||||||
|
Created
|
||||||
|
<span ng-show="sortType == 'Created' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Created' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr ng-repeat="image in images | filter:filter | orderBy:predicate">
|
<tr ng-repeat="image in images | filter:filter | orderBy:sortType:sortReverse">
|
||||||
<td><input type="checkbox" ng-model="image.Checked" /></td>
|
<td><input type="checkbox" ng-model="image.Checked" /></td>
|
||||||
<td><a href="#/images/{{ image.Id }}/?tag={{ image|repotag }}">{{ image.Id|truncate:20}}</a></td>
|
<td><a href="#/images/{{ image.Id }}/?tag={{ image|repotag }}">{{ image.Id|truncate:20}}</a></td>
|
||||||
<td>{{ image|repotag }}</td>
|
<td>{{ image|repotag }}</td>
|
||||||
|
|
|
@ -1,8 +1,14 @@
|
||||||
angular.module('images', [])
|
angular.module('images', [])
|
||||||
.controller('ImagesController', ['$scope', 'Image', 'ViewSpinner', 'Messages',
|
.controller('ImagesController', ['$scope', 'Image', 'ViewSpinner', 'Messages',
|
||||||
function ($scope, Image, ViewSpinner, Messages) {
|
function ($scope, Image, ViewSpinner, Messages) {
|
||||||
|
$scope.sortType = 'Created';
|
||||||
|
$scope.sortReverse = true;
|
||||||
$scope.toggle = false;
|
$scope.toggle = false;
|
||||||
$scope.predicate = '-Created';
|
|
||||||
|
$scope.order = function(sortType) {
|
||||||
|
$scope.sortReverse = ($scope.sortType === sortType) ? !$scope.sortReverse : false;
|
||||||
|
$scope.sortType = sortType;
|
||||||
|
};
|
||||||
|
|
||||||
$scope.showBuilder = function () {
|
$scope.showBuilder = function () {
|
||||||
$('#build-modal').modal('show');
|
$('#build-modal').modal('show');
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
<li><a tabindex="-1" href="" ng-click="removeAction()">Remove</a></li>
|
<li><a tabindex="-1" href="" ng-click="removeAction()">Remove</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<!--<li><a data-toggle="modal" data-target="#pull-modal" href="">Pull</a></li>-->
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="pull-right form-inline">
|
<div class="pull-right form-inline">
|
||||||
|
@ -20,18 +19,60 @@
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" ng-model="toggle" ng-change="toggleSelectAll()"/> Select</th>
|
<th><label><input type="checkbox" ng-model="toggle" ng-change="toggleSelectAll()"/> Select</label></th>
|
||||||
<th>Name</th>
|
<th>
|
||||||
<th>Id</th>
|
<a href="#/networks/" ng-click="order('Name')">
|
||||||
<th>Scope</th>
|
Name
|
||||||
<th>Driver</th>
|
<span ng-show="sortType == 'Name' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
<th>IPAM Driver</th>
|
<span ng-show="sortType == 'Name' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
<th>IPAM Subnet</th>
|
</a>
|
||||||
<th>IPAM Gateway</th>
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/networks/" ng-click="order('Id')">
|
||||||
|
Id
|
||||||
|
<span ng-show="sortType == 'Id' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Id' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/networks/" ng-click="order('Scope')">
|
||||||
|
Scope
|
||||||
|
<span ng-show="sortType == 'Scope' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Scope' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/networks/" ng-click="order('Driver')">
|
||||||
|
Driver
|
||||||
|
<span ng-show="sortType == 'Driver' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Driver' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/networks/" ng-click="order('IPAM.Driver')">
|
||||||
|
IPAM Driver
|
||||||
|
<span ng-show="sortType == 'IPAM.Driver' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'IPAM.Driver' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/networks/" ng-click="order('IPAM.Config[0].Subnet')">
|
||||||
|
IPAM Subnet
|
||||||
|
<span ng-show="sortType == 'IPAM.Config[0].Subnet' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'IPAM.Config[0].Subnet' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/networks/" ng-click="order('IPAM.Config[0].Gateway')">
|
||||||
|
IPAM Gateway
|
||||||
|
<span ng-show="sortType == 'IPAM.Config[0].Gateway' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'IPAM.Config[0].Gateway' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr ng-repeat="network in networks | filter:filter | orderBy:predicate">
|
<tr ng-repeat="network in networks | filter:filter | orderBy:sortType:sortReverse">
|
||||||
<td><input type="checkbox" ng-model="network.Checked"/></td>
|
<td><input type="checkbox" ng-model="network.Checked"/></td>
|
||||||
<td><a href="#/networks/{{ network.Id }}/">{{ network.Name|truncate:20}}</a></td>
|
<td><a href="#/networks/{{ network.Id }}/">{{ network.Name|truncate:20}}</a></td>
|
||||||
<td>{{ network.Id }}</td>
|
<td>{{ network.Id }}</td>
|
||||||
|
|
|
@ -1,12 +1,17 @@
|
||||||
angular.module('networks', []).config(['$routeProvider', function ($routeProvider) {
|
angular.module('networks', []).config(['$routeProvider', function ($routeProvider) {
|
||||||
$routeProvider.when('/networks', {
|
$routeProvider.when('/networks/', {
|
||||||
templateUrl: 'app/components/networks/networks.html',
|
templateUrl: 'app/components/networks/networks.html',
|
||||||
controller: 'NetworksController'
|
controller: 'NetworksController'
|
||||||
});
|
});
|
||||||
}]).controller('NetworksController', ['$scope', 'Network', 'ViewSpinner', 'Messages', '$route', 'errorMsgFilter',
|
}]).controller('NetworksController', ['$scope', 'Network', 'ViewSpinner', 'Messages', '$route', 'errorMsgFilter',
|
||||||
function ($scope, Network, ViewSpinner, Messages, $route, errorMsgFilter) {
|
function ($scope, Network, ViewSpinner, Messages, $route, errorMsgFilter) {
|
||||||
|
$scope.sortType = 'Name';
|
||||||
|
$scope.sortReverse = true;
|
||||||
$scope.toggle = false;
|
$scope.toggle = false;
|
||||||
$scope.predicate = '-Created';
|
$scope.order = function(sortType) {
|
||||||
|
$scope.sortReverse = ($scope.sortType === sortType) ? !$scope.sortReverse : false;
|
||||||
|
$scope.sortType = sortType;
|
||||||
|
};
|
||||||
$scope.createNetworkConfig = {
|
$scope.createNetworkConfig = {
|
||||||
"Name": '',
|
"Name": '',
|
||||||
"Driver": '',
|
"Driver": '',
|
||||||
|
|
|
@ -19,14 +19,32 @@
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" ng-model="toggle" ng-change="toggleSelectAll()"/> Select</th>
|
<th><label><input type="checkbox" ng-model="toggle" ng-change="toggleSelectAll()"/> Select</label></th>
|
||||||
<th>Name</th>
|
<th>
|
||||||
<th>Driver</th>
|
<a href="#/volumes/" ng-click="order('Name')">
|
||||||
<th>Mountpoint</th>
|
Name
|
||||||
|
<span ng-show="sortType == 'Name' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Name' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/volumes/" ng-click="order('Driver')">
|
||||||
|
Driver
|
||||||
|
<span ng-show="sortType == 'Driver' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Driver' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<a href="#/volumes/" ng-click="order('Mountpoint')">
|
||||||
|
Mountpoint
|
||||||
|
<span ng-show="sortType == 'Mountpoint' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
|
||||||
|
<span ng-show="sortType == 'Mountpoint' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
</a>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr ng-repeat="volume in volumes | filter:filter | orderBy:predicate">
|
<tr ng-repeat="volume in volumes | filter:filter | orderBy:sortType:sortReverse">
|
||||||
<td><input type="checkbox" ng-model="volume.Checked"/></td>
|
<td><input type="checkbox" ng-model="volume.Checked"/></td>
|
||||||
<td>{{ volume.Name|truncate:20 }}</td>
|
<td>{{ volume.Name|truncate:20 }}</td>
|
||||||
<td>{{ volume.Driver }}</td>
|
<td>{{ volume.Driver }}</td>
|
||||||
|
|
|
@ -1,12 +1,17 @@
|
||||||
angular.module('volumes', []).config(['$routeProvider', function ($routeProvider) {
|
angular.module('volumes', []).config(['$routeProvider', function ($routeProvider) {
|
||||||
$routeProvider.when('/volumes', {
|
$routeProvider.when('/volumes/', {
|
||||||
templateUrl: 'app/components/volumes/volumes.html',
|
templateUrl: 'app/components/volumes/volumes.html',
|
||||||
controller: 'VolumesController'
|
controller: 'VolumesController'
|
||||||
});
|
});
|
||||||
}]).controller('VolumesController', ['$scope', 'Volume', 'ViewSpinner', 'Messages', '$route', 'errorMsgFilter',
|
}]).controller('VolumesController', ['$scope', 'Volume', 'ViewSpinner', 'Messages', '$route', 'errorMsgFilter',
|
||||||
function ($scope, Volume, ViewSpinner, Messages, $route, errorMsgFilter) {
|
function ($scope, Volume, ViewSpinner, Messages, $route, errorMsgFilter) {
|
||||||
|
$scope.sortType = 'Name';
|
||||||
|
$scope.sortReverse = true;
|
||||||
$scope.toggle = false;
|
$scope.toggle = false;
|
||||||
$scope.predicate = '-Created';
|
$scope.order = function(sortType) {
|
||||||
|
$scope.sortReverse = ($scope.sortType === sortType) ? !$scope.sortReverse : false;
|
||||||
|
$scope.sortType = sortType;
|
||||||
|
};
|
||||||
$scope.createVolumeConfig = {
|
$scope.createVolumeConfig = {
|
||||||
"Name": "",
|
"Name": "",
|
||||||
"Driver": ""
|
"Driver": ""
|
||||||
|
|
|
@ -24,13 +24,13 @@ module.exports = function (grunt) {
|
||||||
'copy'
|
'copy'
|
||||||
]);
|
]);
|
||||||
grunt.registerTask('release', [
|
grunt.registerTask('release', [
|
||||||
'clean:all',
|
'clean:app',
|
||||||
'if:binaryNotExist',
|
'if:binaryNotExist',
|
||||||
'html2js',
|
'html2js',
|
||||||
'uglify',
|
'uglify',
|
||||||
'clean:tmpl',
|
'clean:tmpl',
|
||||||
'jshint',
|
//'jshint',
|
||||||
'karma:unit',
|
//'karma:unit',
|
||||||
'concat:index',
|
'concat:index',
|
||||||
'recess:min',
|
'recess:min',
|
||||||
'copy'
|
'copy'
|
||||||
|
|
Loading…
Reference in New Issue