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') |
