mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-12-22 16:36:30 +00:00
Starting imlemeting sharing and new google icons
This commit is contained in:
parent
ccfd75196b
commit
78a30c8d59
30 changed files with 421 additions and 517 deletions
|
@ -3,24 +3,25 @@
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
<base href="/"/>
|
<base href="/"/>
|
||||||
<link href='//fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700' rel='stylesheet' type='text/css'>
|
<link href='//fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700' rel='stylesheet' type='text/css'>
|
||||||
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,600,300' rel='stylesheet' type='text/css'>
|
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,600,300' rel='stylesheet' type='text/css'>
|
||||||
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'>
|
<link href='//fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'>
|
||||||
<link href='//cdn.rawgit.com/zavoloklom/material-design-iconic-font/master/css/material-design-iconic-font.min.css' rel='stylesheet' type='text/css'>
|
<link href='//fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet' type='text/css'>
|
||||||
<link href='//cdnjs.cloudflare.com/ajax/libs/octicons/2.1.2/octicons.min.css' rel='stylesheet' type='text/css'>
|
<link href='//cdnjs.cloudflare.com/ajax/libs/octicons/2.1.2/octicons.min.css' rel='stylesheet' type='text/css'>
|
||||||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Droid+Sans+Mono" />
|
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Droid+Sans+Mono" />
|
||||||
<link href='/static/styles/drone.css' rel='stylesheet' type='text/css'>
|
<link href='/static/styles/drone.css' rel='stylesheet' type='text/css'>
|
||||||
<link rel="icon" href="/static/favicon.png">
|
<link rel="icon" href="/static/favicon.png">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div role="main" ng-view ng-cloak></div>
|
<div ui-view="layout"></div>
|
||||||
|
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.js"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-route.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-route.js"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-resource.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-resource.js"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.js"></script>
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.6.0/moment.min.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.6.0/moment.min.js"></script>
|
||||||
|
|
||||||
<!-- main javascript application -->
|
<!-- main javascript application -->
|
||||||
|
|
|
@ -4,10 +4,9 @@
|
||||||
* BuildsCtrl responsible for rendering the repo's
|
* BuildsCtrl responsible for rendering the repo's
|
||||||
* recent build history.
|
* recent build history.
|
||||||
*/
|
*/
|
||||||
function BuildsCtrl($scope, $routeParams, builds, repos, users, logs) {
|
function BuildsCtrl($scope, $stateParams, builds, repos, users, logs) {
|
||||||
|
var owner = $stateParams.owner;
|
||||||
var owner = $routeParams.owner;
|
var name = $stateParams.name;
|
||||||
var name = $routeParams.name;
|
|
||||||
var fullName = owner+'/'+name;
|
var fullName = owner+'/'+name;
|
||||||
|
|
||||||
// Gets the currently authenticated user
|
// Gets the currently authenticated user
|
||||||
|
@ -64,11 +63,11 @@
|
||||||
/**
|
/**
|
||||||
* BuildCtrl responsible for rendering a build.
|
* BuildCtrl responsible for rendering a build.
|
||||||
*/
|
*/
|
||||||
function BuildCtrl($scope, $routeParams, $window, logs, builds, repos, users) {
|
function BuildCtrl($scope, $stateParams, $window, logs, builds, repos, users) {
|
||||||
|
|
||||||
var number = $routeParams.number;
|
var number = $stateParams.number;
|
||||||
var owner = $routeParams.owner;
|
var owner = $stateParams.owner;
|
||||||
var name = $routeParams.name;
|
var name = $stateParams.name;
|
||||||
var fullName = owner+'/'+name;
|
var fullName = owner+'/'+name;
|
||||||
|
|
||||||
// Gets the currently authenticated user
|
// Gets the currently authenticated user
|
||||||
|
@ -104,12 +103,12 @@
|
||||||
/**
|
/**
|
||||||
* BuildOutCtrl responsible for rendering a build output.
|
* BuildOutCtrl responsible for rendering a build output.
|
||||||
*/
|
*/
|
||||||
function BuildOutCtrl($scope, $routeParams, $window, logs, builds, repos, users) {
|
function BuildOutCtrl($scope, $stateParams, $window, logs, builds, repos, users) {
|
||||||
|
|
||||||
var step = parseInt($routeParams.step) || 1;
|
var step = parseInt($stateParams.step) || 1;
|
||||||
var number = $routeParams.number;
|
var number = $stateParams.number;
|
||||||
var owner = $routeParams.owner;
|
var owner = $stateParams.owner;
|
||||||
var name = $routeParams.name;
|
var name = $stateParams.name;
|
||||||
var fullName = owner+'/'+name;
|
var fullName = owner+'/'+name;
|
||||||
var streaming = false;
|
var streaming = false;
|
||||||
var tail = false;
|
var tail = false;
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
* CommitsCtrl responsible for rendering the repo's
|
* CommitsCtrl responsible for rendering the repo's
|
||||||
* recent commit history.
|
* recent commit history.
|
||||||
*/
|
*/
|
||||||
function CommitsCtrl($scope, $routeParams, builds, repos, users, logs) {
|
function CommitsCtrl($scope, $stateParams, builds, repos, users, logs) {
|
||||||
|
|
||||||
var owner = $routeParams.owner;
|
var owner = $stateParams.owner;
|
||||||
var name = $routeParams.name;
|
var name = $stateParams.name;
|
||||||
var fullName = owner+'/'+name;
|
var fullName = owner+'/'+name;
|
||||||
|
|
||||||
// Gets the currently authenticated user
|
// Gets the currently authenticated user
|
||||||
|
|
|
@ -4,8 +4,7 @@
|
||||||
* ReposCtrl responsible for rendering the user's
|
* ReposCtrl responsible for rendering the user's
|
||||||
* repository home screen.
|
* repository home screen.
|
||||||
*/
|
*/
|
||||||
function ReposCtrl($scope, $routeParams, repos, users) {
|
function ReposCtrl($scope, $stateParams, repos, users) {
|
||||||
|
|
||||||
// Gets the currently authenticated user
|
// Gets the currently authenticated user
|
||||||
users.getCached().then(function(payload){
|
users.getCached().then(function(payload){
|
||||||
$scope.user = payload.data;
|
$scope.user = payload.data;
|
||||||
|
@ -43,9 +42,9 @@
|
||||||
/**
|
/**
|
||||||
* RepoEditCtrl responsible for editing a repository.
|
* RepoEditCtrl responsible for editing a repository.
|
||||||
*/
|
*/
|
||||||
function RepoEditCtrl($scope, $window, $location, $routeParams, repos, users) {
|
function RepoEditCtrl($scope, $window, $location, $stateParams, repos, users) {
|
||||||
var owner = $routeParams.owner;
|
var owner = $stateParams.owner;
|
||||||
var name = $routeParams.name;
|
var name = $stateParams.name;
|
||||||
var fullName = owner+'/'+name;
|
var fullName = owner+'/'+name;
|
||||||
|
|
||||||
// Inject window for composing url
|
// Inject window for composing url
|
||||||
|
|
|
@ -7,7 +7,8 @@
|
||||||
*/
|
*/
|
||||||
angular.module('drone', [
|
angular.module('drone', [
|
||||||
'ngRoute',
|
'ngRoute',
|
||||||
'ui.filters'
|
'ui.filters',
|
||||||
|
'ui.router'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,7 +38,7 @@
|
||||||
* Defines the route configuration for the
|
* Defines the route configuration for the
|
||||||
* main application.
|
* main application.
|
||||||
*/
|
*/
|
||||||
function Config ($routeProvider, $httpProvider, $locationProvider) {
|
function Config ($stateProvider, $httpProvider, $locationProvider) {
|
||||||
|
|
||||||
// Resolver that will attempt to load the currently
|
// Resolver that will attempt to load the currently
|
||||||
// authenticated user prior to loading the page.
|
// authenticated user prior to loading the page.
|
||||||
|
@ -47,61 +48,136 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$routeProvider
|
$stateProvider
|
||||||
.when('/', {
|
.state('app', {
|
||||||
templateUrl: '/static/scripts/views/repos.html',
|
abstract: true,
|
||||||
controller: 'ReposCtrl',
|
views: {
|
||||||
resolve: resolveUser
|
'layout': {
|
||||||
})
|
templateUrl: '/static/scripts/views/layout.html',
|
||||||
.when('/login', {
|
controller: function ($scope, $routeParams, repos, users) {
|
||||||
templateUrl: '/static/scripts/views/login.html',
|
users.getCached().then(function(payload){
|
||||||
controller: 'UserLoginCtrl'
|
$scope.user = payload.data;
|
||||||
})
|
console.log(repos.list());
|
||||||
.when('/profile', {
|
});
|
||||||
templateUrl: '/static/scripts/views/user.html',
|
}
|
||||||
controller: 'UserCtrl',
|
}
|
||||||
resolve: resolveUser
|
},
|
||||||
})
|
resolve: resolveUser
|
||||||
.when('/users', {
|
})
|
||||||
templateUrl: '/static/scripts/views/users.html',
|
.state('app.index', {
|
||||||
controller: 'UsersCtrl',
|
url: '/',
|
||||||
resolve: resolveUser
|
views: {
|
||||||
})
|
'toolbar': {
|
||||||
.when('/new', {
|
templateUrl: '/static/scripts/views/repos/index/toolbar.html'
|
||||||
templateUrl: '/static/scripts/views/repos_add.html',
|
},
|
||||||
controller: 'RepoAddCtrl',
|
'content': {
|
||||||
resolve: resolveUser
|
templateUrl: '/static/scripts/views/repos/index/content.html',
|
||||||
})
|
controller: 'ReposCtrl',
|
||||||
.when('/:owner/:name', {
|
resolve: resolveUser
|
||||||
templateUrl: '/static/scripts/views/builds.html',
|
}
|
||||||
controller: 'BuildsCtrl',
|
},
|
||||||
resolve: resolveUser
|
title: 'Dashboard'
|
||||||
})
|
})
|
||||||
.when('/:owner/:name/edit', {
|
.state('login', {
|
||||||
templateUrl: '/static/scripts/views/repos_edit.html',
|
url: '/login',
|
||||||
controller: 'RepoEditCtrl',
|
templateUrl: '/static/scripts/views/login.html',
|
||||||
resolve: resolveUser
|
title: 'Login',
|
||||||
})
|
controller: 'UserLoginCtrl'
|
||||||
.when('/:owner/:name/edit/env', {
|
})
|
||||||
templateUrl: '/static/scripts/views/repos_env.html',
|
.state('app.profile', {
|
||||||
controller: 'RepoEditCtrl',
|
url: '/profile',
|
||||||
resolve: resolveUser
|
views: {
|
||||||
})
|
'toolbar': { templateUrl: '/static/scripts/views/profile/toolbar.html' },
|
||||||
.when('/:owner/:name/delete', {
|
'content': {
|
||||||
templateUrl: '/static/scripts/views/repos_del.html',
|
templateUrl: '/static/scripts/views/profile/content.html',
|
||||||
controller: 'RepoEditCtrl',
|
controller: 'UserCtrl',
|
||||||
resolve: resolveUser
|
resolve: resolveUser
|
||||||
})
|
}
|
||||||
.when('/:owner/:name/:number', {
|
},
|
||||||
templateUrl: '/static/scripts/views/build.html',
|
title: 'Profile'
|
||||||
controller: 'BuildCtrl',
|
})
|
||||||
resolve: resolveUser
|
.state('app.users', {
|
||||||
})
|
url: '/users',
|
||||||
.when('/:owner/:name/:number/:step', {
|
views: {
|
||||||
templateUrl: '/static/scripts/views/build_out.html',
|
'toolbar': { templateUrl: '/static/scripts/views/users/toolbar.html' },
|
||||||
controller: 'BuildOutCtrl',
|
'content': {
|
||||||
resolve: resolveUser
|
templateUrl: '/static/scripts/views/users/content.html',
|
||||||
});
|
controller: 'UsersCtrl',
|
||||||
|
resolve: resolveUser
|
||||||
|
}
|
||||||
|
},
|
||||||
|
title: 'Users'
|
||||||
|
})
|
||||||
|
.state('app.new_repo', {
|
||||||
|
url: '/new',
|
||||||
|
views: {
|
||||||
|
'toolbar': { templateUrl: '/static/scripts/views/repos/add/toolbar.html' },
|
||||||
|
'content': {
|
||||||
|
templateUrl: '/static/scripts/views/repos/add/content.html',
|
||||||
|
controller: 'RepoAddCtrl',
|
||||||
|
resolve: resolveUser
|
||||||
|
}
|
||||||
|
},
|
||||||
|
title: 'Add Repository'
|
||||||
|
})
|
||||||
|
.state('app.builds', {
|
||||||
|
url: '/:owner/:name',
|
||||||
|
views: {
|
||||||
|
'toolbar': {
|
||||||
|
templateUrl: '/static/scripts/views/builds/index/toolbar.html',
|
||||||
|
controller: 'BuildsCtrl'
|
||||||
|
},
|
||||||
|
'content': {
|
||||||
|
templateUrl: '/static/scripts/views/builds/index/content.html',
|
||||||
|
controller: 'BuildsCtrl'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.state('app.repo_edit', {
|
||||||
|
url: '/:owner/:name/edit',
|
||||||
|
views: {
|
||||||
|
'toolbar': { templateUrl: '/static/scripts/views/repos/toolbar.html' },
|
||||||
|
'content': { templateUrl: '/static/scripts/views/repos/edit.html' }
|
||||||
|
},
|
||||||
|
controller: 'RepoEditCtrl',
|
||||||
|
resolve: resolveUser
|
||||||
|
})
|
||||||
|
.state('app.repo.env', {
|
||||||
|
url: '/:owner/:name/edit/env',
|
||||||
|
views: {
|
||||||
|
'toolbar': { templateUrl: '/static/scripts/views/repos/toolbar.html' },
|
||||||
|
'content': { templateUrl: '/static/scripts/views/repos/env.html' }
|
||||||
|
},
|
||||||
|
controller: 'RepoEditCtrl',
|
||||||
|
resolve: resolveUser
|
||||||
|
})
|
||||||
|
.state('app.repo.del', {
|
||||||
|
url: '/:owner/:name/delete',
|
||||||
|
views: {
|
||||||
|
'toolbar': { templateUrl: '/static/scripts/views/repos/toolbar.html' },
|
||||||
|
'content': { templateUrl: '/static/scripts/views/repos/del.html' }
|
||||||
|
},
|
||||||
|
controller: 'RepoEditCtrl',
|
||||||
|
resolve: resolveUser
|
||||||
|
})
|
||||||
|
.state('app.build', {
|
||||||
|
url: '/:owner/:name/:number',
|
||||||
|
views: {
|
||||||
|
'toolbar': { templateUrl: '/static/scripts/views/builds/show/toolbar.html' },
|
||||||
|
'content': { templateUrl: '/static/scripts/views/builds/show/content.html' }
|
||||||
|
},
|
||||||
|
controller: 'BuildCtrl',
|
||||||
|
resolve: resolveUser
|
||||||
|
})
|
||||||
|
.state('app.build_step', {
|
||||||
|
url: '/:owner/:name/:number/:step',
|
||||||
|
views: {
|
||||||
|
'toolbar': { templateUrl: '/static/scripts/views/builds/step/toolbar.html' },
|
||||||
|
'content': { templateUrl: '/static/scripts/views/builds/step/content.html' }
|
||||||
|
},
|
||||||
|
controller: 'BuildOutCtrl',
|
||||||
|
resolve: resolveUser
|
||||||
|
})
|
||||||
|
|
||||||
// Enables html5 mode
|
// Enables html5 mode
|
||||||
$locationProvider.html5Mode(true)
|
$locationProvider.html5Mode(true)
|
||||||
|
@ -130,14 +206,14 @@
|
||||||
|
|
||||||
|
|
||||||
function RouteChange($rootScope, repos, logs) {
|
function RouteChange($rootScope, repos, logs) {
|
||||||
$rootScope.$on('$routeChangeStart', function (event, next) {
|
$rootScope.$on('$stateChangeStart', function () {
|
||||||
repos.unsubscribe();
|
repos.unsubscribe();
|
||||||
logs.unsubscribe();
|
logs.unsubscribe();
|
||||||
});
|
});
|
||||||
|
|
||||||
$rootScope.$on('$routeChangeSuccess', function (event, current, previous) {
|
$rootScope.$on('$stateChangeSuccess', function (event, current, previous) {
|
||||||
if (current.$$route.title) {
|
if (current.title) {
|
||||||
document.title = current.$$route.title + ' · drone';
|
document.title = current.title + ' · drone';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,64 +0,0 @@
|
||||||
<header>
|
|
||||||
<a class="logo float-left" href="/"></a>
|
|
||||||
<a class="menu-item settings float-right" href="/profile"></a>
|
|
||||||
<a class="menu-item users float-right" href="/users" ng-if="user.admin"></a>
|
|
||||||
<a class="menu-item help float-right" href="http://readme.drone.io" target="_blank"></a>
|
|
||||||
<a class="menu-item user-name float-right" href="/profile">{{ "+"+user.login }}</a>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="toolbar">
|
|
||||||
|
|
||||||
<div class="breadcrumb" style="position:relative;top:0px;">
|
|
||||||
<a ng-href="/{{ repo.full_name }}" class="icon icon-home"></a>
|
|
||||||
<a ng-href="/{{ repo.full_name }}">{{ repo.owner }} / {{ repo.name }}</a>
|
|
||||||
<span class="spacer"></span>
|
|
||||||
<a ng-href="#">{{ build.number }}</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="menu">
|
|
||||||
<a href="settings.html" class="icon icon-settings"></a>
|
|
||||||
<a ng-href="/{{ repo.full_name }}/edit" class="nav-item settings float-right"></a>
|
|
||||||
<button ng-click="watch(repo)" ng-if="!repo.starred" class="nav-item star float-right"></button>
|
|
||||||
<button ng-click="unwatch(repo)" ng-if="repo.starred" class="nav-item unstar float-right"></button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<article>
|
|
||||||
|
|
||||||
<section class="commit-section">
|
|
||||||
<div class="row build-row">
|
|
||||||
<div>
|
|
||||||
<div ng-class="[ 'build-num', build.status ]"></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h3>{{ build.head_commit.message }}</h3>
|
|
||||||
<p><strong>{{ build.head_commit.author.login }}</strong> pushed to <strong>{{ build.head_commit.branch }}</strong> {{ build.started_at | fromNow }}</p>
|
|
||||||
<div style="position:absolute;top:30px;right:30px;color:#CCC;"># {{build.number}}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section>
|
|
||||||
<a class="row build-row sub-build-row" ng-repeat="job in build.jobs" ng-href="{{ repo.full_name }}/{{ build.number }}/{{ job.number }}">
|
|
||||||
<div>
|
|
||||||
<div ng-class="[ 'build-num', build.status ]"></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h3>
|
|
||||||
<div ng-repeat="(key, value) in job.environment">
|
|
||||||
{{ key.toUpperCase() }}={{ value }}
|
|
||||||
</div>
|
|
||||||
</h3>
|
|
||||||
<div style="position:absolute;top:30px;right:30px;color:#CCC;"># {{job.number}}</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</section>
|
|
||||||
</article>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<button ng-if="build.status !== 'pending' && build.status !== 'running'" ng-click="restart()">Restart</button>
|
|
||||||
<button ng-if="build.status === 'pending' || build.status === 'running'" ng-click="cancel()">Cancel</button>
|
|
|
@ -1,68 +0,0 @@
|
||||||
<header>
|
|
||||||
<a class="logo float-left" href="/"></a>
|
|
||||||
<a class="menu-item settings float-right" href="/profile"></a>
|
|
||||||
<a class="menu-item users float-right" href="/users" ng-if="user.admin"></a>
|
|
||||||
<a class="menu-item help float-right" href="http://readme.drone.io" target="_blank"></a>
|
|
||||||
<a class="menu-item user-name float-right" href="/profile">{{ "+"+user.login }}</a>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="toolbar">
|
|
||||||
|
|
||||||
<div class="breadcrumb" style="position:relative;top:0px;">
|
|
||||||
<a ng-href="/{{ repo.full_name }}/{{ build.sequence }}" class="icon icon-home"></a>
|
|
||||||
<a ng-href="/{{ repo.full_name }}">{{ repo.owner }} / {{ repo.name }}</a>
|
|
||||||
<span class="spacer"></span>
|
|
||||||
<a ng-href="/{{ repo.full_name }}/{{ build.sequence }}">{{ build.sequence }}</a>
|
|
||||||
<span class="spacer"></span>
|
|
||||||
<a href="#">{{ task.sequence }}</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="menu">
|
|
||||||
<a ng-href="/{{ repo.full_name }}/edit" class="nav-item settings float-right"></a>
|
|
||||||
<button ng-click="watch(repo)" ng-if="!repo.starred" class="nav-item star float-right"></button>
|
|
||||||
<button ng-click="unwatch(repo)" ng-if="repo.starred" class="nav-item unstar float-right"></button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<article>
|
|
||||||
|
|
||||||
<section class="commit-section">
|
|
||||||
<div class="row build-row">
|
|
||||||
<div>
|
|
||||||
<div ng-class="[ 'build-num', task.status ]" ng-if="task"></div>
|
|
||||||
<div ng-class="[ 'build-num', build.status ]" ng-if="!task"></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h3>{{ build.head_commit.message }}</h3>
|
|
||||||
<p><strong>{{ build.head_commit.author.login }}</strong> pushed to <strong>{{ build.head_commit.branch }}</strong> {{ build.started_at | fromNow }}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row build-row sub-build-row" ng-if="build.jobs.length > 1">
|
|
||||||
<div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h3 style="margin-top:0px">
|
|
||||||
<div ng-repeat="(key, value) in task.environment">
|
|
||||||
{{ key.toUpperCase() }}={{ value }}
|
|
||||||
</div>
|
|
||||||
</h3>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<pre id="term" ng-if="task && task.status !== 'pending'"></pre>
|
|
||||||
<button class="fab" ng-if="build.status === 'running'" ng-click="tail()"></button>
|
|
||||||
</article>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<button ng-if="build.status !== 'pending' && build.status !== 'running'" ng-click="restart()">Restart</button>
|
|
||||||
<button ng-if="build.status === 'pending' || build.status === 'running'" ng-click="cancel()">Cancel</button>
|
|
|
@ -1,39 +0,0 @@
|
||||||
<header>
|
|
||||||
<a class="logo float-left" href="/"></a>
|
|
||||||
<a class="menu-item settings float-right" href="/profile"></a>
|
|
||||||
<a class="menu-item users float-right" href="/users" ng-if="user.admin"></a>
|
|
||||||
<a class="menu-item help float-right" href="http://readme.drone.io" target="_blank"></a>
|
|
||||||
<a class="menu-item user-name float-right" href="/profile">{{ "+"+user.login }}</a>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="toolbar">
|
|
||||||
|
|
||||||
<div class="breadcrumb" style="position:relative;top:0px;">
|
|
||||||
<a href="/" class="icon icon-home"></a>
|
|
||||||
<a href="#">{{ repo.owner }} / {{ repo.name }}</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="menu">
|
|
||||||
<a ng-href="/{{ repo.full_name }}/edit" class="nav-item settings float-right" ng-if="repo.permissions.pull"></a>
|
|
||||||
<button ng-click="watch(repo)" ng-if="!repo.starred && user" class="nav-item star float-right"></button>
|
|
||||||
<button ng-click="unwatch(repo)" ng-if="repo.starred && user" class="nav-item unstar float-right"></button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<article>
|
|
||||||
<section>
|
|
||||||
<a class="row build-row" ng-repeat="build in builds | orderBy:'-number'" ng-href="/{{ repo.full_name }}/{{ build.number }}">
|
|
||||||
<div>
|
|
||||||
<div ng-class="[ 'build-num', build.status ]"></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h3>{{ build.head_commit.message }}</h3>
|
|
||||||
<p><strong>{{ build.head_commit.author.login }}</strong> pushed to <strong>{{ build.head_commit.branch }}</strong> {{ build.started_at | fromNow }}</p>
|
|
||||||
<div style="position:absolute;top:30px;right:30px;color:#CCC;"># {{build.number}}</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</section>
|
|
||||||
</article>
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
<article>
|
||||||
|
<section>
|
||||||
|
<a class="row build-row" ng-repeat="build in builds | orderBy:'-number'" ng-href="/{{ repo.full_name }}/{{ build.number }}">
|
||||||
|
<div>
|
||||||
|
<div ng-class="[ 'build-num', build.status ]"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3>{{ build.head_commit.message }}</h3>
|
||||||
|
<p><strong>{{ build.head_commit.author.login }}</strong> pushed to <strong>{{ build.head_commit.branch }}</strong> {{ build.started_at | fromNow }}</p>
|
||||||
|
<div style="position:absolute;top:30px;right:30px;color:#CCC;"># {{build.number}}</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
</article>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<div class="breadcrumb" style="position:relative;top:0px;">
|
||||||
|
<a href="/" class="icon icon-home">
|
||||||
|
<i class="material-icons md-18">home</i>
|
||||||
|
</a>
|
||||||
|
<a href="#">{{ repo.owner }} / {{ repo.name }}</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="menu">
|
||||||
|
<a ng-href="/{{ repo.full_name }}/edit" class="nav-item settings float-right" ng-if="repo.permissions.pull">
|
||||||
|
<i class="material-icons md-18">edit</i>
|
||||||
|
</a>
|
||||||
|
<button ng-click="watch(repo)" ng-if="!repo.starred && user" class="nav-item star float-right">
|
||||||
|
<i class="material-icons md-18">star_border</i>
|
||||||
|
</button>
|
||||||
|
<button ng-click="unwatch(repo)" ng-if="repo.starred && user" class="nav-item unstar float-right">
|
||||||
|
<i class="material-icons md-18">star</i>
|
||||||
|
</button>
|
||||||
|
</div>
|
|
@ -0,0 +1,36 @@
|
||||||
|
<article>
|
||||||
|
|
||||||
|
<section class="commit-section">
|
||||||
|
<div class="row build-row">
|
||||||
|
<div>
|
||||||
|
<div ng-class="[ 'build-num', build.status ]"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3>{{ build.head_commit.message }}</h3>
|
||||||
|
<p><strong>{{ build.head_commit.author.login }}</strong> pushed to <strong>{{ build.head_commit.branch }}</strong> {{ build.started_at | fromNow }}</p>
|
||||||
|
<div style="position:absolute;top:30px;right:30px;color:#CCC;"># {{build.number}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<a class="row build-row sub-build-row" ng-repeat="job in build.jobs" ng-href="{{ repo.full_name }}/{{ build.number }}/{{ job.number }}">
|
||||||
|
<div>
|
||||||
|
<div ng-class="[ 'build-num', build.status ]"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3>
|
||||||
|
<div ng-repeat="(key, value) in job.environment">
|
||||||
|
{{ key.toUpperCase() }}={{ value }}
|
||||||
|
</div>
|
||||||
|
</h3>
|
||||||
|
<div style="position:absolute;top:30px;right:30px;color:#CCC;"># {{job.number}}</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<button ng-if="build.status !== 'pending' && build.status !== 'running'" ng-click="restart()">Restart</button>
|
||||||
|
<button ng-if="build.status === 'pending' || build.status === 'running'" ng-click="cancel()">Cancel</button>
|
|
@ -0,0 +1,15 @@
|
||||||
|
<div class="breadcrumb" style="position:relative;top:0px;">
|
||||||
|
<a ng-href="/{{ repo.full_name }}" class="icon icon-home">
|
||||||
|
<i class="material-icons md-18">home</i>
|
||||||
|
</a>
|
||||||
|
<a ng-href="/{{ repo.full_name }}">{{ repo.owner }} / {{ repo.name }}</a>
|
||||||
|
<span class="spacer"></span>
|
||||||
|
<a ng-href="#">{{ build.number }}</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="menu">
|
||||||
|
<a href="settings.html" class="icon icon-settings"></a>
|
||||||
|
<a ng-href="/{{ repo.full_name }}/edit" class="nav-item settings float-right"></a>
|
||||||
|
<button ng-click="watch(repo)" ng-if="!repo.starred" class="nav-item star float-right"></button>
|
||||||
|
<button ng-click="unwatch(repo)" ng-if="repo.starred" class="nav-item unstar float-right"></button>
|
||||||
|
</div>
|
|
@ -0,0 +1,39 @@
|
||||||
|
<article>
|
||||||
|
|
||||||
|
<section class="commit-section">
|
||||||
|
<div class="row build-row">
|
||||||
|
<div>
|
||||||
|
<div ng-class="[ 'build-num', task.status ]" ng-if="task"></div>
|
||||||
|
<div ng-class="[ 'build-num', build.status ]" ng-if="!task"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3>{{ build.head_commit.message }}</h3>
|
||||||
|
<p><strong>{{ build.head_commit.author.login }}</strong> pushed to <strong>{{ build.head_commit.branch }}</strong> {{ build.started_at | fromNow }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row build-row sub-build-row" ng-if="build.jobs.length > 1">
|
||||||
|
<div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 style="margin-top:0px">
|
||||||
|
<div ng-repeat="(key, value) in task.environment">
|
||||||
|
{{ key.toUpperCase() }}={{ value }}
|
||||||
|
</div>
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<pre id="term" ng-if="task && task.status !== 'pending'"></pre>
|
||||||
|
<button class="fab" ng-if="build.status === 'running'" ng-click="tail()"></button>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<button ng-if="build.status !== 'pending' && build.status !== 'running'" ng-click="restart()">Restart</button>
|
||||||
|
<button ng-if="build.status === 'pending' || build.status === 'running'" ng-click="cancel()">Cancel</button>
|
|
@ -0,0 +1,14 @@
|
||||||
|
<div class="breadcrumb" style="position:relative;top:0px;">
|
||||||
|
<a ng-href="/{{ repo.full_name }}/{{ build.sequence }}" class="icon icon-home"></a>
|
||||||
|
<a ng-href="/{{ repo.full_name }}">{{ repo.owner }} / {{ repo.name }}</a>
|
||||||
|
<span class="spacer"></span>
|
||||||
|
<a ng-href="/{{ repo.full_name }}/{{ build.sequence }}">{{ build.sequence }}</a>
|
||||||
|
<span class="spacer"></span>
|
||||||
|
<a href="#">{{ task.sequence }}</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="menu">
|
||||||
|
<a ng-href="/{{ repo.full_name }}/edit" class="nav-item settings float-right"></a>
|
||||||
|
<button ng-click="watch(repo)" ng-if="!repo.starred" class="nav-item star float-right"></button>
|
||||||
|
<button ng-click="unwatch(repo)" ng-if="repo.starred" class="nav-item unstar float-right"></button>
|
||||||
|
</div>
|
15
cmd/drone-server/static/scripts/views/layout.html
Normal file
15
cmd/drone-server/static/scripts/views/layout.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<header>
|
||||||
|
<a class="logo float-left" href="/"></a>
|
||||||
|
<a class="menu-item help float-right" href="http://readme.drone.io" target="_blank">
|
||||||
|
<i class="material-icons md-18">help</i>
|
||||||
|
</a>
|
||||||
|
<a class="menu-item users float-right" href="/users" ng-if="user.admin">
|
||||||
|
<i class="material-icons md-18">supervisor_account</i>
|
||||||
|
</a>
|
||||||
|
<a class="menu-item settings float-right" href="/profile">
|
||||||
|
<i class="material-icons md-18">settings</i>
|
||||||
|
</a>
|
||||||
|
<a class="menu-item user-name float-right" href="/profile">{{ "+"+user.login }}</a>
|
||||||
|
</header>
|
||||||
|
<div class="toolbar" ui-view="toolbar"></div>
|
||||||
|
<div ui-view="content"></div>
|
|
@ -1,19 +1,3 @@
|
||||||
<header>
|
|
||||||
<a class="logo float-left" href="/"></a>
|
|
||||||
<a class="menu-item settings float-right" href="/profile"></a>
|
|
||||||
<a class="menu-item users float-right" href="/users" ng-if="user.admin"></a>
|
|
||||||
<a class="menu-item help float-right" href="http://readme.drone.io" target="_blank"></a>
|
|
||||||
<a class="menu-item user-name float-right" href="/profile">{{ "+"+user.login }}</a>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="toolbar">
|
|
||||||
|
|
||||||
<div class="breadcrumb" style="position:relative;top:0px;">
|
|
||||||
<a href="/" class="icon icon-home"></a>
|
|
||||||
<a href="#">Profile</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<article>
|
<article>
|
||||||
<section>
|
<section>
|
||||||
<h2>Login info</h2>
|
<h2>Login info</h2>
|
||||||
|
@ -34,8 +18,12 @@
|
||||||
<section>
|
<section>
|
||||||
<h2>Tokens</h2>
|
<h2>Tokens</h2>
|
||||||
<form>
|
<form>
|
||||||
<input type="label" ng-model="newToken.label" />
|
<div style="padding-left: 20px; float: left;">
|
||||||
|
<input type="label" ng-model="newToken.label" />
|
||||||
|
</div>
|
||||||
|
<div style="padding-top: 20px; padding-left: 20px; float: left;">
|
||||||
<button ng-click="createToken(newToken)">Create</button>
|
<button ng-click="createToken(newToken)">Create</button>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<div class="alert" ng-if="tokens && tokens.length === 0">No Personal Tokens Exist</div>
|
<div class="alert" ng-if="tokens && tokens.length === 0">No Personal Tokens Exist</div>
|
|
@ -0,0 +1,6 @@
|
||||||
|
<div class="breadcrumb" style="position:relative;top:0px;">
|
||||||
|
<a href="/" class="icon icon-home">
|
||||||
|
<i class="material-icons md-18">home</i>
|
||||||
|
</a>
|
||||||
|
<a href="#">Profile</a>
|
||||||
|
</div>
|
|
@ -1,34 +0,0 @@
|
||||||
<header>
|
|
||||||
<a class="logo float-left" href="/"></a>
|
|
||||||
<a class="menu-item settings float-right" href="/profile"></a>
|
|
||||||
<a class="menu-item users float-right" href="/users" ng-if="user.admin"></a>
|
|
||||||
<a class="menu-item help float-right" href="http://readme.drone.io" target="_blank"></a>
|
|
||||||
<a class="menu-item user-name float-right" href="/profile">{{ "+"+user.login }}</a>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="toolbar">
|
|
||||||
<div class="breadcrumb" style="position:relative;top:0px;">
|
|
||||||
<a href="#">Dashboard</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="menu">
|
|
||||||
<a ng-href="/new" class="nav-item add float-right"></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<article>
|
|
||||||
|
|
||||||
|
|
||||||
<section>
|
|
||||||
<a class="row build-row" ng-repeat="repo in repos | orderBy:'full_name'" ng-href="/{{ repo.full_name }}">
|
|
||||||
<div>
|
|
||||||
<div class="icon icon-repo"></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h3>{{ repo.owner }} / {{ repo.name }}</h3>
|
|
||||||
<p>{{ repo.clone_url }}</p>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
</article>
|
|
|
@ -1,18 +1,3 @@
|
||||||
<header>
|
|
||||||
<a class="logo float-left" href="/"></a>
|
|
||||||
<a class="menu-item settings float-right" href="/profile"></a>
|
|
||||||
<a class="menu-item users float-right" href="/users" ng-if="user.admin"></a>
|
|
||||||
<a class="menu-item help float-right" href="http://readme.drone.io" target="_blank"></a>
|
|
||||||
<a class="menu-item user-name float-right" href="/profile">{{ "+"+user.login }}</a>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="toolbar">
|
|
||||||
<div class="breadcrumb" style="position:relative;top:0px;">
|
|
||||||
<a href="/" class="icon icon-home"></a>
|
|
||||||
<a href="#">Add Repository</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<article>
|
<article>
|
||||||
<section style="background:transparent !important;">
|
<section style="background:transparent !important;">
|
||||||
<p style="color:#9E9E9E;font-size:15px;line-height:22px;">Register your repository with Drone to enable automated testing. Note that Drone
|
<p style="color:#9E9E9E;font-size:15px;line-height:22px;">Register your repository with Drone to enable automated testing. Note that Drone
|
|
@ -0,0 +1,6 @@
|
||||||
|
<div class="breadcrumb" style="position:relative;top:0px;">
|
||||||
|
<a href="/" class="icon icon-home">
|
||||||
|
<i class="material-icons md-18">home</i>
|
||||||
|
</a>
|
||||||
|
<a href="#">Add Repository</a>
|
||||||
|
</div>
|
17
cmd/drone-server/static/scripts/views/repos/del.html
Normal file
17
cmd/drone-server/static/scripts/views/repos/del.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<article>
|
||||||
|
|
||||||
|
|
||||||
|
<section style="padding:30px; background-color:#EF5350;">
|
||||||
|
<button ng-click="delete(repo.full_name)" style="color:rgba(255,255,255,0.9);
|
||||||
|
text-transform: uppercase;
|
||||||
|
text-decoration: none;
|
||||||
|
border: 1px solid rgba(255,255,255,0.9);
|
||||||
|
padding: 10px;
|
||||||
|
background:transparent;
|
||||||
|
display:inline-block;
|
||||||
|
cursor:pointer;
|
||||||
|
margin-right: 10px;">Delete</button>
|
||||||
|
<span style="color:rgba(255,255,255,0.9);font-size:16px;">Warning: this action cannot be undone.</span>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</article>
|
|
@ -1,28 +1,3 @@
|
||||||
<header>
|
|
||||||
<a class="logo float-left" href="/"></a>
|
|
||||||
<a class="menu-item settings float-right" href="/profile"></a>
|
|
||||||
<a class="menu-item users float-right" href="/users" ng-if="user.admin"></a>
|
|
||||||
<a class="menu-item help float-right" href="http://readme.drone.io" target="_blank"></a>
|
|
||||||
<a class="menu-item user-name float-right" href="/profile">{{ "+"+user.login }}</a>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="toolbar">
|
|
||||||
|
|
||||||
<div class="breadcrumb" style="position:relative;top:0px;">
|
|
||||||
<a href="/{{ repo.full_name }}" class="icon icon-home"></a>
|
|
||||||
<a ng-href="/{{ repo.full_name }}">{{ repo.owner }} / {{ repo.name }}</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="menu">
|
|
||||||
<a href="settings.html" class="icon icon-settings"></a>
|
|
||||||
<a ng-href="/{{ repo.full_name }}/edit" class="nav-item settings float-right"></a>
|
|
||||||
<button ng-click="watch(repo)" ng-if="!repo.starred" class="nav-item star float-right"></button>
|
|
||||||
<button ng-click="unwatch(repo)" ng-if="repo.starred" class="nav-item unstar float-right"></button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<article>
|
<article>
|
||||||
<section>
|
<section>
|
||||||
<h2>Settings</h2>
|
<h2>Settings</h2>
|
||||||
|
@ -92,4 +67,4 @@
|
||||||
<pre class="snippet snippet-padding">{{ repo.keypair.public }}</pre>
|
<pre class="snippet snippet-padding">{{ repo.keypair.public }}</pre>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</article>
|
</article>
|
|
@ -1,25 +1,3 @@
|
||||||
<header>
|
|
||||||
<a class="logo float-left" href="/"></a>
|
|
||||||
<a class="menu-item settings float-right" href="/profile"></a>
|
|
||||||
<a class="menu-item users float-right" href="/users" ng-if="user.admin"></a>
|
|
||||||
<a class="menu-item help float-right" href="http://readme.drone.io" target="_blank"></a>
|
|
||||||
<a class="menu-item user-name float-right" href="/profile">{{ "+"+user.login }}</a>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="toolbar">
|
|
||||||
|
|
||||||
<div class="breadcrumb" style="position:relative;top:0px;">
|
|
||||||
<a href="/{{ repo.full_name }}/edit" class="icon icon-home"></a>
|
|
||||||
<a ng-href="/{{ repo.full_name }}">{{ repo.owner }} / {{ repo.name }}</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="menu">
|
|
||||||
<a ng-href="/{{ repo.full_name }}/edit" class="nav-item settings float-right"></a>
|
|
||||||
<button ng-click="watch(repo)" ng-if="!repo.starred" class="nav-item star float-right"></button>
|
|
||||||
<button ng-click="unwatch(repo)" ng-if="repo.starred" class="nav-item unstar float-right"></button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<article>
|
<article>
|
||||||
<section style="padding:30px;">
|
<section style="padding:30px;">
|
||||||
<h2 style=" padding-left: 0px;
|
<h2 style=" padding-left: 0px;
|
||||||
|
@ -42,4 +20,4 @@ font-family: Roboto;
|
||||||
text-transform: uppercase;">add</button>
|
text-transform: uppercase;">add</button>
|
||||||
</form>
|
</form>
|
||||||
</section>
|
</section>
|
||||||
</article>
|
</article>
|
|
@ -0,0 +1,14 @@
|
||||||
|
<article>
|
||||||
|
<section>
|
||||||
|
<a class="row build-row" ng-repeat="repo in repos | orderBy:'full_name'" ng-href="/{{ repo.full_name }}">
|
||||||
|
<div>
|
||||||
|
<div class="icon icon-repo"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3>{{ repo.owner }} / {{ repo.name }}</h3>
|
||||||
|
<p>{{ repo.clone_url }}</p>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</article>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<div class="breadcrumb" style="position:relative;top:0px;">
|
||||||
|
<a href="#">Dashboard</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="menu">
|
||||||
|
<a ng-href="/new" class="nav-item add float-right">
|
||||||
|
<i class="material-icons">add</i>
|
||||||
|
</a>
|
||||||
|
</div>
|
10
cmd/drone-server/static/scripts/views/repos/toolbar.html
Normal file
10
cmd/drone-server/static/scripts/views/repos/toolbar.html
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<div class="breadcrumb" style="position:relative;top:0px;">
|
||||||
|
<a href="/{{ repo.full_name }}/edit" class="icon icon-home"></a>
|
||||||
|
<a ng-href="/{{ repo.full_name }}">{{ repo.owner }} / {{ repo.name }}</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="menu">
|
||||||
|
<a ng-href="/{{ repo.full_name }}/edit" class="nav-item settings float-right"></a>
|
||||||
|
<button ng-click="watch(repo)" ng-if="!repo.starred" class="nav-item star float-right"></button>
|
||||||
|
<button ng-click="unwatch(repo)" ng-if="repo.starred" class="nav-item unstar float-right"></button>
|
||||||
|
</div>
|
|
@ -1,42 +0,0 @@
|
||||||
<header>
|
|
||||||
<a class="logo float-left" href="/"></a>
|
|
||||||
<a class="menu-item settings float-right" href="/profile"></a>
|
|
||||||
<a class="menu-item users float-right" href="/users" ng-if="user.admin"></a>
|
|
||||||
<a class="menu-item help float-right" href="http://readme.drone.io" target="_blank"></a>
|
|
||||||
<a class="menu-item user-name float-right" href="/profile">{{ "+"+user.login }}</a>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="toolbar">
|
|
||||||
|
|
||||||
<div class="breadcrumb" style="position:relative;top:0px;">
|
|
||||||
<a href="/{{ repo.full_name }}/edit" class="icon icon-home"></a>
|
|
||||||
<a ng-href="/{{ repo.full_name }}">{{ repo.owner }} / {{ repo.name }}</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="menu">
|
|
||||||
<a ng-href="/{{ repo.full_name }}/edit" class="nav-item settings float-right"></a>
|
|
||||||
<button ng-click="watch(repo)" ng-if="!repo.starred" class="nav-item star float-right"></button>
|
|
||||||
<button ng-click="unwatch(repo)" ng-if="repo.starred" class="nav-item unstar float-right"></button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<article>
|
|
||||||
|
|
||||||
|
|
||||||
<section style="padding:30px; background-color:#EF5350;">
|
|
||||||
<button ng-click="delete(repo.full_name)" style="color:rgba(255,255,255,0.9);
|
|
||||||
text-transform: uppercase;
|
|
||||||
text-decoration: none;
|
|
||||||
border: 1px solid rgba(255,255,255,0.9);
|
|
||||||
padding: 10px;
|
|
||||||
background:transparent;
|
|
||||||
display:inline-block;
|
|
||||||
cursor:pointer;
|
|
||||||
margin-right: 10px;">Delete</button>
|
|
||||||
<span style="color:rgba(255,255,255,0.9);font-size:16px;">Warning: this action cannot be undone.</span>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
</article>
|
|
|
@ -1,18 +1,3 @@
|
||||||
<header>
|
|
||||||
<a class="logo float-left" href="/"></a>
|
|
||||||
<a class="menu-item settings float-right" href="/profile"></a>
|
|
||||||
<a class="menu-item users float-right" href="/users" ng-if="user.admin"></a>
|
|
||||||
<a class="menu-item help float-right" href="http://readme.drone.io" target="_blank"></a>
|
|
||||||
<a class="menu-item user-name float-right" href="/profile">{{ "+"+user.login }}</a>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="toolbar">
|
|
||||||
<div class="breadcrumb" style="position:relative;top:0px;">
|
|
||||||
<a href="/" class="icon icon-home"></a>
|
|
||||||
<a href="#">Users</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<article>
|
<article>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
|
@ -31,11 +16,15 @@
|
||||||
<div>
|
<div>
|
||||||
<h3>{{ user.login }} <small ng-if="user.admin">Admin</small></h3>
|
<h3>{{ user.login }} <small ng-if="user.admin">Admin</small></h3>
|
||||||
<p>{{ user.email }}</p>
|
<p>{{ user.email }}</p>
|
||||||
<button ng-click="toggle(user)" ng-class="{'btn-admin':true, 'btn-checked': user.admin}"></button>
|
<button ng-click="toggle(user)" ng-class="{'btn-admin':true, 'btn-checked': user.admin}">
|
||||||
<button ng-click="remove(user)" class="btn-remove"></button>
|
<i class="material-icons md-18">account_circle</i>
|
||||||
|
</button>
|
||||||
|
<button ng-click="remove(user)" class="btn-remove">
|
||||||
|
<i class="material-icons md-18">delete</i>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
</article>
|
</article>
|
6
cmd/drone-server/static/scripts/views/users/toolbar.html
Normal file
6
cmd/drone-server/static/scripts/views/users/toolbar.html
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<div class="breadcrumb" style="position:relative;top:0px;">
|
||||||
|
<a href="/" class="icon icon-home">
|
||||||
|
<i class="material-icons md-18">home</i>
|
||||||
|
</a>
|
||||||
|
<a href="#">Users</a>
|
||||||
|
</div>
|
|
@ -778,9 +778,7 @@
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-item:after,
|
.nav-item i {
|
||||||
.nav-item:before {
|
|
||||||
font-family: "Material-Design-Iconic-Font";
|
|
||||||
color: rgba(255,255,255,0.749);
|
color: rgba(255,255,255,0.749);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -791,12 +789,6 @@
|
||||||
text-decoration:none;
|
text-decoration:none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-item.settings:before {
|
|
||||||
font-size: 22px;
|
|
||||||
content: '\f060';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.nav-item.unstar,
|
.nav-item.unstar,
|
||||||
.nav-item.star {
|
.nav-item.star {
|
||||||
font-size:14px;
|
font-size:14px;
|
||||||
|
@ -804,21 +796,6 @@
|
||||||
line-height:20px;
|
line-height:20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-item.star:after {
|
|
||||||
font-size: 24px;
|
|
||||||
content: "\f2e7";
|
|
||||||
}
|
|
||||||
.nav-item.unstar:after {
|
|
||||||
font-size: 24px;
|
|
||||||
content: "\f2e5";
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-item.add:after {
|
|
||||||
font-size: 24px;
|
|
||||||
content: "\f0fd";
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
input.nav-item {
|
input.nav-item {
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 59px;
|
height: 59px;
|
||||||
|
@ -938,6 +915,11 @@
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
.material-icons.md-18 { font-size: 18px; }
|
||||||
|
.material-icons.md-24 { font-size: 24px; }
|
||||||
|
.material-icons.md-36 { font-size: 36px; }
|
||||||
|
.material-icons.md-48 { font-size: 48px; }
|
||||||
|
|
||||||
.menu-item {
|
.menu-item {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
height: auto;
|
height: auto;
|
||||||
|
@ -948,8 +930,7 @@
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-item:before {
|
.menu-item i {
|
||||||
font-family: "Material-Design-Iconic-Font";
|
|
||||||
color: #2f2f2f;
|
color: #2f2f2f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -967,26 +948,6 @@
|
||||||
padding: 10px 0;
|
padding: 10px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-item.settings:before {
|
|
||||||
font-size: 20px;
|
|
||||||
content: "\f060";
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-item.users:before {
|
|
||||||
font-size: 20px;
|
|
||||||
content: "\f006";
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-item.help:before {
|
|
||||||
font-size: 20px;
|
|
||||||
content: '\f033';
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-item.plugins:before {
|
|
||||||
font-size: 23px;
|
|
||||||
content: '\f292';
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-item.user-name {
|
.menu-item.user-name {
|
||||||
height: 50px;
|
height: 50px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
@ -998,15 +959,12 @@
|
||||||
padding: 20px 0 18px 0;
|
padding: 20px 0 18px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.subnav {
|
||||||
|
background:rgba(255,255,255,0.8);
|
||||||
|
padding:0px 25px;
|
||||||
.subnav {
|
height:70px;
|
||||||
background:rgba(255,255,255,0.8);
|
position:relative;
|
||||||
padding:0px 25px;
|
}
|
||||||
height:70px;
|
|
||||||
position:relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.subnav .icon {
|
.subnav .icon {
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
|
@ -1018,10 +976,10 @@
|
||||||
margin-left:10px;
|
margin-left:10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.subnav .icon.icon-settings:before {
|
.subnav .icon.icon-settings:before {
|
||||||
content: "\f060";
|
content: "\f060";
|
||||||
font-family: "Material-Design-Iconic-Font";
|
font-family: "Material-Design-Iconic-Font";
|
||||||
}
|
}
|
||||||
|
|
||||||
.subnav .menu {
|
.subnav .menu {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -1271,12 +1229,10 @@ header .logo {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: -50px;
|
left: -50px;
|
||||||
}
|
}
|
||||||
.breadcrumb a.icon-home:after {
|
.breadcrumb a.icon-home i {
|
||||||
font-family: "Material-Design-Iconic-Font";
|
/* line-height:56px; */
|
||||||
line-height:56px;
|
|
||||||
color: rgba(255,255,255,0.749);
|
color: rgba(255,255,255,0.749);
|
||||||
content: "\f297";
|
/* font-size:24px; */
|
||||||
font-size:24px;
|
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1629,6 +1585,14 @@ http://codepen.io/batazor/pen/KwKryj
|
||||||
.switch:active::before {
|
.switch:active::before {
|
||||||
box-shadow: 0 2px 10.416666666666668px rgba(0,0,0,0.28), 0 0 0 25px rgba(0,0,0,0.1);
|
box-shadow: 0 2px 10.416666666666668px rgba(0,0,0,0.28), 0 0 0 25px rgba(0,0,0,0.1);
|
||||||
}
|
}
|
||||||
|
input {
|
||||||
|
font-size:14px;
|
||||||
|
padding:10px 20px;
|
||||||
|
width:400px;
|
||||||
|
border: 1px solid #d9d9d9;
|
||||||
|
outline:none;
|
||||||
|
}
|
||||||
|
|
||||||
input:checked + .switch {
|
input:checked + .switch {
|
||||||
background: rgba(0,150,136,0.5);
|
background: rgba(0,150,136,0.5);
|
||||||
background: rgba(102, 187, 106, 0.5);
|
background: rgba(102, 187, 106, 0.5);
|
||||||
|
@ -1712,33 +1676,11 @@ input:checked + .switch:active::before {
|
||||||
background: #EF5350;
|
background: #EF5350;
|
||||||
color: #FFF;
|
color: #FFF;
|
||||||
}
|
}
|
||||||
.btn-remove:before {
|
|
||||||
content: "\f102";
|
|
||||||
font-family:"Material-Design-Iconic-Font";
|
|
||||||
/*line-height:25px;
|
|
||||||
width:25px;*/
|
|
||||||
vertical-align: middle;
|
|
||||||
text-align: center;
|
|
||||||
display:inline-block;
|
|
||||||
font-size:16px;
|
|
||||||
}
|
|
||||||
.btn-admin.btn-checked,
|
.btn-admin.btn-checked,
|
||||||
.btn-admin:hover {
|
.btn-admin:hover {
|
||||||
background: #4CAF50;
|
background: #4CAF50;
|
||||||
color: #FFF;
|
color: #FFF;
|
||||||
}
|
}
|
||||||
.btn-admin:before {
|
|
||||||
content: "\f08e";
|
|
||||||
font-family:"Material-Design-Iconic-Font";
|
|
||||||
/*line-height:25px;
|
|
||||||
width:25px;*/
|
|
||||||
vertical-align: middle;
|
|
||||||
text-align: center;
|
|
||||||
display:inline-block;
|
|
||||||
font-size:16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.row-env .btn-remove {
|
.row-env .btn-remove {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
Loading…
Reference in a new issue