Permalink
Browse files

Release OpenProject Community 5.0.15

  • Loading branch information...
2 parents a1a10a8 + 350e9ac commit 697964ed1d64e676bb7091a758b439283f79f038 @oliverguenther oliverguenther committed Feb 15, 2016
Showing with 280 additions and 138 deletions.
  1. +13 −0 .travis.yml
  2. +20 −20 Gemfile.lock
  3. +2 −2 app/assets/stylesheets/content/_forms.lsg
  4. +4 −0 app/assets/stylesheets/content/_in_place_editing.sass
  5. +1 −1 app/assets/stylesheets/layout/_toolbar.sass
  6. +2 −2 app/controllers/activities_controller.rb
  7. +15 −1 app/controllers/application_controller.rb
  8. +1 −0 app/controllers/boards_controller.rb
  9. +1 −0 app/controllers/groups_controller.rb
  10. +1 −0 app/controllers/news_controller.rb
  11. +4 −1 app/controllers/projects_controller.rb
  12. +1 −0 app/controllers/roles_controller.rb
  13. +12 −2 app/controllers/wiki_controller.rb
  14. +1 −1 app/controllers/work_packages/moves_controller.rb
  15. +1 −1 app/helpers/application_helper.rb
  16. +2 −2 app/helpers/custom_fields_helper.rb
  17. +23 −1 app/helpers/repositories_helper.rb
  18. +6 −4 app/helpers/watchers_helper.rb
  19. +15 −7 app/models/custom_field.rb
  20. +2 −2 app/views/account/_login.html.erb
  21. +2 −1 app/views/custom_fields/_form.html.erb
  22. +1 −1 app/views/my/page_layout.html.erb
  23. +1 −1 app/views/projects/form/attributes/_name.html.erb
  24. +2 −1 app/views/work_packages/bulk/edit.html.erb
  25. +1 −0 app/views/work_packages/moves/new.html.erb
  26. +3 −0 config/configuration.yml.example
  27. +1 −1 config/initializers/session_store.rb
  28. +5 −0 config/locales/en.yml
  29. +34 −2 config/unicorn.rb
  30. +15 −1 doc/operation_guides/manual/upgrade-guide.md
  31. +1 −0 features/admin/user.feature
  32. +0 −11 features/menu_items/query_menu_items.feature
  33. +0 −9 features/step_definitions/custom_web_steps.rb
  34. +1 −1 frontend/app/components/common/path-heleper/path-helper.service.js
  35. +3 −1 frontend/app/components/routing/controllers/work-packages-list.controller.js
  36. +1 −3 frontend/app/templates/work_packages/menus/query_select_dropdown_menu.html
  37. +5 −5 frontend/app/work_packages/controllers/menus/query-select-dropdown-menu-controller.js
  38. +1 −0 lib/open_project/configuration.rb
  39. +1 −1 lib/open_project/version.rb
  40. +3 −3 lib/redmine/unified_diff.rb
  41. +1 −1 lib/tasks/packager.rake
  42. +6 −1 spec/controllers/work_packages/bulk_controller_spec.rb
  43. +1 −1 vendored-plugins/openproject-announcements/lib/open_project/announcements/version.rb
  44. +1 −1 vendored-plugins/openproject-auth_plugins/lib/open_project/auth_plugins/version.rb
  45. +1 −1 vendored-plugins/openproject-backlogs/features/edit_version_from_menu.feature
  46. +1 −1 vendored-plugins/openproject-backlogs/features/step_definitions/_when_steps.rb
  47. +1 −1 vendored-plugins/openproject-backlogs/lib/open_project/backlogs/version.rb
  48. +10 −6 ...ins/openproject-costs/app/views/hooks/costs/_view_work_packages_bulk_edit_details_bottom.html.erb
  49. +1 −1 vendored-plugins/openproject-costs/lib/open_project/costs/version.rb
  50. +5 −5 vendored-plugins/openproject-costs/spec/lib/api/v3/budgets/budget_representer_spec.rb
  51. +1 −1 ...d-plugins/openproject-costs/spec/lib/api/v3/work_packages/work_package_schema_representer_spec.rb
  52. +1 −1 vendored-plugins/openproject-documents/lib/open_project/documents/version.rb
  53. +1 −1 vendored-plugins/openproject-github_integration/lib/open_project/github_integration/version.rb
  54. +3 −3 vendored-plugins/openproject-global_roles/app/views/roles/index.html.erb
  55. +1 −1 vendored-plugins/openproject-global_roles/lib/open_project/global_roles/version.rb
  56. +1 −1 vendored-plugins/openproject-help_link/lib/open_project/help_link/version.rb
  57. +1 −1 vendored-plugins/openproject-local_avatars/lib/open_project/local_avatars/version.rb
  58. +1 −1 vendored-plugins/openproject-meeting/lib/open_project/meeting/version.rb
  59. +1 −1 vendored-plugins/openproject-my_project_page/app/views/my_projects_overviews/page_layout.html.erb
  60. +1 −1 vendored-plugins/openproject-my_project_page/lib/open_project/my_project_page/version.rb
  61. +1 −1 vendored-plugins/openproject-openid_connect/lib/open_project/openid_connect/version.rb
  62. +1 −1 vendored-plugins/openproject-openid_connect/spec/requests/openid_connect_spec.rb
  63. +1 −1 vendored-plugins/openproject-pdf_export/lib/open_project/pdf_export/version.rb
  64. +24 −0 vendored-plugins/openproject-reporting/app/models/cost_query/group_by/base.rb
  65. +0 −10 vendored-plugins/openproject-reporting/features/links.feature
  66. +1 −1 vendored-plugins/openproject-reporting/lib/open_project/reporting/version.rb
  67. +1 −1 vendored-plugins/openproject-themes-dark/lib/open_project/themes/dark/version.rb
  68. +1 −1 vendored-plugins/openproject-webhooks/lib/open_project/webhooks/version.rb
  69. +1 −1 vendored-plugins/openproject-xls_export/lib/open_project/xls_export/version.rb
  70. +1 −1 vendored-plugins/reporting_engine/lib/reporting_engine/version.rb
View
@@ -67,6 +67,13 @@ env:
- "TEST_SUITE=rspec DB=mysql GROUP_SIZE=6 GROUP=4"
- "TEST_SUITE=rspec DB=mysql GROUP_SIZE=6 GROUP=5"
- "TEST_SUITE=rspec DB=mysql GROUP_SIZE=6 GROUP=6"
+ - "TEST_SUITE=plugins:spec DB=mysql GROUP_SIZE=3 GROUP=1"
+ - "TEST_SUITE=plugins:spec DB=mysql GROUP_SIZE=3 GROUP=2"
+ - "TEST_SUITE=plugins:spec DB=mysql GROUP_SIZE=3 GROUP=3"
+ - "TEST_SUITE=plugins:cucumber DB=mysql GROUP_SIZE=3 GROUP=1"
+ - "TEST_SUITE=plugins:cucumber DB=mysql GROUP_SIZE=3 GROUP=2"
+ - "TEST_SUITE=plugins:cucumber DB=mysql GROUP_SIZE=3 GROUP=3"
+
- "TEST_SUITE=spec_legacy DB=postgres GROUP_SIZE=2 GROUP=1"
- "TEST_SUITE=spec_legacy DB=postgres GROUP_SIZE=2 GROUP=2"
@@ -79,6 +86,12 @@ env:
- "TEST_SUITE=rspec DB=postgres GROUP_SIZE=6 GROUP=4"
- "TEST_SUITE=rspec DB=postgres GROUP_SIZE=6 GROUP=5"
- "TEST_SUITE=rspec DB=postgres GROUP_SIZE=6 GROUP=6"
+ - "TEST_SUITE=plugins:spec DB=postgres GROUP_SIZE=3 GROUP=1"
+ - "TEST_SUITE=plugins:spec DB=postgres GROUP_SIZE=3 GROUP=2"
+ - "TEST_SUITE=plugins:spec DB=postgres GROUP_SIZE=3 GROUP=3"
+ - "TEST_SUITE=plugins:cucumber DB=postgres GROUP_SIZE=3 GROUP=1"
+ - "TEST_SUITE=plugins:cucumber DB=postgres GROUP_SIZE=3 GROUP=2"
+ - "TEST_SUITE=plugins:cucumber DB=postgres GROUP_SIZE=3 GROUP=3"
before_install:
- "echo `firefox -v`"
View
@@ -63,10 +63,10 @@ GIT
GIT
remote: https://github.com/opf/openproject-translations.git
- revision: 7d1810e56cbf8b9476e4fa018d7b94fc8dab6026
+ revision: c5146cc45b62d11cc83329ce5e9ac6caf98f510e
branch: stable/5
specs:
- openproject-translations (5.0.14)
+ openproject-translations (5.0.15)
crowdin-api (~> 0.4.0)
mixlib-shellout (~> 2.1.0)
rails (~> 4.2.3)
@@ -98,78 +98,78 @@ GIT
PATH
remote: vendored-plugins/openproject-announcements
specs:
- openproject-announcements (5.0.14)
+ openproject-announcements (5.0.15)
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-auth_plugins
specs:
- openproject-auth_plugins (5.0.14)
+ openproject-auth_plugins (5.0.15)
omniauth (~> 1.0)
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-backlogs
specs:
- openproject-backlogs (5.0.14)
+ openproject-backlogs (5.0.15)
acts_as_silent_list (~> 2.0.0)
openproject-pdf_export
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-costs
specs:
- openproject-costs (5.0.14)
+ openproject-costs (5.0.15)
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-documents
specs:
- openproject-documents (5.0.14)
+ openproject-documents (5.0.15)
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-github_integration
specs:
- openproject-github_integration (5.0.14)
+ openproject-github_integration (5.0.15)
openproject-webhooks (~> 5.0.1)
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-global_roles
specs:
- openproject-global_roles (5.0.14)
+ openproject-global_roles (5.0.15)
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-help_link
specs:
- openproject-help_link (5.0.14)
+ openproject-help_link (5.0.15)
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-local_avatars
specs:
- openproject-local_avatars (5.0.14)
+ openproject-local_avatars (5.0.15)
rails (~> 4.2.4)
rmagick (~> 2.15.4)
PATH
remote: vendored-plugins/openproject-meeting
specs:
- openproject-meeting (5.0.14)
+ openproject-meeting (5.0.15)
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-my_project_page
specs:
- openproject-my_project_page (5.0.14)
+ openproject-my_project_page (5.0.15)
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-openid_connect
specs:
- openproject-openid_connect (5.0.14)
+ openproject-openid_connect (5.0.15)
lobby_boy (~> 0.1)
omniauth-openid_connect-providers (~> 0.1)
openproject-auth_plugins (~> 5.0.1)
@@ -178,41 +178,41 @@ PATH
PATH
remote: vendored-plugins/openproject-pdf_export
specs:
- openproject-pdf_export (5.0.14)
+ openproject-pdf_export (5.0.15)
prawn (~> 0.14.0)
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-reporting
specs:
- openproject-reporting (5.0.14)
+ openproject-reporting (5.0.15)
openproject-costs (>= 5.0.1)
rails (~> 4.2.4)
reporting_engine (>= 1.1.0)
PATH
remote: vendored-plugins/openproject-themes-dark
specs:
- openproject-themes-dark (5.0.14)
+ openproject-themes-dark (5.0.15)
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-webhooks
specs:
- openproject-webhooks (5.0.14)
+ openproject-webhooks (5.0.15)
rails (~> 4.2.4)
PATH
remote: vendored-plugins/openproject-xls_export
specs:
- openproject-xls_export (5.0.14)
+ openproject-xls_export (5.0.15)
rails (~> 4.2.4)
spreadsheet (~> 0.8.9)
PATH
remote: vendored-plugins/reporting_engine
specs:
- reporting_engine (5.0.14)
+ reporting_engine (5.0.15)
json
rails (~> 4.2.4)
@@ -110,8 +110,8 @@
Write anything you like.
</div>
</div>
- <div class="form--field">
- <label class="form--label -required">Email:</label>
+ <div class="form--field -required">
+ <label class="form--label">Email:</label>
<div class="form--field-container">
<div class="form--text-field-container">
<input type="email" class="form--text-field" placeholder="a valid email">
@@ -176,6 +176,10 @@
.user-field-user-link
display: inline
+ .macro-unavailable.permanent
+ position: relative
+ top: 0
+
.inplace-edit--preview
border: 1px solid $inplace-edit--border-color
padding: 0.375rem
@@ -151,7 +151,7 @@
float: none
span.filter-selection
- @include query-select-dropdown-filter-select($main-menu-font-color)
+ @include query-select-dropdown-filter-select($primary-color)
.dropdown-scrollable
overflow-y: auto
@@ -39,7 +39,7 @@ def index
begin; @date_to = params[:from].to_date + 1; rescue; end
end
- @date_to ||= Date.today + 1
+ @date_to ||= User.current.today + 1
@date_from = @date_to - @days
@with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_work_packages? : (params[:with_subprojects] == '1')
@author = (params[:user_id].blank? ? nil : User.active.find(params[:user_id]))
@@ -56,7 +56,7 @@ def index
if events.empty? || stale?(etag: [@activity.scope, @date_to, @date_from, @with_subprojects, @author, events.first, User.current, current_language])
respond_to do |format|
format.html do
- @events_by_day = events.group_by { |e| e.event_datetime.to_date }
+ @events_by_day = events.group_by { |e| e.event_datetime.in_time_zone(User.current.time_zone).to_date }
render layout: false if request.xhr?
end
format.atom do
@@ -89,7 +89,14 @@ def handle_unverified_request
# is raised here, but is denied by disable_api.
#
# See http://stackoverflow.com/a/15350123 for more information on login CSRF.
- render_error status: 422, message: 'Invalid form authenticity token.' unless api_request?
+ unless api_request?
+
+ # Check whether user have cookies enabled, otherwise they'll only be
+ # greeted with the CSRF error upon login.
+ message = I18n.t(:error_token_authenticity)
+ message << ' ' + I18n.t(:error_cookie_missing) if openproject_cookie_missing?
+ render_error status: 422, message: message
+ end
end
rescue_from ActionController::ParameterMissing do |exception|
@@ -193,6 +200,13 @@ def check_if_login_required
require_login if Setting.login_required?
end
+ # Checks if the session cookie is missing.
+ # This is useful only on a second request
+ def openproject_cookie_missing?
+ request.cookies[OpenProject::Configuration['session_cookie_name']].nil?
+ end
+ helper_method :openproject_cookie_missing?
+
def log_requesting_user
return unless Setting.log_requesting_user?
login_and_mail = " (#{escape_for_logging(User.current.login)} ID: #{User.current.id} " \
@@ -135,6 +135,7 @@ def move
def destroy
@board.destroy
+ flash[:notice] = l(:notice_successful_delete)
redirect_to_settings_in_projects
end
@@ -111,6 +111,7 @@ def destroy
@group.destroy
respond_to do |format|
+ flash[:notice] = l(:notice_successful_delete)
format.html do redirect_to(groups_url) end
format.xml do head :ok end
end
@@ -95,6 +95,7 @@ def update
def destroy
@news.destroy
+ flash[:notice] = l(:notice_successful_delete)
redirect_to action: 'index', project_id: @project
end
@@ -227,7 +227,10 @@ def destroy
OpenProject::Notifications.send('project_deletion_imminent', project: @project_to_destroy)
@project_to_destroy.destroy
respond_to do |format|
- format.html do redirect_to controller: '/admin', action: 'projects' end
+ format.html do
+ flash[:notice] = l(:notice_successful_delete)
+ redirect_to controller: '/admin', action: 'projects'
+ end
end
hide_project_in_layout
@@ -89,6 +89,7 @@ def update
def destroy
@role = Role.find(params[:id])
@role.destroy
+ flash[:notice] = l(:notice_successful_delete)
redirect_to action: 'index'
notify_changed_roles(:removed, @role)
rescue
@@ -182,7 +182,11 @@ def edit
# Creates a new page or updates an existing one
def update
@page = @wiki.find_or_new_page(wiki_page_title)
- return render_403 unless editable?
+ unless editable?
+ flash[:error] = l(:error_unable_update_wiki)
+ return render_403
+ end
+
@page.content = WikiContent.new(page: @page) if @page.new_record?
@content = @page.content_for_version(params[:version])
@@ -205,6 +209,7 @@ def update
attachments = Attachment.attach_files(@page, params[:attachments])
render_attachment_warning_if_needed(@page)
call_hook(:controller_wiki_edit_after_save, params: params, page: @page)
+ flash[:notice] = l(:notice_successful_update)
redirect_to_show
else
render action: 'edit'
@@ -278,7 +283,10 @@ def annotate
# Removes a wiki page and its history
# Children can be either set as root pages, removed or reassigned to another parent page
def destroy
- return render_403 unless editable?
+ unless editable?
+ flash[:error] = l(:error_unable_delete_wiki)
+ return render_403
+ end
@descendants_count = @page.descendants.size
if @descendants_count > 0
@@ -303,8 +311,10 @@ def destroy
@page.destroy
if page = @wiki.find_page(@wiki.start_page) || @wiki.pages.first
+ flash[:notice] = l(:notice_successful_delete)
redirect_to action: 'index', project_id: @project, id: page
else
+ flash[:notice] = l(:notice_successful_delete)
redirect_to project_path(@project)
end
end
@@ -78,7 +78,7 @@ def create
redirect_to project_work_packages_path(@target_project || @project)
end
else
- redirect_to project_work_packages_path(@project)
+ redirect_back_or_default(project_work_packages_path(@project))
end
end
@@ -123,7 +123,7 @@ def format_activity_title(text)
end
def format_activity_day(date)
- date == Date.today ? l(:label_today).titleize : format_date(date)
+ date == User.current.today ? l(:label_today).titleize : format_date(date)
end
def format_activity_description(text)
@@ -111,7 +111,7 @@ def custom_field_tag_with_label(name, custom_value)
custom_field_label_tag(name, custom_value) + custom_field_tag(name, custom_value)
end
- def custom_field_tag_for_bulk_edit(name, custom_field)
+ def custom_field_tag_for_bulk_edit(name, custom_field, project=nil)
field_name = "#{name}[custom_field_values][#{custom_field.id}]"
field_id = "#{name}_custom_field_values_#{custom_field.id}"
field_format = Redmine::CustomFieldFormat.find_by_name(custom_field.field_format)
@@ -126,7 +126,7 @@ def custom_field_tag_for_bulk_edit(name, custom_field)
[l(:general_text_yes), '1'],
[l(:general_text_no), '0']]), id: field_id)
when 'list'
- styled_select_tag(field_name, options_for_select([[l(:label_no_change_option), '']] + custom_field.possible_values_options), id: field_id)
+ styled_select_tag(field_name, options_for_select([[l(:label_no_change_option), '']] + custom_field.possible_values_options(project)), id: field_id)
else
styled_text_field_tag(field_name, '', id: field_id)
end
Oops, something went wrong.

0 comments on commit 697964e

Please sign in to comment.