Announcement

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

    #46
    Great news. Thanks I will download the nightly build and test.

    Comment


      #47
      Quick test of the standalone works.

      Comment


        #48
        We have other cases where the listgrid has results and once the tab goes into the record, the next tab skips the rest of the form and goes directly to the browser address bar.

        NOTE: this was working in Nov 11 2011 build

        Code:
        isc.screenReader = true;
        isc.ListGrid.create({
            ID: "countryList",
            width:500, height:300, alternateRecordStyles:true,
            data: countryData,
            fields:[
                {name:"countryCode", title:"Flag", width:50, align:"right",
                 type:"image", imageURLPrefix:"flags/16/", imageURLSuffix:".png"},
                {name:"independence", title:"independence", filterEditorType: "MiniDateRangeItem"},
        
                {name:"countryName", title:"Country"},
                {name:"capital", title:"Capital"}
            ],
            autoFetchData: true,
            showFilterEditor: true
        });
        
        isc.DynamicForm.create({ID:"testME", canFocus: true,top:400,fields:[{type:"text", title:"test"}]});
        Last edited by acarur01; 23 Nov 2011, 12:16.

        Comment


          #49
          We're looking into this. We don't see a change since the Nov 11 build that would account for this behavior changing but we do see the bug in our latest codebase, so we'll work from there.
          One note: We're running the example in a standalone HTML file (with the 'countryData' copied and pasted in) - we're not running it in the feature explorer as that changes the order in which components are created and rendered, etc in a way that can complicate debugging this sort of thing.

          We'll probably have an answer for you next week.

          Comment


            #50
            Ya sorry- I have country data with the listgrid in a standalone - we are not running in Feature explorer

            Comment


              #51
              Ok we've just made a change that should resolve this - the change will show up in the next 8.1 branch nightly build.

              Regards
              Isomorphic Software

              Comment


                #52
                Thanks the standalone testcases work - we are running into another problem with tabbing - we will try to reproduce it as a standalone and let you know.

                Comment


                  #53
                  Scenario #1 - only happens in IE8

                  1. Tab to the list grid body.

                  2. Press “down” or “space” to enter the edit mode for any record.

                  3. Press “Enter” to finish the edit

                  4. Tab to the Apply button and press “space” or “enter” to refresh the data in the grid list

                  5. Tab again. The focus is on the “logout” button.


                  Try the same steps again, but this time skip steps 2 and 3 you'll notice that the focus does go to the text field which is the behaviour we want


                  Scenario #2 - happens in both IE8 and Firefox6.0

                  1. Tab to the list grid body.

                  2. Tab to the Apply button and press “space” or “enter” to refresh the data in the grid list

                  3. Tab again. The focus is on the textfield.

                  4. Continue tabbing until the focus is back on the "Logout" button. You'll notice that the focus goes to the listgrid header instead of the filter field.
                  5. Tab again. Now the focus is on the first header.
                  6. Tab again and now the focus is in the filter field - tab through all the filter fields, this time it skips the header and goes directly to the listgrid body then the apply button.


                  Code:
                  isc.screenReader = true;
                  
                  var testData2=[
                  {pk:0, orderID:8620, itemDescription:"18 inch flat panel monitor",
                      category:"Hardware", shipDate:new Date(2009,11,11), quantity:2 , unitPrice:375 },
                  {pk:1, orderID:629, itemDescription:"Office Productivity Suite", 
                      category:"Software", shipDate:new Date(2009,12,10), quantity:15 , unitPrice:64.99 },
                  {pk:2, orderID:1264, itemDescription:"Office Productivity Suite",
                      category:"Software", shipDate:new Date(2009,12,20), quantity:2 , unitPrice:64.99 },
                  {pk:3, orderID:7100, itemDescription:"USB Ergonomic Keyboard",
                      category:"Hardware", shipDate:new Date(2009,10,20), quantity:6 , unitPrice:99.99 },
                  {pk:4, orderID:9647, itemDescription:"Consulting Services",
                      category:"Services", shipDate:new Date(2009,12,21), quantity:10 , unitPrice:100 },
                  {pk:5, orderID:8468, itemDescription:"USB Optical Mouse",
                      category:"Hardware", shipDate:new Date(2009,10,10), quantity:5 , unitPrice:29.99 },
                  {pk:6, orderID:9496, itemDescription:"Off-site Training",
                      category:"Services", shipDate:new Date(2010,1,1), quantity:35 , unitPrice:80 },
                  {pk:7, orderID:5124, itemDescription:"USB Stereo Headset",
                      category:"Hardware", shipDate:new Date(2009,10,20), quantity:1 , unitPrice:69.99 },
                  {pk:8, orderID:1799, itemDescription:"Office Application Suite",
                      category:"Software", shipDate:new Date(2009,11,2), quantity:22 , unitPrice:30 },
                  {pk:9, orderID:7020, itemDescription:"Consulting Services",
                      category:"Services", shipDate:new Date(2009,12,20), quantity:100 , unitPrice:80 }];
                  
                  isc.DataSource.create({
                      ID:"orderItemLocal2",
                      clientOnly:true,
                      testData:testData2,
                      fields:[
                          {name:"pk", type:"sequence", primaryKey:"true", hidden:"true"},
                          {name:"orderID", type:"integer", canEdit:false, title:"Order ID", pluralTitle:"Orders"},
                          {name:"itemDescription", type:"text", title:"Description"},
                          {name:"category", type:"text", title:"Category"},
                          {name:"shipDate", type:"date", title:"Ship Date"},
                          {name:"quantity", type:"integer", title:"Quantity"},
                          {name:"unitPrice", type:"float", title:"Price"}
                      ]
                  });
                  		
                  isc.IButton.create({
                      top: 20,
                  	left: 750,
                      title: "Logout",
                  	click: "isc.say('Applied!')"
                  });
                  
                  
                  isc.ListGrid.create({
                      ID: "companyList",
                  	top: 50,
                  	left:100,
                      width:600, height: 300,
                      alternateRecordStyles:true,
                      autoFetchData:true,
                      dataSource:orderItemLocal2,
                      showAllRecords:true,
                  	canEdit: true,
                  	selectOnEdit: true,
                  	showFilterEditor: true,
                      fields:[
                          {name:"orderID"},
                          {name:"itemDescription"},
                          {name:"category"},
                          {name:"shipDate"},       
                          {name:"quantity"},
                          {name:"unitPrice"}
                      ],
                  	editEvent: "click"
                  });
                  
                  isc.IButton.create({
                      top: 380,
                  	left: 600,
                      title: "Apply",
                  	click: function() {
                  	    companyList.saveEdits();
                  	   	companyList.setDataSource(orderItemLocal2);
                  		companyList.fetchData();
                  	}
                  });
                  
                  isc.DynamicForm.create({
                      ID: "DF",
                  	top: 410,
                  	left: 100,
                      width: 250,
                      fields: [
                          {title: "Username",
                           type: "text"
                          }
                      ]
                  });
                  Last edited by acarur01; 30 Nov 2011, 09:21.

                  Comment


                    #54
                    BTW, when I try this testcase in Chrome, the cursor gets stuck in the daterange filter icon

                    Comment


                      #55
                      Are the new scenarios I mentioned confirmed to be bugs?

                      Comment


                        #56
                        Issue #1 confirmed. A workaround is to call "companyList.filterEditor.clear();companyList.filterEditor.draw()" after the call to setDataSource() but we'll make a framework change so this isn't necessary.

                        Still looking at Issue #2

                        EDIT:
                        Sorry - got the issue #s reversed. 2 is confirmed and can be fixed by the filterEditor.clear() / filterEditor.draw() calls. Still looking at Issue #1.

                        Comment


                          #57
                          Ok Thanks for the update - and the Chrome issue?

                          Comment


                            #58
                            On Issue #1
                            We see the issue and have spent some time investigating it.

                            Fundamentally we're encountering a native browser issue where redrawing one set of elements in the DOM (the grid) is effecting focus on an unrelated element (the button). It only occurs in ScreenReader mode, only on this browser.
                            From our testing this appears to not be an issue in the 8.2 branch - but it's very difficult to resolve in 8.1 branch in a way that is safe and given that we're on the cusp of posting an official 8.1.1 release we're considering this a wont-fix there for now.

                            Therefore we'd suggest the following workaround -- you can explicitly force focus back onto the button via a delayed call to focus -- something like this:

                            Code:
                                isc.IButton.create({
                                    top: 380,
                                    left: 600,
                                    title: "Apply",
                                    click: function() {
                            	   	companyList.setDataSource(orderItemLocal2);
                            		companyList.fetchData();
                            		this.delayCall("focus");
                            	}
                            });
                            We'll follow up on the Chrome issue separately

                            Comment


                              #59
                              Ok - we'll test with the 8.2 build and try the workaround. We would have to do the delay for buttons that have server callback actions because in real-time scenarios, buttons can perform any actions - we do not actually know which one would invoke a fetch - would you see this as a problem?

                              Comment


                                #60
                                The Chrome issue was real as well.
                                We've made changes to the framework (8.1 branch) to resolve this and issue #2

                                Comment

                                Working...
                                X