Sha256: 9a11b29c9f7427dd1ff9b1933ee2308be2165097b1995bbc6bcee941ed43f119
Contents?: true
Size: 1.89 KB
Versions: 1
Compression:
Stored size: 1.89 KB
Contents
module Chat module ApplicationHelper def render_chat(background = nil, color = nil) return unless send Chat.signed_in render "chat/chat", background: background, color: color end def launch_chat_fab(background = "#4CAF50", color = "light") attrs = { class: "chat__launch", style: "background: #{background}", data: { "current-user" => current_user.id } } button_tag(attrs) do material_icon.forum.css_class("md-#{color}").to_s.html_safe end end def chatable_users @chatable_users ||= ::User.where.not(id: current_user.id) end def chatable_user_check_boxes(f) f.collection_check_boxes(:user_ids, chatable_users, :id, :name) do |b| b.check_box + b.label(class: b.object.chat_status) do content_tag( :div, b.text, class: "chat__status #{b.object.chat_status}" ) end end end def chat_avatar(user) if user.send(Chat.user_avatar.to_s + "?") image_tag(user.send(Chat.user_avatar), class: "chat__user-avatar") else MaterialIcon.new.css_class("chat__user-avatar").person end end def chat_list @chat_list ||= Chat::Conversation.joins(:users) .group("chat_sessions.conversation_id") .select(:id, group_concat) .merge(current_user.conversations) .order(created_at: :desc) end private def group_concat if ActiveRecord::Base.connection.adapter_name == "SQLite" "GROUP_CONCAT(users.#{::User.first_name} || ' ' || users.#{::User.last_name}, ', ') as names" elsif ActiveRecord::Base.connection.adapter_name == "MySQL" "GROUP_CONCAT(CONCAT(\"users.#{User.first_name}\",\" \", \"users.#{User.last_name}\") "\ "SEPARATOR ', ') as names" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
chat-0.2.0 | app/helpers/chat/application_helper.rb |