Split dashboard into widgets. Add build errors widget.

This commit is contained in:
Stepan Strelets 2017-11-06 00:34:11 +03:00
commit 11f58d7c2b
24 changed files with 793 additions and 328 deletions

View file

@ -599,3 +599,24 @@ h6,
.timeline > .time-label > span {
padding: 4px 8px;
}
.loader {
margin: 10px auto;
border: 8px solid #f3f3f3;
border-radius: 50%;
border-top: 8px solid #8AA4AF;
width: 32px;
height: 32px;
-webkit-animation: spin 1s linear infinite;
animation: spin 1s linear infinite;
}
@-webkit-keyframes spin {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}

View file

@ -1,5 +1,6 @@
var PHPCensor = {
intervals: {},
widgets: {},
init: function () {
$(document).ready(function () {
@ -11,11 +12,6 @@ var PHPCensor = {
if (typeof PROJECT_ID != 'undefined') {
PHPCensor.intervals.getProjectBuilds = setInterval(PHPCensor.getProjectBuilds, 10000);
}
if (typeof DASHBOARD != 'undefined') {
PHPCensor.intervals.getDashboard = setInterval(PHPCensor.getDashboard, 10000);
PHPCensor.intervals.getTimeline = setInterval(PHPCensor.getTimeline, 10000);
}
});
$(window).on('builds-updated', function (e, data) {
@ -47,34 +43,6 @@ var PHPCensor = {
});
},
getDashboard: function () {
$('.project-box').each(function (index) {
var projectId = this.id.substring(12);
$.ajax({
url: APP_URL + 'project/ajax-dashboard-project/' + projectId,
success: function (data) {
$(('#project-box-' + projectId)).html(data);
},
error: PHPCensor.handleFailedAjax
});
});
},
getTimeline: function () {
$.ajax({
url: APP_URL + 'build/ajax-timeline',
success: function (data) {
$('#timeline-box').html(data);
},
error: PHPCensor.handleFailedAjax
});
},
updateHeaderBuilds: function (data) {
$('.app-pending-list').empty();
$('.app-running-list').empty();

View file

@ -0,0 +1,40 @@
PHPCensor.widgets.allProjects = {
interval: null,
init: function () {
$(document).ready(function () {
PHPCensor.widgets.allProjects.load();
});
},
load: function() {
$.ajax({
url: APP_URL + 'widget-all-projects',
success: function (data) {
$(('#widget-all_projects-container')).html(data);
PHPCensor.widgets.allProjects.interval = setInterval(PHPCensor.widgets.allProjects.update, 10000);
},
error: PHPCensor.handleFailedAjax
});
},
update: function () {
$('.project-box').each(function (index) {
var projectId = this.id.substring(12);
$.ajax({
url: APP_URL + 'widget-all-projects/update/' + projectId,
success: function (data) {
$(('#project-box-' + projectId)).html(data);
},
error: PHPCensor.handleFailedAjax
});
});
}
};
PHPCensor.widgets.allProjects.init();

View file

@ -0,0 +1,36 @@
PHPCensor.widgets.buildErrors = {
interval: null,
init: function () {
$(document).ready(function () {
PHPCensor.widgets.buildErrors.load();
});
},
load: function() {
$.ajax({
url: APP_URL + 'widget-build-errors',
success: function (data) {
$(('#widget-build_errors-container')).html(data);
PHPCensor.widgets.buildErrors.interval = setInterval(PHPCensor.widgets.buildErrors.update, 10000);
},
error: PHPCensor.handleFailedAjax
});
},
update: function () {
$.ajax({
url: APP_URL + 'widget-build-errors/update',
success: function (data) {
$(('#dashboard-build-errors')).html(data);
},
error: PHPCensor.handleFailedAjax
});
}
};
PHPCensor.widgets.buildErrors.init();

View file

@ -0,0 +1,36 @@
PHPCensor.widgets.lastBuilds = {
interval: null,
init: function () {
$(document).ready(function () {
PHPCensor.widgets.lastBuilds.load();
});
},
load: function() {
$.ajax({
url: APP_URL + 'widget-last-builds',
success: function (data) {
$(('#widget-last_builds-container')).html(data);
PHPCensor.widgets.lastBuilds.interval = setInterval(PHPCensor.widgets.lastBuilds.update, 10000);
},
error: PHPCensor.handleFailedAjax
});
},
update: function () {
$.ajax({
url: APP_URL + 'widget-last-builds/update',
success: function (data) {
$('#timeline-box').html(data);
},
error: PHPCensor.handleFailedAjax
});
}
};
PHPCensor.widgets.lastBuilds.init();