Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c747d33491 | |||
| 850127e712 | |||
| 70f42352b0 |
@@ -18,6 +18,7 @@ class ConfigController extends BaseController
|
|||||||
'organon_tweaks_keep_scroll' => (int) $this->configModel->get('organon_tweaks_keep_scroll', 1),
|
'organon_tweaks_keep_scroll' => (int) $this->configModel->get('organon_tweaks_keep_scroll', 1),
|
||||||
'organon_tweaks_quick_click_only' => (int) $this->configModel->get('organon_tweaks_quick_click_only', 1),
|
'organon_tweaks_quick_click_only' => (int) $this->configModel->get('organon_tweaks_quick_click_only', 1),
|
||||||
'organon_tweaks_enhance_recurrence' => (int) $this->configModel->get('organon_tweaks_enhance_recurrence', 1),
|
'organon_tweaks_enhance_recurrence' => (int) $this->configModel->get('organon_tweaks_enhance_recurrence', 1),
|
||||||
|
'organon_tweaks_emphasize_duedate_default' => (int) $this->configModel->get('organon_tweaks_emphasize_duedate_default', 0),
|
||||||
),
|
),
|
||||||
'errors' => array(),
|
'errors' => array(),
|
||||||
)));
|
)));
|
||||||
@@ -30,11 +31,13 @@ class ConfigController extends BaseController
|
|||||||
$alwaysCommentIcon = isset($values['organon_tweaks_always_comment_icon']) ? 1 : 0;
|
$alwaysCommentIcon = isset($values['organon_tweaks_always_comment_icon']) ? 1 : 0;
|
||||||
$keepScroll = isset($values['organon_tweaks_keep_scroll']) ? 1 : 0;
|
$keepScroll = isset($values['organon_tweaks_keep_scroll']) ? 1 : 0;
|
||||||
$quickClickOnly = isset($values['organon_tweaks_quick_click_only']) ? 1 : 0;
|
$quickClickOnly = isset($values['organon_tweaks_quick_click_only']) ? 1 : 0;
|
||||||
|
$emphasizeDueDateDefault = isset($values['organon_tweaks_emphasize_duedate_default']) ? 1 : 0;
|
||||||
|
|
||||||
if ($this->configModel->save(array(
|
if ($this->configModel->save(array(
|
||||||
'organon_tweaks_always_comment_icon' => $alwaysCommentIcon,
|
'organon_tweaks_always_comment_icon' => $alwaysCommentIcon,
|
||||||
'organon_tweaks_keep_scroll' => $keepScroll,
|
'organon_tweaks_keep_scroll' => $keepScroll,
|
||||||
'organon_tweaks_quick_click_only' => $quickClickOnly,
|
'organon_tweaks_quick_click_only' => $quickClickOnly,
|
||||||
|
'organon_tweaks_emphasize_duedate_default' => $emphasizeDueDateDefault,
|
||||||
))) {
|
))) {
|
||||||
$this->flash->success(t('Settings saved successfully.'));
|
$this->flash->success(t('Settings saved successfully.'));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
45
Helper/OrganonProjectHelper.php
Normal file
45
Helper/OrganonProjectHelper.php
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<?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 '1' -> on, '0' -> off, 'default'/absent -> follow the LIVE global default.
|
||||||
|
*/
|
||||||
|
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 === '1') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($value === '0') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 'default' (or absent) -> follow the live global default.
|
||||||
|
return (int) $this->configModel->get(self::EMPHASIZE_DEFAULT_KEY, 0) === 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Plugin.php
11
Plugin.php
@@ -20,6 +20,13 @@ class Plugin extends Base
|
|||||||
// Settings page for the plugin's tweaks.
|
// Settings page for the plugin's tweaks.
|
||||||
$this->template->hook->attach('template:config:sidebar', 'organonTweaks:config/sidebar');
|
$this->template->hook->attach('template:config:sidebar', 'organonTweaks:config/sidebar');
|
||||||
|
|
||||||
|
// Per-board tweak: emphasize the due date on the board. Configured with 3-state radios on the
|
||||||
|
// board's Settings -> Integrations (Use default / Always on / Always off); the global default
|
||||||
|
// (for "Use default" boards) lives in the plugin settings above. The emphasis <style> is
|
||||||
|
// emitted into the head only on enabled board pages (gated by OrganonProjectHelper).
|
||||||
|
$this->template->hook->attach('template:project:integrations', 'organonTweaks:project/integration');
|
||||||
|
$this->template->hook->attach('template:layout:head', 'organonTweaks:layout/emphasize_duedate');
|
||||||
|
|
||||||
// Tweak: always show a comment icon on board cards. When a card has no comments
|
// Tweak: always show a comment icon on board cards. When a card has no comments
|
||||||
// yet, add a bubble "+" that opens the same comment modal (add the first comment
|
// yet, add a bubble "+" that opens the same comment modal (add the first comment
|
||||||
// straight from the board). Cards with comments already show the native count.
|
// straight from the board). Cards with comments already show the native count.
|
||||||
@@ -55,7 +62,7 @@ class Plugin extends Base
|
|||||||
public function getHelpers()
|
public function getHelpers()
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
'Plugin\OrganonTweaks\Helper' => array('OrganonColumnHelper'),
|
'Plugin\OrganonTweaks\Helper' => array('OrganonColumnHelper', 'OrganonProjectHelper'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,7 +83,7 @@ class Plugin extends Base
|
|||||||
|
|
||||||
public function getPluginVersion()
|
public function getPluginVersion()
|
||||||
{
|
{
|
||||||
return '1.3.3';
|
return '1.4.0';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPluginHomepage()
|
public function getPluginHomepage()
|
||||||
|
|||||||
@@ -33,6 +33,13 @@
|
|||||||
</p>
|
</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<?= $this->form->checkbox('organon_tweaks_emphasize_duedate_default', t('Emphasize due date by default'), 1, isset($values['organon_tweaks_emphasize_duedate_default']) && $values['organon_tweaks_emphasize_duedate_default'] == 1) ?>
|
||||||
|
<p class="form-help">
|
||||||
|
<?= t('Default for boards set to "Use default": enlarge and bold the due date on the board. Each board can override this under its own Settings -> Integrations.') ?>
|
||||||
|
</p>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<button type="submit" class="btn btn-blue"><?= t('Save') ?></button>
|
<button type="submit" class="btn btn-blue"><?= t('Save') ?></button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
3
Template/layout/emphasize_duedate.php
Normal file
3
Template/layout/emphasize_duedate.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php if ($this->OrganonProjectHelper->isEmphasizeDueDate()): ?>
|
||||||
|
<style>.task-date { font-size: 1.25em; font-weight: bold; }</style>
|
||||||
|
<?php endif ?>
|
||||||
24
Template/project/integration.php
Normal file
24
Template/project/integration.php
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?php $choice = isset($values['organon_tweaks_emphasize_duedate']) && in_array($values['organon_tweaks_emphasize_duedate'], array('1', '0'), true) ? $values['organon_tweaks_emphasize_duedate'] : 'default' ?>
|
||||||
|
|
||||||
|
<h3><i class="fa fa-umbrella fa-fw" aria-hidden="true"></i> <?= t('OrganonTweaks') ?></h3>
|
||||||
|
<div class="listing">
|
||||||
|
<p><strong><?= t('Emphasize due date on the board') ?></strong></p>
|
||||||
|
|
||||||
|
<label style="display:inline-block; margin-right:16px;">
|
||||||
|
<input type="radio" name="organon_tweaks_emphasize_duedate" value="default" <?= $choice === 'default' ? 'checked="checked"' : '' ?>> <?= t('Use default') ?>
|
||||||
|
</label>
|
||||||
|
<label style="display:inline-block; margin-right:16px;">
|
||||||
|
<input type="radio" name="organon_tweaks_emphasize_duedate" value="1" <?= $choice === '1' ? 'checked="checked"' : '' ?>> <?= t('Always on') ?>
|
||||||
|
</label>
|
||||||
|
<label style="display:inline-block; margin-right:16px;">
|
||||||
|
<input type="radio" name="organon_tweaks_emphasize_duedate" value="0" <?= $choice === '0' ? 'checked="checked"' : '' ?>> <?= t('Always off') ?>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<p class="form-help">
|
||||||
|
<?= t('Enlarge and bold the due date on this board. "Use default" follows the global OrganonTweaks setting.') ?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-actions">
|
||||||
|
<button type="submit" class="btn btn-blue"><?= t('Save') ?></button>
|
||||||
|
</div>
|
||||||
Reference in New Issue
Block a user