app/views/designs/show.html.haml
- 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 }