Sha256: 6cde3dfc79f40e81bd54a704d7b7f69807c001a6af721f0052b145258d8741d1

Contents?: true

Size: 1.92 KB

Versions: 3

Compression:

Stored size: 1.92 KB

Contents

module RailsWorkflow
  class ProcessesController < ApplicationController
    layout 'rails_workflow/application'
    respond_to :html
    before_action :set_process, only: [:show, :edit, :update, :destroy]

    before_filter do
      @processes_section_active = true
    end


    def index
      @processes = ProcessDecorator.decorate_collection(undecorated_collection)

      @errors = Error.
          unresolved.order(id: :asc).
          includes(:parent).limit(10)

      @open_user_operations = OperationDecorator.
          decorate_collection(
            RailsWorkflow::Operation.incompleted.
                unassigned.includes(:template).
                limit(20)
          )

      @statistic = {
          all: RailsWorkflow::Process.count,
          statuses: RailsWorkflow::Process.count_by_statuses
      }
    end

    def new
      @process = Process.new(permitted_params).decorate
    end


    def create
      @process = RailsWorkflow::ProcessManager.start_process(
          params[:process][:template_id], {}
      )

      redirect_to process_url(@process)
    end


    def update
      @process.update(permitted_params)
      redirect_to processes_path
    end

    def destroy
      @process.destroy
      redirect_to processes_path
    end



    protected
    def permitted_params
      params.permit(
          process: [
              :status,
              :async,
              :title,
              :template_id
          ],
          filter: [:status]
      )[:process]
    end

    def undecorated_collection
      collection_scope = Process.default_scoped

      if params[:filter]
        status = Process.get_status_code(params[:filter]['status'])
        collection_scope = collection_scope.by_status(status)
      end

      collection_scope.paginate(page: params[:page]).order(id: :asc)
    end




    def set_process
      @process ||= ProcessDecorator.decorate(Process.find params[:id]).decorate
    end


  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rails_workflow-0.3.7 app/controllers/rails_workflow/processes_controller.rb
rails_workflow-0.3.6 app/controllers/rails_workflow/processes_controller.rb
rails_workflow-0.3.5 app/controllers/rails_workflow/processes_controller.rb