opf/openproject

View on GitHub
modules/storages/app/views/storages/admin/storages/_new.html.erb

Summary

Maintainability
Test Coverage
<%#-- copyright
OpenProject is an open source project management software.
Copyright (C) 2012-2024 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.
++#%>

<% content_controller 'storages--storage-form',
                      dynamic: true,
                      'storages--storage-form-one-drive-placeholder-value': t(:"storages.provider_types.one_drive.name_placeholder"),
                      'storages--storage-form-nextcloud-placeholder-value': t(:"storages.provider_types.nextcloud.name_placeholder")
%>

<!-- Included form for create and edit operations, please see the controller for comments -->
<%= error_messages_for @storage %>

<fieldset class="form--fieldset" data-storages--storage-form-target="fieldset">
  <legend class="form--fieldset-legend"><%= I18n.t(:label_general) %></legend>
  <div class="form--field -required">
    <%= f.hidden_field :provider_type %>
    <%= f.select :provider_type,
                 ::Storages::Storage::PROVIDER_TYPES.map { |provider_type| [I18n.t("storages.provider_types.#{::Storages::Storage.shorten_provider_type(provider_type)}.name"), provider_type] },
                 {
                   selected: ::Storages::Storage::PROVIDER_TYPE_NEXTCLOUD,
                   container_class: '-slim'
                 },
                 data: {
                   'storages--storage-form-target': 'selectProviderType'
                 }
    %>
    <span class="form--field-instructions"><%= t('storages.instructions.type') %> <%= t('storages.instructions.type_link_text') %></span>
  </div>
  <div class="form--field -required">
    <%= f.text_field :name,
                     required: true,
                     placeholder: I18n.t("storages.provider_types.#{@storage.short_provider_type}.name_placeholder"),
                     container_class: '-slim',
                     data: {
                       'storages--storage-form-target': 'storageName'
                     } %>
    <span class="form--field-instructions"><%= t('storages.instructions.name') %></span>
  </div>
  <div class="form--field -required" data-storages--storage-form-target="storageUrl">
    <%= f.text_field :host,
                     label: t('storages.label_host'),
                     type: :url,
                     required: true,
                     pattern: ".{1,255}",
                     placeholder: "https://my-file-storage.com",
                     container_class: '-wide' %>
    <span class="form--field-instructions"><%= t('storages.instructions.host') %></span>
  </div>
</fieldset>