mirror of
https://github.com/opf/openproject.git
synced 2026-06-14 03:30:14 +00:00
Merge release/16.0 into dev
This commit is contained in:
@@ -81,11 +81,6 @@ jobs:
|
||||
- name: "Fix root key in Portuguese crowdin translation files"
|
||||
run: |
|
||||
script/i18n/fix_crowdin_pt_language_root_key
|
||||
- name: "Fix storages.health.checks.failures.zero key in Arabic and Latvian crowdin translation files"
|
||||
# Only run if the file exists
|
||||
if: ${{ hashFiles('script/i18n/fix_crowdin_storages_health_checks_failures_zero_key') != '' }}
|
||||
run: |
|
||||
script/i18n/fix_crowdin_storages_health_checks_failures_zero_key
|
||||
- name: "Commit translations"
|
||||
env:
|
||||
BRANCH: ${{ matrix.branch }}
|
||||
|
||||
@@ -35,6 +35,7 @@ jobs:
|
||||
echo "OPENPROJECT_HSTS=false" >> .env.pullpreview
|
||||
echo "OPENPROJECT_NOTIFICATIONS_POLLING_INTERVAL=10000" >> .env.pullpreview
|
||||
echo "OPENPROJECT_ENTERPRISE__CHARGEBEE__SITE=openproject-enterprise-test" >> .env.pullpreview
|
||||
echo "OPENPROJECT_ENTERPRISE__TRIAL__CREATION__HOST=start.openproject-edge.com" >> .env.pullpreview
|
||||
- name: Boot as BIM edition
|
||||
if: contains(github.ref, 'bim/') || contains(github.head_ref, 'bim/')
|
||||
run: |
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 100 KiB |
@@ -43,16 +43,21 @@ module Admin
|
||||
name: "general",
|
||||
path: admin_settings_attachments_path,
|
||||
label: t("settings.general")
|
||||
},
|
||||
{
|
||||
}
|
||||
]
|
||||
|
||||
if Setting.antivirus_scan_available?
|
||||
tabs << {
|
||||
name: "virus",
|
||||
path: admin_settings_virus_scanning_path,
|
||||
label: t(:"settings.antivirus.title"),
|
||||
enterprise_feature: :virus_scanning
|
||||
}
|
||||
]
|
||||
end
|
||||
|
||||
if User.current.admin? && (EnterpriseToken.allows_to?(:virus_scanning) || Attachment.status_quarantined.any?)
|
||||
if Setting.antivirus_scan_available? &&
|
||||
User.current.admin? &&
|
||||
(EnterpriseToken.allows_to?(:virus_scanning) || Attachment.status_quarantined.any?)
|
||||
tabs << {
|
||||
name: "quarantined",
|
||||
path: admin_quarantined_attachments_path,
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
<%=
|
||||
component_wrapper(tag: "turbo-frame") do
|
||||
grid_layout("op-enterprise-banner",
|
||||
**@system_arguments) do |grid|
|
||||
|
||||
grid_layout(
|
||||
"op-enterprise-banner",
|
||||
**@system_arguments
|
||||
) do |grid|
|
||||
if inline?
|
||||
grid.with_area(:visual) do
|
||||
render(Primer::Beta::Octicon.new(icon: :"op-enterprise-addons", classes: "op-enterprise-banner--icon"))
|
||||
@@ -15,9 +16,13 @@
|
||||
if medium?
|
||||
flex_layout(align_items: :center, mb: 3) do |title_flex|
|
||||
title_flex.with_column do
|
||||
render(Primer::Beta::Octicon.new(icon: :"op-enterprise-addons",
|
||||
size: :medium,
|
||||
classes: "upsell-colored"))
|
||||
render(
|
||||
Primer::Beta::Octicon.new(
|
||||
icon: :"op-enterprise-addons",
|
||||
size: :medium,
|
||||
classes: "upsell-colored"
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
title_flex.with_column(ml: 2) do
|
||||
@@ -36,7 +41,7 @@
|
||||
|
||||
if features.present?
|
||||
flex.with_row do
|
||||
content_tag(:ul) { safe_join features.map { |text| render(Primer::Beta::Text.new(tag: :li)) { text } } }
|
||||
content_tag(:ul) { safe_join(features.map { |text| render(Primer::Beta::Text.new(tag: :li)) { text } }) }
|
||||
end
|
||||
end
|
||||
|
||||
@@ -46,6 +51,10 @@
|
||||
end
|
||||
end
|
||||
|
||||
if medium?
|
||||
grid.with_area(:image, **@image_arguments)
|
||||
end
|
||||
|
||||
if @dismissable
|
||||
grid.with_area(:dismiss) do
|
||||
classes = medium? ? "op-enterprise-banner--close-icon_hovering" : ""
|
||||
|
||||
@@ -89,10 +89,8 @@ module EnterpriseEdition
|
||||
end
|
||||
|
||||
def before_render
|
||||
@system_arguments[:style] = join_style_arguments(
|
||||
@system_arguments[:style],
|
||||
medium? ? "background-image: url(#{helpers.image_path(@image)})" : nil
|
||||
)
|
||||
@image_arguments = {}
|
||||
@image_arguments[:style] = @image.present? ? "background-image: url(#{helpers.image_path(@image)})" : nil
|
||||
end
|
||||
|
||||
def medium?
|
||||
|
||||
@@ -43,34 +43,28 @@ $op-enterprise-banner-fixed-height: 220px
|
||||
overflow: hidden
|
||||
|
||||
&_medium
|
||||
position: relative
|
||||
padding: 0
|
||||
grid-template-areas: "content graphic"
|
||||
grid-template-columns: 2fr 1fr
|
||||
height: $op-enterprise-banner-fixed-height
|
||||
background-repeat: no-repeat
|
||||
background-position: center right
|
||||
|
||||
@media screen and (max-width: $breakpoint-lg)
|
||||
grid-template-columns: 1fr
|
||||
background-image: none !important
|
||||
height: auto
|
||||
|
||||
@media screen and (max-width: $breakpoint-xl)
|
||||
background-size: cover
|
||||
|
||||
&_medium &
|
||||
padding: 0
|
||||
grid-template-areas: "content graphic"
|
||||
grid-template-columns: 1fr 1fr
|
||||
|
||||
&--content
|
||||
z-index: 1
|
||||
align-self: center
|
||||
padding: var(--base-size-16)
|
||||
|
||||
&--image
|
||||
width: 100%
|
||||
height: 100%
|
||||
object-fit: cover
|
||||
@include upsell-image
|
||||
|
||||
&--visual
|
||||
display: grid
|
||||
|
||||
@@ -68,7 +68,10 @@ module EnterpriseEdition
|
||||
return if EnterpriseToken.active?
|
||||
return unless User.current.admin?
|
||||
|
||||
helpers.angular_component_tag("opce-free-trial-button")
|
||||
helpers.angular_component_tag(
|
||||
"opce-free-trial-button",
|
||||
inputs: helpers.enterprise_angular_trial_inputs
|
||||
)
|
||||
end
|
||||
|
||||
# Allow providing a custom upgrade now button
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
<% if respond_to?(:gon) %>
|
||||
<% helpers.write_augur_to_gon %>
|
||||
<% helpers.write_trial_key_to_gon if !EnterpriseToken.current.present? %>
|
||||
<% end %>
|
||||
|
||||
<div class="op-enterprise-upsell-page" data-test-selector="op-enterprise-upsell-page">
|
||||
<%=
|
||||
render(Primer::OpenProject::FlexLayout.new(justify_content: :center, align_items: :center)) do |flex|
|
||||
|
||||
@@ -1,14 +1,5 @@
|
||||
<%=
|
||||
modal_content.with_row(data: { "test-selector": "op-share-dialog-upsell-block" }) do
|
||||
render Primer::OpenProject::FeedbackMessage.new(icon_arguments: { icon: :"op-enterprise-addons", classes: "upsell-colored" }, border: true) do |component|
|
||||
component.with_heading(tag: :h2, classes: "upsell-colored").with_content(I18n.t(:"ee.upsell.title"))
|
||||
component.with_description { I18n.t("sharing.project_queries.upsell.message") }
|
||||
|
||||
href = "#{OpenProject::Static::Links.links[:upsell][:href]}/?utm_source=unknown&utm_medium=community-edition&utm_campaign=project-list-sharing-modal"
|
||||
component.with_secondary_action(href:) do |link|
|
||||
link.with_trailing_visual_icon(icon: "link-external")
|
||||
I18n.t("admin.enterprise.enterprise_link")
|
||||
end
|
||||
end
|
||||
render(EnterpriseEdition::BannerComponent.new(:project_list_sharing))
|
||||
end
|
||||
%>
|
||||
|
||||
@@ -1,14 +1,5 @@
|
||||
<%=
|
||||
component_wrapper(tag: "turbo-frame") do
|
||||
render Primer::OpenProject::FeedbackMessage.new(icon_arguments: { icon: :"op-enterprise-addons", classes: "upsell-colored" }, border: true) do |component|
|
||||
component.with_heading(tag: :h2, classes: "upsell-colored").with_content(I18n.t(:"ee.upsell.title"))
|
||||
component.with_description { I18n.t("mail.sharing.work_packages.enterprise_text") }
|
||||
|
||||
href = "#{OpenProject::Static::Links.links[:upsell][:href]}/?utm_source=unknown&utm_medium=community-edition&utm_campaign=work-package-sharing-modal"
|
||||
component.with_secondary_action(href:) do |link|
|
||||
link.with_trailing_visual_icon(icon: "link-external")
|
||||
I18n.t("admin.enterprise.enterprise_link")
|
||||
end
|
||||
end
|
||||
render(EnterpriseEdition::BannerComponent.new(:work_package_sharing))
|
||||
end
|
||||
%>
|
||||
|
||||
@@ -31,6 +31,8 @@ module Admin
|
||||
class QuarantinedAttachmentsController < ApplicationController
|
||||
layout "admin"
|
||||
before_action :require_admin
|
||||
|
||||
before_action :check_available
|
||||
before_action :find_quarantined_attachments
|
||||
|
||||
before_action :find_attachment, only: %i[destroy]
|
||||
@@ -53,6 +55,12 @@ module Admin
|
||||
|
||||
private
|
||||
|
||||
def check_available
|
||||
return if Setting.antivirus_scan_available?
|
||||
|
||||
render_404
|
||||
end
|
||||
|
||||
def create_journal(container, user, notes)
|
||||
::Journals::CreateService
|
||||
.new(container, user)
|
||||
|
||||
@@ -32,6 +32,7 @@ module Admin::Settings
|
||||
class VirusScanningSettingsController < ::Admin::SettingsController
|
||||
menu_item :attachments
|
||||
|
||||
before_action :check_available
|
||||
before_action :require_ee, except: :show # rubocop:disable Rails/LexicallyScopedActionFilter
|
||||
before_action :check_clamav, only: %i[update], if: -> { scan_enabled? }
|
||||
|
||||
@@ -55,6 +56,12 @@ module Admin::Settings
|
||||
redirect_to action: :show
|
||||
end
|
||||
|
||||
def check_available
|
||||
return if Setting.antivirus_scan_available?
|
||||
|
||||
render_404
|
||||
end
|
||||
|
||||
def mark_unscanned_attachments
|
||||
@unscanned_attachments = Attachment.status_uploaded
|
||||
end
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
#++
|
||||
|
||||
class CustomActionsController < ApplicationController
|
||||
include EnterpriseTrialHelper
|
||||
before_action :require_admin
|
||||
before_action :require_enterprise_token
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ class CustomStylesController < ApplicationController
|
||||
except: UNGUARDED_ACTIONS + %i[upsell]
|
||||
skip_before_action :check_if_login_required,
|
||||
only: UNGUARDED_ACTIONS
|
||||
before_action :write_augur_to_gon, only: %i[upsell]
|
||||
no_authorization_required! *UNGUARDED_ACTIONS
|
||||
|
||||
def default_url_options
|
||||
|
||||
@@ -26,25 +26,16 @@
|
||||
# See COPYRIGHT and LICENSE files for more details.
|
||||
#++
|
||||
class EnterprisesController < ApplicationController
|
||||
include EnterpriseTrialHelper
|
||||
|
||||
layout "admin"
|
||||
menu_item :enterprise
|
||||
|
||||
before_action :chargebee_content_security_policy
|
||||
before_action :youtube_content_security_policy
|
||||
before_action :require_admin
|
||||
before_action :check_user_limit, only: [:show]
|
||||
before_action :check_domain, only: [:show]
|
||||
before_action :render_gon
|
||||
|
||||
def show
|
||||
@current_token = EnterpriseToken.current
|
||||
@token = @current_token || EnterpriseToken.new
|
||||
|
||||
if !@current_token.present?
|
||||
helpers.write_trial_key_to_gon
|
||||
end
|
||||
end
|
||||
|
||||
def create # rubocop:disable Metrics/AbcSize
|
||||
@@ -94,10 +85,6 @@ class EnterprisesController < ApplicationController
|
||||
|
||||
private
|
||||
|
||||
def render_gon
|
||||
helpers.write_augur_to_gon
|
||||
end
|
||||
|
||||
def check_user_limit
|
||||
if OpenProject::Enterprise.user_limit_reached?
|
||||
flash.now[:warning] = I18n.t(
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
#++
|
||||
|
||||
class PlaceholderUsersController < ApplicationController
|
||||
include EnterpriseTrialHelper
|
||||
layout "admin"
|
||||
before_action :authorize_global, except: %i[show]
|
||||
no_authorization_required! :show
|
||||
|
||||
@@ -49,7 +49,7 @@ class Projects::Settings::GeneralController < Projects::SettingsController
|
||||
redirect_to action: :show, status: :see_other
|
||||
end
|
||||
|
||||
def update
|
||||
def update # rubocop:disable Metrics/AbcSize
|
||||
call = Projects::UpdateService
|
||||
.new(model: @project, user: current_user)
|
||||
.call(permitted_params.project)
|
||||
@@ -60,6 +60,7 @@ class Projects::Settings::GeneralController < Projects::SettingsController
|
||||
flash[:notice] = I18n.t(:notice_successful_update)
|
||||
redirect_to project_settings_general_path(@project)
|
||||
else
|
||||
flash[:error] = I18n.t(:notice_unsuccessful_update_with_reason, reason: call.message)
|
||||
render action: :show, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
@@ -29,19 +29,25 @@
|
||||
#++
|
||||
|
||||
module EnterpriseHelper
|
||||
def write_augur_to_gon
|
||||
gon.augur_url = OpenProject::Configuration.enterprise_trial_creation_host
|
||||
gon.token_version = OpenProject::Token::VERSION
|
||||
def enterprise_angular_trial_inputs
|
||||
trial_key = Token::EnterpriseTrialKey.find_by(user_id: User.system.id)
|
||||
token = EnterpriseToken.current
|
||||
|
||||
if token.present? || trial_key.blank?
|
||||
enterprise_angular_static_inputs
|
||||
else
|
||||
enterprise_angular_static_inputs.merge(
|
||||
trialKey: trial_key.value,
|
||||
trialCreatedAt: trial_key.created_at.to_date.iso8601
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def write_trial_key_to_gon
|
||||
trial_key = Token::EnterpriseTrialKey.find_by(user_id: User.system.id)
|
||||
if trial_key
|
||||
gon.ee_trial_key = {
|
||||
value: trial_key.value,
|
||||
created: trial_key.created_at
|
||||
}
|
||||
end
|
||||
def enterprise_angular_static_inputs
|
||||
{
|
||||
augurUrl: OpenProject::Configuration.enterprise_trial_creation_host,
|
||||
tokenVersion: OpenProject::Token::VERSION
|
||||
}
|
||||
end
|
||||
|
||||
def enterprise_token_plan_name(enterprise_token)
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
module EnterpriseTrialHelper
|
||||
def chargebee_content_security_policy
|
||||
script_src = %w(js.chargebee.com)
|
||||
default_src = script_src + ["#{OpenProject::Configuration.enterprise_chargebee_site}.chargebee.com"]
|
||||
|
||||
append_content_security_policy_directives(
|
||||
script_src:,
|
||||
style_src: default_src,
|
||||
frame_src: default_src
|
||||
)
|
||||
end
|
||||
|
||||
def youtube_content_security_policy
|
||||
append_content_security_policy_directives(
|
||||
frame_src: %w(https://www.youtube.com)
|
||||
)
|
||||
end
|
||||
end
|
||||
@@ -29,7 +29,9 @@
|
||||
class Setting
|
||||
module VirusScanning
|
||||
def self.enabled?
|
||||
Setting.antivirus_scan_mode != :disabled && EnterpriseToken.allows_to?(:virus_scanning)
|
||||
Setting.antivirus_scan_available? &&
|
||||
Setting.antivirus_scan_mode != :disabled &&
|
||||
EnterpriseToken.allows_to?(:virus_scanning)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
+23
-2
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
#-- copyright
|
||||
# OpenProject is an open source project management software.
|
||||
# Copyright (C) the OpenProject GmbH
|
||||
@@ -25,9 +27,28 @@
|
||||
#
|
||||
# See COPYRIGHT and LICENSE files for more details.
|
||||
#++
|
||||
|
||||
module WorkPackage::Exports
|
||||
module Formatters
|
||||
class RemainingHours < ::WorkPackage::Exports::Formatters::CompoundHours
|
||||
# Adds extra columns when some particular columns are present.
|
||||
#
|
||||
# For instance, adds a 'Total work' column when the 'Work' column is present.
|
||||
module AdditionalColumns
|
||||
ADDITIONAL_COLUMNS = {
|
||||
estimated_hours: [:derived_estimated_hours],
|
||||
remaining_hours: [:derived_remaining_hours],
|
||||
done_ratio: [:derived_done_ratio]
|
||||
}.freeze
|
||||
|
||||
def get_columns
|
||||
super.flat_map { |column| [column] + additional_columns(column) }
|
||||
end
|
||||
|
||||
def additional_columns(column)
|
||||
ADDITIONAL_COLUMNS
|
||||
.fetch(column.name, [])
|
||||
.map do |additional_column_name|
|
||||
Queries::WorkPackages::Selects::PropertySelect.new(additional_column_name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -29,38 +29,30 @@
|
||||
module WorkPackage::Exports
|
||||
class CSV < QueryExporter
|
||||
include ::Exports::Concerns::CSV
|
||||
include AdditionalColumns
|
||||
|
||||
alias :records :work_packages
|
||||
|
||||
def get_columns
|
||||
if with_descriptions
|
||||
super + [description_column]
|
||||
else
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def title
|
||||
query.new_record? ? I18n.t(:label_work_package_plural) : query.name
|
||||
end
|
||||
|
||||
def csv_headers
|
||||
return super unless with_descriptions
|
||||
|
||||
super + [WorkPackage.human_attribute_name(:description)]
|
||||
end
|
||||
|
||||
def with_descriptions
|
||||
ActiveModel::Type::Boolean.new.cast(options[:show_descriptions])
|
||||
end
|
||||
|
||||
# fetch all row values
|
||||
def csv_row(work_package)
|
||||
return super unless with_descriptions
|
||||
|
||||
super.tap do |row|
|
||||
if row.any?
|
||||
row << if work_package.description
|
||||
work_package.description.squish
|
||||
else
|
||||
""
|
||||
end
|
||||
end
|
||||
end
|
||||
def description_column
|
||||
Queries::WorkPackages::Selects::PropertySelect.new(:description)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
+18
-1
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
#-- copyright
|
||||
# OpenProject is an open source project management software.
|
||||
# Copyright (C) the OpenProject GmbH
|
||||
@@ -27,7 +29,22 @@
|
||||
#++
|
||||
module WorkPackage::Exports
|
||||
module Formatters
|
||||
class EstimatedHours < ::WorkPackage::Exports::Formatters::CompoundHours
|
||||
class CompoundDoneRatio < ::Exports::Formatters::Default
|
||||
def self.apply?(name, export_format)
|
||||
name.to_sym == :done_ratio && export_format == :pdf
|
||||
end
|
||||
|
||||
def format(work_package, **)
|
||||
derived_done_ratio = work_package.derived_done_ratio
|
||||
derived = derived_done_ratio&.positive? ? " · Σ #{format_value(derived_done_ratio)}" : ""
|
||||
"#{format_value(work_package.done_ratio)}#{derived}"
|
||||
end
|
||||
|
||||
def format_value(value, _options = {})
|
||||
return "" if value.nil?
|
||||
|
||||
"#{value}%"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -28,8 +28,8 @@
|
||||
module WorkPackage::Exports
|
||||
module Formatters
|
||||
class CompoundHours < ::Exports::Formatters::Default
|
||||
def self.apply?(name, _export_format)
|
||||
name.to_sym == key
|
||||
def self.apply?(name, export_format)
|
||||
name.to_sym.in?(%i[estimated_hours remaining_hours]) && export_format == :pdf
|
||||
end
|
||||
|
||||
def format(work_package, **)
|
||||
@@ -45,10 +45,6 @@ module WorkPackage::Exports
|
||||
|
||||
private
|
||||
|
||||
def attribute
|
||||
self.class.key
|
||||
end
|
||||
|
||||
def total_prefix(value)
|
||||
value && "· Σ #{value}"
|
||||
end
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
#-- copyright
|
||||
# OpenProject is an open source project management software.
|
||||
# Copyright (C) the OpenProject GmbH
|
||||
@@ -28,14 +30,8 @@
|
||||
module WorkPackage::Exports
|
||||
module Formatters
|
||||
class DoneRatio < ::Exports::Formatters::Default
|
||||
def self.apply?(name, _export_format)
|
||||
name.to_sym == :done_ratio
|
||||
end
|
||||
|
||||
def format(work_package, **)
|
||||
derived_done_ratio = work_package.derived_done_ratio
|
||||
derived = derived_done_ratio&.positive? ? " · Σ #{format_value(derived_done_ratio)}" : ""
|
||||
"#{format_value(work_package.done_ratio)}#{derived}"
|
||||
def self.apply?(name, export_format)
|
||||
name.to_sym.in?(%i[done_ratio derived_done_ratio]) && export_format != :pdf
|
||||
end
|
||||
|
||||
def format_value(value, _options = {})
|
||||
|
||||
@@ -33,7 +33,11 @@ See COPYRIGHT and LICENSE files for more details.
|
||||
|
||||
<div class="upsell--information-container">
|
||||
<div class='upsell-information'>
|
||||
<opce-enterprise-base></opce-enterprise-base>
|
||||
<%= angular_component_tag(
|
||||
"opce-enterprise-base",
|
||||
inputs: enterprise_angular_trial_inputs
|
||||
)
|
||||
%>
|
||||
</div>
|
||||
|
||||
<div class='upsell-actions'>
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
<div class="widget-box--blocks--upsell-container"
|
||||
style="background-image: url(<%= image_path("enterprise/homescreen.png") %>)">
|
||||
<div class="widget-box--blocks--upsell-container">
|
||||
<div class="widget-box--blocks--upsell-text">
|
||||
<%=
|
||||
render(Primer::OpenProject::FlexLayout.new(align_items: :center, mb: 3)) do |title_flex|
|
||||
title_flex.with_column do
|
||||
render(Primer::Beta::Octicon.new(icon: :"op-enterprise-addons",
|
||||
size: :medium,
|
||||
classes: "upsell-colored"))
|
||||
render(
|
||||
Primer::Beta::Octicon.new(
|
||||
icon: :"op-enterprise-addons",
|
||||
size: :medium,
|
||||
classes: "upsell-colored"
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
title_flex.with_column(ml: 2) do
|
||||
@@ -21,6 +24,9 @@
|
||||
<p class="widget-box--blocks--upsell-description">
|
||||
<%= t("ee.upsell.homescreen_subline") %>
|
||||
</p>
|
||||
|
||||
<%= render EnterpriseEdition::UpsellButtonsComponent.new(nil) %>
|
||||
</div>
|
||||
<%= render EnterpriseEdition::UpsellButtonsComponent.new(nil) %>
|
||||
<div class="widget-box--blocks--upsell-image"
|
||||
style="background-image: url(<%= image_path("enterprise/homescreen.png") %>)"></div>
|
||||
</div>
|
||||
|
||||
@@ -27,6 +27,4 @@ See COPYRIGHT and LICENSE files for more details.
|
||||
|
||||
++#%>
|
||||
|
||||
<% write_augur_to_gon %>
|
||||
|
||||
<%= render template: "layouts/base", locals: local_assigns.merge({ menu_name: :notifications_menu }) %>
|
||||
|
||||
@@ -102,6 +102,10 @@ module Settings
|
||||
description: "Time in minutes to wait before uploaded files not attached to any container are removed",
|
||||
default: 180
|
||||
},
|
||||
antivirus_scan_available: {
|
||||
description: "Virus scanning option selectable in the UI",
|
||||
default: true
|
||||
},
|
||||
antivirus_scan_mode: {
|
||||
description: "Virus scanning option for files uploaded to OpenProject",
|
||||
format: :symbol,
|
||||
|
||||
@@ -1,3 +1,33 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
#-- 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.
|
||||
#++
|
||||
|
||||
Rails.application.configure do |application|
|
||||
application.config.to_prepare do
|
||||
Exports::Register.register do
|
||||
@@ -6,13 +36,13 @@ Rails.application.configure do |application|
|
||||
|
||||
single WorkPackage, WorkPackage::PDFExport::WorkPackageToPdf
|
||||
|
||||
formatter WorkPackage, WorkPackage::Exports::Formatters::EstimatedHours
|
||||
formatter WorkPackage, WorkPackage::Exports::Formatters::RemainingHours
|
||||
formatter WorkPackage, WorkPackage::Exports::Formatters::CompoundHours
|
||||
formatter WorkPackage, WorkPackage::Exports::Formatters::SpentUnits
|
||||
formatter WorkPackage, WorkPackage::Exports::Formatters::Hours
|
||||
formatter WorkPackage, WorkPackage::Exports::Formatters::Days
|
||||
formatter WorkPackage, WorkPackage::Exports::Formatters::Currency
|
||||
formatter WorkPackage, WorkPackage::Exports::Formatters::Costs
|
||||
formatter WorkPackage, WorkPackage::Exports::Formatters::CompoundDoneRatio
|
||||
formatter WorkPackage, WorkPackage::Exports::Formatters::DoneRatio
|
||||
formatter WorkPackage, WorkPackage::Exports::Formatters::Date
|
||||
formatter WorkPackage, Exports::Formatters::CustomField
|
||||
|
||||
@@ -51,11 +51,22 @@ Rails.application.config.after_initialize do
|
||||
assets_src << asset_host if asset_host.present?
|
||||
|
||||
# Valid for iframes
|
||||
frame_src = %w['self' https://player.vimeo.com]
|
||||
frame_src = %w['self' https://player.vimeo.com https://www.youtube.com]
|
||||
frame_src << OpenProject::Configuration[:security_badge_url]
|
||||
|
||||
# Default src
|
||||
default_src = %w('self') + OpenProject::Configuration.remote_storage_hosts
|
||||
default_src = %w('self')
|
||||
|
||||
# Attachment uploaders
|
||||
default_src += OpenProject::Configuration.remote_storage_hosts
|
||||
|
||||
# Chargebee self-service
|
||||
frame_src += [
|
||||
"https://js.chargebee.com/",
|
||||
"#{OpenProject::Configuration.enterprise_chargebee_site}.chargebee.com"
|
||||
]
|
||||
|
||||
default_src << "#{OpenProject::Configuration.enterprise_chargebee_site}.chargebee.com"
|
||||
|
||||
# Allow requests to CLI in dev mode
|
||||
connect_src = default_src + [OpenProject::Configuration.enterprise_trial_creation_host]
|
||||
@@ -78,7 +89,7 @@ Rails.application.config.after_initialize do
|
||||
end
|
||||
|
||||
# Allow to extend the script-src in specific situations
|
||||
script_src = assets_src
|
||||
script_src = assets_src + %w(js.chargebee.com)
|
||||
|
||||
# Allow unsafe-eval for rack-mini-profiler
|
||||
if Rails.env.development? && ENV.fetch("OPENPROJECT_RACK_PROFILER_ENABLED", false)
|
||||
|
||||
@@ -2054,6 +2054,8 @@ af:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2214,6 +2214,8 @@ ar:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ az:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2134,6 +2134,8 @@ be:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Заўвага: выкарыстаны лагатып будзе агульнадаступным."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ bg:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Забележка: използваното лого ще бъде публично достъпно."
|
||||
|
||||
@@ -2051,6 +2051,8 @@ ca:
|
||||
description: "Amb les alertes per dates, se't notificarà quan una data d'inici o finalització s'apropi de tal manera que no se't puguin oblidar o passar dates rellevants."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Nota: el logotip utilitzat serà accessible públicament."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ ckb-IR:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2134,6 +2134,8 @@ cs:
|
||||
description: "S upozorněním na datum budete upozorněni na blížící se datum zahájení nebo ukončení, abyste nikdy nezmeškali nebo nezapomněli na důležitou lhůtu."
|
||||
work_package_sharing:
|
||||
description: "Sdílejte pracovní balíčky s uživateli, kteří nejsou členy projektu."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Poznámka: použité logo bude veřejně přístupné."
|
||||
|
||||
@@ -2052,6 +2052,8 @@ da:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2047,6 +2047,8 @@ de:
|
||||
description: "Mit Datums-Erinnerungen werden Sie über bevorstehende Start- oder Endtermine informiert, so dass Sie nie einen wichtigen Termin verpassen oder übersehen."
|
||||
work_package_sharing:
|
||||
description: "Teilen Sie Arbeitspakete mit Benutzern, die nicht Mitglieder des Projekts sind."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Selbstdefiniertes Farbthema und Logo"
|
||||
more_info: "Hinweis: Das verwendete Logo wird öffentlich zugänglich sein."
|
||||
|
||||
@@ -2050,6 +2050,8 @@ el:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ eo:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2052,6 +2052,8 @@ es:
|
||||
description: "Con las alertas de fecha, recibirá notificaciones de próximas fechas de inicio o finalización para que nunca olvide una fecha límite importante."
|
||||
work_package_sharing:
|
||||
description: "Compartir paquetes de trabajo con usuarios que no son miembros del proyecto."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Tema de color y logotipo personalizados"
|
||||
more_info: "Nota: el logotipo utilizado será de acceso público."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ et:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ eu:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ fa:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ fi:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ fil:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2052,6 +2052,8 @@ fr:
|
||||
description: "Avec les alarmes, vous serez informé(e) à l'approche des dates de début ou de fin vous concernant afin de ne jamais manquer ou oublier une échéance importante."
|
||||
work_package_sharing:
|
||||
description: "Partagez les lots de travaux avec des utilisateurs qui ne sont pas membres du projet."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Thème de couleur et logo personnalisés"
|
||||
more_info: "Remarque : le logo utilisé sera accessible publiquement."
|
||||
|
||||
@@ -2134,6 +2134,8 @@ he:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2052,6 +2052,8 @@ hi:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2094,6 +2094,8 @@ hr:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2053,6 +2053,8 @@ hu:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Megjegyzés: a használt logó nyilvánosan elérhető lesz."
|
||||
|
||||
@@ -2010,6 +2010,8 @@ id:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Catatan: logo yang digunakan akan dapat diakses publik."
|
||||
|
||||
@@ -2051,6 +2051,8 @@ it:
|
||||
description: "Con gli avvisi sulle date, sarai avvisato delle prossime date di inizio o di fine in modo da non perdere mai o dimenticare una scadenza importante."
|
||||
work_package_sharing:
|
||||
description: "Condividi macro-attività con utenti che non sono membri del progetto."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Tema e logo a colori personalizzati"
|
||||
more_info: "Nota: il logo utilizzato sarà accessibile al pubblico."
|
||||
|
||||
@@ -2012,6 +2012,8 @@ ja:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -434,6 +434,7 @@ hu:
|
||||
label_filename: "File"
|
||||
label_filesize: "Méret"
|
||||
label_general: "Általános"
|
||||
label_global_roles: "Globális szerepek"
|
||||
label_greater_or_equal: ">="
|
||||
label_group: "Csoport"
|
||||
label_group_by: "Csoportosítás a következők szerint"
|
||||
|
||||
@@ -2054,6 +2054,8 @@ ka:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ kk:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2014,6 +2014,8 @@ ko:
|
||||
description: "날짜 경보를 사용하면, 중요 마감일을 놓치거나 잊지 않도록 향후 시작 날짜 또는 종료 날짜에 대한 알림을 받게 됩니다."
|
||||
work_package_sharing:
|
||||
description: "프로젝트 멤버가 아닌 사용자와 작업 패키지를 공유합니다."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "사용자 지정 색상 테마 및 로고"
|
||||
more_info: "참고: 사용된 로그는 공개적으로 액세스 가능합니다."
|
||||
|
||||
@@ -2131,6 +2131,8 @@ lt:
|
||||
description: "Su datos įspėjimais jus informuos apie ateinančias pradžios ir pabaigos datas, kad niekada nepraleistumėte ar nepamirštumėte svarbių terminų."
|
||||
work_package_sharing:
|
||||
description: "Bendrinkite darbo paketus su naudotojais, kurie nėra projekto nariai."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Pastaba: panaudotas logotipas bus viešai prieinamas."
|
||||
|
||||
@@ -2094,6 +2094,8 @@ lv:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ mn:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2012,6 +2012,8 @@ ms:
|
||||
description: "Dengan peringatan tarikh, anda akan dimaklumkan tentang tarikh mula dan akhir yang akan datang supaya anda tidak pernah terlepas atau lupa tarikh akhir yang penting."
|
||||
work_package_sharing:
|
||||
description: "Kongsi pakej kerja dengan pengguna yang bukan ahli projek."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Perhatian: logo yang digunakan akan boleh diakses secara umum."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ ne:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "नोट: प्रयोग गरिएको लोगो सार्वजनिक रूपमा पहुँचयोग्य हुनेछ।"
|
||||
|
||||
@@ -2050,6 +2050,8 @@ nl:
|
||||
description: "Met datummeldingen wordt u op de hoogte gebracht van de start- of einddatum, zodat u nooit een belangrijke deadline mist of vergeet."
|
||||
work_package_sharing:
|
||||
description: "Werkpakketten delen met gebruikers die geen lid zijn van het project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Opmerking: het gebruikte logo is openbaar toegankelijk."
|
||||
|
||||
@@ -2053,6 +2053,8 @@
|
||||
description: "Med datovarsler, vil du bli varslet om kommende start- eller sluttdatoer slik at du aldri går glipp av eller glemmer en viktig frist."
|
||||
work_package_sharing:
|
||||
description: "Del arbeidspakker med brukere som ikke er medlemmer i prosjektet."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Merk: den brukte logoen vil være offentlig tilgjengelig."
|
||||
|
||||
@@ -2131,6 +2131,8 @@ pl:
|
||||
description: "Dzięki alertom dotyczącym dat będziesz otrzymywać powiadomienia o zbliżających się terminach rozpoczęcia lub zakończenia pracy, dzięki czemu nigdy nie przegapisz ani nie zapomnisz ważnego terminu."
|
||||
work_package_sharing:
|
||||
description: "Udostępnij pakiety robocze użytkownikom, którzy nie są członkami projektu."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Niestandardowy motyw kolorystyczny i logotyp"
|
||||
more_info: "Uwaga: użyte logo będzie ogólnodostępne."
|
||||
|
||||
@@ -2051,6 +2051,8 @@ pt-BR:
|
||||
description: "Com os alertas de data, você receberá uma notificação das futuras datas de início e conclusão, assim você nunca perderá ou esquecerá prazos importante. "
|
||||
work_package_sharing:
|
||||
description: "Compartilhe pacotes de trabalho com usuários que não são membros do projeto."
|
||||
project_list_sharing:
|
||||
description: "Compartilhar listas de projetos com usuários individuais."
|
||||
define_custom_style:
|
||||
title: "Tema de cor e logotipo personalizados"
|
||||
more_info: "Obs.: o logotipo usado pode ser acessado publicamente."
|
||||
|
||||
@@ -2051,6 +2051,8 @@ pt-PT:
|
||||
description: "Com os alertas de data, receberá uma notificação sobre as próximas datas de início e conclusão, para que não nunca perca ou esqueça prazos importantes. "
|
||||
work_package_sharing:
|
||||
description: "Partilhe pacotes de trabalho com utilizadores que não são membros do projeto."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Tema e logótipo de cor personalizada"
|
||||
more_info: "Nota: o logótipo usado estará acessível ao público."
|
||||
|
||||
@@ -2094,6 +2094,8 @@ ro:
|
||||
description: "Cu alertele de date, veți fi notificat cu privire la următoarele date de început sau de sfârșit, astfel încât să nu ratați sau să uitați niciodată un termen limită important."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Notă: logo-ul utilizat va fi accesibil publicului."
|
||||
|
||||
@@ -2132,6 +2132,8 @@ ru:
|
||||
description: "С уведомлениями по дате вы будете получать уведомления о предстоящих датах начала или датах конца, чтобы никогда не пропустить или не забыть важный срок."
|
||||
work_package_sharing:
|
||||
description: "Поделиться пакетом работ с пользователями, которые не являются участниками проекта."
|
||||
project_list_sharing:
|
||||
description: "Делитесь списками проектов с отдельными пользователями."
|
||||
define_custom_style:
|
||||
title: "Пользовательская цветовая тема и логотип"
|
||||
more_info: "Примечание: используемый логотип будет общедоступным."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ rw:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ si:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2134,6 +2134,8 @@ sk:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2133,6 +2133,8 @@ sl:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2094,6 +2094,8 @@ sr:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ sv:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Obs: logotypen som används kommer att vara allmänt tillgänglig."
|
||||
|
||||
@@ -2014,6 +2014,8 @@ th:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2053,6 +2053,8 @@ tr:
|
||||
description: "Tarih uyarıları ile yaklaşan başlangıç veya bitiş tarihleri hakkında bilgilendirileceksiniz, böylece önemli bir teslim tarihini asla kaçırmaz veya unutmazsınız."
|
||||
work_package_sharing:
|
||||
description: "İş paketlerini proje üyesi olmayan kullanıcılarla paylaşın."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Not: Kullanılan logo herkese açık olacaktır."
|
||||
|
||||
@@ -2128,6 +2128,8 @@ uk:
|
||||
description: "Завдяки оповіщенням про дати ви завжди знатимете про заплановані дати початку або завершення, тож ніколи не пропускатимете важливі терміни й не забуватимете про них."
|
||||
work_package_sharing:
|
||||
description: "Діліться пакетами робіт із користувачами, які не належать до учасників проєкту."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Користувацький колір теми й логотип"
|
||||
more_info: "Примітка: вибраний логотип буде загальнодоступний."
|
||||
|
||||
@@ -2054,6 +2054,8 @@ uz:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -2014,6 +2014,8 @@ vi:
|
||||
description: "Với cảnh báo ngày, bạn sẽ được thông báo về các ngày bắt đầu hoặc kết thúc sắp tới để không bao giờ bỏ lỡ hoặc quên hạn chót quan trọng."
|
||||
work_package_sharing:
|
||||
description: "Chia sẻ gói công việc với người dùng không phải là thành viên của dự án."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Lưu ý: logo sử dụng sẽ được công khai truy cập."
|
||||
|
||||
@@ -2010,6 +2010,8 @@ zh-CN:
|
||||
description: "通过日期提醒,您将收到即将开始或完成日期的通知,以免错过或忘记重要截止日期。"
|
||||
work_package_sharing:
|
||||
description: "与非此项目成员的用户共享工作包。"
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "自定义颜色主题和 Logo"
|
||||
more_info: "注:使用的 Logo 将可公开访问。"
|
||||
|
||||
@@ -2012,6 +2012,8 @@ zh-TW:
|
||||
description: "透過日期提醒,您將收到即將到來的開始或結束日期的通知,這樣您就不會錯過或忘記重要的截止日期。"
|
||||
work_package_sharing:
|
||||
description: "與不是專案成員的使用者共同參與工作項目。"
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "自訂布景主題顏色與logo"
|
||||
more_info: "備註:Logo可被公開存取。"
|
||||
|
||||
@@ -2131,6 +2131,8 @@ en:
|
||||
description: "With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline."
|
||||
work_package_sharing:
|
||||
description: "Share work packages with users who are not members of the project."
|
||||
project_list_sharing:
|
||||
description: "Share project lists with individual users."
|
||||
define_custom_style:
|
||||
title: "Custom color theme and logo"
|
||||
more_info: "Note: the used logo will be publicly accessible."
|
||||
|
||||
@@ -136,7 +136,7 @@ enterprise_features:
|
||||
default:
|
||||
href: https://www.openproject.org/enterprise-edition
|
||||
work_package_subject_generation:
|
||||
href: https://www.openproject.org/docs/system-admin-guide/manage-work-packages/automatic-subjects/
|
||||
href: https://www.openproject.org/docs/system-admin-guide/manage-work-packages/work-package-types/automatic-subjects/
|
||||
form_configuration:
|
||||
href: https://www.openproject.org/docs/system-admin-guide/manage-work-packages/work-package-types/#work-package-form-configuration-enterprise-add-on
|
||||
attribute_highlighting:
|
||||
|
||||
@@ -3,12 +3,12 @@ title: OpenProject 16.0.0
|
||||
sidebar_navigation:
|
||||
title: 16.0.0
|
||||
release_version: 16.0.0
|
||||
release_date: 2025-05-01
|
||||
release_date: 2025-05-21
|
||||
---
|
||||
|
||||
# OpenProject 16.0.0
|
||||
|
||||
Release date: 2025-05-01
|
||||
Release date: 2025-05-21
|
||||
|
||||
We released [OpenProject 16.0.0](https://community.openproject.org/versions/1412). This major release contains many features and bug fixes and we recommend updating to the newest version. In these Release Notes, we will give an overview of important updates, important feature changes and important technical updates. At the end, you will find a complete list of all changes and bug fixes for 16.0.0.
|
||||
|
||||
@@ -138,6 +138,10 @@ Instead of mutually acting as OAuth servers and clients, both OpenProject and Ne
|
||||
|
||||
Please see [our system admin guide](../../system-admin-guide/integrations/nextcloud/oidc-sso/) to learn how to set up this integration.
|
||||
|
||||
This is the first version of OpenProject to support this new integration method with Nextcloud. Since this feature was not yet
|
||||
exposed to large installations, we still consider it experimental. Please share your feedback regarding this new feature with us and stay tuned
|
||||
for further enhancements around it.
|
||||
|
||||
## Breaking: API requests with JWT issued by OpenID Connect provider require scope
|
||||
|
||||
In [OpenProject 14.4.0](../../release-notes/14/14-0-0/) we introduced the possibility to access the OpenProject API through a JSON Web Token created by an OpenID Connect
|
||||
|
||||
@@ -11,13 +11,14 @@ Manage work packages in OpenProject.
|
||||
|
||||
## Overview
|
||||
|
||||
| Popular Topics | Description |
|
||||
| --------------------------------------------------- | :----------------------------------------------------------- |
|
||||
| [Settings](work-package-settings) | Configure general work package settings and defaults, such as display options and more. |
|
||||
| [Types](work-package-types) | Create and manage work package types. |
|
||||
| [Status](work-package-status) | Create and manage work package status. |
|
||||
| [Priorities](work-package-priorities) | Create and manage work package priorities. |
|
||||
| [Progress tracking](work-package-progress-tracking) | Manage work package progress reporting settings. |
|
||||
| [Workflows](work-package-workflows) | Create and manage workflows for work packages in OpenProject. |
|
||||
| [Custom actions](custom-actions) | Create custom actions for work packages (Enterprise add-on). |
|
||||
| [FAQs](work-packages-faq) | Frequently asked questions about work packages in OpenProject. |
|
||||
| Popular Topics | Description |
|
||||
| ----------------------------------------------------------- | :----------------------------------------------------------- |
|
||||
| [Settings](work-package-settings) | Configure general work package settings and defaults, such as display options and more. |
|
||||
| [Types](work-package-types) | Create and manage work package types. |
|
||||
| [Automatic subjects](work-package-types/automatic-subjects) | Define automatic work package subjects (Enterprise add-on). |
|
||||
| [Status](work-package-status) | Create and manage work package status. |
|
||||
| [Priorities](work-package-priorities) | Create and manage work package priorities. |
|
||||
| [Progress tracking](work-package-progress-tracking) | Manage work package progress reporting settings. |
|
||||
| [Workflows](work-package-workflows) | Create and manage workflows for work packages in OpenProject. |
|
||||
| [Custom actions](custom-actions) | Create custom actions for work packages (Enterprise add-on). |
|
||||
| [FAQs](work-packages-faq) | Frequently asked questions about work packages in OpenProject. |
|
||||
|
||||
@@ -95,6 +95,14 @@ The embedded related work package table in the work package form will look like
|
||||
|
||||

|
||||
|
||||
## Work package automatic subject configuration (Enterprise add-on)
|
||||
|
||||
> [!NOTE]
|
||||
> Configuring automatically generated work package subjects is an Enterprise add-on and can only be used with [Enterprise cloud](../../../enterprise-guide/enterprise-cloud-guide/) or [Enterprise on-premises](../../../enterprise-guide/enterprise-on-premises-guide/). An upgrade from the free Community edition is easily possible.
|
||||
|
||||
Please refer to [this guide](automatic-subjects) for a detailed description of automatically generated work packages subjects in OpenProject.
|
||||
|
||||
|
||||
## Activate work package types for projects
|
||||
|
||||
Under *Administration -> Work packages -> Types* on the tab **Projects** you can select for which projects this work package type should be activated.
|
||||
@@ -110,3 +118,5 @@ Under the **Generate PDF** tab of *Administration -> Work packages -> Types* yo
|
||||
|
||||
The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default.
|
||||
|
||||

|
||||
|
||||
|
||||
+56
-28
@@ -1,46 +1,76 @@
|
||||
# Configuring automatic subjects
|
||||
---
|
||||
sidebar_navigation:
|
||||
title: Automatic subjects
|
||||
priority: 900
|
||||
description: Configure automatic work package subjects in OpenProject.
|
||||
keywords: work package subject, automatic subject, subject pattern
|
||||
---
|
||||
|
||||
This guide explains how administrators configure **automatic subject patterns** for work packages in OpenProject. Subject patterns combine static text with dynamic attributes - such as dates, author names, or custom fields - to automatically generate consistent and informative work package titles.
|
||||
# Configure automatic work package subjects (Enterprise add-on)
|
||||
|
||||
Automatic subject patterns help teams quickly identify tasks, reduce manual errors, and standardize naming conventions across your projects.
|
||||
> [!NOTE]
|
||||
> Configuring automatically generated work package subjects is an Enterprise add-on and can only be used with [Enterprise cloud](../../../../enterprise-guide/enterprise-cloud-guide/) or [Enterprise on-premises](../../../../enterprise-guide/enterprise-on-premises-guide/). An upgrade from the free Community edition is easily possible.
|
||||
|
||||
This guide explains how administrators can configure **automatic subject patterns** for work packages in OpenProject. Please also refer to the [user guide on automatic work package subjects](../../../../user-guide/work-packages/automatic-subjects/) for more details on automatic subjects within projects.
|
||||
|
||||
Subject patterns combine static text with dynamic attributes - such as dates, author names, or custom fields - to automatically generate consistent and informative work package subjects.
|
||||
|
||||
## 1. How subject patterns work
|
||||
Automatic subject patterns help teams quickly identify tasks, reduce manual errors, and standardize naming conventions across your projects. Specific patterns can be defined for different work package types.
|
||||
|
||||
## How subject patterns work
|
||||
|
||||
A subject pattern includes a combination of:
|
||||
|
||||
- **Static text** (e.g., `Invoice`, `Vacation Request`)
|
||||
|
||||
> [!TIP]
|
||||
>
|
||||
> Use the company-approved language for static text, as it will not be translated into language users can specify for their personal accounts.
|
||||
|
||||
- **Dynamic attribute placeholders** (e.g., `[Author]`, `[Start date]`, `[Custom Field: Invoice ID]`)
|
||||
|
||||
> [!TIP]
|
||||
>
|
||||
> Dynamic attribute placeholders will be shown in the default language defined globally for all users in your organization (under Administration -> Users and permissions -> User settings). Users can still change language settings for their personal accounts, but this will have no bearing on the automatic work package subjects.
|
||||
|
||||
When users create or edit work packages, OpenProject automatically replaces these placeholders with real attribute values, generating clear subjects.
|
||||
|
||||

|
||||
|
||||
## Add, edit and delete attributes
|
||||
|
||||
## 2. Adding, changing, and deleting attributes
|
||||
Administrators configure subject patterns using a simple editor in the administration settings:
|
||||
|
||||
Administrators configure subject patterns using a simple editor in the admin settings:
|
||||
### How to add attributes
|
||||
|
||||
### 2.1 Adding attributes
|
||||
1. Navigate to *Administration → Work Packages → Types*, choose a type, then open **Subject configuration**.
|
||||
|
||||
1. Navigate to **Administration → Work Package Types**, choose a type, then open **Subject configuration**.
|
||||
2. Type `/` in the input field to open attribute search.
|
||||
|
||||
3. Search for and select an attribute from the dropdown. The chosen attribute appears as a placeholder (e.g., `[Start date]`).
|
||||
|
||||
### 2.2 Changing attributes
|
||||
> [!TIP]
|
||||
>
|
||||
> Some attributes can be selected not only for the work package in question, but also for it's parent work package.
|
||||
|
||||
- Click into an existing attribute placeholder to edit it. This triggers the attribute search again.
|
||||
- Type and select a different attribute from the dropdown. The placeholder updates automatically.
|
||||
4. Don't forget to *Save* your changes.
|
||||
|
||||
### 2.3 Deleting attributes
|
||||

|
||||
|
||||
- Delete an attribute placeholder just like regular text (e.g., using backspace).
|
||||
### How to edit attributes
|
||||
|
||||
- Click into an existing attribute placeholder to edit it. This will trigger the attribute search again.
|
||||
- Type and select different attributes from the dropdown list. The placeholder will update automatically.
|
||||
|
||||
### How to delete attributes
|
||||
|
||||
- Delete an attribute placeholder same as you would a regular text (e.g., using backspace).
|
||||
|
||||
|
||||
|
||||
## 3. Supported attributes and limitations
|
||||
## Supported attributes and limitations
|
||||
|
||||
### 3.1 Work package attributes
|
||||
### Work package attributes
|
||||
|
||||
Subject patterns can include placeholders referencing the following work package attributes:
|
||||
|
||||
@@ -67,8 +97,7 @@ Subject patterns can include placeholders referencing the following work package
|
||||
> [!NOTE]
|
||||
> Ensure selected attributes are activated and available in your project and work package types to avoid showing “N/A” in subjects.
|
||||
|
||||
|
||||
### 3.2 Supported project attribute
|
||||
### Project attributes
|
||||
|
||||
| Attribute Name | Data Type | Example |
|
||||
| - | -- | -- |
|
||||
@@ -82,28 +111,23 @@ Subject patterns can include placeholders referencing the following work package
|
||||
**Unsupported project attributes**: Long text and Link custom fields are excluded to keep subjects concise.
|
||||
|
||||
|
||||
|
||||
|
||||
## 4. updating automatic subjects
|
||||
## Update automatic subjects
|
||||
|
||||
Automatic subjects update whenever an attribute referenced in the **current work package** changes and the work package is saved.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Attributes referencing parent work packages or project attributes won't trigger immediate updates. Changes in parent or project attributes appear only when the child work package itself is updated and saved again.
|
||||
|
||||
## FAQs
|
||||
### Why "N/A" appears in subjects
|
||||
|
||||
|
||||
## 5. Why "N/A" appears in subjects
|
||||
|
||||
"N/A" indicates an unavailable attribute referenced in the subject pattern. Typical causes:
|
||||
"N/A" indicates an unavailable attribute referenced in the subject pattern. Typical causes include:
|
||||
|
||||
- The attribute isn't activated in the current project.
|
||||
- The attribute was removed from form configuration after creating the pattern.
|
||||
- A parent attribute is referenced, but the parent doesn't contain the attribute.
|
||||
|
||||
|
||||
|
||||
## 5. Why [Attribute Name] appears in subjects
|
||||
### Why [Attribute Name] appears in subjects
|
||||
|
||||
[Attribute Name] indicates an empty attribute referenced in the subject pattern.
|
||||
|
||||
@@ -112,14 +136,18 @@ Automatic subjects update whenever an attribute referenced in the **current work
|
||||
- A project attribute is referenced, but hasn't been filled.
|
||||
|
||||
|
||||
## 6. Tips for effective patterns
|
||||
## Tips for effective patterns
|
||||
|
||||
Good subject patterns should be:
|
||||
|
||||
- **Concise**: Keep subjects short and readable.
|
||||
- **Relevant**: Include only essential attributes needed for quick identification.
|
||||
- **Descriptive**: Use clear static text (e.g., `Invoice`, `Bug Report`) to define the work package type.
|
||||
- **Language choice**: Use the company-approved language for
|
||||
|
||||
Check our [Example Subject Patterns](https://www.openproject.org/blog/automatically-generated-work-package-subjects/) for inspiration.
|
||||
|
||||
> [!TIP]
|
||||
>
|
||||
>
|
||||
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 352 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 47 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 49 KiB |
@@ -11,7 +11,24 @@ Navigate to *Administration* -> *Time and costs*. Here you can configure costs i
|
||||
|
||||
## Default time and cost settings
|
||||
|
||||
Navigate to *Administration* -> *Time and costs* -> *Defaults* to define settings for costs in OpenProject.
|
||||
To define default settings for logging time and costs navigate to *Administration* -> *Time and costs* -> *Defaults* and select *Time* or *Costs* tab respectively.
|
||||
|
||||
### Define default time settings (Enterprise add-on)
|
||||
|
||||
> [!NOTE]
|
||||
> Enforcing exact time entries for time logging is an Enterprise add-on and can only be used with [Enterprise cloud](https://www.openproject.org/docs/enterprise-guide/enterprise-cloud-guide) or [Enterprise on-premises](https://www.openproject.org/docs/enterprise-guide/enterprise-on-premises-guide). An upgrade from the free Community edition is easily possible.
|
||||
|
||||
Under the *Time* tab you can define which fields are required to be fill out when logging time across all projects.
|
||||
|
||||
- **Allow exact times tracking**: enables entering start and finish times when logging time. If disabled, only the amount of time spent can be logged, but not the start or end times.
|
||||
|
||||
If this option is activated, calendar mode is shown by default under My time tracking page. If not, list view will be shown by default.
|
||||
|
||||
- **Require exact times**: makes entering start and finish times mandatory when logging time.
|
||||
|
||||

|
||||
|
||||
### Define default cost settings
|
||||
|
||||
1. Configure the **currency used in the system, e.g. EUR**.
|
||||
2. **Specify the format of the currency**, if the number should be before or after the currency, e.g. 10 EUR, or $ 10.
|
||||
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
@@ -42,8 +42,9 @@ Please choose the module or feature you want to learn more about.
|
||||
| [Gantt chart](gantt-chart) | How to create and manage a project plan in a Gantt chart. |
|
||||
| [GitHub](../system-admin-guide/integrations/github-integration/) | How to manage the GitHub integration. |
|
||||
| [GitLab](../system-admin-guide/integrations/gitlab-integration/) | How to manage the GitLab integration. |
|
||||
| [Meetings](meetings) | How to manage meetings to create and share meeting agenda and meeting minutes. |
|
||||
| [Meetings](meetings) | How to manage meetings to create and share meeting agenda and meeting outcomes. |
|
||||
| [Members](members) | How to manage Members in a project. |
|
||||
| [My time tracking](my-time-tracking) | How to manage personal time entries in list and calendar views. |
|
||||
| [News](news) | How to create and manage News for your projects. |
|
||||
| [Nextcloud integration](./file-management/nextcloud-integration) | How to link and use Nextcloud files and folders in OpenProject. |
|
||||
| [OneDrive/SharePoint integration](./file-management/one-drive-integration) | How to link and use SharePoint files and folders in OpenProject. |
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
---
|
||||
sidebar_navigation:
|
||||
title: My time tracking
|
||||
priority: 950
|
||||
description: Get an overview of time logs in a calendar or list view. Easily log time directly from My time tracking page.
|
||||
keywords: time tracking, log time, time spent, calendar, time spent calendar, time logs
|
||||
---
|
||||
|
||||
# My time tracking
|
||||
|
||||
## Overview
|
||||
The *My time tracking* module offers a clear overview of your personal time entries. You can quickly log time directly from this page. To access it, select **My time tracking** from the left-hand menu.
|
||||
|
||||

|
||||
|
||||
### My time tracking page filters
|
||||
|
||||
1. On the *My time tracking* page, you’ll find the following interface elements:
|
||||
1. **Zen mode** button — toggles a distraction-free view.
|
||||
2. **Tab selector** — switch between *Calendar* and *List* views.
|
||||
3. **Zoom level dropdown menu** — choose the time scale for the view. Following options are available:
|
||||
- Day
|
||||
- Work week
|
||||
- Week
|
||||
- Month
|
||||
4. **Displayed date range** — shows the currently visible timeframe.
|
||||
5. **Navigation arrows** — move to the previous or next time period.
|
||||
6. **Today** button — jump directly to the current day.
|
||||
7. **+ Log time** button — add a new time entry.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
### Calendar view
|
||||
|
||||
The *Calendar* view opens by default if start and finish times for time entries have been enabled in [System Administration](../../system-admin-guide/time-and-costs). You can adjust the zoom level using the dropdown menu, with options for **Day**, **Work week**, **Week**, or **Month**.
|
||||
|
||||
Existing time entries appear on the corresponding days they were logged. Entry colors reflect the type of work package associated with the logged time.
|
||||
|
||||
At the top section of each day in the calendar, there is a dedicated area that allows you to log time without specifying a start or finish time. This is useful for quick entries or for logging effort that isn't tied to a specific time range.
|
||||
|
||||
You can log time by selecting a time range anywhere on the calendar or by using the **+ Log time** button.
|
||||
|
||||
You can drag and drop time entries to reposition them within the same day or move them to a different day. To adjust the duration of an entry, drag the top or bottom edge of the time entry up or down.
|
||||
|
||||

|
||||
|
||||
To edit a time entry, click it in the calendar, make your changes, and save. You can also delete it from the same menu.
|
||||
|
||||
At the bottom of each day a sum of hours per day is displayed. If week or month is selected, a respective total is also shown in the bottom right corner.
|
||||
|
||||

|
||||
|
||||
### List view
|
||||
|
||||
The *List* view opens by default if start and finish times for time entries are **disabled** in [System Administration](../../system-admin-guide/time-and-costs). Just like in the *Calendar* view, you can select the zoom level using the dropdown menu — options include **Day**, **Work week**, **Week**, or **Month**.
|
||||
|
||||
In this view, time entries are grouped by day. Each day displays the total number of entries and their combined duration on the right side of the header line.
|
||||
|
||||
- When the **Day** zoom is selected, the view is expanded by default.
|
||||
|
||||
- When **Week** or **Month** zoom is selected, past days or weeks are collapsed by default. However, the current day (in Week view) or the current week (in Month view) is expanded, along with all future dates.
|
||||
|
||||
> [!TIP]
|
||||
>
|
||||
> If monthly level is chosen in the list view mode, time entries are aggregated by week and not by day. This is especially useful to get an overview of your tracked hours for each week.
|
||||
|
||||
|
||||
Expanded days display time entries in a table format with the following columns:
|
||||
|
||||
- **Time**
|
||||
- **Hours**
|
||||
- **Subject** (with a clickable link to the work package)
|
||||
- **Project**
|
||||
- **Activity**
|
||||
- **Comment**
|
||||
- **+** (last column, used to log time for that specific day)
|
||||
|
||||
To log time in *List* view, you can either:
|
||||
|
||||
- Click the **+ Log Time** button to add a time entry for any date outside the currently displayed range.
|
||||
- Use the **+** icon in the table to log time directly for a specific day.
|
||||
|
||||

|
||||
|
||||
To edit a time entry in the *List* view, click the **More** (three dots) icon at the end of the entry’s row in the table, then select the **Edit** (pencil) icon.
|
||||
|
||||

|
||||
|
||||
## Log time in My time tracking module
|
||||
|
||||
To log time on the *My time tracking* page, click the **+ Log time** button. A modal window will appear with the following fields:
|
||||
|
||||
- **Date** – Select the day for the time entry.
|
||||
|
||||
- **Start time** and **Finish time** – When both are entered, the **Hours** field is calculated automatically.
|
||||
|
||||
> [!TIP]
|
||||
> These fields are only visible if the **Allow exact times tracking** option is enabled by an administrator.
|
||||
> If the **Require exact times** option is also enabled, these fields become mandatory in order to save the time entry.
|
||||
|
||||
- **Hours** – Enter the number of hours you want to log for a specific work package.
|
||||
|
||||
- **Work package** – Type to search for a work package or select from the list of recently used ones.
|
||||
|
||||
- **Activity** – Choose an activity that is active for the project the selected work package belongs to.
|
||||
|
||||
- **Comment** – Add any relevant notes or details for the time entry.
|
||||
|
||||
Don't forget to click the **Log** button to save your time entry.
|
||||
|
||||

|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user