| 
					
				 | 
			
			
				@@ -3,3 +3,72 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 {% block title %}Videothèque commune{% endblock %} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 {% block titre %}Vidéothèque commune{% endblock %} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{% block javascripts %} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <script type="text/javascript"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $(document).ready(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // On récupère la balise <div> en question qui contient l'attribut « data-prototype » qui nous intéresse. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var $container = $('div#appbundle_film_realisateurs'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // On définit un compteur unique pour nommer les champs qu'on va ajouter dynamiquement 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var index = $container.find(':input').length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // On ajoute un nouveau champ à chaque clic sur le lien d'ajout. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $('#add_realisateur').click(function(e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                addRealisateur($container); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                e.preventDefault(); // évite qu'un # apparaisse dans l'URL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // On ajoute un premier champ automatiquement s'il n'en existe pas déjà un (cas d'une nouvelle annonce par exemple). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (index == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                addRealisateur($container); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // S'il existe déjà des catégories, on ajoute un lien de suppression pour chacune d'entre elles 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $container.children('div').each(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    addDeleteLink($(this)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // La fonction qui ajoute un formulaire RealisateurType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            function addRealisateur($container) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // Dans le contenu de l'attribut « data-prototype », on remplace : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // - le texte "__name__label__" qu'il contient par le label du champ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // - le texte "__name__" qu'il contient par le numéro du champ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var template = $container.attr('data-prototype') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .replace(/__name__label__/g, 'réalisateur n°' + (index+1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .replace(/__name__/g,        index) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // On crée un objet jquery qui contient ce template 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var $prototype = $(template); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // On ajoute au prototype un lien pour pouvoir supprimer la catégorie 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                addDeleteLink($prototype); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // On ajoute le prototype modifié à la fin de la balise <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $container.append($prototype); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // Enfin, on incrémente le compteur pour que le prochain ajout se fasse avec un autre numéro 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                index++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // La fonction qui ajoute un lien de suppression d'une catégorie 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            function addDeleteLink($prototype) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // Création du lien 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var $deleteLink = $('<a href="#" class="btn btn-danger">Supprimer</a>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // Ajout du lien 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $prototype.append($deleteLink); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // Ajout du listener sur le clic du lien pour effectivement supprimer la catégorie 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $deleteLink.click(function(e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $prototype.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    e.preventDefault(); // évite qu'un # apparaisse dans l'URL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{% endblock %} 
			 |