From 8f06168f1cb19e286401780842acf748a69661e2 Mon Sep 17 00:00:00 2001 From: developer Date: Thu, 8 May 2014 23:18:57 +0800 Subject: [PATCH] VRFS-1654 - configure feed layout --- admin/Gemfile | 2 +- admin/app/admin/feeds.rb | 61 +++++++++++++++++++ admin/app/admin/mix.rb | 4 +- .../assets/stylesheets/active_admin.css.scss | 1 + admin/app/assets/stylesheets/custom.css.scss | 15 +++++ admin/app/views/admin/feed/_form.html.erb | 6 ++ admin/app/views/admin/feed/_index.html.erb | 23 +++++++ atlassian-ide-plugin.xml | 5 ++ 8 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 admin/app/admin/feeds.rb create mode 100644 admin/app/views/admin/feed/_form.html.erb create mode 100644 admin/app/views/admin/feed/_index.html.erb create mode 100644 atlassian-ide-plugin.xml diff --git a/admin/Gemfile b/admin/Gemfile index 8a47660de..a53c17f5e 100644 --- a/admin/Gemfile +++ b/admin/Gemfile @@ -102,7 +102,7 @@ group :development, :test do gem 'rspec-rails' gem 'guard-rspec', '0.5.5' gem 'jasmine', '1.3.1' - gem 'pry' + # gem 'pry' gem 'execjs', '1.4.0' gem 'therubyracer' #, '0.11.0beta8' gem 'factory_girl_rails', '4.1.0' diff --git a/admin/app/admin/feeds.rb b/admin/app/admin/feeds.rb new file mode 100644 index 000000000..e1f5c2913 --- /dev/null +++ b/admin/app/admin/feeds.rb @@ -0,0 +1,61 @@ +ActiveAdmin.register_page 'Feed' do + content do + + # get user information via params + user_id = nil + user_id = params[:feed][:user_id] if params[:feed] + user_name = User.find(user_id).name if user_id + user_name = "All" unless user_id + + render :partial => 'form', :locals => {param: params} + + offset = 0 + limit = 10 + + # get feed ids + where_sql = '' + where_sql = "where user_id = '#{user_id}'" if user_id + sql_feed_ids = "SELECT id, 'music_session_histories' as type, created_at FROM music_sessions_history #{where_sql} + UNION ALL + SELECT DISTINCT recording_id as id, 'recordings' as type, created_at FROM recorded_tracks #{where_sql} + UNION ALL + SELECT id, 'diagnostics' as type, created_at FROM diagnostics #{where_sql} + ORDER BY created_at DESC + OFFSET #{offset} + LIMIT #{limit};" + + models = [] + id_types = ActiveRecord::Base.connection.execute(sql_feed_ids).values + id_types.each do |id_and_type| + if id_and_type[1] == "music_session_histories" + models << JamRuby::MusicSessionHistory.find(id_and_type[0]) + # elsif id_and_type[1] == "recordings" + # models << JamRuby::Recording.find(id_and_type[0]) + elsif id_and_type[1] == "recordings" + models << JamRuby::Diagnostics.find(id_and_type[0]) + else + raise "Unknown type returned from feed ids" + end + end + + columns do + column do + panel "Activity - #{user_name}" do + para id_types.inspect + ul do + models.each do |model| + li do + text_node model.inspect + end + end + end + end + end + end + end + + controller do + def index + end + end +end \ No newline at end of file diff --git a/admin/app/admin/mix.rb b/admin/app/admin/mix.rb index f2c86e7ec..16c623ca1 100644 --- a/admin/app/admin/mix.rb +++ b/admin/app/admin/mix.rb @@ -24,8 +24,8 @@ ActiveAdmin.register JamRuby::Mix, :as => 'Mixes' do attributes_table_for(mix) do row :recording do |mix| auto_link(mix.recording, mix.recording.id) end row :created_at do |mix| mix.created_at.strftime('%b %d %Y, %H:%M') end - row :s3_url do |mix| mix.url end - row :manifest do |mix| mix.manifest end + # row :s3_url do |mix| mix.url end + # row :manifest do |mix| mix.manifest end row :completed do |mix| "#{mix.completed ? "finished" : "not finished"}" end if mix.completed row :completed_at do |mix| mix.completed_at.strftime('%b %d %Y, %H:%M') end diff --git a/admin/app/assets/stylesheets/active_admin.css.scss b/admin/app/assets/stylesheets/active_admin.css.scss index 4798f7467..48aa7bb98 100644 --- a/admin/app/assets/stylesheets/active_admin.css.scss +++ b/admin/app/assets/stylesheets/active_admin.css.scss @@ -9,6 +9,7 @@ /* *= require jquery.ui.all +*= require custom */ // Active Admin's got SASS! @import "active_admin/mixins"; diff --git a/admin/app/assets/stylesheets/custom.css.scss b/admin/app/assets/stylesheets/custom.css.scss index 97651a7af..d3dabb8d0 100644 --- a/admin/app/assets/stylesheets/custom.css.scss +++ b/admin/app/assets/stylesheets/custom.css.scss @@ -2,4 +2,19 @@ .version-info { font-size:small; color:lightgray; +} + +.feed-pagination { + height: 20px; + .pagination { + float: left !important; + + ul { + list-style-type: none; + + li { + float: left; + } + } + } } \ No newline at end of file diff --git a/admin/app/views/admin/feed/_form.html.erb b/admin/app/views/admin/feed/_form.html.erb new file mode 100644 index 000000000..b72d211e3 --- /dev/null +++ b/admin/app/views/admin/feed/_form.html.erb @@ -0,0 +1,6 @@ +<%= semantic_form_for :feed, url: admin_feed_path, method: :get do |f| %> + <%= f.inputs do %> + <%= f.input :user, :as => :autocomplete, :url => autocomplete_user_email_admin_users_path, :input_html => { :id_element => "#feed_user_id" }%> + <%= f.input :user_id, :as => :hidden %> + <% end %> +<% end %> \ No newline at end of file diff --git a/admin/app/views/admin/feed/_index.html.erb b/admin/app/views/admin/feed/_index.html.erb new file mode 100644 index 000000000..7ad3e71d2 --- /dev/null +++ b/admin/app/views/admin/feed/_index.html.erb @@ -0,0 +1,23 @@ + + + + + + + + <% @users.each do |user| %> + + + + <% end %> + +
User Name - <%= @user_id %>
+

+ <%= link_to admin_feed_path(feed: {user_id: user.id}) do %> + <%= user.name %> + <% end %>

+
+ +
+ <%= will_paginate @users %> +
\ No newline at end of file diff --git a/atlassian-ide-plugin.xml b/atlassian-ide-plugin.xml new file mode 100644 index 000000000..858eed55c --- /dev/null +++ b/atlassian-ide-plugin.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file