EN · DE · RU · FR · ES

#1398: MenuConfiguration.kt

projectforge-business/src/main/kotlin/org/projectforge/menu/MenuConfiguration.kt Type: Kotlin · Role: Menu · Source: projectforge-business/src/main/kotlin/org/projectforge/menu/MenuConfiguration.kt 245 lines · 164 code · 31 comments · 50 blank
Source code file at projectforge-business/src/main/kotlin/org/projectforge/menu/MenuConfiguration.kt containing Kotlin code for the Menu layer.

Code Structure

Annotations: PostConstruct, param, Value, Configuration, return

Classes: MenuConfiguration

Functions (3): getMenuVisibility, isVisible, postConstruct

Properties (43): accessVisibility, addressesVisibility, addressbooksVisibility, booksVisibility, calendarVisibility, calendarListVisibility, changePasswordVisibility, changeWlanPasswordVisibility, feedbackVisibility, ganttVisibility, groupsVisibility, hrPlanningVisibility, hrViewVisibility, monthlyEmployeeReportVisibility, myAccountVisibility, myMenuVisibility, my2FAVisibility, my2FASetupVisibility, myScriptsVisibility, myPreferencesVisibility, personalStatisticsVisibility, phoneCallVisibility, pollVisibility, sendSmsVisibility, searchVisibility...

Imports: 5 packages

Package: org.projectforge.menu

Source Code (abridged)

package org.projectforge.menu

import jakarta.annotation.PostConstruct
import org.projectforge.menu.builder.MenuItemDef
import org.projectforge.menu.builder.MenuItemDefId
import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Configuration

@Configuration
open class MenuConfiguration {
    @Value("\${projectforge.menu.visibility.access}")
    private var accessVisibility: String? = null

    @Value("\${projectforge.menu.visibility.addresses}")
    private var addressesVisibility: String? = null

    @Value("\${projectforge.menu.visibility.addressbooks}")
    private var addressbooksVisibility: String? = null

    @Value("\${projectforge.menu.visibility.books}")
    private var booksVisibility: String? = null

    @Value("\${projectforge.menu.visibility.calendar}")
    private var calendarVisibility: String? = null

    @Value("\${projectforge.menu.visibility.calendarList}")
    private var calendarListVisibility: String? = null

    @Value("\${projectforge.menu.visibility.changePassword}")
    private var changePasswordVisibility: String? = null

    @Value("\${projectforge.menu.visibility.changeWlanPassword}")
    private var changeWlanPasswordVisibility: String? = null

    @Value("\${projectforge.menu.visibility.feedback}")
    private var feedbackVisibility: String? = null

    @Value("\${projectforge.menu.visibility.gantt}")
    private var ganttVisibility: String? = null

    @Value("\${projectforge.menu.visibility.groups}")
    private var groupsVisibility: String? = null

    @Value("\${projectforge.menu.visibility.hrPlanning}")
    private var hrPlanningVisibility: String? = null

    @Value("\${projectforge.menu.visibility.hrView}")
    private var hrViewVisibility: String? = null

    @Value("\${projectforge.menu.visibility.monthlyEmployeeReport}")
    private var monthlyEmployeeReportVisibility: String? = null

    @Value("\${projectforge.menu.visibility.myAccount}")
    private var myAccountVisibility: String? = null

    @Value("\${projectforge.menu.visibility.myMenu}")
    private var myMenuVisibility: String? = null

    @Value("\${projectforge.menu.visibility.my2FA}")
    private var my2FAVisibility: String? = null

    @Value("\${projectforge.menu.visibility.my2FASetup}")
    private var my2FASetupVisibility: String? = null

    @Value("\${projectforge.menu.visibility.myScripts}")
    private var myScriptsVisibility: String? = null

    @Value("\${projectforge.menu.visibility.myPreferences}")
    private var myPreferencesVisibility: String? = null

    @Value("\${projectforge.menu.visibility.personalStatistics}")
    private var personalStatisticsVisibility: String? = null

    @Value("\${projectforge.menu.visibility.phoneCall}")
    private var phoneCallVisibility: String? = null

    @Value("\${projectforge.menu.visibility.poll}")
    private var pollVisibility: String? = null

    @Value("\${projectforge.menu.visibility.sendSms}")
    private var sendSmsVisibility: String? = null

    @Value("\${projectforge.menu.visibility.search}")
    private var searchVisibility: String? = null

    @Value("\${projectforge.menu.visibility.taskTree}")
    private var taskTreeVisibility: String? = null

    @Value("\${projectforge.menu.visibility.timesheets}")
    private var timesheetsVisibility: String? = null

    @Value("\${projectforge.menu.visibility.users}")
    private var usersVisibility: String? = null

    @Value("\${projectforge.menu.visibility.vacation}")
    private var vacationVisibility: String? = null

    @Value("\${projectforge.menu.visibility.vacationAccount}")
    private var vacationAccountVisibility: String? = null

    @Value("\${projectforge.menu.visibility.systemStatistics}")
    private var systemStatisticsVisibility: String? = null

    // *******************
    // Built-in plugins:
    // *******************
    @Value("\${projectforge.menu.visibility.addressCampaign}")
    private var addressCampaignVisibility: String? = null

    @Value("\${projectforge.menu.visibility.addressCampaignValues}")
    private var addressCampaignValuesVisibility: String? = null

    @Value("\${projectforge.menu.visibility.datatransfer}")
    private var datatransferVisibility: String? = null

    @Value("\${projectforge.menu.visibility.ihk}")
    private var ihkVisibility: String? = null

    @Value("\${projectforge.menu.visibility.licenseManagement}")
// ... (truncated, total 223 lines)

Git History

868d6abb7 2025 -> 2026
7187b40f9 Menu customization
8a2ea847f MyMenuPagesRest: New Excel functionality for customizing the personal menu.
261354a30 Visibility of menu items is now configurable (by groups).