redmine_dmsf/app/views/dmsf/edit.html.erb
2026-01-05 15:54:29 +09:00

129 lines
5.5 KiB
Plaintext

<%
# Redmine plugin for Document Management System "Features"
#
# Vít Jonáš <vit.jonas@gmail.com>, Daniel Munn <dan.munn@munnster.co.uk>, Karel Pičman <karel.picman@kontron.com>
#
# This file is part of Redmine DMSF plugin.
#
# Redmine DMSF plugin 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 3 of the License, or (at your option) any
# later version.
#
# Redmine DMSF plugin 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 Redmine DMSF plugin. If not, see
# <https://www.gnu.org/licenses/>.
%>
<% html_title l(:dmsf) %>
<div class="contextual">
<% if !@folder.new_record? && User.current.allowed_to?(:folder_manipulation, @project) && !@folder.system %>
<% if @folder.locked? %>
<%= link_to_if @folder.unlockable? && (!@folder.locked_for_user? || @force_file_unlock_allowed),
sprite_icon('unlock', l(:button_unlock)),
unlock_dmsf_path(id: @project, folder_id: @folder,
back_url: edit_dmsf_url(id: @project, folder_id: @folder)),
title: l(:title_unlock_file), class: 'icon icon-unlock' %>
<% else %>
<%= link_to sprite_icon('lock', l(:button_lock)),
lock_dmsf_path(id: @project, folder_id: @folder,
back_url: edit_dmsf_url(id: @project, folder_id: @folder)),
title: l(:title_lock_file), class: 'icon icon-lock' %>
<% end %>
<%= actions_dropdown do %>
<%= render partial: 'dmsf_context_menus/folder',
locals: { dmsf_folder: @folder,
locked: @folder.locked?,
allowed: true,
dmsf_link: nil,
project: @project,
folder: @folder.dmsf_folder,
edit: true,
unlockable: @folder.unlockable? && (!@folder.locked_for_user? || User.current.allowed_to?(:force_file_unlock, @project)),
email_allowed: User.current.allowed_to?(:email_documents, @project),
notifications: @notifications,
back_url: edit_dmsf_url(id: @project, folder_id: @folder)
} %>
<% end %>
<% end %>
</div>
<% create = @pathfolder == @parent %>
<%= render partial: 'path',
locals: { folder: @pathfolder, filename: create ? l(:heading_new_folder) : nil, title: nil } %>
<%= labelled_form_for(@folder,
url: { action: create ? 'create' : 'save', id: @project, folder_id: @folder, parent_id: @parent },
html: { method: :post }) do |f| %>
<%= error_messages_for @folder %>
<%= f.hidden_field :redirect_to_folder_id, value: @redirect_to_folder_id %>
<div class="box tabular">
<p>
<%= f.text_field :title, required: true %>
</p>
<p>
<%= f.text_area :description, rows: 8, class: 'wiki-edit dmsf-description' %>
</p>
<p>
<% dir = @folder.inherited_permissions_from %>
<% if dir %>
<%= label_tag '', l(:label_inherited_permissions) %>
<% @project_roles.each do |role| %>
<% checked = dir.permission_for_role(role) %>
<% if checked %>
<label class="inline">
<%= check_box_tag 'inherited_permissions[role_ids][]', role.id, checked, disabled: 'disabled', id: nil %>
<%= role %>
</label>
<% end %>
<% end %>
<span id="inherited_user_permissions">
<br>
<% users = dir.permissions_users %>
<% checkboxes = users_checkboxes(users, inherited: true) %>
<%= checkboxes %>
</span>
<% if checkboxes.present? %>
<br>
<% end %>
<% end %>
<%= label_tag '', l(:label_dmsf_permissions) %>
<% @project_roles.each do |role| %>
<% checked = @folder.permission_for_role(role) %>
<label class="inline">
<%= check_box_tag 'permissions[role_ids][]', role.id, checked, id: nil %>
<%= role %>
</label>
<% end %>
<span id="user_permissions">
<br>
<% users = @folder.permissions_users %>
<% checkboxes = users_checkboxes(users) %>
<%= checkboxes %>
</span>
<% if checkboxes.present? %>
<br>
<% end %>
<span class="search_for_watchers">
<%= link_to sprite_icon('add', l(:label_search_for_watchers), size: 12),
new_dmsf_folder_permissions_path(project_id: @project, dmsf_folder_id: @folder),
remote: true,
method: :get %>
</span>
</p>
<% values = @folder ? @folder.custom_field_values : (@parent ? @parent.custom_field_values : DmsfFolder.new.custom_field_values) %>
<% values.each do |value| %>
<p><%= custom_field_tag_with_label :dmsf_folder, value %></p>
<% end %>
</div>
<div class="form-actions">
<%= submit_tag create ? l(:button_create) : l(:submit_save), class: 'button-positive',
data: { cy: "button__submit--dmsf_folder" } %>
</div>
<% end %>
<%= wikitoolbar_for 'dmsf_folder_description' %>