mirror of https://github.com/fspc/BikeShed-1.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.4 KiB
47 lines
1.4 KiB
class UserStats < Netzke::Base
|
|
|
|
def body_content(user)
|
|
bike = user.bike
|
|
completed = user.completed_build_bikes
|
|
#TODO I think it's time to switch to a template
|
|
body = ""
|
|
body += %Q(<div id="user_stats_page">)
|
|
body += %Q(
|
|
<p>Username: #{user.username}</p>
|
|
<p>Total Credits Earned: #{user.total_earned_credits}</p>
|
|
<p>Credits Available: #{user.total_credits}</p>
|
|
<p>Credits Spent: #{user.total_credits_spent}</p>
|
|
<p>Total Hours Worked: #{user.total_hours}</p>
|
|
<p>Hours worked in #{Time.now.strftime('%B')}: #{user.current_month_hours}</p>
|
|
<p>Current bike Shop ID: #{bike.shop_id if bike}</p>
|
|
<p>Current bike S/N: #{bike.serial_number if bike}</p>
|
|
)
|
|
unless completed.empty?
|
|
body += %Q(<p>Previously built bikes (#{completed.count}):</p>)
|
|
body += %Q(<ul>)
|
|
completed.each do |b|
|
|
body += %Q(<li>#{b.shop_id}</li>)
|
|
end
|
|
body += %Q(</ul>)
|
|
end
|
|
body += %Q(</div>)
|
|
end
|
|
|
|
js_configure do |c|
|
|
c.body_padding = 15
|
|
c.title = "User Stats"
|
|
c.mixin :user_stats
|
|
end
|
|
|
|
endpoint :server_update do |params, this|
|
|
# updateBodyHtml is a JS-side method we inherit from Netkze::Basepack::Panel
|
|
this[:update] = [body_content(user)]
|
|
end
|
|
|
|
private
|
|
def user
|
|
User.find_by_id(session[:selected_user_id]) || controller.current_user
|
|
end
|
|
|
|
end
|
|
|
|
|