FinanceBuddy: per-board opt-in gate on Integrations page (v0.3) new files Helper Template
This commit is contained in:
28
Helper/FinanceHelper.php
Normal file
28
Helper/FinanceHelper.php
Normal 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;
|
||||
}
|
||||
}
|
||||
20
Template/project/integration.php
Normal file
20
Template/project/integration.php
Normal 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>
|
||||
Reference in New Issue
Block a user