@@ -133,7 +133,9 @@ async function getFormExistingContent (form, date) {
133133 console . log ( '## getFormContent ' + i , e ) ;
134134 if ( e . events && e . events . length > 0 ) {
135135 const event = e . events [ 0 ] ;
136- field . value = valueForField ( event . content , field ) ;
136+ const valueAndTxt = valueAndTxtForField ( event . content , field ) ;
137+ field . value = valueAndTxt . value ;
138+ field . valueTxt = valueAndTxt . txt ;
137139 field . eventId = event . id ; // will allow t track if the event is to be updated
138140 }
139141 }
@@ -157,8 +159,10 @@ async function getHistoricalContent(questionaryId, formKey) {
157159 dateStr,
158160 } ;
159161 const fieldId = field . streamId + ':' + field . eventType ;
162+ const valueAndTxt = valueAndTxtForField ( event . content , field ) ;
160163 valuesByDateStr [ dateStr ] [ fieldId ] = {
161- value : valueForField ( event . content , field ) ,
164+ value : valueAndTxt . value ,
165+ valueTxt : valueAndTxt . txt ,
162166 eventId : event . id
163167 }
164168 }
@@ -188,20 +192,34 @@ async function getHistoricalContent(questionaryId, formKey) {
188192 return { tableHeaders, valuesByDate } ;
189193}
190194
191- function valueForField ( eventContent , field ) {
195+ function valueAndTxtForField ( eventContent , field ) {
192196 if ( field . type === 'date' && eventContent != null ) {
193197 // convert the date to a Date object
194198 const date = new Date ( eventContent ) ;
195199 if ( ! isNaN ( date ) ) {
196- return date . toISOString ( ) . split ( 'T' ) [ 0 ] ; // format YYYY-MM-DD
200+ const dayStr = date . toISOString ( ) . split ( 'T' ) [ 0 ] ;
201+ return { value : dayStr , txt : dayStr } ; // format YYYY-MM-DD
197202 }
198203 console . error ( '## Error parsing date' , eventContent ) ;
199- return '' ;
204+ return { value : '' , txt : 'Error parsing date' } ;
205+ }
206+ if ( field . type === 'select' ) {
207+ let value = eventContent ;
208+ let txt = value ;
209+ if ( field . eventType === 'ratio/generic' ) {
210+ value = eventContent . value ;
211+ }
212+
213+ const selected = field . options . find ( ( o ) => ( o . value === value ) ) ;
214+ if ( selected ) {
215+ txt = selected ?. label ;
216+ }
217+ return { value, txt } ;
200218 }
201219 if ( field . eventType === 'ratio/generic' && eventContent != null ) {
202- return eventContent . value ;
220+ return { value : eventContent . value , txt : eventContent . value } ;
203221 }
204- return eventContent ;
222+ return { value : eventContent , txt : eventContent } ;
205223}
206224
207225// ---------------- create / update data ---------------- //
0 commit comments