Sha256: a63994369cdf8e02c3cb43eae19d587fd41575c22c1c4060ee101e418466a568
Contents?: true
Size: 1.79 KB
Versions: 2
Compression:
Stored size: 1.79 KB
Contents
module LatoMedia class Inputs::Gallery::Cell < LatoCore::Cell view_paths << "#{LatoMedia::Engine.root}/app/cells" @@requested_args = [:name] @@default_args = { value: '', label: '', help: '', class: 'md-12', id: nil } def initialize(args = {}) @args = validate_args( args: args, requested_args: @@requested_args, default_args: @@default_args ) set_conditions end def show render 'show.html' end private def set_conditions # set show options @show_label = !@args[:label].nil? && !@args[:label].blank? @show_help = !@args[:help].nil? && !@args[:help].blank? # set correct id @id = @args[:id] ? @args[:id] : SecureRandom.hex(5) # generate random id if not custom id is set. # set current media medias = get_medias @medias = medias ? medias : [] # set current value @value = get_value end def get_medias if @args[:value].is_a?(String) array = @args[:value].split(',') get_medias_from_array(array) elsif @args[:value].is_a?(Array) get_medias_from_array(@args[:value]) else raise 'Gallery value not accepted' end end def get_medias_from_array(array) medias = [] array.each do |element| if element.is_a?(String) medias.push(LatoMedia::Media.find_by(id: element.to_i)) elsif element.is_a?(Integer) medias.push(LatoMedia::Media.find_by(id: element)) elsif element.class == LatoMedia::Media medias.push(element) else raise 'Media value not accepted' end end medias end def get_value values = @medias.map { |m| m.id if m } values.join(',') end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lato_media-2.1.2 | app/cells/lato_media/inputs/gallery/cell.rb |
lato_media-2.1 | app/cells/lato_media/inputs/gallery/cell.rb |