Merge branch 'feature-fixes'

This commit is contained in:
Dmitry Khomutov 2017-09-17 20:09:41 +07:00
commit 00744c269b
13 changed files with 286 additions and 258 deletions

View file

@ -94,8 +94,11 @@ Type=simple
ExecStart=/your/path/bin/console php-censor:worker
Restart=always
User=php-censor #Could be changed
Group=php-censor #Could be changed
#Could be changed
User=php-censor
#Could be changed
Group=php-censor
[Install]
WantedBy=multi-user.target

View file

@ -1,4 +1,3 @@
var PHPCensor = {
intervals: {},
@ -49,7 +48,7 @@ var PHPCensor = {
},
getDashboard: function () {
$('.project-box').each(function(index) {
$('.project-box').each(function (index) {
var projectId = this.id.substring(12);
$.ajax({
@ -296,7 +295,9 @@ var PHPCensorConfirmDialog = Class.extend({
/*
Bind the close event of the dialog to the set of onClose* methods
*/
this.$dialog.on('hidden.bs.modal', function () {this.onClose()}.bind(this));
this.$dialog.on('hidden.bs.modal', function () {
this.onClose()
}.bind(this));
this.$dialog.on('hidden.bs.modal', function () {
if (this.confirmed) {
this.onCloseConfirmed();
@ -336,17 +337,20 @@ var PHPCensorConfirmDialog = Class.extend({
/**
* Called only when confirmed dialog was closed
*/
onCloseConfirmed: function () {},
onCloseConfirmed: function () {
},
/**
* Called only when canceled dialog was closed
*/
onCloseCanceled: function () {},
onCloseCanceled: function () {
},
/**
* Called always when the dialog was closed
*/
onClose: function () {},
onClose: function () {
},
showStatusMessage: function (message, closeTimeout) {
this.$confirmBtn.hide();
@ -371,12 +375,10 @@ var PHPCensorConfirmDialog = Class.extend({
/**
* Used to initialise the project form:
*/
function setupProjectForm()
{
function setupProjectForm() {
$('.github-container').hide();
$('#element-reference').change(function()
{
$('#element-reference').change(function () {
var el = $(this);
var val = el.val();
var type = $('#element-type').val();
@ -394,16 +396,16 @@ function setupProjectForm()
};
if( acceptable[type] !== undefined ) {
for(var i in acceptable[type]) {
if(val.match(acceptable[type][i])) {
if (acceptable[type] !== undefined) {
for (var i in acceptable[type]) {
if (val.match(acceptable[type][i])) {
el.val(val.replace(acceptable[type][i], '$1'));
}
}
}
});
$('#element-type').change(function() {
$('#element-type').change(function () {
if ($(this).val() == 'github') {
$('#loading').show();
@ -432,10 +434,10 @@ function setupProjectForm()
$('#element-reference').trigger('change');
});
$('#element-github').change(function() {
$('#element-github').change(function () {
var val = $('#element-github').val();
if(val != 'choose') {
if (val != 'choose') {
$('#element-type').val('github');
$('#element-reference').val(val);
@ -457,7 +459,8 @@ function setupProjectForm()
var Lang = {
get: function () {
var args = Array.prototype.slice.call(arguments);;
var args = Array.prototype.slice.call(arguments);
;
var string = args.shift();
if (STRINGS[string]) {

View file

@ -7,38 +7,42 @@ var codeceptionPlugin = ActiveBuild.UiPlugin.extend({
displayOnUpdate: false,
rendered: false,
register: function() {
register: function () {
var self = this;
var query_data = ActiveBuild.registerQuery('codeception-data', -1, {key: 'codeception-data'});
var query_meta_data = ActiveBuild.registerQuery('codeception-meta', -1, {key: 'codeception-meta'});
$(window).on('codeception-data', function(data) {
$(window).on('codeception-data', function (data) {
self.onUpdateData(data);
});
$(window).on('codeception-meta', function(data) {
$(window).on('codeception-meta', function (data) {
self.onUpdateMeta(data);
});
$(window).on('build-updated', function() {
$(window).on('build-updated', function () {
if (!self.rendered) {
self.displayOnUpdate = true;
query_data();
query_meta_data();
}
});
},
render: function() {
render: function () {
return $('<table class="table table-hover" id="codeception-data">' +
'<thead>' +
'<tr><th>'+Lang.get('codeception_suite')+'</th>' +
'<th>'+Lang.get('codeception_feature')+'</th>' +
'<th>'+Lang.get('codeception_time')+'</th></tr>' +
'<tr><th>' + Lang.get('status') + '</th>' +
'<th>' + Lang.get('codeception_suite') + '</th>' +
'<th>' + Lang.get('codeception_feature') + '</th>' +
'<th>' + Lang.get('file') + '</th>' +
'<th>' + Lang.get('message') + '</th>' +
'<th>' + Lang.get('codeception_time') + '</th></tr>' +
'</thead><tbody></tbody><tfoot></tfoot></table>');
},
onUpdateData: function(e) {
onUpdateData: function (e) {
if (!e.queryData) {
$('#build-codeception-errors').hide();
return;
@ -49,6 +53,7 @@ var codeceptionPlugin = ActiveBuild.UiPlugin.extend({
var tests = this.lastData[0].meta_value;
var tbody = $('#codeception-data tbody');
tbody.empty();
if (tests.length == 0) {
@ -57,35 +62,22 @@ var codeceptionPlugin = ActiveBuild.UiPlugin.extend({
}
for (var i in tests) {
var rows = $('<tr data-toggle="collapse" data-target="#collapse'+i+'">' +
'<td><strong>'+tests[i].suite+'</strong</td>' +
'<td>'+tests[i].feature+'</td>' +
'<td>'+tests[i].time+'</td>'+
'</tr>' +
'<tr id="collapse'+i+'" class="collapse" >' +
'<td></td><td colspan="2">' +
'<small><strong>'+Lang.get('name')+':</strong> '+tests[i].name+'</small><br />' +
'<small><strong>'+Lang.get('file')+':</strong> '+tests[i].file+'</small><br />' +
(tests[i].message
? '<small><strong>'+Lang.get('message')+':</strong> '+tests[i].message+'</small>'
: '') +
'</td>' +
var rows = $('<tr>' +
'<td>' + (tests[i].pass ? '<span class="label label-success">' + Lang.get('success') + '</span>' : '<span class="label label-danger">' + Lang.get('failed') + '</span>') + '</td>' +
'<td>' + tests[i].suite + '</td>' +
'<td>' + tests[i].feature + '</td>' +
'<td>' + tests[i].file + '</td>' +
'<td>' + ((tests[i].message) ? tests[i].message : '') + '</td>' +
'<td>' + tests[i].time + '</td>' +
'</tr>');
if (!tests[i].pass) {
rows.first().addClass('danger');
} else {
rows.first().addClass('success');
}
tbody.append(rows);
}
$('#build-codeception-errors').show();
},
onUpdateMeta: function(e) {
onUpdateMeta: function (e) {
if (!e.queryData) {
return;
}
@ -97,6 +89,7 @@ var codeceptionPlugin = ActiveBuild.UiPlugin.extend({
var data = this.lastMeta[0].meta_value;
var tfoot = $('#codeception-data tfoot');
tfoot.empty();
var row = $('<tr>' +

View file

@ -7,24 +7,25 @@ var locPlugin = ActiveBuild.UiPlugin.extend({
rendered: false,
chartData: null,
register: function() {
register: function () {
var self = this;
var query = ActiveBuild.registerQuery('phploc-lines', -1, {num_builds: 10, key: 'phploc'})
$(window).on('phploc-lines', function(data) {
$(window).on('phploc-lines', function (data) {
self.onUpdate(data);
});
$(window).on('build-updated', function(data) {
$(window).on('build-updated', function (data) {
if (data.queryData && data.queryData.status > 1 && !self.rendered) {
query();
}
});
},
render: function() {
render: function () {
var self = this;
var container = $('<div id="phploc-lines" style="width: 100%; height: 300px"></div>');
container.append('<canvas id="phploc-lines-chart" style="width: 100%; height: 300px"></canvas>');
$(document).on('shown.bs.tab', function () {
@ -35,12 +36,12 @@ var locPlugin = ActiveBuild.UiPlugin.extend({
return container;
},
onUpdate: function(e) {
onUpdate: function (e) {
this.lastData = e.queryData;
this.displayChart();
},
displayChart: function() {
displayChart: function () {
var self = this;
var builds = this.lastData;
self.rendered = true;
@ -50,26 +51,26 @@ var locPlugin = ActiveBuild.UiPlugin.extend({
datasets: [
{
label: Lang.get('lines'),
strokeColor: "rgba(60,141,188,1)",
pointColor: "rgba(60,141,188,1)",
strokeColor: "#555299",
pointColor: "#555299",
data: []
},
{
label: Lang.get('logical_lines'),
strokeColor: "rgba(245,105,84,1)",
pointColor: "rgba(245,105,84,1)",
strokeColor: "#00A65A",
pointColor: "#00A65A",
data: []
},
{
label: Lang.get('comment_lines'),
strokeColor: "rgba(0,166,90,1)",
pointColor: "rgba(0,166,90,1)",
strokeColor: "#8AA4AF",
pointColor: "#8AA4AF",
data: []
},
{
label: Lang.get('noncomment_lines'),
strokeColor: "rgba(0,192,239,1)",
pointColor: "rgba(0,192,239,1)",
strokeColor: "#00A7D0",
pointColor: "#00A7D0",
data: []
}
]

View file

@ -6,35 +6,38 @@ var phpspecPlugin = ActiveBuild.UiPlugin.extend({
displayOnUpdate: false,
rendered: false,
register: function() {
register: function () {
var self = this;
var query = ActiveBuild.registerQuery('phpspec', -1, {key: 'phpspec'})
$(window).on('phpspec', function(data) {
$(window).on('phpspec', function (data) {
self.onUpdate(data);
});
$(window).on('build-updated', function() {
$(window).on('build-updated', function () {
if (!self.rendered) {
self.displayOnUpdate = true;
query();
}
});
},
render: function() {
render: function () {
return $('<table class="table table-striped" id="phpspec-data">' +
return $('<table class="table table-hover" id="phpspec-data">' +
'<thead>' +
'<tr>' +
' <th>'+Lang.get('suite')+'</th>' +
' <th>'+Lang.get('test')+'</th>' +
' <th>'+Lang.get('result')+'</th>' +
' <th>' + Lang.get('status') + '</th>' +
' <th>' + Lang.get('suite') + '</th>' +
' <th>' + Lang.get('test') + '</th>' +
' <th>' + Lang.get('test_message') + '</th>' +
' <th>' + Lang.get('codeception_time') + '</th>' +
'</tr>' +
'</thead><tbody></tbody></table>');
},
onUpdate: function(e) {
onUpdate: function (e) {
if (!e.queryData) {
$('#build-phpspec-errors').hide();
return;
@ -45,6 +48,7 @@ var phpspecPlugin = ActiveBuild.UiPlugin.extend({
var tests = this.lastData[0].meta_value;
var tbody = $('#phpspec-data tbody');
tbody.empty();
for (var i in tests.suites) {
@ -55,18 +59,14 @@ var phpspecPlugin = ActiveBuild.UiPlugin.extend({
var row = $(
'<tr>' +
'<td>' + ((test_case.status == 'passed') ? '<span class="label label-success">' + Lang.get('success') + '</span>' : '<span class="label label-danger">' + Lang.get('failed') + '</span>') + '</td>' +
'<td>' + test_suite.name + '</td>' +
'<td title="' + Lang.get('took_n_seconds', test_case['time']) + '">' + test_case.name + '</td>' +
'<td>' + (test_case.message ? test_case.message : Lang.get('ok')) + '</td>' +
'<td>' + test_case.name + '</td>' +
'<td>' + (test_case.message ? test_case.message : '') + '</td>' +
'<td>' + test_case['time'] + '</td>' +
'</tr>'
);
if (test_case.status != 'passed') {
row.addClass('danger');
} else {
row.addClass('success');
}
tbody.append(row);
}
}

View file

@ -5,22 +5,22 @@ var phptalPlugin = ActiveBuild.UiPlugin.extend({
lastData: null,
rendered: false,
register: function() {
register: function () {
var self = this;
var query = ActiveBuild.registerQuery('phptallint-data', -1, {key: 'phptallint-data'})
$(window).on('phptallint-data', function(data) {
$(window).on('phptallint-data', function (data) {
self.onUpdate(data);
});
$(window).on('build-updated', function() {
$(window).on('build-updated', function () {
if (!self.rendered) {
query();
}
});
},
render: function() {
render: function () {
return $('<table class="table table-hover" id="phptal-data">' +
'<thead>' +
'<tr>' +
@ -31,7 +31,7 @@ var phptalPlugin = ActiveBuild.UiPlugin.extend({
'</thead><tbody></tbody></table>');
},
onUpdate: function(e) {
onUpdate: function (e) {
if (!e.queryData) {
$('#build-phptal').hide();
return;
@ -42,6 +42,7 @@ var phptalPlugin = ActiveBuild.UiPlugin.extend({
var errors = this.lastData[0].meta_value;
var tbody = $('#phptal-data tbody');
tbody.empty();
if (errors.length == 0) {
@ -56,13 +57,13 @@ var phptalPlugin = ActiveBuild.UiPlugin.extend({
var fileLink = ActiveBuild.fileLinkTemplate.replace('{FILE}', file);
fileLink = fileLink.replace('{LINE}', errors[i].line);
file = '<a target="_blank" href="'+fileLink+'">' + file + '</a>';
file = '<a target="_blank" href="' + fileLink + '">' + file + '</a>';
}
var row = $('<tr>' +
'<td>'+file+'</td>' +
'<td>'+errors[i].line+'</td>' +
'<td>'+errors[i].message+'</td></tr>');
'<td>' + file + '</td>' +
'<td>' + errors[i].line + '</td>' +
'<td>' + errors[i].message + '</td></tr>');
if (errors[i].type == 'error') {
row.addClass('danger');

View file

@ -6,22 +6,22 @@ var phpunitPlugin = ActiveBuild.UiPlugin.extend({
displayOnUpdate: false,
rendered: false,
statusMap: {
success : 'ok',
success: 'ok',
failed: 'remove',
error: 'warning-sign',
todo: 'info-sign',
skipped: 'exclamation-sign'
},
register: function() {
register: function () {
var self = this;
var query = ActiveBuild.registerQuery('phpunit-data', -1, {key: 'phpunit-data'})
$(window).on('phpunit-data', function(data) {
$(window).on('phpunit-data', function (data) {
self.onUpdate(data);
});
$(window).on('build-updated', function() {
$(window).on('build-updated', function () {
if (!self.rendered) {
self.displayOnUpdate = true;
query();
@ -29,19 +29,18 @@ var phpunitPlugin = ActiveBuild.UiPlugin.extend({
});
},
render: function() {
render: function () {
return $('<table class="table table-hover" id="phpunit-data">' +
'<thead>' +
'<tr>' +
'<th>'+Lang.get('status')+'</th>' +
'<th>'+Lang.get('test_message')+'</th>' +
'<th>'+Lang.get('trace')+'</th>' +
'<th>' + Lang.get('status') + '</th>' +
'<th>' + Lang.get('test_message') + '</th>' +
'<th>' + Lang.get('trace') + '</th>' +
'</tr>' +
'</thead><tbody></tbody></table>');
},
onUpdate: function(e) {
onUpdate: function (e) {
if (!e.queryData) {
$('#build-phpunit-errors').hide();
return;
@ -53,15 +52,17 @@ var phpunitPlugin = ActiveBuild.UiPlugin.extend({
var tests = this.lastData[0].meta_value;
var thead = $('#phpunit-data thead tr');
var tbody = $('#phpunit-data tbody');
thead.empty().append('<th>'+Lang.get('status')+'</th><th>'+Lang.get('test_message')+'</th><th>'+Lang.get('trace')+'</th>');
thead.empty().append('<th>' + Lang.get('status') + '</th><th>' + Lang.get('test_message') + '</th><th>' + Lang.get('trace') + '</th>');
tbody.empty();
if (tests.length == 0) {
$('#build-phpunit-errors').hide();
return;
}
var counts = { success: 0, failed: 0, error: 0, skipped: 0, todo: 0 }, total = 0;
var counts = {success: 0, failed: 0, error: 0, skipped: 0, todo: 0}, total = 0;
for (var i in tests) {
var severity = tests[i].severity || (tests[i].pass ? 'success' : 'failed'),
@ -73,7 +74,7 @@ var phpunitPlugin = ActiveBuild.UiPlugin.extend({
severity = 'failed';
}
var status = $('<td><span class="label label-' + label + '">'+Lang.get(severity)+'</span></td>'),
var status = $('<td><span class="label label-' + label + '">' + Lang.get(severity) + '</span></td>'),
content = $('<td></td>'),
trace = $('<td></td>'),
message = $('<div class="visible-line-breaks"></div>').appendTo(content),
@ -104,23 +105,23 @@ var phpunitPlugin = ActiveBuild.UiPlugin.extend({
$('#build-phpunit-errors').show();
},
repr: function(data)
{
switch(typeof(data)) {
repr: function (data) {
switch (typeof(data)) {
case 'boolean':
return '<span class="boolean">' + (data ? 'true' : 'false') + '</span>';
case 'string':
return '<span class="string">"' + data + '"</span>';
case 'undefined': case null:
case 'undefined':
case null:
return '<span class="null">null</span>';
case 'object':
var rows = [];
if(data instanceof Array) {
for(var i in data) {
if (data instanceof Array) {
for (var i in data) {
rows.push('<tr><td colspan="3">' + this.repr(data[i]) + ',</td></tr>');
}
} else {
for(var key in data) {
for (var key in data) {
rows.push(
'<tr>' +
'<td>' + this.repr(key) + '</td>' +
@ -138,10 +139,10 @@ var phpunitPlugin = ActiveBuild.UiPlugin.extend({
return '???';
},
buildTrace: function(trace){
buildTrace: function (trace) {
var list = '<ol reversed>';
trace.forEach(function(line){
trace.forEach(function (line) {
list += '<li>' + line + '</li>';
});
list += '</ol>';

View file

@ -2,35 +2,47 @@ var SummaryPlugin = ActiveBuild.UiPlugin.extend({
id: 'build-summary',
css: 'col-xs-12',
title: Lang.get('build-summary'),
statusLabels: [Lang.get('pending'), Lang.get('running'), Lang.get('success'), Lang.get('failed'), Lang.get('failed_allowed')],
statusClasses: ['info', 'warning', 'success', 'danger', 'danger'],
statusLabels: [
Lang.get('pending'),
Lang.get('running'),
Lang.get('success'),
Lang.get('failed'),
Lang.get('failed_allowed')
],
statusClasses: [
'info',
'warning',
'success',
'danger',
'danger'
],
register: function() {
register: function () {
var self = this;
var query = ActiveBuild.registerQuery('plugin-summary', 5, {key: 'plugin-summary'})
$(window).on('plugin-summary', function(data) {
$(window).on('plugin-summary', function (data) {
self.onUpdate(data);
});
$(window).on('build-updated', function() {
$(window).on('build-updated', function () {
query();
});
},
render: function() {
render: function () {
return $(
'<table class="table table-hover" id="plugin-summary">' +
'<thead><tr>' +
'<th>'+Lang.get('stage')+'</th>' +
'<th>'+Lang.get('plugin')+'</th>' +
'<th>'+Lang.get('status')+'</th>' +
'<th>' + Lang.get('stage') + '</th>' +
'<th>' + Lang.get('plugin') + '</th>' +
'<th>' + Lang.get('status') + '</th>' +
'<th class="text-right">' + Lang.get('duration') + ' (' + Lang.get('seconds') + ')</th>' +
'</tr></thead><tbody></tbody></table>'
);
},
onUpdate: function(e) {
onUpdate: function (e) {
if (!e.queryData) {
$('#build-summary').hide();
return;
@ -38,12 +50,13 @@ var SummaryPlugin = ActiveBuild.UiPlugin.extend({
var tbody = $('#plugin-summary tbody'),
summary = e.queryData[0].meta_value;
tbody.empty();
for(var stage in summary) {
for(var plugin in summary[stage]) {
for (var stage in summary) {
for (var plugin in summary[stage]) {
var data = summary[stage][plugin],
duration = data.started ? ((data.ended || Math.floor(Date.now()/1000)) - data.started) : '-';
duration = data.started ? ((data.ended || Math.floor(Date.now() / 1000)) - data.started) : '-';
tbody.append(
'<tr>' +
'<td>' + Lang.get('stage_' + stage) + '</td>' +

View file

@ -19,7 +19,7 @@ var warningsPlugin = ActiveBuild.UiPlugin.extend({
rendered: false,
chartData: null,
register: function() {
register: function () {
var self = this;
var queries = [];
@ -27,11 +27,11 @@ var warningsPlugin = ActiveBuild.UiPlugin.extend({
queries.push(ActiveBuild.registerQuery(key, -1, {num_builds: 10, key: key}));
}
$(window).on('codeception-errors phptallint-warnings phptallint-errors phplint-errors phpunit-errors phpmd-warnings phpdoccheck-warnings phpcpd-warnings phpcs-warnings phpcs-errors', function(data) {
$(window).on('codeception-errors phptallint-warnings phptallint-errors phplint-errors phpunit-errors phpmd-warnings phpdoccheck-warnings phpcpd-warnings phpcs-warnings phpcs-errors', function (data) {
self.onUpdate(data);
});
$(window).on('build-updated', function(data) {
$(window).on('build-updated', function (data) {
if (!self.rendered && data.queryData && data.queryData.status > 1) {
self.displayOnUpdate = true;
for (var query in queries) {
@ -41,9 +41,10 @@ var warningsPlugin = ActiveBuild.UiPlugin.extend({
});
},
render: function() {
render: function () {
var self = this;
var container = $('<div id="build-warnings" style="width: 100%; height: 300px"></div>');
container.append('<canvas id="build-warnings-linechart" style="width: 100%; height: 300px"></canvas>');
$(document).on('shown.bs.tab', function () {
@ -54,7 +55,7 @@ var warningsPlugin = ActiveBuild.UiPlugin.extend({
return container;
},
onUpdate: function(e) {
onUpdate: function (e) {
var self = this;
var builds = e.queryData;
@ -79,11 +80,22 @@ var warningsPlugin = ActiveBuild.UiPlugin.extend({
}
},
displayChart: function() {
displayChart: function () {
var self = this;
self.rendered = true;
var colors = ['#4D4D4D', '#5DA5DA', '#FAA43A', '#60BD68', '#F17CB0', '#B2912F', '#B276B2', '#DECF3F', '#F15854', '#4D4D4D'];
var colors = [
'#FF0084',
'#D33724',
'#FF851B',
'#F7BE64',
'#B5BBC8',
'#555299',
'#7EDEDE',
'#00A7D0',
'#B5BBC8',
'#001F3F'
];
self.chartData = {
labels: [],

View file

@ -6,7 +6,7 @@ var Build = Class.extend({
queries: {},
updateInterval: null,
init: function(build) {
init: function (build) {
var self = this;
self.buildId = build;
},
@ -18,7 +18,7 @@ var Build = Class.extend({
self.registerQuery('build-updated', 5);
$(window).on('build-updated', function(data) {
$(window).on('build-updated', function (data) {
self.buildData = data.queryData;
@ -68,12 +68,12 @@ var Build = Class.extend({
});
},
registerQuery: function(name, seconds, query) {
registerQuery: function (name, seconds, query) {
var self = this;
var uri = 'build/ajax-meta/' + self.buildId;
var query = query || {};
var cb = function() {
var cb = function () {
var fullUri = window.APP_URL + uri;
if (name == 'build-updated') {
@ -84,7 +84,7 @@ var Build = Class.extend({
dataType: "json",
url: fullUri,
data: query,
success: function(data) {
success: function (data) {
$(window).trigger({type: name, queryData: data});
},
error: handleFailedAjax
@ -102,7 +102,7 @@ var Build = Class.extend({
clearInterval(this.queries[name]);
},
registerPlugin: function(plugin) {
registerPlugin: function (plugin) {
this.plugins[plugin.id] = plugin;
plugin.register();
},
@ -110,14 +110,14 @@ var Build = Class.extend({
storePluginOrder: function () {
var renderOrder = [];
$('.ui-plugin > div').each(function() {
$('.ui-plugin > div').each(function () {
renderOrder.push($(this).attr('id'));
});
localStorage.setItem('app-plugin-order', JSON.stringify(renderOrder));
},
renderPlugins: function() {
renderPlugins: function () {
var self = this;
var rendered = [];
var renderOrder = localStorage.getItem('app-plugin-order');
@ -149,7 +149,7 @@ var Build = Class.extend({
$(window).trigger({type: 'build-updated', queryData: self.buildData});
},
renderPlugin: function(plugin) {
renderPlugin: function (plugin) {
var output = plugin.render();
output = $('<div class="box-body"></div>').append(output);
@ -160,9 +160,9 @@ var Build = Class.extend({
if (plugin.title) {
content.prepend(
'<div class="box-header"><h3 class="box-title">'+plugin.title+'</h3>'+
'<div class="box-tools pull-right">'+
'<button type="button" class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse">'+
'<div class="box-header"><h3 class="box-title">' + plugin.title + '</h3>' +
'<div class="box-tools pull-right">' +
'<button type="button" class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse">' +
'<i class="fa fa-minus"></i></button></div></div>'
);
}
@ -177,13 +177,13 @@ var Build = Class.extend({
css: 'col-xs-12',
box: false,
init: function(){
init: function () {
},
register: function() {
register: function () {
var self = this;
$(window).on('build-updated', function(data) {
$(window).on('build-updated', function (data) {
self.onUpdate(data);
});
},

View file

@ -3,14 +3,15 @@
* MIT Licensed.
*/
// Inspired by base2 and Prototype
(function(){
var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;
(function () {
var initializing = false, fnTest = /xyz/.test(function () {xyz;}) ? /\b_super\b/ : /.*/;
// The base Class implementation (does nothing)
this.Class = function(){};
this.Class = function () {
};
// Create a new Class that inherits from this class
Class.extend = function(prop) {
Class.extend = function (prop) {
var _super = this.prototype;
// Instantiate a base class (but only create the instance,
@ -24,8 +25,8 @@
// Check if we're overwriting an existing function
prototype[name] = typeof prop[name] == "function" &&
typeof _super[name] == "function" && fnTest.test(prop[name]) ?
(function(name, fn){
return function() {
(function (name, fn) {
return function () {
var tmp = this._super;
// Add a new ._super() method that is the same method
@ -46,7 +47,7 @@
// The dummy class constructor
function Class() {
// All construction is actually done in the init method
if ( !initializing && this.init )
if (!initializing && this.init)
this.init.apply(this, arguments);
}

View file

@ -158,7 +158,7 @@ class BuildStatusController extends Controller
}
}
$cacheDir = RUNTIME_DIR . '/status_cache/';
$cacheDir = RUNTIME_DIR . 'status_cache/';
$cacheFile = $cacheDir . md5($imageUrl) . '.svg';
if (!is_file($cacheFile)) {
$image = file_get_contents($imageUrl);

View file

@ -312,7 +312,7 @@ PHP Censor',
'seconds' => 'сек.',
'plugin' => 'Плагин',
'stage_setup' => 'Установка',
'stage_test' => 'тестирование',
'stage_test' => 'Тестирование',
'stage_complete' => 'Завершение',
'stage_success' => 'Успешное завершение',
'stage_failure' => 'Провал',