rokumatsumoto/boyutluseyler

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

Summary

Maintainability
Test Coverage
- content_for :head do
  = javascript_pack_tag 'design'
-# TODO: i18n all page
.container
  .d-flex.mt-4
    %div
      %h3.text-primary.font-weight-600= @design.name
    - edit_design_allowed = policy(@design).edit?
    - delete_design_allowed = policy(@design).destroy?
    - if edit_design_allowed || delete_design_allowed
      .ml-auto.mt-2
        .d-flex
          - if edit_design_allowed
            = link_to t('helpers.button.edit'), edit_design_path, class: 'btn-xs btn-outline-default border-solid no-outline'
          - if delete_design_allowed
            -# TODO: soft delete by request via form + slack integration
            = link_to t('helpers.button.delete'), design_path(@design), method: :delete, data: { confirm: 'Emin misin?' }, class: 'btn-xs btn-outline-default border-solid no-outline ml-1'

  .design
    .design-photos
      .actionbar
        .js-content-preview-toggle-button.actionbar-left{ data: { behavior: 'vue' } }
          %content-preview-toggle-button{ 'css-class': 'btn-xs btn-outline-primary no-outline' }
        .js-like-button.actionbar-right{ data: { behavior: 'vue' } }
          %like-button{ 'like-css-class': 'btn-xs btn-primary no-outline border-solid btn-icon', 'unlike-css-class': 'btn-xs btn-gray no-outline border-solid btn-icon', 'like-text': 'BEĞEN', 'unlike-text': 'BEĞENDİN', ':liked-status': liked_design?(@design.id), 'endpoint': design_like_path(@design) }
      .js-content-preview{ data: { behavior: 'vue' } }
        %content-preview{ 'data-type': 'illustration', 'content-type': 'image',
          ':files': @illustrations, 'toggle-button-text': 'Fotoğraflar',
          'default-thumb-url': image_path('B4B4B4-1.png'), ':active': true,
          'viewer-css-class': 'thumb', 'img-alt-tag': 'Ücretsiz 3D baskı dosyaları' }
        %content-preview{ 'data-type': 'blueprint', 'content-type': 'model',
          ':file-extensions': %w[stl obj], ':files': @blueprints,
          'toggle-button-text': '3D Görünüm', 'default-thumb-url': image_path('3d.svg'),
          'img-bg-color': '#fff', 'viewer-css-class': 'model',
          'img-alt-tag': 'Ücretsiz 3D baskı dosyaları' }
    .design-infos
      .d-flex.mb-3
        .ml-auto
          .js-download-button{ data: { behavior: 'vue' } }
            %download-button{ 'css-class': 'btn-xs btn-primary no-outline border-solid border-width-15x btn-icon', 'text': t('helpers.button.download'),
            'downloading-text': t('helpers.button.downloading'),
            'record-id': @design.id, 'endpoint': design_download_path(@design) }
      .d-flex.mb-2
        .ml-auto
          .js-page-counters{ data: { behavior: 'vue' } }
            %page-counters.page-counters{ ':views': { count: @page_views_count,  min: 0, textPlural: 'Toplam Görüntülenme', textSingular: 'Toplam Görüntülenme' }.to_json, ':downloads': { count: @design.downloads_count, min: 1, textPlural: 'İndirme', textSingular: 'İndirme' }.to_json, ':likes': { count: @design.likes_count, min: 1, textPlural: 'Beğeni', textSingular: 'Beğeni' }.to_json, locale: I18n.locale }
      %h6.d-inline.text-primary.mt-3 Kategori:
      .d-inline.opacity-8= @design.cached_category_name
      %h6.text-primary.mt-3 3D Model Açıklama
      .rich.content= simple_format(@design.description)
      %h6.text-primary.mt-3 3D Baskı Ayarları
      .rich.content= simple_format(@design.printing_settings)
      %h6.d-inline.text-primary.mt-3 3D Model Formatı:
      .d-inline.opacity-8= @design.model_file_format
      %h6.text-primary.mt-3 Etiketler
      %ul.inline-list
        - @design.cached_tag_name_list.each do |t|
          %li
            %a{ class: 'badge badge-pill badge-primary', href: "/tags/#{t}" }= t

      .license.float-right.mt-3
        %h6.text-primary= license_title_for(@design)
        = render partial: 'designs/shared/license', locals: { license_type: @design.license_type }