Changeset 5781

Show
Ignore:
Timestamp:
06/06/08 10:45:52 (2 months ago)
Author:
uta
Message:

2008/06/06 sync

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • rubricks_core/trunk/Readme.en.txt

    r5744 r5781  
    5959    URL:        http://rubyforge.org/projects/rails/ 
    6060    License:    MIT 
    61   rails_protection 0.1.7 
     61  rails_protection 0.1.8 
    6262    URL:        http://rubyforge.org/projects/rubricks 
    6363                svn://dev.rubricks.org/var/svn/rubricks/plugins/rails_protection 
  • rubricks_core/trunk/Readme.ja.txt

    r5744 r5781  
    5959    URL:        http://rubyforge.org/projects/rails/ 
    6060    License:    MIT 
    61   rails_protection 0.1.7 
     61  rails_protection 0.1.8 
    6262    URL:        http://rubyforge.org/projects/rubricks 
    6363                svn://dev.rubricks.org/var/svn/rubricks/plugins/rails_protection 
  • rubricks_core/trunk/app/controllers/application.rb

    r5767 r5781  
    6666  end 
    6767 
    68   def log_error(exception) 
    69     case exception 
    70     when RubricksError::Component::InactiveException, RubricksError::Site::BlockedException, RubricksError::User::UnauthorizedException, RailsProtection::Csrf::SessionValidateException 
    71       logger.info(exception.message) 
    72     when RubricksError::Common::FileSystemException, RubricksError::Common::ValidateException 
    73       logger.error(exception.message) 
    74       logger.error(exception.backtrace.join("\n  ")) 
    75     else 
    76       super(exception) 
    77     end 
    78   end 
    79  
    8068  def must_login_action 
    8169    if guest? 
     
    11199  def rescue_action(ex) 
    112100    redirect_url = ::ApplicationControllerExtension.rescue_action_as_redirect?(ex) 
     101    logger.error(ex.message) 
     102    logger.error(ex.backtrace.join("\n  ")) 
     103    erase_results if performed? 
    113104    if !redirect_url.nil? 
    114105      redirect_to redirect_url 
    115106    else 
    116       if consider_all_requests_local || local_request? 
    117         logger.error(ex.message) 
    118         logger.error(ex.backtrace.join("\n  ")) 
    119       end 
    120107      dispatch_exception(ex) 
    121108    end 
     
    164151  def before_request_refuse_guest 
    165152    if guest? && !RubricksConfig.get('user_guest_available') 
    166       case params[:controller] 
    167       when 'system/account', 'system/error', 'system/login', 'system/mobile', 'test' 
    168       else 
     153      unless RubricksLib::GUEST_AVAILABLE_CONTROLLER.include?(params[:controller]) 
    169154        jump_page(url_for(:controller => '/system/login', :action => 'login_page')) 
    170155      end 
  • rubricks_core/trunk/app/models/rubricks_dashboard_widget_item.rb

    r2964 r5781  
    1818            if rdwi_list.empty? 
    1919              rdwi = RubricksDashboardWidgetItem.new 
    20               rdwi.rubricks_user_id = ru_id 
    21               rdwi.rubricks_dashboard_widget_id = rdw.id 
    22               rdwi.hotkey = 0 
    23               rdwi.rubricks_dashboard_widget_skin_id = rdw.rubricks_dashboard_widget_skin_id 
    24               rdwi.visible = false 
     20              rdwi.rubricks_user_id                     = ru_id 
     21              rdwi.rubricks_dashboard_widget_id         = rdw.id 
     22              rdwi.hotkey                               = 0 
     23              rdwi.rubricks_dashboard_widget_skin_id    = rdw.rubricks_dashboard_widget_skin_id 
     24              rdwi.visible                              = false 
     25              rdwi.ignore_csrf_validation               = true 
    2526              rdwi.save! 
    2627            end 
  • rubricks_core/trunk/app/models/rubricks_group.rb

    r5767 r5781  
    6161    end 
    6262 
    63     def find_rubricks_groups(admin = true, guest = true, registered = true, root = false, rc_id = RubricksComponent::RUBRICKS_SYSTEM_COMPONENT_ID, include = nil) 
    64       conditions = ['rubricks_groups.effective = true and rubricks_groups.private_component_id = ?', rc_id] 
    65       unless admin 
    66         conditions = add_id_query(conditions) 
    67         conditions.push(RubricksGroup::ADMIN_GROUP_ID) 
    68       end 
    69       unless guest 
    70         conditions = add_id_query(conditions) 
    71         conditions.push(RubricksGroup::GUEST_GROUP_ID) 
    72       end 
    73       unless registered 
    74         conditions = add_id_query(conditions) 
    75         conditions.push(RubricksGroup::REGISTERED_GROUP_ID) 
    76       end 
    77       if root 
    78         query  = conditions.shift 
    79         query += ' and rubricks_groups.parent_id is NULL' 
    80         conditions.unshift(query) 
    81       end 
    82       self.find(:all, :conditions => conditions, :include => include) 
     63    def find_belongable_groups 
     64      self.find_rubricks_groups(:guest => false, :registered => false) 
     65    end 
     66 
     67    def find_rubricks_groups(*args) 
     68      options = args.flex :admin, :guest, :registered, :root, :rc_id, include 
     69      options = { 
     70        :admin      => true, 
     71        :conditions => [], 
     72        :guest      => true, 
     73        :include    => nil, 
     74        :rc_id      => RubricksComponent::RUBRICKS_SYSTEM_COMPONENT_ID, 
     75        :registered => true, 
     76        :root       => false, 
     77      }.merge(options) 
     78      query         = options[:conditions].pop 
     79      queries       = (query.blank?) ? [] : ["(#{query})"] 
     80      queries      << 'rubricks_groups.effective = true and rubricks_groups.private_component_id = ?' 
     81      conditions    = options[:conditions].push(options[:rc_id]) 
     82      if options[:admin].blank? 
     83        queries    << 'rubricks_groups.id != ?' 
     84        conditions << RubricksGroup::ADMIN_GROUP_ID 
     85      end 
     86      if options[:guest].blank? 
     87        queries    << 'rubricks_groups.id != ?' 
     88        conditions << RubricksGroup::GUEST_GROUP_ID 
     89      end 
     90      if options[:registered].blank? 
     91        queries    << 'rubricks_groups.id != ?' 
     92        conditions << RubricksGroup::REGISTERED_GROUP_ID 
     93      end 
     94      if options[:root] 
     95        queries    << 'rubricks_groups.parent_id is NULL' 
     96      end 
     97      conditions    = conditions.unshift(queries.join(' and ')) 
     98      self.find(:all, :conditions => conditions, :include => options[:include]) 
    8399    end 
    84100 
     
    100116      rg = self.find(rg_data[:id].to_i) 
    101117      return rg.update_group(rg_data) 
    102     end 
    103  
    104     private 
    105     def add_id_query(conditions) 
    106       query  = conditions.shift 
    107       query += ' and rubricks_groups.id != ?' 
    108       conditions.unshift(query) 
    109       return conditions 
    110118    end 
    111119  end 
  • rubricks_core/trunk/app/models/rubricks_lib.rb

    r5767 r5781  
    2020      :ruby => %r<^[-a-zA-Z0-9!#\$%&'*+/=?_^`{|}~]+(?:\.[-a-zA-Z0-9!#\$%&'*+/=?_^`{|}~]+)*@(?:[-a-zA-Z0-9]+\.)+[a-zA-Z]{2,}$>, 
    2121    } 
     22    GUEST_AVAILABLE_CONTROLLER  = ['system/account', 'system/error', 'system/login', 'system/mobile', 'test'] 
    2223    IMAGE_FILE_EXTENSION        = /\.(?:gif|jpeg|jpg|png)$/i 
    2324    IMAGE_FILE_SIGNATURE        = { 
  • rubricks_core/trunk/app/models/rubricks_schedule.rb

    r3279 r5781  
    11class RubricksSchedule 
    2   attr_accessor :sid, :start, :finish, :description, :className, :adapter 
     2  attr_accessor :sid, :start, :finish, :description, :adapter, :publicity, :callback, :icon, :icon_for_list, :removable 
    33 
    44  class << self 
     
    1616 
    1717  def initialize(params) 
    18     self.sid         = params[:id] 
    19     self.start       = params[:start] 
    20     self.finish      = params[:finish] 
    21     self.description = params[:description] 
    22     self.className   = params[:className] 
    23     self.adapter     = params[:adapter] 
     18    self.sid           = params[:id] 
     19    self.start         = params[:start] 
     20    self.finish        = params[:finish] 
     21    self.description   = params[:description] 
     22    self.adapter       = params[:adapter] 
     23    self.publicity     = params[:publicity] 
     24    self.callback      = params[:callback] 
     25    self.icon          = params[:icon] 
     26    self.icon_for_list = params[:icon_for_list] 
     27    self.removable     = params[:removable] 
    2428  end 
    2529 
     
    2731    date = {:year => self.start.year, :month => self.start.month - 1, :day => self.start.day} 
    2832    { 
    29       :id           => self.object_id, 
    30       :sid          => self.sid, 
    31       :start        => date.merge({:hour => self.start.hour, :min => self.start.min}), 
    32       :finish       => date.merge({:hour => self.finish.hour, :min => self.finish.min}), 
    33       :description  => self.description, 
    34       :className    => self.className, 
    35       :adapter      => self.adapter 
     33      :id            => self.object_id, 
     34      :sid           => self.sid, 
     35      :start         => date.merge({:hour => self.start.hour, :min => self.start.min}), 
     36      :finish        => date.merge({:hour => self.finish.hour, :min => self.finish.min}), 
     37      :description   => self.description, 
     38      :adapter       => self.adapter, 
     39      :publicity     => self.publicity.nil? ? true : self.publicity, 
     40      :callback      => self.callback || "", 
     41      :icon          => self.icon, 
     42      :icon_for_list => self.icon_for_list, 
     43      :removable     => self.removable.nil? ? true : self.removable 
    3644    }.to_json 
    3745  end 
  • rubricks_core/trunk/app/models/rubricks_schedule_manager.rb

    r4892 r5781  
    3131        end 
    3232      end 
    33       result 
     33      result.sort do |a, b| 
     34        a_start = a_start.is_a?(Time) ? a.start : a.start.to_time 
     35        b_start = b_start.is_a?(Time) ? b.start : b.start.to_time 
     36        a_start <=> b_start 
     37      end 
    3438    end 
    3539 
  • rubricks_core/trunk/app/models/rubricks_user.rb

    r5767 r5781  
    4444  validates_length_of       :admin_memo, :in => 0..20000 
    4545  after_create              :validate_user_limit 
    46   after_save                :mail_if_change_password, :save_password_history, :validate_difference_login_name_and_password 
     46  after_save                :save_password_history, :validate_difference_login_name_and_password 
     47  after_update              :mail_if_change_password 
    4748  attr_accessor             :password_changed 
    4849  cattr_accessor            :callback_after_invalidate 
     
    189190            temp_query                    = filter_conditions[:conditions].shift 
    190191            temp_query                   += ' and rubricks_users.display_email = true' 
    191             filter_conditions[:order].unshift(temp_query) 
     192            filter_conditions[:conditions].unshift(temp_query) 
    192193          end 
    193194        end 
     
    368369  def compare(column, value) 
    369370    return (value.nil? || self[column] == value) 
    370   end 
    371  
    372   def cut_linked_groups(new_group_list, rc_id) 
    373     RubricksGroupsRubricksUser.find(:all, :conditions => ['rubricks_groups_rubricks_users.rubricks_user_id = ? and rubricks_groups.private_component_id = ?', self.id, rc_id], :include => 'rubricks_group').each do |rgru| 
    374       if !new_group_list.include?(rgru.rubricks_group_id.to_s) && rgru.rubricks_group_id != RubricksGroup::REGISTERED_GROUP_ID 
    375         raise RubricksError::User::UnadminSelfException if rgru.rubricks_group_id == RubricksGroup::ADMIN_GROUP_ID && RubricksLib.current_user.id == self.id 
    376         rgru.destroy 
    377       end 
    378     end 
    379371  end 
    380372 
     
    462454  end 
    463455 
     456  def refresh_linked_groups(*args) 
     457    options = args.flex :rg_id_list, :rc_id 
     458    rg_id_list = fix_group_list(options[:rg_id_list]) 
     459    cut_linked_groups(rg_id_list, options[:rc_id]) unless options[:rc_id].blank? 
     460    if self.effective 
     461      rg_id_list.each do |rg_id| 
     462        rg = RubricksGroup.find(rg_id.to_i) 
     463        rgru = RubricksGroupsRubricksUser.find(:first, :conditions => ['rubricks_user_id = ? and rubricks_group_id = ?', self.id, rg.id]) || RubricksGroupsRubricksUser.create!({:rubricks_user_id => self.id, :rubricks_group_id => rg.id}) 
     464      end 
     465    end 
     466  end 
     467 
    464468  def rubricks_theme_name 
    465469    return RubricksTheme.find(self.rubricks_theme_id).name 
     
    472476  def unlock_user 
    473477    self.update_user({:lock_count => 0, :locked_till => Time.now, :login_at => Time.now}) 
    474   end 
    475  
    476   def update_linked_groups(new_group_list) 
    477     new_group_list.each do |rg_id| 
    478       rg = RubricksGroup.find(rg_id.to_i) 
    479       rgru = RubricksGroupsRubricksUser.find(:first, :conditions => ['rubricks_user_id = ? and rubricks_group_id = ?', self.id, rg.id]) || RubricksGroupsRubricksUser.new({:rubricks_user_id => self.id, :rubricks_group_id => rg.id}) 
    480       rgru.save! 
    481     end 
    482478  end 
    483479 
     
    497493 
    498494  private 
     495  def cut_linked_groups(rg_id_list, rc_id) 
     496    RubricksGroupsRubricksUser.find(:all, :conditions => ['rubricks_groups_rubricks_users.rubricks_user_id = ? and rubricks_groups.private_component_id = ?', self.id, rc_id], :include => :rubricks_group).each do |rgru| 
     497      unless rg_id_list.include?(rgru.rubricks_group_id.to_s) 
     498        raise RubricksError::User::UnadminSelfException if rgru.rubricks_group_id == RubricksGroup::ADMIN_GROUP_ID && RubricksLib.current_user.id == self.id 
     499        rgru.destroy 
     500      end 
     501    end 
     502  end 
     503 
     504  def fix_group_list(rg_id_list) 
     505    rg_id_list ||= [] 
     506    rg_id_list.delete('') 
     507    rg_id_list.delete(RubricksGroup::GUEST_GROUP_ID.to_s) 
     508    rg_id_list.delete(RubricksGroup::REGISTERED_GROUP_ID.to_s) 
     509    rg_id_list.push(RubricksGroup::REGISTERED_GROUP_ID.to_s) 
     510    return rg_id_list 
     511  end 
     512 
    499513  def fix_password_changed(ru_data) 
    500514    if RubricksLib.current_user && RubricksLib.current_user.login_name == ru_data[:login_name] 
  • rubricks_core/trunk/components/system/account/_main_script_bottom.rhtml

    r3647 r5781  
    11<script type="text/javascript"> 
    22  <% unless @additional_function[:data][:ru_id] == RubricksUser::GUEST_USER_ID %> 
    3     if(AjaxHistoryPageManager.getSpecifiedValue('rubricks_system_admin_user') == '') { 
    4       AjaxHistory.add('user_<%= hl(@additional_function[:data][:ru_id]) %>', {prefix:'rubricks_system_admin_user'}); 
    5     } 
     3    rubricks.system.admin_user.functions.add_ajax_history('user_<%= hl(@additional_function[:data][:ru_id]) %>'); 
    64  <% end %> 
    75</script> 
  • rubricks_core/trunk/components/system/account/_user_show_edit_content.rhtml

    r5695 r5781  
    1 <table class="rubricks_general_table" style="table-layout:fixed;"
     1<table class="rubricks_general_table"
    22  <tr class="rubricks_general_table_even"> 
    33    <td style="width:20%;"><%= hl('[_Common_UserId]') %></td> 
     
    133133      <td> 
    134134        <textarea class="rubricks_general_window" id="rubricks_user_edit_signature" name="rubricks_user_edit[signature]" style="height:60px;"><%= hl(@ru.signature) %></textarea> 
    135         <div id="rubricks_user_edit_signature_msg"></div> 
     135        <div id="rubricks_user_edit_signature_msg" class="validate_msg"></div> 
    136136      </td> 
    137137    </tr> 
     
    143143      <td> 
    144144        <textarea class="rubricks_general_window" id="rubricks_user_edit_note" name="rubricks_user_edit[note]" style="height:60px;"><%= hl(@ru.note) %></textarea> 
    145         <div id="rubricks_user_edit_note_msg"></div> 
     145        <div id="rubricks_user_edit_note_msg" class="validate_msg"></div> 
    146146      </td> 
    147147    </tr> 
  • rubricks_core/trunk/components/system/account/_user_show_print_content.rhtml

    r5723 r5781  
    1 <table id="rubricks_user_detail" class="rubricks_general_table" <%= (msie?) ? 'style="table-layout:fixed;"' : '' %>
     1<table id="rubricks_user_detail" class="rubricks_general_table"
    22  <tr class="rubricks_general_table_even"> 
    33    <td style="width:20%;"><%= hl('[_Common_UserId]') %></td> 
     
    3131      <td><%= hl('[_Common_Kana]') %></td> 
    3232      <td><div class="overflow_auto"><%= hl(@ru.kana) %></div></td> 
    33     </tr> 
    34   <% else %> 
    35     <tr class="rubricks_general_table_even"> 
    36       <td class="system_admin_user_dummy" colspan="2"></td> 
    3733    </tr> 
    3834  <% end %> 
  • rubricks_core/trunk/components/system/account_controller.rb

    r5767 r5781  
    230230      flash[:user_management_message] = options[:msg_user_edit] 
    231231    rescue Exception => ex 
    232       logger.error(ex.message) 
    233       logger.error(ex.backtrace.join("\n  ")) 
    234       raise RubricksError::Common::AjaxError, options[:err_user_edit] 
     232      log_rubricks_error(ex, options[:err_user_edit]) 
    235233    end 
    236234    headers["Content-Type"] = "text/javascript" 
     
    248246      flash[:user_management_message] = options[:msg_user_image_delete] 
    249247    rescue Exception => ex 
    250       logger.error(ex.message) 
    251       logger.error(ex.backtrace.join("\n  ")) 
    252       raise RubricksError::Common::AjaxError, options[:err_user_image_delete] 
     248      log_rubricks_error(ex, options[:err_user_image_delete]) 
    253249    end 
    254250    headers["Content-Type"] = "text/javascript" 
     
    265261      flash[:user_management_message] = options[:msg_user_image_upload] 
    266262    rescue Exception => ex 
    267       logger.error(ex.message) 
    268       logger.error(ex.backtrace.join("\n  ")) 
    269       flash[:user_management_error] = options[:err_user_image_upload] 
     263      log_rubricks_error(ex, options[:err_user_image_upload]) 
    270264    end 
    271265    render :template => '/system/user_management/user_image_upload.rhtml' 
  • rubricks_core/trunk/components/system/admin_block_controller.rb

    r5745 r5781  
    3434      input_data = params[:page_update_data].json2ruby 
    3535    rescue Exception => ex 
    36       logger.error(ex.message) 
    37       logger.error(ex.backtrace.join("\n  ")) 
    38       raise RubricksError::Common::AjaxError, '[_Common_BadData]' 
     36      log_rubricks_error(ex, '[_Common_BadData]') 
    3937    end 
    4038    begin 
     
    5250      flash[:admin_block_message] = '[_System_AdminBlock_MessageUpdate]' 
    5351    rescue Exception => ex 
    54       logger.error(ex.message) 
    55       logger.error(ex.backtrace.join("\n  ")) 
    56       raise RubricksError::Common::AjaxError, '[_System_AdminBlock_ErrorUpdate]' 
     52      log_rubricks_error(ex, '[_System_AdminBlock_ErrorUpdate]') 
    5753    end 
    5854    @refresh = RubricksMenuItem.need_refresh?(@rmi_id) 
  • rubricks_core/trunk/components/system/admin_block_helper.rb

    r5591 r5781  
    1313      :center   => false, 
    1414    }.merge(options) 
    15     html  = '<div class="system_admin_block_partition_dummy"></div>' 
    16     html += %Q|<div id="edit_partition_#{hl(position)}" class="system_admin_block_edit_area">| if options[:add_id] 
     15    html = %Q|<div #{(options[:add_id].blank?) ? '' : %Q|id="edit_partition_#{hl(position)}"|} class="system_admin_block_edit_area">| 
    1716    @rb_hash[position.to_sym].each do |rbv| 
    1817      html += render_block_node(rbv, options) 
    1918    end 
    20     html += '</div>' if options[:add_id] 
     19    html += '</div>' 
    2120    return html 
    2221  end 
  • rubricks_core/trunk/components/system/admin_component/_main_component_list.rhtml

    r5744 r5781  
    77        </tr> 
    88        <tr class="rubricks_general_table_even"> 
    9           <td style="width:220px;"> 
    10             <div class="system_admin_component_dummy"></div> 
    11             <% @active_rc_list.each do |rc| %><img src="<%= image_path("/images/components/#{rc.name}/#{rc.name}.gif") %>" width="<%= hl(RubricksMenuIcon::ICON_WIDTH) %>" height="<%= hl(RubricksMenuIcon::ICON_HEIGHT) %>" id="component_icon_<%= hl(rc.id) %>" class="cursor_pointer" alt="<%= hl(rc.name) %>" title="<%= hl(rc.display_name) %>" onclick="rubricks.system.admin_component.add_ajax_history(this.id);" /><% end %> 
     9          <td> 
     10            <div class="system_admin_component_list"> 
     11              <% @active_rc_list.each do |rc| %><img src="<%= image_path("/images/components/#{rc.name}/#{rc.name}.gif") %>" width="<%= hl(RubricksMenuIcon::ICON_WIDTH) %>" height="<%= hl(RubricksMenuIcon::ICON_HEIGHT) %>" id="component_icon_<%= hl(rc.id) %>" class="cursor_pointer" alt="<%= hl(rc.name) %>" title="<%= hl(rc.display_name) %>" onclick="rubricks.system.admin_component.add_ajax_history(this.id);" /><% end %> 
     12            </div> 
    1213          </td> 
    1314        </tr> 
     
    1819        </tr> 
    1920        <tr class="rubricks_general_table_even"> 
    20           <td style="width:220px;"> 
    21             <div class="system_admin_component_dummy"></div> 
    22             <% @deactive_rc_list.each do |rc| %><img src="<%= image_path("/images/components/#{rc.name}/#{rc.name}.gif") %>" width="<%= hl(RubricksMenuIcon::ICON_WIDTH) %>" height="<%= hl(RubricksMenuIcon::ICON_HEIGHT) %>" id="component_icon_<%= hl(rc.id) %>" class="cursor_pointer" alt="<%= hl(rc.name) %>" title="<%= hl(rc.display_name) %>" onclick="rubricks.system.admin_component.add_ajax_history(this.id);" /><% end %> 
     21          <td> 
     22            <div class="system_admin_component_list"> 
     23              <% @deactive_rc_list.each do |rc| %><img src="<%= image_path("/images/components/#{rc.name}/#{rc.name}.gif") %>" width="<%= hl(RubricksMenuIcon::ICON_WIDTH) %>" height="<%= hl(RubricksMenuIcon::ICON_HEIGHT) %>" id="component_icon_<%= hl(rc.id) %>" class="cursor_pointer" alt="<%= hl(rc.name) %>" title="<%= hl(rc.display_name) %>" onclick="rubricks.system.admin_component.add_ajax_history(this.id);" /><% end %> 
     24            </div> 
    2325          </td> 
    2426        </tr> 
  • rubricks_core/trunk/components/system/admin_component/show.rhtml

    r5745 r5781  
    3333<% end %> 
    3434<table id="component_details_table" class="rubricks_general_table"> 
    35   <% if @flag_update %> 
     35  <thead> 
     36    <% if @flag_update %> 
     37      <tr class="rubricks_general_table_even"> 
     38        <th class="text_center" style="width:20%;"></th> 
     39        <th class="text_center" style="width:40%;"><%= hl('[_System_AdminComponent_CurrentComponentInfo]') %></th> 
     40        <th class="text_center" style="width:40%;"><%= hl('[_System_AdminComponent_NewComponentInfo]') %></th> 
     41      </tr> 
     42    <% else %> 
     43      <tr class="rubricks_general_table_even"> 
     44        <th class="text_center" style="width:20%;"></th> 
     45        <th class="text_center" style="width:80%;"><%= hl('[_System_AdminComponent_CurrentComponentInfo]') %></th> 
     46      </tr> 
     47    <% end %> 
     48  </thead> 
     49  <tbody> 
    3650    <tr class="rubricks_general_table_even"> 
    37       <td class="text_center" style="width:20%;"></th> 
    38       <td class="text_center" style="width:40%;"><%= hl('[_System_AdminComponent_CurrentComponentInfo]') %></th> 
    39       <td class="text_center" style="width:40%;"><%= hl('[_System_AdminComponent_NewComponentInfo]') %></th> 
     51      <td><%= hl('[_Common_Name]') %></td> 
     52      <td><%= (@rc) ? hl(@rc.name) : '' %></td> 
     53      <% if @flag_update %> 
     54        <td><%= (@new_rc) ? hl(@new_rc.name) : '' %></td> 
     55      <% end %> 
    4056    </tr> 
    41   <% end %> 
    42   <tr class="rubricks_general_table_even"> 
    43     <td><%= hl('[_Common_Name]') %></td> 
    44     <td><%= (@rc) ? hl(@rc.name) : '' %></td> 
    45     <% if @flag_update %> 
    46       <td><%= (@new_rc) ? hl(@new_rc.name) : '' %></td> 
    47     <% end %> 
    48   </tr> 
    49   <tr class="rubricks_general_table_even"> 
    50     <td><%= hl('[_Common_Version]') %></td> 
    51     <td><%= (@rc) ? hl(@rc.version) : '' %></td> 
    52     <% if @flag_update %> 
    53       <td><%= (@new_rc) ? hl(@new_rc.version) : '' %></td> 
    54     <% end %> 
    55   </tr> 
    56   <tr class="rubricks_general_table_even"> 
    57     <td><%= hl('[_Common_Author]') %></td> 
    58     <td><%= (@rc) ? hl(@rc.author) : '' %></td> 
    59     <% if @flag_update %> 
    60       <td><%= (@new_rc) ? hl(@new_rc.author) : '' %></td> 
    61     <% end %> 
    62   </tr> 
    63   <tr class="rubricks_general_table_even"> 
    64     <td><%= hl('[_Common_License]') %></td> 
    65     <td><%= (@rc) ? hl(@rc.license) : '' %></td> 
    66     <% if @flag_update %> 
    67       <td><%= (@new_rc) ? hl(@new_rc.license) : '' %></td> 
    68     <% end %> 
    69   </tr> 
    70   <tr class="rubricks_general_table_even"> 
    71     <td><%= hl('[_Common_Description]') %></td> 
    72     <td><textarea class="rubricks_general_window" readonly><%= (@rc) ? hl(@rc.description) : '' %></textarea></td> 
    73     <% if @flag_update %> 
    74       <td><textarea class="rubricks_general_window" readonly><%= (@new_rc) ? hl(@new_rc.description) : '' %></textarea></td> 
    75     <% end %> 
    76   </tr> 
     57    <tr class="rubricks_general_table_even"> 
     58      <td><%= hl('[_Common_Version]') %></td> 
     59      <td><%= (@rc) ? hl(@rc.version) : '' %></td> 
     60      <% if @flag_update %> 
     61        <td><%= (@new_rc) ? hl(@new_rc.version) : '' %></td> 
     62      <% end %> 
     63    </tr> 
     64    <tr class="rubricks_general_table_even"> 
     65      <td><%= hl('[_Common_Author]') %></td> 
     66      <td><%= (@rc) ? hl(@rc.author) : '' %></td> 
     67      <% if @flag_update %> 
     68        <td><%= (@new_rc) ? hl(@new_rc.author) : '' %></td> 
     69      <% end %> 
     70    </tr> 
     71    <tr class="rubricks_general_table_even"> 
     72      <td><%= hl('[_Common_License]') %></td> 
     73      <td><%= (@rc) ? hl(@rc.license) : '' %></td> 
     74      <% if @flag_update %> 
     75        <td><%= (@new_rc) ? hl(@new_rc.license) : '' %></td> 
     76      <% end %> 
     77    </tr> 
     78    <tr class="rubricks_general_table_even"> 
     79      <td><%= hl('[_Common_Description]') %></td> 
     80      <td><textarea class="rubricks_general_window" readonly><%= (@rc) ? hl(@rc.description) : '' %></textarea></td> 
     81      <% if @flag_update %> 
     82        <td><textarea class="rubricks_general_window" readonly><%=