@@ -590,36 +590,41 @@ async function import_settings_string_internal(settingsString) {
590590 let total_settings_list_items = [ ] ;
591591 let total_settings_list_checks = [ ] ;
592592 for ( let i = 0 ; i < list_count ; i ++ ) {
593- total_settings_list_items = total_settings_list_items . concat ( settings [ `${ list_predicate } ${ i } ` ] ) ;
594- total_settings_list_checks = total_settings_list_checks . concat ( settings [ `${ list_predicate } ${ i + list_count } ` ] ) ;
595- }
596- if ( [ ...new Set ( total_settings_list_items ) ] . length != items_list . length ) {
597- valid = false ;
598- }
599- if ( [ ...new Set ( total_settings_list_checks ) ] . length != checks_list . length ) {
600- valid = false ;
593+ if ( settings [ `${ list_predicate } ${ i } ` ] !== undefined ) {
594+ total_settings_list_items = total_settings_list_items . concat ( settings [ `${ list_predicate } ${ i } ` ] ) ;
595+ }
596+ if ( settings [ `${ list_predicate } ${ i + list_count } ` ] !== undefined ) {
597+ total_settings_list_checks = total_settings_list_checks . concat ( settings [ `${ list_predicate } ${ i + list_count } ` ] ) ;
598+ }
601599 }
602- total_settings_list_items . forEach ( value => {
600+ const unique_items = [ ...new Set ( total_settings_list_items ) ] ;
601+ const unique_checks = [ ...new Set ( total_settings_list_checks ) ] ;
602+
603+ unique_items . forEach ( value => {
603604 if ( items_list . filter ( k => k . num_val == value ) . length == 0 ) {
604605 valid = false ;
605606 }
606607 } ) ;
607- total_settings_list_checks . forEach ( value => {
608+ unique_checks . forEach ( value => {
608609 if ( checks_list . filter ( k => k . num_val == value ) . length == 0 ) {
609610 valid = false ;
610611 }
611612 } ) ;
612613 } else {
613614 let total_settings_list = [ ] ;
614615 for ( let i = 0 ; i < list_count ; i ++ ) {
615- total_settings_list = total_settings_list . concat ( settings [ `${ list_predicate } ${ i } ` ] ) ;
616- }
617- valid = total_settings_list . length == items_list . length ;
618- total_settings_list . forEach ( value => {
619- if ( items_list . filter ( k => k . num_val == value ) . length == 0 ) {
620- valid = false ;
616+ if ( settings [ `${ list_predicate } ${ i } ` ] !== undefined ) {
617+ total_settings_list = total_settings_list . concat ( settings [ `${ list_predicate } ${ i } ` ] ) ;
621618 }
622- } ) ;
619+ }
620+ if ( total_settings_list . length > 0 ) {
621+ valid = total_settings_list . length == items_list . length ;
622+ total_settings_list . forEach ( value => {
623+ if ( items_list . filter ( k => k . num_val == value ) . length == 0 ) {
624+ valid = false ;
625+ }
626+ } ) ;
627+ }
623628 }
624629 if ( valid ) {
625630 selector . innerHTML = "" ;
@@ -692,6 +697,29 @@ async function import_settings_string_internal(settingsString) {
692697 } ) ;
693698 } else {
694699 console . log ( "Invalid sortable during string import" ) ;
700+ console . log ( `Key: ${ key } , Predicate: ${ list_predicate } , ListCount: ${ list_count } ` ) ;
701+ if ( list_predicate == "item_rando_list_" ) {
702+ let total_settings_list_items = [ ] ;
703+ let total_settings_list_checks = [ ] ;
704+ for ( let i = 0 ; i < list_count ; i ++ ) {
705+ if ( settings [ `${ list_predicate } ${ i } ` ] !== undefined ) {
706+ total_settings_list_items = total_settings_list_items . concat ( settings [ `${ list_predicate } ${ i } ` ] ) ;
707+ }
708+ if ( settings [ `${ list_predicate } ${ i + list_count } ` ] !== undefined ) {
709+ total_settings_list_checks = total_settings_list_checks . concat ( settings [ `${ list_predicate } ${ i + list_count } ` ] ) ;
710+ }
711+ }
712+ console . log ( `Items (unique): ${ [ ...new Set ( total_settings_list_items ) ] . length } , Expected: ${ items_list . length } ` ) ;
713+ console . log ( `Checks (unique): ${ [ ...new Set ( total_settings_list_checks ) ] . length } , Expected: ${ checks_list . length } ` ) ;
714+ } else {
715+ let total_settings_list = [ ] ;
716+ for ( let i = 0 ; i < list_count ; i ++ ) {
717+ if ( settings [ `${ list_predicate } ${ i } ` ] !== undefined ) {
718+ total_settings_list = total_settings_list . concat ( settings [ `${ list_predicate } ${ i } ` ] ) ;
719+ }
720+ }
721+ console . log ( `Total items: ${ total_settings_list . length } , Expected: ${ items_list . length } ` ) ;
722+ }
695723 }
696724 if ( list_predicate == "item_rando_list_" ) {
697725 updateCheckItemCounter ( grandparent ) ;
0 commit comments