diff --git a/app/controllers/universal_tables_controller.rb b/app/controllers/universal_tables_controller.rb index 8400d4e..52ed4fd 100644 --- a/app/controllers/universal_tables_controller.rb +++ b/app/controllers/universal_tables_controller.rb @@ -155,19 +155,43 @@ class UniversalTablesController < ApplicationController "order" => ct.order } if text != "" end - sorted = rows.sort{ |k,v| k["order"] <=> v["order"] } - sorted << { + sorted = rows.sort{ |k,v| k["order"] <=> v["order"] } + sorted << { + "title" => t("universal_table.hashtags"), + "text" => entry.tags_for_frontend + } + entry.inc(view_count: 1) + related_entries = [] + entry.get_related_entries.each do |e| + rows = [] + e.column_entries.each do |ce| + ct = ce.table_column + text = ce.get_frontend_text(ct) + if ct.is_link_to_show + text = "#{text}" + end + rows << { + "title" => ct.title, + "text" => text, + "url" => OrbitHelper.url_to_show(e.to_param) + } if text != "" + end + rows << { "title" => t("universal_table.hashtags"), - "text" => entry.tags_for_frontend + "text" => e.tags_for_frontend } - entry.inc(view_count: 1) - { - "entry" => sorted, - "extras" => { - "view_count_head" => I18n.t("view_count"), - "view_count" => entry.view_count - } - } + related_entries << { + "related_entry" => rows + } + end + { + "entry" => sorted, + "related_entries" => related_entries, + "extras" => { + "view_count_head" => I18n.t("view_count"), + "view_count" => entry.view_count + } + } end def download_file @@ -334,7 +358,7 @@ class UniversalTablesController < ApplicationController if !ce.nil? text = ce.get_frontend_text(column) if column.is_link_to_show - text = "#{text}" + text = "#{text}" end cols << {"text" => text} diff --git a/app/models/table_entry.rb b/app/models/table_entry.rb index 7bb8462..f347272 100644 --- a/app/models/table_entry.rb +++ b/app/models/table_entry.rb @@ -3,10 +3,11 @@ class TableEntry include Mongoid::Timestamps include Slug - attr_accessor :sort_value - field :have_data, type: Boolean, localize: true - field :sort_number, type: Integer - field :view_count, type: Integer, default: 0 + attr_accessor :sort_value + field :have_data, type: Boolean, localize: true + field :sort_number, type: Integer + field :view_count, type: Integer, default: 0 + field :related_entries, type: String, default: "" has_many :column_entries, :dependent => :destroy belongs_to :u_table, index: true @@ -32,6 +33,11 @@ class TableEntry self.class.where(:id=> self.id).update_all(have_data_translations.map{|l, v| ["have_data.#{l}", v]}.to_h) end + def get_related_entries + tids = self.related_entries.split(',') + TableEntry.find(tids) + end + def get_have_data searchable_field_ids = TableColumn.filter_searchable.where(u_table_id: self.u_table_id).pluck(:id) searchable_column_entries = self.column_entries.where(:table_column_id.in=> searchable_field_ids).to_a diff --git a/app/views/admin/universal_tables/_entry_form.html.erb b/app/views/admin/universal_tables/_entry_form.html.erb index b3fd844..8bac7d6 100644 --- a/app/views/admin/universal_tables/_entry_form.html.erb +++ b/app/views/admin/universal_tables/_entry_form.html.erb @@ -15,6 +15,9 @@ #s2id_autogen1{ width: 500px !important; } + #s2id_autogen2 { + width: 500px !important; + }
{{title}} | +{{title}} | {{text}} |
{{text}} | +