@@ -98,8 +98,14 @@ export default class FormPrivilegeTable extends Component {
98
98
this . setState ( { availablePrivileges : this . arrangePrivileges ( allPrivileges ) , loading : false } ) ;
99
99
return ;
100
100
}
101
- if ( initialPrivileges . links !== undefined && initialPrivileges . links . length > 0 && initialPrivileges . links . find ( link => link . rel === 'next' ) !== undefined ) {
102
- httpInterceptor . get ( initialPrivileges . links [ 0 ] . uri )
101
+ if ( initialPrivileges . links !== undefined && initialPrivileges . links . length > 0 ) {
102
+ const nextLink = initialPrivileges . links . find ( link => link . rel === 'next' ) ;
103
+ if ( ! nextLink ) {
104
+ this . setState ( { availablePrivileges : this . arrangePrivileges ( allPrivileges ) , loading : false } ) ;
105
+ return ;
106
+ }
107
+ const nextUri = this . getNextPaginationRequestUrl ( nextLink . uri ) ;
108
+ httpInterceptor . get ( nextUri )
103
109
. then ( ( privileges ) => this . collectAllPrivileges ( privileges , allPrivileges ) ) ;
104
110
} else {
105
111
this . setState ( { availablePrivileges : this . arrangePrivileges ( allPrivileges ) , loading : false } ) ;
@@ -253,6 +259,7 @@ export default class FormPrivilegeTable extends Component {
253
259
let formVersion = this . state . formData . version ;
254
260
let formId = this . state . formData . id ;
255
261
if ( ( this . state . firstSave === true ) && ( this . state . formData . published === true ) ) {
262
+ console . error ( 'Form is still marked as published. Execution should not be able to arrive at this point' ) ;
256
263
formVersion ++ ;
257
264
formVersion = formVersion . toString ( ) ;
258
265
formId ++ ;
@@ -285,6 +292,17 @@ export default class FormPrivilegeTable extends Component {
285
292
return formPrivilegeObj ;
286
293
}
287
294
295
+ getNextPaginationRequestUrl ( uri ) {
296
+ if ( uri . indexOf ( 'http' ) === - 1 ) {
297
+ return uri ;
298
+ }
299
+ const parsedUrl = new URL ( uri ) ;
300
+ if ( parsedUrl . protocol != window . location . protocol ) {
301
+ parsedUrl . protocol = window . location . protocol ;
302
+ }
303
+ return parsedUrl . toString ( ) ;
304
+ }
305
+
288
306
removeSelectedPrivilege ( e ) {
289
307
let array = this . state . availablePrivileges . filter ( ( item ) => item . label !== e ) ;
290
308
this . setState ( {
0 commit comments