[#67244] Remove Dashboards module

Also removes ng `DashboardComponent` and related code.

This functionality has been disabled for a long period of time and it is
not envisaged that it will be re-enabled in the future. Instead,
Dashboards will be reimplemented in the Overviews module.

See opf/openproject#20045
See https://community.openproject.org/work_packages/66904
This commit is contained in:
Alexander Brandon Coles
2025-09-04 09:36:43 +01:00
parent 8004a49b3d
commit c3bbe97f81
150 changed files with 1 additions and 3766 deletions
-8
View File
@@ -123,12 +123,6 @@ PATH
specs:
costs (1.0.0)
PATH
remote: modules/dashboards
specs:
dashboards (1.0.0)
grids
PATH
remote: modules/documents
specs:
@@ -1370,7 +1364,6 @@ DEPENDENCIES
cuprite (~> 0.17.0)
daemons
dalli (~> 3.2.0)
dashboards!
date_validator (~> 0.12.0)
deckar01-task_list (~> 2.3.1)
dentaku (~> 3.5)!
@@ -1635,7 +1628,6 @@ CHECKSUMS
cuprite (0.17) sha256=b140d5dc70d08b97ad54bcf45cd95d0bd430e291e9dffe76fff851fddd57c12b
daemons (1.4.1) sha256=8fc76d76faec669feb5e455d72f35bd4c46dc6735e28c420afb822fac1fa9a1d
dalli (3.2.8) sha256=2e63595084d91fae2655514a02c5d4fc0f16c0799893794abe23bf628bebaaa5
dashboards (1.0.0)
date (3.4.1) sha256=bf268e14ef7158009bfeaec40b5fa3c7271906e88b196d958a89d4b408abe64f
date_validator (0.12.0) sha256=68c9834da240347b9c17441c553a183572508617ebfbe8c020020f3192ce3058
deckar01-task_list (2.3.4) sha256=66abdc7e009ea759732bb53867e1ea42de550e2aa03ac30a015cbf42a04c1667
-1
View File
@@ -32,7 +32,6 @@ group :opf_plugins do
gem 'grids', path: 'modules/grids'
gem 'my_page', path: 'modules/my_page'
gem 'dashboards', path: 'modules/dashboards'
gem 'openproject-boards', path: 'modules/boards'
gem 'overviews', path: 'modules/overviews'
gem 'budgets', path: 'modules/budgets'
+1 -6
View File
@@ -29,12 +29,7 @@
#++
Rails.application.config.to_prepare do
# Dashboards should currently always be disabled since the functionality is not desired.
to_disable = if Rails.env.test?
OpenProject::Configuration.disabled_modules
else
["dashboards"] + OpenProject::Configuration.disabled_modules
end
to_disable = OpenProject::Configuration.disabled_modules
if to_disable.any?
OpenProject::Plugins::ModuleHandler.disable_modules!(to_disable)
-6
View File
@@ -49,7 +49,6 @@ import {
import { BrowserModule } from '@angular/platform-browser';
import { OpenprojectCalendarModule } from 'core-app/features/calendar/openproject-calendar.module';
import { OpenprojectGlobalSearchModule } from 'core-app/core/global_search/openproject-global-search.module';
import { OpenprojectDashboardsModule } from 'core-app/features/dashboards/openproject-dashboards.module';
import {
OpenprojectWorkPackageGraphsModule,
} from 'core-app/shared/components/work-package-graphs/openproject-work-package-graphs.module';
@@ -207,7 +206,6 @@ import { OpInviteUserModalAugmentService } from 'core-app/features/invite-user-m
import { TimeEntryTimerService } from 'core-app/shared/components/time_entries/services/time-entry-timer.service';
import { MyPageComponent } from './features/my-page/my-page.component';
import { OverviewComponent } from './features/overview/overview.component';
import { DashboardComponent } from './features/dashboards/dashboard/dashboard.component';
export function initializeServices(injector:Injector) {
return () => {
@@ -302,9 +300,6 @@ export function runBootstrap(appRef:ApplicationRef) {
// Calendar module
OpenprojectCalendarModule,
// Dashboards
OpenprojectDashboardsModule,
// Overview
OpenprojectOverviewModule,
@@ -429,6 +424,5 @@ export class OpenProjectModule implements DoBootstrap {
registerCustomElement('opce-my-page', MyPageComponent, { injector });
registerCustomElement('opce-overview', OverviewComponent, { injector });
registerCustomElement('opce-dashboard', DashboardComponent, { injector });
}
}
@@ -1,3 +0,0 @@
<h2 [textContent]="text.title"></h2>
<grid *ngIf="grid" [grid]="grid"></grid>
@@ -1,16 +0,0 @@
import { Component } from '@angular/core';
import { GridPageComponent } from 'core-app/shared/components/grids/grid/page/grid-page.component';
import { GRID_PROVIDERS } from 'core-app/shared/components/grids/grid/grid.component';
@Component({
selector: 'dashboard',
templateUrl: '../../../shared/components/grids/grid/page/grid-page.component.html',
styleUrls: ['../../../shared/components/grids/grid/page/grid-page.component.sass'],
providers: GRID_PROVIDERS,
standalone: false,
})
export class DashboardComponent extends GridPageComponent {
protected gridScopePath():string {
return this.pathHelper.projectDashboardsPath(this.currentProject.identifier!);
}
}
@@ -1,46 +0,0 @@
//-- copyright
// OpenProject is an open source project management software.
// Copyright (C) the OpenProject GmbH
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License version 3.
//
// OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
// Copyright (C) 2006-2013 Jean-Philippe Lang
// Copyright (C) 2010-2013 the ChiliProject Team
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// See COPYRIGHT and LICENSE files for more details.
//++
import { NgModule } from '@angular/core';
import { OpSharedModule } from 'core-app/shared/shared.module';
import { DashboardComponent } from 'core-app/features/dashboards/dashboard/dashboard.component';
import { OpenprojectGridsModule } from 'core-app/shared/components/grids/openproject-grids.module';
@NgModule({
imports: [
OpSharedModule,
OpenprojectGridsModule,
],
providers: [
],
declarations: [
DashboardComponent,
],
})
export class OpenprojectDashboardsModule {} // eslint-disable-line @typescript-eslint/no-extraneous-class
@@ -1,5 +0,0 @@
module ::Dashboards
class DashboardsController < ::Grids::BaseInProjectController
menu_item :dashboards
end
end
@@ -1,38 +0,0 @@
#-- copyright
# OpenProject is an open source project management software.
# Copyright (C) the OpenProject GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2013 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# See COPYRIGHT and LICENSE files for more details.
#++
module Grids
class Dashboard < Grid
belongs_to :project
set_acts_as_attachable_options view_permission: :view_dashboards,
delete_permission: :manage_dashboards,
add_permission: :manage_dashboards,
skip_permission_checks: false
end
end
@@ -1,23 +0,0 @@
<%=
render(Primer::OpenProject::PageHeader.new) do |header|
header.with_title(variant: :medium) { t("dashboards.label") }
header.with_breadcrumbs(
[
{ href: project_path(@project), text: @project.name, skip_for_mobile: true },
t("dashboards.label")
]
)
header.with_action_icon_button(
icon: :"screen-full",
mobile_icon: :"screen-full",
label: I18n.t("js.button_show_fullscreen"),
data: {
controller: "projects-zen-mode",
target: "projects-zen-mode.button",
action: "click->projects-zen-mode#performAction"
}
)
end
%>
<%= angular_component_tag "opce-dashboard" %>
@@ -1,4 +0,0 @@
af:
dashboards:
label: 'Beheerpanele'
project_module_dashboards: 'Beheerpanele'
@@ -1,4 +0,0 @@
ar:
dashboards:
label: 'لوحات المعلومات'
project_module_dashboards: 'لوحات المعلومات'
@@ -1,4 +0,0 @@
az:
dashboards:
label: 'Dashboards'
project_module_dashboards: 'Dashboards'
@@ -1,4 +0,0 @@
be:
dashboards:
label: 'Dashboards'
project_module_dashboards: 'Dashboards'
@@ -1,4 +0,0 @@
bg:
dashboards:
label: 'Табло'
project_module_dashboards: 'Табла за управление'
@@ -1,4 +0,0 @@
ca:
dashboards:
label: 'Taulers de control'
project_module_dashboards: 'Taulers de control'
@@ -1,4 +0,0 @@
ckb-IR:
dashboards:
label: 'Dashboards'
project_module_dashboards: 'Dashboards'
@@ -1,4 +0,0 @@
cs:
dashboards:
label: 'Nástěnky'
project_module_dashboards: 'Nástěnky'
@@ -1,4 +0,0 @@
da:
dashboards:
label: 'Dashboards'
project_module_dashboards: 'Dashboards'
@@ -1,4 +0,0 @@
de:
dashboards:
label: 'Dashboards'
project_module_dashboards: 'Dashboards'
@@ -1,4 +0,0 @@
el:
dashboards:
label: 'Πίνακες Ελέγχου'
project_module_dashboards: 'Πίνακες Ελέγχου'
@@ -1,4 +0,0 @@
eo:
dashboards:
label: 'Paneloj'
project_module_dashboards: 'Paneloj'
@@ -1,4 +0,0 @@
es:
dashboards:
label: 'Paneles de control'
project_module_dashboards: 'Paneles de control'
@@ -1,4 +0,0 @@
et:
dashboards:
label: 'Töölauad'
project_module_dashboards: 'Töölauad'
@@ -1,4 +0,0 @@
eu:
dashboards:
label: 'Panelak'
project_module_dashboards: 'Panelak'
@@ -1,4 +0,0 @@
fa:
dashboards:
label: 'پیش‌خوان'
project_module_dashboards: 'پیش‌خوان'
@@ -1,4 +0,0 @@
fi:
dashboards:
label: 'Dashboards'
project_module_dashboards: 'Dashboards'
@@ -1,4 +0,0 @@
fil:
dashboards:
label: 'Dashboards'
project_module_dashboards: 'Dashboards'
@@ -1,4 +0,0 @@
fr:
dashboards:
label: 'Tableaux de bord'
project_module_dashboards: 'Tableaux de bord'
@@ -1,4 +0,0 @@
he:
dashboards:
label: 'דאשבורד'
project_module_dashboards: 'דאשבורד'
@@ -1,4 +0,0 @@
hi:
dashboards:
label: 'Dashboards'
project_module_dashboards: 'Dashboards'
@@ -1,4 +0,0 @@
hr:
dashboards:
label: 'Kontrolne ploče'
project_module_dashboards: 'Kontrolne ploče'
@@ -1,4 +0,0 @@
hu:
dashboards:
label: 'Vezérlőpult'
project_module_dashboards: 'Vezérlőpult'
@@ -1,4 +0,0 @@
id:
dashboards:
label: 'Dasbor'
project_module_dashboards: 'Dasbor'
@@ -1,4 +0,0 @@
it:
dashboards:
label: 'Cruscotti'
project_module_dashboards: 'Cruscotti'
@@ -1,4 +0,0 @@
ja:
dashboards:
label: 'ダッシュボード'
project_module_dashboards: 'ダッシュボード'
@@ -1,4 +0,0 @@
af:
js:
dashboards:
label: 'Beheerpaneel'
@@ -1,4 +0,0 @@
ar:
js:
dashboards:
label: ' لوحة القيادة'
@@ -1,4 +0,0 @@
az:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
be:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
bg:
js:
dashboards:
label: 'Табло'
@@ -1,4 +0,0 @@
ca:
js:
dashboards:
label: 'Tauler de control'
@@ -1,4 +0,0 @@
ckb-IR:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
cs:
js:
dashboards:
label: 'Nástěnka'
@@ -1,4 +0,0 @@
da:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
de:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
el:
js:
dashboards:
label: 'Πίνακας Ελέγχου'
@@ -1,4 +0,0 @@
eo:
js:
dashboards:
label: 'Paneloj'
@@ -1,4 +0,0 @@
es:
js:
dashboards:
label: 'Panel de control'
@@ -1,4 +0,0 @@
et:
js:
dashboards:
label: 'Töölaud'
@@ -1,4 +0,0 @@
eu:
js:
dashboards:
label: 'Panela'
@@ -1,4 +0,0 @@
fa:
js:
dashboards:
label: 'پیشخوان'
@@ -1,4 +0,0 @@
fi:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
fil:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
fr:
js:
dashboards:
label: 'Tableau de bord'
@@ -1,4 +0,0 @@
he:
js:
dashboards:
label: 'דאשבורד'
@@ -1,4 +0,0 @@
hi:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
hr:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
hu:
js:
dashboards:
label: 'Vezérlőpult'
@@ -1,4 +0,0 @@
id:
js:
dashboards:
label: 'Dasbor'
@@ -1,4 +0,0 @@
it:
js:
dashboards:
label: 'Cruscotto'
@@ -1,4 +0,0 @@
ja:
js:
dashboards:
label: 'ダッシュボード'
@@ -1,4 +0,0 @@
ka:
js:
dashboards:
label: 'სამუშაო დაფა'
@@ -1,4 +0,0 @@
kk:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
ko:
js:
dashboards:
label: '대시보드'
@@ -1,4 +0,0 @@
lt:
js:
dashboards:
label: 'Skydelis'
@@ -1,4 +0,0 @@
lv:
js:
dashboards:
label: 'Informācijas panelis'
@@ -1,4 +0,0 @@
mn:
js:
dashboards:
label: 'Хянах самбар'
@@ -1,4 +0,0 @@
ms:
js:
dashboards:
label: 'Papan Pemuka'
@@ -1,4 +0,0 @@
ne:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
nl:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
"no":
js:
dashboards:
label: 'Kontrollpanel'
@@ -1,4 +0,0 @@
pl:
js:
dashboards:
label: 'Pulpit nawigacyjny'
@@ -1,4 +0,0 @@
pt-BR:
js:
dashboards:
label: 'Painel'
@@ -1,4 +0,0 @@
pt-PT:
js:
dashboards:
label: 'Painel de Controlo'
@@ -1,4 +0,0 @@
ro:
js:
dashboards:
label: 'Panou de control'
@@ -1,4 +0,0 @@
ru:
js:
dashboards:
label: 'Панель'
@@ -1,4 +0,0 @@
rw:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
si:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
sk:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
sl:
js:
dashboards:
label: 'Nadzorna plošča'
@@ -1,4 +0,0 @@
sr:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
sv:
js:
dashboards:
label: 'Översikt'
@@ -1,4 +0,0 @@
th:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
tr:
js:
dashboards:
label: 'Gösterge paneli'
@@ -1,4 +0,0 @@
uk:
js:
dashboards:
label: 'Панель керування'
@@ -1,4 +0,0 @@
uz:
js:
dashboards:
label: 'Dashboard'
@@ -1,4 +0,0 @@
vi:
js:
dashboards:
label: 'Bảng điều khiển'
@@ -1,4 +0,0 @@
zh-CN:
js:
dashboards:
label: '仪表板'
@@ -1,4 +0,0 @@
zh-TW:
js:
dashboards:
label: '儀表板'
@@ -1,4 +0,0 @@
ka:
dashboards:
label: 'სამუშაო დაფები'
project_module_dashboards: 'სამუშაო დაფები'
@@ -1,4 +0,0 @@
kk:
dashboards:
label: 'Dashboards'
project_module_dashboards: 'Dashboards'
@@ -1,4 +0,0 @@
ko:
dashboards:
label: '대시보드'
project_module_dashboards: '대시보드'
@@ -1,4 +0,0 @@
lt:
dashboards:
label: 'Skydeliai'
project_module_dashboards: 'Skydeliai'
@@ -1,4 +0,0 @@
lv:
dashboards:
label: 'Informācijas panelis'
project_module_dashboards: 'Informācijas panelis'
@@ -1,4 +0,0 @@
mn:
dashboards:
label: 'Хянах самбарууд'
project_module_dashboards: 'Хянах самбарууд'
@@ -1,4 +0,0 @@
ms:
dashboards:
label: 'Papan Pemuka'
project_module_dashboards: 'Papan Pemuka'
@@ -1,4 +0,0 @@
ne:
dashboards:
label: 'Dashboards'
project_module_dashboards: 'Dashboards'
@@ -1,4 +0,0 @@
nl:
dashboards:
label: 'Dashboards'
project_module_dashboards: 'Dashboards'
@@ -1,4 +0,0 @@
"no":
dashboards:
label: 'Kontrollsentre'
project_module_dashboards: 'Kontrollsentre'

Some files were not shown because too many files have changed in this diff Show More