Changeset 5794

Show
Ignore:
Timestamp:
06/12/08 08:43:36 (2 months ago)
Author:
uta
Message:

2008/06/12 sync

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • components/news/trunk/news/_install/db/001_news_schema_001.rb

    r3433 r5794  
    3333    # Initial Data 
    3434    #################################################################################################################### 
    35     News::NewsConfig.create :approval => true, :news_per_page => 10, :news_per_block => 5, :new_days => 5 
     35    News::NewsConfig.create :approval => true, :news_per_page => RubricksLib::LIST_PER_PAGE, :news_per_block => RubricksLib::LIST_PER_PAGE_IN_WINDOW, :new_days => 5 
    3636  end 
    3737 
  • components/news/trunk/news/_install/db/002_news_schema_002.rb

    r5760 r5794  
    11class NewsSchema002 < ActiveRecord::Migration 
    22  def self.up 
    3     add_column    :news_items, :comment,   :string,    :limit => 255,   :default => '',    :null => false 
     3    add_column    :news_items, :return_comment, :string, :limit => 255, :default => '', :null => false 
    44  end 
    55 
    66  def self.down 
    7     remove_column :news_items, :comment 
     7    remove_column :news_items, :return_comment 
    88  end 
    99end 
  • components/news/trunk/news/_install/javascripts/news.js

    r5760 r5794  
    5050$("print_news_id").value=_7; 
    5151},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){ 
     52rubricks.news.news_item_return_comment_window.close(); 
     53new 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){ 
    5354rubricks.common.rubricks_wait_message_close(); 
    5455},onLoading:function(_b){ 
     
    9394this.news_create_window.open(); 
    9495$("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 } 
    10396},print_news:function(){ 
    10497if(Element.hasClassName("print_button","disabled")){ 
     
    107100rubricks.common.fire_submit("news_print_form","print_button"); 
    108101rubricks.common.rubricks_wait_message_close(); 
    109 },select_multiple_mode:function(_17){ 
     102},select_multiple_mode:function(_14){ 
    110103this.news_list.makeMultiple(); 
    111 $(_17+"select_multiple_form").style.display="none"; 
    112 $(_17+"select_singular_form").style.display="block"; 
    113 $(_17+"news_delete_multiple_form").style.display="block"; 
    114 },select_news_list:function(_18){ 
    115 if(_18!=""&&this.news_list!=null){ 
    116 this.news_list.selectEffect(this.news_list.buildTrId(_18)); 
    117 this.show_news(_18,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){ 
     108if(_15!=""&&this.news_list!=null){ 
     109this.news_list.selectEffect(this.news_list.buildTrId(_15)); 
     110this.show_news(_15,false); 
    118111} 
    119112},select_singular_mode:function(){ 
     
    121114this.news_list.makeSingular(); 
    122115} 
    123 },show_tab_button:function(_19){ 
    124 $(_19+"news_delete_multiple_form").style.display="none"; 
    125 $(_19+"select_singular_form").style.display="none"; 
    126 $(_19+"select_multiple_form").style.display="block"; 
    127 },show_news:function(_1a,_1b){ 
    128 var _1c={}; 
    129 if(_1a!=""){ 
    130 this.change_style_to_normal(_1a); 
    131 _1c={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){ 
     121var _19={}; 
     122if(_17!=""){ 
     123this.change_style_to_normal(_17); 
     124_19={id:_17}; 
    132125} 
    133 new Ajax.Updater("news_info",this.url_show_news,{asynchronous:true,evalScripts:true,parameters:_1c,onLoaded:function(_1d){ 
     126new Ajax.Updater("news_info",this.url_show_news,{asynchronous:true,evalScripts:true,parameters:_19,onLoaded:function(_1a){ 
    134127rubricks.common.rubricks_wait_message_close(); 
    135 },onLoading:function(_1e){ 
     128},onLoading:function(_1b){ 
    136129rubricks.common.rubricks_wait_message_open(); 
    137130}}); 
    138131},submit_create_news:function(){ 
    139 if(this.overflow_news_textarea("post_news_article",10000,this.msg_news_article_max)){ 
    140 return false; 
    141 } 
    142132this.close_news_create_window(); 
    143133},submit_edit_news:function(){ 
    144 if(this.overflow_news_textarea("news_article",10000,this.msg_news_article_max)){ 
    145 return false; 
    146 } 
    147134rubricks.common.fire_onsubmit("news_edit_form","news_edit_button","news_edit_area"); 
    148135}}); 
     
    158145$("news_category_name").focus(); 
    159146},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){ 
     147new Ajax.Updater("news_category_window_frame",this.url_category_window,{asynchronous:true,evalScripts:true,parameters:{id:id},onLoaded:function(_1e){ 
    161148rubricks.common.rubricks_wait_message_close(); 
    162 },onLoading:function(_22){ 
     149},onLoading:function(_1f){ 
    163150rubricks.common.rubricks_wait_message_open(); 
    164151}}); 
     
    170157} 
    171158},delete_confirm:function(){ 
    172 var _23=this.category_list.getSelected(); 
    173 if(_23.length<1){ 
     159var _20=this.category_list.getSelected(); 
     160if(_20.length<1){ 
    174161rubricks.common.rubricks_message_window_open(this.msg_category_not_selected,"error"); 
    175162}else{ 
    176 var id=parseInt(_23.first(),10); 
     163var id=parseInt(_20.first(),10); 
    177164if(id==1){ 
    178165rubricks.common.rubricks_message_window_open(this.err_delete_default,"error"); 
     
    184171} 
    185172},destroy:function(id){ 
    186 new Ajax.Request(this.url_delete,{asynchronous:true,evalScripts:true,parameters:{id:id},onLoaded:function(_26){ 
     173new Ajax.Request(this.url_delete,{asynchronous:true,evalScripts:true,parameters:{id:id},onLoaded:function(_23){ 
    187174rubricks.common.rubricks_wait_message_close(); 
    188 },onLoading:function(_27){ 
     175},onLoading:function(_24){ 
    189176rubricks.common.rubricks_wait_message_open(); 
    190177}}); 
    191178},edit:function(){ 
    192 var _28=this.category_list.getSelected(); 
    193 if(_28.length<1){ 
     179var _25=this.category_list.getSelected(); 
     180if(_25.length<1){ 
    194181rubricks.common.rubricks_message_window_open(this.msg_category_not_selected,"error"); 
    195182}else{ 
    196 this.category_window_render(_28.first()); 
     183this.category_window_render(_25.first()); 
    197184} 
    198185}}); 
  • components/news/trunk/news/_install/javascripts/src_news.js

    r5760 r5794  
    7979  }, 
    8080  item_return_comment_save: function(news_id){ 
     81    rubricks.news.news_item_return_comment_window.close(); 
    8182    new Ajax.Updater( 
    8283      'news_list_frame', 
     
    8586        asynchronous:   true, 
    8687        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}, 
    8889        onLoaded:       function(request){rubricks.common.rubricks_wait_message_close();}, 
    8990        onLoading:      function(request){rubricks.common.rubricks_wait_message_open();} 
     
    142143    $('post_news_title').focus(); 
    143144  }, 
    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 = false 
    148       rubricks.common.rubricks_message_window.center(); 
    149       rubricks.common.rubricks_message_window.open(); 
    150       return true; 
    151     } 
    152   }, 
    153145  print_news: function() { 
    154146    if(Element.hasClassName('print_button', 'disabled')){ 
     
    199191  }, 
    200192  submit_create_news: function(){ 
    201     if(this.overflow_news_textarea('post_news_article', 10000, this.msg_news_article_max)){ 
    202       return false; 
    203     } 
    204193    this.close_news_create_window(); 
    205194  }, 
    206195  submit_edit_news: function(){ 
    207     if(this.overflow_news_textarea('news_article', 10000, this.msg_news_article_max)){ 
    208       return false; 
    209     } 
    210196    rubricks.common.fire_onsubmit('news_edit_form', 'news_edit_button', 'news_edit_area'); 
    211197  } 
  • components/news/trunk/news/admin_category/list.rhtml

    r5769 r5794  
    22  <thead> 
    33    <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> 
    106    </tr> 
    117  </thead> 
     
    2319  </tbody> 
    2420<% end %> 
     21<br class="cl" /> 
  • components/news/trunk/news/admin_category/main.rhtml

    r5769 r5794  
    1818        <div id="news_category_frame"> 
    1919          <%= simple_render_component('/news/admin_category', 'list', {}) %> 
    20           <br class="cl" /> 
    2120        </div> 
    2221      <% end %> 
  • components/news/trunk/news/admin_category_controller.rb

    r5760 r5794  
    2626      end 
    2727    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]') 
    3529    end 
    3630    flash[:news_message] = '[_News_Category_MessageDelete]' 
     
    5044      end 
    5145    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) 
    6048    end 
    6149    flash[:news_message] ||= '[_News_Category_MessageUpdate]' 
  • components/news/trunk/news/admin_controller.rb

    r5760 r5794  
    2424      end 
    2525    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]') 
    2927    end 
    3028    flash[:news_message] = '[_News_Admin_MessageUpdate]' 
  • components/news/trunk/news/block/list.rhtml

    r5760 r5794  
    1414    <% end %> 
    1515  </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) %> 
    1717<% end %> 
  • components/news/trunk/news/common_helper.rb

    r5760 r5794  
    11module News::CommonHelper 
    2   def administrator
    3     News::NewsLib.administrator
     2  def news_admin
     3    News::NewsLib.news_admin
    44  end 
    55 
     
    4848  end 
    4949 
    50   def has_approval?(news) 
    51     News::NewsLib.has_approval?(news) 
     50  def has_approval? 
     51    News::NewsLib.has_approval? 
    5252  end 
    5353 
     
    123123 
    124124  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') 
    126126      return 'attachment' 
    127127    else 
  • components/news/trunk/news/languages/chinese.rb

    r5760 r5794  
    55      '_News_Admin_MessageUpdate'                               => '新闻讟眮修改完毕。', 
    66      '_News_Category_ErrorCreate'                              => '分类创建倱莥。', 
    7       '_News_Category_ErrorCreateMaxRecord'                     => '####', 
     7      '_News_Category_ErrorCreateMaxRecord'                     => '䞍胜再创建分类。', 
    88      '_News_Category_ErrorDelete'                              => '分类删陀倱莥。', 
    9       '_News_Category_ErrorDeleteDefaultCategory'               => '####', 
     9      '_News_Category_ErrorDeleteDefaultCategory'               => '䞍胜删陀初始分类。', 
    1010      '_News_Category_ErrorUpdate'                              => '分类修改倱莥。', 
    1111      '_News_Category_MessageCreate'                            => '分类创建完毕。', 
    1212      '_News_Category_MessageDelete'                            => '分类删陀完毕。', 
    13       '_News_Category_MessageDeleteConfirm'                     => '####', 
    14       '_News_Category_MessageNotSelected'                       => '####', 
     13      '_News_Category_MessageDeleteConfirm'                     => '劂果删陀歀分类属于歀分类的新闻将園属于初始分类。确实芁删陀吗', 
     14      '_News_Category_MessageNotSelected'                       => '未选择分类。', 
    1515      '_News_Category_MessageUpdate'                            => '分类修改完毕。', 
    1616      '_News_Common_Category'                                   => '分类', 
     
    5858      '_News_News_ErrorPost'                                    => '新闻发衚倱莥。', 
    5959      '_News_News_ErrorReturnInvalidUser'                       => '投皿甚户䞺无效甚户所以䞍胜退回。劂果文章需芁修正请进行猖蟑。', 
    60       '_News_News_ErrorUnread'                                  => '####', 
     60      '_News_News_ErrorUnread'                                  => '新闻改䞺未读状态时发生错误。', 
    6161      '_News_News_ErrorUpdate'                                  => '新闻修改倱莥。', 
    6262      '_News_News_MessageConfirmUnread'                         => '确实芁改䞺未读状态吗', 
    63       '_News_News_MessageConfirmUpdate'                         => '猖蟑后需芁重新批准,确定芁猖蟑吗?', 
     63      '_News_News_MessageConfirmUpdate'                         => '猖蟑后需芁重新批准,确定芁猖蟑吗', 
    6464      '_News_News_MessageDelete'                                => '新闻删陀完毕。', 
    6565      '_News_News_MessageNewsNotSelected'                       => '请选择新闻。', 
     
    7373¬åŒ€å‘垃。', 
    7474      '_News_News_MessageReturnComment'                         => '可以蟓å 
    75 ¥æ³šé‡Š(可选)', 
     75¥æ³šé‡Šã€‚(可选)', 
    7676      '_News_News_MessageReturned'                              => '劂果想再次申请批准请[重新发衚]。', 
    7777      '_News_News_MessageThereAreReturnedNews'                  => '有%s条被退回的新闻。请进行猖蟑后重新发衚。', 
     
    8282      '_News_News_MessageUnableToReturnInvalidUser'             => '投皿甚户䞺无效甚户所以䞍胜退回。', 
    8383      '_News_News_MessageUnableToReturnGuestUser'               => '投皿甚户䞺匿名甚户所以䞍胜退回。', 
    84       '_News_News_MessageUnread'                                => '####', 
     84      '_News_News_MessageUnread'                                => '新闻已改䞺未读状态。', 
    8585      '_News_News_MessageUpdate'                                => '新闻修改完毕。', 
    8686    }) 
  • components/news/trunk/news/news/_item_return_confirm_window.rhtml

    r5760 r5794  
    44    <p><%= hl('[_News_News_MessageReturnComment]') %></p> 
    55    <%= 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
    88    <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%>');"  /> 
    1010      <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();" /> 
    1111      <%= rollover_swap('news_return_submit_button', 'news_return_cancel_button') %> 
  • components/news/trunk/news/news/_main_news_create_window.rhtml

    r5760 r5794  
    44      <% validate_form('news_create_button') do %> 
    55        <table class="rubricks_general_table"> 
     6          <tr class="table_dummy"> 
     7            <td style="width:20%;"></td> 
     8            <td style="width:80%;"></td> 
     9          </tr> 
    610          <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'}] %
    1014              <%= text_field 'post_news', 'title', :size => 32, :class => 'input_text_inactive focus' %> 
    1115              <span id="post_news_title_msg"></span> 
     
    1317          </tr> 
    1418          <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
    1721              <%= select_tag('post_news[category_id]', options_for_select(@select_options , @selected_category))%> 
    1822            </td> 
    1923          </tr> 
    2024          <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> 
    2326            <td> 
     27              <%= validate 'post_news_display_name', [{:required => true}, {:length => '1..32'}] %> 
    2428              <%= text_field 'post_news', 'display_name', :size => 32, :value => default_display_name, :class => 'input_text_inactive focus' %> 
    2529              <span id="post_news_display_name_msg"></span> 
     
    2731          </tr> 
    2832          <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"> 
    3137              <%= text_area 'post_news', 'article', :class => "rubricks_general_window", :style => "width:100%; height:300px;" %> 
    3238            </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"
    22  <tbody> 
    3     <tr style="height:0px;"> 
     3    <tr class="table_dummy"> 
    44      <td style="width:15%;"></td> 
    55      <td style="width:35%;"></td> 
     
    2929    </tr> 
    3030    <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> 
    3232    </tr> 
    3333    <tr class="rubricks_general_table_even"> 
  • components/news/trunk/news/news/show_news.rhtml

    r5760 r5794  
    1313              </div> 
    1414            <% end %> 
    15             <% if has_approval?(@news) %> 
     15            <% if @news.approvable? %> 
    1616              <%= form_tag({:controller => '/'}, {:id => 'news_return_form', :class => 'float_button_right_inactive swap'}) %> 
    1717                <% if @user_effectiv_is_true == true %> 
     
    3333            <div class="pointcolor_text news_additional_commont"> 
    3434              <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> 
    3737              <% end %> 
    3838            </div> 
     
    6868                <% end %> 
    6969                <table class="rubricks_general_table"> 
     70                  <tr class="table_dummy"> 
     71                    <td style="width:15%;"></td> 
     72                    <td style="width:85%;"></td> 
     73                  </tr> 
    7074                  <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'}] %
    7478                      <%= text_field 'news', 'title', :size => 32, :class => 'input_text_inactive focus' %> 
    7579                      <span id="news_title_msg"></span> 
     
    7781                  </tr> 
    7882                  <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
    8185                      <%= select_tag('news[category_id]', options_for_select(@select_options, @selected_category)) %> 
    8286                    </td> 
    8387                  </tr> 
    8488                  <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> 
    8790                    <td> 
     91                      <%= validate 'news_display_name', [{:required => true}, {:length => '1..32'}] %> 
    8892                      <%= text_field 'news', 'display_name', :size => 32, :class => 'input_text_inactive focus' %> 
    8993                      <span id="news_display_name_msg"></span> 
     
    9195                  </tr> 
    9296                  <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"> 
    95101                      <%= text_area 'news', 'article', :class => "rubricks_general_window", :style => "height:300px; width:100%;" %> 
    96102                    </td> 
  • components/news/trunk/news/news/update.rjs

    r5760 r5794  
    44else 
    55  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? 
    77end 
    88page << %Q|rubricks.common.rubricks_feedback_msg.add("#{hl(flash[:news_message])}");| 
  • components/news/trunk/news/news_category.rb

    r5760 r5794  
    3030 
    3131    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]} 
    3333      options.unshift(self.default_select_option) if with_all 
    3434      return options 
  • components/news/trunk/news/news_controller.rb

    r5760 r5794  
    55  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') 
    66  helper :'news/common' 
    7   authorize :access 
    8   authorize :approval,  :only   => [:before_approve, :item_approve, :item_return, :after_approve, :after_return] 
    9   authorize :post,      :only   => [:post,:create_news_window] 
    107 
    118  def main 
     
    1411      unless waiting_count == 0 
    1512        @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]
    2017        end 
    2118      end 
     
    2320      unless returned_count == 0 
    2421        @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]
    2623      end 
    2724    end 
     
    3229  end 
    3330 
    34   def after_approve(item) 
    35     add_news_message(RubricksLib.hl('[_Common_Approval_Success]', RubricksLib.hl('[_News_Common_News]'))) 
    36   end 
    37  
    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   end 
    42  
    43   def before_approve(item) 
    44     item.publish_date = DateTime.now.strftime("%Y-%m-%d %H:%M:%S") 
    45   end 
    46  
    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.effective 
    50   end 
    51  
    5231  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 
    7739          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 
    8448    headers["Content-Type"] = "text/javascript" 
    8549    render :template => '/news/news/update.rjs' 
    8650  end 
    8751 
    88   def file_accessable?(ra) 
    89     return true if News::NewsLib.administrator? 
    90     ral = ra.rubricks_attachment_links 
    91     if ral.empty? 
    92       return News::NewsLib.has_post? 
    93     end 
    94     news = News::NewsItem.find(ral.first.rubricks_attachable_id) 
    95     return false unless news 
    96     return news.accessable? 
    97   end 
    98  
    9952  def news_approval 
     53    check_permission(:approve) 
    10054  end 
    10155 
     
    11367 
    11468  def post 
    115     check_permission 
    116     nc = News::NewsConfig.instance 
    117     ru = current_user 
    118     @news_item = News::NewsItem.new 
    119     @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_ID 
    123     @news_item.approval = Acts::Approval::WAITING 
    124     @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::APPROVALED 
    127       @news_item.publish_date = DateTime.now.strftime("%Y-%m-%d %H:%M:%S") 
    128     end 
    129     count = News::NewsCategory.count(:conditions =>['id = ?', params[:post_news][:category_id]]) 
    130     if count == 0 
    131       raise ActiveRecord::RecordNotFound 
    132     else 
    133       if @news_item.save 
     69    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! 
    13488        if @news_item.is_approvaled? 
    13589          add_news_message('[_News_News_MessagePostToPublic]') 
     
    13791          add_news_message('[_News_News_MessagePostToWaiting]') 
    13892        end 
    139       else 
    140         add_news_message('[_News_News_ErrorPost]') 
    14193      end 
    14294      headers["Content-Type"] = "text/javascript" 
    14395      render :template => '/news/news/update.rjs' 
     96    rescue Exception => ex 
     97      log_rubricks_error(ex, '[_News_News_ErrorPost]') 
    14498    end 
    14599  end 
     
    164118    begin 
    165119      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]') 
    175127    headers["Content-Type"] = "text/javascript" 
    176128    render :template => '/news/news/return_unread_state.rjs' 
     
    182134    if news_id 
    183135      @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? 
    199139      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]' 
    204144      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]' 
    209149      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]' 
    214154      end 
    215155      @news.read 
     
    221161 
    222162  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