rokumatsumoto/boyutluseyler

View on GitHub
app/views/designs/_form.html.haml

Summary

Maintainability
Test Coverage
- content_for :head do
  = javascript_pack_tag 'user/designs'
.container.mt-4.mb-4
  = simple_form_for(@design, validate: true) do |f|
    = render 'layouts/errors_inline', object: @design
    = render 'layouts/flash'
    .twins.row.grid-divider
      .twin.col-md-6
        = f.input :name, required: true, validate: true

        = f.input :description, required: true, input_html: { rows: 8 }

        = f.input :printing_settings, input_html: { rows: 5 }

        = f.association :category, collection: Category.cached_categories.map { |c| [c['name'], c['id']] }, required: true

        = f.input :tags_as_string

        = f.input :license_type, required: true,
          collection: human_enum_collection(Design, :license_types),
          selected: f.object.license_type || 'license_none'

        .form-group.d-flex
          %label.custom-toggle
            = f.input_field :allow_comments, as: :boolean, id: 'cb_allow_comments', boolean_style: :inline, required: true
            %span.custom-toggle-slider.rounded-circle
          %label.ml-2{ for: 'cb_allow_comments' }= t('simple_form.labels.design.allow_comments')

      .twin.col-md-6
        - direct_upload_allowed = policy(:direct_upload).new?
        %label.form-control-label Dosyalar
        - if direct_upload_allowed
          .js-connected-uploader{ data: { behavior: 'vue' } }
            %connected-uploader{ accept: '.stl,.obj,.ply,.zip,.STL,.OBJ,.ZIP',
              'add-button-text' => 'STL, OBJ, PLY, ZIP dosyaları ekleyin veya sürükleyin…',
              'remove-button-text' => 'Kaldır',
              'direct-url' => Boyutluseyler.config[:direct_upload_endpoint],
              'uploader-url' => '/uploads/new?policy_name=blueprint',
              'create-url' => '/blueprints',
              'input-name' => 'design[blueprint_ids][]',
              'data-type' => 'blueprint',
              ':files' => @blueprints }
        - else
          %p.description.font-weight-400.mt-3= t('pundit.errors.design.direct_upload')

        %label.form-control-label.mt-3 Fotoğraflar
        - if direct_upload_allowed
          .js-connected-uploader{ data: { behavior: 'vue' } }
            %connected-uploader{ accept: '.jpg,.jpeg,.gif,.png,.JPG,.JPEG,.GIF,.PNG',
              'add-button-text' => 'JPG, GIF veya PNG dosyaları ekleyin veya sürükleyin…',
              'remove-button-text' => 'Kaldır',
              'direct-url' => Boyutluseyler.config[:direct_upload_endpoint],
              'uploader-url' => '/uploads/new?policy_name=illustration',
              'create-url' => '/illustrations',
              'input-name' => 'design[illustration_ids][]',
              'data-type' => 'illustration',
              ':files' => @illustrations }
        - else
          %p.description.font-weight-400.mt-3= t('pundit.errors.design.direct_upload')

        %p.description.font-weight-400.mt-3 Dosyalar üzerinde sürükle bırak yaparak sıralamayı belirleyebilirsiniz..
        %p.description.opacity-8.font-weight-400 Fotoğraflar için ilk sıradaki resim tasarımınızı temsil eder.
        %p.description.opacity-8.font-weight-400 Dikkat çekici resimlerinizi üst sıralara koyarak görüntülenme şansını arttırabilirsiniz.

        = f.button :submit, 'Gönder', class: 'btn btn-primary'