Skip to content

Commit

Permalink
WIP[Op#54456]: Lay groundwork for available project custom field mapp…
Browse files Browse the repository at this point in the history
…ing list
  • Loading branch information
akabiru authored and apfohl committed May 6, 2024
1 parent b7feaa6 commit d85d12d
Show file tree
Hide file tree
Showing 6 changed files with 175 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#-- copyright
# OpenProject is an open source project management software.
# Copyright (C) 2012-2023 the OpenProject GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2013 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# See COPYRIGHT and LICENSE files for more details.
#++

module Settings
module ProjectCustomFields
module ProjectCustomFieldMapping
class RowComponent < Projects::RowComponent
end
end
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#-- copyright
# OpenProject is an open source project management software.
# Copyright (C) 2012-2023 the OpenProject GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2013 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# See COPYRIGHT and LICENSE files for more details.
#++

module Settings
module ProjectCustomFields
module ProjectCustomFieldMapping
class TableComponent < Projects::TableComponent
columns :name

def sortable?
false
end
end
end
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,13 @@ def new
respond_to :html
end

def edit; end
def edit
@project_custom_field_mapping_query = Queries::Projects::ProjectQuery.new(
name: "project-custom-field-mapping-#{@custom_field.id}"
) do |query|
query.where(:available_project_attributes, "~", [@custom_field.id])
end
end

def move
call = CustomFields::UpdateService.new(user: current_user, model: @custom_field).call(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<%#-- copyright
OpenProject is an open source project management software.
Copyright (C) 2012-2023 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.
++#%>
<%= error_messages_for 'custom_field' %>
<%= labelled_tabular_form_for custom_field, as: :custom_field,
url: admin_settings_project_custom_field_path(custom_field),
html: {method: :put, id: 'custom_field_form'} do |f| %>
<%= render partial: 'custom_fields/form', locals: { f: f, custom_field: custom_field } %>
<% if custom_field.new_record? %>
<%= hidden_field_tag 'type', custom_field.type %>
<% end %>
<%= styled_button_tag t(:button_save), class: '-highlight -with-icon icon-checkmark' %>
<% end %>
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<%#-- copyright
OpenProject is an open source project management software.
Copyright (C) 2012-2023 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.
++#%>
<%= render(Settings::ProjectCustomFields::ProjectCustomFieldMapping::TableComponent.new(query:, params: {})) %>
34 changes: 20 additions & 14 deletions app/views/admin/settings/project_custom_fields/edit.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,23 @@ See COPYRIGHT and LICENSE files for more details.
<%= render(Settings::ProjectCustomFields::EditFormHeaderComponent.new(custom_field: @custom_field)) %>
<%= error_messages_for 'custom_field' %>
<%= labelled_tabular_form_for @custom_field, as: :custom_field,
url: admin_settings_project_custom_field_path(@custom_field),
html: {method: :put, id: 'custom_field_form'} do |f| %>
<%= render partial: 'custom_fields/form', locals: { f: f, custom_field: @custom_field } %>
<% if @custom_field.new_record? %>
<%= hidden_field_tag 'type', @custom_field.type %>
<% end %>
<%= styled_button_tag t(:button_save), class: '-highlight -with-icon icon-checkmark' %>
<% end %>



<%=
render(Primer::Alpha::TabPanels.new(label: 'label')) do |component|
component.with_tab(selected: true, id: "project-custom-fields-details-tab") do |tab|
tab.with_panel do
render partial: 'details_form', locals: { custom_field: @custom_field }
end

tab.with_text { "Details" }
end

component.with_tab(selected: false, id: "project-custom-fields-mapping-tab") do |tab|
tab.with_panel do
render partial: 'project_custom_field_mapping',
locals: { custom_field: @custom_field, query: @project_custom_field_mapping_query }
end

tab.with_text { "Projects" }
end
end
%>

0 comments on commit d85d12d

Please sign in to comment.