diff --git a/Events.php b/Events.php index 438bc92e..af6a3ec4 100644 --- a/Events.php +++ b/Events.php @@ -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 @@ -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) { @@ -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) { @@ -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); @@ -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) { @@ -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); @@ -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); @@ -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)"); diff --git a/config.php b/config.php index 4acd22b0..0dd7dc58 100644 --- a/config.php +++ b/config.php @@ -1,6 +1,5 @@ Yii::t('TasksModule.base', 'If empty any user can complete the task.'), + ]; + } + /** * @inheritdoc */ diff --git a/views/task/edit-assignment.php b/views/task/edit-assignment.php index 5db49c1c..3ff1e6ca 100644 --- a/views/task/edit-assignment.php +++ b/views/task/edit-assignment.php @@ -8,7 +8,6 @@ use humhub\modules\user\widgets\UserPickerField; use humhub\widgets\bootstrap\Button; -use humhub\widgets\bootstrap\Link; /* @var $form \humhub\widgets\form\ActiveForm */ /* @var $taskForm \humhub\modules\tasks\models\forms\TaskForm */ @@ -24,9 +23,8 @@ 'selection' => $taskForm->task->taskAssignedUsers, 'url' => $taskForm->getTaskAssignedPickerUrl(), 'placeholder' => Yii::t('TasksModule.base', 'Assign users'), -])->hint(Yii::t('TasksModule.base', 'If empty any user can complete the task.'), []) ?> - - + 'selfSelect' => Yii::t('TasksModule.base', 'Assign myself'), +]) ?>
@@ -35,10 +33,9 @@ 'selection' => $responsible, 'url' => $taskForm->getTaskResponsiblePickerUrl(), 'placeholder' => Yii::t('TasksModule.base', 'Add responsible users'), + 'selfSelect' => Yii::t('TasksModule.base', 'Assign myself'), ]) ?> - -
field($taskForm->task, 'review')->checkbox() ?> diff --git a/widgets/lists/views/completedTaskListItem.php b/widgets/lists/views/completedTaskListItem.php index e1c0ac85..44e251cc 100644 --- a/widgets/lists/views/completedTaskListItem.php +++ b/widgets/lists/views/completedTaskListItem.php @@ -5,7 +5,7 @@ /* @var $options array */ use humhub\modules\tasks\helpers\TaskListUrl; -use humhub\widgets\bootstrap\Button; +use humhub\widgets\bootstrap\Link; use humhub\helpers\Html; ?> @@ -17,7 +17,7 @@ title); ?>
- tooltip(Yii::t('TasksModule.base', 'Delete')) ->icon('trash') ->right()->sm() @@ -25,7 +25,7 @@ ->loader(false) ->visible($canEdit) ->confirm() ?> - tooltip(Yii::t('TasksModule.base', 'Edit')) ->icon('pencil') ->right()->sm()->cssClass('me-2') diff --git a/widgets/lists/views/taskList.php b/widgets/lists/views/taskList.php index 6616f322..40e3dfd7 100644 --- a/widgets/lists/views/taskList.php +++ b/widgets/lists/views/taskList.php @@ -12,6 +12,7 @@ use humhub\modules\tasks\widgets\lists\TaskListItem; use humhub\modules\ui\icon\widgets\Icon; use humhub\widgets\bootstrap\Button; +use humhub\widgets\bootstrap\Link; /* @var $this \humhub\components\View */ /* @var $list \humhub\modules\tasks\models\lists\TaskListInterface */ @@ -48,13 +49,13 @@ - icon('pencil')->sm() + icon('pencil')->sm() ->action('task.list.edit', TaskListUrl::editTaskList($list)) ->loader(false) ->cssClass('task-list-edit task-toggled-color') ->tooltip(Yii::t('TasksModule.base', 'Edit list')) ->visible($canManage) ?> - icon('trash')->sm() + icon('trash')->sm() ->action('deleteList', TaskListUrl::deleteTaskList($list))->loader(false) ->cssClass('task-list-edit task-toggled-color') ->tooltip(Yii::t('TasksModule.base', 'Delete list')) @@ -92,7 +93,7 @@ count($completedTasks)) : ?>
- $remainingCount, 'countTasks' => $remainingCount])) + $remainingCount, 'countTasks' => $remainingCount])) ->icon('chevron-down')->action('showMoreCompleted', TaskListUrl::showMore($list))->cssClass('showMoreCompleted')->loader(true) ?>
diff --git a/widgets/views/changeStatusButton.php b/widgets/views/changeStatusButton.php index fe09646b..9e6a50e5 100644 --- a/widgets/views/changeStatusButton.php +++ b/widgets/views/changeStatusButton.php @@ -3,6 +3,7 @@ use humhub\modules\tasks\models\Task; use humhub\widgets\bootstrap\Button; use humhub\modules\tasks\helpers\TaskUrl; +use humhub\widgets\bootstrap\Link; /* @var $task Task */ /* @var $primaryStateConfig array */ @@ -13,7 +14,7 @@ ?>
- action('task.changeState', $primaryUrl)->sm()->icon($primaryStateConfig['icon'])->loader(true);?> + action('task.changeState', $primaryUrl)->sm()->icon($primaryStateConfig['icon']) ?>