OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openproject/app/views/users/_form.html.erb

158 lines
6.3 KiB

<%#-- copyright
OpenProject is an open source project management software.
Copyright (C) 2012-2021 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 docs/COPYRIGHT.rdoc for more details.
++#%>
<%= error_messages_for 'user' %>
Move asset pipeline javascripts to frontend (#8482) * ove reporting and reporting_engine js to frontend page * Replace webhook assets javascript * Add path augment service to dynamically load scripts * Remove JS-Files that are not used/not needed any more * Include AugmentingModule correctly * Remove special handling for checkbox selection which is outdated and two jquery libs that are not used any more * Load scripts dynamically that are not needed globally * Move plugin JS to frontend * Move toggable fieldsets to global listeners * Move top-menu to global listeners and convert to TS * Move action_menu to frontend and port to TS * Move settings listener to frontend * Remove global js assets that were not used anyway * Move date range to timelog dynamic script where it's still used until removed * Move colors to global-listeners and port to TS * Replace tooltip with simple form instructions on the one place used Tooltips were only used at the one place in our application, when changing a users password. We can simply remove it there and use a modern solution the next time we need a tooltip * Move danger zone validation to frontend and port to TS * Move colorcontrast to backlogs vendor where it's used now * Remove contents of application.js.erb * Move project and user scripts to dynamically loaded * Move onboarding tour to dynamically loaded * Use correct syntax for jQuery so that $ is known keyword within this function * Fix onboarding tour * Fix onboarding tour for scrum tour * Fix specs after moving JS * Remove application.js.erb * Move locales and ckeditor to the frontend to dynamically load * Remove bundles caches These are no longer being used since angular cli * Ensure locales are exported before angular Co-authored-by: Henriette Darge <h.darge@openproject.com>
4 years ago
<% content_for :header_tags do %>
<meta name="required_script" content="admin_users" />
<% end %>
<!--[form:user]-->
<section class="form--section">
<div class="form--field -required"><%= f.text_field :login, required: true, size: 25, container_class: '-middle' %></div>
<div class="form--field -required"><%= f.text_field :firstname, required: true, container_class: '-middle' %></div>
<div class="form--field -required"><%= f.text_field :lastname, required: true, container_class: '-middle' %></div>
<div class="form--field -required"><%= f.text_field :mail, required: true, container_class: '-middle' %></div>
<div class="form--field"><%= f.select :language, lang_options_for_select, prompt: "--- #{t(:actionview_instancetag_blank_option)} ---", container_class: '-slim' %></div>
<div class="form--field"><%= f.check_box :admin, disabled: (@user == User.current) %></div>
<h3 class="form--section-title"><%= t(:label_custom_field_plural) %></h3>
<%= render partial: 'customizable/field',
collection: @user.custom_field_values,
as: :value,
locals: { form: f } %>
<%= call_hook(:view_users_form, user: @user, form: f) %>
</section>
<% if Setting.consent_required? %>
<%= render partial: "users/consent" %>
<% end %>
<section class="form--section">
<h3 class="form--section-title"><%=t(:label_authentication)%></h3>
<% if @user.uses_external_authentication? %>
<div class="form--field">
<%= styled_label_tag nil, I18n.t('user.authentication_provider') %>
<div class="form--field-container">
<%= @user.authentication_provider %>
</div>
</div>
<div class="form--field-instructions">
<%= I18n.t('user.authentication_settings_disabled_due_to_external_authentication') %>
</div>
<% else %>
<% unless @auth_sources.empty? || OpenProject::Configuration.disable_password_login? %>
Fix/bump representable (#5465) * bump reform and roar -> bumps representer * adapt to changed validation interface * disable initializer patch for now * adapt to changed representable attr interface * can no longer have private methods inside a representer * private no longer possible for representer * bump reform * wip - restyle validation * remove commented out patch * apply injection as prescribed * reactivate reform error symbols patch * remove patch to Hash superfluous wit ruby 2.3 * remove outdated human_attribute_name patch * whitespace fixes * adapt filter name after removal of human_attribute_name patch * adapt filter specs to no longer rely on human_attribute_name patch * fix version filter name * remove reliance on no longer existing human_attribute_name patch * use correct key in journal formatter * remove private from representer * adapt to altered setter interface * reenable i18n for error messages in contracts * no private methods in representer * defined model for contracts * fix validaton * instantiate correct Object * define model for contract * circumvent now existing render method on reform * replace deprecated constant * patch correct reform class - not the module - via prepend * refactor too complex method * replace deprations * remove remnants of parentId * prevent error symbols from existing twice * adapt user representer to altered setter interface * adapt watcher representer to altered setter interface * remove now unnessary patch * adapt setter to altered interface * adapt spec * fix custom field setters * remove parentId from wp representer As the parent is a wp resource, clients should use the parent link instead * adapt spec to changed valid? interface * remove parentId from wp schema * replace references of parentId in frontend * remove TODO [ci skip]
8 years ago
<div class="form--field">
<%= f.select :auth_source_id,
([[t(:label_internal), ""]] + @auth_sources.collect { |a| [a.name, a.id] }),
label: :'activerecord.attributes.user.auth_source',
container_class: '-middle' %>
Fix/bump representable (#5465) * bump reform and roar -> bumps representer * adapt to changed validation interface * disable initializer patch for now * adapt to changed representable attr interface * can no longer have private methods inside a representer * private no longer possible for representer * bump reform * wip - restyle validation * remove commented out patch * apply injection as prescribed * reactivate reform error symbols patch * remove patch to Hash superfluous wit ruby 2.3 * remove outdated human_attribute_name patch * whitespace fixes * adapt filter name after removal of human_attribute_name patch * adapt filter specs to no longer rely on human_attribute_name patch * fix version filter name * remove reliance on no longer existing human_attribute_name patch * use correct key in journal formatter * remove private from representer * adapt to altered setter interface * reenable i18n for error messages in contracts * no private methods in representer * defined model for contracts * fix validaton * instantiate correct Object * define model for contract * circumvent now existing render method on reform * replace deprecated constant * patch correct reform class - not the module - via prepend * refactor too complex method * replace deprations * remove remnants of parentId * prevent error symbols from existing twice * adapt user representer to altered setter interface * adapt watcher representer to altered setter interface * remove now unnessary patch * adapt setter to altered interface * adapt spec * fix custom field setters * remove parentId from wp representer As the parent is a wp resource, clients should use the parent link instead * adapt spec to changed valid? interface * remove parentId from wp schema * replace references of parentId in frontend * remove TODO [ci skip]
8 years ago
</div>
<% end %>
<% if !OpenProject::Configuration.disable_password_login? %>
<%
pw_style =
if @user.change_password_allowed?
''
else
' style="display: none;"'
end
%>
<div id="password_fields"<%= pw_style.html_safe %>>
<% assign_random_password_enabled = params[:user] &&
params[:user][:assign_random_password] %>
<div class="form--field">
<%= styled_label_tag 'user_assign_random_password',
I18n.t(:assign_random_password, scope: :user) %>
<div class="form--field-container">
<%= styled_check_box_tag("user[assign_random_password]",
"1",
assign_random_password_enabled) %>
</div>
</div>
<% unless OpenProject::Configuration.disable_password_choice? %>
<div class="form--field">
<%= f.password_field :password,
required: @user.new_record?,
disabled: assign_random_password_enabled,
container_class: '-middle' %>
<div class="form--field-instructions">
<%= password_complexity_requirements %>
</div>
</div>
<div class="form--field">
<%= f.password_field :password_confirmation,
required: @user.new_record?,
disabled: assign_random_password_enabled,
container_class: '-middle' %>
</div>
<% end %>
<% if @user.active? -%>
<div class="form--field send-information -hidden">
<%= styled_label_tag 'send_information', t(:label_send_information) %>
<div class="form--field-container">
<%= styled_check_box_tag("send_information",
"1",
true) %>
</div>
</div>
<% end -%>
<div class="form--field">
<%= f.check_box :force_password_change,
disabled: assign_random_password_enabled %>
</div>
</div>
<% else %>
<div id="no_password_info">
<div class="form--field">
<%= styled_label_tag nil, I18n.t(:warning) %>
<div class="form--field-container">
<%= I18n.t 'user.no_login' %>
</div>
</div>
</div>
<% end %>
<% end %>
</section>
<section class="form--section">
<h3 class="form--section-title"><%= User.human_attribute_name(:mail_notification) %></h3>
<%= render partial: 'users/mail_notifications' %>
</section>
<section class="form--section">
<h3 class="form--section-title"><%=t(:label_preferences)%></h3>
<%= render partial: 'users/preferences', locals: {input_size: :middle } %>
</section>
<!--[eoform:user]-->