added pivotal columns and styled app

pull/365/head
Callum White 2017-11-24 16:59:50 +00:00
parent d7f2cfdcd6
commit dbbb36132c
10 changed files with 114 additions and 189 deletions

View File

@ -9,7 +9,7 @@
.controller('chartJs1DCtrl', chartJs1DCtrl); .controller('chartJs1DCtrl', chartJs1DCtrl);
/** @ngInject */ /** @ngInject */
function chartJs1DCtrl($scope, baConfig, $http, $q) { function chartJs1DCtrl($scope, baConfig, $http, $interval) {
var layoutColors = baConfig.colors; var layoutColors = baConfig.colors;
var stories = []; var stories = [];
@ -43,43 +43,15 @@
} }
}; };
$scope.changeData = function () {
console.log('click!')
};
function shuffle(o){
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x){}
return o;
}
// function returnSessionsFromBrowserstackPromise(buildId) {
// var headers = {
// 'Authorization': 'danneh1:5gXqwjkDjBtTiLVmvsLV'
// };
// // var url = 'https://www.browserstack.com/automate/builds/' + buildId + '/sessions.json';
// var url = 'https://www.browserstack.com/automate/projects.json';
// $http({
// method: 'GET',
// url: url
// }).then(function(response){
// console.log('response', response);
// });
// }
// returnSessionsFromBrowserstackPromise('2f7a6dca052a67852693cd3bdef03356255e0745');
function getPivotalStories() { function getPivotalStories() {
var projectId = '1993279'; var projectId = '1993279';
// var auth = '?token=dbd3bfeb53beb6097fe299ab189e50b8'; var version = 'v0.98';
var queryParams = [ var queryParams = [
'token=dbd3bfeb53beb6097fe299ab189e50b8', 'token=dbd3bfeb53beb6097fe299ab189e50b8',
'limit=200', 'limit=200',
'filter=label:"v0.98" (label:"approved" OR label:"no approval required")' 'filter=label:"' + version + '" (label:"approved" OR label:"no approval required")'
]; ];
var url = 'https://www.pivotaltracker.com/services/v5/projects/' + projectId + '/stories'; var url = 'https://www.pivotaltracker.com/services/v5/projects/' + projectId + '/stories';
@ -123,6 +95,7 @@
}); });
} }
$interval(getPivotalStories, 120000);
getPivotalStories(); getPivotalStories();
} }

View File

@ -9,24 +9,62 @@
.controller('chartJs3DCtrl', chartJs3DCtrl); .controller('chartJs3DCtrl', chartJs3DCtrl);
/** @ngInject */ /** @ngInject */
function chartJs3DCtrl($scope) { function chartJs3DCtrl($scope, $http, $filter, $interval) {
$scope.labels =["May", "Jun", "Jul", "Aug", "Sep"]; var users;
$scope.data = [ var stories;
[65, 59, 90, 81, 56],
[28, 48, 40, 19, 88]
];
$scope.series = ['Product A', 'Product B'];
$scope.workInProgress = [];
$scope.changeData = function () { function getPivotalStories() {
$scope.data[0] = shuffle($scope.data[0]); var projectId = '1993279';
$scope.data[1] = shuffle($scope.data[1]);
};
function shuffle(o){ var version = 'v0.98';
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x){}
return o; var queryParams = [
'token=dbd3bfeb53beb6097fe299ab189e50b8',
'limit=200',
'filter=label:"' + version + '" state:started (label:"approved" OR label:"no approval required")'
];
var url = 'https://www.pivotaltracker.com/services/v5/projects/' + projectId + '/stories';
return $http({
method: 'GET',
url: url + '?' + queryParams.join('&')
});
} }
function getPivotalUsers() {
var projectId = '1993279';
var auth = '?token=dbd3bfeb53beb6097fe299ab189e50b8';
var url = 'https://www.pivotaltracker.com/services/v5/projects/' + projectId + '/memberships';
$http({
method: 'GET',
url: url + auth
}).then(function (response) {
getPivotalStories().then(function (data) {
$scope.workInProgress = [];
users = response.data;
stories = data.data;
users.forEach(function (user) {
var items = $filter('filter')(stories, {owned_by_id: user.person.id});
items.forEach(function (ignore, index) {
items[index].owner = user.person;
});
$scope.workInProgress = $scope.workInProgress.concat(items);
});
});
});
}
$interval(getPivotalUsers, 120000);
getPivotalUsers();
} }
})(); })();

View File

@ -1,96 +1,40 @@
<div class="row"> <div class="row">
<div class="col-md-6" ng-controller="chartJs1DCtrl"> <div class="col-md-6" ng-controller="chartJs1DCtrl">
<div ba-panel ba-panel-title="Current Sprint" ba-panel-class="with-scroll "> <div ba-panel ba-panel-title="Current Sprint" ba-panel-class="with-scroll ">
<div class="row">
<div class="col-md-6">
<canvas id="doughnut" chart-options="options" class="chart chart-doughnut"
chart-data="progressData" chart-labels="progressLabels" chart-click="changeData">
</canvas>
</div>
<div class="row"> <div class="col-md-6">
<div class="col-md-6"> <canvas id="pie" class="chart chart-pie"
<canvas id="doughnut" chart-options="options" class="chart chart-doughnut" chart-options="options" chart-data="teamData" chart-labels="teamLabels"
chart-data="progressData" chart-labels="progressLabels" chart-click="changeData"> chart-click="changeData">
</canvas> </canvas>
</div> </div>
<div class="col-md-6"> </div>
<canvas id="pie" class="chart chart-pie" </div>
chart-options="options" chart-data="teamData" chart-labels="teamLabels" </div>
chart-click="changeData">
</canvas>
</div>
</div>
</div>
</div>
<!-- <div class="col-md-4" ng-controller="chartJs1DCtrl">
<div ba-panel ba-panel-title="Doughnut" ba-panel-class="with-scroll ">
</div>
</div> -->
<div class="col-md-3" ng-controller="chartJs2DCtrl">
<div ba-panel ba-panel-title="Polar" ba-panel-class="with-scroll ">
<div class="chartjs-canvas-holder-first-row">
<canvas id="polar-area" class="chart chart-polar-area"
chart-data="data" chart-options="options" chart-labels="labels"
chart-click="changeData">
</canvas>
</div>
</div>
</div>
<div class="col-md-3" ng-controller="chartJs3DCtrl">
<div ba-panel ba-panel-title="Polar" ba-panel-class="with-scroll ">
<div class="chartjs-canvas-holder-first-row">
<canvas id="polar-area" class="chart chart-polar-area"
chart-data="data" chart-options="options" chart-labels="labels"
chart-click="changeData">
</canvas>
</div>
</div>
</div>
</div>
<!--
<div class="row ">
<div class="col-md-6" ng-controller="chartJsWaveCtrl">
<div ba-panel ba-panel-title="Animated Radar" ba-panel-class="col-eq-height">
<div class="chartjs-canvas-holder-second-row">
<canvas id="waveLine" class="chart chart-radar" chart-data="[data]" chart-labels="labels"></canvas>
</div>
</div>
</div>
<div class="col-md-6" ng-controller="chartJsWaveCtrl">
<div ba-panel ba-panel-title="Animated Bars" ba-panel-class="col-eq-height">
<div class="chartjs-canvas-holder-second-row">
<canvas id="waveBars" class="chart chart-bar" chart-data="[data]" chart-labels="labels"></canvas>
</div>
</div>
</div>
</div>
<div class="row ">
<div class="col-lg-4 col-md-6" ng-controller="chartJs2DCtrl">
<div ba-panel ba-panel-title="Radar" ba-panel-class="with-scroll ">
<div class="chartjs-canvas-holder-third-row">
<canvas id="radar" class="chart chart-radar" chart-series="series" chart-data="data"
chart-labels="labels" chart-click="changeData">
</canvas>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6" ng-controller="chartJs2DCtrl">
<div ba-panel ba-panel-title="Line" ba-panel-class="with-scroll ">
<div class="chartjs-canvas-holder-third-row">
<canvas id="line" class="chart chart-line" chart-data="data" chart-labels="labels"
chart-series="series" chart-click="changeData"></canvas>
</div>
</div>
</div>
<div class="col-lg-4 col-md-12" ng-controller="chartJs2DCtrl">
<div ba-panel ba-panel-title="Bars" ba-panel-class="with-scroll ">
<div class="chartjs-canvas-holder-third-row">
<canvas id="bar" class="chart chart-bar"
chart-data="data" chart-labels="labels" chart-series="series" chart-click="changeData" chart-update="updateC">
</canvas>
</div>
</div>
</div>
</div> -->
<div class="col-md-3" ng-controller="chartJs2DCtrl">
<div ba-panel ba-panel-title="Polar" ba-panel-class="with-scroll ">
<div class="chartjs-canvas-holder-first-row">
<canvas id="polar-area" class="chart chart-polar-area"
chart-data="data" chart-options="options" chart-labels="labels"
chart-click="changeData">
</canvas>
</div>
</div>
</div>
<div class="col-md-3" ng-controller="chartJs3DCtrl">
<div ba-panel ba-panel-title="Work in progress" ba-panel-class="with-scroll ">
<div class="item" data-ng-repeat="story in workInProgress track by $index" style="border-bottom: 1px solid #E6EAEE; margin-bottom: 6px;">
<div style="font-weight: 600;"><span>{{story.owner.name}}</span> <span style="float: right;">#{{story.id}}</span></div>
<p style="padding-top: 3px;">{{story.name}}</p>
</div>
</div>
</div>
</div>

View File

@ -1,9 +1 @@
<div class="content-top clearfix"> <h1 class="al-title" style="color: white;">{{ activePageTitle }}</h1>
<h1 class="al-title">{{ activePageTitle }}</h1>
<ul class="breadcrumb al-breadcrumb">
<li>
<a href="#/dashboard">Home</a></li>
<li>{{ activePageTitle }}</li>
</ul>
</div>

View File

@ -1,24 +1,13 @@
<div class="page-top clearfix" scroll-position="scrolled" max-height="50" ng-class="{'scrolled': scrolled}"> <div class="page-top clearfix" scroll-position="scrolled" max-height="50" ng-class="{'scrolled': scrolled}">
<a href="#/dashboard" class="al-logo clearfix"><span>Blur</span>Admin</a> <a href="#/dashboard" class="al-logo clearfix">
<span class="inverted icon icon-ip-centrum">
<span class="path1"></span>
<span class="path2"></span>
</span>
</a>
<a href class="collapse-menu-link ion-navicon" ba-sidebar-toggle-menu></a> <a href class="collapse-menu-link ion-navicon" ba-sidebar-toggle-menu></a>
<div class="search"> <div class="search">
<i class="ion-ios-search-strong" ng-click="startSearch()"></i> <content-top></content-top>
<input id="searchInput" type="text" placeholder="Search for...">
</div>
<div class="user-profile clearfix">
<div class="al-user-profile" uib-dropdown>
<a uib-dropdown-toggle class="profile-toggle-link">
<img ng-src="{{::( 'Nasta' | profilePicture )}}">
</a>
<ul class="top-dropdown-menu profile-dropdown" uib-dropdown-menu>
<li><i class="dropdown-arr"></i></li>
<li><a href="#/profile"><i class="fa fa-user"></i>Profile</a></li>
<li><a href><i class="fa fa-cog"></i>Settings</a></li>
<li><a href class="signout"><i class="fa fa-power-off"></i>Sign out</a></li>
</ul>
</div>
<msg-center></msg-center>
</div> </div>
</div> </div>

View File

@ -6,7 +6,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Blur Admin</title> <title>Blur Admin</title>
<link href='https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900italic,900&subset=latin,greek,greek-ext,vietnamese,cyrillic-ext,latin-ext,cyrillic' rel='stylesheet' type='text/css'> <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,600i" rel="stylesheet">
<link rel="stylesheet" href="https://s3.amazonaws.com/icomoon.io/68294/IPCentrum-Application/style.css?5au8gz" />
<link rel="icon" type="image/png" sizes="16x16" href="assets/img/favicon-16x16.png"> <link rel="icon" type="image/png" sizes="16x16" href="assets/img/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="assets/img/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="32x32" href="assets/img/favicon-32x32.png">
@ -32,26 +33,10 @@
<page-top></page-top> <page-top></page-top>
<div class="al-main"> <div class="al-main">
<div class="al-content"> <div class="al-content" style="padding-top: 24px;">
<content-top></content-top>
<div ui-view autoscroll="true" autoscroll-body-top></div> <div ui-view autoscroll="true" autoscroll-body-top></div>
</div> </div>
</div> </div>
<footer class="al-footer clearfix">
<div class="al-footer-right">Created with <i class="ion-heart"></i></div>
<div class="al-footer-main clearfix">
<div class="al-copy">Blur Admin 2016</div>
<ul class="al-share clearfix">
<li><i class="socicon socicon-facebook"></i></li>
<li><i class="socicon socicon-twitter"></i></li>
<li><i class="socicon socicon-google"></i></li>
<li><i class="socicon socicon-github"></i></li>
</ul>
</div>
</footer>
<back-top></back-top>
</main> </main>
<div id="preloader" ng-show="!$pageFinishedLoading"> <div id="preloader" ng-show="!$pageFinishedLoading">

View File

@ -70,7 +70,7 @@ a {
.al-main { .al-main {
margin-left: $left-space; margin-left: $left-space;
padding: 66px 0 34px 0; padding-top: 66px;
min-height: 500px; min-height: 500px;
} }

View File

@ -11,7 +11,6 @@ h1.al-title {
margin: 0; margin: 0;
padding: 0; padding: 0;
font-size: 24px; font-size: 24px;
text-transform: uppercase;
opacity: 0.9; opacity: 0.9;
} }

View File

@ -14,17 +14,22 @@
} }
a.al-logo { a.al-logo {
color: $sidebar-text; color: white;
display: block; display: block;
font-size: 24px; font-size: 28px;
font-family: $font-family; font-family: $font-family;
white-space: nowrap; white-space: nowrap;
float: left; float: left;
outline: none !important; outline: none !important;
line-height: 60px; line-height: 60px;
position: relative;
right: 18px;
top: 3px;
span { .path2:before {
color: $primary; color: white;
position: relative;
right: 14px;
} }
} }

View File

@ -1,4 +1,4 @@
$font-family: 'Roboto', sans-serif; $font-family: 'Source Sans Pro', sans-serif;
$activelink: $primary; $activelink: $primary;
$hoverlink: $primary-dark; $hoverlink: $primary-dark;