@@ -37,6 +37,23 @@ if (_CONF_DISPLAY_EDIT_ICON === "block"){
37
37
$ ( 'body.controller-issues.action-show .issue.details' ) . addClass ( 'showPencils' ) ;
38
38
}
39
39
40
+ let updateCSRFToken = function ( token ) {
41
+ document . querySelectorAll ( 'input[name="authenticity_token"]' ) . forEach ( elt => elt . value = token ) ;
42
+ document . querySelector ( 'meta[name="csrf-token"]' ) . setAttribute ( "content" , token ) ;
43
+ }
44
+
45
+ let setCSRFTokenInput = function ( token ) {
46
+ document . querySelectorAll ( 'form[method="post"]' ) . forEach ( elt => {
47
+ if ( ! elt . querySelectorAll ( 'input[name="authenticity_token"]' ) . length ) {
48
+ let input = document . createElement ( "input" ) ;
49
+ input . setAttribute ( "type" , "hidden" ) ;
50
+ input . setAttribute ( "name" , "authenticity_token" ) ;
51
+ input . value = token ;
52
+ elt . insertBefore ( input , null ) ;
53
+ }
54
+ } ) ;
55
+ }
56
+
40
57
/* Generate edit block */
41
58
var getEditFormHTML = function ( attribute ) {
42
59
var formElement = $ ( '#issue_' + attribute + "_id" ) ;
@@ -317,6 +334,8 @@ var sendData = function(serialized_data){
317
334
$ ( 'body' ) . find ( 'input[type=date]' ) . datepickerFallback ( datepickerOptions ) ;
318
335
}
319
336
337
+ setCSRFTokenInput ( $ ( parsed ) . find ( 'input[name="authenticity_token"]' ) . val ( ) ) ;
338
+ updateCSRFToken ( $ ( parsed ) . find ( 'input[name="authenticity_token"]' ) . val ( ) ) ;
320
339
setCheckVersionInterval ( true ) ;
321
340
} ,
322
341
error : function ( xhr , msg , error ) {
@@ -354,4 +373,5 @@ var sendData = function(serialized_data){
354
373
}
355
374
356
375
// Init plugin
357
- cloneEditForm ( ) ;
376
+ cloneEditForm ( ) ;
377
+ setCSRFTokenInput ( document . querySelector ( 'meta[name="csrf-token"]' ) . getAttribute ( "content" ) ) ;
0 commit comments