Hi Isomorphic,
we got a report about a problem when using our application in a Apache Cordova/phoneGap App after update to iOS14.
Analyzing this it turns our that root cause of the problem has most likely been around for long and is present in at least v12.0p_2020-03-11, v12.0p_2020-09-20, v12.1p_2020-09-20 and does also affect Chrome and non-phoneGap iOS environments when using browserInputType.
In our application the problem manifests itself as follows:
Steps to reproduce:
Best regards
Blama
we got a report about a problem when using our application in a Apache Cordova/phoneGap App after update to iOS14.
Analyzing this it turns our that root cause of the problem has most likely been around for long and is present in at least v12.0p_2020-03-11, v12.0p_2020-09-20, v12.1p_2020-09-20 and does also affect Chrome and non-phoneGap iOS environments when using browserInputType.
In our application the problem manifests itself as follows:
- v12.0p_2020-03-11 Chromium 85: DateItem not filled (as you can see in the testcase below)
- v12.0p_2020-03-11 iOS 13 Safari: DateItem not filled (as you can see in the testcase below)
- v12.0p_2020-03-11 iOS 14 Safari: DateItem not filled (as you can see in the testcase below)
- v12.0p_2020-03-11 iOS 13 phonegap UIWebView: DateItem not filled
- v12.0p_2020-03-11 iOS 14 phonegap UIWebView: DateItem filled with "undefined" and not able to use any SmartClient or iPhone DataPicker, FormItem and therefore Form broken.
Steps to reproduce:
- Run sample
- Edit next shipment to Sept. 30th
- Save
- Run sample again
- Result: No date in the 1st DateItem (unexpected), but in all other ones (expected, time portion not being present most likely caused by the field being type="date" in the .ds.xml)
Code:
ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:2460 The specified value "undefined" does not conform to the required format, "yyyy-MM-dd". ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:2460 The specified value "undefined" does not conform to the required format. The format is "yyyy-MM-ddThh:mm" followed by optional ":ss" or ":ss.SSS". ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:2460 The specified value "09/30/2020" does not conform to the required format, "yyyy-MM-dd". ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:2460 The specified value "09/30/2020" does not conform to the required format, "yyyy-MM-dd". Stacktrace for the 1st one: ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:2460 The specified value "undefined" does not conform to the required format, "yyyy-MM-dd". isc_NativeDateItem_setElementValue @ ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:2460 isc_FormItem__setElementValue @ ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:1199 isc_FormItem__showValue @ ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:1130 isc_c_Class_invokeSuper @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:317 isc_c_Class_Super @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:309 isc_TextItem__showValue @ ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:1946 isc_FormItem_setValue @ ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:1126 isc_c_Class_invokeSuper @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:317 isc_TextItem_setValue @ ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:1943 isc_DateItem_setValue @ ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:2505 isc_FormItem_clearValue @ ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:1198 isc_DynamicForm_setItemValues @ ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:436 isc_DynamicForm__delayedSetValues @ ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:413 isc_c_Page_handleEvent @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:1849 isc_c_EventHandler__handleIdle @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:2245 isc_c_Class_fireCallback @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:326 isc_c_Timer__fireTimeout @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:1835 (anonymous) @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:1832 setTimeout (async) isc_c_Timer_setTimeout @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:1832 isc_c_EventHandler_startIdleTimer @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:2245 isc_c_Page_setEvent @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:1842 isc_DynamicForm_draw @ ISC_Forms.js?isc_version=v12.0p_2020-09-20.js:391 isc_Layout_layoutChildren @ ISC_Foundation.js?isc_version=v12.0p_2020-09-20.js:357 isc_Layout_drawChildren @ ISC_Foundation.js?isc_version=v12.0p_2020-09-20.js:269 isc_Canvas_draw @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:2647 isc_Canvas_addChild @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:2856 isc_ExampleViewer_addCanviiToView @ ISC_ExampleViewer.js?isc_version=v12.0p_2020-09-20.js:96 isc_ExampleViewer_evalExample @ ISC_ExampleViewer.js?isc_version=v12.0p_2020-09-20.js:92 isc_ExampleViewer_showExample @ ISC_ExampleViewer.js?isc_version=v12.0p_2020-09-20.js:92 isc_ExampleSourcePane_tryEditedCode @ ISC_ExampleViewer.js?isc_version=v12.0p_2020-09-20.js:111 isc_SourceEditor_tryClicked @ ISC_ExampleViewer.js?isc_version=v12.0p_2020-09-20.js:115 eval @ VM7884:3 isc_StatefulCanvas_handleActivate @ ISC_Foundation.js?isc_version=v12.0p_2020-09-20.js:238 isc_StatefulCanvas_handleClick @ ISC_Foundation.js?isc_version=v12.0p_2020-09-20.js:239 isc_c_EventHandler_bubbleEvent @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:2165 isc_c_EventHandler_handleClick @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:2000 isc_c_EventHandler__handleMouseUp @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:1984 isc_c_EventHandler_handleMouseUp @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:1975 isc_c_EventHandler_dispatch @ ISC_Core.js?isc_version=v12.0p_2020-09-20.js:2252 eval @ VM7506:3
Blama
Code:
isc.DynamicForm.create({ ID: "dynamicForm1", autoFetchData: true, dataSource: "supplyItem", initialCriteria: { _constructor: "AdvancedCriteria", operator: "and", criteria: [ { fieldName: "SKU", operator: "equals", value: "45300" } ] }, fields : [ {name: "itemID"}, {name: "itemName"}, {name: "SKU"}, {name: "nextShipment", useTextField: true, editorType: "DateItem", browserInputType: "date", title: "DI Mobile" }, {name: "save", title: "Save data", editorType: "ButtonItem", click: "dynamicForm1.saveData()" }, ] }); isc.DynamicForm.create({ ID: "dynamicForm2", autoFetchData: true, dataSource: "supplyItem", initialCriteria: { _constructor: "AdvancedCriteria", operator: "and", criteria: [ { fieldName: "SKU", operator: "equals", value: "45300" } ] }, fields : [ {name: "itemID"}, {name: "itemName"}, {name: "SKU"}, {name: "nextShipment", useTextField: true, editorType: "DateItem", title: "DI" }, {name: "save", title: "Save data", editorType: "ButtonItem", click: "dynamicForm2.saveData()" }, ] }); isc.DynamicForm.create({ ID: "dynamicForm3", autoFetchData: true, dataSource: "supplyItem", initialCriteria: { _constructor: "AdvancedCriteria", operator: "and", criteria: [ { fieldName: "SKU", operator: "equals", value: "45300" } ] }, fields : [ {name: "itemID"}, {name: "itemName"}, {name: "SKU"}, {name: "nextShipment", useTextField: true, editorType: "DateTimeItem", browserInputType: "datetime", title: "DTI Mobile" }, {name: "save", title: "Save data", editorType: "ButtonItem", click: "dynamicForm3.saveData()" }, ] }); isc.DynamicForm.create({ ID: "dynamicForm4", autoFetchData: true, dataSource: "supplyItem", initialCriteria: { _constructor: "AdvancedCriteria", operator: "and", criteria: [ { fieldName: "SKU", operator: "equals", value: "45300" } ] }, fields : [ {name: "itemID"}, {name: "itemName"}, {name: "SKU"}, {name: "nextShipment", useTextField: true, editorType: "DateTimeItem", title: "DTI" }, {name: "save", title: "Save data", editorType: "ButtonItem", click: "dynamicForm4.saveData()" }, ] }); isc.VLayout.create({ membersMargin: 10, members: [dynamicForm1, dynamicForm2, dynamicForm3, dynamicForm4] });
Comment