Changeset 5794
- Timestamp:
- 06/12/08 08:43:36 (2 months ago)
- Files:
-
- components/news/trunk/news/_install/db/001_news_schema_001.rb (modified) (1 diff)
- components/news/trunk/news/_install/db/002_news_schema_002.rb (modified) (1 diff)
- components/news/trunk/news/_install/javascripts/news.js (modified) (7 diffs)
- components/news/trunk/news/_install/javascripts/src_news.js (modified) (4 diffs)
- components/news/trunk/news/admin_category/list.rhtml (modified) (2 diffs)
- components/news/trunk/news/admin_category/main.rhtml (modified) (1 diff)
- components/news/trunk/news/admin_category_controller.rb (modified) (2 diffs)
- components/news/trunk/news/admin_controller.rb (modified) (1 diff)
- components/news/trunk/news/block/list.rhtml (modified) (1 diff)
- components/news/trunk/news/common_helper.rb (modified) (3 diffs)
- components/news/trunk/news/languages/chinese.rb (modified) (4 diffs)
- components/news/trunk/news/news/_item_return_confirm_window.rhtml (modified) (1 diff)
- components/news/trunk/news/news/_main_news_create_window.rhtml (modified) (3 diffs)
- components/news/trunk/news/news/_news_content.rhtml (modified) (2 diffs)
- components/news/trunk/news/news/show_news.rhtml (modified) (5 diffs)
- components/news/trunk/news/news/update.rjs (modified) (1 diff)
- components/news/trunk/news/news_category.rb (modified) (1 diff)
- components/news/trunk/news/news_controller.rb (modified) (10 diffs)
- components/news/trunk/news/news_item.rb (modified) (6 diffs)
- components/news/trunk/news/news_lib.rb (modified) (2 diffs)
- components/news/trunk/news/preload/_preload.rhtml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
components/news/trunk/news/_install/db/001_news_schema_001.rb
r3433 r5794 33 33 # Initial Data 34 34 #################################################################################################################### 35 News::NewsConfig.create :approval => true, :news_per_page => 10, :news_per_block => 5, :new_days => 535 News::NewsConfig.create :approval => true, :news_per_page => RubricksLib::LIST_PER_PAGE, :news_per_block => RubricksLib::LIST_PER_PAGE_IN_WINDOW, :new_days => 5 36 36 end 37 37 components/news/trunk/news/_install/db/002_news_schema_002.rb
r5760 r5794 1 1 class NewsSchema002 < ActiveRecord::Migration 2 2 def self.up 3 add_column :news_items, :comment, :string, :limit => 255, :default => '',:null => false3 add_column :news_items, :return_comment, :string, :limit => 255, :default => '', :null => false 4 4 end 5 5 6 6 def self.down 7 remove_column :news_items, :comment7 remove_column :news_items, :return_comment 8 8 end 9 9 end components/news/trunk/news/_install/javascripts/news.js
r5760 r5794 50 50 $("print_news_id").value=_7; 51 51 },item_return_comment_save:function(_9){ 52 new Ajax.Updater("news_list_frame",this.url_item_return,{asynchronous:true,evalScripts:true,parameters:{id:_9,comment:$("news_item_return_comment").value},onLoaded:function(_a){ 52 rubricks.news.news_item_return_comment_window.close(); 53 new Ajax.Updater("news_list_frame",this.url_item_return,{asynchronous:true,evalScripts:true,parameters:{id:_9,return_comment:$("news_item_return_comment").value},onLoaded:function(_a){ 53 54 rubricks.common.rubricks_wait_message_close(); 54 55 },onLoading:function(_b){ … … 93 94 this.news_create_window.open(); 94 95 $("post_news_title").focus(); 95 },overflow_news_textarea:function(_14,_15,_16){96 if(overflow_textarea(_14,_15)){97 $("rubricks_message").innerHTML=_16;98 rubricks.common.rubricks_message_window.options.modal=false;99 rubricks.common.rubricks_message_window.center();100 rubricks.common.rubricks_message_window.open();101 return true;102 }103 96 },print_news:function(){ 104 97 if(Element.hasClassName("print_button","disabled")){ … … 107 100 rubricks.common.fire_submit("news_print_form","print_button"); 108 101 rubricks.common.rubricks_wait_message_close(); 109 },select_multiple_mode:function(_1 7){102 },select_multiple_mode:function(_14){ 110 103 this.news_list.makeMultiple(); 111 $(_1 7+"select_multiple_form").style.display="none";112 $(_1 7+"select_singular_form").style.display="block";113 $(_1 7+"news_delete_multiple_form").style.display="block";114 },select_news_list:function(_1 8){115 if(_1 8!=""&&this.news_list!=null){116 this.news_list.selectEffect(this.news_list.buildTrId(_1 8));117 this.show_news(_1 8,false);104 $(_14+"select_multiple_form").style.display="none"; 105 $(_14+"select_singular_form").style.display="block"; 106 $(_14+"news_delete_multiple_form").style.display="block"; 107 },select_news_list:function(_15){ 108 if(_15!=""&&this.news_list!=null){ 109 this.news_list.selectEffect(this.news_list.buildTrId(_15)); 110 this.show_news(_15,false); 118 111 } 119 112 },select_singular_mode:function(){ … … 121 114 this.news_list.makeSingular(); 122 115 } 123 },show_tab_button:function(_1 9){124 $(_1 9+"news_delete_multiple_form").style.display="none";125 $(_1 9+"select_singular_form").style.display="none";126 $(_1 9+"select_multiple_form").style.display="block";127 },show_news:function(_1 a,_1b){128 var _1 c={};129 if(_1 a!=""){130 this.change_style_to_normal(_1 a);131 _1 c={id:_1a};116 },show_tab_button:function(_16){ 117 $(_16+"news_delete_multiple_form").style.display="none"; 118 $(_16+"select_singular_form").style.display="none"; 119 $(_16+"select_multiple_form").style.display="block"; 120 },show_news:function(_17,_18){ 121 var _19={}; 122 if(_17!=""){ 123 this.change_style_to_normal(_17); 124 _19={id:_17}; 132 125 } 133 new Ajax.Updater("news_info",this.url_show_news,{asynchronous:true,evalScripts:true,parameters:_1 c,onLoaded:function(_1d){126 new Ajax.Updater("news_info",this.url_show_news,{asynchronous:true,evalScripts:true,parameters:_19,onLoaded:function(_1a){ 134 127 rubricks.common.rubricks_wait_message_close(); 135 },onLoading:function(_1 e){128 },onLoading:function(_1b){ 136 129 rubricks.common.rubricks_wait_message_open(); 137 130 }}); 138 131 },submit_create_news:function(){ 139 if(this.overflow_news_textarea("post_news_article",10000,this.msg_news_article_max)){140 return false;141 }142 132 this.close_news_create_window(); 143 133 },submit_edit_news:function(){ 144 if(this.overflow_news_textarea("news_article",10000,this.msg_news_article_max)){145 return false;146 }147 134 rubricks.common.fire_onsubmit("news_edit_form","news_edit_button","news_edit_area"); 148 135 }}); … … 158 145 $("news_category_name").focus(); 159 146 },category_window_render:function(id){ 160 new Ajax.Updater("news_category_window_frame",this.url_category_window,{asynchronous:true,evalScripts:true,parameters:{id:id},onLoaded:function(_ 21){147 new Ajax.Updater("news_category_window_frame",this.url_category_window,{asynchronous:true,evalScripts:true,parameters:{id:id},onLoaded:function(_1e){ 161 148 rubricks.common.rubricks_wait_message_close(); 162 },onLoading:function(_ 22){149 },onLoading:function(_1f){ 163 150 rubricks.common.rubricks_wait_message_open(); 164 151 }}); … … 170 157 } 171 158 },delete_confirm:function(){ 172 var _2 3=this.category_list.getSelected();173 if(_2 3.length<1){159 var _20=this.category_list.getSelected(); 160 if(_20.length<1){ 174 161 rubricks.common.rubricks_message_window_open(this.msg_category_not_selected,"error"); 175 162 }else{ 176 var id=parseInt(_2 3.first(),10);163 var id=parseInt(_20.first(),10); 177 164 if(id==1){ 178 165 rubricks.common.rubricks_message_window_open(this.err_delete_default,"error"); … … 184 171 } 185 172 },destroy:function(id){ 186 new Ajax.Request(this.url_delete,{asynchronous:true,evalScripts:true,parameters:{id:id},onLoaded:function(_2 6){173 new Ajax.Request(this.url_delete,{asynchronous:true,evalScripts:true,parameters:{id:id},onLoaded:function(_23){ 187 174 rubricks.common.rubricks_wait_message_close(); 188 },onLoading:function(_2 7){175 },onLoading:function(_24){ 189 176 rubricks.common.rubricks_wait_message_open(); 190 177 }}); 191 178 },edit:function(){ 192 var _2 8=this.category_list.getSelected();193 if(_2 8.length<1){179 var _25=this.category_list.getSelected(); 180 if(_25.length<1){ 194 181 rubricks.common.rubricks_message_window_open(this.msg_category_not_selected,"error"); 195 182 }else{ 196 this.category_window_render(_2 8.first());183 this.category_window_render(_25.first()); 197 184 } 198 185 }}); components/news/trunk/news/_install/javascripts/src_news.js
r5760 r5794 79 79 }, 80 80 item_return_comment_save: function(news_id){ 81 rubricks.news.news_item_return_comment_window.close(); 81 82 new Ajax.Updater( 82 83 'news_list_frame', … … 85 86 asynchronous: true, 86 87 evalScripts: true, 87 parameters: {id:news_id, comment:$('news_item_return_comment').value},88 parameters: {id:news_id, return_comment:$('news_item_return_comment').value}, 88 89 onLoaded: function(request){rubricks.common.rubricks_wait_message_close();}, 89 90 onLoading: function(request){rubricks.common.rubricks_wait_message_open();} … … 142 143 $('post_news_title').focus(); 143 144 }, 144 overflow_news_textarea: function(textarea_name, max_length, message){145 if(overflow_textarea(textarea_name, max_length)){146 $('rubricks_message').innerHTML = message;147 rubricks.common.rubricks_message_window.options.modal = false148 rubricks.common.rubricks_message_window.center();149 rubricks.common.rubricks_message_window.open();150 return true;151 }152 },153 145 print_news: function() { 154 146 if(Element.hasClassName('print_button', 'disabled')){ … … 199 191 }, 200 192 submit_create_news: function(){ 201 if(this.overflow_news_textarea('post_news_article', 10000, this.msg_news_article_max)){202 return false;203 }204 193 this.close_news_create_window(); 205 194 }, 206 195 submit_edit_news: function(){ 207 if(this.overflow_news_textarea('news_article', 10000, this.msg_news_article_max)){208 return false;209 }210 196 rubricks.common.fire_onsubmit('news_edit_form', 'news_edit_button', 'news_edit_area'); 211 197 } components/news/trunk/news/admin_category/list.rhtml
r5769 r5794 2 2 <thead> 3 3 <tr> 4 <th style="width:30%;"> 5 <%= hl('[_News_Common_CategoryName]') %> 6 </th> 7 <th style="width:70%;"> 8 <%= hl('[_Common_Description]') %> 9 </th> 4 <th style="width:30%;"><%= hl('[_News_Common_CategoryName]') %></th> 5 <th style="width:70%;"><%= hl('[_Common_Description]') %></th> 10 6 </tr> 11 7 </thead> … … 23 19 </tbody> 24 20 <% end %> 21 <br class="cl" /> components/news/trunk/news/admin_category/main.rhtml
r5769 r5794 18 18 <div id="news_category_frame"> 19 19 <%= simple_render_component('/news/admin_category', 'list', {}) %> 20 <br class="cl" />21 20 </div> 22 21 <% end %> components/news/trunk/news/admin_category_controller.rb
r5760 r5794 26 26 end 27 27 rescue Exception => ex 28 if ex.is_a?(RubricksError::Common::AjaxError) 29 raise ex 30 else 31 logger.error(ex.message) 32 logger.error(ex.backtrace.join("\n ")) 33 raise RubricksError::Common::AjaxError, '[_News_Category_ErrorDelete]' 34 end 28 log_rubricks_error(ex, '[_News_Category_ErrorDelete]') 35 29 end 36 30 flash[:news_message] = '[_News_Category_MessageDelete]' … … 50 44 end 51 45 rescue Exception => ex 52 if ex.is_a?(RubricksError::Common::AjaxError) 53 raise ex 54 else 55 logger.error(ex.message) 56 logger.error(ex.backtrace.join("\n ")) 57 error_message = (params[:todo][:id].blank?) ? '[_News_Category_ErrorCreate]' : '[_News_Category_ErrorUpdate]' 58 raise RubricksError::Common::AjaxError, error_message 59 end 46 error_message = (params[:todo][:id].blank?) ? '[_News_Category_ErrorCreate]' : '[_News_Category_ErrorUpdate]' 47 log_rubricks_error(ex, error_message) 60 48 end 61 49 flash[:news_message] ||= '[_News_Category_MessageUpdate]' components/news/trunk/news/admin_controller.rb
r5760 r5794 24 24 end 25 25 rescue Exception => ex 26 logger.error(ex.message) 27 logger.error(ex.backtrace.join("\n ")) 28 raise RubricksError::Common::AjaxError, '[_News_Admin_ErrorUpdate]' 26 log_rubricks_error(ex, '[_News_Admin_ErrorUpdate]') 29 27 end 30 28 flash[:news_message] = '[_News_Admin_MessageUpdate]' components/news/trunk/news/block/list.rhtml
r5760 r5794 14 14 <% end %> 15 15 </dl> 16 <%= pagination_remote_links(@pages, {:params => {:update => 'news_block_list_frame', :url => {:controller => '/news/block', :action => 'list'}}, :window_size => 3}, {:id => 'news_block_list_navigation_bottom'} ) %>16 <%= pagination_remote_links(@pages, {:params => {:update => 'news_block_list_frame', :url => {:controller => '/news/block', :action => 'list'}}, :window_size => 3}, {:id => 'news_block_list_navigation_bottom'}, :block => true) %> 17 17 <% end %> components/news/trunk/news/common_helper.rb
r5760 r5794 1 1 module News::CommonHelper 2 def administrator?3 News::NewsLib. administrator?2 def news_admin? 3 News::NewsLib.news_admin? 4 4 end 5 5 … … 48 48 end 49 49 50 def has_approval? (news)51 News::NewsLib.has_approval? (news)50 def has_approval? 51 News::NewsLib.has_approval? 52 52 end 53 53 … … 123 123 124 124 def tiny_mce_mode 125 if RubricksLib.permitted_current_component_function?('admin')|| RubricksConfig.get('site_attachment_available')125 if News::NewsLib.news_admin? || RubricksConfig.get('site_attachment_available') 126 126 return 'attachment' 127 127 else components/news/trunk/news/languages/chinese.rb
r5760 r5794 5 5 '_News_Admin_MessageUpdate' => 'æ°é»è®Ÿçœ®ä¿®æ¹å®æ¯ã', 6 6 '_News_Category_ErrorCreate' => 'åç±»å建倱莥ã', 7 '_News_Category_ErrorCreateMaxRecord' => ' ####',7 '_News_Category_ErrorCreateMaxRecord' => 'äžèœåå建åç±»ã', 8 8 '_News_Category_ErrorDelete' => 'åç±»å é€å€±èŽ¥ã', 9 '_News_Category_ErrorDeleteDefaultCategory' => ' ####',9 '_News_Category_ErrorDeleteDefaultCategory' => 'äžèœå é€åå§åç±»ã', 10 10 '_News_Category_ErrorUpdate' => 'å类修æ¹å€±èŽ¥ã', 11 11 '_News_Category_MessageCreate' => 'åç±»åå»ºå®æ¯ã', 12 12 '_News_Category_MessageDelete' => 'åç±»å é€å®æ¯ã', 13 '_News_Category_MessageDeleteConfirm' => ' ####',14 '_News_Category_MessageNotSelected' => ' ####',13 '_News_Category_MessageDeleteConfirm' => 'åŠæå 逿€åç±»ïŒå±äºæ€åç±»çæ°é»å°åœå±äºåå§åç±»ãç¡®å®èŠå é€åïŒ', 14 '_News_Category_MessageNotSelected' => 'æªéæ©åç±»ã', 15 15 '_News_Category_MessageUpdate' => 'å类修æ¹å®æ¯ã', 16 16 '_News_Common_Category' => 'åç±»', … … 58 58 '_News_News_ErrorPost' => 'æ°é»å衚倱莥ã', 59 59 '_News_News_ErrorReturnInvalidUser' => 'æçš¿çšæ·äžºæ æçšæ·ïŒæä»¥äžèœéåãåŠææç« éèŠä¿®æ£ïŒè¯·è¿è¡çŒèŸã', 60 '_News_News_ErrorUnread' => ' ####',60 '_News_News_ErrorUnread' => 'æ°é»æ¹äžºæªè¯»ç¶ææ¶åçé误ã', 61 61 '_News_News_ErrorUpdate' => 'æ°é»ä¿®æ¹å€±èŽ¥ã', 62 62 '_News_News_MessageConfirmUnread' => 'ç¡®å®èŠæ¹äžºæªè¯»ç¶æåïŒ', 63 '_News_News_MessageConfirmUpdate' => 'çŒèŸåéèŠéæ°æ¹å,ç¡®å®èŠçŒèŸå ?',63 '_News_News_MessageConfirmUpdate' => 'çŒèŸåéèŠéæ°æ¹å,ç¡®å®èŠçŒèŸåïŒ', 64 64 '_News_News_MessageDelete' => 'æ°é»å é€å®æ¯ã', 65 65 '_News_News_MessageNewsNotSelected' => 'è¯·éæ©æ°é»ã', … … 73 73 ¬åŒååžã', 74 74 '_News_News_MessageReturnComment' => 'å¯ä»¥èŸå 75 ¥æ³šé (å¯é)',75 ¥æ³šéã(å¯é)', 76 76 '_News_News_MessageReturned' => 'åŠææ³å次ç³è¯·æ¹åïŒè¯·[éæ°å衚]ã', 77 77 '_News_News_MessageThereAreReturnedNews' => 'æ%sæ¡è¢«éåçæ°é»ã请è¿è¡çŒèŸåéæ°å衚ã', … … 82 82 '_News_News_MessageUnableToReturnInvalidUser' => 'æçš¿çšæ·äžºæ æçšæ·ïŒæä»¥äžèœéåã', 83 83 '_News_News_MessageUnableToReturnGuestUser' => 'æçš¿çšæ·äžºå¿åçšæ·ïŒæä»¥äžèœéåã', 84 '_News_News_MessageUnread' => ' ####',84 '_News_News_MessageUnread' => 'æ°é»å·²æ¹äžºæªè¯»ç¶æã', 85 85 '_News_News_MessageUpdate' => 'æ°é»ä¿®æ¹å®æ¯ã', 86 86 }) components/news/trunk/news/news/_item_return_confirm_window.rhtml
r5760 r5794 4 4 <p><%= hl('[_News_News_MessageReturnComment]') %></p> 5 5 <%= validate 'news_item_return_comment', [{:length => '0..80'}] %> 6 <%= text_field 'news_item _return', 'comment', :size => 60, :class => 'input_text_inactive focus' %>7 < p id="news_item_return_comment_msg"></p>6 <%= text_field 'news_item', 'return_comment', :size => 60, :class => 'input_text_inactive focus' %> 7 <div id="news_item_return_comment_msg" class="validate_msg"></div> 8 8 <div class="rubricks_layout_buttons"> 9 <input type="button" id="news_return_submit_button" class="submit_inactive swap submit_normal" value="<%= hl('[_Common_Yes]') %>" onclick="rubricks.news.item_return_comment_save('<%=@news.id%>'); rubricks.news.news_item_return_comment_window.close();" />9 <input type="button" id="news_return_submit_button" class="submit_inactive swap submit_normal" value="<%= hl('[_Common_Yes]') %>" onclick="rubricks.news.item_return_comment_save('<%=@news.id%>');" /> 10 10 <input type="button" id="news_return_cancel_button" class="submit_inactive swap submit_normal" value="<%= hl('[_Common_No]') %>" onclick="rubricks.news.news_item_return_comment_window.close();" /> 11 11 <%= rollover_swap('news_return_submit_button', 'news_return_cancel_button') %> components/news/trunk/news/news/_main_news_create_window.rhtml
r5760 r5794 4 4 <% validate_form('news_create_button') do %> 5 5 <table class="rubricks_general_table"> 6 <tr class="table_dummy"> 7 <td style="width:20%;"></td> 8 <td style="width:80%;"></td> 9 </tr> 6 10 <tr class="rubricks_general_table_even"> 7 < %= validate 'post_news_title', [{:required => true}, {:length => '1..64'}] %>8 <td class="text_bold" style="width:20%;"><%= hl('[_Common_Title]') %></td>9 <td style="width:80%;">11 <td><span class="text_bold"><%= hl('[_Common_Title]') %></span></td> 12 <td> 13 <%= validate 'post_news_title', [{:required => true}, {:length => '1..64'}] %> 10 14 <%= text_field 'post_news', 'title', :size => 32, :class => 'input_text_inactive focus' %> 11 15 <span id="post_news_title_msg"></span> … … 13 17 </tr> 14 18 <tr class="rubricks_general_table_even"> 15 <td class="text_bold" style="width:20%;"><%= hl('[_Common_Category]') %></td>16 <td style="width:80%;">19 <td><span class="text_bold"><%= hl('[_News_Common_Category]') %></span></td> 20 <td> 17 21 <%= select_tag('post_news[category_id]', options_for_select(@select_options , @selected_category))%> 18 22 </td> 19 23 </tr> 20 24 <tr class="rubricks_general_table_even" <%= (RubricksLib.guest?) ? '' : 'style="display:none;"' %> > 21 <%= validate 'post_news_display_name', [{:required => true}, {:length => '1..32'}] %> 22 <td class="text_bold"><%= hl('[_Common_Poster]') %></td> 25 <td><span class="text_bold"><%= hl('[_Common_Poster]') %></span></td> 23 26 <td> 27 <%= validate 'post_news_display_name', [{:required => true}, {:length => '1..32'}] %> 24 28 <%= text_field 'post_news', 'display_name', :size => 32, :value => default_display_name, :class => 'input_text_inactive focus' %> 25 29 <span id="post_news_display_name_msg"></span> … … 27 31 </tr> 28 32 <tr class="rubricks_general_table_even"> 29 <td class="text_bold" colspan=2> 30 <%= hl("[_News_Common_Article]") %> 33 <td colspan="2"><span class="text_bold"><%= hl("[_News_Common_Article]") %></span></td> 34 </tr> 35 <tr class="rubricks_general_table_even"> 36 <td style="margin:0; padding:0;" colspan="2"> 31 37 <%= text_area 'post_news', 'article', :class => "rubricks_general_window", :style => "width:100%; height:300px;" %> 32 38 </td> components/news/trunk/news/news/_news_content.rhtml
r5760 r5794 1 <table class="rubricks_wysiwyg_table" id="news_table" <%= (msie?) ? 'style="table-layout:fixed;"' : '' %>>1 <table class="rubricks_wysiwyg_table" id="news_table"> 2 2 <tbody> 3 <tr style="height:0px;">3 <tr class="table_dummy"> 4 4 <td style="width:15%;"></td> 5 5 <td style="width:35%;"></td> … … 29 29 </tr> 30 30 <tr class="rubricks_general_table_even"> 31 <td class="rubricks_wysiwyg_table_td" style="font-weight: bold;" colspan="4"><%= hl("[_News_Common_Article]") %></td>31 <td class="rubricks_wysiwyg_table_td" colspan="4"><span class="text_bold"><%= hl("[_News_Common_Article]") %></span></td> 32 32 </tr> 33 33 <tr class="rubricks_general_table_even"> components/news/trunk/news/news/show_news.rhtml
r5760 r5794 13 13 </div> 14 14 <% end %> 15 <% if has_approval?(@news)%>15 <% if @news.approvable? %> 16 16 <%= form_tag({:controller => '/'}, {:id => 'news_return_form', :class => 'float_button_right_inactive swap'}) %> 17 17 <% if @user_effectiv_is_true == true %> … … 33 33 <div class="pointcolor_text news_additional_commont"> 34 34 <p><%= hl('[_News_News_MessageReturned]') %></p> 35 <% unless @news. comment.blank? %>36 <p><%= hl('[_News_Common_ReturnComment]', @news. comment) %></p>35 <% unless @news.return_comment.blank? %> 36 <p><%= hl('[_News_Common_ReturnComment]', @news.return_comment) %></p> 37 37 <% end %> 38 38 </div> … … 68 68 <% end %> 69 69 <table class="rubricks_general_table"> 70 <tr class="table_dummy"> 71 <td style="width:15%;"></td> 72 <td style="width:85%;"></td> 73 </tr> 70 74 <tr class="rubricks_general_table_even"> 71 < %= validate 'news_title', [{:required => true}, {:length => '1..64'}] %>72 <td class="text_bold" style="width:20%;"><%= hl('[_Common_Title]') %></td>73 <td style="width:80%;">75 <td><span class="text_bold"><%= hl('[_Common_Title]') %></span></td> 76 <td> 77 <%= validate 'news_title', [{:required => true}, {:length => '1..64'}] %> 74 78 <%= text_field 'news', 'title', :size => 32, :class => 'input_text_inactive focus' %> 75 79 <span id="news_title_msg"></span> … … 77 81 </tr> 78 82 <tr class="rubricks_general_table_even"> 79 <td class="text_bold" style="width:20%;"><%= hl('[_News_Common_Category]') %></td>80 <td style="width:80%;">83 <td><span class="text_bold"><%= hl('[_News_Common_Category]') %></span></td> 84 <td> 81 85 <%= select_tag('news[category_id]', options_for_select(@select_options, @selected_category)) %> 82 86 </td> 83 87 </tr> 84 88 <tr class="rubricks_general_table_even" <%= (@news.rubricks_user) ? 'style="display:none;"' : '' %>> 85 <%= validate 'news_display_name', [{:required => true}, {:length => '1..32'}] %> 86 <td class="text_bold"><%= hl('[_Common_Poster]') %></td> 89 <td><span class="text_bold"><%= hl('[_Common_Poster]') %></span></td> 87 90 <td> 91 <%= validate 'news_display_name', [{:required => true}, {:length => '1..32'}] %> 88 92 <%= text_field 'news', 'display_name', :size => 32, :class => 'input_text_inactive focus' %> 89 93 <span id="news_display_name_msg"></span> … … 91 95 </tr> 92 96 <tr class="rubricks_general_table_even"> 93 <td class="text_bold" colspan=2> 94 <%= hl("[_News_Common_Article]") %> 97 <td colspan="2"><span class="text_bold"><%= hl("[_News_Common_Article]") %></span></td> 98 </tr> 99 <tr class="rubricks_general_table_even"> 100 <td style="margin:0; padding:0;" colspan="2"> 95 101 <%= text_area 'news', 'article', :class => "rubricks_general_window", :style => "height:300px; width:100%;" %> 96 102 </td> components/news/trunk/news/news/update.rjs
r5760 r5794 4 4 else 5 5 page << %Q|Element.update('news_list_frame', #{simple_render_component('/news/news', 'news_list', {:id => @news_item.id}).to_json});| 6 page << %Q|Element.update('news_info', #{simple_render_component('/news/news', 'show_news', {:id => @news_item.id}).to_json});| if @news_item.accessable? 6 page << %Q|Element.update('news_info', #{simple_render_component('/news/news', 'show_news', {:id => @news_item.id}).to_json});| if @news_item.accessable? || News::NewsLib.has_approval? 7 7 end 8 8 page << %Q|rubricks.common.rubricks_feedback_msg.add("#{hl(flash[:news_message])}");| components/news/trunk/news/news_category.rb
r5760 r5794 30 30 31 31 def select_options(with_all = false) 32 options = self.find(:all).map{|nc| [ RubricksLib.hl(nc.name), nc.id]}32 options = self.find(:all).map{|nc| [nc.name, nc.id]} 33 33 options.unshift(self.default_select_option) if with_all 34 34 return options components/news/trunk/news/news_controller.rb
r5760 r5794 5 5 contents_approval_controller('/news/news_item', :approval_item => '[_News_Common_News]', :approval_action => 'main', :after_approve_action => 'news_approval', :after_return_action => 'news_approval', :approval_componemt => 'news', :approval_function => 'approval') 6 6 helper :'news/common' 7 authorize :access8 authorize :approval, :only => [:before_approve, :item_approve, :item_return, :after_approve, :after_return]9 authorize :post, :only => [:post,:create_news_window]10 7 11 8 def main … … 14 11 unless waiting_count == 0 15 12 @waiting_news_is_existent_true = true 16 if permitted_current_component_function?('approval')17 add_news_message( RubricksLib.hl('[_News_News_MessageThereAreWaitingApprovalNews]', waiting_count))18 else 19 add_news_message( RubricksLib.hl('[_News_News_MessageThereAreWaitingNews]', waiting_count))13 if News::NewsLib.has_approval? 14 add_news_message(['[_News_News_MessageThereAreWaitingApprovalNews]', waiting_count]) 15 else 16 add_news_message(['[_News_News_MessageThereAreWaitingNews]', waiting_count]) 20 17 end 21 18 end … … 23 20 unless returned_count == 0 24 21 @returned_news_is_existent_true = true 25 add_news_message( RubricksLib.hl('[_News_News_MessageThereAreReturnedNews]', returned_count))22 add_news_message(['[_News_News_MessageThereAreReturnedNews]', returned_count]) 26 23 end 27 24 end … … 32 29 end 33 30 34 def after_approve(item)35 add_news_message(RubricksLib.hl('[_Common_Approval_Success]', RubricksLib.hl('[_News_Common_News]')))36 end37 38 def after_return(item)39 item.update_attribute(:comment, params[:comment])40 add_news_message(RubricksLib.hl('[_Common_Approval_Return_Success]', RubricksLib.hl('[_News_Common_News]')))41 end42 43 def before_approve(item)44 item.publish_date = DateTime.now.strftime("%Y-%m-%d %H:%M:%S")45 end46 47 def before_return(item)48 news_user = RubricksUser.find_by_id(item.rubricks_user_id)49 raise RubricksError::Common::AjaxError, '[_News_News_ErrorReturnInvalidUser]' unless news_user.effective50 end51 52 31 def delete 53 check_permission 54 delete_news_id_list = (params[:delete_news_id]) ? params[:delete_news_id].split(',') : [] 55 raise RubricksError::Common::AjaxError, '[_News_News_ErrorDeleteWithoutPermission]' unless check_all_own_news(delete_news_id_list) 56 if delete_news_id_list && delete_news_id_list.first 57 news_item = News::NewsItem.find(delete_news_id_list.first) 58 if news_item.is_waiting? 59 page_name = 'waiting_page' 60 elsif news_item.is_returned? 61 page_name = 'returned_page' 62 else 63 page_name = 'public_page' 64 end 65 end 66 ActiveRecord::Base.transaction do 67 delete_news_id_list.each do |delete_news_id| 68 news = News::NewsItem.find(delete_news_id) 69 unless News::NewsLib.administrator? 70 unless news.is_approvaled? 71 unless check_own_news(delete_news_id) 72 raise RubricksError::User::UnauthorizedException, RubricksMessage::MESSAGE_I0002, caller 73 end 74 end 75 end 76 if News::NewsItem.destroy(delete_news_id) 32 check_permission(:post) 33 begin 34 ActiveRecord::Base.transaction do 35 params[:delete_news_id].split(',').each do |ni_id| 36 news = News::NewsItem.find(ni_id) 37 check_own_news(news) 38 news.destroy 77 39 add_news_message('[_News_News_MessageDelete]') 78 else 79 add_news_message('[_News_News_ErrorDelete]') 80 end 81 end 82 end 83 @detail_hide = true 40 end 41 end 42 @detail_hide = true 43 rescue RubricksError::User::UnauthorizedException => ex 44 raise RubricksError::Common::AjaxError, '[_News_News_ErrorDeleteWithoutPermission]' 45 rescue Exception => ex 46 log_rubricks_error(ex, '[_News_News_ErrorDelete]') 47 end 84 48 headers["Content-Type"] = "text/javascript" 85 49 render :template => '/news/news/update.rjs' 86 50 end 87 51 88 def file_accessable?(ra)89 return true if News::NewsLib.administrator?90 ral = ra.rubricks_attachment_links91 if ral.empty?92 return News::NewsLib.has_post?93 end94 news = News::NewsItem.find(ral.first.rubricks_attachable_id)95 return false unless news96 return news.accessable?97 end98 99 52 def news_approval 53 check_permission(:approve) 100 54 end 101 55 … … 113 67 114 68 def post 115 check_permission 116 nc = News::NewsConfig.instance117 ru = current_user118 @news_item = News::NewsItem.new119 @news_item.title = params[:post_news][:title]120 @news_item.display_name = params[:post_news][:display_name]121 @news_item.article = params[:post_news][:article]122 @news_item.rubricks_user_id = ru.id unless ru.id == RubricksUser::GUEST_USER_ID123 @news_item.approval = Acts::Approval::WAITING124 @news_item.news_category_id= params[:post_news][:category_id]125 if @news_item.is_waiting? && (!nc.approval || permitted_current_component_function?('approval') && @news_item.my_news?)126 @news_item.approval= Acts::Approval::APPROVALED127 @news_item.publish_date= DateTime.now.strftime("%Y-%m-%d %H:%M:%S")128 end129 count = News::NewsCategory.count(:conditions =>['id = ?', params[:post_news][:category_id]])130 if count == 0131 raise ActiveRecord::RecordNotFound132 else133 if @news_item.save69 check_permission(:post) 70 begin 71 ActiveRecord::Base.transaction do 72 ru = current_user 73 @news_item = News::NewsItem.new 74 @news_item.title = params[:post_news][:title] 75 @news_item.display_name = params[:post_news][:display_name] 76 @news_item.article = params[:post_news][:article] 77 @news_item.rubricks_user_id = ru.id unless ru.id == RubricksUser::GUEST_USER_ID 78 @news_item.news_category_id = params[:post_news][:category_id] 79 if News::NewsLib.has_approval? || !News::NewsConfig.instance.approval 80 @news_item.approval = Acts::Approval::APPROVALED 81 @news_item.publish_date = DateTime.now.strftime("%Y-%m-%d %H:%M:%S") 82 else 83 @news_item.approval = Acts::Approval::WAITING 84 end 85 count = News::NewsCategory.count(:conditions =>['id = ?', params[:post_news][:category_id]]) 86 raise ActiveRecord::RecordNotFound if count == 0 87 @news_item.save! 134 88 if @news_item.is_approvaled? 135 89 add_news_message('[_News_News_MessagePostToPublic]') … … 137 91 add_news_message('[_News_News_MessagePostToWaiting]') 138 92 end 139 else140 add_news_message('[_News_News_ErrorPost]')141 93 end 142 94 headers["Content-Type"] = "text/javascript" 143 95 render :template => '/news/news/update.rjs' 96 rescue Exception => ex 97 log_rubricks_error(ex, '[_News_News_ErrorPost]') 144 98 end 145 99 end … … 164 118 begin 165 119 ActiveRecord::Base.transaction do 166 news_already_read = News::NewsAlreadyRead.find(:first, :conditions => ["news_item_id = ? and rubricks_user_id = ? ", @ni_id, RubricksLib.current_user.id]) 167 news_already_read.destroy 168 end 169 rescue Exception => ex 170 logger.error(ex.message) 171 logger.error(ex.backtrace.join("\n ")) 172 raise RubricksError::Common::AjaxError, '[_News_News_ErrorUnread]' 173 end 174 flash[:news_message] = '[_News_News_MessageUnread]' 120 nar = News::NewsAlreadyRead.find(:first, :conditions => ["news_item_id = ? and rubricks_user_id = ? ", @ni_id, RubricksLib.current_user.id]) 121 nar.destroy unless nar.blank? 122 end 123 rescue Exception => ex 124 log_rubricks_error(ex, '[_News_News_ErrorUnread]') 125 end 126 add_news_message('[_News_News_MessageUnread]') 175 127 headers["Content-Type"] = "text/javascript" 176 128 render :template => '/news/news/return_unread_state.rjs' … … 182 134 if news_id 183 135 @news = News::NewsItem.find(news_id) rescue return 184 if !News::NewsLib.administrator? 185 if !@news.is_approvaled? 186 unless check_own_news(news_id) 187 raise RubricksError::User::UnauthorizedException, RubricksMessage::MESSAGE_I0002, caller 188 end 189 end 190 end 191 news_user = RubricksUser.find_by_id(@news.rubricks_user_id) 192 if news_user 193 if news_user.effective == true 194 @user_effectiv_is_true = true 195 else 196 @user_effectiv_is_true = false 197 end 198 end 136 check_own_news(@news) unless @news.is_approvaled? 137 news_user = RubricksUser.find_by_id(@news.rubricks_user_id) 138 @user_effectiv_is_true = (news_user.effective == true) unless news_user.blank? 199 139 if @news.is_approvaled? 200 @news_date_name = '[_News_Common_PublishDate]'201 @news_date = @news.publish_date.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]'))202 @edit_button_name = '[_Common_Edit]'203 @edit_submit_button_name = '[_Common_Save]'140 @news_date_name = '[_News_Common_PublishDate]' 141 @news_date = @news.publish_date.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]')) 142 @edit_button_name = '[_Common_Edit]' 143 @edit_submit_button_name = '[_Common_Save]' 204 144 elsif @news.is_waiting? 205 @news_date_name = '[_News_Common_PostedDate]'206 @news_date = @news.updated_on.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]'))207 @edit_button_name = '[_Common_Edit]'208 @edit_submit_button_name = '[_Common_Save]'145 @news_date_name = '[_News_Common_PostedDate]' 146 @news_date = @news.updated_on.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]')) 147 @edit_button_name = '[_Common_Edit]' 148 @edit_submit_button_name = '[_Common_Save]' 209 149 elsif @news.is_returned? 210 @news_date_name = '[_News_Common_PostedDate]'211 @news_date = @news.updated_on.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]'))212 @edit_button_name = '[_News_Common_Repost]'213 @edit_submit_button_name = '[_Common_Submit]'150 @news_date_name = '[_News_Common_PostedDate]' 151 @news_date = @news.updated_on.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]')) 152 @edit_button_name = '[_News_Common_Repost]' 153 @edit_submit_button_name = '[_Common_Submit]' 214 154 end 215 155 @news.read … … 221 161 222 162 def update 223 check_permission 224 nc = News::NewsConfig.instance 225 ru = current_user 226 news_id = params[:id] 227 unless check_own_news(news_id) 228 raise RubricksError::User::UnauthorizedException, RubricksMessage::MESSAGE_I0002, caller 229 end 230 @news_item = News::NewsItem.find(news_id) 231 before_approval = @news_item.approval 232 @news_item.title = params[:news][:title] 233 @news_item.display_name = params[:news][:display_name] 234 @news_item.article = params[:news][:article] 235 &nbs
