57 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {% include "korektury/korekturovatko/__edit_komentar.html" %}
 | |
| 
 | |
| {% include "korektury/korekturovatko/__stranky.html" %}
 | |
| 
 | |
| {# {% for o in opravy %} {% include "korektury/korekturovatko/__oprava.html" %} {% endfor %} #}
 | |
| {% include "korektury/korekturovatko/__oprava.html" %}
 | |
| {% include "korektury/korekturovatko/__komentar.html" %}
 | |
| 
 | |
| {% include "korektury/korekturovatko/__dalsi_korektura.html" %}
 | |
| 
 | |
| <script>
 | |
|   /**
 | |
|    *
 | |
|    * @param {RequestInit} data
 | |
|    * @param {Boolean} catchError
 | |
|    * @param pri_uspechu Akce, která se má provést při úspěchu (speciálně zavřít formulář)
 | |
|    */
 | |
|   function update_all(data={}, catchError=true, pri_uspechu=null) { // FIXME není mi jasné, zda v {} nemá být `cache: "no-store"`, aby prohlížeč necachoval GET.
 | |
|     fetch('{% url "korektury_api_opravy_a_komentare" korekturovanepdf.id %}', data)
 | |
|       .then(response => {
 | |
|         if (!response.ok && catchError) {alert('Něco se nepovedlo:' + response.statusText);}
 | |
|         else response.json().then(data => {
 | |
|           for (const oprava_data of data["context"]) {
 | |
|             const oprava = Oprava.update_or_create(oprava_data);
 | |
|             for (const komentar_data of oprava_data["komentare"]) {
 | |
|               Komentar.update_or_create(komentar_data, oprava);
 | |
|             }
 | |
|           }
 | |
| 
 | |
|           updatuj_pocty_stavu();
 | |
|           updatuj_pocty_zasluh();
 | |
|           place_comments();
 | |
|           if (pri_uspechu) pri_uspechu();
 | |
|         });
 | |
|       })
 | |
|       .catch(error => {if (catchError) alert('Něco se nepovedlo:' + error);});
 | |
|   }
 | |
| 
 | |
|   window.addEventListener("load", _ => {
 | |
|     update_all({}, true, _ => {
 | |
|       if (location.hash !== "") { // Po rozházení korektur sescrollujeme na kotvu v URL
 | |
|         const h = location.hash.substring(1);
 | |
|         location.hash = "HACK";
 | |
|         location.hash = h;
 | |
|       }
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   // FIXME není mi jasné, zda v {} nemá být `cache: "no-store"`, aby prohlížeč necachoval GET.
 | |
|   setInterval(() => update_all({}, false), 120000); // Každý dvě minuty fetchni korektury
 | |
| </script>
 | |
| 
 | |
| <form id='CSRF_form' style='display: none'>{% csrf_token %}</form>
 | |
| 
 | |
| <script>
 | |
|   const CSRF_FORM = document.getElementById('CSRF_form');
 | |
| </script>
 |