50 lines
1.5 KiB
PHP
50 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Kanboard\Plugin\OrganonTweaks\Helper;
|
|
|
|
use Kanboard\Core\Base;
|
|
|
|
/**
|
|
* Per-board helper for OrganonTweaks.
|
|
*
|
|
* Resolves the 3-state "emphasize due date" setting for the CURRENT board (read from the route
|
|
* project_id, which the router populates for pretty URLs before the layout renders):
|
|
* per-board 'on' -> on, 'off' -> off, 'default'/absent -> follow the LIVE global default.
|
|
*
|
|
* The stored values are the non-falsy strings 'on'/'off' (not '1'/'0'): Kanboard's
|
|
* MetadataModel::get() uses `?:`, and PHP treats the string "0" as falsy, so a stored "0" would
|
|
* come back as the 'default' fallback and "Always off" would never be honored.
|
|
*/
|
|
class OrganonProjectHelper extends Base
|
|
{
|
|
const EMPHASIZE_KEY = 'organon_tweaks_emphasize_duedate';
|
|
const EMPHASIZE_DEFAULT_KEY = 'organon_tweaks_emphasize_duedate_default';
|
|
|
|
/**
|
|
* Should the current board emphasize the due date? Board pages only (project_id in the route).
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function isEmphasizeDueDate()
|
|
{
|
|
$project_id = $this->request->getIntegerParam('project_id');
|
|
|
|
if ($project_id <= 0) {
|
|
return false;
|
|
}
|
|
|
|
$value = $this->projectMetadataModel->get($project_id, self::EMPHASIZE_KEY, 'default');
|
|
|
|
if ($value === 'on') {
|
|
return true;
|
|
}
|
|
|
|
if ($value === 'off') {
|
|
return false;
|
|
}
|
|
|
|
// 'default' (or absent) -> follow the live global default.
|
|
return (int) $this->configModel->get(self::EMPHASIZE_DEFAULT_KEY, 0) === 1;
|
|
}
|
|
}
|