hellofacteurV1/vues/admin_rubriques_maj.php

239 lines
7.3 KiB
PHP
Executable File

<?php
/**
* Vue affichant les formulaires permettant de gérer les rubriques du répertoire.
* Saisie, affichage, mise à jour ou encore suppression.
* + scripts ajax testant la saisie
*
**/
$header_title="Les rubriques >> ".SITE_NOM;
$body_title="Mise à jour des rubriques.";
$ariane_items[0]["txt"]="<li><a href='".PAGE_ACCUEIL."'>Tableau de bord.</a></li>";
$ariane_items[0]["form"]=false;
$ariane_items[0]["actif"]=false;
$ariane_items[1]["txt"]="<li>Gestion des rubriques.</li>";
$ariane_items[1]["form"]=true;
$ariane_items[1]["actif"]=true;
$msg_infos[0]="Formulaire de gestion des <i>rubriques</i> utiles au classement des bureaux de poste.";
$form[0]["nom"]="Rechercher une rubrique.";
$form[0]["champs"]="<form method='post' id='recherche_rubrique' name='recherche_rubrique' action='".PAGE_MAJ_RUBRIQUES."' class='form-inline' role='form'>
<div class='form-group'>
<label class='sr-only' for='recherche'>Saisir l'expression à rechercher</label>
<input type='text' class='form-control' name='recherche' id='recherche' placeholder=\"Saisir votre recherche\" required>
</div>
<button type='submit' class='btn btn-default'>Rechercher</button><br><br>
<div id='selection'>";
if(!empty($select))
$form[0]["champs"].=$select;
$form[0]["champs"].="</div>
</fieldset></form>";
if(!empty($form_html))
$form[1]=$form_html;
else
{
$form[1]["nom"]="Saisie d'une nouvelle rubrique.";
$form[1]["champs"]="<form method='post' id='maj_rubrique' name='maj_rubrique' action='".PAGE_MAJ_RUBRIQUES."' role='form'>";
//classement dans une rubrique supérieure ?
if(!empty($mere_select))
{
$form[1]["champs"].="
<div id='sup_meres'>
<div class='form-group'>
<label for='mere_id'>Sélectionner la rubrique supérieure</label>
<select name='mere_id' autofocus class='form-control'>";
foreach ($rubriques as $rubrique_info)
$form["champs"].="<option value='".$rubrique_info["id_rubrique"]."'>".htmlentities(affiche_utf8($rubrique_info["nom"],UTF8_OK))."</option>";
$form["champs"].="</select>
</div></div>
<div class='form-group'>
<label for='cherche_mere'>Nouvelle recherche.</label>
<input class='form-control' type='text' maxlength='20' name='cherche_mere' id='cherche_mere'>
</div>";
}
else
{
$form[1]["champs"].="
<div class='form-group'>
<label for='cherche_mere'>Rubrique supérieure ?</label>
<input class='form-control' type='text' maxlength='20' name='cherche_mere' id='cherche_mere'>
<p class='help-block'><b>Facultatif</b>. Si il ne s'agit pas d'une rubrique racine, cherchez la rubrique supérieure.</p>
</div>
<div id='sup_meres'></div>";
}
$form[1]["champs"].="
<div class='form-group'>
<label for='nom'>Nom de la rubrique.</label>
<input class='form-control' type='text' maxlength='".RUBRIQUE_MAX_NOM."' name='nom' id='nom' value=\"".htmlspecialchars($form["nom"])."\" required>
<p class='help-block'><b>Obligatoire</b>.</p>
</div>
<div class='form-group'>
<label for='description'>Description.</label>
<input class='form-control' type='text' maxlength='".RUBRIQUE_MAX_DESCRIPTION."' name='description' id='description' value=\"".htmlspecialchars($form["description"])."\">
<p class='help-block'><b>Facultatif</b>.</p>
</div>";
if($form["reference_ok"]==1)
$form[1]["champs"].="<div class='form-group'><label class='checkbox-inline'><input type='checkbox' id='reference_ok' name='reference_ok' value='1' checked='checked'> Rubrique de référence pour les abonnements rapides.</label></div>";
else
$form[1]["champs"].="<div class='form-group'><label class='checkbox-inline'><input type='checkbox' id='reference_ok' name='reference_ok' value='1'> Rubrique de référence pour les abonnements rapides.</label></div>";
$form[1]["champs"].="<div id='msg_rubrique'></div><button type=\"submit\" class=\"btn btn-success btn-lg\">Enregistrer.</button>
</fieldset></form>";
}
//le code pour ajax
ob_start();
?>
<script>
function is_int(value)
{//source : http://www.inventpartners.com/javascript_is_int
if((parseFloat(value)==parseInt(value))&&!isNaN(value))
{
return true;
}
else
{
return false;
}
return true;
}
function rubrique_affiche(id_rubrique)
{
if(id_rubrique!==0)
{
$.ajax(
{
url:'<?=SITE_URL;?>/JS/admin_rubriques_affiche',
type:'GET',
data:'id_rubrique='+id_rubrique+'&ajax=1',
success:function(code)
{
if(code!=="")
{
$('#form1').html(code);
}
}
});
}
}
$(document).ready(function()
{
$('#recherche_rubrique').on('submit', function(e)
{
e.preventDefault();
var $this=$(this);
var nom=$('#recherche').val();
if(recherche==='')
{
$('#msg_rubrique').html('<?php echo str_replace("'","\"",get_html_alerte_msg((array) ERREUR_UTILISA_CHAMPS_ABSENTS));?>');
}
else
{
$.ajax(
{
url:'<?=SITE_URL;?>/JS/admin_rubriques_recherche',
type:'POST',
data:$this.serialize()+'&ajax=1',
success:function(code)
{
if(code!=="")
{
$('#selection').html(code);
}
}
});
}
});
$('#selection').on('change','#liste_rubriques', function()
{
var id_rubrique=$('#liste_rubriques').val();
rubrique_affiche(id_rubrique);
});
$('#form1').on('blur','#cherche_mere', function()
{
var recherche=$('#cherche_mere').val();
if(recherche!=="")
{
$.ajax(
{
url:'<?=SITE_URL;?>/JS/admin_rubriques_select',
type:'POST',
data:'recherche='+recherche+'&ajax=1',
success:function(code)
{
$('#sup_meres').html(code);
}
});
$('#cherche_mere').val("");
}
});
$('#form1').on('submit','#maj_rubrique', function(e)
{
e.preventDefault();
var $this=$(this);
var nom=$('#nom').val();
if(nom==='')
{
$('#msg_rubrique').html('<?php echo str_replace("'","\"",get_html_alerte_msg((array) ERREUR_UTILISA_CHAMPS_ABSENTS));?>');
}
else
{
var suppr_ok=$("input[name=suppr_ok]:checked").val();
var suppr_ok_tot=$("input[name=suppr_ok_tot]:checked").val();
if((suppr_ok!=undefined)||(suppr_ok_tot!=undefined))
{
$.ajax(
{
url:'<?=SITE_URL;?>/JS/admin_rubriques_suppr_tests',
type:'POST',
data:$this.serialize()+'&ajax=1',
success:function(code)
{
if(code!=="")
{
if(code==='<?php echo str_replace("'","\"",get_html_alerte_msg((array) MSG_ADMIN_VALID,"alert-success"));?>')
{
$('#form1').html("");
$('#msg_form').html('<?php echo str_replace("'","\"",get_html_alerte_msg((array) MSG_ADMIN_VALID,"alert-success"))."<p><br><br><a href=\"".PAGE_MAJ_RUBRIQUES."\" title=\"Saisir une nouvelle rubrique\" class=\"btn btn-info btn-sm\">+ Nouvelle rubrique.</a></p>";?>');
}
else
{
$('#msg_rubrique').html(code);
}
}
}
});
}
else
{
$.ajax(
{
url:'<?=SITE_URL;?>/JS/admin_rubriques_infos_tests',
type:'POST',
data:$this.serialize()+'&ajax=1',
success:function(code)
{
if(code!=="")
{
if(is_int(code))
{//tout s'est bien passé, l'id est retourné pour être affiché
rubrique_affiche(code);
var x = setTimeout(function() { $('#msg_rubrique').html('<?php echo str_replace("'","\"",get_html_alerte_msg((array) MSG_ADMIN_VALID,"alert-success"));?>'); },500);//sinon ça va trop vite :-)
}
else
{
$('#msg_rubrique').html(code);
}
}
}
});
}
}
});
});
</script>
<?php
$footer_JS=ob_get_contents();
ob_end_clean();
require(TEMPLATE_REP."/page.php");