Action button for construction state
This commit is contained in:
parent
792b498a59
commit
059a0b961b
6 changed files with 125 additions and 8 deletions
11
app/assets/javascripts/new_design/buttons.js
Normal file
11
app/assets/javascripts/new_design/buttons.js
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
$(document).on("click", "body", function () {
|
||||||
|
$(".button.dropdown").removeClass("open");
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).on("click", ".button.dropdown", function(event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
var $target = $(event.target);
|
||||||
|
if($target.hasClass("button", "dropdown")){
|
||||||
|
$target.toggleClass("open");
|
||||||
|
}
|
||||||
|
});
|
|
@ -61,6 +61,84 @@
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
margin-right: $default-spacer;
|
margin-right: $default-spacer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.dropdown {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: "▾";
|
||||||
|
margin-left: $default-spacer;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-content {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.open {
|
||||||
|
.dropdown-content {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-content {
|
||||||
|
border: 1px solid $border-grey;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 5 * $default-spacer;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-items {
|
||||||
|
li {
|
||||||
|
display: flex;
|
||||||
|
padding: 2 * $default-spacer;
|
||||||
|
color: $grey;
|
||||||
|
border-bottom: 1px solid $border-grey;
|
||||||
|
font-size: 12px;
|
||||||
|
min-width: 300px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&.selected {
|
||||||
|
cursor: default;
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
color: $blue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.selected,
|
||||||
|
&:hover {
|
||||||
|
background: $light-grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
display: flex;
|
||||||
|
color: $grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div {
|
||||||
|
padding-left: $default-spacer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 14px;
|
||||||
|
color: $black;
|
||||||
|
margin-bottom: $default-spacer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.link {
|
.link {
|
||||||
|
|
|
@ -99,9 +99,9 @@ class Backoffice::DossiersController < Backoffice::DossiersListController
|
||||||
|
|
||||||
dossier.received!
|
dossier.received!
|
||||||
current_gestionnaire.follow(dossier)
|
current_gestionnaire.follow(dossier)
|
||||||
flash.notice = 'Dossier considéré comme reçu.'
|
flash.notice = 'Dossier passé en instruction.'
|
||||||
|
|
||||||
redirect_to backoffice_dossier_path(id: dossier.id)
|
redirect_to_dossier(dossier)
|
||||||
end
|
end
|
||||||
|
|
||||||
def process_dossier
|
def process_dossier
|
||||||
|
@ -187,6 +187,14 @@ class Backoffice::DossiersController < Backoffice::DossiersListController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def redirect_to_dossier(dossier)
|
||||||
|
if URI(request.referer).path == dossier_path(dossier.procedure, dossier)
|
||||||
|
redirect_to dossier_path(dossier.procedure, dossier)
|
||||||
|
else
|
||||||
|
redirect_to backoffice_dossier_path(id: dossier.id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def check_attestation_emailable(dossier)
|
def check_attestation_emailable(dossier)
|
||||||
if dossier&.attestation&.emailable? == false
|
if dossier&.attestation&.emailable? == false
|
||||||
human_size = number_to_human_size(dossier.attestation.pdf.size)
|
human_size = number_to_human_size(dossier.attestation.pdf.size)
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
.backoffice-header
|
.backoffice-header
|
||||||
.container
|
.container
|
||||||
|
.flex.justify-between
|
||||||
%ul.breadcrumbs
|
%ul.breadcrumbs
|
||||||
%li
|
%li
|
||||||
= link_to dossier.procedure.libelle, procedure_path(dossier.procedure)
|
= link_to dossier.procedure.libelle, procedure_path(dossier.procedure)
|
||||||
%li
|
%li
|
||||||
= "Dossier n° #{dossier.id}"
|
= "Dossier nº #{dossier.id}"
|
||||||
|
%div
|
||||||
|
= render partial: "state_button", locals: { dossier: dossier }
|
||||||
%ul.tabs
|
%ul.tabs
|
||||||
- notifications_summary = dossier.notifications_summary
|
- notifications_summary = dossier.notifications_summary
|
||||||
%li{ class: current_page?(dossier_path(dossier.procedure, dossier)) ? 'active' : nil }
|
%li{ class: current_page?(dossier_path(dossier.procedure, dossier)) ? 'active' : nil }
|
||||||
|
|
17
app/views/new_gestionnaire/dossiers/_state_button.html.haml
Normal file
17
app/views/new_gestionnaire/dossiers/_state_button.html.haml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
- if dossier.en_construction?
|
||||||
|
%span.button.primary.dropdown
|
||||||
|
= dossier.decorate.display_state
|
||||||
|
.dropdown-content.fade-in-down
|
||||||
|
%ul.dropdown-items
|
||||||
|
- if dossier.en_construction?
|
||||||
|
%li.selected
|
||||||
|
%i.edit
|
||||||
|
.description
|
||||||
|
%h4 En construction
|
||||||
|
Vous permettez à l'usager de modifier ses réponses au formulaire
|
||||||
|
%li
|
||||||
|
= link_to backoffice_dossier_receive_path(dossier), method: :post, data: { confirm: "Confirmer vous le passage en instruction de ce dossier ?" } do
|
||||||
|
%i.in-progress
|
||||||
|
.description
|
||||||
|
%h4 Passer en instruction
|
||||||
|
L'usager ne pourra plus modifier le formulaire
|
|
@ -367,7 +367,7 @@ describe Backoffice::DossiersController, type: :controller do
|
||||||
expect(dossier.state).to eq('replied')
|
expect(dossier.state).to eq('replied')
|
||||||
end
|
end
|
||||||
|
|
||||||
it { is_expected.to redirect_to backoffice_dossiers_path }
|
it { is_expected.to redirect_to backoffice_dossier_path(id: dossier_id) }
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'POST #archive' do
|
describe 'POST #archive' do
|
||||||
|
|
Loading…
Reference in a new issue