Changeset 464

Show
Ignore:
Timestamp:
01/23/07 12:09:38 (2 years ago)
Author:
timo
Message:

Merged the changes made up to trunk r463 to this branch.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/workorder_report_rename/app/controllers/action_key_controller.rb

    r378 r464  
    1414 
    1515  def list 
    16     @help = 'general' 
    1716    @title = _('Keys') 
    1817    @fields = [['Name (controller/action)', :name], ['Information', :info]] 
     
    2221 
    2322  def create 
    24     @help = 'general' 
    2523    @title = _('Create a new key') 
    2624    @fields = [ 
     
    3230 
    3331  def edit 
    34     @help = 'general' 
    3532    @title = _('Edit key') 
    3633    @fields = [ 
  • branches/workorder_report_rename/app/controllers/application.rb

    r455 r464  
    446446  # ======================== 
    447447  # 
    448   # Setups the pagination for shared/_list_items and calls find for <finder> 
     448  # Setups the pagination for shared/_list_items and calls options[:finder_method] (defaults to :find) for <finder> 
    449449  def items_for_page(finder, options = {}) 
    450450    @items_limit ||= 20 
    451451    @items_offset ||= (params[:items_offset].to_i || 0) 
    452     return finder.find(:all, {:readonly => true, :limit => @items_limit, :offset => @items_offset}.merge(options)) 
     452    finder_method = options[:finder_method] || :find 
     453    options.delete(:finder_method) # So that it won't get passed to the find 
     454    return finder.send(finder_method, :all, {:readonly => true, :limit => @items_limit, :offset => @items_offset}.merge(options)) 
    453455  end 
    454456end 
  • branches/workorder_report_rename/app/controllers/asset_controller.rb

    r367 r464  
    2727  def view 
    2828    @title = _('Asset information') 
    29     @help = 'view' 
    3029 
    3130    if params[:full_code] or params[:id] 
     
    6463    redirect_to(:action => 'create_subasset') and return if AssetType.count == 0 
    6564 
    66     @help = 'general' 
    6765    @title = _('Select asset type to create') 
    6866 
     
    7876    end 
    7977 
    80     @help = 'general' 
    8178    @title = _('Create a subasset for %s', @selected_asset.code_and_name) 
    8279 
     
    165162 
    166163  def edit 
    167     @help = 'edit' 
    168164 
    169165    unless @selected_asset.authorized_to_edit? 
     
    218214 
    219215  def change_type 
    220     @help = 'change_type' 
    221216    @model = @selected_asset 
    222217 
  • branches/workorder_report_rename/app/controllers/asset_tree_controller.rb

    r455 r464  
    119119    return redirect_to(:controller => 'timeline', :action => 'index') if request.env['HTTP_REFERER'] =~ /timeline$/x 
    120120 
     121    # Stay on the asset permissions page 
     122    return redirect_to(:controller => 'asset_permission', :action => 'list') if request.env['HTTP_REFERER'] =~ /asset_permission\/list$/x 
     123 
    121124    # Default is to redirect to asset view 
    122125    return redirect_to(:controller => 'asset', :action=> 'view') 
  • branches/workorder_report_rename/app/controllers/asset_type_controller.rb

    r378 r464  
    1313 
    1414  def list 
    15     @help = 'general' 
    1615    @title = _('Asset types') 
    1716    @fields = [ 
     
    2120              ] 
    2221    @actions = [ 
    23                 [_('Fields'), {:controller => 'asset_field', :action=> 'list', :image=>'fixme'}], 
     22                [_('Fields'), {:controller => 'asset_field', :action=> 'list', :image=>'16x16/single_asset'}], 
    2423                [_('Edit'), {:action=> 'edit', :image=>'16x16/edit'}] 
    2524               ] 
     
    2928 
    3029  def view 
    31     @help = 'general' 
    3230    @title = _('Asset type information') 
    3331    @asset_type = AssetType.find(params[:id], :readonly => true) 
     
    4240    end 
    4341 
    44     @help = 'general' 
    4542    @title = _('Create a new asset type') 
    4643    @fields = [ 
     
    5552 
    5653  def edit 
    57     @help = 'general' 
    5854    @title = _('Edit asset type') 
    5955    @fields = [ 
  • branches/workorder_report_rename/app/controllers/asset_type_icon_controller.rb

    r293 r464  
    1616 
    1717  def list 
    18     @help = 'general' 
    1918    @title = _('Asset type icons') 
    2019    @fields = [ 
     
    3332 
    3433  def create 
    35     @help = 'general' 
    3634    @title = _('Create a new asset type icon') 
    3735    @fields = [ 
  • branches/workorder_report_rename/app/controllers/attachment_controller.rb

    r313 r464  
    1919  # The choice is saved to session so that it is rememberd when returned to this action. 
    2020  def list 
    21     @help = 'general' 
    2221    @fields = [ 
    23       [_('Asset'), :asset], 
    2422      [_('Attachment'), :self], 
    2523      [_('Name'), :name_or_filename], 
    2624      [_('Creator'), :creator], 
    27       [_('Creation date'), :created_at] 
     25      [_('Creation date'), :created_at], 
     26      [_('Asset'), :asset] 
    2827    ] 
    2928    @actions = [ 
     
    5453  # View file details 
    5554  def view 
    56     @help = 'general' 
    5755    begin 
    5856      @file = Attachment.find_without(:data, params[:id], :include => [:data_permissions, :asset, :creator]) 
     
    7775  # Uploads and attaches file to asset @selected_asset 
    7876  def attach 
    79     @help = 'general' 
    8077    unless @selected_asset.authorized_to_attach_file? 
    8178      redirect_with_error_message(msg_unauthorized_operation(_('attach file'), @selected_asset.code_and_name), :action => 'list') 
  • branches/workorder_report_rename/app/controllers/keyring_controller.rb

    r378 r464  
    1313 
    1414  def list 
    15     @help = 'general' 
    1615    @title = _('Keyrings') 
    1716    @items = items_for_page(Keyring, :order => 'name') 
     
    2928 
    3029  def create 
    31     @help = 'general' 
    3230    @title = _('Create a new keyring') 
    3331    @fields = [ 
     
    3937 
    4038  def edit 
    41     @help = 'general' 
    4239    @title = _('Edit keyring') 
    4340    @fields = [ 
     
    5754 
    5855  def edit_keys 
    59     @help = 'general' 
    6056    @keyring = Keyring.find params[:id], :readonly => true 
    6157    @items_count = @keyring.action_keys.count 
     
    10399 
    104100  def edit_owners 
    105     @help = 'general' 
    106101    @keyring = Keyring.find params[:id], :readonly => true 
    107102    @items_count = @keyring.users.count 
  • branches/workorder_report_rename/app/controllers/message_controller.rb

    r352 r464  
    1919                [_('Date'), :created_at], 
    2020                [_('From'), :sender_name], 
    21                 [_('Subject'), :subject
     21                [_('Subject'), :subject_text
    2222              ] 
    2323    @actions = [ [_('View'), { :controller => 'message', :action => 'view', :image => '16x16/display'} ] ] 
     
    4444  end 
    4545 
     46  def send_message 
     47    if params[:user_id] 
     48      @user = User.find(params[:user_id], :readonly => true) 
     49      @title = _('Send message to %s', @user.name) 
     50    else 
     51      @title = _('Send message') 
     52      @receiver_options = User.find(:all, :readonly => true).collect { |u| [u.login_and_name, u.id] }  
     53    end 
     54 
     55    if request.post? 
     56      @message = Message.new(params[:message]) 
     57      @message.sender = session[:user] 
     58      if @message.save 
     59        flash[:notice] = _('Message sent') 
     60        redirect_to(:controller => 'user', :action => 'view', :id => @message.receiver_user_id) 
     61      end 
     62    else 
     63      @message = Message.new 
     64    end 
     65  end 
     66 
    4667  def change_state_to_old 
    4768    redirect_to :back 
  • branches/workorder_report_rename/app/controllers/overview_controller.rb

    r455 r464  
    1515 
    1616  def executive_view 
    17     @title = _('Executive overview') 
    18     @help = 'general' 
     17    @title = _('Overview') 
    1918  end 
    2019 
    2120  def worker_view 
    2221    @title = _('Worker overview') 
    23     @help = 'general' 
    2422  end 
    2523 
  • branches/workorder_report_rename/app/controllers/timeline_controller.rb

    r455 r464  
    1818  # Optionally also lists timeline events for all assets subassets: 
    1919  def index 
    20     @help = 'index' 
    2120 
    2221    if session[:select_branches] 
  • branches/workorder_report_rename/app/controllers/type_attachment_controller.rb

    r313 r464  
    1616 
    1717  def list 
    18     @help = 'general' 
    1918    @fields = [ 
    20       [_('Asset type'), :asset_type], 
    2119      [_('Attachment'), :self], 
    2220      [_('Name'), :name_or_filename], 
    2321      [_('Creator'), :creator], 
    24       [_('Creation date'), :created_at] 
     22      [_('Creation date'), :created_at], 
     23      [_('Asset type'), :asset_type] 
    2524    ] 
    2625    @actions = [ 
     
    5150 
    5251  def attach 
    53     @help = 'general' 
    5452    @asset_type = AssetType.find(params[:id], :readonly => true) 
    5553    unless @asset_type.authorized_to_create?(TypeAttachment) 
     
    7876 
    7977  def view 
    80     @help = 'general' 
    8178    begin 
    8279      @file = TypeAttachment.find_without(:data, params[:id], :include => [:data_permissions, :asset_type, :creator]) 
  • branches/workorder_report_rename/app/controllers/user_controller.rb

    r352 r464  
    2121 
    2222  def list 
    23     @help = 'general_admin' 
    2423    @title = _('User accounts') 
    2524    @fields = [ 
     
    4140 
    4241  def create 
    43     @help = 'general_admin' 
    4442    @title = _('Create new user account') 
    4543    @fields = [ 
     
    5755 
    5856  def edit 
    59     @help = 'general_admin' 
    6057    @model = User.find params[:id] 
    6158    @title = _('Edit user account: %s', @model.login) 
     
    9390    if request.post? 
    9491      @model.attributes = params[:model] 
    95       @model.password = '' # conserve password 
     92      @model.password = nil # conserve password 
    9693      if @model.save 
    9794        flash[:notice] = _('User information changed') 
     
    142139 
    143140  def reset_password 
    144     @help = 'general_admin' 
    145141    @user = User.find params[:id] 
    146142    @title = _('Reset password for user account %s', @user.login) 
     
    169165        session[:user] = User.accessing(session[:user]) 
    170166 
     167        expire_fragment(:controller => 'asset_tree', :action => 'asset_tree', :action_suffix => session[:user].login) 
    171168        redirect_back_or_default :controller => 'asset', :action => "view" 
    172169      else 
     
    195192  # Searches users by login or names and lists users. 
    196193  def search 
    197     @help = 'general' 
    198194    @title = _('Search users') 
    199195    @fields = [ 
     
    220216 
    221217  def view 
    222     @help = 'general' 
    223218    @user = User.find params[:id] 
    224219    @title = _("%s's user information", @user.login) 
    225  
    226     if request.post? 
    227       @message = Message.new(params[:message]) 
    228       @message.receiver = @user 
    229       @message.sender = session[:user] 
    230       if @message.save 
    231         flash[:notice] = _('Message sent') 
    232         @message = Message.new 
    233       end 
    234     else 
    235       @message = Message.new 
    236     end 
    237220  end 
    238221 
    239222  def edit_my_information 
    240     @help = 'general' 
    241223    @model = User.find session[:user].id 
    242224    @title = _('My information') 
     
    260242      params[:model].delete_if { |key, value| !['email', 'phone', 'lang'].include? key } 
    261243      @model.attributes = params[:model] 
    262       @model.password = '' # conserve password 
     244      @model.password = nil # conserve password 
    263245      if @model.save 
    264246        session[:user] = @model 
     
    279261 
    280262  def change_password 
    281     @help = 'general' 
    282263    @title = _('Change password') 
    283264    @user = User.find session[:user].id 
  • branches/workorder_report_rename/app/controllers/user_group_controller.rb

    r378 r464  
    1717  # Lists all user groups 
    1818  def list 
    19     @help = 'general' 
    2019    @title = _('User groups') 
    2120    @items = items_for_page(UserGroup, :order => 'name') 
     
    3635  # Create new user group 
    3736  def create 
    38     @help = 'general' 
    3937    @title = _('Create user group') 
    4038    @fields = [ 
     
    5048  # Edit user group 
    5149  def edit 
    52     @help = 'general' 
    5350    @title = _('Edit user group') 
    5451    @fields = [ 
     
    7673  # View and manage users in user group 
    7774  def users 
    78     @help = 'general' 
    7975    @user_group = UserGroup.find params[:id] 
    8076    @title = _('Users in user group "%s"', @user_group.name) 
  • branches/workorder_report_rename/app/controllers/work_order_controller.rb

    r455 r464  
    2828  # Lists work orders for asset @selected_asset. 
    2929  # Optionally also lists work orders for all asset's subassets: 
    30   # The choice is saved to session so that it is rememberd when returned to this action. 
    3130  def list 
    32     @help = 'general' 
    33     @fields = [ [_('Asset'), :asset], 
    34                 [_('Work order'), :self], 
     31    define_priority_options 
     32    @fields = [  
     33                [_('ID'), :self], 
     34                [_('Type'), :work_order_type_name], 
     35                [_('State'), {:name => :state}.merge(@state_to_text)], 
    3536                [_('Description'), :short_description], 
    36                 [_('Creator'), :creator], 
     37                [_('Priority'), {:name => :priority}.merge(@priority_to_text)], 
     38                [_('Responsible worker'), :responsible_user], 
    3739                [_('Starting time'), :starting_time], 
    38                 [_('Deadline'), :deadline] ] 
    39     @assigned_field = ['Responsible user', :responsible_user] 
     40                [_('Deadline'), :deadline], 
     41                [_('Asset'), :asset] 
     42              ] 
    4043    @actions = [] 
    41  
    42     @user_options = [[_('Anybody'), -1]] 
    43     User.find(:all, :readonly => true).each {|user| 
    44       @user_options.push([user.login_and_name, user.id]) 
    45     } 
    46  
    47     if request.post? 
    48       session[:work_order_selected_user_id] = params[:user_id].to_i 
    49       session[:show_closed_work_orders] = (params[:show_closed] == '1') ? true : false 
    50     end 
    5144 
    5245    if session[:select_branches] 
     
    5952    conditions = @selected_assets_condition 
    6053 
    61     if session[:work_order_selected_user_id] and session[:work_order_selected_user_id] > 0 
    62       conditions[0] += ' AND responsible_user_id = ?' 
    63       conditions.push session[:work_order_selected_user_id].to_i 
    64     end 
    65     conditions[0] += ' AND state = ?' 
    66  
    67     @items_limit = 10 
    68  
    69     @work_order_lists = [] 
    70     @work_order_lists.push([_('New work orders'), 'new_items_offset', WorkOrder.NEW]) 
    71     @work_order_lists.push([_('Assigned work orders'), 'assigned_items_offset', WorkOrder.ASSIGNED]) 
    72     @work_order_lists.push([_('Accepted work orders'), 'accepted_items_offset', WorkOrder.ACCEPTED]) 
    73     @work_order_lists.push([_('Closed work orders'), 'closed_items_offset', WorkOrder.CLOSED]) if session[:show_closed_work_orders] 
    74  
    75     for list in @work_order_lists 
    76       lists_conditions = conditions + [list.pop] 
    77       offset = params[list.last.to_sym].to_i || 0 
    78       work_orders = WorkOrder.find_authorized_to_read(:all, :conditions => lists_conditions, :offset => offset, :limit => @items_limit, :order => 'work_orders.id', :include => [:asset, :creator, :responsible_user]) 
    79  
    80       list.push(offset, 
    81                 (work_orders.size < @items_limit) ? offset + work_orders.size : WorkOrder.count_authorized_to(:read, lists_conditions), 
    82                 work_orders) 
    83     end 
     54    @items = items_for_page(WorkOrder, :finder_method => :find_authorized_to_read, :conditions => conditions, :readonly => true) 
     55    render(:partial => 'shared/list_items', :layout => 'mainlevel') 
    8456  end 
    8557 
    8658  def view 
    87     @help = 'general' 
    8859    # Find objects 
    8960    begin 
     
    10576 
    10677    @wo_title = _('Work order %s (%s)', @work_order.to_s, @work_order.work_order_type.name) 
     78    define_priority_options 
    10779 
    10880    if request.post? 
     
    11385      removed_worker_ids = old_worker_ids - new_worker_ids 
    11486 
     87      # Trigger the gettext 
     88      # FIXME: Come up with something better 
     89      _('You have been removed from the list of workers in this work order') 
     90      _('You have been added to the list of workers in this work order') 
     91 
    11592      for worker_id in removed_worker_ids 
     93        next if worker_id == session[:user].id 
    11694        Message.create(:receiver_user_id => worker_id, 
    11795                    :subject => 'You have been removed from the list of workers in this work order', 
     
    12098 
    12199      for worker_id in added_worker_ids 
     100        next if worker_id == session[:user].id 
    122101        Message.create(:receiver_user_id => worker_id, 
    123102                    :subject => 'You have been added to the list of workers in this work order', 
     
    164143 
    165144  def edit 
    166     @help = 'general' 
    167145    # Find objects 
    168146    @work_order = WorkOrder.find(params[:id], :include => [:data_permissions, :asset, :creator, :responsible_user]) 
     
    172150      return 
    173151    end 
     152    define_priority_options 
    174153    @events = @work_order.work_order_events 
    175154    @users = User.find :all # Data permissions will change 
     
    206185 
    207186  def create 
    208     @help = 'general' 
    209187    unless @selected_asset.authorized_to_create_work_order? 
    210188      redirect_with_error_message(msg_unauthorized_operation(_('create work order'), @selected_asset.code_and_name), :action => 'list') 
    211189      return 
    212190    end 
     191 
     192    define_priority_options 
    213193 
    214194    @title = _('Create new work order') 
     
    248228  end 
    249229 
     230  def move 
     231    begin 
     232      @work_order = WorkOrder.find(params[:id], :include => [:data_permissions, :asset, :creator, :responsible_user]) 
     233    rescue ActiveRecord::RecordNotFound 
     234        redirect_with_error_message(msg_non_existing_data(WorkOrder, params[:id]), :action => 'list') 
     235    end 
     236     
     237    unless @work_order.authorized_to_edit? 
     238      redirect_with_error_message(msg_unauthorized_operation(_('edit'), "{#{@work_order.id}}"), :action => 'list') 
     239      return 
     240    end 
     241     
     242    @replace_actions = [] 
     243    @title = _('Move the work order {%i} to a another asset', @work_order.id) 
     244    asset_options = (Asset.find_authorized_to(:create_work_order, [:all]) - [@work_order.asset]).collect { |a| 
     245      [a.full_code, a.id] 
     246    } 
     247    @fields = [ [_('Asset'), 'work_order', 'asset_id', asset_options ] ] 
     248    @hidden_fields = [ ['id', @work_order.id] ] 
     249 
     250    if request.post? 
     251      new_asset = Asset.find_authorized_to(:create_work_order, [params[:work_order][:asset_id]]) 
     252      if @work_order.move(new_asset.id) 
     253        flash[:notice] = _('The work order {%i} moved to the asset %s', @work_order.id, new_asset.full_code) 
     254        redirect_to(:action => 'list') 
     255        return 
     256      end 
     257 
     258      flash[:error] = _('Unable to move the work order {%i} to the asset %s', @work_order.id, new_asset.full_code) 
     259    end 
     260 
     261    render(:partial => 'shared/select', :layout => 'mainlevel', :locals => { :submit_text => _('Move'), :cancel_url_options => {:action => 'list'} }) 
     262  end 
     263 
    250264  def remove 
    251265    common_remove(WorkOrder, 'short_description', :action => 'list' ) { |instance| 
     
    329343    end 
    330344  end 
     345 
     346  def define_priority_options 
     347    @priority_options = [ 
     348                          [_('Highest'),   6], 
     349                          [_('Very high'), 5], 
     350                          [_('High'),      4], 
     351                          [_('Normal'),    3], 
     352                          [_('Low'),       2], 
     353                          [_('Very low'),  1], 
     354                          [_('Lowest'),    0] 
     355                        ] 
     356    @priority_to_text = { } 
     357    @priority_options.each { |text, priority| @priority_to_text[priority] = text } 
     358    @state_to_text = {0 => _('New'), 1 => _('Assigned'), 2 =>  _('Accepted'), 3 => _('Closed')} 
     359  end 
    331360end 
  • branches/workorder_report_rename/app/controllers/work_order_type_controller.rb

    r455 r464  
    1717  # Displays the work_order type listing 
    1818  def list 
    19     @help = 'general' 
    2019    @title = _('Work order types') 
    2120    @fields = [ [_('Name'), :name], 
     
    2928