mirror of https://github.com/portainer/portainer
commit
e94a725a8a
|
@ -611,7 +611,7 @@ type (
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// APIVersion is the version number of the Portainer API.
|
// APIVersion is the version number of the Portainer API.
|
||||||
APIVersion = "1.19.0"
|
APIVersion = "1.19.1"
|
||||||
// DBVersion is the version number of the Portainer database.
|
// DBVersion is the version number of the Portainer database.
|
||||||
DBVersion = 13
|
DBVersion = 13
|
||||||
// PortainerAgentHeader represents the name of the header available in any agent response
|
// PortainerAgentHeader represents the name of the header available in any agent response
|
||||||
|
|
|
@ -54,7 +54,7 @@ info:
|
||||||
|
|
||||||
**NOTE**: You can find more information on how to query the Docker API in the [Docker official documentation](https://docs.docker.com/engine/api/v1.30/) as well as in [this Portainer example](https://gist.github.com/deviantony/77026d402366b4b43fa5918d41bc42f8).
|
**NOTE**: You can find more information on how to query the Docker API in the [Docker official documentation](https://docs.docker.com/engine/api/v1.30/) as well as in [this Portainer example](https://gist.github.com/deviantony/77026d402366b4b43fa5918d41bc42f8).
|
||||||
|
|
||||||
version: "1.19.0"
|
version: "1.19.1"
|
||||||
title: "Portainer API"
|
title: "Portainer API"
|
||||||
contact:
|
contact:
|
||||||
email: "info@portainer.io"
|
email: "info@portainer.io"
|
||||||
|
@ -2816,7 +2816,7 @@ definitions:
|
||||||
description: "Is analytics enabled"
|
description: "Is analytics enabled"
|
||||||
Version:
|
Version:
|
||||||
type: "string"
|
type: "string"
|
||||||
example: "1.19.0"
|
example: "1.19.1"
|
||||||
description: "Portainer API version"
|
description: "Portainer API version"
|
||||||
PublicSettingsInspectResponse:
|
PublicSettingsInspectResponse:
|
||||||
type: "object"
|
type: "object"
|
||||||
|
|
|
@ -15,7 +15,7 @@ function ($scope, $state, $transition$, $sanitize, Authentication, UserService,
|
||||||
|
|
||||||
function unauthenticatedFlow() {
|
function unauthenticatedFlow() {
|
||||||
EndpointService.endpoints()
|
EndpointService.endpoints()
|
||||||
.then(function success(data) {
|
.then(function success(endpoints) {
|
||||||
if (endpoints.length === 0) {
|
if (endpoints.length === 0) {
|
||||||
$state.go('portainer.init.endpoint');
|
$state.go('portainer.init.endpoint');
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
title-text="Endpoints" title-icon="fa-plug"
|
title-text="Endpoints" title-icon="fa-plug"
|
||||||
endpoints="endpoints"
|
endpoints="endpoints"
|
||||||
dashboard-action="goToDashboard"
|
dashboard-action="goToDashboard"
|
||||||
show-snapshot-action="isAdmin"
|
show-snapshot-action="!applicationState.application.authentication || isAdmin"
|
||||||
snapshot-action="triggerSnapshot"
|
snapshot-action="triggerSnapshot"
|
||||||
></endpoint-list>
|
></endpoint-list>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -16,17 +16,20 @@ function ($q, $scope, StateManager, Notifications, Authentication, UserService)
|
||||||
$scope.uiVersion = StateManager.getState().application.version;
|
$scope.uiVersion = StateManager.getState().application.version;
|
||||||
$scope.logo = StateManager.getState().application.logo;
|
$scope.logo = StateManager.getState().application.logo;
|
||||||
|
|
||||||
var userDetails = Authentication.getUserDetails();
|
var authenticationEnabled = $scope.applicationState.application.authentication;
|
||||||
var isAdmin = userDetails.role === 1;
|
if (authenticationEnabled) {
|
||||||
$scope.isAdmin = isAdmin;
|
var userDetails = Authentication.getUserDetails();
|
||||||
|
var isAdmin = userDetails.role === 1;
|
||||||
|
$scope.isAdmin = isAdmin;
|
||||||
|
|
||||||
$q.when(!isAdmin ? UserService.userMemberships(userDetails.ID) : [])
|
$q.when(!isAdmin ? UserService.userMemberships(userDetails.ID) : [])
|
||||||
.then(function success(data) {
|
.then(function success(data) {
|
||||||
checkPermissions(data);
|
checkPermissions(data);
|
||||||
})
|
})
|
||||||
.catch(function error(err) {
|
.catch(function error(err) {
|
||||||
Notifications.error('Failure', err, 'Unable to retrieve user memberships');
|
Notifications.error('Failure', err, 'Unable to retrieve user memberships');
|
||||||
});
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initView();
|
initView();
|
||||||
|
|
2
build.sh
2
build.sh
|
@ -14,7 +14,7 @@ function build_and_push_images() {
|
||||||
function build_archive() {
|
function build_archive() {
|
||||||
BUILD_FOLDER="${ARCHIVE_BUILD_FOLDER}/$1"
|
BUILD_FOLDER="${ARCHIVE_BUILD_FOLDER}/$1"
|
||||||
rm -rf ${BUILD_FOLDER} && mkdir -pv ${BUILD_FOLDER}/portainer
|
rm -rf ${BUILD_FOLDER} && mkdir -pv ${BUILD_FOLDER}/portainer
|
||||||
mv dist/* ${BUILD_FOLDER}/portainer/
|
cp -r dist/* ${BUILD_FOLDER}/portainer/
|
||||||
cd ${BUILD_FOLDER}
|
cd ${BUILD_FOLDER}
|
||||||
tar cvpfz "portainer-${VERSION}-$1.tar.gz" portainer
|
tar cvpfz "portainer-${VERSION}-$1.tar.gz" portainer
|
||||||
mv "portainer-${VERSION}-$1.tar.gz" ${ARCHIVE_BUILD_FOLDER}/
|
mv "portainer-${VERSION}-$1.tar.gz" ${ARCHIVE_BUILD_FOLDER}/
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Name: portainer
|
Name: portainer
|
||||||
Version: 1.19.0
|
Version: 1.19.1
|
||||||
Release: 0
|
Release: 0
|
||||||
License: Zlib
|
License: Zlib
|
||||||
Summary: A lightweight docker management UI
|
Summary: A lightweight docker management UI
|
||||||
|
|
15
gruntfile.js
15
gruntfile.js
|
@ -31,7 +31,6 @@ module.exports = function (grunt) {
|
||||||
'clean:all',
|
'clean:all',
|
||||||
'before-copy',
|
'before-copy',
|
||||||
'copy:assets',
|
'copy:assets',
|
||||||
'copy:templates',
|
|
||||||
'after-copy'
|
'after-copy'
|
||||||
]);
|
]);
|
||||||
grunt.registerTask('build', [
|
grunt.registerTask('build', [
|
||||||
|
@ -82,6 +81,7 @@ module.exports = function (grunt) {
|
||||||
root: 'dist',
|
root: 'dist',
|
||||||
distdir: 'dist/public',
|
distdir: 'dist/public',
|
||||||
shippedDockerVersion: '18.03.1-ce',
|
shippedDockerVersion: '18.03.1-ce',
|
||||||
|
shippedDockerVersionWindows: '17.09.0-ce',
|
||||||
pkg: grunt.file.readJSON('package.json'),
|
pkg: grunt.file.readJSON('package.json'),
|
||||||
config: gruntfile_cfg.config,
|
config: gruntfile_cfg.config,
|
||||||
src: gruntfile_cfg.src,
|
src: gruntfile_cfg.src,
|
||||||
|
@ -122,7 +122,7 @@ gruntfile_cfg.src = {
|
||||||
};
|
};
|
||||||
|
|
||||||
gruntfile_cfg.clean = {
|
gruntfile_cfg.clean = {
|
||||||
all: ['<%= distdir %>/../*'],
|
all: ['<%= root %>/*'],
|
||||||
app: ['<%= distdir %>/*', '!<%= distdir %>/../portainer*', '!<%= distdir %>/../docker*'],
|
app: ['<%= distdir %>/*', '!<%= distdir %>/../portainer*', '!<%= distdir %>/../docker*'],
|
||||||
tmpl: ['<%= distdir %>/templates'],
|
tmpl: ['<%= distdir %>/templates'],
|
||||||
tmp: ['<%= distdir %>/js/*', '!<%= distdir %>/js/app.*.js', '<%= distdir %>/css/*', '!<%= distdir %>/css/app.*.css']
|
tmp: ['<%= distdir %>/js/*', '!<%= distdir %>/js/app.*.js', '<%= distdir %>/css/*', '!<%= distdir %>/css/app.*.css']
|
||||||
|
@ -163,12 +163,8 @@ gruntfile_cfg.copy = {
|
||||||
{dest: '<%= distdir %>/fonts/', src: '*.{ttf,woff,woff2,eof,eot,svg}', expand: true, cwd: 'node_modules/@fortawesome/fontawesome-free-webfonts/webfonts/'},
|
{dest: '<%= distdir %>/fonts/', src: '*.{ttf,woff,woff2,eof,eot,svg}', expand: true, cwd: 'node_modules/@fortawesome/fontawesome-free-webfonts/webfonts/'},
|
||||||
{dest: '<%= distdir %>/fonts/', src: '*.{ttf,woff,woff2,eof,svg}', expand: true, cwd: 'node_modules/rdash-ui/dist/fonts/'},
|
{dest: '<%= distdir %>/fonts/', src: '*.{ttf,woff,woff2,eof,svg}', expand: true, cwd: 'node_modules/rdash-ui/dist/fonts/'},
|
||||||
{dest: '<%= distdir %>/images/', src: '**', expand: true, cwd: 'assets/images/'},
|
{dest: '<%= distdir %>/images/', src: '**', expand: true, cwd: 'assets/images/'},
|
||||||
{dest: '<%= distdir %>/ico', src: '**', expand: true, cwd: 'assets/ico'}
|
{dest: '<%= distdir %>/ico', src: '**', expand: true, cwd: 'assets/ico'},
|
||||||
]
|
{dest: '<%= root %>/', src: 'templates.json', cwd: ''}
|
||||||
},
|
|
||||||
templates: {
|
|
||||||
files: [
|
|
||||||
{ dest: '<%= root %>/', src: 'templates.json', cwd: '' }
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -285,11 +281,12 @@ function shell_downloadDockerBinary(p, a) {
|
||||||
var as = { 'amd64': 'x86_64', 'arm': 'armhf', 'arm64': 'aarch64' };
|
var as = { 'amd64': 'x86_64', 'arm': 'armhf', 'arm64': 'aarch64' };
|
||||||
var ip = ((ps[p] === undefined) ? p : ps[p]);
|
var ip = ((ps[p] === undefined) ? p : ps[p]);
|
||||||
var ia = ((as[a] === undefined) ? a : as[a]);
|
var ia = ((as[a] === undefined) ? a : as[a]);
|
||||||
|
var binaryVersion = (( p === 'win' ? '<%= shippedDockerVersionWindows %>' : '<%= shippedDockerVersion %>' ));
|
||||||
return [
|
return [
|
||||||
'if [ -f '+(( p === 'win' ) ? 'dist/docker.exe' : 'dist/docker')+' ]; then',
|
'if [ -f '+(( p === 'win' ) ? 'dist/docker.exe' : 'dist/docker')+' ]; then',
|
||||||
'echo "Docker binary exists";',
|
'echo "Docker binary exists";',
|
||||||
'else',
|
'else',
|
||||||
'build/download_docker_binary.sh ' + ip + ' ' + ia + ' <%= shippedDockerVersion %>;',
|
'build/download_docker_binary.sh ' + ip + ' ' + ia + ' ' + binaryVersion + ';',
|
||||||
'fi'
|
'fi'
|
||||||
].join(' ');
|
].join(' ');
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"author": "Portainer.io",
|
"author": "Portainer.io",
|
||||||
"name": "portainer",
|
"name": "portainer",
|
||||||
"homepage": "http://portainer.io",
|
"homepage": "http://portainer.io",
|
||||||
"version": "1.19.0",
|
"version": "1.19.1",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git@github.com:portainer/portainer.git"
|
"url": "git@github.com:portainer/portainer.git"
|
||||||
|
|
Loading…
Reference in New Issue