diff options
| author | Alban Peignier | 2017-09-30 14:17:28 +0200 | 
|---|---|---|
| committer | Alban Peignier | 2017-09-30 14:46:09 +0200 | 
| commit | fda2b7b07349fd20cc70d68bf1544a7f51841f70 (patch) | |
| tree | 87772ddf673bcee1861ad5d54d9b26cfaed7fea9 /app | |
| parent | 1ae15e06f2a56f9a83d670ad9c785a74cb6af43e (diff) | |
| download | chouette-core-fda2b7b07349fd20cc70d68bf1544a7f51841f70.tar.bz2 | |
Create DashboardController with STIF implementation. Refs #4655
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/dashboards_controller.rb | 8 | ||||
| -rw-r--r-- | app/controllers/workbenches_controller.rb | 5 | ||||
| -rw-r--r-- | app/models/dashboard.rb | 27 | ||||
| -rw-r--r-- | app/models/workbench.rb | 1 | ||||
| -rw-r--r-- | app/views/dashboards/show.html.slim | 15 | ||||
| -rw-r--r-- | app/views/stif/dashboards/_dashboard.html.slim | 73 | 
6 files changed, 125 insertions, 4 deletions
| diff --git a/app/controllers/dashboards_controller.rb b/app/controllers/dashboards_controller.rb new file mode 100644 index 000000000..4c0042b67 --- /dev/null +++ b/app/controllers/dashboards_controller.rb @@ -0,0 +1,8 @@ +class DashboardsController < BreadcrumbController +  respond_to :html, only: [:show] + +  def show +    @dashboard = Dashboard.create self +  end + +end diff --git a/app/controllers/workbenches_controller.rb b/app/controllers/workbenches_controller.rb index 54ddb8be1..d597ba371 100644 --- a/app/controllers/workbenches_controller.rb +++ b/app/controllers/workbenches_controller.rb @@ -5,10 +5,7 @@ class WorkbenchesController < BreadcrumbController    respond_to :html, only: [:show, :index]    def index -    # Only display Wb with selected name, according to #4108 -    @workbench = current_organisation.workbenches.find_by(name: "Gestion de l'offre") -    @referentials = @workbench.all_referentials -    @calendars = Calendar.where('organisation_id = ? OR shared = ?', current_organisation.id, true) +    redirect_to dashboard_path    end    def show diff --git a/app/models/dashboard.rb b/app/models/dashboard.rb new file mode 100644 index 000000000..a53267db5 --- /dev/null +++ b/app/models/dashboard.rb @@ -0,0 +1,27 @@ +# +# The default Dashboard implementation can be customized in an initializer : +# +#   Rails.application.config.to_prepare do +#     Dashboard.default_class = Custom::Dashboard +#   end +# +class Dashboard +  include ActiveModel::Conversion + +  @@default_class = self +  mattr_accessor :default_class + +  attr_reader :context + +  def initialize(context) +    @context = context +  end + +  def self.create(context) +    default_class.new context +  end + +  def current_organisation +    context.send(:current_organisation) +  end +end diff --git a/app/models/workbench.rb b/app/models/workbench.rb index ae111a9c5..c304e8ba9 100644 --- a/app/models/workbench.rb +++ b/app/models/workbench.rb @@ -12,6 +12,7 @@ class Workbench < ActiveRecord::Base    has_many :imports    has_many :workbench_imports    has_many :compliance_check_sets +  has_many :compliance_control_sets    validates :name, presence: true    validates :organisation, presence: true diff --git a/app/views/dashboards/show.html.slim b/app/views/dashboards/show.html.slim new file mode 100644 index 000000000..66154712d --- /dev/null +++ b/app/views/dashboards/show.html.slim @@ -0,0 +1,15 @@ +/ PageHeader += pageheader 'tableau-de-bord', +             t('.title', organisation: current_organisation.name) + +  / Below is secundary actions & optional contents (filters, ...) +  .row.mb-sm +   .col-lg-12.text-right +     - if policy(Api::V1::ApiKey).create? +       = link_to t('actions.create_api_key'), new_api_key_path, class: 'btn btn-primary' + + +/ PageContent +.page_content +  .container-fluid +    = render partial: @dashboard diff --git a/app/views/stif/dashboards/_dashboard.html.slim b/app/views/stif/dashboards/_dashboard.html.slim new file mode 100644 index 000000000..3142ecd5b --- /dev/null +++ b/app/views/stif/dashboards/_dashboard.html.slim @@ -0,0 +1,73 @@ +.row +  .col-lg-12 +    h2.content_header = t('.subtitle') + +.row +  .col-lg-6.col-md-6.col-sm-6.col-xs-12 +    .panel.panel-default +      .panel-heading +        h3.panel-title +          = t('.organisation') + +      .panel-body +        em.small.text-muted = t('.no_content') + +    .panel.panel-default +      .panel-heading +        h3.panel-title +          = t('.idf') + +      .panel-body +        em.small.text-muted = t('.no_content') + +    .panel.panel-default +      .panel-heading +        h3.panel-title +          = t('.api_keys') +          span.badge.ml-xs = current_organisation.api_keys.count if current_organisation.api_keys.present? +      - if current_organisation.api_keys.present? +        - current_organisation.api_keys.each do |api_key| +          .list-group +            = policy(api_key).edit? ? link_to( "#{api_key.name} : #{api_key.token}", edit_api_key_path(api_key), class: 'list-group-item') : "#{api_key.name} : #{api_key.token}" +      - else +        .panel-body +          em.small.text-muted = t('.no_content') + +  .col-lg-6.col-md-6.col-sm-6.col-xs-12 +    .panel.panel-default +      .panel-heading +        h3.panel-title.with_actions +          div +            = t('.referentials') +            span.badge.ml-xs = @referentials.count if @referentials.present? + +          div +            = link_to '', workbench_path(@dashboard.workbench), class: ' fa fa-chevron-right pull-right', title: t('.see') + +      - if @referentials.present? +        .list-group +          - @referentials.each_with_index do |referential, i| +            = link_to referential.name, referential_path(referential, workbench_id: referential.workbench_id, current_workbench_id: @dashboard.workbench.id), class: 'list-group-item' if i < 6 + +      - else +        .panel-body +          em.small.text-muted = t('.no_content') + +    .panel.panel-default +      .panel-heading +        h3.panel-title.with_actions +          div +            = t('.calendars') +            span.badge.ml-xs = @dashboard.calendars.count if @dashboard.calendars.present? + +          div +            = link_to '', calendars_path, class: ' fa fa-chevron-right pull-right', title: t('.see') + +      - if @dashboard.calendars.present? +        .list-group +          - @dashboard.calendars.each_with_index do |calendar, i| +            = link_to calendar.name, calendar_path(calendar), class: 'list-group-item' if i < 6 + +      - else +        .panel-body +          em.small.text-muted = t('.no_content') | 
