@@ -856,7 +856,7 @@ async function getData(form) {
856856 }
857857
858858 let value = await element . getValue ( ) ;
859- if ( ! value && value !== "" ) continue ;
859+ if ( value === undefined ) continue ;
860860
861861 let Data = { ...data } ;
862862 let dataKey = elements . get ( element ) ;
@@ -1014,17 +1014,20 @@ async function getData(form) {
10141014
10151015async function save ( element , action ) {
10161016 if ( ! element ) return ;
1017- let data , value ;
1017+ let data , value , form ;
10181018 let upsert = element . getAttribute ( "upsert" ) ;
10191019 if ( upsert && upsert !== "false" ) upsert = true ;
10201020 if ( element . tagName === "FORM" ) {
10211021 data = await element . getData ( ) ;
10221022 } else {
10231023 let isSave = element . getAttribute ( "save" ) ;
10241024 if ( isSave === "false" ) return ;
1025-
1026- let form = element . closest ( "form" ) ;
1027- if ( form ) return save ( form ) ;
1025+ if ( action ) {
1026+ form = element . closest ( "form" ) ;
1027+ if ( form ) {
1028+ return save ( form ) ;
1029+ }
1030+ }
10281031
10291032 let dataKey = elements . get ( element ) ;
10301033 data = { ...keys . get ( dataKey ) . dataKey . object } ;
@@ -1064,21 +1067,25 @@ async function save(element, action) {
10641067 let Data = [ ] ;
10651068 for ( let i = 0 ; i < data . length ; i ++ ) {
10661069 if ( data [ i ] . type === "object" ) {
1067- if ( typeof data [ i ] . object === "string" ) {
1070+ if ( ! data [ i ] . object ) {
1071+ data [ i ] . method = "object.create" ;
1072+ } else if ( typeof data [ i ] . object === "string" ) {
10681073 if ( ! data [ i ] . _id ) data [ i ] . method = "object.create" ;
10691074 else {
10701075 data [ i ] . method = "object.update" ;
10711076 if ( upsert ) data [ i ] . upsert = true ;
10721077 }
10731078 } else if ( Array . isArray ( data [ i ] . object ) ) {
1074- if ( ! data [ i ] . object [ 0 ] . _id ) data [ i ] . method = "object.create" ;
1075- else {
1079+ if ( ! data [ i ] . object [ 0 ] . _id ) {
1080+ data [ i ] . method = "object.create" ;
1081+ } else {
10761082 data [ i ] . method = "object.update" ;
10771083 if ( upsert ) data [ i ] . upsert = true ;
10781084 }
10791085 } else if ( typeof data [ i ] . object === "object" ) {
1080- if ( ! data [ i ] . object . _id ) data [ i ] . method = "object.create" ;
1081- else {
1086+ if ( ! data [ i ] . object . _id ) {
1087+ data [ i ] . method = "object.create" ;
1088+ } else {
10821089 data [ i ] . method = "object.update" ;
10831090 if ( upsert ) data [ i ] . upsert = true ;
10841091 }
@@ -1151,7 +1158,9 @@ function setTypeValue(element, data, action) {
11511158
11521159 if ( ! form ) {
11531160 if ( data . type === "object" ) {
1154- element . setAttribute ( "object" , data . object [ 0 ] . _id ) ;
1161+ if ( data . object && data . object [ 0 ] && data . object [ 0 ] . _id ) {
1162+ element . setAttribute ( "object" , data . object [ 0 ] . _id ) ;
1163+ }
11551164 } else {
11561165 element . setAttribute ( data . type , data [ data . type ] . name ) ;
11571166 }
@@ -1310,9 +1319,6 @@ function initSocket() {
13101319 if ( data . rendered ) return ;
13111320
13121321 data . rendered = true ;
1313- if ( data && data . key === "answers" ) {
1314- console . log ( "test" ) ;
1315- }
13161322
13171323 setData ( null , data ) ;
13181324 } ) ;
0 commit comments