= error_messages_for @product - url = comable.admin_products_path if @product.new_record? - url ||= comable.admin_product_path(@product) = form_for @product, url: url, html: { multipart: true } do |f| .hidden = f.submit fieldset .col-md-3 legend = Comable.t('admin.general') .help-block .col-md-9 .form-group = f.label :name = f.text_field :name .form-group = f.label :caption = f.text_area :caption / TODO: Refactoring javascript: comable_tagit_available_tags = #{raw Comable::Category.all.map(&:path).map { |path| path.map(&:name).join(' > ') }.sort.to_json}; .form-group = f.label :categories ul#comable-tagit - @product.categories.each do |category| li = category.path.map(&:name).join(' > ') hr fieldset .col-md-3 legend = Comable.t('admin.images') .help-block .col-md-9 - images = @product.images - main_image = images.first || @product.images.build - sub_images = images - [main_image] .row .col-md-6 = f.fields_for :images, main_image do |ff| label = Comable.t('admin.main_image') p = ff.file_field :file - if ff.object.url .thumbnail = image_tag ff.object.url - if ff.object.persisted? label.remove span> = ff.check_box :_destroy span> = Comable.t('admin.actions.destroy') .col-md-6 .row - sub_images.each.with_index(1) do |image, index| = f.fields_for :images, image do |ff| = render 'comable/admin/shared/images_fields', f: ff, index: index .col-md-6 = link_to_add_fields Comable.t('admin.add_sub_image'), f, :images hr - if @product.new_record? || @product.master? = f.fields_for :variants, f.object.variants.first do |ff| = render 'comable/admin/shared/variant_form', f: ff = ff.hidden_field :_destroy, value: !f.object.master? hr - if @product.new_record? || @product.persisted? && !@product.master? fieldset .col-md-3 legend = Comable.t('admin.variants') .col-md-9 = f.fields_for :option_types, f.object.option_types do |ff| = render 'comable/admin/shared/option_types_fields', f: ff, readonly: @product.persisted? - if @product.new_record? = link_to_add_fields Comable.t('admin.add_variants'), f, :option_types, class: 'btn btn-link js-add-option' table.table.table-striped.js-variants-table class="#{'hidden' if @product.master?}" thead th th = Comable.t('admin.variants') th = @product.variants.human_attribute_name(:sku) th = @product.variants.human_attribute_name(:price) th = @product.variants.human_attribute_name(:quantity) tbody - if @product.persisted? = f.fields_for :variants do |ff| = render 'comable/admin/shared/variants_fields', f: ff = link_to_add_fields nil, f, :variants, class: 'hidden js-add-variant' - if @product.persisted? table.table.table-striped thead th = @product.variants.human_attribute_name(:sku) th = @product.variants.human_attribute_name(:price) th = @product.variants.human_attribute_name(:quantity) th = Comable.t('admin.variants') th = Comable.t('admin.operation') tbody - @product.variants.each do |variant| tr td = variant.sku td = number_to_currency variant.price td - quantity = variant.quantity strong class="#{(quantity <= 0) ? 'text-danger' : (quantity <= 10) ? 'text-warning' : 'text-success'}" = number_with_delimiter quantity td - variant.options.each do |option| span.comable-variant-name = option.value td = link_to comable.admin_product_variant_path(@product, variant), class: 'btn btn-default' i.fa.fa-edit> = Comable.t('admin.actions.edit') hr fieldset .col-md-3 legend = Comable.t('admin.nav.products.property') .help-block .col-md-9 .form-group table.table#properties - @product.properties.each do |property| = render 'comable/admin/products/property_fields', property_key: property['property_key'], property_value: property['property_value'] = f.hidden_field :property = add_property_button_tag Comable.t('admin.nav.products.add_property') hr fieldset .col-md-3 legend = Comable.t('admin.nav.products.visibility') .col-md-9 .form-group .radio-inline label = f.radio_button :published_at, :published, checked: @product.published_at.present? = Comable.t('admin.nav.products.published') .radio-inline label = f.radio_button :published_at, :unpublished, checked: @product.published_at.blank? = Comable.t('admin.nav.products.unpublished') = f.text_field :published_at, value: @product.published_at.try(:strftime, '%Y-%m-%d %H:%M'), class: 'datetimepicker'