Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    8.2 migration problems

    Hello,

    Is there a document describing migration steps/caveats for 8.0 -> 8.2 migration path?
    Most of my client side code is broken after 8.0 to 8.2 migration. Previous migrations from 7.RC1, 7RC2 and so on used to work fine.

    Here is just one example of the code that used to work fine with 8.0 and results in JS errors after 8.2 migration:

    Code:
    isc.DynamicForm.create({
    	ID:"frmDefaults",valuesManager:"frmSetValMgr",
        height:300,width:400,padding:5,titleOrientation:"top",autoDraw:false,saveOnEnter:true,autoFetchData:true,
        fields:    [{type:"button",title:"Cancel",startRow:false,click:"defaultsW.hide();"}
        ]
    });
    isc.ValuesManager.create({
    	ID:"frmSetValMgr",
    	dataSource:"settingDS",
    	members:[frmDefaults,frmSettings,frmSettings2,frmSettings3]
    });
    This code gives the following JS error:
    this.form is null
    [Break On This Error] ,isc.A.isDisabled=function isc_FormIte...1=this.containerWidget.isDisabled()}}

    Similar code seems to work fine when ValuesManager is not involved, removing frmDefaults from ValuesManager members list solves the problem. It seems some forms fields are causing it - custom dialogs, buttons, spinner. When they're commented out in the form, it again works fine even with the ValueManager.

    Versions:
    SmartClient 8.2 Eval and with 8.2 nightly build (12-09-2011). Everything used to work with 8.0 and 7RC2.
    Replacing isomorphic dir in my webroot with either 8.1 or 8.0 versions solves the problem.
    Browsers: reproducible on all browsers (IE7, FF 3.6, FF8.0, Chrome 15.08).
    Server: Tomcat 7.0.23
    IDE: Eclipse Indigo SR1

    And there is one more regression in 8.2.
    Some forms seem to be losing their values when submission callback function is invoked.
    Steps:
    Code:
    //1. Set values in a form via JavaScript and invoke the window that contains the form.
    frmP.setValue("actID",actionID);
    //2. Call saveData from the form "frmP":
    {type:"button",title:_button_OK,endRow:false,click:"fPSubmit();"}
    
    function fPSubmit(){ 
    	if(frmP.validate()){
    		frmP.saveData(fPCallback,{prompt:_msg_RESULTS});
    	}
    }
    
    function fPCallback(dsResponse,data){
    	var vals = frmP.getValues();
    	alert("fPCallback() vals.actID="+vals.actID); //this returns null for actID
    
    	//oldValues are preserved:
    	var oldVals = frmP.getOldValues();
    	alert("fPCallback() oldVals.actID="+oldVals.actID); //this call returns valid value for actID
    }
    This 2nd issue is reproducible with 8.1 and 8.2 production and latest (12-09-2011) nightly builds on all the browsers (FF, IE, Safari, Chrome). As with the first issue, replacing the isomorphic dir with 8.0 version fixes the problem.
    I've got 2 very similar forms and it's only reproducible with one of them.

    Any pointers on how to resolve/workaround these issues? Are these known regressions or do I need to modify my code in any special way to work with 8.2?

    Thanks,
    - Gene
    Last edited by genev; 10 Dec 2011, 22:26.

    #2
    Migration problems can be caused by actual regressions or just by bad/undocumented usage that happens to have been broken.

    Neither of your code samples is an actual runnable test case, and if modified to be runnable, they don't reproduce the problem. If these are actual regressions, provide minimal code we can run to see the problem and they'll be addressed rapidly.

    Comment


      #3
      For the first issue, setting datasource on the form resolves the issue. The code below works fine and without the data source set on both the form and on the value manager it gives blank screens or js errors. Some forms in that case result in blank screens/js errors, some - with disabled controls.

      Code:
      isc.DynamicForm.create({
      	ID:"frmDefaults",dataSource:"settingDS",valuesManager:"frmSetValMgr",
          height:300,width:400,padding:5,titleOrientation:"top",autoDraw:false,saveOnEnter:true,autoFetchData:true,
          fields:    [{type:"button",title:"Cancel",startRow:false,click:"defaultsW.hide();"}
          ]
      });
      Still unable to isolate the 2nd issue, the workaround would be storing form values in an object prior to the callback function call.

      Comment

      Working...
      X