complete preview for both new and announcement

This commit is contained in:
Fu Matthew 2012-09-07 17:55:59 +08:00
parent 8bd5481b3f
commit 6044857fea
24 changed files with 301 additions and 67 deletions

View File

@ -3,25 +3,53 @@
// <%= link_to "NewPreview", realtime_preview_admin_ad_banner_path(ad_banner_tab) , :class=>'preview_trigger'%> // <%= link_to "NewPreview", realtime_preview_admin_ad_banner_path(ad_banner_tab) , :class=>'preview_trigger'%>
$(document).ready(function() { $(document).ready(function() {
$("a.post_preview").click(function(e){ // $(".post_preview").click(function(e){
$("#main-wrap").after("<span id='show_preview'></span>"); // $("#main-wrap").after("<span id='show_preview'></span>");
e.preventDefault(); // e.preventDefault();
var form = $(this).parents("form").first() // var form = $(this).parents("form").first()
//var cont = form["content"].value; // //var cont = form["content"].value;
$.ajax({ // // $.ajax({
type: 'POST', // // type: 'POST',
url: $(this).attr("href")+'?preview=true', // // url: $(this).attr("href")+'?preview=true',
data: form.serialize(), // // data: form.serialize(),
dataType: "script", // // dataType: "script",
success: function (msg) { // // success: function (msg) {
$("#"+start_modal_with_id).modal('show'); }, // // $("#"+start_modal_with_id).modal('show'); },
error: function(){ // // error: function(){
alert("ERROR"); // // alert("ERROR");
} // // }
}); // // });
// url = "/panel/news/back_end/news_bulletins/preview?preview=true"
return false // // alert(url)
}); // form.attr("action",url);
// form.submit();
// //return false;
// });
var clicked_what = null;
$("button.post_preview").click(function(){
clicked_what = $(this);
$("form.nccu_ajax_form").ajaxSubmit({
beforeSubmit: function(a,f,o){
$("#main-wrap").after("<span id='show_preview'></span>");
o.dataType = 'script';
o.url = clicked_what.attr("url");
}
});
})
// $("form.nccu_ajax_form").ajaxForm({
// beforeSubmit: function(a,f,o) {
// // if(clicked_what.hasClass("post_preview")){
// // $("#main-wrap").after("<span id='show_preview'></span>");
// // o.dataType = 'script';
// // o.url = clicked_what.attr("url");
// // }
// },
// success: function(data) {
// // if(!clicked_what.hasClass("post_preview")){
// // window.location = data.redirect_url;
// // }
// }
// })
$("a.preview_trigger").click(function(){ $("a.preview_trigger").click(function(){
$("#main-wrap").after("<span id='show_preview'></span>"); $("#main-wrap").after("<span id='show_preview'></span>");

View File

@ -0,0 +1,23 @@
module Admin::WebComponentHelper
include ActionView::Helpers::TagHelper
def alert_block_tag(title="",context="",*args)
content_tag(:div,:class=>"alert alert-block alert-error fade in") do
a = ActiveSupport::SafeBuffer.new
a << button_tag( 'x',:class=>"close",:data=>{:dismiss=>"alert"}) if (args.first[:close] rescue false)
a << content_tag(:h4,:class=>"alert-heading") do
title
end
a << content_tag(:p) do
context
end
# TODO : 可以提供更多功能
# a << content_tag(:p) do
# b = link_to("Take this action","",:class=>"btn btn-danger")
# b << link_to("Or do this","",:class=>"btn")
# b
# end
end
end
end

View File

@ -2,12 +2,81 @@ class Preview
include Mongoid::Document include Mongoid::Document
include Mongoid::Timestamps include Mongoid::Timestamps
field :object, :type => Hash # field :object_f, :type => Hash
field :object, :type=> Hash
field :preview_at_link field :preview_at_link
field :expired_at , :type => DateTime field :expired_at , :type => DateTime
field :link_args, :type => Array field :link_args, :type => Array
field :object_class_type field :object_class_type
has_many :preview_files, :autosave => true, :dependent => :destroy
# def object=(params)
# save_upload_temp_link(params,"news_bulletin_files_attributes") #unless params[]
# self.object_f = params
# end
# def object
# return object_f
# end
# def save_upload_temp_link(params,field_name = "bulletin_files_attributes")
# image = preview_files.build(:file=>params[:image])
# params[:image] = image.id
# params[field_name].each_with_index do |item,index|
# bfa = preview_files.build(:file=>params[field_name][index.to_s][:file])
# params[field_name][index.to_s] = bfa.id
# end unless params[field_name].nil?
# end
# def dig_in_hash(hash,paths_ary)
# hash.each_pair do |key,in_hash|
# if in_hash.kind_of? Array
# dig_in_array(hash,paths_ary)
# elsif in_hash.kind_of? Hash
# dig_in_hash(hash,paths_ary)
# else
# puts("\n End Node: \t #{paths_ary.join } #{in_hash.class} : #{key}##{in_hash}")
# end
# end
# end
# def dig_in_array(array,paths_ary)
# array.each do |item|
# if item.kind_of? Array
# dig_in_array(hash,paths_ary)
# elsif item.kind_of? Hash
# dig_in_hash(hash,paths_ary)
# else
# puts("\n End Node: \t #{paths_ary.join } #{item.class} : {item}")
# end
# end
# end
# def dig_in_hash_old(hash,paths_ary)
# hash.each_pair do |k,in_hash|
# if (!in_hash.kind_of? Array and !in_hash.kind_of? Hash)
# #p "UploadedFile : #{in_hash.is_a? ActionDispatch::Http::UploadedFile}"
# #in_hash = "no file" if in_hash.is_a? ActionDispatch::Http::UploadedFile
# #in_hash.select{|key,hash| hash.is_a? ActionDispatch::Http::UploadedFile}
# puts("\n End Node:# \n")
# p "#{paths_ary.join } #{in_hash.class} : #{in_hash}"
# #p "UploadedFile(#{in_hash}) : #{in_hash.is_a? ActionDispatch::Http::UploadedFile}"
# else
# if (!in_hash.first.kind_of? Array and !in_hash.first.kind_of? Hash)
# paths_ary << "[#{in_hash.first}]"
# end
# puts("\n Go Down [#{in_hash.first}]\n")
# dig_in_hash(in_hash,paths_ary)
# puts("\n Go Out \n")
# end
# puts "This is last"
# paths_ary.pop
# end
# end
def get_arg_hash def get_arg_hash
object.slice(*link_args).inject({}){|la,(k,v)| la[k.to_sym] = v; la} object.slice(*link_args).inject({}){|la,(k,v)| la[k.to_sym] = v; la}
end end
@ -19,7 +88,15 @@ class Preview
end end
def get_virtual_object def get_virtual_object
eval(self.object_class_type).new object virtual_object = eval(self.object_class_type).new object
preview_files.each do |file|
if file.file_in_array
eval("virtual_object.#{file.field_name_for_rebuild}.build :file=>file.file")
else
eval("virtual_object.#{file.field_name_for_rebuild} = file.file")
end
end
virtual_object
end end
end end

View File

@ -0,0 +1,19 @@
class PreviewFile
include Mongoid::Document
include Mongoid::Timestamps
mount_uploader :file, AssetUploader
field :title, localize: true
field :description, localize: true
field :field_name_for_rebuild
field :file_in_array , :type => Boolean,default: false
# field :to_save, :type => Boolean
field :should_destroy, :type => Boolean
belongs_to :preview
# embedded_in :news_bulletin
end

View File

@ -4,7 +4,7 @@
<h3><%= t("modal.preview") %></h3> <h3><%= t("modal.preview") %></h3>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<p class="news_bulletin_slideshow"> <p class="">
<iframe src=<%= @preview_obj.get_preview_link %> style="width:1024px;height:300px" > <iframe src=<%= @preview_obj.get_preview_link %> style="width:1024px;height:300px" >
</iframe> </iframe>

View File

@ -0,0 +1 @@
window.location = "<%= @info[:redirect_url]%>";

View File

@ -0,0 +1,12 @@
<% if !request.xhr? %>
<textarea>
<% end %>
$('#show_preview').html('<%=escape_javascript(render :partial=>"/shared/preview/modal_preview") %>');
var start_modal_with_id = "<%= @preview_obj.id %>";
$("#"+start_modal_with_id).css("width","1050px");
$("#"+start_modal_with_id).css("height","768px");
$("#"+start_modal_with_id).css("margin","-270px 0 0 -550px");
$("#"+start_modal_with_id).modal();
<% if !request.xhr? %>
</textarea>
<% end %>

View File

@ -1,5 +1,6 @@
$('#show_preview').html('<%=escape_javascript(render :partial=>"modal_preview") %>'); $('#show_preview').html('<%=escape_javascript(render :partial=>"/shared/preview/modal_preview") %>');
var start_modal_with_id = "<%= @preview_obj.id %>"; var start_modal_with_id = "<%= @preview_obj.id %>";
$("#"+start_modal_with_id).css("width","1050px"); $("#"+start_modal_with_id).css("width","1050px");
$("#"+start_modal_with_id).css("height","768px"); $("#"+start_modal_with_id).css("height","768px");
$("#"+start_modal_with_id).css("margin","-270px 0 0 -550px"); $("#"+start_modal_with_id).css("margin","-270px 0 0 -550px");
$("#"+start_modal_with_id).modal();

View File

@ -14,6 +14,7 @@ en:
cant_empty_star: Cannot be empty (*) cant_empty_star: Cannot be empty (*)
create_fail: Creation failed create_fail: Creation failed
create: Create create: Create
continued: continued
delete: Delete delete: Delete
desktop: Desktop desktop: Desktop
disable: Disable disable: Disable
@ -43,6 +44,7 @@ en:
search_nccu: Search NCCU search_nccu: Search NCCU
show: Show show: Show
submit: Submit submit: Submit
preview: Preview
sure?: Are you sure? sure?: Are you sure?
update: Update update: Update
update_failed: Update failed update_failed: Update failed

View File

@ -1,5 +1,22 @@
zh_tw: zh_tw:
mongoid:
models:
news_bulletin: 新聞
bulletin: 公告
ad_banner: 廣告輪播
web_link: 連結管理
attributes:
news_bulletin:
title: 新聞標題
bulletin:
title: 公告標題
ad_banner:
title: 標題
web_link:
title: 名稱
url: 路徑
_locale: 中文 _locale: 中文
me: me:
@ -9,6 +26,7 @@ zh_tw:
browse: 選擇檔案 browse: 選擇檔案
cancel: 取消 cancel: 取消
cant_empty_star: 不能為空 (*) cant_empty_star: 不能為空 (*)
continued: 詳讀全文
create: 新增 create: 新增
create_fail: 創建失敗 create_fail: 創建失敗
delete: 刪除 delete: 刪除
@ -40,6 +58,7 @@ zh_tw:
search_nccu: 搜尋政大 search_nccu: 搜尋政大
show: 顯示 show: 顯示
submit: 送出 submit: 送出
preview: 預覽
sure?: 您肯定嗎? sure?: 您肯定嗎?
update: 更新 update: 更新
update_failed: 更新失敗 update_failed: 更新失敗
@ -489,6 +508,7 @@ zh_tw:
body: "以下欄位發生問題:" body: "以下欄位發生問題:"
errors: errors:
at_least_one: 至少要有一個
format: "%{attribute} %{message}" format: "%{attribute} %{message}"
messages: messages:
inclusion: "沒有包含在列表中" inclusion: "沒有包含在列表中"

View File

@ -1,14 +1,14 @@
module OrbitCoreLib module OrbitCoreLib
module Preview module Preview
def self.included(base) def self.included(base)
base.instance_eval("field :is_preview,type: Boolean,:default => false")
base.instance_eval("scope :not_preview,where(:is_preview=>false)") # base.instance_eval("field :is_preview,type: Boolean,:default => false")
base.define_singleton_method :new_preview do |*args| # base.instance_eval("scope :not_preview,where(:is_preview=>false)")
temp_obj = self.new(args.first) base.class_eval ("
temp_obj.is_preview = true def to_preview
temp_obj.save(:validate => false) rescue raise 'Developer,please override to_preview method'
temp_obj end
end ")
end end
end end

View File

@ -13,10 +13,11 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
before_filter :for_app_sub_manager,:except => [:index,:show,:get_sorted_and_filtered_bulletins] before_filter :for_app_sub_manager,:except => [:index,:show,:get_sorted_and_filtered_bulletins]
def preview def preview
debugger #@preview_obj = Preview.create(:object=>params[:news_bulletin],:expired_at=>DateTime.now+30.minutes,:preview_at_link=>"panel_news_front_end_news_bulletin_path",:object_class_type=>"NewsBulletin")
a=1 bulletin = Bulletin.new params
@preview_obj = bulletin.to_preview
@bulletin = Bulletin.new_preview(params[:bulletin]) @preview_obj.save
render '/shared/preview/preview.js.erb'
end end
def index def index
@ -75,8 +76,13 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
# GET /bulletins/new # GET /bulletins/new
# GET /bulletins/new.xml # GET /bulletins/new.xml
def new def new
@bulletin = Bulletin.new(:postdate => DateTime.now) if(session[:in_validate_object].blank?)
@bulletin = Bulletin.new(:postdate => DateTime.now)
else
@bulletin = session[:in_validate_object]
session[:in_validate_object] = {}
end
@link_url = panel_announcement_back_end_bulletins_path @link_url = panel_announcement_back_end_bulletins_path
get_tags get_tags
respond_to do |format| respond_to do |format|
@ -139,10 +145,20 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('bulletin.create_bulletin_success')) } format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('bulletin.create_bulletin_success')) }
format.xml { render :xml => @bulletin, :status => :created, :location => @bulletin } format.xml { render :xml => @bulletin, :status => :created, :location => @bulletin }
format.js # format.js
format.js {
@info = {"success"=>"true","redirect_url"=>panel_announcement_back_end_bulletins_url}
flash[:notice] = t('bulletin.create_bulletin_success')
render "/shared/preview/after_create.js.erb"
}
else else
format.html { render :action => "new" } format.html { render :action => "new" }
format.xml { render :xml => @bulletin.errors, :status => :unprocessable_entity } format.xml { render :xml => @bulletin.errors, :status => :unprocessable_entity }
format.js {
@info = {"success"=>"false","redirect_url"=>new_panel_announcement_back_end_bulletin_url(:bulletin => @bulletin)}
session[:in_validate_object] = @bulletin
render "/shared/preview/after_create.js.erb"
}
end end
end end
@ -344,7 +360,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
def get_tags def get_tags
module_app = ModuleApp.first(:conditions => {:key => 'announcement'}) module_app = ModuleApp.first(:conditions => {:key => 'announcement'})
@tags = Tag.all(:conditions => {:module_app_id => module_app.id}).order_by(I18n.locale, :asc) @tags = Tag.all(:conditions => {:module_app_id => module_app.id}).order_by(I18n.locale, :asc) rescue []
end end
end end

View File

@ -69,7 +69,8 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
end end
def preview_content def preview_content
@bulletin = Bulletin.find params[:id] @bulletin = Bulletin.find params[:id] rescue nil
@bulletin = Preview.find(params[:id]).get_virtual_object if @bulletin.nil?
get_categorys get_categorys
end end

View File

@ -197,6 +197,18 @@ class Bulletin
tags.order_by(I18n.locale, :asc) tags.order_by(I18n.locale, :asc)
end end
def to_preview
preview_object = Preview.new(:expired_at=>DateTime.now+30.minutes,:preview_at_link=>"panel_announcement_front_end_bulletin_path",:object_class_type=>"Bulletin")
self.bulletin["bulletin_files_attributes"].each_with_index do |atr,idx|
preview_object.preview_files.build(:file=>self.bulletin["bulletin_files_attributes"][idx.to_s],:field_name_for_rebuild=>'bulletin_files',:file_in_array=>true)
end unless self.bulletin["bulletin_files_attributes"].nil?
preview_object.object = self.bulletin.except("bulletin_files_attributes")
preview_object
end
protected protected
def check_deadline def check_deadline
@ -223,4 +235,5 @@ class Bulletin
self.tag_ids.delete('') self.tag_ids.delete('')
end end
end end

View File

@ -1,5 +1,7 @@
<% # encoding: utf-8 %> <% # encoding: utf-8 %>
<% content_for :page_specific_javascript do -%>
<%= javascript_include_tag "inc/modal-preview" %>
<% end -%>
<!--Widget start--> <!--Widget start-->
<%= f.error_messages %> <%= f.error_messages %>
@ -238,8 +240,8 @@
</div> </div>
<div class="form-actions"> <div class="form-actions">
<%= link_to t('preview'),panel_announcement_back_end_bulletin_preview_path, :class=>"btn" %> <%= button_tag t("preview"), :name=>"commit",:class=>'btn post_preview two_btn',:type=>:button,:url=>preview_panel_announcement_back_end_bulletins_path %>
<%= f.submit t('submit'), :class=>'btn btn-primary' %> <%= f.submit t('submit'), :class=>'btn btn-primary two_btn' %>
<%= link_to t('cancel'), get_go_back, :class=>"btn" %> <%= link_to t('cancel'), get_go_back, :class=>"btn" %>
</div> </div>

View File

@ -1,5 +1,5 @@
<div id="poststuff"> <div id="poststuff">
<%= form_for @bulletin, :url => panel_announcement_back_end_bulletins_path do |f| %> <%= form_for @bulletin, :url => panel_announcement_back_end_bulletins_path,:html=>{ :class=>"nccu_ajax_form"} do |f| %>
<%= render :partial => 'form', :locals => {:f => f} %> <%= render :partial => 'form', :locals => {:f => f} %>
<% end %> <% end %>
</div> </div>

View File

@ -11,7 +11,11 @@ class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController
end end
def preview def preview
@preview_obj = Preview.create(:object=>params[:news_bulletin],:expired_at=>DateTime.now+30.minutes,:preview_at_link=>"panel_news_front_end_news_bulletin_path",:object_class_type=>"NewsBulletin") #@preview_obj = Preview.create(:object=>params[:news_bulletin],:expired_at=>DateTime.now+30.minutes,:preview_at_link=>"panel_news_front_end_news_bulletin_path",:object_class_type=>"NewsBulletin")
news_bulletin = NewsBulletin.new params
@preview_obj = news_bulletin.to_preview
@preview_obj.save
render '/shared/preview/preview.html.erb', :layout=>false
end end
def index def index
@ -88,9 +92,12 @@ class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController
# GET /news_bulletins/new # GET /news_bulletins/new
# GET /news_bulletins/new.xml # GET /news_bulletins/new.xml
def new def new
if(session[:in_validate_object].blank?)
@news_bulletin = NewsBulletin.new @news_bulletin = NewsBulletin.new
else
@news_bulletin = session[:in_validate_object]
session[:in_validate_object] = {}
end
@link_url = panel_news_back_end_news_bulletins_path @link_url = panel_news_back_end_news_bulletins_path
# @news_bulletin.news_bulletin_files.build # @news_bulletin.news_bulletin_files.build
@ -120,7 +127,6 @@ class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController
# POST /news_bulletins # POST /news_bulletins
# POST /news_bulletins.xml # POST /news_bulletins.xml
def create def create
binding.pry
get_tags get_tags
if params[:news_bulletin_link] if params[:news_bulletin_link]
@ -161,7 +167,8 @@ class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController
expire_page(:controller=>'panel/news/widget/news_bulletins' , :action=>'home_banner') expire_page(:controller=>'panel/news/widget/news_bulletins' , :action=>'home_banner')
format.html { redirect_to(panel_news_back_end_news_bulletins_url, :notice => t('news_bulletin.create_news_bulletin_success')) } format.html { redirect_to(panel_news_back_end_news_bulletins_url, :notice => t('news_bulletin.create_news_bulletin_success')) }
format.xml { render :xml => @news_bulletin, :status => :created, :location => @news_bulletin } format.xml { render :xml => @news_bulletin, :status => :created, :location => @news_bulletin }
format.js format.js
#format.json {render :json => {"success"=>"true","redirect_url"=>panel_news_back_end_news_bulletins_url,"notice" => t('news_bulletin.create_news_bulletin_success')}}
else else
format.html { render :action => "new" } format.html { render :action => "new" }
format.xml { render :xml => @news_bulletin.errors, :status => :unprocessable_entity } format.xml { render :xml => @news_bulletin.errors, :status => :unprocessable_entity }
@ -379,7 +386,7 @@ class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController
def get_tags def get_tags
module_app = ModuleApp.first(:conditions => {:key => 'news'}) module_app = ModuleApp.first(:conditions => {:key => 'news'})
@tags = Tag.all(:conditions => {:module_app_id => module_app.id}).order_by(I18n.locale, :asc) @tags = Tag.all(:conditions => {:module_app_id => module_app.id}).order_by(I18n.locale, :asc) rescue []
end end
end end

View File

@ -237,6 +237,18 @@ class NewsBulletin
def sorted_tags def sorted_tags
tags.order_by(I18n.locale, :asc) tags.order_by(I18n.locale, :asc)
end end
def to_preview
preview_object = Preview.new(:expired_at=>DateTime.now+30.minutes,:preview_at_link=>"panel_news_front_end_news_bulletin_path",:object_class_type=>"NewsBulletin")
preview_object.preview_files.build(:file=>self.news_bulletin["image"],:field_name_for_rebuild=>'image')
self.news_bulletin["news_bulletin_files_attributes"].each_with_index do |atr,idx|
preview_object.preview_files.build(:file=>self.news_bulletin["news_bulletin_files_attributes"][idx.to_s],:field_name_for_rebuild=>'news_bulletin_files',:file_in_array=>true)
end unless self.news_bulletin["news_bulletin_files_attributes"].nil?
preview_object.object = self.news_bulletin.except("news_bulletin_files_attributes","image")
preview_object
end
protected protected
@ -260,4 +272,6 @@ class NewsBulletin
self.tag_ids.delete('') self.tag_ids.delete('')
end end
end end

View File

@ -4,7 +4,6 @@
<% end -%> <% end -%>
<!--Widget start--> <!--Widget start-->
<%= f.error_messages %> <%= f.error_messages %>
<div id="sub-wiget"> <div id="sub-wiget">
<div id="widget-picture" class="widget-box"> <div id="widget-picture" class="widget-box">
<div class="widget-action clear"> <div class="widget-action clear">
@ -15,7 +14,6 @@
<div class="control-group"> <div class="control-group">
<!-- <img class="pull-left upload-picture" src="/assets/default-img.png" /> --> <!-- <img class="pull-left upload-picture" src="/assets/default-img.png" /> -->
<div class="upload-picture"> <div class="upload-picture">
<!--請程式務必將圖片尺寸加入到行內裡-->
<% if @news_bulletin.image %> <% if @news_bulletin.image %>
<%= image_tag @news_bulletin.image rescue ''%> <%= image_tag @news_bulletin.image rescue ''%>
<% else %> <% else %>
@ -132,7 +130,7 @@
<div id="post-body"> <div id="post-body">
<div id="post-body-content" class="clear"> <div id="post-body-content" class="clear">
<%= alert_block_tag(t("activerecord.errors.template.body"),session[:in_validate_object].errors.messages) unless session[:in_validate_object].blank? %>
<%= f.label :unit_list_for_anc,t('news.news_bulletin.unit_name')%> <%= f.label :unit_list_for_anc,t('news.news_bulletin.unit_name')%>
<%= f.select :unit_list_for_anc_id,@unit_list_for_anc.collect{|t| [ t.title, t.id ]}, {:prompt => t("news.news_bulletin.ut_prompt")}, :class => "input-medium" %> <%= f.select :unit_list_for_anc_id,@unit_list_for_anc.collect{|t| [ t.title, t.id ]}, {:prompt => t("news.news_bulletin.ut_prompt")}, :class => "input-medium" %>
@ -279,10 +277,10 @@
</div> </div>
<!--Post End--> <!--Post End-->
</div> </div>
<div class="form-actions"> <div class="form-actions">
<%= link_to t('preview'),preview_panel_news_back_end_news_bulletins_path, :class=>"btn post_preview",:method=>:post , :remote => true%> <%= button_tag t("preview"), :name=>"commit", :class=>'btn post_preview two_btn',:type=>:button, :url=>preview_panel_news_back_end_news_bulletins_path %>
<%= f.submit t('submit'), :class=>'btn btn-primary' %> <%= f.submit t('submit'), :class=>'btn btn-primary two_btn' %>
<%= link_to t('cancel'), get_go_back, :class=>"btn" %> <%= link_to t('cancel'), get_go_back, :class=>"btn" %>
</div> </div>

View File

@ -1,5 +1,5 @@
<div id="poststuff"> <div id="poststuff">
<%= form_for @news_bulletin, :url => panel_news_back_end_news_bulletins_path do |f| %> <%= form_for @news_bulletin, :url => panel_news_back_end_news_bulletins_path,:html=>{ :class=>"nccu_ajax_form"} do |f| %>
<%= render :partial => 'form', :locals => {:f => f} %> <%= render :partial => 'form', :locals => {:f => f} %>
<% end %> <% end %>
</div> </div>

View File

@ -2,8 +2,8 @@
<h1 class="h1"><%= @news_bulletin.title %></h1> <h1 class="h1"><%= @news_bulletin.title %></h1>
<div class="info"> <div class="info">
<div class="info1"> <div class="info1">
<span class="pull-right"><%= dislpay_view_count(@news_bulletin) %></span> <span class="pull-right"><%= dislpay_view_count(@news_bulletin) rescue ""%></span>
<span class="date"><%= display_date(@news_bulletin.postdate) %></span> <span class="date"><%= display_date(@news_bulletin.postdate) rescue "" %></span>
<% unit = @news_bulletin.unit_list_for_anc.title rescue nil %> <% unit = @news_bulletin.unit_list_for_anc.title rescue nil %>
<%= " | " if unit %> <%= " | " if unit %>
<%= link_to unit, panel_news_front_end_index_news_bulletins_by_unit_path(:name=>@news_bulletin.unit_list_for_anc_id) unless unit.blank?%> <%= link_to unit, panel_news_front_end_index_news_bulletins_by_unit_path(:name=>@news_bulletin.unit_list_for_anc_id) unless unit.blank?%>

View File

@ -21,7 +21,7 @@
<li> <li>
<div class="news_img"><%= link_to image_tag(post.image.url, :size => "290x130"), panel_news_front_end_news_bulletin_path(post, :category_id => post.news_bulletin_category_id) %></div> <div class="news_img"><%= link_to image_tag(post.image.url, :size => "290x130"), panel_news_front_end_news_bulletin_path(post, :category_id => post.news_bulletin_category_id) %></div>
<h3 class="h3 news_title"><%= link_to post.title, panel_news_front_end_news_bulletin_path(post, :category_id => post.news_bulletin_category_id) %></h3> <h3 class="h3 news_title"><%= link_to post.title, panel_news_front_end_news_bulletin_path(post, :category_id => post.news_bulletin_category_id) %></h3>
<p class="news_wrap"><%= post.subtitle.html_safe rescue '' %></p> <p class="news_wrap"><%= truncate((post.subtitle rescue '') ,:length => 200).html_safe %></p>
</li> </li>
<% end %> <% end %>
</ul> </ul>

View File

@ -3,7 +3,7 @@ class Panel::WebResource::BackEnd::WebLinksController < OrbitBackendController
before_filter :authenticate_user! before_filter :authenticate_user!
# before_filter :for_app_manager,:except => [:index,:show] # before_filter :for_app_manager,:except => [:index,:show]
before_filter :for_app_sub_manager,:except => [:index] before_filter :for_app_sub_manager,:except => [:index]
before_filter :only => [ :new,:edit,:update] do |controller| before_filter :only => [ :new,:edit,:update,:create] do |controller|
controller.get_categorys('WebLinkCategory') controller.get_categorys('WebLinkCategory')
end end
@ -74,7 +74,7 @@ class Panel::WebResource::BackEnd::WebLinksController < OrbitBackendController
# POST /web_links.xml # POST /web_links.xml
def create def create
@web_link = WebLink.new(params[:web_link]) @web_link = WebLink.new(params[:web_link])
get_tags
@web_link.create_user_id = current_user.id @web_link.create_user_id = current_user.id
@web_link.update_user_id = current_user.id @web_link.update_user_id = current_user.id
@ -159,7 +159,7 @@ class Panel::WebResource::BackEnd::WebLinksController < OrbitBackendController
def get_tags def get_tags
module_app = ModuleApp.first(:conditions => {:key => 'web_resource'}) module_app = ModuleApp.first(:conditions => {:key => 'web_resource'})
@tags = Tag.all(:conditions => {:module_app_id => module_app.id}) @tags = Tag.all(:conditions => {:module_app_id => module_app.id}) rescue []
end end
end end

View File

@ -52,7 +52,7 @@ class Panel::WebResource::Widget::WebLinksController < OrbitWidgetController
def get_tags def get_tags
module_app = ModuleApp.first(:conditions => {:key => 'web_resource'}) module_app = ModuleApp.first(:conditions => {:key => 'web_resource'})
@tags = Tag.all(:conditions => {:module_app_id => module_app.id}) @tags = Tag.all(:conditions => {:module_app_id => module_app.id}) rescue []
end end
end end