Files
equipment_resa/_web_exemple/config.html
T

179 lines
6.6 KiB
HTML

{{:admin_header title="Configuration du site web"}}
{{#form on="save"}}
{{:assign uri=null}}
{{if $_POST.home_sticky_uri|trim}}
{{:assign uri=$_POST.home_sticky_uri|trim|regexp_replace:'!^.*?([a-zA-Z0-9_-]+)$!':"$1"}}
{{#pages uri=$uri}}
{{else}}
{{:error message="Cette page n'existe pas ou est en brouillon : %s"|args:$uri}}
{{/pages}}
{{/if}}
{{:assign var="checkboxes.show_search" value=null}}
{{:assign var="checkboxes.show_hours" value=null}}
{{:assign var="checkboxes.show_bookings" value=null}}
{{:assign var="checkboxes.show_address" value=null}}
{{:assign var="checkboxes.show_email" value=null}}
{{:assign var="checkboxes.show_phone" value=null}}
{{:assign var="checkboxes.show_marker" value=null}}
{{:assign var="checkboxes.contact_form" value=null}}
{{:assign var="checkboxes.show_login" value=null}}
{{:assign var="checkboxes.show_equipment" value=null}}
{{#foreach from=$checkboxes key="name"}}
{{:assign var="present" from="_POST.%s_present"|args:$name}}
{{:assign var="value" from="_POST.%s"|args:$name}}
{{if $present}}
{{:assign var="checkboxes.%s"|args:$name value=$value|boolval}}
{{/if}}
{{/foreach}}
{{:save key="config"
color1=null
color2=null
hue1=$_POST.hue1|intval
hue2=$_POST.hue2|intval
layout=$_POST.layout|trim|or:null
background=$_POST.background|trim|or:null
show_search=$checkboxes.show_search
show_hours=$checkboxes.show_hours
show_bookings=$checkboxes.show_bookings
show_address=$checkboxes.show_address
show_email=$checkboxes.show_email
show_phone=$checkboxes.show_phone
show_marker=$checkboxes.show_marker
contact_form=$checkboxes.contact_form
show_login=$checkboxes.show_login
show_equipment=$checkboxes.show_equipment
home_sticky_uri=$uri|or:null
}}
{{:redirect to="?ok=1"}}
{{/form}}
{{if $_GET.ok}}
<p class="block confirm">Configuration enregistrée.</p>
{{/if}}
{{:form_errors}}
<form method="post" action="">
{{:assign var="layouts"
2col="Classique — 2 colonnes"
1col="Classique — 1 colonne"
wide="Large — 2 colonnes"
}}
{{:assign var="backgrounds"
gradient="Dégradé entre les deux couleurs"
white_gradient="Dégradé couleur primaire — blanc"
white="Blanc et couleur primaire"
gray="Blanc et gris"
all_white="Tout blanc"
dark="Sombre"
}}
<style type="text/css">
#preview {
width: 500px;
height: 400px;
overflow: hidden;
float: right;
margin: 1em;
border: 2px solid #ccc;
}
iframe {
border: none;
transform: scale(0.5);
-ms-transform-origin: 0 0;
-moz-transform-origin: 0 0;
-o-transform-origin: 0 0;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
overflow: hidden;
pointer-events: none;
}
</style>
{{if $config.site_disabled}}
<p class="block alert">Le site est actuellement désactivé.</p>
{{else}}
<div id="preview">
<iframe src="{{$site_url}}?dezoom=1" width="1000" height="800" scrolling="no"></iframe>
</div>
{{/if}}
{{if $module.config.hue1 === null}}
{{:assign color1=$module.config.color1|or:$config.color1|or:"#999999"|css_hex_extract_hsv}}
{{:assign color2=$module.config.color2|or:$config.color2|or:"#333333"|css_hex_extract_hsv}}
{{:assign var="module.config.hue1" from="color1.h"}}
{{:assign var="module.config.hue2" from="color2.h"}}
{{/if}}
<fieldset>
<legend>Configuration du site web</legend>
<dl>
{{:input type="select" name="layout" label="Disposition sur grand écran" required=true default="2col" options=$layouts help="Sur petit écran (mobile), la disposition reste sur une colonne" source=$module.config}}
{{:input type="hue" name="hue1" label="Couleur primaire" required=false source=$module.config}}
{{:input type="hue" name="hue2" label="Couleur secondaire" required=false source=$module.config}}
{{:input type="select" name="background" options=$backgrounds label="Couleur de fond" required=true source=$module.config}}
<dt>Éléments à afficher sur le site</dt>
{{:input type="checkbox" name="show_login" value=1 label="Lien de connexion" source=$module.config default=1 help="Si coché, affiche un lien pour se connecter à la gestion de l'association."}}
{{:input type="checkbox" name="show_equipment" value=1 label="Voir le matériel disponible" source=$module.config default=0}}
{{:input type="checkbox" name="show_search" value=1 label="Formulaire de recherche" source=$module.config default=1}}
{{#module name="openings"}}
{{:input type="checkbox" name="show_hours" value=1 label="Horaires d'ouverture" source=$module.config default=1}}
{{/module}}
{{#module name="bookings"}}
{{:input type="checkbox" name="show_bookings" value=1 label="Accès aux réservations" source=$module.config default=1}}
{{/module}}
{{if $config.org_full_address}}
{{:input type="checkbox" name="show_address" value=1 label="Adresse physique" source=$module.config default=1}}
{{:input type="checkbox" name="show_marker" value=1 label="Lien pour ouvrir l'adresse sur une carte" source=$module.config default=1}}
{{/if}}
{{if $config.org_phone}}
{{:input type="checkbox" name="show_phone" value=1 label="Numéro de téléphone" source=$module.config default=1}}
{{/if}}
{{if $config.org_email}}
{{:input type="checkbox" name="show_email" value=1 label="Adresse e-mail" source=$module.config default=1}}
{{:input type="checkbox" name="contact_form" value=1 label="Formulaire de contact" source=$module.config default=0}}
{{/if}}
{{:input type="text" name="home_sticky_uri" label="Identifiant unique de la page à épingler en haut de la page d'accueil" source=$module.config help="En renseignant ici l'identifiant d'une page du site web, celle-ci restera toujours en premier sur la page d'accueil du site. C'est utile par exemple pour afficher une courte présentation de l'association en permanence."}}
</dl>
</fieldset>
<p class="submit">
{{:button type="submit" name="save" label="Enregistrer" shape="right" class="main"}}
</p>
<script type="text/javascript">
g.onload(() => {
function updateColors() {
var color1 = $('#f_hue1').value;
var color2 = $('#f_hue2').value;
var doc = $('#preview iframe')[0].contentWindow.document;
doc.body.style = `--first-color: ${color1}; --second-color: ${color2};`;
}
$('#f_layout').onchange = (e) => {
var layout = e.target.value;
var doc = $('#preview iframe')[0].contentWindow.document;
doc.body.className = doc.body.className.replace(/\s*layout-\w+|$/, ' layout-' + layout);
}
$('#f_background').onchange = (e) => {
var bg = e.target.value;
var doc = $('#preview iframe')[0].contentWindow.document;
doc.body.className = doc.body.className.replace(/\s*bg-\w+|$/, ' bg-' + bg);
}
$('#f_hue1').addEventListener('input', updateColors);
$('#f_hue2').addEventListener('input', updateColors);
});
</script>
</form>
{{:admin_footer}}