Sha256: 48527a94d1180e3b441dce7d8ed6d749b0aa5ed78247cd547f7c6cd205d76f2d
Contents?: true
Size: 1.34 KB
Versions: 62
Compression:
Stored size: 1.34 KB
Contents
module Workarea module Admin class ChangesViewModel < ApplicationViewModel def id Digest::SHA1.hexdigest(model.to_s) end def present_changes model.reject { |k, v| k.blank? || v.all?(&:blank?) } end def relevant_fields present_changes .keys .map { |k| remove_id_from_field_name(k) } .map(&:humanize) .map(&:downcase) .map { |n| t("workarea.admin.fields.#{n}", default: n) } end def to_html if model.blank? || relevant_fields.blank? t('workarea.admin.fields', count: 0).html_safe elsif relevant_fields.size > 3 %Q( <a href="#changes-#{id}" data-tooltip="true"> #{t('workarea.admin.fields', count: relevant_fields.size)} </a> <div id="changes-#{id}" class="tooltip-content"> <p>#{relevant_fields.to_sentence}</p> </div> ).html_safe else relevant_fields .map { |f| "<strong>#{f}</strong>" } .to_sentence .html_safe end end private def remove_id_from_field_name(field) if field.ends_with?('_ids') field.gsub(/_ids$/, '').pluralize else field.gsub(/_u?id$/, '') end end end end end
Version data entries
62 entries across 62 versions & 1 rubygems