Skip to content

Commit

Permalink
select document between procedure and situation #2198
Browse files Browse the repository at this point in the history
  • Loading branch information
hmeneuvrier committed Mar 21, 2024
1 parent f3abfa3 commit 89a59ff
Show file tree
Hide file tree
Showing 5 changed files with 173 additions and 157 deletions.
62 changes: 30 additions & 32 deletions assets/controllers/back_signalement_view/form_upload_documents.js
Original file line number Diff line number Diff line change
@@ -1,58 +1,44 @@
initializeUploadModal(
'#fr-modal-upload-files',
'.modal-upload-drop-section',
'.modal-upload-list',
'.modal-upload-files-selector',
'.modal-upload-files-selector-input',
'#select-type-to-clone',
'#select-type-situation-to-clone',
'#select-type-procedure-to-clone',
'#select-desordre-to-clone',
'#btn-validate-modal-upload-files',
'#modal-upload-file-dynamic-content'
);

document?.querySelectorAll('.fr-modal-visites-upload-files')?.forEach(modalVisiteUpload => {
initializeUploadModal(
'#'+modalVisiteUpload.id,
'.modal-upload-drop-section',
'.modal-upload-list',
'.modal-upload-files-selector',
'.modal-upload-files-selector-input',
null,
null,
'#btn-validate-modal-upload-files',
'#modal-upload-file-dynamic-content'
null,
)
})


function initializeUploadModal(
modalSelector,
fileDropAreaSelector,
fileListContainerSelector,
fileTypeSelector,
fileInputSelector,
selectTypeToCloneSelector,
selectTypeSituationToCloneSelector,
selectTypeProcedureToCloneSelector,
selectDesordreToCloneSelector,
btnValidateSelector,
ancreSelector
) {
const modal = document?.querySelector(modalSelector);
if (!modal) return;

const dropArea = modal.querySelector(fileDropAreaSelector);
const listContainer = modal.querySelector(fileListContainerSelector);
const fileSelector = modal.querySelector(fileTypeSelector)
const fileSelectorInput = modal.querySelector(fileInputSelector)
const dropArea = modal.querySelector('.modal-upload-drop-section');
const listContainer = modal.querySelector('.modal-upload-list');
const fileSelector = modal.querySelector('.modal-upload-files-selector')
const fileSelectorInput = modal.querySelector('.modal-upload-files-selector-input')
const addFileRoute = modal.dataset.addFileRoute;
const addFileToken = modal.dataset.addFileToken;
const waitingSuiviRoute = modal.dataset.waitingSuiviRoute;
const deleteTmpFileRoute = modal.dataset.deleteTmpFileRoute;
const selectTypeToClone = selectTypeToCloneSelector ? modal.querySelector(selectTypeToCloneSelector) : null;
const selectTypeSituationToClone = selectTypeSituationToCloneSelector ? modal.querySelector(selectTypeSituationToCloneSelector) : null;
const selectTypeProcedureToClone = selectTypeProcedureToCloneSelector ? modal.querySelector(selectTypeProcedureToCloneSelector) : null;
const selectDesordreToClone = selectDesordreToCloneSelector ? modal.querySelector(selectDesordreToCloneSelector) : null;
const editFileRoute = modal.dataset.editFileRoute;
const editFileToken = modal.dataset.editFileToken;
const btnValidate = modal.querySelector(btnValidateSelector);
const ancre = modal.querySelector(ancreSelector);
const btnValidate = modal.querySelector('#btn-validate-modal-upload-files');
const ancre = modal.querySelector('#modal-upload-file-dynamic-content');


fileSelector.onclick = () => fileSelectorInput.click()
Expand Down Expand Up @@ -139,13 +125,16 @@ function initializeUploadModal(
addEventListenerDeleteTmpFile(btnDeleteTmpFile)
if (this.status == 200) {
modal.dataset.hasChanges = true
if (null !== selectDesordreToClone || null !== selectTypeToClone){
if (null !== selectDesordreToClone || null !== selectTypeSituationToClone || null !== selectTypeProcedureToClone){
let clone
if (modal.dataset.fileType == 'photo') {
clone = selectDesordreToClone.cloneNode(true)
clone.id = 'select-desordre-' + response.response
} else {
clone = selectTypeToClone.cloneNode(true)
if ('situation' === modal.dataset.fileFilter ){
clone = selectTypeSituationToClone.cloneNode(true)
} else {
clone = selectTypeProcedureToClone.cloneNode(true)
}
clone.id = 'select-type-' + response.response
}
clone.dataset.fileId = response.response
Expand Down Expand Up @@ -314,10 +303,11 @@ function initializeUploadModal(
modal.dataset.hasChanges = false
})

let fileType, documentType, interventionId
let fileType, fileFilter, documentType, interventionId
document.querySelectorAll('.open-modal-upload-files-btn').forEach((button) => {
button.addEventListener('click', (e) => {
fileType = e.target.dataset.fileType
fileFilter = e.target.dataset.fileFilter
documentType = e.target.dataset.documentType ?? null
interventionId = e.target.dataset.interventionId ?? null
})
Expand All @@ -330,7 +320,11 @@ function initializeUploadModal(
modal.querySelectorAll('.type-conditional').forEach((type) => {
type.classList.add('fr-hidden')
})
modal.querySelectorAll('.filter-conditional').forEach((type) => {
type.classList.add('fr-hidden')
})
modal.dataset.documentType = documentType
modal.dataset.fileFilter = fileFilter
modal.dataset.interventionId = interventionId
if (fileType == 'photo') {
modal.dataset.fileType = 'photo'
Expand All @@ -340,8 +334,12 @@ function initializeUploadModal(
modal.dataset.fileType = 'document'
modal.querySelector('.type-document').classList.remove('fr-hidden')
fileSelectorInput.setAttribute('accept', '*/*')
}
if (fileFilter == 'procedure') {
modal.querySelector('.filter-procedure').classList.remove('fr-hidden')
} else if (fileFilter == 'situation') {
modal.querySelector('.filter-situation').classList.remove('fr-hidden')
}

})

btnValidate.addEventListener('click', (e) => {
Expand Down
15 changes: 10 additions & 5 deletions src/Entity/Enum/DocumentType.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,28 +47,33 @@ public static function getPhotosList(): array
{
return [
self::PHOTO_SITUATION->name => self::PHOTO_SITUATION->label(),
self::PHOTO_VISITE->name => self::PHOTO_VISITE->label(),
self::PHOTO_VISITE->name => self::PHOTO_VISITE->label(), // TODO, garder ?
self::AUTRE->name => self::AUTRE->label(),
];
}

public static function getDocumentsList(): array
public static function getSituationList(): array
{
return [
self::PHOTO_SITUATION->name => self::PHOTO_SITUATION->label(),
self::AUTRE->name => self::AUTRE->label(),
self::SITUATION_FOYER_BAIL->name => self::SITUATION_FOYER_BAIL->label(),
self::SITUATION_FOYER_DPE->name => self::SITUATION_FOYER_DPE->label(),
self::SITUATION_FOYER_ETAT_DES_LIEUX->name => self::SITUATION_FOYER_ETAT_DES_LIEUX->label(),
self::SITUATION_DIAGNOSTIC_PLOMB_AMIANTE->name => self::SITUATION_DIAGNOSTIC_PLOMB_AMIANTE->label(),
];
}

public static function getProcedureList(): array
{
return [
self::PROCEDURE_MISE_EN_DEMEURE->name => self::PROCEDURE_MISE_EN_DEMEURE->label(),
self::PROCEDURE_RAPPORT_DE_VISITE->name => self::PROCEDURE_RAPPORT_DE_VISITE->label(),
self::PROCEDURE_ARRETE_MUNICIPAL->name => self::PROCEDURE_ARRETE_MUNICIPAL->label(),
self::PROCEDURE_ARRETE_PREFECTORAL->name => self::PROCEDURE_ARRETE_PREFECTORAL->label(),
self::PROCEDURE_SAISINE->name => self::PROCEDURE_SAISINE->label(),
self::BAILLEUR_DEVIS_POUR_TRAVAUX->name => self::BAILLEUR_DEVIS_POUR_TRAVAUX->label(),
self::BAILLEUR_REPONSE_BAILLEUR->name => self::BAILLEUR_REPONSE_BAILLEUR->label(),
self::PHOTO_SITUATION->name => self::PHOTO_SITUATION->label(),
self::PHOTO_VISITE->name => self::PHOTO_VISITE->label(),
self::AUTRE->name => self::AUTRE->label(),
];
}
}
39 changes: 28 additions & 11 deletions templates/_partials/_modal_upload_files.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,28 @@
</div>
<div class="fr-modal__content">
<div class="type-conditional type-document">
<h1 class="fr-modal__title">
Ajouter des documents partenaires
</h1>
<div>
Ajouter un ou plusieurs documents. Pour chaque document, veuillez renseigner son type.
<div class="filter-conditional filter-procedure">
<h1 class="fr-modal__title">
Ajouter des documents liés à la procédure
</h1>
<div>
Ajouter un ou plusieurs documents. Pour chaque document, veuillez renseigner son type.
</div>
<div class="fr-alert fr-alert--info fr-alert--sm">
<p>Pour ajouter des documents de type Bail, DPE, Diagnostic et Etat des lieux, rendez-vous dans la partie "Déclaration usager".</p>
</div>
</div>
{#
<div class="fr-alert fr-alert--info fr-alert--sm">
<p>Pour ajouter des documents de type Bail, DPE, Diagnostic et Etat des lieux, rendez-vous dans la partie "Déclaration usager".</p>
<div class="filter-conditional filter-situation">
<h1 class="fr-modal__title">
Ajouter des documents liés à la situation
</h1>
<div>
Ajouter un ou plusieurs documents. Pour chaque document, veuillez renseigner son type.
</div>
<div class="fr-alert fr-alert--warning fr-alert--sm">
<p>Ces photos seront partagées à l'usager.</p>
</div>
</div>
#}
</div>
<div class="type-conditional type-photo">
<h1 class="fr-modal__title">
Expand Down Expand Up @@ -61,9 +72,15 @@
</div>
<div style="display:none">
{% set DocumentType = enum('\\App\\Entity\\Enum\\DocumentType') %}
<select class="fr-select select-type" data-file-id="" id="select-type-to-clone">
<select class="fr-select select-type" data-file-id="" id="select-type-situation-to-clone">
<option value="">Sélectionner un type</option>
{% for key, value in DocumentType.getSituationList() %}
<option value="{{ key }}">{{ value }}</option>
{% endfor %}
</select>
<select class="fr-select select-type" data-file-id="" id="select-type-procedure-to-clone">
<option value="">Sélectionner un type</option>
{% for key, value in DocumentType.getDocumentsList() %}
{% for key, value in DocumentType.getProcedureList() %}
<option value="{{ key }}">{{ value }}</option>
{% endfor %}
</select>
Expand Down
29 changes: 9 additions & 20 deletions templates/back/signalement/view.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -41,36 +41,25 @@

{% include 'back/signalement/view/user-declaration.html.twig' %}

{% if createdFromDraft %}
{% include 'back/signalement/view/photos-documents.html.twig' with {
'zonetitle': "Photos et documents de la situation",
'importedBy': "user"
} %}
{% endif %}
{% include 'back/signalement/view/photos-documents.html.twig' with {
'zonetitle': "Photos et documents de la situation",
'filesFilter': 'situation'
} %}

{% include 'back/signalement/view/information.html.twig' %}

{% include 'back/signalement/view/nde.html.twig' %}

{% if not createdFromDraft %}
{% include 'back/signalement/view/photos-documents.html.twig' with {
'zonetitle': "Photos et documents",
'importedBy': "all"
} %}
{% endif %}


{% include 'back/signalement/view/partners.html.twig' %}

{% include 'back/signalement/view/suivis.html.twig' %}

{% include 'back/signalement/view/visites/visites-list.html.twig' %}

{% if createdFromDraft %}
{% include 'back/signalement/view/photos-documents.html.twig' with {
'zonetitle': "Photos et documents liés à la procédure",
'importedBy': "partner"
} %}
{% endif %}
{% include 'back/signalement/view/photos-documents.html.twig' with {
'zonetitle': "Documents liés à la procédure",
'filesFilter': 'procedure'
} %}
</section>
{% endblock %}
{% block javascripts %}
Expand Down
Loading

0 comments on commit 89a59ff

Please sign in to comment.