Web Script: webscripts/fr/uoh/notice/notice_detail.get
Generated from /front/service/script/webscripts/fr/uoh/notice/notice_detail.get on 23 mars 2019 20:06:53

Script Properties
Id:webscripts/fr/uoh/notice/notice_detail.get
Short Name:Notice Detail
Description:Detail d'une notice
Authentication:none
Transaction:none
Method:GET
URL Template:/fr/uoh/notice/notice_detail
Format Style:any
Default Format:html
Negotiated Formats:[undefined]
Implementation:class org.springframework.extensions.webscripts.DeclarativeWebScript
Extensions:[undefined]

Store: /WEB-INF

File: webscripts/fr/uoh/notice/notice_detail.get.html.ftl
<#import "../config/common.utils.ftl" as commonLib />
<#include "notice.lib.ftl" />
<#include "evaluation_ressource.lib.ftl" />

<#if notice??>

<#if commentCaptchaInclude?has_content>
${commentCaptchaInclude}
</#if>

<script type="text/javascript">

$(document).ready(function() {

	var pseudo = $( 'input[name="pseudo"]' ),
		comment = $( 'textarea[name="comment"]' ),
		tips = $( '.validateTips' );

	// Define tabs
	$( '#tabs' ).tabs();

	// Define rich editor
	$( 'textarea.richeditor' ).ckeditor();
	
	// Actions
	$( '#create-comment' ).click(function(e) {
		$( '#dialog-form' ).dialog( 'open' );
		e.preventDefault();
	});
	
	$( '#dialog-suplom' ).dialog({
		autoOpen: false,
		height: 630,
		width: 610,
		modal: true,
		position: 'center',
		draggable: true,
		resizable: true,
		dialogClass: 'dialog-form',
		buttons: {				
			Fermer: function() {
				$( this ).dialog( 'close' );
			}
		},
		close: function() {
		}
		
	});
	
	$( '#dialog-form' ).dialog({
		autoOpen: false,
		height: 700,
		width: 610,
		modal: true,
		position: 'center',
		draggable: true,
		resizable: true,
		dialogClass: 'dialog-form',

		buttons: {
			OK: function() {
				if (validate()) {
					$( '#target' ).submit();
					$( this ).dialog( 'close' );
				}
			},
			Annuler: function() {
				$( this ).dialog( 'close' );
			}
		},

		open: function(event, ui) {
			uohCaptcha("captchaContainer");
		},

		close: function(event, ui) {
			clearForm($('#target'));
			clearTips();
		}
		
	});
	
	$( '#target' ).submit(function(){
		if (validate()) {
			return true;
		}
		
		return false;
	});
	
	$( '#ressourceDoc' ).dialog({ 
		autoOpen: false, 
		width: 800, 
		height: 800, 
		modal: true,
		position: 'center',
		resizable: true, 
		draggable: true 
	});
	
	// Fonctions	
	function updateTips( t ) {
		tips
			.text( t )
			.addClass( 'ui-state-error' );
	}
	
	function checkLength(c, n) {
		if (!$.trim(c.val()).length) {
			updateTips( "Le champ " + n + " ne doit pas être vide." );
			return false;
		} else {
			return true;
		}
	}	
	
	function checkTerms() {
		if (!$('[name="accept_terms"]:checked').length > 0) {
			updateTips( "Vous devez accepter la charte du site." );
			return false;
		} else {
			return true;
		}
	}
	
	function validate() {
		var v = true;
		
		if ($( 'input[name="isAuthenticated"]' ).val() != "true") {
			v = v && checkLength(pseudo, "Pseudo") && checkTerms();
		}
		
		return v && checkLength(comment, "Commentaire");
	}
	
	function clearTips() {
		tips.removeClass( 'ui-state-error' );
		tips.text("${msg("notice.commentaires.form.champs.requis")}");
	}
	
	
	//Gestion fil d'ariane
	var domaineClean = '${notice.domaines?replace('\'','&apos;')}';
	noticeBreadcrumb(domaineClean, "${notice.titre?js_string}", "${url.context?html}/notice?id=${notice.uuid?url?html}");

	// On cache la vidéo-vignette à l'affichage d'une boîte de dialogue.
	$('.uohPopupDialog').bind('dialogopen', function(event, ui) {
		$('.vignetteVideo').css('visibility', 'hidden');
	}).bind('dialogclose', function(event, ui){
		$('.vignetteVideo').css('visibility', '');
	});
});
</script>
<script type="text/javascript" src="${url.context?html}/res/js/uoh_notice_breadcrumb.js"></script>
<script type="text/javascript" src="${url.context?html}/res/js/uoh_notice_details.js"></script>

<#if err?has_content>
	<div class="actionMessage ui-state-error ui-corner-all">
		<p><span class="actionMessageIcon ui-icon ui-icon-alert"></span> ${msg("panier.action.error." + err)?html}</p>
	</div>
</#if>

<div id="notice-detail">
	<@renderBreadcrumbNoticeForm />

	<div id="notice-detail-left">
		<div id="notice-detail-presentation">
			<@commonLib.renderBox>
				<#if notice.estampillage>
					<img src="${url.context?html}/res/images/estampillage-uoh.png" class="estampillage-uoh" alt="${msg("notice.estampillee")?html}"/>
				</#if>
				<h1 id="notice-titre" class="titre">
					<#if notice.display_in_iframe?? && notice.display_in_iframe>
						<#-- Ressource affiché dans une iframe -->
						<a class="link_ressource" href="${url.context?html}/ressource_view?id=${notice.uuid?url?html}">${notice.titre?html}</a>
					<#elseif ressourceType == "html">
						<#-- Ressource de type contenu HTML -->
						<a class="link_ressource" href="${url.context?html}/ressource?id=${notice.uuid?url?html}" rel="external">${notice.titre?html}</a>
					<#elseif ressourceType == "url">
						<#-- Ressource de type lien -->
						<a class="link_ressource" href="${ressource?html}" rel="external">${notice.titre?html}</a>
					<#elseif ressourceType == "file">
						<#-- Ressource de type fichier attaché -->
						<a class="link_ressource" href="${url.context?html}/${ressource?html}" rel="external">${notice.titre?html}</a>
					</#if>
				</h1>
				<span id="notice-uuid" style="display:none;">${notice.uuid}</span>

				<div id="notice-auteurs" class="auteurs">
					<#if contributeurs??>
						<#assign first=true>
						<#list contributeurs as contributeur>
							<#if contributeur.codeRole == 'auteur'>
								<#if !first>,</#if>
								<span class="notice-auteur">${contributeur.nom?upper_case} ${contributeur.prenom?cap_first}</span>
								<#assign first=false>
							</#if>
						</#list>
					</#if>
					 - ${notice.date_creation?string("0000")}
				</div>

				<hr class="myhr" />

				<#-- Affichage vidéo -->
				<#if notice.video_vignette?has_content>
					<div class="vignetteVideo">
						${notice.video_vignette}
					</div>					
				<#-- Affichage image vignette -->					
				<#elseif vignette??>
					<div class="vignette">
						<#if notice.display_in_iframe?? && notice.display_in_iframe>
							<#-- Ressource affiché dans une iframe -->
							<a class="link_ressource" href="${url.context?html}/ressource_view?id=${notice.uuid?url?html}">						
								<img alt="" src="${url.context?html}/document/${vignette?html}" class="vignette"/>
							</a>
						<#elseif ressourceType == "html">
							<#-- Ressource de type contenu HTML -->
							<a class="link_ressource" href="${url.context?html}/ressource?id=${notice.uuid?url?html}" rel="external">
								<img alt="" src="${url.context?html}/document/${vignette?html}" class="vignette"/>								
							</a>
						<#elseif ressourceType == "url">
							<#-- Ressource de type lien -->
							<a class="link_ressource" href="${ressource?html}" rel="external">
								<img alt="" src="${url.context?html}/document/${vignette?html}" class="vignette"/>								
							</a>
						<#elseif ressourceType == "file">
							<#-- Ressource de type fichier attaché -->
							<a class="link_ressource" href="${url.context?html}/${ressource?html}" rel="external">
								<img alt="" src="${url.context?html}/document/${vignette?html}" class="vignette"/>								
							</a>
						</#if>
					</div>
				<#else>				
				<#-- Pas de vignette disponible -->
					<div class="resourceLink">
						<#if notice.display_in_iframe?? && notice.display_in_iframe>
							<#-- Ressource affiché dans une iframe -->
							<a class="link_ressource" href="${url.context?html}/ressource_view?id=${notice.uuid?url?html}">						
								<img alt="" src="${url.context?html}/res/images/icones/icone-no-vignette.png" class="vignette"/>
							</a>
						<#elseif ressourceType == "html">
							<#-- Ressource de type contenu HTML -->
							<a class="link_ressource" href="${url.context?html}/ressource?id=${notice.uuid?url?html}">
								<img alt="" src="${url.context?html}/res/images/icones/icone-no-vignette.png" class="vignette"/>								
							</a>
						<#elseif ressourceType == "url">
							<#-- Ressource de type lien -->
							<a class="link_ressource" href="${ressource?html}" target="_blank">
								<img alt="" src="${url.context?html}/res/images/icones/icone-no-vignette.png" class="vignette"/>								
							</a>
						<#elseif ressourceType == "file">
							<#-- Ressource de type fichier attaché -->
							<a class="link_ressource" href="${url.context?html}/${ressource?html}" target="_blank">
								<img alt="" src="${url.context?html}/res/images/icones/icone-no-vignette.png" class="vignette"/>								
							</a>
						</#if>
					</div>	
				</#if>		
				
				<#-- Affichage du lien d'accès à la ressource -->
				<#if notice.display_in_iframe?? && notice.display_in_iframe>
					<#-- Ressource affiché dans une iframe -->
					<a id="notice-link_ressource" class="link_ressource" href="${url.context?html}/ressource_view?id=${notice.uuid?url?html}">						
						<span>${msg("notice.acces")?html}</span>
					</a>
				<#elseif ressourceType == "html">
					<#-- Ressource de type contenu HTML -->
					<a id="notice-link_ressource" class="link_ressource" href="${url.context?html}/ressource?id=${notice.uuid?url?html}" rel="external">						
						<span>${msg("notice.acces")?html}</span>
					</a>
				<#elseif ressourceType == "url">
					<#-- Ressource de type lien -->
					<a id="notice-link_ressource" class="link_ressource" href="${ressource?html}" rel="external">							
						<span>${msg("notice.acces")?html}</span>
					</a>
				<#elseif ressourceType == "file">
					<#-- Ressource de type fichier attaché -->
					<a id="notice-link_ressource" class="link_ressource" href="${url.context?html}/${ressource?html}" rel="external">							
						<span>${msg("notice.acces")?html}</span>
					</a>
				</#if>	
				
				<#-- Evaluation de la ressource -->
				<#if notice.evaluation_form_url??>
					| <@renderEvaluationLink notice />
				</#if>	

				<h2>${msg("notice.description.titre")?html}</h2>
				<div id="notice-description" class="texte"><@commonLib.renderLongText>${notice.description}</@></div>

				<div class="droits">
					<#if notice.droit == msg('notice.droits.CC_BY_NC_ND_2.0')>
						<a href="http://creativecommons.org/licenses/by-nc-nd/2.0/fr/" rel="external">
							<img alt="{msg('notice.droits.CC_BY_NC_ND_2.0')}" src="${url.context}/res/images/licence/cc-sans-modification.png" class="licence"/>
						</a>
					<#elseif notice.droit == msg('notice.droits.CC_BY_NC_SA_2.0')>
						<a href="http://creativecommons.org/licenses/by-nc-sa/2.0/fr/" rel="external">
							<img alt="{msg('notice.droits.CC_BY_NC_SA_2.0')}" src="${url.context}/res/images/licence/cc-identique.png" class="licence"/>
						</a>
					<#elseif notice.droit == msg('notice.droits.gestion-editeurs')>
						<img alt="{msg('notice.droits.gestion-editeurs')}" src="${url.context}/res/images/licence/droits-reserves-editeurs.png" class="licence"/>
					</#if>
				</div>
			</@>
		</div>
		
		<div id="notice-detail-description">
			<@commonLib.renderTabbedBox>
				<div id="tabs">
					<ul class="uohTabs">
						<li><a href="#tabs-1">${msg("notice.pedagogie.titre")?html}</a></li>
						<li><a href="#tabs-2">${msg("notice.contributions.titre")?html}</a></li>
						<li><a href="#tabs-3">${msg("notice.technique.titre")?html}</a></li>
						<#if notice.complement_ressource?has_content>
							<li><a href="#tabs-4">${msg("notice.complements.titre")?html}</a></li>
						</#if>
					</ul>
					
					<#-- Onglet Pédagogie -->
					<div id="tabs-1">
						<h2 class="hidden">${msg("notice.pedagogie.titre")?html}</h2>

						<#-- Types pédagogiques -->
						<@detailRenderCsvList data=typesPedagogiques! titleId="notice.pedagogie.type-pedagogique" pId="notice-typesPedagogiques"/>

						<#-- Niveaux -->
						<@detailRenderCsvList data=niveaux! titleId="notice.pedagogie.niveau" pId="notice-niveaux"/>

						<#-- Objectifs pédagogiques -->
						<@detailRenderCsvListWithLineBreak data=objectifsPedagogiques! titleId="notice.pedagogie.objectifs-pedagogiques" pId="notice-objectifsPedagogiques"/>

						<#-- Activités induites -->
						<@detailRenderCsvList data=activites_induites! titleId="notice.pedagogie.activites-induites" pId="notice-activitesInduites" />

						<#-- Propositions d'utilisations -->
						<@detailRenderCsvListWithLineBreak data=propositionsUtilisations! titleId="notice.pedagogie.propositions-utilisation" />

						<#-- Duree d'apprentissage -->
						<@detailRenderDuration value=notice.duree_apprentissage! titleId="notice.pedagogie.duree-apparentissage"  pId="notice-dureeApprentissage" />

						<#-- Langues de l'apprenant -->
						<@detailRenderCsvList data=langues_utilisateur! titleId="notice.pedagogie.langues-utilisateur"  pId="notice-languesUtilisateur" />
					</div>
					
					<#-- Onglet Contribution -->
					<div id="tabs-2">
						<h2 class="hidden">${msg("notice.contributions.titre")?html}</h2>

						<#-- Contributeurs -->
						<#if contributeurs?size &gt; 0>
							<#assign contributeursFound=false />

							<#list contributeurs as contributeur>
								<#assign role=contributeur.codeRole>

								<#if role != 'auteur' && role != 'validateur des métadonnées'>
									<#if !contributeursFound>
										<h3>${msg("notice.contributions.contributeurs")}</h3>
										<ul id="notice-contributeurs">
										<#assign contributeursFound=true />
									</#if>
									<li class="notice-contributeur"><span class="notice-contributeurRole">${role?upper_case}</span> - <span class="notice-contributeurName">${contributeur.nom?upper_case} ${contributeur.prenom?cap_first}</span></li>
								</#if>
							</#list>
							<#if contributeursFound>
								</ul>
							</#if>
						</#if>

						<#-- Date de création -->
						<#if notice.date_creation??>
							<h3>${msg("notice.contributions.date-creation")}</h3>
							<p>
								<span id="notice-dateCreation">${notice.date_creation?string("0000")}</span>
							</p>
						</#if>

						<#-- Etablissement porteur -->
						<#if etablissement_porteur??>
							<h3>${msg("notice.contributions.etablissement-porteur")}</h3>
							<p class="notice-etablissementPorteur">
								<a onclick="postForm(&quot;etablissement_porteur&quot;,&quot;${etablissement_porteur_raw?js_string?html}&quot;);" href="#">
									<#-- Logo etablissement -->
									<#if etablissement_porteur_logo_url??>
										<img alt="" src="${url.context?html}${etablissement_porteur_logo_url?html}" class="logo" />
									</#if>
									<span id="notice-etablissementPorteurLibelle">${etablissement_porteur.libelle?cap_first}</span>
								</a>
							</p>
						</#if>
						
						<#-- Etablissements co-éditeurs -->
						<#if etablissementsCoEditeurs?? && etablissementsCoEditeurs?size &gt; 0>
							<h3>${msg("notice.contributions.etablissements-coediteurs")}</h3>
							<p id="notice-etablissementsCoEditeurs">
								<#list etablissementsCoEditeurs as etablissementCoEditeur>
									<#if etablissementCoEditeur.logo_url?has_content>
										<img alt="" src="${url.context?html}${etablissementCoEditeur.logo_url?html}" class="logo" />
									</#if>
									<span class="notice-etablissementsCoEditeurLibelle">${etablissementCoEditeur.libelle?cap_first}</span>
								</#list>
							</p>
						</#if>
						
						<#-- Date de publication -->
						<#if notice.date_publication??>
							<h3>${msg("notice.contributions.date-publication")}</h3>
							<p>
								<span id="notice-datePublication" style="display:none;">${notice.date_publication}</span>
								${notice.date_publication?date("yyyy-MM-dd")}
							</p>
						</#if>
					</div>
					
					<#-- Onglet Technique -->
					<div id="tabs-3">
						<h2 class="hidden">${msg("notice.technique.titre")?html}</h2>
					
						<#-- Types documentaires -->
						<#if typesDocumentaires?has_content && typesDocumentaires?size &gt; 0>	
							<h3>${msg("notice.technique.type-documentaire")}</h3>
							<p id="notice-typeDocumentaires">
								<#list typesDocumentaires as typeDocumentaire>
									<span class="notice-typeDocumentaire">${typeDocumentaire?cap_first}</span><#if typeDocumentaire_has_next>,</#if>
								</#list>
							</p>
						</#if>

						<#-- Type MIME <@detailRenderValue value=notice.type_mime! titleId="notice.technique.type-mime" /> -->
						
						<#if typesMime?has_content && typesMime?size &gt; 0>	
							<h3>${msg("notice.technique.type-mime")}</h3>
							<p>
								<#list typesMime as typeMime>
									${typeMime?cap_first}<#if typeMime_has_next>,</#if>
								</#list>
							</p>
						</#if>
						
						<#-- Structure -->
						<@detailRenderValue value=notice.structure! titleId="notice.technique.structure" pId="notice-structure"/>

						<#-- Durée d'éxécution -->
						<@detailRenderDuration value=notice.duree_execution! titleId="notice.technique.duree-execution" />
						
						<#-- Langue -->
						<#if langues?has_content && langues?size &gt; 0>
							<h3>${msg("notice.technique.langue")}</h3>
							<p id="notice-languesRessource">
								<#list langues as langue>
									<span>${langue?cap_first}</span><#if langue_has_next>,</#if>
								</#list>
							</p>
						</#if>

						<#-- Fiche SUPLOM Fr -->
						<h3>${msg("notice.suplomfr.fiche")}</h3>
						
						<#-- chemin vers la fiche SUPLOM Fr -->
						<p>
							<a id="notice-suplom" class="link_suplom" href="${url.context}/suplom<#if !notice.exposition_oai>_not_exposed</#if>/suplomfr-${notice.uuid?js_string?html}.xml" onclick="openSuplomXml(this.href);return false;">
								<img height="20px" alt="logo suplomfr" src="${url.context}/res/images/logo-suplomfr.png"/>
							</a>
						</p>

						<!-- POP UP AFFICHAGE FICHE SUPLOMFR -->
						<div id="dialog-suplom" class="uohPopupDialog uohSuplomPopupDialog" title="${msg("notice.suplomfr.fiche")}">
							<iframe id="dialog-suplom-iframe" class="uohSuplomView"></iframe>
						</div>
					</div>

					<#if notice.complement_ressource?has_content>
						<#-- Onglet Compléments -->
						<div id="tabs-4">
							<h2 class="hidden">${msg("notice.complements.titre")?html}</h2>

							<div class="complements-body">
								${notice.complement_ressource}
							</div>
						</div>
					</#if>
				</div>
			</@>
			
		</div>

		<hr class="myhr" />

		<div id="notice-detail-disciplines" class="gray-corner">
			<@commonLib.renderTitledBox titleId="notice.disciplines.titre">
				<#if arrayDomaines??>
					<ul class="uohNoticeDisciplines">
						<#list arrayDomaines as itemDomaines>
							<li>
							<#list itemDomaines as domaine>
								<a class="link" onclick="postForm('discipline_facet','${domaine.url?js_string?html}');"><span class="notice-discipline">${domaine.libelle?cap_first}</span></a><#if domaine_has_next> - </#if>
							</#list>
							</li>
						</#list>
					</ul>
				</#if>
			</@>
		</div>

		<div id="notice-detail-motscles" class="gray-corner">
			<@commonLib.renderTitledBox titleId="notice.mots-cles-libres.titre">
				<#if motsCles??>
					<#list motsCles as motCle>
						<a onclick="uohExecuteSearch(&quot;${motCle?js_string?html}&quot;);"><span class="notice-motCle">${motCle?cap_first?html}</span></a><#if motCle_has_next> - </#if>
					</#list>
				</#if>
			</@>
		</div>

		<div id="notice-detail-recommandations" class="gray-corner">
			<#-- Cette boîte est vide car remplie par ailleurs par le code du partenaire Sailendra, dans le cadre du projet Pericles -->
			<@commonLib.renderTitledBox titleId="notice.recommendations.titre" contentBoxId="pericles-ressourcefooter">
			</@>
		</div>
		
		<div id="notice-detail-commentaires" class="gray-corner">
			<@commonLib.renderTitledBox titleId="notice.commentaires.titre">
				<div class="commentaires">
					<#list commentaires.list as comm>
						<#assign postDate = comm.date?datetime("yyyy-MM-dd'T'HH:mm:ss.SSSZ") />

						<div class="post">
							<p class="post-meta">
								${msg("notice.commentaires.meta.html",
									"<span class=\"post-pseudo\">${comm.pseudo?html}</span>",
									"<span class=\"post-profile\">${msg('notice.commentaires.profil.${comm.profil}')?html}</span>",
									"<span class=\"post-date\">${postDate?date?string.full?html}</span>",
									"<span class=\"post-time\">${postDate?time?string.short?html}</span>"
								)}
							</p>
							<div class="post-body">
								<#if comm.masque == "true">
									<p class="post-moderated-note">${msg("notice.commentaires.masque")?html}</p>
								<#else>
									${stringUtils.stripUnsafeHTML(comm.description)}
								</#if>
							</div>
						</div>
					</#list>
				</div>
				
				<#-- FIXME remove this if to restore comments -->
				<#if false>
				<div>
					<a href="#dialog" id="create-comment" title="${msg("notice.commentaires.create")?html}">
						<img src="${url.context?html}/res/images/actions/create-small.png" alt="${msg("notice.commentaires.create")?html}" />
					</a>
				</div>
				</#if>
			</@>

			<!-- POP UP CREATION COMMENTAIRE -->
			
			<#-- Remove this if to restore comments -->
				<#if false>
			<div id="dialog-form" class="uohPopupDialog" title="${msg("notice.commentaires.form.titre")}">
				<p class="validateTips">${msg("notice.commentaires.form.champs.requis")}.</p>
				<form id="target" method="post" action="${url.context}/service/fr/uoh/commentaire/commentaire_notice">
					<#if isAuthenticated>
						<div class="formItem">
							<input type="hidden" name="username" value="${user.userName}" />
							<input type="hidden" name="pseudo" value="${user.personPseudonyme}" />
							<input type="hidden" name="profil" value="${user.jobtitle}" />

							<label class="label">${msg("notice.commentaires.form.pseudo")}</label>
							<span>${user.personPseudonyme}</span>
						</div>
					<#else>
						<div class="formItem">
							<label class="label" for="profil">${msg("notice.commentaires.form.profil")?html}</label>
							<div class="field">
								<select id="profil" name="profil">
								<#list profils as profil>
									<option value="${profil.id}">${profil.libelle_uoh}</option>
								</#list>
								</select>
							</div>
						</div>

						<div class="formItem">
							<label class="label" for="pseudo">${msg("notice.commentaires.form.pseudo")}</label>
							<div class="field">
								<input type="text" id="pseudo" name="pseudo" size="30" maxlength="50" />
							</div>
						</div>
					</#if>

					<div class="commentaire">
						<input type="hidden" name="noticeId" value="${noticeId?html}" />
						<input type="hidden" name="isAuthenticated" value="${isAuthenticated?string}" />

						<div>
							<label class="label" for="comment">${msg("notice.commentaires.form.comment")?html}</label>
						</div>
						<textarea rows="10" cols="91" id="comment" name="comment" class="richeditor"></textarea>
					</div>

					<#if !isAuthenticated>
						<div class="formItem charte">
							<#include "../config/charte.ftl" />
						</div>

						<div>
							<label>
								${msg("notice.commentaires.form.charte.confirm")?html}
								<input type="checkbox" name="accept_terms" />
							</label>
						</div>
					</#if>
			
					<#if commentCaptcha?has_content>
						<div class="captcha" id="captchaContainer">
							<#--${commentCaptcha}-->
						</div>
					</#if>
			
				</form>
			</div>
			</#if>
			
		</div>
		
	</div>
	
	<div id="notice-detail-right">

		<#if (requires?? && requires?has_content) || (is_required_by?? && is_required_by?has_content) || (contains?? && contains?has_content) || (is_part_of?? && is_part_of?has_content) || (references?? && references?has_content) || (is_reference_by?? && is_reference_by?has_content) || (associates?? && associates?has_content)>
			<@commonLib.renderColoredBox color="brown" titleId="notice.relations.titre">
				<#-- Relation A pour pré-requis -->
				<@detailRenderAssociation requires "notice.relations.pre-requis" />
				
				<#-- Relation est Pré-requis de -->
				<@detailRenderAssociation is_required_by "notice.relations.pre-requis-de" />
							
				<#-- Relation Contient -->
				<@detailRenderAssociation contains "notice.relations.contient" />
				
				<#-- Relation "Est partie de" -->
				<@detailRenderAssociation is_part_of "notice.relations.partie-de" />
				
				<#-- Relation Référence -->
				<@detailRenderAssociation references "notice.relations.reference" />
				
				<#-- Relation "Est référencé par" -->
				<@detailRenderAssociation is_reference_by "notice.relations.reference-par" />
				
				<#-- Relation Associé -->
				<@detailRenderAssociation associates "notice.relations.associe" />
			</@>
		</#if>

		<#if arrayRameau?? && arrayRameau?has_content>
			<@commonLib.renderColoredBox color="grey" titleId="notice.mots-cles-rameau.titre">
				<ul>
					<#list arrayRameau as itemRameau>
						<li>
							<#list itemRameau as motCleRameau>
								<a onclick="uohExecuteSearch('${motCleRameau.libelle?js_string?html}');">${motCleRameau.libelle?cap_first?html}</a><#if motCleRameau_has_next>-- </#if>
							</#list>
						</li>
					</#list>
				</ul>
			</@>
		</#if>

		<#if controverse.id??>
			<@commonLib.renderColoredBox color="brown" titleId="notice.controverses.titre">
				<p><a href="controverse?id=${controverse.id}&noticeId=${noticeId}">${controverse.titre}</a></p>
			</@>
		</#if>
		
		<#if isAuthenticated>
			<@commonLib.renderColoredBox color="black">
				<img src="${url.context}/res/images/icone-selection.png"/>
					<a onclick="uohAddNoticeToCaddie('${noticeId?js_string?html}');">${msg("notice.ajouter-selection.titre")?html}</a>
				<div class="clear"></div>
			</@>
		</#if>

		<@commonLib.renderColoredBox color="grey" titleId="notice.partager.titre">
			<@commonLib.renderShareLinks />
		</@>

	</div>
	<div class="myhr"></div>
</div>

<#else>

<@commonLib.renderPageBox>
<h1>${msg("notice.introuvable.titre")?html}</h1>
<p>${msg("notice.introuvable.info")?html}
</p>

<p><a href="${url.context?html}">${msg("notice.introuvable.home")?html}</a>
</p>
</@>

</#if>
File: webscripts/fr/uoh/notice/notice_detail.get.js
<import resource="/webscripts/fr/uoh/captcha/captchaUtils.js">
<import resource="/webscripts/fr/uoh/config/noticeUtils.js">
<import resource="/webscripts/fr/uoh/config/common.js">

uohPage.requestFiltering(); // Le contenu de la page contient des variables à remplacer.

/**
 * Convertit une chaîne JSON en tableau.
 * 
 * @param json
 * 			Chaîne JSON
 * @return Tableau (vide si json ne représente pas un tableau)
 */
function jsonToArray(json) {
	var obj = eval('('+json+')');
	return (obj && obj.constructor == Array) ? obj : [];
}

var id = String(url.args['id']) || "";

model.noticeId = id;
model.err = url.args.err;	// Transmission des messages d'erreur.

var notice = uohQueryNotice(id);
if (notice == null) {
	status.code = 404;
} else {
	// EndPoint Alfresco
	var connAlf = remote.connect("alfresco-system");

	// Liste des contributeurs
	var contributeurs = eval('('+notice.contributions+')');
	model.contributeurs = contributeurs;

	// Vignette
	var vignette = notice.vignette;
	if (vignette!=null) {
		var vignetteArray = vignette.split("-");
		vignette = vignetteArray[0]+"/"+vignetteArray[1]+"/"+vignetteArray[2]+"/"+vignette;

		model.vignette = vignette;
	}

	// Domaine, spécialité
	var domaines = eval('('+notice.domaines+')');
	if (domaines!=null) { 
		var array = new Array();
		
		for (var i=0; i<domaines.length; i++) {
			var libelle = domaines[i].split("/");
			var url = "/" + libelle[0] + "#";

			array[i] = new Array();
			
			// On commence à 1 car on ne veut pas afficher le champ disciplinaire (index 0)
			for (var j=1; j<libelle.length; j++) {
				url = url + "/" + libelle[j] + "#";

				array[i][j] = {
						libelle: libelle[j],
						url: url
				};
			}
		}
	
		model.arrayDomaines = array;
	}


	// Liste des types pedagogiques
	var typesPedagogiques = eval('('+notice.types_pedagogiques+')');
	if (typesPedagogiques != null) {
		model.typesPedagogiques = typesPedagogiques;
	}
		
	// Liste des niveaux
	var niveaux = eval('('+notice.niveaux+')');
	if (niveaux != null) {
		model.niveaux = niveaux; 
	}

	// Objectifs pédagogiques
	model.objectifsPedagogiques = eval('(' + notice.objectifs_pedagogiques + ')');

	// Activités induites
	model.activites_induites = eval('(' + notice.activites_induites + ')');

	// Liste des propositions d'utilisations
	model.propositionsUtilisations = eval('('+notice.proposition_utilisation+')');

	// Langues de l'apprenant
	model.langues_utilisateur = eval('(' + notice.langues_utilisateur + ')');
	
	// Correspondant
	model.correspondant = eval('('+notice.correspondant+')');

	// Etablissement porteur
	var etablissement_porteur = eval('('+notice.etablissement_porteur+')');

	// Logo etablissement
	if (etablissement_porteur != null) {
		model.etablissement_porteur = etablissement_porteur;
		model.etablissement_porteur_raw = notice.etablissement_porteur;

		var id_etablissement_porteur = etablissement_porteur.id;
		if (id_etablissement_porteur) {
			model.etablissement_porteur_logo_url = uohQueryEtablissementLogo(id_etablissement_porteur);
		}
	}

	// Etablissements co-editeurs
	var etabsCoEditeurs = eval('('+notice.etablissements_co_editeurs+')');
	if (etabsCoEditeurs != null) {
		var etablissementsCoEditeurs = new Array();
		
		for (var i=0; i<etabsCoEditeurs.length; i++) {
			// Get logo etablissement
			var etablissement = {
				"libelle": etabsCoEditeurs[i].libelle,
				"logo_url": uohQueryEtablissementLogo(etabsCoEditeurs[i].id)
			};
			
			etablissementsCoEditeurs.push(etablissement);
		}

		model.etablissementsCoEditeurs = etablissementsCoEditeurs;
	}
	
	// Liste des types documentaires
	var typesDocumentaires = eval('('+notice.types_documentaires+')');
	if (typesDocumentaires != null) { 
		model.typesDocumentaires = typesDocumentaires;
	}
	
	//Liste des mimeTypes
	var typesMime = eval('('+notice.type_mime+')');
	if (typesMime != null) { 
		model.typesMime = typesMime;
	}

	// Liste des langues
	var langues = eval('('+notice.langues_ressource+')');
	if (langues != null) { 
		model.langues = langues;
	}
	
	// Liste des mots cles
	var motsCles = eval('('+notice.mots_cles+')');
	if (motsCles != null) { 
		model.motsCles = motsCles;
	}

	// Liste des associations de types requires
	model.requires = jsonToArray(notice.associations_requires);

	// Liste des associations de types required by
	model.is_required_by = jsonToArray(notice.associations_is_required_by);
	
	// Liste des associations de types contains
	model.contains = jsonToArray(notice.associations_has_part);
	
	// Liste des associations de types is part of
	model.is_part_of = jsonToArray(notice.associations_is_part_of);
	
	// Liste des associations de types references
	model.references = jsonToArray(notice.associations_references);
	
	// Liste des associations de types is referenced by
	model.is_reference_by = jsonToArray(notice.associations_is_reference_by);

	// Liste des associations de types associate
	model.associates = jsonToArray(notice.associations_associate);
	
	// Liste des mots cles Rameau
	var motsClesRameau = eval('('+notice.rameau+')');
	if (motsClesRameau != null) { 
		var array = new Array();
	
		// construction url
		for (var i=0; i<motsClesRameau.length; i++) {
			var url = "";
			var libelle = motsClesRameau[i].libelle.split("--");
			array[i] = new Array();
			
			for (var j=0; j<libelle.length; j++) {
				array[i][j] = new Array();
				url = url + "/" + libelle[j] + "#";
				
				array[i][j]["libelle"] = trimString(libelle[j]);
				array[i][j]["url"] = url;
			}
		}
	
		model.arrayRameau = array;
	}
	
	// Ressource
	if (notice.ressource_lien != null) {
		// ressource de type lien
		model.ressourceType = "url";
		
		var ressource = eval('('+notice.ressource_lien+')');
		model.ressource = ressource.url;
	} else if (notice.ressource_contenu_html != null) {
		// ressource de type contenu HTML
		model.ressourceType = "html";
		
		model.ressource = notice.ressource_contenu_html;
	} else if (notice.fichiers_attaches != null) {
		// ressource de type fichier attaché
		model.ressourceType = "file";
		
		var fichiers_attaches = eval('('+notice.fichiers_attaches+')');
		
		if (fichiers_attaches && fichiers_attaches.length > 0) {
			// on ne prend que le premier fichier
			var fichier_attache = fichiers_attaches[0];

			var fichierArray = fichier_attache.filename.split("-");
			var fichierPath = fichierArray[0]+"/"+fichierArray[1]+"/"+fichierArray[2]+"/"+fichier_attache.filename;

			model.ressource = "document/" + fichierPath;
		}
	
	}

	// Affichage des Commentaires
	var data = connAlf.get("/fr/uoh/commentaire/commentaires_notice/" + id + "?format=json");
	var commentaires = eval('('+data+')');
	model.commentaires = commentaires;

	//	test si l'utilisateur en cours est connecte
	var isAuthenticated = context.authenticated;
	model.isAuthenticated = isAuthenticated;

	if (isAuthenticated) {
		var serviceUrl = "/api/people/" + user.name + "?format=json";
		var data = connAlf.get(serviceUrl);
		var user = eval('('+data+')');

		model.user = user;
	} else {
		// get profil list
		var serviceUrl = "/fr/uoh/table/profil/getAll";
		var data = connAlf.get(serviceUrl);

		json = eval('('+data+')');

		model.profils = json;
		model.commentCaptchaInclude = uohGetAjaxCaptchaHtmlInclude();
		model.commentCaptcha = uohGetNewCaptcha();
	}

	// Controverse
	var data = connAlf.get("/fr/uoh/notice/controverse/get/" + id);
	var controverse = eval('('+data+')');
	model.controverse = controverse;

	model.notice = notice;
	
	// Compléments.
	if (model.notice.complement_ressource) {
		model.notice.complement_ressource = uohTranslateShareImages(model.notice.complement_ressource);
	}

	// Titre.
	uohPage.setVariable("noticeTitle", stringUtils.encodeHTML(notice.titre));

	// Enregistrement de la consultation de la notice.
	var remoteIpAddress = Request.request.remoteAddr;
	if (Request.request.getHeader("X-Forwarded-For") != null) {
		remoteIpAddress = Request.request.getHeader("X-Forwarded-For");
	}
	uohTrace.traceNoticeView(notice.uuid, notice.domaines, notice.etablissement_porteur,
			notice.types_pedagogiques, notice.types_documentaires, notice.niveaux, remoteIpAddress);
}
File: webscripts/fr/uoh/notice/notice_detail.get.desc.xml
<webscript>
  <shortname>Notice Detail</shortname>
  <description>Detail d'une notice</description>
  <url>/fr/uoh/notice/notice_detail</url>
  <authentication>none</authentication>
</webscript>

Store: classpath:surf/webscripts

[No implementation files]

Store: classpath:webscripts

[No implementation files]