add ckeditor to title and add title to a tag

This commit is contained in:
chiu 2020-02-06 12:46:38 +08:00
parent 31b331d852
commit a4ddbb351d
6 changed files with 84 additions and 77 deletions

View File

@ -332,6 +332,8 @@ class Admin::AnnouncementsController < OrbitAdminController
is_sent = bulletin.email.is_sent is_sent = bulletin.email.is_sent
is_sent = !params[:resend_mail].eql?("true") if !params[:resend_mail].blank? is_sent = !params[:resend_mail].eql?("true") if !params[:resend_mail].blank?
doc = Nokogiri::HTML(bulletin.title)
title = doc.text.empty? ? 'no content' : doc.text
bulletin.email.update_attributes( bulletin.email.update_attributes(
:create_user=>current_user, :create_user=>current_user,
@ -339,11 +341,11 @@ class Admin::AnnouncementsController < OrbitAdminController
:module_app=>@module_app, :module_app=>@module_app,
:mail_lang => I18n.locale, :mail_lang => I18n.locale,
:mail_to=>bulletin.email_addresses, :mail_to=>bulletin.email_addresses,
:mail_subject=>bulletin.title, :mail_subject=>title,
:template=>'announcements/email', :template=>'announcements/email',
:template_data=>{ :template_data=>{
"host" => request.host_with_port, "host" => request.host_with_port,
"title" => bulletin.title, "title" => title,
"url" => page_for_bulletin(bulletin) "url" => page_for_bulletin(bulletin)
}, },
:is_sent=>is_sent :is_sent=>is_sent

View File

@ -22,6 +22,8 @@ class AnnouncementsController < ApplicationController
desc = (desc.nil? || desc == "" ? "announcement image" : desc) desc = (desc.nil? || desc == "" ? "announcement image" : desc)
link_to_show = a.is_external_link ? a.external_link : OrbitHelper.url_to_show(a.to_param) link_to_show = a.is_external_link ? a.external_link : OrbitHelper.url_to_show(a.to_param)
target = a.is_external_link ? "_blank" : "_self" target = a.is_external_link ? "_blank" : "_self"
doc = Nokogiri::HTML(a.title)
title = doc.text.empty? ? 'no content' : doc.text
anns << { anns << {
"bulletin_links" => links, "bulletin_links" => links,
"bulletin_files" => files, "bulletin_files" => files,
@ -35,7 +37,7 @@ class AnnouncementsController < ApplicationController
"postdate" => a.postdate, "postdate" => a.postdate,
"author" => author, "author" => author,
"is_top" => (a.is_top? ? 1 : 0), "is_top" => (a.is_top? ? 1 : 0),
"link_to_show" => link_to_show, "link_to_show" => link_to_show+"\" title=\"#{title}\"",
"target" => target, "target" => target,
"img_src" => a.image.thumb.url || "/assets/announcement-default.jpg", "img_src" => a.image.thumb.url || "/assets/announcement-default.jpg",
"img_description" => desc, "img_description" => desc,

View File

@ -9,7 +9,7 @@ class Bulletin
include OrbitCategory::Categorizable include OrbitCategory::Categorizable
include Slug include Slug
field :title, as: :slug_title, type: String, localize: true field :title, type: String, localize: true
field :subtitle, localize: true field :subtitle, localize: true
field :text, localize: true field :text, localize: true
field :create_user_id field :create_user_id
@ -51,7 +51,10 @@ class Bulletin
scope :is_approved, ->{where(:approved => true)} scope :is_approved, ->{where(:approved => true)}
before_create :set_expire before_create :set_expire
def slug_title
doc = Nokogiri::HTML(self.title)
title = doc.text.gsub('/','-')
end
def set_expire def set_expire
self.expirable_created_at = Time.now if self.is_preview self.expirable_created_at = Time.now if self.is_preview
return true return true

View File

@ -242,7 +242,7 @@
<label class="control-label muted"><%= t(:title) %></label> <label class="control-label muted"><%= t(:title) %></label>
<div class="controls"> <div class="controls">
<%= f.fields_for :title_translations do |f| %> <%= f.fields_for :title_translations do |f| %>
<%= f.text_field locale, class: "input-block-level", placeholder: t(:title), value: (@bulletin.title_translations[locale] rescue nil) %> <%= f.text_area locale, class: "ckeditor input-block-level", placeholder: t(:title), value: (@bulletin.title_translations[locale] rescue nil) %>
<% end %> <% end %>
</div> </div>
</div> </div>
@ -253,7 +253,7 @@
<div class="controls"> <div class="controls">
<div class="textarea"> <div class="textarea">
<%= f.fields_for :subtitle_translations do |f| %> <%= f.fields_for :subtitle_translations do |f| %>
<%= f.text_area locale, rows: 2, class: "input-block-level", value: (@bulletin.subtitle_translations[locale] rescue nil) %> <%= f.text_area locale, rows: 2, class: "ckeditor input-block-level", value: (@bulletin.subtitle_translations[locale] rescue nil) %>
<% end %> <% end %>
</div> </div>
</div> </div>

View File

@ -26,7 +26,7 @@
<% if b.expired? || (b.category.disable rescue false)%> <% if b.expired? || (b.category.disable rescue false)%>
<%= b.title %> <%= b.title %>
<% else %> <% else %>
<a href="<%= page_for_bulletin(b) %>" target="_blank"><%= b.title %></a> <a href="<%= page_for_bulletin(b) %>" target="_blank"><%= b.title.html_safe %></a>
<% end %> <% end %>
<% if b.expired? %> <% if b.expired? %>

View File

@ -27,12 +27,12 @@
if now_index != 0 if now_index != 0
prev_result = sorted[now_index-1] prev_result = sorted[now_index-1]
prev_url = params['url'] + '/' + prev_result.to_param prev_url = params['url'] + '/' + prev_result.to_param
prev_content = "<a href='#{prev_url}' class='prev'><b>#{t('announcement.prev')}</b><p>#{prev_result['title'][I18n.locale]}</p></a>" prev_content = "<a href='#{prev_url}' title='#{t('announcement.prev')}' class='prev'><b>#{t('announcement.prev')}</b><p>#{prev_result['title'][I18n.locale]}</p></a>"
end end
if now_index != sorted.length-1 if now_index != sorted.length-1
next_result = sorted[now_index+1] next_result = sorted[now_index+1]
next_url = params['url'] + '/' + next_result.to_param next_url = params['url'] + '/' + next_result.to_param
next_content = "<a href='#{next_url}' class='next'><b>#{t('announcement.next')}</b><p>#{next_result['title'][I18n.locale]}</p></a>" next_content = "<a href='#{next_url}' title='#{t('announcement.next')}' class='next'><b>#{t('announcement.next')}</b><p>#{next_result['title'][I18n.locale]}</p></a>"
end end
content = "<div class='see_more_boxTitle'>#{prev_content}#{next_content}</div>".html_safe content = "<div class='see_more_boxTitle'>#{prev_content}#{next_content}</div>".html_safe
end end