Added 'Build with debug' button for Admin on project page. Issue #22
This commit is contained in:
parent
96aa345dc0
commit
ebb08d868b
|
@ -115,8 +115,16 @@ class ProjectController extends PHPCensor\Controller
|
|||
throw new NotFoundException(Lang::get('project_x_not_found', $projectId));
|
||||
}
|
||||
|
||||
$debug = (boolean)$this->getParam('debug', false);
|
||||
$extra = null;
|
||||
if ($debug && $this->currentUserIsAdmin()) {
|
||||
$extra = [
|
||||
'debug' => true,
|
||||
];
|
||||
}
|
||||
|
||||
$email = $_SESSION['php-censor-user']->getEmail();
|
||||
$build = $this->buildService->createBuild($project, null, urldecode($branch), $email);
|
||||
$build = $this->buildService->createBuild($project, null, urldecode($branch), $email, null, $extra);
|
||||
|
||||
if ($this->buildService->queueError) {
|
||||
$_SESSION['global_error'] = Lang::get('add_to_queue_failed');
|
||||
|
|
|
@ -66,7 +66,8 @@ PHP Censor',
|
|||
'manage_users' => 'Manage Users',
|
||||
'plugins' => 'Plugins',
|
||||
'view' => 'View',
|
||||
'build_now' => 'Build Now',
|
||||
'build_now' => 'Build now',
|
||||
'build_now_debug' => 'Build now with debug',
|
||||
'edit_project' => 'Edit Project',
|
||||
'delete_project' => 'Delete Project',
|
||||
|
||||
|
|
|
@ -65,6 +65,7 @@ PHP Censor',
|
|||
'plugins' => 'Плагины',
|
||||
'view' => 'Отчет',
|
||||
'build_now' => 'Собрать',
|
||||
'build_now_debug' => 'Собрать в режиме отладки',
|
||||
'edit_project' => 'Редактировать проект',
|
||||
'delete_project' => 'Удалить проект',
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ class BuildLogger implements LoggerAwareInterface
|
|||
public function __construct(LoggerInterface $logger, Build $build)
|
||||
{
|
||||
$this->logger = $logger;
|
||||
$this->build = $build;
|
||||
$this->build = $build;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -101,7 +101,10 @@ class BuildLogger implements LoggerAwareInterface
|
|||
*/
|
||||
public function logDebug($message)
|
||||
{
|
||||
if (defined('DEBUG_MODE') && DEBUG_MODE) {
|
||||
if (
|
||||
(defined('DEBUG_MODE') && DEBUG_MODE) ||
|
||||
((boolean)$this->build->getExtra('debug'))
|
||||
) {
|
||||
$this->log("\033[0;36m" . $message . "\033[0m");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -522,6 +522,8 @@ class Build extends Model
|
|||
*/
|
||||
public function setExtra($value)
|
||||
{
|
||||
$value = json_encode($value);
|
||||
|
||||
$this->validateString('Extra', $value);
|
||||
|
||||
if ($this->data['extra'] === $value) {
|
||||
|
|
|
@ -87,7 +87,7 @@ class BuildService
|
|||
}
|
||||
|
||||
if (!is_null($extra)) {
|
||||
$build->setExtra(json_encode($extra));
|
||||
$build->setExtra($extra);
|
||||
}
|
||||
|
||||
$build = $this->buildStore->save($build);
|
||||
|
|
|
@ -16,7 +16,13 @@
|
|||
|
||||
<div class="pull-right btn-group">
|
||||
<?php if (!$project->getArchived()): ?>
|
||||
<a class="btn btn-success" href="<?php print APP_URL . 'project/build/' . $project->getId(); ?><?php echo !empty($branch) ? '/' . urlencode($branch) : '' ?>">
|
||||
<?php if($this->User()->getIsAdmin()): ?>
|
||||
<a class="btn btn-danger" href="<?= APP_URL . 'project/build/' . $project->getId(); ?><?= !empty($branch) ? '/' . urlencode($branch) : '' ?>?debug=1">
|
||||
<?php Lang::out('build_now_debug'); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<a class="btn btn-success" href="<?= APP_URL . 'project/build/' . $project->getId(); ?><?= !empty($branch) ? '/' . urlencode($branch) : '' ?>">
|
||||
<?php Lang::out('build_now'); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
|
|
@ -63,7 +63,7 @@ class BuildTest extends \PHPUnit_Framework_TestCase
|
|||
];
|
||||
|
||||
$build = new Build();
|
||||
$build->setExtra(json_encode($info));
|
||||
$build->setExtra($info);
|
||||
|
||||
$this->assertEquals('Item One', $build->getExtra('item1'));
|
||||
$this->assertEquals(2, $build->getExtra('item2'));
|
||||
|
|
|
@ -100,7 +100,7 @@ class BuildServiceTest extends \PHPUnit_Framework_TestCase
|
|||
$build->setFinished(new \DateTime());
|
||||
$build->setCommitMessage('test');
|
||||
$build->setCommitterEmail('test@example.com');
|
||||
$build->setExtra(json_encode(['item1' => 1001]));
|
||||
$build->setExtra(['item1' => 1001]);
|
||||
|
||||
$returnValue = $this->testedService->createDuplicateBuild($build);
|
||||
|
||||
|
|
Loading…
Reference in a new issue