Skip to content

Instantly share code, notes, and snippets.

@davinmsu
Created December 8, 2014 22:23
Show Gist options
  • Select an option

  • Save davinmsu/ea35bfa424f2042d1b4a to your computer and use it in GitHub Desktop.

Select an option

Save davinmsu/ea35bfa424f2042d1b4a to your computer and use it in GitHub Desktop.
- offers.each do |offer|
.offer data-id="#{offer.id}" data-hidden="#{offer.hidden?}" data-url="#{offer.url if offer.mainBlockClickable?}"
.hidden-title = offer.hiddenTitle
.offer-type class="#{offer.type.class}" = t(offer.type.title)
// реализация интернационализации t()
.imgWrapper data-gallery="#{offer.gallery}" data-rotate="#{offer.rotate?}" data-video="#{offer.video.count if offer.video.exists?}"
.slider
- if offer.images.empty?
.no-image
- else
- offer.images.each do |i|
img src="#{i.thumb.url}" alt="#{i.alt}" data-big-img="#{i.big.url if i.big.exists?}"
h1 = offer.header
.description = offer.description
- unless offer.options.empty?
ul.options
- offer.options.each do |o|
li
- if o.type.exists?
i class="option-icon-#{o.type}"
span = o.value
- unless offer.moreInfo.empty?
ul.more-info
- offer.moreInfo.each do |i|
li = i
// Экшн дополнительного чека на наличие фотографии и общего кол-ва путем обращения на бэк изображений ajax
// этот пункт в темплейте реализовывать считаю нецелесообразным, поскольку это задача джаваскрипта
//кликабелен или не кликабелен, при этом если кликнули на объект внутри блока с каким либо экшеном то клик по блоку не должен случиться
// это решение (offer.mainBlockClickable?) - синтетическое. Подобное поведение лучше определять типом или подтипом оффера
//При раскрытии разное кол-во колонок в зависимости от наполнености колонок, поколоночный вывод, наприсер может быть 1,3,2 элемента в одной колонке. если в колонке нет элементов то все которые справа сдвигаются влево
// задача не имеет отношения к составлению теплейта. Это вопрос джаваскрипта или css и нет дополнительных
условий управления поведением, приходящим с бэка
//Глаз
//1. 2 варианта как на картинке + еще один с закрашеным глазиком
//2. Разные акшины при клике и наведении
// Вопросы вывода экшенов можно решить как в примерах кода выше но лучше вообще не делать этого в шаблоне.
// JS модель должна сама знать список экшенов и когда к ним обращаться
// а общий JS offer-controller отвечать за клики по блоку в зависимости от контекста. Это не нужно совать в html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment