diff --git a/app/models/communication/block/template/base.rb b/app/models/communication/block/template/base.rb index 4d869b18414703e7e7ed78148947cfba38437744..03ea74c82537eb25c749333729fdb87a7b473e43 100644 --- a/app/models/communication/block/template/base.rb +++ b/app/models/communication/block/template/base.rb @@ -23,8 +23,6 @@ class Communication::Block::Template::Base def self.has_image(property) has_component property, :image - has_component "#{property}_alt".to_sym, :string - has_component "#{property}_credit".to_sym, :string end def self.has_layouts(list) diff --git a/app/models/communication/block/template/chapter.rb b/app/models/communication/block/template/chapter.rb index a744759c10b7562d3b504926759b4b43b82c3605..e0d9a26b1c1e28ae6dd7caf88b920e92019776cb 100644 --- a/app/models/communication/block/template/chapter.rb +++ b/app/models/communication/block/template/chapter.rb @@ -2,6 +2,8 @@ class Communication::Block::Template::Chapter < Communication::Block::Template:: has_rich_text :text has_rich_text :notes has_image :image + has_string :image_alt + has_rich_text :image_credit def build_git_dependencies add_dependency image&.blob diff --git a/app/views/admin/communication/blocks/components/image/_edit.html.erb b/app/views/admin/communication/blocks/components/image/_edit.html.erb index 9da7edf0e6b940c68e6aec3a814be8ba935f09c9..803c28f5aa2b7935e7ede59a345712cdd1077fdf 100644 --- a/app/views/admin/communication/blocks/components/image/_edit.html.erb +++ b/app/views/admin/communication/blocks/components/image/_edit.html.erb @@ -1,57 +1,37 @@ -<div class="card"> - <div class="card-header"> - <%= t "admin.communication.blocks.templates.#{@block.template_kind}.edit.#{property}.label" %> - </div> - <div class="card-body"> - <div class="row"> - <div class="col-xl-3 col-6 mb-3"> - <div v-if="!data.<%= property %>"> - <label class="form-label" - for="<%= property %>"> - <%= t 'admin.communication.blocks.components.image.input.label' %> - </label> - <input class="form-control" - type="file" - accept="image/*" - @change="onFileImageChange( $event, data, '<%= property %>' )" - id="<%= property %>"> - </div> - <div v-if="data.<%= property %>"> - <img :src="getImageUrl(data.<%= property %>)" - class="img-fluid" - /> - <br> - </div> - </div> - <div class="col-xl-9"> - <label class="form-label" - for="<%= property %>_alt"> - <%= t 'admin.communication.blocks.components.image.alt.label' %> - </label> - <input id="<%= property %>_alt" - type="text" - class="form-control mb-3" - v-model="data.<%= property %>_alt" - placeholder="<%= t 'admin.communication.blocks.components.image.alt.placeholder' %>" /> - - <label class="form-label" - for="<%= property %>_credit"> - <%= t 'admin.communication.blocks.components.image.credit.label' %> - </label> - <input id="<%= property %>_credit" - type="text" - class="form-control mb-3" - v-model="data.<%= property %>_credit" - placeholder="<%= t 'admin.communication.blocks.components.image.credit.placeholder' %>" /> +<% +element ||= false +if element + model = 'element' + dom_id = "'element-' + index + '-#{property}'" +else + model = 'data' + dom_id = "#{property}" +end +label ||= t 'admin.communication.blocks.components.image.input.label' +remove ||= t 'admin.communication.blocks.components.image.input.remove' +%> +<div class="mb-3"> - <a class="btn btn-sm btn-danger" - v-on:click="data.<%= property %>=null" - v-if="data.<%= property %>"> - <i class="fas fa-times"></i> - <%= t 'admin.communication.blocks.components.image.input.remove' %> - </a> - - </div> - </div> + <div v-if="!<%= model %>.<%= property %>"> + <label class="form-label" + :for="<%= dom_id.html_safe %>"> + <%= label %> + </label> + <input class="form-control" + type="file" + accept="image/*" + @change="onFileImageChange( $event, <%= model %>, '<%= property %>' )" + :id="<%= dom_id.html_safe %>"> + </div> + <div v-if="<%= model %>.<%= property %>"> + <img :src="getImageUrl(<%= model %>.<%= property %>)" + class="img-fluid mb-3" + /> </div> + <a class="btn btn-sm btn-danger" + v-on:click="<%= model %>.<%= property %>=null" + v-if="<%= model %>.<%= property %>"> + <i class="fas fa-times"></i> + <%= remove %> + </a> </div> diff --git a/app/views/admin/communication/blocks/components/image/_preview.html.erb b/app/views/admin/communication/blocks/components/image/_preview.html.erb index bc4ff0d8fe983004d2f71bd53d816753e5f8575a..76241efe7f244166ebddfe3060cba609f504a11f 100644 --- a/app/views/admin/communication/blocks/components/image/_preview.html.erb +++ b/app/views/admin/communication/blocks/components/image/_preview.html.erb @@ -1,11 +1,7 @@ <% image = @block.template.public_send property blob = image['blob'] if image&.has_key? 'blob' -alt = @block.template.public_send "#{property}_alt" -credit = @block.template.public_send "#{property}_credit" %> <%= kamifusen_tag blob, width: 600, - alt: alt, class: 'img-fluid' if blob %> -<p class="small"><%= credit %></p> diff --git a/app/views/admin/communication/blocks/components/image/_static.html.erb b/app/views/admin/communication/blocks/components/image/_static.html.erb index 48a859ef74d7bcd1c2f087893a4b97f2d4cb6e0d..de58b80a87a79333d80982fc91d1a5df50103f77 100644 --- a/app/views/admin/communication/blocks/components/image/_static.html.erb +++ b/app/views/admin/communication/blocks/components/image/_static.html.erb @@ -1,16 +1,10 @@ <% image = @block.template.public_send(property) blob = image['blob'] if image&.has_key? 'blob' -alt = @block.template.public_send "#{property}_alt" -credit = @block.template.public_send "#{property}_credit" indentation = ' ' %> <% if blob %> <%= indentation %>image: <%= indentation %> id: "<%= blob.id %>" <%= indentation %> file: "<%= blob.id %>" -<%= indentation %> alt: >- -<%= indentation %> <%= prepare_text_for_static alt %> -<%= indentation %> credit: >- -<%= indentation %> <%= prepare_text_for_static credit %> <% end %> diff --git a/app/views/admin/communication/blocks/components/rich_text/_edit.html.erb b/app/views/admin/communication/blocks/components/rich_text/_edit.html.erb index 4de0040c6d3f3e74b790a07ab528b385375c8bf7..9209df1b56831569c5e0ad5543232317409cf16e 100644 --- a/app/views/admin/communication/blocks/components/rich_text/_edit.html.erb +++ b/app/views/admin/communication/blocks/components/rich_text/_edit.html.erb @@ -1,13 +1,14 @@ <% template_kind = @block.template_kind i18n_template = "admin.communication.blocks.templates.#{template_kind}.edit" +element ||= false if element model = 'element' dom_id = "'element-' + index + '-#{property}'" i18n_component = "#{i18n_template}.element.#{property}" else model = 'data' - dom_id = property + dom_id = "#{property}" i18n_component = "#{i18n_template}.#{property}" end label ||= t "#{i18n_component}.label" diff --git a/app/views/admin/communication/blocks/components/string/_edit.html.erb b/app/views/admin/communication/blocks/components/string/_edit.html.erb index 7aaad01b026388820d0291f9becafbda72acf7fb..6e771afbd662c9126dbbe9d3f8d7f4c1ac1b80c2 100644 --- a/app/views/admin/communication/blocks/components/string/_edit.html.erb +++ b/app/views/admin/communication/blocks/components/string/_edit.html.erb @@ -1,13 +1,14 @@ <% template_kind = @block.template_kind i18n_template = "admin.communication.blocks.templates.#{template_kind}.edit" +element ||= false if element model = 'element' dom_id = "'element-' + index + '-#{property}'" i18n_component = "#{i18n_template}.element.#{property}" else model = 'data' - dom_id = property + dom_id = "#{property}" i18n_component = "#{i18n_template}.#{property}" end label ||= t "#{i18n_component}.label" diff --git a/app/views/admin/communication/blocks/components/text/_edit.html.erb b/app/views/admin/communication/blocks/components/text/_edit.html.erb index 8d96456403af7b224cd0f77b6786f0674837b33b..434a82345bc73b5c65c7df9a3f6df8c3dd022f8b 100644 --- a/app/views/admin/communication/blocks/components/text/_edit.html.erb +++ b/app/views/admin/communication/blocks/components/text/_edit.html.erb @@ -1,13 +1,14 @@ <% template_kind = @block.template_kind i18n_template = "admin.communication.blocks.templates.#{template_kind}.edit" +element ||= false if element model = 'element' dom_id = "'element-' + index + '-#{property}'" i18n_component = "#{i18n_template}.element.#{property}" else model = 'data' - dom_id = property + dom_id = "#{property}" i18n_component = "#{i18n_template}.#{property}" end label ||= t "#{i18n_component}.label" diff --git a/app/views/admin/communication/blocks/templates/chapter/_edit.html.erb b/app/views/admin/communication/blocks/templates/chapter/_edit.html.erb index c455ecd9b996ce63cbaba56477e5bcc471f728ef..a2e77553775e8751a9195be20aaac76b2f3cb09e 100644 --- a/app/views/admin/communication/blocks/templates/chapter/_edit.html.erb +++ b/app/views/admin/communication/blocks/templates/chapter/_edit.html.erb @@ -4,6 +4,25 @@ <%= block_component_edit :notes %> </div> <div class="col-md-6"> - <%= block_component_edit :image %> + <div class="card"> + <div class="card-header"> + <%= t "admin.communication.blocks.templates.chapter.edit.image.label" %> + </div> + <div class="card-body"> + <%= block_component_edit :image %> + <%= block_component_edit :image_alt, + label: t('admin.communication.blocks.components.image.alt.label'), + placeholder: t('admin.communication.blocks.components.image.alt.placeholder') %> + <%= block_component_edit :image_credit, + label: t('admin.communication.blocks.components.image.credit.label'), + placeholder: t('admin.communication.blocks.components.image.credit.placeholder') %> + <div class="row"> + <div class="col-xl-3 col-6 mb-3"> + </div> + <div class="col-xl-9"> + </div> + </div> + </div> + </div> </div> </div> diff --git a/app/views/admin/communication/blocks/templates/chapter/_preview.html.erb b/app/views/admin/communication/blocks/templates/chapter/_preview.html.erb index 9a02f6ae9c5251c087b712c7e027d42442fb0e24..53312438f43c1ca06694b5242d71dff6e86a12cc 100644 --- a/app/views/admin/communication/blocks/templates/chapter/_preview.html.erb +++ b/app/views/admin/communication/blocks/templates/chapter/_preview.html.erb @@ -1,3 +1,5 @@ <%= block_component_preview :image %> +<%= block_component_preview :image_alt %> +<%= block_component_preview :image_credit %> <%= block_component_preview :notes %> <%= block_component_preview :text %> diff --git a/app/views/admin/communication/blocks/templates/chapter/_static.html.erb b/app/views/admin/communication/blocks/templates/chapter/_static.html.erb index fc59030371413ca29b4ed427dcec7e96f1c8bf28..af81bc62d8f01c6b7e8b684349cd2ca27e98ba8c 100644 --- a/app/views/admin/communication/blocks/templates/chapter/_static.html.erb +++ b/app/views/admin/communication/blocks/templates/chapter/_static.html.erb @@ -1,3 +1,5 @@ <%= block_component_static :text %> <%= block_component_static :notes %> <%= block_component_static :image %> +<%= block_component_static :image_alt %> +<%= block_component_static :image_credit %> diff --git a/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb b/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb index 66fe346e63185c149446dfd713129abce422abdd..2005bce92b1fa3911603c22d097b00503cf06ad9 100644 --- a/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb +++ b/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb @@ -24,18 +24,8 @@ element = @block.template.default_element </a> </div> </div> - <img :src="getImageUrl(element.file)" class="img-fluid d-block" v-if="element.file.id" /> <div class="card-body"> - <label class="form-label" - :for="'element-' + index + '-file'"> - <%= t '.image_label' %> - </label> - <input class="form-control mb-3" - type="file" - accept="image/*" - @change="onFileImageChange( $event, element, 'file' )" - :id="'element-' + index + '-file'"> - + <%= block_component_edit :image, element: element %> <%= block_component_edit :alt, element: element %> <%= block_component_edit :credit, element: element %> <%= block_component_edit :text, element: element %> diff --git a/config/locales/communication/en.yml b/config/locales/communication/en.yml index 99515360a0cdcc3b383d4720960809986feeb4e6..bfd4da71d4cf89c484d104a3153abab33cf9d01a 100644 --- a/config/locales/communication/en.yml +++ b/config/locales/communication/en.yml @@ -220,15 +220,16 @@ en: label: Carousel description: Images are big, with a previous / next navigation and a constant height. edit: - add_image: Add image - image_label: Image (.png, .jpg) - alt_label: Alternative text - alt_placeholder: Enter text description - credit_label: Credit - credit_placeholder: Enter image's credit here - text_label: Text - text_placeholder: Enter text - remove_image: Remove image + element: + text: + label: Text + placeholder: Enter text + alt: + label: Alternative text + placeholder: Enter text description + credit: + label: Credit + placeholder: Enter image's credit here image: description: An image with its alternative description, a credit and a text. key_figures: