Class: Goldencobra::Widget

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/goldencobra/widget.rb

Constant Summary collapse

OfflineDays =
["Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"]
OfflineDaysEN =
["mo", "tu", "we", "th", "fr", "sa", "su"]
ImportDataFunctions =
[]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#offline_time_end_frObject

Returns the value of attribute offline_time_end_fr.



45
46
47
# File 'app/models/goldencobra/widget.rb', line 45

def offline_time_end_fr
  @offline_time_end_fr
end

#offline_time_end_moObject

Returns the value of attribute offline_time_end_mo.



44
45
46
# File 'app/models/goldencobra/widget.rb', line 44

def offline_time_end_mo
  @offline_time_end_mo
end

#offline_time_end_saObject

Returns the value of attribute offline_time_end_sa.



45
46
47
# File 'app/models/goldencobra/widget.rb', line 45

def offline_time_end_sa
  @offline_time_end_sa
end

#offline_time_end_suObject

Returns the value of attribute offline_time_end_su.



46
47
48
# File 'app/models/goldencobra/widget.rb', line 46

def offline_time_end_su
  @offline_time_end_su
end

#offline_time_end_thObject

Returns the value of attribute offline_time_end_th.



45
46
47
# File 'app/models/goldencobra/widget.rb', line 45

def offline_time_end_th
  @offline_time_end_th
end

#offline_time_end_tuObject

Returns the value of attribute offline_time_end_tu.



44
45
46
# File 'app/models/goldencobra/widget.rb', line 44

def offline_time_end_tu
  @offline_time_end_tu
end

#offline_time_end_weObject

Returns the value of attribute offline_time_end_we.



44
45
46
# File 'app/models/goldencobra/widget.rb', line 44

def offline_time_end_we
  @offline_time_end_we
end

#offline_time_start_frObject

Returns the value of attribute offline_time_start_fr.



45
46
47
# File 'app/models/goldencobra/widget.rb', line 45

def offline_time_start_fr
  @offline_time_start_fr
end

#offline_time_start_moObject

Returns the value of attribute offline_time_start_mo.



44
45
46
# File 'app/models/goldencobra/widget.rb', line 44

def offline_time_start_mo
  @offline_time_start_mo
end

#offline_time_start_saObject

Returns the value of attribute offline_time_start_sa.



45
46
47
# File 'app/models/goldencobra/widget.rb', line 45

def offline_time_start_sa
  @offline_time_start_sa
end

#offline_time_start_suObject

Returns the value of attribute offline_time_start_su.



46
47
48
# File 'app/models/goldencobra/widget.rb', line 46

def offline_time_start_su
  @offline_time_start_su
end

#offline_time_start_thObject

Returns the value of attribute offline_time_start_th.



45
46
47
# File 'app/models/goldencobra/widget.rb', line 45

def offline_time_start_th
  @offline_time_start_th
end

#offline_time_start_tuObject

Returns the value of attribute offline_time_start_tu.



44
45
46
# File 'app/models/goldencobra/widget.rb', line 44

def offline_time_start_tu
  @offline_time_start_tu
end

#offline_time_start_weObject

Returns the value of attribute offline_time_start_we.



44
45
46
# File 'app/models/goldencobra/widget.rb', line 44

def offline_time_start_we
  @offline_time_start_we
end

Class Method Details

.recent(count) ⇒ Object



86
87
88
# File 'app/models/goldencobra/widget.rb', line 86

def self.recent(count)
  Goldencobra::Widget.where("title IS NOT NULL").order("created_at DESC").limit(count)
end

Instance Method Details

#duplicate!Object



185
186
187
188
189
190
191
192
193
194
# File 'app/models/goldencobra/widget.rb', line 185

def duplicate!
  attrs = self.attributes
            .delete_if{ |key| %w(id created_at updated_at).include?(key) }
  attrs["title"] = "#{attrs["title"]} (Kopie)"
  attrs["id_name"] = attrs["id_name"].present? ? "#{attrs["id_name"]}-kopie" : nil
  attrs["active"] = false
  attrs["tag_list"] = tag_list
  new_widget = Goldencobra::Widget.create!(attrs)
  new_widget ? new_widget.id : nil
end

#offline_date_end_displayObject



114
115
116
117
118
119
120
# File 'app/models/goldencobra/widget.rb', line 114

def offline_date_end_display
  if self.offline_date_end.present?
    self.offline_date_end.strftime("%Y%m%d")
  else
    ""
  end
end

#offline_date_start_displayObject

def offline_time_end_display

if self.offline_time_end.present?
  self.offline_time_end.strftime("%H%M")
else
  ""
end

end



106
107
108
109
110
111
112
# File 'app/models/goldencobra/widget.rb', line 106

def offline_date_start_display
  if self.offline_date_start.present?
    self.offline_date_start.strftime("%Y%m%d")
  else
    ""
  end
end

#offline_dayObject



82
83
84
# File 'app/models/goldencobra/widget.rb', line 82

def offline_day
  self.offline_days.split(",").map{|tag| tag.strip} if self.offline_days.present?
end

#offline_day=(wert) ⇒ Object



78
79
80
# File 'app/models/goldencobra/widget.rb', line 78

def offline_day=(wert)
  self.offline_days = wert.flatten.uniq.compact.delete_if{|a|a==""}.join(",")
end

#offline_time_weekObject



122
123
124
125
126
127
128
129
130
# File 'app/models/goldencobra/widget.rb', line 122

def offline_time_week
  result = Hash.new
  if self.offline_time_week_start_end.present?
    self.offline_time_week_start_end.each do |key,value|
      result["data-time-day-#{key}"] = value
    end
  end
  return result
end

#set_default_tagObject



74
75
76
# File 'app/models/goldencobra/widget.rb', line 74

def set_default_tag
  self.tag_list = "sidebar" if self.tag_list.blank?
end

#set_week_start_end_timesObject



147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# File 'app/models/goldencobra/widget.rb', line 147

def set_week_start_end_times
  self.offline_time_week_start_end = Hash.new
  OfflineDays.each_with_index do |day,index|
    if self.offline_day.present? && self.offline_day.include?(day)
      current_day = OfflineDaysEN[index]
      if current_day.present?
        start_time = eval("self.offline_time_start_#{current_day}").to_s.gsub(/\D/, "").strip
        end_time = eval("self.offline_time_end_#{current_day}").to_s.gsub(/\D/, "").strip
        start_time = "0001" if start_time.blank?
        end_time = "2359" if end_time.blank?
        self.offline_time_week_start_end[current_day] = "#{start_time}-#{end_time}"
      end
    end
  end
end

#validate_start_end_timeObject



164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'app/models/goldencobra/widget.rb', line 164

def validate_start_end_time
  if self.offline_time_active

    # if self.offline_time_start.present? && self.offline_time_end.present?

    #   if self.offline_time_start > self.offline_time_end
    #     errors.add(:offline_time_start, 'Startzeit muss VOR Endzeit liegen')
    #     errors.add(:offline_time_end, 'Startzeit muss VOR Endzeit liegen')
    #   end

    # else
    #   errors.add(:offline_time_start, 'Zeit muss gesetzt werden')
    #   errors.add(:offline_time_end, 'Zeit muss gesetzt werden')
    # end

    if self.offline_days.blank?
      errors.add(:offline_day, 'Mindestens ein Tag muss ausgewählt sein.')
    end
  end
end