Sha256: 04f7f71d203687a5e3d72de047704ab6f6531d338906f6a782ce4b9d00798070

Contents?: true

Size: 1.89 KB

Versions: 6

Compression:

Stored size: 1.89 KB

Contents

module MissionControl::Servers
  class ProjectsController < ApplicationController
    before_action :set_project, only: %i[ show edit update destroy ]
    before_action :verify_single_project_mode, only: %i[ new create ]

    # GET /projects
    def index
      @projects = Project.all
    end

    # GET /projects/1
    def show
      @services = if params[:hostname]
        @project.services.where(hostname: params[:hostname]).group_by(&:hostname)
      else
        @project.services.group_by(&:hostname)
      end
    end

    # GET /projects/new
    def new
      @project = Project.new
    end

    # GET /projects/1/edit
    def edit
    end

    # POST /projects
    def create
      @project = Project.new(project_params)

      if @project.save
        redirect_to @project, notice: "Project was successfully created."
      else
        render :new, status: :unprocessable_entity
      end
    end

    # PATCH/PUT /projects/1
    def update
      if @project.update(project_params)
        redirect_to @project, notice: "Project was successfully updated.", status: :see_other
      else
        render :edit, status: :unprocessable_entity
      end
    end

    # DELETE /projects/1
    def destroy
      @project.destroy!
      redirect_to projects_url, notice: "Project was successfully destroyed.", status: :see_other
    end

    private
      def verify_single_project_mode
        if MissionControl::Servers.configuration.single_project_mode && Project.any?
          redirect_to projects_url, notice: "Single project mode is enabled. You can only have one project at a time."
        end
      end

      # Use callbacks to share common setup or constraints between actions.
      def set_project
        @project = Project.find(params[:id])
      end

      # Only allow a list of trusted parameters through.
      def project_params
        params.require(:project).permit(:title, :token)
      end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mission_control-servers-0.1.1 app/controllers/mission_control/servers/projects_controller.rb
mission_control-servers-0.1.0 app/controllers/mission_control/servers/projects_controller.rb
mission_control-servers-0.0.5 app/controllers/mission_control/servers/projects_controller.rb
mission_control-servers-0.0.4 app/controllers/mission_control/servers/projects_controller.rb
mission_control-servers-0.0.3 app/controllers/mission_control/servers/projects_controller.rb
mission_control-servers-0.0.2 app/controllers/mission_control/servers/projects_controller.rb