FinanceBuddy: per-board opt-in gate on Integrations page (v0.3) new files Helper Template

This commit is contained in:
2026-07-07 16:33:41 -03:00
parent 736bf1eac5
commit b25316e58f
2 changed files with 48 additions and 0 deletions

28
Helper/FinanceHelper.php Normal file
View File

@@ -0,0 +1,28 @@
<?php
namespace Kanboard\Plugin\FinanceBuddy\Helper;
use Kanboard\Core\Base;
/**
* Template/controller helper for FinanceBuddy.
*
* FinanceBuddy is opt-in per board: every render and save point is gated on isEnabled(), so an
* un-enabled board is untouched. The flag lives in project metadata (key financebuddy_enabled),
* written by the checkbox on the project's Integrations page.
*/
class FinanceHelper extends Base
{
const ENABLED_KEY = 'financebuddy_enabled';
/**
* Is FinanceBuddy enabled for this board?
*
* @param integer $project_id
* @return bool
*/
public function isEnabled($project_id)
{
return (int) $this->projectMetadataModel->get($project_id, self::ENABLED_KEY, 0) === 1;
}
}

View File

@@ -0,0 +1,20 @@
<h3><i class="fa fa-money fa-fw" aria-hidden="true"></i> <?= t('FinanceBuddy') ?></h3>
<div class="listing">
<?php /* Hidden 0 before the checkbox so unchecking posts a value (a bare unchecked box posts
nothing, which would leave a stale 1). The checkbox's 1 wins when checked. The shared
Integrations form saves this straight into project metadata. */ ?>
<input type="hidden" name="<?= \Kanboard\Plugin\FinanceBuddy\Helper\FinanceHelper::ENABLED_KEY ?>" value="0">
<?= $this->form->checkbox(
\Kanboard\Plugin\FinanceBuddy\Helper\FinanceHelper::ENABLED_KEY,
t('Enable FinanceBuddy on this board'),
1,
isset($values['financebuddy_enabled']) && $values['financebuddy_enabled'] == 1
) ?>
<p class="form-help">
<?= t('When enabled, cards on this board can carry a money value (debit or credit, with optional installments), shown on the card and totalled per column. Boards left disabled are unaffected.') ?>
</p>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-blue"><?= t('Save') ?></button>
</div>