Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
215bc77
Update for HumHub 1.19
yurabakhtin Jan 15, 2026
a737f39
Branch for HumHub 1.19
yurabakhtin Jan 15, 2026
d62c105
Merge pull request #298 from humhub/fix/1019-humhub-v1.19
luke- Jan 15, 2026
ea2b04e
Fix next branch tests
yurabakhtin Jan 16, 2026
b8a446f
Merge pull request #299 from humhub/fix/next-tests
luke- Jan 16, 2026
145557a
Migrated to new ActivityManager
luke- Feb 1, 2026
e5d8cb4
Autocommit PHP CS Fixer
actions-user Feb 1, 2026
3ba2c50
Merge pull request #303 from humhub/php-fixer/2026-02-01-172327
luke- Feb 1, 2026
87c2ae3
Fix migration
luke- Feb 1, 2026
f8fb88e
Merge branch 'develop' of github.com:humhub/tasks into develop
luke- Feb 1, 2026
d100209
Merge branch 'master' into develop
yurabakhtin Feb 27, 2026
95c320b
Remove deprecations
yurabakhtin Feb 27, 2026
3c7fe81
Merge pull request #308 from humhub/enh/1042-remove-deprecations
luke- Feb 27, 2026
7261b61
Remove deprecations
yurabakhtin Mar 11, 2026
9a1157e
Cleaning up REST error handling module as it is handled by core
yurabakhtin May 25, 2026
c6a2bdb
Enh: Updated Translations (translate.humhub.org)
May 30, 2026
230af59
Update module.json
luke- Jun 3, 2026
56aba9b
Merge branch 'master' into develop
luke- Jun 3, 2026
c6088f7
Enh: Updated Translations (translate.humhub.org)
Jun 4, 2026
3221f20
Fix REST API module branch for tests
yurabakhtin Jun 4, 2026
275b19c
Release 1.10.0
luke- Jun 4, 2026
1c3b7f1
Enh: Updated Translations (translate.humhub.org)
Jun 5, 2026
39cdade
Merge branch 'develop' of github.com:humhub/tasks into develop
Jun 5, 2026
14c95a1
Enh: Updated Translations (translate.humhub.org)
Jun 12, 2026
d9e6ec4
Add aria-label attribute for icon-only buttons
yurabakhtin Jun 26, 2026
019f6e5
Merge pull request #325 from humhub/fix/1239-icon-only-aria-label
luke- Jun 26, 2026
fa4253e
Enh: Updated Translations (translate.humhub.org)
Jun 27, 2026
ca5212c
Enh: Updated Translations (translate.humhub.org)
Jun 28, 2026
6ba395b
Merge branch 'master' into develop
luke- Jul 8, 2026
aca12d8
Release 1.10.1
luke- Jul 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/codeception-min-version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ jobs:
with:
module-id: tasks
use-rest-module: true
rest-module-branch: develop
83 changes: 47 additions & 36 deletions Events.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,33 @@

namespace humhub\modules\tasks;

use humhub\commands\IntegrityController;
use humhub\helpers\ControllerHelper;
use humhub\modules\content\components\ContentContainerActiveRecord;
use humhub\modules\dashboard\widgets\Sidebar as DashboardSidebar;
use humhub\modules\notification\models\Notification;
use humhub\modules\rest\Module as RestModule;
use humhub\modules\space\models\Space;
use humhub\modules\space\widgets\Menu as SpaceMenu;
use humhub\modules\space\widgets\Sidebar as SpaceSidebar;
use humhub\modules\tasks\extensions\custom_pages\elements\TaskElement;
use humhub\modules\tasks\extensions\custom_pages\elements\TasksElement;
use humhub\modules\tasks\helpers\TaskListUrl;
use humhub\modules\tasks\helpers\TaskUrl;
use humhub\modules\user\models\User;
use Yii;
use humhub\modules\notification\models\Notification;
use humhub\modules\tasks\jobs\SendReminder;
use humhub\modules\tasks\models\SnippetModuleSettings;
use humhub\modules\tasks\models\Task;
use humhub\modules\tasks\models\checklist\TaskItem;
use humhub\modules\tasks\models\scheduling\TaskReminder;
use humhub\modules\tasks\models\user\TaskUser;
use humhub\modules\tasks\integration\calendar\TaskCalendar;
use humhub\modules\tasks\widgets\MyTasks;
use humhub\modules\tasks\models\user\TaskUser;
use humhub\modules\ui\menu\MenuLink;
use humhub\modules\user\models\User;
use humhub\modules\user\widgets\ProfileMenu;
use humhub\widgets\TopMenu;
use Yii;
use yii\db\Expression;

/* @var $user \humhub\modules\user\models\User */

/**
* Created by PhpStorm.
* User: davidborn
Expand All @@ -45,28 +50,29 @@ public static function onTopMenuInit($event)
/* @var $module Module */
$module = Yii::$app->getModule('tasks');


if (!$module->settings->get('showGlobalMenuItem', false) || Yii::$app->user->isGuest) {
return;
}

/* @var TopMenu $menu */
$menu = $event->sender;

// Is Module enabled on this workspace?
$event->sender->addItem([
$menu->addEntry(new MenuLink([
'label' => Yii::t('TasksModule.base', 'Tasks'),
'id' => 'tasks-global',
'icon' => 'tasks',
'url' => TaskUrl::globalView(),
'sortOrder' => $module->settings->get('menuSortOrder', 500),
'isActive' => (Yii::$app->controller->module && Yii::$app->controller->module->id == 'tasks' && Yii::$app->controller->id == 'global'),
]);
'isActive' => ControllerHelper::isActivePath('tasks', 'global'),
]));
} catch (\Throwable $e) {
Yii::error($e);
}
}

/**
* @param $event \humhub\modules\calendar\interfaces\CalendarItemTypesEvent
* @return mixed
* @param $event \humhub\modules\calendar\interfaces\event\CalendarItemTypesEvent
*/
public static function onGetCalendarItemTypes($event)
{
Expand All @@ -83,7 +89,7 @@ public static function onGetCalendarItemTypes($event)
}

/**
* @param $event \humhub\modules\calendar\interfaces\CalendarItemsEvent;
* @param $event \humhub\modules\calendar\interfaces\event\CalendarItemsEvent;
*/
public static function onFindCalendarItems($event)
{
Expand All @@ -109,7 +115,9 @@ public static function onDashboardSidebarInit($event)
$settings = SnippetModuleSettings::instantiate();

if ($settings->showMyTasksSnippet()) {
$event->sender->addWidget(MyTasks::class, ['limit' => $settings->myTasksSnippetMaxItems], ['sortOrder' => $settings->myTasksSnippetSortOrder]);
/* @var DashboardSidebar $sidebar */
$sidebar = $event->sender;
$sidebar->addWidget(MyTasks::class, ['limit' => $settings->myTasksSnippetMaxItems], ['sortOrder' => $settings->myTasksSnippetSortOrder]);
}
} catch (\Throwable $e) {
Yii::error($e);
Expand All @@ -123,15 +131,17 @@ public static function onSpaceSidebarInit($event)
return;
}

/* @var $space Space */
$space = $event->sender->space;
/* @var SpaceSidebar $sidebar */
$sidebar = $event->sender;

if ($space->moduleManager->isEnabled('tasks') && $space->isMember()) {
if ($sidebar->space->moduleManager->isEnabled('tasks') && $sidebar->space->isMember()) {
$settings = SnippetModuleSettings::instantiate();
if ($settings->showMyTasksSnippetSpace()) {
$event->sender->addWidget(MyTasks::class, [
'contentContainer' => $space,
'limit' => $settings->myTasksSnippetMaxItems], ['sortOrder' => $settings->myTasksSnippetSortOrder]);
$sidebar->addWidget(
MyTasks::class,
['contentContainer' => $sidebar->space, 'limit' => $settings->myTasksSnippetMaxItems],
['sortOrder' => $settings->myTasksSnippetSortOrder],
);
}
}
} catch (\Throwable $e) {
Expand All @@ -142,17 +152,16 @@ public static function onSpaceSidebarInit($event)
public static function onSpaceMenuInit($event)
{
try {
/* @var $space Space */
$space = $event->sender->space;
/* @var SpaceMenu $menu */
$menu = $event->sender;

if ($space->moduleManager->isEnabled('tasks') && $space->isMember()) {
$event->sender->addItem([
if ($menu->space->moduleManager->isEnabled('tasks') && $menu->space->isMember()) {
$menu->addEntry(new MenuLink([
'label' => Yii::t('TasksModule.base', 'Tasks'),
'group' => 'modules',
'url' => TaskListUrl::taskListRoot($space),
'url' => TaskListUrl::taskListRoot($menu->space),
'icon' => 'tasks',
'isActive' => (Yii::$app->controller->module && Yii::$app->controller->module->id == 'tasks'),
]);
'isActive' => ControllerHelper::isActivePath('tasks'),
]));
}
} catch (\Throwable $e) {
Yii::error($e);
Expand All @@ -161,16 +170,17 @@ public static function onSpaceMenuInit($event)

public static function onProfileMenuInit($event)
{
/* @var $user User */
try {
$user = $event->sender->user;
if ($user->moduleManager->isEnabled('tasks')) {
$event->sender->addItem([
/* @var ProfileMenu $menu */
$menu = $event->sender;

if ($menu->user->moduleManager->isEnabled('tasks')) {
$menu->addEntry(new MenuLink([
'label' => Yii::t('TasksModule.base', 'Tasks'),
'url' => TaskListUrl::taskListRoot($user),
'url' => TaskListUrl::taskListRoot($menu->user),
'icon' => 'tasks',
'isActive' => (Yii::$app->controller->module && Yii::$app->controller->module->id == 'tasks'),
]);
'isActive' => ControllerHelper::isActivePath('tasks'),
]));
}
} catch (\Throwable $e) {
Yii::error($e);
Expand All @@ -186,6 +196,7 @@ public static function onProfileMenuInit($event)
*/
public static function onIntegrityCheck($event)
{
/* @var IntegrityController $integrityController */
$integrityController = $event->sender;
$integrityController->showTestHeadline("Tasks Module - Entries (" . Task::find()->count() . " entries)");

Expand Down
14 changes: 0 additions & 14 deletions Module.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace humhub\modules\tasks;

use humhub\components\console\Application as ConsoleApplication;
use humhub\modules\tasks\helpers\TaskUrl;
use humhub\modules\tasks\models\forms\ConfigureContainerForm;
use humhub\modules\tasks\models\lists\TaskList;
Expand All @@ -24,19 +23,6 @@ class Module extends ContentContainerModule
*/
public $searchPaginationSize = 30;

/**
* @inheritdoc
*/
public function init()
{
parent::init();

if (Yii::$app instanceof ConsoleApplication) {
// Prevents the Yii HelpCommand from crawling all web controllers and possibly throwing errors at REST endpoints if the REST module is not available.
$this->controllerNamespace = 'tasks/commands';
}
}

/**
* @inheritdoc
*/
Expand Down
12 changes: 0 additions & 12 deletions activities/Finished.php

This file was deleted.

19 changes: 7 additions & 12 deletions activities/TaskCompletedActivity.php
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
<?php

/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2018 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*
*/

namespace humhub\modules\tasks\activities;

use humhub\modules\activity\components\BaseActivity;
use humhub\modules\activity\components\BaseContentActivity;
use Yii;

class TaskCompletedActivity extends BaseActivity
class TaskCompletedActivity extends BaseContentActivity
{
public $moduleId = 'tasks';
public $viewName = "taskCompleted";

protected function getMessage(array $params): string
{
return Yii::t('TasksModule.base', '{displayName} completed task "{contentTitle}".', $params);
}
}
19 changes: 7 additions & 12 deletions activities/TaskResetActivity.php
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
<?php

/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2018 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*
*/

namespace humhub\modules\tasks\activities;

use humhub\modules\activity\components\BaseActivity;
use humhub\modules\activity\components\BaseContentActivity;
use Yii;

class TaskResetActivity extends BaseActivity
class TaskResetActivity extends BaseContentActivity
{
public $moduleId = 'tasks';
public $viewName = "taskReset";

protected function getMessage(array $params): string
{
return Yii::t('TasksModule.base', '{displayName} reset task "{contentTitle}".', $params);
}
}
19 changes: 7 additions & 12 deletions activities/TaskReviewedActivity.php
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
<?php

/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2018 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*
*/

namespace humhub\modules\tasks\activities;

use humhub\modules\activity\components\BaseActivity;
use humhub\modules\activity\components\BaseContentActivity;
use Yii;

class TaskReviewedActivity extends BaseActivity
class TaskReviewedActivity extends BaseContentActivity
{
public $moduleId = 'tasks';
public $viewName = "taskReviewed";

protected function getMessage(array $params): string
{
return Yii::t('TasksModule.base', '{displayName} reviewed task "{contentTitle}".', $params);
}
}
19 changes: 7 additions & 12 deletions activities/TaskStartActivity.php
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
<?php

/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2018 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*
*/

namespace humhub\modules\tasks\activities;

use humhub\modules\activity\components\BaseActivity;
use humhub\modules\activity\components\BaseContentActivity;
use Yii;

class TaskStartActivity extends BaseActivity
class TaskStartActivity extends BaseContentActivity
{
public $moduleId = 'tasks';
public $viewName = "taskStart";

protected function getMessage(array $params): string
{
return Yii::t('TasksModule.base', '{displayName} works on task "{contentTitle}".', $params);
}
}
9 changes: 0 additions & 9 deletions activities/views/finished.php

This file was deleted.

16 changes: 0 additions & 16 deletions activities/views/taskCompleted.php

This file was deleted.

16 changes: 0 additions & 16 deletions activities/views/taskReset.php

This file was deleted.

16 changes: 0 additions & 16 deletions activities/views/taskReviewed.php

This file was deleted.

Loading
Loading