diff --git a/app/models/communication/block/component/image.rb b/app/models/communication/block/component/image.rb index 6d056894f8bcdc58a0f2d5567838dd5332dac324..3915f6f1e6570d99e9e7068c12d137ed8c765d6c 100644 --- a/app/models/communication/block/component/image.rb +++ b/app/models/communication/block/component/image.rb @@ -1,6 +1,9 @@ class Communication::Block::Component::Image < Communication::Block::Component::Base + def data + # Loading the blob when needed, not saved in the database @data['blob'] = template.blob_with_id @data['id'] if @data&.has_key? 'id' @data end + end diff --git a/app/models/communication/block/template/base.rb b/app/models/communication/block/template/base.rb index 25f8a7934a80dda818261cdcd34b119e5c94477b..66c9346b0b0f843671c196a4cd82ca96fcccd947 100644 --- a/app/models/communication/block/template/base.rb +++ b/app/models/communication/block/template/base.rb @@ -87,6 +87,10 @@ class Communication::Block::Template::Base [] end + def elements + data['elements'] + end + def blob_with_id(id) university.active_storage_blobs.find id end @@ -138,6 +142,7 @@ class Communication::Block::Template::Base end def components + return [] if self.class.fields.nil? self.class.fields.map do |field| send "#{field[:name]}_component" end diff --git a/app/models/communication/block/template/gallery.rb b/app/models/communication/block/template/gallery.rb index 38c7d1b3d46fcdb0613cd995bd39337b1878f0ac..a74d7d5b8dc5aa9e096de874fb25f75df46b4466 100644 --- a/app/models/communication/block/template/gallery.rb +++ b/app/models/communication/block/template/gallery.rb @@ -2,7 +2,7 @@ class Communication::Block::Template::Gallery < Communication::Block::Template:: LAYOUTS = [:grid, :carousel].freeze - has_select :layout, options: LAYOUTS, default: LAYOUTS.first + # has_select :layout, options: LAYOUTS, default: LAYOUTS.first def build_git_dependencies add_dependency active_storage_blobs