From 1c325aa2bcaf53e7133017ba54f416c619d525bd Mon Sep 17 00:00:00 2001 From: rulingcom Date: Mon, 5 May 2025 21:57:59 +0800 Subject: [PATCH] added member feature --- app/controllers/video_pros_controller.rb | 10 ++++++++++ app/models/video_image.rb | 1 + app/views/admin/video_pros/_form.html.erb | 6 ++++++ app/views/video_pros/show.html.erb | 7 +++++++ config/locales/en.yml | 1 + config/locales/zh_tw.yml | 1 + 6 files changed, 26 insertions(+) diff --git a/app/controllers/video_pros_controller.rb b/app/controllers/video_pros_controller.rb index 4890d9a..c07953b 100644 --- a/app/controllers/video_pros_controller.rb +++ b/app/controllers/video_pros_controller.rb @@ -11,8 +11,18 @@ class VideoProsController < ApplicationController return if snapshot_url.nil? video_image.view_count += 1 video_image.inc_count + members = MemberProfile.find(video_image.other_member_profiles) + profiles = [] + members.each do |member| + profiles << { + "picture" => member.get_avatar, + "name" => member.name, + "autobiography" => member.autobiography + } + end { "video_image" => video_image, + "profiles" => profiles, "url" => "/#{I18n.locale.to_s}" + OrbitHelper.page.url } end diff --git a/app/models/video_image.rb b/app/models/video_image.rb index f1f0209..2125c6d 100644 --- a/app/models/video_image.rb +++ b/app/models/video_image.rb @@ -35,6 +35,7 @@ class VideoImage field :view_count, type: Integer, default: 0 field :scale, type: Float field :details, type: String, localize: true + field :other_member_profiles, type: Array, default: [] has_and_belongs_to_many :video_tags, inverse_of: :video_images # LINK_OPEN_TYPES = ["local", "new_window"] diff --git a/app/views/admin/video_pros/_form.html.erb b/app/views/admin/video_pros/_form.html.erb index e145306..6dee49b 100644 --- a/app/views/admin/video_pros/_form.html.erb +++ b/app/views/admin/video_pros/_form.html.erb @@ -325,6 +325,12 @@ <% end %> +
+ +
+ <%= render partial: 'admin/member_selects/email_selection_box', locals: {field: 'video_image[other_member_profiles][]', email_members: MemberProfile.find(@video_image.other_member_profiles), select_name: "author_members", index: 'author_members', extra_class: 'custom-class'} %> +
+
diff --git a/app/views/video_pros/show.html.erb b/app/views/video_pros/show.html.erb index 0702cda..8f2576c 100644 --- a/app/views/video_pros/show.html.erb +++ b/app/views/video_pros/show.html.erb @@ -26,6 +26,13 @@ video_tags = video_image.tags video_tags = (video_tags.count > 0 ? video_tags.collect{|tag| {"video_tag" => tag.name}} : [{"video_tag" => video_category}]) %> +
+<% data["profiles"].each do |profile| %> + "> + <%= profile["name"] %> +
<%= profile["autobiography"].html_safe %>
+<% end %> +

<%= video_title %>