MiraitSystems/enju_trunk

View on GitHub
app/controllers/keycodes_controller.rb

Summary

Maintainability
A
1 hr
Test Coverage
class KeycodesController < ApplicationController
  load_and_authorize_resource
  before_filter :prepare_options

  def index
    @keycodes = Keycode.unscoped.order(:position).page(params[:page])
    if params[:name].present?
      @keycodes = @keycodes.where(:name => params[:name])
    end
  end

  def new
    @keycode = Keycode.new
  end

  def create
    @keycode = Keycode.new(params[:keycode])
    respond_to do |format|
      if @keycode.save
        flash[:notice] = t('controller.successfully_created', :model => t('activerecord.models.keycode'))
        format.html { redirect_to(@keycode) }
        format.json { render :json => @keycode, :status => :created, :location => @keycode }
      else
        format.html { render :action => "new" }
        format.json { render :json => @keycode.errors, :status => :unprocessable_entity }
      end
    end
  end

  def edit
    @keycode = Keycode.unscoped.find(params[:id])
  end

  def update
    @keycode = Keycode.unscoped.find(params[:id])
    if params[:move]
      move_position(@keycode, params[:move])
      return
    end 
    respond_to do |format|
      if @keycode.update_attributes(params[:keycode])
        flash[:notice] = t('controller.successfully_updated', :model => t('activerecord.models.keycode'))
        format.html { redirect_to(@keycode) }
        format.json { head :no_content }
      else
        format.html { render :action => "edit" }
        format.json { render :json => @keycode.errors, :status => :unprocessable_entity }
      end
    end
  end

  def show
    @keycode = Keycode.unscoped.find(params[:id])
  end

  def destroy
    @keycode = Keycode.unscoped.find(params[:id])
    respond_to do |format|
      @keycode.destroy
      format.html { redirect_to(keycodes_url) }
      format.json { head :no_content }
    end
  end

  private
  def prepare_options
    @keycode_names = Keycode.unscoped.group(:name, :display_name).select([:name, :display_name])
    @name = params[:name]
  end
end