recurring:XY search keyword + auto-added recurring filter bookmarks v1.7
This commit is contained in:
23
Plugin.php
23
Plugin.php
@@ -58,26 +58,29 @@ class Plugin extends Base
|
||||
));
|
||||
}
|
||||
|
||||
// Auto-managed shared custom filters (v1.5 "Show all tasks", v1.6 month filters). Ensured
|
||||
// lazily whenever a project header renders (covers old + new boards); each group is gated by
|
||||
// its own config toggle inside OrganonProjectHelper::ensureBoardFilters(). The toggles also
|
||||
// bulk add/remove the filters (ConfigController).
|
||||
// Auto-managed shared custom filters (v1.5 "Show all tasks", v1.6 month filters, v1.7
|
||||
// recurring filters). Ensured lazily whenever a project header renders (covers old + new
|
||||
// boards); each group is gated by its own config toggle inside
|
||||
// OrganonProjectHelper::ensureBoardFilters(). The toggles also bulk add/remove the filters.
|
||||
$showAllFilters = (int) $this->configModel->get('organon_tweaks_show_all_filter', 1) === 1;
|
||||
$monthFilters = (int) $this->configModel->get('organon_tweaks_month_filters', 1) === 1;
|
||||
if ($showAllFilters || $monthFilters) {
|
||||
$recurringFilters = (int) $this->configModel->get('organon_tweaks_recurring_filters', 1) === 1;
|
||||
if ($showAllFilters || $monthFilters || $recurringFilters) {
|
||||
$this->template->hook->attach('template:project:header:before', 'organonTweaks:project_header/board_filters');
|
||||
}
|
||||
|
||||
// Custom board-search keywords, registered into the task lexer by extending its factory
|
||||
// service (Pimple preserves factory status on extend, so the lexer stays per-request fresh).
|
||||
// `duemonth:VALUE` = a whole calendar month; `aroundmonth:VALUE` = that month padded by 10
|
||||
// days on each side. Always available to type, independent of the bookmark toggles above.
|
||||
// Guarded so a future Kanboard service rename no-ops (keyword absent) instead of breaking.
|
||||
// `duemonth:VALUE` / `aroundmonth:VALUE` = a calendar month (padded by 10 days for around);
|
||||
// `recurring:XY` = classify recurrence (X system evt/cal/any, Y role ori/dup/all). Always
|
||||
// available to type, independent of the bookmark toggles above. Guarded so a future Kanboard
|
||||
// service rename no-ops (keyword absent) instead of breaking.
|
||||
if (isset($this->container['taskLexer'])) {
|
||||
$this->container->extend('taskLexer', function ($builder, $c) {
|
||||
return $builder
|
||||
->withFilter((new \Kanboard\Plugin\OrganonTweaks\Filter\TaskMonthRangeFilter())->setAttribute('duemonth')->setPadDays(0))
|
||||
->withFilter((new \Kanboard\Plugin\OrganonTweaks\Filter\TaskMonthRangeFilter())->setAttribute('aroundmonth')->setPadDays(10));
|
||||
->withFilter((new \Kanboard\Plugin\OrganonTweaks\Filter\TaskMonthRangeFilter())->setAttribute('aroundmonth')->setPadDays(10))
|
||||
->withFilter((new \Kanboard\Plugin\OrganonTweaks\Filter\TaskRecurringFilter())->setDatabase($c['db']));
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -106,7 +109,7 @@ class Plugin extends Base
|
||||
|
||||
public function getPluginVersion()
|
||||
{
|
||||
return '1.6.1';
|
||||
return '1.7.0';
|
||||
}
|
||||
|
||||
public function getPluginHomepage()
|
||||
|
||||
Reference in New Issue
Block a user