#1213 DMS project preferences for non-members
This commit is contained in:
parent
f7a3a053e1
commit
f4764fc50a
@ -19,39 +19,31 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%>
|
||||
|
||||
<% member = Member.find_by(project_id: @project.id, user_id: User.current.id) %>
|
||||
<% if member %>
|
||||
<% mail_notification = member.dmsf_mail_notification %>
|
||||
<% title_format = member.dmsf_title_format %>
|
||||
<% fast_links = member.dmsf_fast_links %>
|
||||
<% else %>
|
||||
<% mail_notification = false %>
|
||||
<% title_format = '' %>
|
||||
<% fast_links = false %>
|
||||
<% end %>
|
||||
|
||||
<%= form_tag(dmsf_user_pref_save_path(@project)) do %>
|
||||
<fieldset class="box tabular">
|
||||
<legend><%= l(:link_user_preferences) %></legend>
|
||||
<p>
|
||||
<%= content_tag :label, l(:label_notifications) %>
|
||||
<%= select_tag 'email_notify',
|
||||
options_for_select([[l(:select_option_default), nil],
|
||||
[l(:select_option_activated), true], [l(:select_option_deactivated), false]],
|
||||
selected: mail_notification) %>
|
||||
</p>
|
||||
<p>
|
||||
<%= content_tag :label, l(:label_title_format) %>
|
||||
<%= text_field_tag 'title_format', title_format, size: 10 %>
|
||||
<em class="info"><%= l(:text_title_format) %></em>
|
||||
</p>
|
||||
<p>
|
||||
<%= content_tag :label, l(:label_dmsf_fast_links) %>
|
||||
<%= check_box_tag 'fast_links', 1, fast_links %>
|
||||
<em class="info">
|
||||
<%= l(:text_dmsf_fast_links_info) %>
|
||||
</em>
|
||||
</p>
|
||||
</fieldset>
|
||||
<% if member %>
|
||||
<fieldset class="box tabular">
|
||||
<legend><%= l(:link_user_preferences) %></legend>
|
||||
<p>
|
||||
<%= content_tag :label, l(:label_notifications) %>
|
||||
<%= select_tag 'email_notify',
|
||||
options_for_select([[l(:select_option_default), nil],
|
||||
[l(:select_option_activated), true], [l(:select_option_deactivated), false]],
|
||||
selected: member.dmsf_mail_notification) %>
|
||||
</p>
|
||||
<p>
|
||||
<%= content_tag :label, l(:label_title_format) %>
|
||||
<%= text_field_tag 'title_format', member.dmsf_title_format, size: 10 %>
|
||||
<em class="info"><%= l(:text_title_format) %></em>
|
||||
</p>
|
||||
<p>
|
||||
<%= content_tag :label, l(:label_dmsf_fast_links) %>
|
||||
<%= check_box_tag 'fast_links', 1, member.dmsf_fast_links %>
|
||||
<em class="info">
|
||||
<%= l(:text_dmsf_fast_links_info) %>
|
||||
</em>
|
||||
</p>
|
||||
</fieldset>
|
||||
<% end %>
|
||||
<% if Setting.plugin_redmine_dmsf['dmsf_act_as_attachable'] %>
|
||||
<fieldset class="box tabular">
|
||||
<legend><%= l(:field_project) %> <%= l(:label_preferences) %></legend>
|
||||
@ -65,7 +57,11 @@
|
||||
</p>
|
||||
</fieldset>
|
||||
<% end %>
|
||||
<div class="form-actions">
|
||||
<%= submit_tag l(:submit_save), title: l(:title_save_preferences), class: 'button-positive' %>
|
||||
</div>
|
||||
<% if member || Setting.plugin_redmine_dmsf['dmsf_act_as_attachable'] %>
|
||||
<div class="form-actions">
|
||||
<%= submit_tag l(:submit_save), title: l(:title_save_preferences), class: 'button-positive' %>
|
||||
</div>
|
||||
<% else %>
|
||||
<p class="nodata"><%= l(:label_no_data) %></p>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
62
test/functional/projects_controller_test.rb
Normal file
62
test/functional/projects_controller_test.rb
Normal file
@ -0,0 +1,62 @@
|
||||
# encoding: utf-8
|
||||
# frozen_string_literal: true
|
||||
#
|
||||
# Redmine plugin for Document Management System "Features"
|
||||
#
|
||||
# Copyright © 2011-21 Karel Pičman <karel.picman@kontron.com>
|
||||
#
|
||||
# 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.
|
||||
|
||||
require File.expand_path('../../test_helper', __FILE__)
|
||||
|
||||
class ProjectsControllerTest < RedmineDmsf::Test::TestCase
|
||||
|
||||
include Redmine::I18n
|
||||
|
||||
def test_settings_dms_member
|
||||
@request.session[:user_id] = @jsmith.id
|
||||
@role_manager.add_permission! :user_preferences
|
||||
with_settings plugin_redmine_dmsf: {'dmsf_act_as_attachable' => '1'} do
|
||||
get :settings, params: { id: @project1.id, tab: 'dmsf' }
|
||||
end
|
||||
assert_response :success
|
||||
assert_select 'fieldset legend', text: l(:link_user_preferences)
|
||||
assert_select 'fieldset legend', text: "#{l(:field_project)} #{l(:label_preferences)}"
|
||||
end
|
||||
|
||||
def test_settings_dms_member_no_permission
|
||||
@request.session[:user_id] = @jsmith.id
|
||||
@role_manager.remove_permission! :user_preferences
|
||||
get :settings, params: { id: @project1.id, tab: 'dmsf' }
|
||||
assert_response :success
|
||||
assert_select 'fieldset legend', text: l(:link_user_preferences), count: 0
|
||||
end
|
||||
|
||||
def test_settings_dms_non_member
|
||||
@request.session[:user_id] = @admin.id
|
||||
get :settings, params: { id: @project1.id, tab: 'dmsf' }
|
||||
assert_response :success
|
||||
assert_select 'fieldset legend', text: l(:link_user_preferences), count: 0
|
||||
end
|
||||
|
||||
def test_settings_dms_member_no_act_as_attachments
|
||||
@request.session[:user_id] = @jsmith.id
|
||||
@role_manager.add_permission! :user_preferences
|
||||
get :settings, params: { id: @project1.id, tab: 'dmsf' }
|
||||
assert_response :success
|
||||
assert_select 'fieldset legend', text: "#{l(:field_project)} #{l(:label_preferences)}", count: 0
|
||||
end
|
||||
|
||||
end
|
||||
Loading…
x
Reference in New Issue
Block a user