65 lines
3.1 KiB
PHP
65 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace Kanboard\Plugin\OrganonTweaks\Controller;
|
|
|
|
use Kanboard\Controller\BaseController;
|
|
|
|
/**
|
|
* Settings page for the OrganonTweaks plugin: one toggle per tweak.
|
|
*/
|
|
class ConfigController extends BaseController
|
|
{
|
|
public function show()
|
|
{
|
|
$this->response->html($this->helper->layout->config('organonTweaks:config/show', array(
|
|
'title' => t('Settings').' > '.t('Organon Tweaks'),
|
|
'values' => array(
|
|
'organon_tweaks_always_comment_icon' => (int) $this->configModel->get('organon_tweaks_always_comment_icon', 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_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),
|
|
'organon_tweaks_show_all_filter' => (int) $this->configModel->get('organon_tweaks_show_all_filter', 1),
|
|
),
|
|
'errors' => array(),
|
|
)));
|
|
}
|
|
|
|
public function save()
|
|
{
|
|
$values = $this->request->getValues();
|
|
|
|
$alwaysCommentIcon = isset($values['organon_tweaks_always_comment_icon']) ? 1 : 0;
|
|
$keepScroll = isset($values['organon_tweaks_keep_scroll']) ? 1 : 0;
|
|
$quickClickOnly = isset($values['organon_tweaks_quick_click_only']) ? 1 : 0;
|
|
$enhanceRecurrence = isset($values['organon_tweaks_enhance_recurrence']) ? 1 : 0;
|
|
$emphasizeDueDateDefault = isset($values['organon_tweaks_emphasize_duedate_default']) ? 1 : 0;
|
|
$showAllFilter = isset($values['organon_tweaks_show_all_filter']) ? 1 : 0;
|
|
|
|
if ($this->configModel->save(array(
|
|
'organon_tweaks_always_comment_icon' => $alwaysCommentIcon,
|
|
'organon_tweaks_keep_scroll' => $keepScroll,
|
|
'organon_tweaks_quick_click_only' => $quickClickOnly,
|
|
'organon_tweaks_enhance_recurrence' => $enhanceRecurrence,
|
|
'organon_tweaks_emphasize_duedate_default' => $emphasizeDueDateDefault,
|
|
'organon_tweaks_show_all_filter' => $showAllFilter,
|
|
))) {
|
|
$this->flash->success(t('Settings saved successfully.'));
|
|
} else {
|
|
$this->flash->failure(t('Unable to save your settings.'));
|
|
}
|
|
|
|
// Apply the "Show all tasks" toggle across all boards immediately: on -> (re)create the
|
|
// filter everywhere, off -> remove every one (it is a plugin-managed, reserved-name filter).
|
|
$projectHelper = new \Kanboard\Plugin\OrganonTweaks\Helper\OrganonProjectHelper($this->container);
|
|
|
|
if ($showAllFilter === 1) {
|
|
$projectHelper->addShowAllFilterToAllProjects();
|
|
} else {
|
|
$projectHelper->removeAllShowAllFilters();
|
|
}
|
|
|
|
$this->response->redirect($this->helper->url->to('ConfigController', 'show', array('plugin' => 'OrganonTweaks')));
|
|
}
|
|
}
|