@@ -43,22 +43,28 @@ <h2>News: Add Article</h2>
43
43
< h2 > News Preview: < span id ="news-preview-title "> </ span > </ h2 >
44
44
< div id ="news-preview-data " class ="article-content "> </ div >
45
45
</ div >
46
- {% load cdn %}{% jquery %}
47
- < script type ="text/javascript " nonce ={{ CSP_NONCE }} >
48
- $ ( document ) . ready ( function ( ) {
49
- $ ( '#news-preview-button' ) . click ( function ( event ) {
50
- event . preventDefault ( ) ;
51
- $ . post ( '/news/preview/' , {
52
- data : $ ( '#id_content' ) . val ( ) ,
53
- csrfmiddlewaretoken : $ ( '#newsform input[name=csrfmiddlewaretoken]' ) . val ( )
54
- } ,
55
- function ( data ) {
56
- $ ( '#news-preview-data' ) . html ( data ) ;
57
- $ ( '#news-preview' ) . show ( ) ;
58
- }
59
- ) ;
60
- $ ( '#news-preview-title' ) . html ( $ ( '#id_title' ) . val ( ) ) ;
61
- } ) ;
62
- } ) ;
46
+ < script type ="text/javascript " nonce ={{ CSP_NONCE }} defer >
47
+ function onPreviewButtonClick ( event ) {
48
+ event . preventDefault ( ) ;
49
+
50
+ const formData = new FormData ( ) ;
51
+ formData . append ( 'data' , document . querySelector ( '#id_content' ) . value ) ;
52
+ formData . append ( 'csrfmiddlewaretoken' , document . querySelector ( '#newsform input[name=csrfmiddlewaretoken]' ) . value ) ;
53
+
54
+ fetch ( '/news/preview/' , {
55
+ method : 'POST' ,
56
+ body : formData ,
57
+ } ) . then ( response => response . text ( ) )
58
+ . then ( data => {
59
+ document . querySelector ( '#news-preview-data' ) . innerHTML = data ;
60
+ document . querySelector ( '#news-preview' ) . style . display = 'block' ;
61
+ document . querySelector ( '#news-preview-title' ) . innerHTML = document . querySelector ( '#id_title' ) . value ;
62
+ } ) . catch ( error => {
63
+ console . error ( error ) ;
64
+ } ) ;
65
+ }
66
+
67
+ const previewButton = document . getElementById ( 'news-preview-button' ) ;
68
+ previewButton . addEventListener ( 'click' , onPreviewButtonClick ) ;
63
69
</ script >
64
70
{% endblock %}
0 commit comments