Add rss2_id and rich_title to let custom add style to title in admin page(it will show in frontend show index).

Add frontend show page link to admin index page.
This commit is contained in:
BOHUNG 2020-03-20 15:20:16 +08:00
parent 468f82fecd
commit 82457c4951
4 changed files with 30 additions and 8 deletions

View File

@ -14,7 +14,7 @@ class Admin::FaqsController < OrbitAdminController
.with_status(filters("status")) .with_status(filters("status"))
@qas = search_data(@qas,[:title]).page(params[:page]).per(10) @qas = search_data(@qas,[:title]).page(params[:page]).per(10)
@faq_page_url = Page.where(:module=>'faq').first.url rescue '#'
render :partial => "index" if request.xhr? render :partial => "index" if request.xhr?
end end
@ -87,10 +87,23 @@ class Admin::FaqsController < OrbitAdminController
private private
def setup_vars def setup_vars
if ModuleApp.where(:key => "faq").count > 1
module_apps = ModuleApp.where(:key => "faq").to_a
categories_count = module_apps.map{|m| m.categories.count}
module_apps = module_apps.map.with_index{|m,i| {'id'=>m.id,'count'=>categories_count[i]}}.sort_by{|m| -m['count']}
module_apps[1..-1].each do |m|
module_app = ModuleApp.find(m['id'])
module_app.categories.each{|c| c.update(:module_app_id=>module_apps.first['id'])}
module_app.destroy
end
end
@module_app = ModuleApp.where(:key => "faq").first @module_app = ModuleApp.where(:key => "faq").first
end end
def create_params def create_params
params.require(:qa).permit! qa_params = params.require(:qa).permit!
qa_params['title_translations'] = {}
qa_params['rich_title_translations'].each{|locale,value| temp_title = Nokogiri::HTML(value);qa_params['title_translations'][locale] = temp_title.inner_text;}
return qa_params
end end
end end

View File

@ -11,13 +11,14 @@ class Qa
include Slug include Slug
field :title,as: :slug_title, localize: true field :title,as: :slug_title, localize: true
field :rich_title, localize: true
field :answer, localize: true field :answer, localize: true
field :create_user_id field :create_user_id
field :update_user_id field :update_user_id
field :uid, type: String field :uid, type: String
field :order_position, type: Integer, default: -1 field :order_position, type: Integer, default: -1
field :rss2_id, type: String
has_many :qa_links, :autosave => true, :dependent => :destroy has_many :qa_links, :autosave => true, :dependent => :destroy
has_many :qa_files, :autosave => true, :dependent => :destroy has_many :qa_files, :autosave => true, :dependent => :destroy
@ -32,7 +33,11 @@ class Qa
before_save :clean_values before_save :clean_values
# validates :title, :at_least_one => true # validates :title, :at_least_one => true
after_initialize do |record|
if record.rich_title.blank? && !record.title.blank?
record.update(:rich_title_translations => record.title_translations)
end
end
def self.search( category_id = nil ) def self.search( category_id = nil )

View File

@ -92,10 +92,10 @@
<% @site_in_use_locales.each_with_index do |locale, i| %> <% @site_in_use_locales.each_with_index do |locale, i| %>
<div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>"> <div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>">
<div class="control-group input-title"> <div class="control-group input-title">
<%= f.label :title , t('faq.question'), :class=>"control-label muted" %> <%= f.label :rich_title , t('faq.question'), :class=>"control-label muted" %>
<div class="controls"> <div class="controls">
<%= f.fields_for :title_translations do |f| %> <%= f.fields_for :rich_title_translations do |f| %>
<%= f.text_field locale, :class=>'post-title', :value => (@qa.title_translations[locale] rescue nil) %> <%= f.text_area locale, :class=>'post-title ckeditor input-block-level', :value => (@qa.rich_title_translations[locale] rescue nil) %>
<% end %> <% end %>
</div> </div>
</div> </div>

View File

@ -17,7 +17,11 @@
<% end %> <% end %>
</td> </td>
<td> <td>
<% if @faq_page_url != '#'%>
<a href='<%="/#{I18n.locale}#{@faq_page_url}/#{qa.title[0..6]}-#{qa.uid}"%>' target="_blank"><%= qa.title %></a>
<% else %>
<a href="#" target="_blank"><%= qa.title %></a> <a href="#" target="_blank"><%= qa.title %></a>
<% end %>
<div class="quick-edit"> <div class="quick-edit">
<ul class="nav nav-pills"> <ul class="nav nav-pills">
<% if can_edit_or_delete?(qa) %> <% if can_edit_or_delete?(qa) %>