Sha256: 4221878efc1239d920dff1c2b68cb49c347edc0971461d0770ebc6a1bf7a691f

Contents?: true

Size: 869 Bytes

Versions: 6

Compression:

Stored size: 869 Bytes

Contents

module Dashing
  class DashboardsController < ApplicationController

    before_filter :check_dashboard_name, only: :show

    rescue_from ActionView::MissingTemplate, with: :template_not_found

    def index
      render file: dashboard_path(Dashing.config.default_dashboard || Dashing.first_dashboard || ''), layout: Dashing.config.dashboard_layout_path
    end

    def show
      render file: dashboard_path(params[:name]), layout: Dashing.config.dashboard_layout_path
    end

    private

    def check_dashboard_name
      raise 'bad dashboard name' unless params[:name] =~ /\A[a-zA-z0-9_\-]+\z/
    end

    def dashboard_path(name)
      Dashing.config.dashboards_views_path.join(name)
    end

    def template_not_found
      raise "Count not find template for dashboard '#{params[:name]}'. Define your dashboard in #{dashboard_path('')}"
    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dashing-rails-2.5.0 app/controllers/dashing/dashboards_controller.rb
dashing-rails-2.4.5 app/controllers/dashing/dashboards_controller.rb
dashing-rails-2.4.4 app/controllers/dashing/dashboards_controller.rb
dashing-rails-2.4.3 app/controllers/dashing/dashboards_controller.rb
dashing-rails-2.4.2 app/controllers/dashing/dashboards_controller.rb
dashing-rails-2.4.1 app/controllers/dashing/dashboards_controller.rb