commit
be386a3870
23 changed files with 463 additions and 0 deletions
2
Gemfile
2
Gemfile
|
@ -109,6 +109,8 @@ gem 'prawn_rails', '~> 0.0.11'
|
||||||
gem 'chunky_png'
|
gem 'chunky_png'
|
||||||
gem 'sentry-raven'
|
gem 'sentry-raven'
|
||||||
|
|
||||||
|
gem "administrate"
|
||||||
|
|
||||||
gem 'rack-mini-profiler'
|
gem 'rack-mini-profiler'
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
|
|
25
Gemfile.lock
25
Gemfile.lock
|
@ -59,6 +59,18 @@ GEM
|
||||||
tzinfo (~> 1.1)
|
tzinfo (~> 1.1)
|
||||||
addressable (2.5.1)
|
addressable (2.5.1)
|
||||||
public_suffix (~> 2.0, >= 2.0.2)
|
public_suffix (~> 2.0, >= 2.0.2)
|
||||||
|
administrate (0.4.0)
|
||||||
|
autoprefixer-rails (~> 6.0)
|
||||||
|
bourbon (~> 4.2)
|
||||||
|
datetime_picker_rails (~> 0.0.7)
|
||||||
|
jquery-rails (~> 4.0)
|
||||||
|
kaminari (~> 0.16)
|
||||||
|
momentjs-rails (~> 2.8)
|
||||||
|
neat (~> 1.1)
|
||||||
|
normalize-rails (~> 3.0)
|
||||||
|
rails (>= 4.2, < 5.1)
|
||||||
|
sass-rails (~> 5.0)
|
||||||
|
selectize-rails (~> 0.6)
|
||||||
apipie-rails (0.3.7)
|
apipie-rails (0.3.7)
|
||||||
json
|
json
|
||||||
arel (7.1.4)
|
arel (7.1.4)
|
||||||
|
@ -79,6 +91,9 @@ GEM
|
||||||
sass (>= 3.3.4)
|
sass (>= 3.3.4)
|
||||||
bootstrap-wysihtml5-rails (0.3.3.8)
|
bootstrap-wysihtml5-rails (0.3.3.8)
|
||||||
railties (>= 3.0)
|
railties (>= 3.0)
|
||||||
|
bourbon (4.3.4)
|
||||||
|
sass (~> 3.4)
|
||||||
|
thor (~> 0.19)
|
||||||
brakeman (3.7.0)
|
brakeman (3.7.0)
|
||||||
browser (2.3.0)
|
browser (2.3.0)
|
||||||
builder (3.2.3)
|
builder (3.2.3)
|
||||||
|
@ -116,6 +131,8 @@ GEM
|
||||||
safe_yaml (~> 1.0.0)
|
safe_yaml (~> 1.0.0)
|
||||||
daemons (1.2.4)
|
daemons (1.2.4)
|
||||||
database_cleaner (1.5.3)
|
database_cleaner (1.5.3)
|
||||||
|
datetime_picker_rails (0.0.7)
|
||||||
|
momentjs-rails (>= 2.8.1)
|
||||||
debug_inspector (0.0.2)
|
debug_inspector (0.0.2)
|
||||||
deep_cloneable (2.2.2)
|
deep_cloneable (2.2.2)
|
||||||
activerecord (>= 3.1.0, < 5.2.0)
|
activerecord (>= 3.1.0, < 5.2.0)
|
||||||
|
@ -396,15 +413,21 @@ GEM
|
||||||
mimemagic (0.3.2)
|
mimemagic (0.3.2)
|
||||||
mini_portile2 (2.3.0)
|
mini_portile2 (2.3.0)
|
||||||
minitest (5.10.3)
|
minitest (5.10.3)
|
||||||
|
momentjs-rails (2.17.1)
|
||||||
|
railties (>= 3.1)
|
||||||
multi_json (1.12.1)
|
multi_json (1.12.1)
|
||||||
multi_xml (0.6.0)
|
multi_xml (0.6.0)
|
||||||
multipart-post (2.0.0)
|
multipart-post (2.0.0)
|
||||||
mustermann (1.0.1)
|
mustermann (1.0.1)
|
||||||
|
neat (1.9.0)
|
||||||
|
sass (>= 3.3)
|
||||||
|
thor (~> 0.19)
|
||||||
nenv (0.3.0)
|
nenv (0.3.0)
|
||||||
netrc (0.11.0)
|
netrc (0.11.0)
|
||||||
nio4r (1.2.1)
|
nio4r (1.2.1)
|
||||||
nokogiri (1.8.1)
|
nokogiri (1.8.1)
|
||||||
mini_portile2 (~> 2.3.0)
|
mini_portile2 (~> 2.3.0)
|
||||||
|
normalize-rails (3.0.3)
|
||||||
notiffany (0.1.1)
|
notiffany (0.1.1)
|
||||||
nenv (~> 0.1)
|
nenv (~> 0.1)
|
||||||
shellany (~> 0.0)
|
shellany (~> 0.0)
|
||||||
|
@ -589,6 +612,7 @@ GEM
|
||||||
securecompare (1.0.0)
|
securecompare (1.0.0)
|
||||||
select2-rails (4.0.3)
|
select2-rails (4.0.3)
|
||||||
thor (~> 0.14)
|
thor (~> 0.14)
|
||||||
|
selectize-rails (0.12.4.1)
|
||||||
sentry-raven (2.2.0)
|
sentry-raven (2.2.0)
|
||||||
faraday (>= 0.7.6, < 1.0)
|
faraday (>= 0.7.6, < 1.0)
|
||||||
sexp_processor (4.10.0)
|
sexp_processor (4.10.0)
|
||||||
|
@ -693,6 +717,7 @@ PLATFORMS
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
active_model_serializers
|
active_model_serializers
|
||||||
|
administrate
|
||||||
apipie-rails
|
apipie-rails
|
||||||
bootstrap-datepicker-rails
|
bootstrap-datepicker-rails
|
||||||
bootstrap-sass (~> 3.3.5)
|
bootstrap-sass (~> 3.3.5)
|
||||||
|
|
21
app/controllers/manager/administrateurs_controller.rb
Normal file
21
app/controllers/manager/administrateurs_controller.rb
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
module Manager
|
||||||
|
class AdministrateursController < Manager::ApplicationController
|
||||||
|
# To customize the behavior of this controller,
|
||||||
|
# simply overwrite any of the RESTful actions. For example:
|
||||||
|
#
|
||||||
|
# def index
|
||||||
|
# super
|
||||||
|
# @resources = Administrateur.
|
||||||
|
# page(params[:page]).
|
||||||
|
# per(10)
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Define a custom finder by overriding the `find_resource` method:
|
||||||
|
# def find_resource(param)
|
||||||
|
# Administrateur.find_by!(slug: param)
|
||||||
|
# end
|
||||||
|
|
||||||
|
# See https://administrate-prototype.herokuapp.com/customizing_controller_actions
|
||||||
|
# for more information
|
||||||
|
end
|
||||||
|
end
|
23
app/controllers/manager/application_controller.rb
Normal file
23
app/controllers/manager/application_controller.rb
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# All Administrate controllers inherit from this `Admin::ApplicationController`,
|
||||||
|
# making it the ideal place to put authentication logic or other
|
||||||
|
# before_actions.
|
||||||
|
#
|
||||||
|
# If you want to add pagination or other controller-level concerns,
|
||||||
|
# you're free to overwrite the RESTful controller actions.
|
||||||
|
module Manager
|
||||||
|
class ApplicationController < Administrate::ApplicationController
|
||||||
|
before_action :authenticate_administration!
|
||||||
|
before_action :default_params
|
||||||
|
|
||||||
|
# Override this value to specify the number of elements to display at a time
|
||||||
|
# on index pages. Defaults to 20.
|
||||||
|
# def records_per_page
|
||||||
|
# params[:per_page] || 20
|
||||||
|
# end
|
||||||
|
|
||||||
|
def default_params
|
||||||
|
params[:order] ||= "created_at"
|
||||||
|
params[:direction] ||= "desc"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
21
app/controllers/manager/procedures_controller.rb
Normal file
21
app/controllers/manager/procedures_controller.rb
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
module Manager
|
||||||
|
class ProceduresController < Manager::ApplicationController
|
||||||
|
# To customize the behavior of this controller,
|
||||||
|
# simply overwrite any of the RESTful actions. For example:
|
||||||
|
#
|
||||||
|
# def index
|
||||||
|
# super
|
||||||
|
# @resources = Procedure.
|
||||||
|
# page(params[:page]).
|
||||||
|
# per(10)
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Define a custom finder by overriding the `find_resource` method:
|
||||||
|
# def find_resource(param)
|
||||||
|
# Procedure.find_by!(slug: param)
|
||||||
|
# end
|
||||||
|
|
||||||
|
# See https://administrate-prototype.herokuapp.com/customizing_controller_actions
|
||||||
|
# for more information
|
||||||
|
end
|
||||||
|
end
|
50
app/dashboards/administrateur_dashboard.rb
Normal file
50
app/dashboards/administrateur_dashboard.rb
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
require "administrate/base_dashboard"
|
||||||
|
|
||||||
|
class AdministrateurDashboard < Administrate::BaseDashboard
|
||||||
|
# ATTRIBUTE_TYPES
|
||||||
|
# a hash that describes the type of each of the model's fields.
|
||||||
|
#
|
||||||
|
# Each different type represents an Administrate::Field object,
|
||||||
|
# which determines how the attribute is displayed
|
||||||
|
# on pages throughout the dashboard.
|
||||||
|
ATTRIBUTE_TYPES = {
|
||||||
|
id: Field::Number,
|
||||||
|
email: Field::String,
|
||||||
|
created_at: Field::DateTime,
|
||||||
|
updated_at: Field::DateTime,
|
||||||
|
procedures: Field::HasMany,
|
||||||
|
}.freeze
|
||||||
|
|
||||||
|
# COLLECTION_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed on the model's index page.
|
||||||
|
#
|
||||||
|
# By default, it's limited to four items to reduce clutter on index pages.
|
||||||
|
# Feel free to add, remove, or rearrange items.
|
||||||
|
COLLECTION_ATTRIBUTES = [
|
||||||
|
:email,
|
||||||
|
:created_at,
|
||||||
|
:procedures,
|
||||||
|
].freeze
|
||||||
|
|
||||||
|
# SHOW_PAGE_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed on the model's show page.
|
||||||
|
SHOW_PAGE_ATTRIBUTES = [
|
||||||
|
:id,
|
||||||
|
:email,
|
||||||
|
:created_at,
|
||||||
|
:updated_at,
|
||||||
|
:procedures,
|
||||||
|
].freeze
|
||||||
|
|
||||||
|
# FORM_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed
|
||||||
|
# on the model's form (`new` and `edit`) pages.
|
||||||
|
FORM_ATTRIBUTES = [].freeze
|
||||||
|
|
||||||
|
# Overwrite this method to customize how procedures are displayed
|
||||||
|
# across all pages of the admin dashboard.
|
||||||
|
#
|
||||||
|
def display_resource(administrateur)
|
||||||
|
administrateur.email
|
||||||
|
end
|
||||||
|
end
|
77
app/dashboards/procedure_dashboard.rb
Normal file
77
app/dashboards/procedure_dashboard.rb
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
require "administrate/base_dashboard"
|
||||||
|
|
||||||
|
class ProcedureDashboard < Administrate::BaseDashboard
|
||||||
|
# ATTRIBUTE_TYPES
|
||||||
|
# a hash that describes the type of each of the model's fields.
|
||||||
|
#
|
||||||
|
# Each different type represents an Administrate::Field object,
|
||||||
|
# which determines how the attribute is displayed
|
||||||
|
# on pages throughout the dashboard.
|
||||||
|
ATTRIBUTE_TYPES = {
|
||||||
|
types_de_piece_justificative: TypesDePieceJustificativeCollectionField,
|
||||||
|
types_de_champ: TypesDeChampCollectionField,
|
||||||
|
dossiers: Field::HasMany,
|
||||||
|
procedure_path: Field::HasOne,
|
||||||
|
administrateur: Field::BelongsTo,
|
||||||
|
id: Field::Number,
|
||||||
|
libelle: Field::String,
|
||||||
|
description: Field::String,
|
||||||
|
organisation: Field::String,
|
||||||
|
direction: Field::String,
|
||||||
|
created_at: Field::DateTime,
|
||||||
|
updated_at: Field::DateTime,
|
||||||
|
for_individual: Field::Boolean,
|
||||||
|
individual_with_siret: Field::Boolean,
|
||||||
|
auto_archive_on: Field::DateTime,
|
||||||
|
published_at: Field::DateTime,
|
||||||
|
hidden_at: Field::DateTime,
|
||||||
|
archived_at: Field::DateTime,
|
||||||
|
}.freeze
|
||||||
|
|
||||||
|
# COLLECTION_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed on the model's index page.
|
||||||
|
#
|
||||||
|
# By default, it's limited to four items to reduce clutter on index pages.
|
||||||
|
# Feel free to add, remove, or rearrange items.
|
||||||
|
COLLECTION_ATTRIBUTES = [
|
||||||
|
:id,
|
||||||
|
:created_at,
|
||||||
|
:libelle,
|
||||||
|
:organisation,
|
||||||
|
:dossiers,
|
||||||
|
:published_at,
|
||||||
|
].freeze
|
||||||
|
|
||||||
|
# SHOW_PAGE_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed on the model's show page.
|
||||||
|
SHOW_PAGE_ATTRIBUTES = [
|
||||||
|
:id,
|
||||||
|
:administrateur,
|
||||||
|
:libelle,
|
||||||
|
:description,
|
||||||
|
:organisation,
|
||||||
|
:direction,
|
||||||
|
:created_at,
|
||||||
|
:updated_at,
|
||||||
|
:published_at,
|
||||||
|
:hidden_at,
|
||||||
|
:archived_at,
|
||||||
|
:types_de_champ,
|
||||||
|
:types_de_piece_justificative,
|
||||||
|
:for_individual,
|
||||||
|
:individual_with_siret,
|
||||||
|
:auto_archive_on,
|
||||||
|
].freeze
|
||||||
|
|
||||||
|
# FORM_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed
|
||||||
|
# on the model's form (`new` and `edit`) pages.
|
||||||
|
FORM_ATTRIBUTES = [].freeze
|
||||||
|
|
||||||
|
# Overwrite this method to customize how procedures are displayed
|
||||||
|
# across all pages of the admin dashboard.
|
||||||
|
#
|
||||||
|
# def display_resource(procedure)
|
||||||
|
# "Procedure ##{procedure.id}"
|
||||||
|
# end
|
||||||
|
end
|
7
app/fields/types_de_champ_collection_field.rb
Normal file
7
app/fields/types_de_champ_collection_field.rb
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
require "administrate/field/base"
|
||||||
|
|
||||||
|
class TypesDeChampCollectionField < Administrate::Field::Base
|
||||||
|
def to_s
|
||||||
|
data
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,7 @@
|
||||||
|
require "administrate/field/base"
|
||||||
|
|
||||||
|
class TypesDePieceJustificativeCollectionField < Administrate::Field::Base
|
||||||
|
def to_s
|
||||||
|
data
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,4 @@
|
||||||
|
.field-unit__label
|
||||||
|
= f.label field.attribute
|
||||||
|
.field-unit__field
|
||||||
|
= f.text_field field.attribute
|
|
@ -0,0 +1 @@
|
||||||
|
= field.to_s
|
|
@ -0,0 +1,15 @@
|
||||||
|
- if field.data.any?
|
||||||
|
%table.collection-data{ "aria-labelledby": "page-title" }
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%td.cell-label Libelle
|
||||||
|
%td.cell-label Type de champ
|
||||||
|
%tbody
|
||||||
|
- field.data.order(:order_place).each do |f|
|
||||||
|
%tr
|
||||||
|
%td.cell-data
|
||||||
|
= f.libelle
|
||||||
|
%td.cell-data
|
||||||
|
= I18n.t("activerecord.attributes.type_de_champ.type_champs.#{f.type_champ}")
|
||||||
|
- else
|
||||||
|
Aucun
|
|
@ -0,0 +1,4 @@
|
||||||
|
.field-unit__label
|
||||||
|
= f.label field.attribute
|
||||||
|
.field-unit__field
|
||||||
|
= f.text_field field.attribute
|
|
@ -0,0 +1 @@
|
||||||
|
= field.to_s
|
|
@ -0,0 +1,12 @@
|
||||||
|
- if field.data.any?
|
||||||
|
%table.collection-data{ "aria-labelledby": "page-title" }
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%td.cell-label Libelle
|
||||||
|
%tbody
|
||||||
|
- field.data.order(:order_place).each do |f|
|
||||||
|
%tr
|
||||||
|
%td.cell-data
|
||||||
|
= f.libelle
|
||||||
|
- else
|
||||||
|
Aucun
|
32
app/views/layouts/manager/application.html.haml
Normal file
32
app/views/layouts/manager/application.html.haml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
-# # Application Layout
|
||||||
|
-#
|
||||||
|
-# This view template is used as the layout
|
||||||
|
-# for every page that Administrate generates.
|
||||||
|
-#
|
||||||
|
-# By default, it renders:
|
||||||
|
-# - Sidebar for navigation
|
||||||
|
-# - Content for a search bar
|
||||||
|
-# (if provided by a `content_for` block in a nested page)
|
||||||
|
-# - Flashes
|
||||||
|
-# - Links to stylesheets and Javascripts
|
||||||
|
|
||||||
|
!!!
|
||||||
|
%html{ lang: I18n.locale }
|
||||||
|
%head
|
||||||
|
%meta{ charset: "utf-8" }
|
||||||
|
%meta{ content: "NOODP", :name => "ROBOTS" }
|
||||||
|
%meta{ content: "initial-scale=1", :name => "viewport" }
|
||||||
|
%title
|
||||||
|
= content_for(:title)
|
||||||
|
| #{Rails.application.class.parent_name.titlecase}
|
||||||
|
= render "stylesheet"
|
||||||
|
= csrf_meta_tags
|
||||||
|
%body
|
||||||
|
.app-container
|
||||||
|
.sidebar
|
||||||
|
= render "sidebar"
|
||||||
|
%main.main-content{ role: "main" }
|
||||||
|
= content_for(:search)
|
||||||
|
= render "flashes"
|
||||||
|
= yield
|
||||||
|
= render "javascript"
|
38
app/views/manager/application/_collection.html.haml
Normal file
38
app/views/manager/application/_collection.html.haml
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
-# # Collection
|
||||||
|
-#
|
||||||
|
-# This partial is used on the `index` and `show` pages
|
||||||
|
-# to display a collection of resources in an HTML table.
|
||||||
|
-#
|
||||||
|
-# ## Local variables:
|
||||||
|
-#
|
||||||
|
-# - `collection_presenter`:
|
||||||
|
-# An instance of [Administrate::Page::Collection][1].
|
||||||
|
-# The table presenter uses `ResourceDashboard::COLLECTION_ATTRIBUTES` to determine
|
||||||
|
-# the columns displayed in the table
|
||||||
|
-# - `resources`:
|
||||||
|
-# An ActiveModel::Relation collection of resources to be displayed in the table.
|
||||||
|
-# By default, the number of resources is limited by pagination
|
||||||
|
-# or by a hard limit to prevent excessive page load times
|
||||||
|
-#
|
||||||
|
-# [1]: http://www.rubydoc.info/gems/administrate/Administrate/Page/Collection
|
||||||
|
|
||||||
|
%table.collection-data{ "aria-labelledby": "page-title" }
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
- collection_presenter.attribute_types.each do |attr_name, attr_type|
|
||||||
|
%th.cell-label{ class: "cell-label--#{attr_type.html_class} cell-label--#{collection_presenter.ordered_html_class(attr_name)}", scope: "col" }
|
||||||
|
= link_to(sanitized_order_params.merge(collection_presenter.order_params_for(attr_name))) do
|
||||||
|
= t("helpers.label.#{resource_name}.#{attr_name}", default: attr_name.to_s).titleize
|
||||||
|
|
||||||
|
- if collection_presenter.ordered_by?(attr_name)
|
||||||
|
%span.cell-label__sort-indicator{ class: "cell-label__sort-indicator--#{collection_presenter.ordered_html_class(attr_name)}" }
|
||||||
|
= svg_tag("administrate/sort_arrow.svg", "sort_arrow", width: "13", height: "13")
|
||||||
|
%th{ colspan: "2", scope: "col" }
|
||||||
|
|
||||||
|
%tbody
|
||||||
|
- resources.each do |resource|
|
||||||
|
%tr.table__row{ role: "link", tabindex: "0", "data-url": polymorphic_path([namespace, resource]) }
|
||||||
|
- collection_presenter.attributes_for(resource).each do |attribute|
|
||||||
|
%td.cell-data{ class: "cell-data--#{attribute.html_class}" }
|
||||||
|
= link_to polymorphic_path([namespace, resource]), class: "action-show table__link-plain" do
|
||||||
|
= render_field attribute
|
16
app/views/manager/application/_flashes.html.haml
Normal file
16
app/views/manager/application/_flashes.html.haml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
-# # Flash Partial
|
||||||
|
-#
|
||||||
|
-# This partial renders flash messages on every page.
|
||||||
|
-#
|
||||||
|
-# ## Relevant Helpers:
|
||||||
|
-#
|
||||||
|
-# - `flash`:
|
||||||
|
-# Returns a hash,
|
||||||
|
-# where the keys are the type of flash (alert, error, notice, etc)
|
||||||
|
-# and the values are the message to be displayed.
|
||||||
|
|
||||||
|
- if flash.any?
|
||||||
|
.flashes
|
||||||
|
- flash.each do |key, value|
|
||||||
|
.flash{ class: "flash--#{key}" }
|
||||||
|
= value
|
16
app/views/manager/application/_javascript.html.haml
Normal file
16
app/views/manager/application/_javascript.html.haml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
-# # Javascript Partial
|
||||||
|
-#
|
||||||
|
-# This partial imports the necessary javascript on each page.
|
||||||
|
-# By default, it includes the application JS,
|
||||||
|
-# but each page can define additional JS sources
|
||||||
|
-# by providing a `content_for(:javascript)` block.
|
||||||
|
|
||||||
|
- Administrate::Engine.javascripts.each do |js_path|
|
||||||
|
= javascript_include_tag js_path
|
||||||
|
|
||||||
|
= yield :javascript
|
||||||
|
|
||||||
|
- if Rails.env.test?
|
||||||
|
= javascript_tag do
|
||||||
|
$.fx.off = true;
|
||||||
|
$.ajaxSetup({ async: false });
|
17
app/views/manager/application/_sidebar.html.haml
Normal file
17
app/views/manager/application/_sidebar.html.haml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
-# # Sidebar
|
||||||
|
-#
|
||||||
|
-# This partial is used to display the sidebar in Administrate.
|
||||||
|
-# By default, the sidebar contains navigation links
|
||||||
|
-# for all resources in the admin dashboard,
|
||||||
|
-# as defined by the routes in the `admin/` namespace
|
||||||
|
|
||||||
|
%ul.sidebar__list
|
||||||
|
%li
|
||||||
|
= link_to "Se déconnecter", administrations_sign_out_path, method: :delete, class: "sidebar__link"
|
||||||
|
|
||||||
|
%hr{ style: "margin-bottom: 0;" }
|
||||||
|
|
||||||
|
%ul.sidebar__list
|
||||||
|
- Administrate::Namespace.new(namespace).resources.each do |resource|
|
||||||
|
%li
|
||||||
|
= link_to(display_resource_name(resource), [namespace, resource], class: "sidebar__link sidebar__link--#{nav_link_state(resource)}")
|
38
app/views/manager/application/index.html.haml
Normal file
38
app/views/manager/application/index.html.haml
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
-# # Index
|
||||||
|
-#
|
||||||
|
-# This view is the template for the index page.
|
||||||
|
-# It is responsible for rendering the search bar, header and pagination.
|
||||||
|
-# It renders the `_table` partial to display details about the resources.
|
||||||
|
-#
|
||||||
|
-# ## Local variables:
|
||||||
|
-#
|
||||||
|
-# - `page`:
|
||||||
|
-# An instance of [Administrate::Page::Collection][1].
|
||||||
|
-# Contains helper methods to help display a table,
|
||||||
|
-# and knows which attributes should be displayed in the resource's table.
|
||||||
|
-# - `resources`:
|
||||||
|
-# An instance of `ActiveRecord::Relation` containing the resources
|
||||||
|
-# that match the user's search criteria.
|
||||||
|
-# By default, these resources are passed to the table partial to be displayed.
|
||||||
|
-# - `search_term`:
|
||||||
|
-# A string containing the term the user has searched for, if any.
|
||||||
|
-# - `show_search_bar`:
|
||||||
|
-# A boolean that determines if the search bar should be shown.
|
||||||
|
-#
|
||||||
|
-# [1]: http://www.rubydoc.info/gems/administrate/Administrate/Page/Collection
|
||||||
|
|
||||||
|
- content_for(:title) do
|
||||||
|
= display_resource_name(page.resource_name)
|
||||||
|
|
||||||
|
- content_for(:search) do
|
||||||
|
- if show_search_bar
|
||||||
|
= render "search", search_term: search_term
|
||||||
|
|
||||||
|
%header.header
|
||||||
|
%h1.header__heading#page-title
|
||||||
|
= content_for(:title)
|
||||||
|
.header__actions
|
||||||
|
|
||||||
|
= render "collection", collection_presenter: page, resources: resources
|
||||||
|
|
||||||
|
= paginate resources
|
29
app/views/manager/application/show.html.haml
Normal file
29
app/views/manager/application/show.html.haml
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
-# # Show
|
||||||
|
-#
|
||||||
|
-# This view is the template for the show page.
|
||||||
|
-# It renders the attributes of a resource,
|
||||||
|
-# as well as a link to its edit page.
|
||||||
|
-#
|
||||||
|
-# ## Local variables:
|
||||||
|
-#
|
||||||
|
-# - `page`:
|
||||||
|
-# An instance of [Administrate::Page::Show][1].
|
||||||
|
-# Contains methods for accessing the resource to be displayed on the page,
|
||||||
|
-# as well as helpers for describing how each attribute of the resource
|
||||||
|
-# should be displayed.
|
||||||
|
-#
|
||||||
|
-# [1]: http://www.rubydoc.info/gems/administrate/Administrate/Page/Show
|
||||||
|
|
||||||
|
- content_for(:title) { page.page_title }
|
||||||
|
|
||||||
|
%header.header
|
||||||
|
%h1.header__heading= content_for(:title)
|
||||||
|
.header__actions
|
||||||
|
|
||||||
|
%dl
|
||||||
|
- page.attributes.each do |attribute|
|
||||||
|
%dt.attribute-label
|
||||||
|
= t("helpers.label.#{resource_name}.#{attribute.name}", default: attribute.name.titleize)
|
||||||
|
|
||||||
|
%dd.attribute-data{ class: "attribute-data--#{attribute.html_class}" }
|
||||||
|
= render_field attribute
|
|
@ -1,4 +1,11 @@
|
||||||
Rails.application.routes.draw do
|
Rails.application.routes.draw do
|
||||||
|
namespace :manager do
|
||||||
|
resources :procedures, only: [:index, :show]
|
||||||
|
resources :administrateurs, only: [:index, :show]
|
||||||
|
|
||||||
|
root to: "procedures#index"
|
||||||
|
end
|
||||||
|
|
||||||
get "/ping" => "ping#index", :constraints => {:ip => /127.0.0.1/}
|
get "/ping" => "ping#index", :constraints => {:ip => /127.0.0.1/}
|
||||||
|
|
||||||
devise_for :administrations,
|
devise_for :administrations,
|
||||||
|
|
Loading…
Reference in a new issue