Announcement

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

    Tabbing issues in 8.2x Branch

    Tested with Build 12-13-2011


    Issue #1
    1. Focus on the first filter field.
    2. Tab through the whole page until the focus goes to the Logout button.
    3. Tab again, the focus skips the first filter field.




    Code:
    
    
    
    <HTML><HEAD><TITLE>Tabbing in a PopUp</TITLE>
        <SCRIPT>var isomorphicDir = "isomorphic/"</SCRIPT>
        <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
        <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
        <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
        <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
        <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
        <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
    	<SCRIPT SRC=isomorphic/skins/Enterprise/load_skin.js></SCRIPT>
    </HEAD><BODY CLASS="pageBackground">
    
    
    <SCRIPT>
    isc.screenReader = true;
    
    isc.ClassFactory.defineClass("CwButtonItem", "CanvasItem");
    
    isc.CwButtonItem.addProperties({
        init:function () {
        	var canvasProperties = {
                    shouldSaveValue: false,
                    cwUploadControl: this.cwUploadControl,
                    $isCwButton: this.$isCwButton,
                    icon: this.icon,
                    iconOrientation: this.iconOrientation,
                    hoverStyle: this.hoverStyle,
                    hoverWidth: this.hoverWidth,
                    //baseStyle: this.buttonStyle,
                    ID: this.widgetID,
                    width: this.width,
                    height: this.height,
                    action: this.cwClick,
                    showRollOver: this.showRollOver,
                    showDown: false,
                    iconWidth: this.iconWidth,
                    iconHeight: this.iconHeight,
                    iconSpacing: this.iconSpacing,
                    name: this.name,
                    autoFit: this.autoFit,
                    title: this.buttonLabel,
                	align: this.textAlign,
                	auditor: this.auditor,
                	$cwname: this.$cwname,
                	autoFit: this.autoFit,
                	iconWidth: this.iconWidth,
                	iconHeight: this.iconHeight, 
                	keyPress: this.keyPress
                };
        	
        	if (this.buttonStyle != null) {
        		canvasProperties.baseStyle = this.buttonStyle;
        		if (this.cwAutoFit)
        			canvasProperties.overflow = "visible";
        	}
        	
        	if (this.cwStretchButton) {
        		canvasProperties.autoFit = this.cwAutoFit;
        		canvasProperties.showRollOver = true;
        		canvasProperties.src = this.cwImageSrc;
        		if (this.cwCapSize)
        		  canvasProperties.capSize = this.cwCapSize;
        		if (canvasProperties.autoFit) {
        			canvasProperties.overflow = "visible";
        		}
        		canvasProperties.titleSuffix = "";
        		if (canvasProperties.autoFit && this.cwLabelLengthPad)
        		  canvasProperties.labelLengthPad = this.cwLabelLengthPad;
        		this.canvas = isc.StretchImgButton.create(canvasProperties);
        	}
        	else
        		this.canvas = isc.Button.create(canvasProperties);
        	
        	//this.showTitle = false;
    		this.title = "";	          //this is needed for the canvasItem otherwise a title will appear on top of the button or beside it
            return this.Super("init", arguments);
        },
        setCwDynStyle:function(style) {
        	this.buttonStyle = style;
        	if (this.canvas != null) {
        		this.canvas.setProperty("baseStyle", style);
        		this.canvas.markForRedraw();
        		if (this.canvas.autoFit && this.form)
        			this.form.markForRedraw();
        	}
        },
        setCwDynIcon:function(icon) {
        	if (this.canvas != null) {
        		this.canvas.setProperty("icon", style);
        		this.canvas.markForRedraw();
        		if (this.canvas.autoFit && this.form)
        			this.form.markForRedraw();
        	}
        },
        setCwDynImage:function(image) {
        	if (this.canvas != null) {
        		this.canvas.setProperty("src", image);
        		this.canvas.markForRedraw();
        	}
        }    
    });
    
    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();
    		var currentFocusCanvas = isc.EventHandler.getFocusCanvas();
          if (currentFocusCanvas != null) currentFocusCanvas.delayCall("focus");
    	}
    });
    
    isc.DynamicForm.create({
        ID: "DF",
    	top: 410,
    	left: 100,
        width: 250,
        fields: [
            {title: "Username",
             type: "text"
            }
        ]
    });
    
    
    </SCRIPT></BODY></HTML>
    Last edited by acarur01; 13 Dec 2011, 08:26.

    #2
    This sounds like an issue we thought was resolved on Dec 12 (in which case the fix should be in place for it!).
    Which browser is this in?

    Comment


      #3
      Reproduceable in IE8 - have not tried in Firefox. We also have tabbing issues in our environment that were working in 8.1x we have yet to reproduce as a standalone.

      Comment


        #4
        The focus seems to be stuck in this one after focusing on the first listgrid. To reproduce, load the sample in Firefox OR Chrome. Start pressing tab. The focus will go to the Get Price, then to the first listgrid. Tabbing after that is unresponsive. IE is fine

        Code:
        
        
        
        <HTML><HEAD><TITLE>Tabbing through a Table (Not in a PopUp) v1.7</TITLE>
            <SCRIPT>var isomorphicDir = "isomorphic/"</SCRIPT>
            <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
            <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
            <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
            <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
            <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
            <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
        	<SCRIPT SRC=isomorphic/skins/Enterprise/load_skin.js></SCRIPT>
        </HEAD><BODY CLASS="pageBackground">
        
        
        <SCRIPT>
        isc.screenReader = true;
        
        var testData2=[{pk:0}];
        
        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.VStack.create({left:100, top: 50, members:
        	[isc.IButton.create({title: "Get Price", click: "isc.say('Getting Price...')"}),
        	isc.LayoutSpacer.create({height:20}),
        	isc.VStack.create({vPolicy:"fill",hPolicy:"fill",height:1,width:710,overflow:"visible",layoutTopMargin:2,members:
        		[isc.HStack.create({vPolicy:"fill",hPolicy:"fill",height:1,width:710,members:
        			[isc.Label.create({contents:"Order ID",width:280}),
        			isc.Label.create({contents:"ItemDescription",width:100}),
        			isc.Label.create({contents:"Category",width:130}),
        			isc.Label.create({contents:"shipDate",width:100}),
        			isc.Label.create({contents:"Quantity",width:100})
        			]}),
        		isc.ListGrid.create({height:200, width:720, autoFetchData:true, dataSource:orderItemLocal2,showAllRecords:true,showGroupSummary:true,
        		 showHeader: false, autoFetchData:true,fields:
        			[{name:"orderID"},{name:"itemDescription"},{name:"category"},{name:"shipDate"},{name:"quantity"},{name:"unitPrice"}]}),
        		isc.LayoutSpacer.create({height:20}),
        		isc.ListGrid.create({height:200, width:720, showHeader: false,fields:[{name:"orderID"}],canEdit:false})
        		]}),
        	isc.LayoutSpacer.create({height:20}),
        	isc.IButton.create({title: "Generate PDF Quote", width: 150, click: "isc.say('Generating PDF Quote...')"})
        	]
        });
        
        </SCRIPT></BODY></HTML>
        Please note, this was working in Dec 8-2011 build 8.1x
        Last edited by acarur01; 13 Dec 2011, 13:25.

        Comment


          #5
          The second issue is now resolved (fix will show up in 8.2.x and 8.x branch nightlies going forward).
          The first issue we're not reproducing.
          Just to be clear on the steps we are literally clicking in the first filter-editor field ("order id"), then tabbing through all the elements on the page to "username", tabbing into the URL bar and then back into the page, and focus is going to the logout button, then to the first item (order id) again and so on. No "jumping ahead" to another item.

          We're testing on IE8, running on Windows XP.

          Since you will want to retest the second issue with a new nightly maybe try both on a new nightly. If you still see the first issue, let us know

          Thanks
          Isomorphic Software

          Comment


            #6
            The first issue is no longer reproduceable in build 8.2x 12-15-2011.

            We have another problem and as much as I have tried, I cannot reproduce as a standalone. I know you've said that you do not trust Firefox saveas but it is the only way I am able to reproduce right now.


            Perhaps you can take a look at what is happening and guide me through how to debug. I have tried taking out as much of our code as possible but still was not successful in fixing it in our environment. I do know that as soon as I take out the last filter field, it behaves fine. And I have looked at this last filter field many times and even tried replacing in with the simplest text field and I still had the same problem.

            To reproduce:

            1. click into the first filter field
            2. tab through the filter fields until you get to the filter button.
            3. tab again, you will see that the tab goes to the last filter field.

            In our environment, once we are in this situation, tabbing is stuck between going to the filter icon and the last filter field. In the firefox "standalone" after step 3, then the next tabbing goes elsewhere.


            I can't paste in the text or attach the html file so I will send it through email.

            Comment


              #7
              Firstly - as a sanity check, please re-test with tomorrow's nightly build since we have just checked in a fix around ListGrid focus/blur behavior with screenReader mode enabled. It may be a totally unrelated area but it's worth trying.

              --
              In terms of debugging the live app on your end - there are a couple of logging categories that may help: Try turning "nativeFocus", "nativeBlur", "traceFocus", "traceBlur", "syntheticTabIndex" and "gridEdit" log categories up to debug.
              If you now tab through your app you'll see *a lot* of information being logged to the log window indicating where focus is actually going within the app.
              You're describing what sounds like a sort of closed focus loop, on each tab - focus goes from the last filter editor item to the filter button, then back to the last filter editor item, then back to the last filter button. The logs generated as you go through this process may be helpful - try tabbing to the offending form item, clearing the log window, then tabbing through this "loop" a couple of times and show us the output. There may be a stack trace or similar that indicates what exactly the problem is.
              ---

              The problem with the "Save-As" approach is that it essentially saves out a snapshot of the HTML on the screen but doesn't capture the underlying javascript logic. We have event handling logic that actually intercepts browser events including (in some cases) Tab keypresses and explicitly moves focus around the page.
              Cases where we directly handle tab-navigation in this way include when a click mask is up (so a modal window is showing, for example), and moving within editor items in a ListGrid.
              We also do some tricky stuff in response to focus / blur events when screenReader mode is enabled which doesn't come up in other cases.

              Since a screen saved using "Save As" typically doesn't get the actual JS libraries - just a snapshot of the HTML, all this custom logic won't run, so the behavior when tabbing around the page may will be relying on the native tab-indices written into elements in the DOM.
              So - the behavior may be different, and even if it isn't - the process of debugging an issue essentially always involves using the Developer console to debug inspect and debug live elements and code. In a simple HTML snapshot the live JS code framework simply isn't there, so no developer console, and we'd have to attempt to reverse engineer what went wrong from the generated HTML elements on the page.

              Standalone test cases are absolutely the best way for us to pin down and resolve framework issues. As I'm sure you'll agree from our past interactions with you, once we can reproduce the issue in a test case on our end we typically can turn around a solution extremely quickly.

              So - if there's any way you can put together something we can run on our end to see the problem - please do! It would seem like this ought to be possible by starting with your application code, removing any UI elements that don't appear relevant to the interaction, replacing any DataSources with client-only equivalents and so on. The simpler the test case is the better, since this will reduce the number of places things could be going wrong, (and may identify a culprit in the process), and also will allow us to dig into the example without having burn any time learning to navigate a large unfamiliar app.

              Comment


                #8
                Thanks. I added traceFocus earlier and it wasn't showing anything at all (which was strange to me btw) but I will try the rest and let you know.

                I was able to pinpoint it to just that textfield at the end. Not sure what is so special about it but as soon as it is removed it's fine.

                Yes, I will try this again with tomorrow's build as well

                Comment


                  #9
                  BTW, thought you may want to know that we are now only testing with 8.2 branch

                  Comment


                    #10
                    Here is the stack trace for tabbing in the filter editor

                    nativeFocus() doesn't get called anymore once I have tabbed into the filter editor button.

                    Code:
                    
                    09:09:41.378:MDN8:INFO:nativeFocus:page$content$$content$orderType:not returning focus element undef since it's not active, activeElement: DIV
                    09:09:41.383:MDN8:INFO:nativeFocus:page$content$$content$orderType:can't call element blur, no element
                    09:09:41.445:IFCS3:INFO:nativeFocus:page$content$$content$orderType:not returning focus element undef since it's not active, activeElement: INPUT
                    09:09:41.450:IFCS3:INFO:nativeFocus:page$content$$content$orderType:can't call element blur, no element
                    09:09:41.457:IFCS3:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 2
                    09:09:41.489:IFCS3:INFO:nativeFocus:isc_TextItem_0:element already focused, not focus()ing
                    09:09:42.666:KDN7:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 3
                    09:09:42.697:KDN7:INFO:nativeFocus:isc_TextItem_1:about to call element.focus() , activeElement: INPUT
                    09:09:51.656:KDN4:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 4
                    09:09:51.685:KDN4:INFO:nativeFocus:isc_TextItem_2:about to call element.focus() , activeElement: INPUT
                    09:09:52.545:KDN1:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 5
                    09:09:52.572:KDN1:INFO:nativeFocus:isc_TextItem_3:about to call element.focus() , activeElement: INPUT
                    09:09:52.977:KDN8:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 6
                    09:09:53.005:KDN8:INFO:nativeFocus:isc_SelectItem_0:about to call element.focus() , activeElement: INPUT
                    09:09:53.289:KDN6:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 7
                    09:09:53.315:KDN6:INFO:nativeFocus:isc_SelectItem_1:about to call element.focus() , activeElement: DIV
                    09:09:53.576:KDN3:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 8
                    09:09:53.606:SCR4:INFO:nativeFocus:isc_MiniDateRangeItem_0:about to call element.focus() , activeElement: DIV
                    09:09:53.904:KDN9:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 9
                    09:09:53.932:KDN9:INFO:nativeFocus:isc_SelectItem_2:about to call element.focus() , activeElement: A
                    09:09:54.584:KDN5:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 10
                    09:09:54.611:KDN5:INFO:nativeFocus:isc_TextItem_4:about to call element.focus() , activeElement: DIV
                    09:09:54.952:KDN3:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 12
                    09:09:54.981:KDN3:INFO:nativeFocus:isc_TextItem_5:about to call element.focus() , activeElement: INPUT
                    09:09:55.360:KDN1:INFO:nativeFocus:isc_Button_13:about to call native focus()
                    09:09:59.288:KDN2:INFO:nativeFocus:isc_Button_13:about to call native focus()
                    09:10:02.287:KDN3:INFO:nativeFocus:isc_Button_13:about to call native focus()
                    09:10:06.895:KDN3:INFO:nativeFocus:isc_Button_13:about to call native focus()
                    09:10:13.471:KDN4:INFO:nativeFocus:isc_Button_13:about to call native focus()
                    There is also another case where the tabbing doesn't get stuck between the last text item and the filter button but it gets stuck within the filter editor itself. So after tabbing on the filter button, it goes back to the second filter editor text item and all the way around again. This I cannot always reproduce in our environment

                    Code:
                    09:14:59.278:MDN6:INFO:nativeFocus:page$content$$content$orderType:not returning focus element undef since it's not active, activeElement: DIV
                    09:14:59.283:MDN6:INFO:nativeFocus:page$content$$content$orderType:can't call element blur, no element
                    09:14:59.345:IFCS1:INFO:nativeFocus:page$content$$content$orderType:not returning focus element undef since it's not active, activeElement: INPUT
                    09:14:59.348:IFCS1:INFO:nativeFocus:page$content$$content$orderType:can't call element blur, no element
                    09:14:59.356:IFCS1:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 2
                    09:14:59.387:IFCS1:INFO:nativeFocus:isc_TextItem_0:element already focused, not focus()ing
                    09:15:00.310:KDN3:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 3
                    09:15:00.338:KDN3:INFO:nativeFocus:isc_TextItem_1:about to call element.focus() , activeElement: INPUT
                    09:15:01.301:KDN0:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 4
                    09:15:01.328:KDN0:INFO:nativeFocus:isc_TextItem_2:about to call element.focus() , activeElement: INPUT
                    09:15:02.461:KDN7:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 5
                    09:15:02.489:KDN7:INFO:nativeFocus:isc_TextItem_3:about to call element.focus() , activeElement: INPUT
                    09:15:02.949:KDN5:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 6
                    09:15:02.977:KDN5:INFO:nativeFocus:isc_SelectItem_0:about to call element.focus() , activeElement: INPUT
                    09:15:03.444:KDN3:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 7
                    09:15:03.471:KDN3:INFO:nativeFocus:isc_SelectItem_1:about to call element.focus() , activeElement: DIV
                    09:15:04.076:KDN0:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 8
                    09:15:04.106:SCR1:INFO:nativeFocus:isc_MiniDateRangeItem_0:about to call element.focus() , activeElement: DIV
                    09:15:04.740:KDN6:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 9
                    09:15:04.767:KDN6:INFO:nativeFocus:isc_SelectItem_2:about to call element.focus() , activeElement: A
                    09:15:06.260:KDN2:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 10
                    09:15:06.287:KDN2:INFO:nativeFocus:isc_TextItem_4:about to call element.focus() , activeElement: DIV
                    09:15:07.404:KDN0:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 12
                    09:15:07.432:KDN0:INFO:nativeFocus:isc_TextItem_5:about to call element.focus() , activeElement: INPUT
                    09:15:07.876:KDN8:INFO:nativeFocus:isc_Button_13:about to call native focus()
                    09:15:08.328:IFCS6:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 3
                    09:15:08.361:IFCS6:INFO:nativeFocus:isc_TextItem_1:element already focused, not focus()ing
                    09:15:10.892:KDN0:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 4
                    09:15:10.920:KDN0:INFO:nativeFocus:isc_TextItem_2:about to call element.focus() , activeElement: INPUT
                    09:15:11.956:KDN7:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 5
                    09:15:11.984:KDN7:INFO:nativeFocus:isc_TextItem_3:about to call element.focus() , activeElement: INPUT
                    09:15:12.276:KDN4:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 6
                    09:15:12.304:KDN4:INFO:nativeFocus:isc_SelectItem_0:about to call element.focus() , activeElement: INPUT
                    09:15:12.932:KDN2:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 7
                    09:15:12.958:KDN2:INFO:nativeFocus:isc_SelectItem_1:about to call element.focus() , activeElement: DIV
                    09:15:13.348:KDN9:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 8
                    09:15:13.377:SCR0:INFO:nativeFocus:isc_MiniDateRangeItem_0:about to call element.focus() , activeElement: DIV
                    09:15:13.660:KDN5:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 9
                    09:15:13.687:KDN5:INFO:nativeFocus:isc_SelectItem_2:about to call element.focus() , activeElement: A
                    09:15:13.956:KDN1:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 10
                    09:15:13.982:KDN1:INFO:nativeFocus:isc_TextItem_4:about to call element.focus() , activeElement: DIV
                    09:15:14.268:KDN9:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 12
                    09:15:14.296:KDN9:INFO:nativeFocus:isc_TextItem_5:about to call element.focus() , activeElement: INPUT
                    09:15:14.908:KDN7:INFO:nativeFocus:isc_Button_13:about to call native focus()
                    09:15:15.334:IFCS6:INFO:gridEdit:page$content$contentUI$dataGridUI$$content$content$content$FormFrame$resultFrame$TablefilterEditor:Starting editing at row 0, colNum 3
                    09:15:15.362:IFCS6:INFO:nativeFocus:isc_TextItem_1:element already focused, not focus()ing
                    Last edited by acarur01; 16 Dec 2011, 06:15.

                    Comment


                      #11
                      Issue #1

                      Took your advice and removed every possible element that I did not need on the screen and finally found the cause of the issue:
                      Reproduceable in IE8, Chrome, Safari and Firefox

                      There is a VStack at the very bottom of our page called "contentMenu" meant to display object menus. For the purpose of this testcase, I've removed the menus. Once I added this in my testcase, I was able to reproduce the problem.

                      Once again, the steps are the following:

                      1. Click into the first filter field.
                      2. Start tabbing all the way to the filter button.
                      3. Tab again, the focus is now on the last filter field. Tab again, focus is back on the filter button.

                      Code:
                      
                      <HTML><HEAD><TITLE>Tabbing in a PopUp</TITLE>
                          <SCRIPT>var isomorphicDir = "isomorphic/"</SCRIPT>
                          <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
                          <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
                          <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
                          <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
                          <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
                          <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
                      	<SCRIPT SRC=isomorphic/skins/Enterprise/load_skin.js></SCRIPT>
                      </HEAD><BODY CLASS="pageBackground">
                      
                      
                      <SCRIPT>
                      isc.screenReader = true;
                      isc.setAutoDraw(false);
                      testData = [
                                  {
                                      cwPK__:"9587321", 
                                      $isCwSelected:false, 
                                      Select:"/unoImages/radio-off.png", 
                                      Select$imageWidth:13, 
                                      Select$imageHeight:13, 
                                      orderingTypeFlagMethod:"/unoImages/cw_order_offline.gif", 
                                      orderingTypeFlagMethod$imageWidth:16, 
                                      orderingTypeFlagMethod$imageHeight:16, 
                                      formattedOrderNumber:"         9587321", 
                                      orderVersion:0, 
                                      custName:"kwjfksjldf", 
                                      milestone:"", 
                                      orderType:"NEW", 
                                      orderType$L:{
                                          NEW:"NEW", 
                                          MVE:"MVE", 
                                          ADD:"ADD", 
                                          CHG:"CHG", 
                                          DIS:"DIS"
                                      }, 
                                      orderType$k:"", 
                                      suppType:"", 
                                      suppType$L:{
                                          CAN:"Cancel", 
                                          CHG:"SUPP"
                                      }, 
                                      suppType$k:"", 
                                      creationDate:new Date(1322229930000), 
                                      formattedCurEditor:"User Profile Administrator", 
                                      orderStatus:"In Progress", 
                                      orderStatus$L:{
                                          New:"New", 
                                          Submitted:"Submitted", 
                                          Completed:"Completed", 
                                          Cancelled:"Cancel", 
                                          InProgress:"In Progress", 
                                          SOM:"Submitted to OM", 
                                          RFR:"Rejected for Revision", 
                                          SOP:"Submitted to OP", 
                                          CAN:"Cancelled"
                                      }, 
                                      orderStatus$k:"", 
                                      displayStatus:"InProgress", 
                                      solution:"Calling Card", 
                                      services:"Calling Card", 
                                      nspeId:"", 
                                      contractStatus:""
                                  }, 
                                  {
                                      cwPK__:"9587070", 
                                      $isCwSelected:false, 
                                      Select:"/unoImages/radio-off.png", 
                                      Select$imageWidth:13, 
                                      Select$imageHeight:13, 
                                      orderingTypeFlagMethod:"/unoImages/cw_order_offline.gif", 
                                      orderingTypeFlagMethod$imageWidth:16, 
                                      orderingTypeFlagMethod$imageHeight:16, 
                                      formattedOrderNumber:"         9587070", 
                                      orderVersion:0, 
                                      custName:"", 
                                      milestone:"", 
                                      orderType:"NEW", 
                                      suppType:"", 
                                      creationDate:new Date(1322219326000), 
                                      formattedCurEditor:"User Profile Administrator", 
                                      orderStatus:"In Progress", 
                                      displayStatus:"InProgress", 
                                      solution:"Calling Card", 
                                      services:"Calling Card", 
                                      nspeId:"", 
                                      contractStatus:""
                                  }, 
                                  {
                                      cwPK__:"9583108", 
                                      $isCwSelected:false, 
                                      Select:"/unoImages/radio-off.png", 
                                      Select$imageWidth:13, 
                                      Select$imageHeight:13, 
                                      orderingTypeFlagMethod:"/unoImages/cw_order_offline.gif", 
                                      orderingTypeFlagMethod$imageWidth:16, 
                                      orderingTypeFlagMethod$imageHeight:16, 
                                      formattedOrderNumber:"         9583108", 
                                      orderVersion:0, 
                                      custName:"", 
                                      milestone:"InProgress", 
                                      orderType:"NEW", 
                                      suppType:"", 
                                      creationDate:new Date(1322219261000), 
                                      formattedCurEditor:"User Profile Administrator", 
                                      orderStatus:"In Progress", 
                                      displayStatus:"InProgress", 
                                      solution:"Calling Card", 
                                      services:"Calling Card", 
                                      nspeId:"", 
                                      contractStatus:""
                                  }, 
                                  {
                                      cwPK__:"9587202", 
                                      $isCwSelected:false, 
                                      Select:"/unoImages/radio-off.png", 
                                      Select$imageWidth:13, 
                                      Select$imageHeight:13, 
                                      orderingTypeFlagMethod:"/unoImages/cw_order_offline.gif", 
                                      orderingTypeFlagMethod$imageWidth:16, 
                                      orderingTypeFlagMethod$imageHeight:16, 
                                      formattedOrderNumber:"         9587202", 
                                      orderVersion:0, 
                                      custName:"", 
                                      milestone:"InProgress", 
                                      orderType:"NEW", 
                                      suppType:"", 
                                      creationDate:new Date(1322219115000), 
                                      formattedCurEditor:"User Profile Administrator", 
                                      orderStatus:"In Progress", 
                                      displayStatus:"InProgress", 
                                      solution:"Calling Card", 
                                      services:"Calling Card", 
                                      nspeId:"", 
                                      contractStatus:""
                                  }, 
                                  {
                                      cwPK__:"9587136", 
                                      $isCwSelected:false, 
                                      Select:"/unoImages/radio-off.png", 
                                      Select$imageWidth:13, 
                                      Select$imageHeight:13, 
                                      orderingTypeFlagMethod:"/unoImages/cw_order_offline.gif", 
                                      orderingTypeFlagMethod$imageWidth:16, 
                                      orderingTypeFlagMethod$imageHeight:16, 
                                      formattedOrderNumber:"         9587136", 
                                      orderVersion:0, 
                                      custName:"", 
                                      milestone:"InProgress", 
                                      orderType:"NEW", 
                                      suppType:"", 
                                      creationDate:new Date(1322218206000), 
                                      formattedCurEditor:"User Profile Administrator", 
                                      orderStatus:"In Progress", 
                                      displayStatus:"InProgress", 
                                      solution:"Calling Card", 
                                      services:"Calling Card", 
                                      nspeId:"", 
                                      contractStatus:""
                                  }, 
                                  {
                                      cwPK__:"9587103", 
                                      $isCwSelected:false, 
                                      Select:"/unoImages/radio-off.png", 
                                      Select$imageWidth:13, 
                                      Select$imageHeight:13, 
                                      orderingTypeFlagMethod:"/unoImages/cw_order_offline.gif", 
                                      orderingTypeFlagMethod$imageWidth:16, 
                                      orderingTypeFlagMethod$imageHeight:16, 
                                      formattedOrderNumber:"         9587103", 
                                      orderVersion:0, 
                                      custName:"", 
                                      milestone:"InProgress", 
                                      orderType:"NEW", 
                                      suppType:"", 
                                      creationDate:new Date(1322218172000), 
                                      formattedCurEditor:"User Profile Administrator", 
                                      orderStatus:"In Progress", 
                                      displayStatus:"InProgress", 
                                      solution:"Calling Card", 
                                      services:"Calling Card", 
                                      nspeId:"", 
                                      contractStatus:""
                                  }, 
                                  {
                                      cwPK__:"9583174", 
                                      $isCwSelected:false, 
                                      Select:"/unoImages/radio-off.png", 
                                      Select$imageWidth:13, 
                                      Select$imageHeight:13, 
                                      orderingTypeFlagMethod:"/unoImages/cw_order_offline.gif", 
                                      orderingTypeFlagMethod$imageWidth:16, 
                                      orderingTypeFlagMethod$imageHeight:16, 
                                      formattedOrderNumber:"         9583174", 
                                      orderVersion:0, 
                                      custName:"", 
                                      milestone:"", 
                                      orderType:"NEW", 
                                      suppType:"", 
                                      creationDate:new Date(1322214832000), 
                                      formattedCurEditor:"User Profile Administrator", 
                                      orderStatus:"In Progress", 
                                      displayStatus:"InProgress", 
                                      solution:"Calling Card", 
                                      services:"Calling Card", 
                                      nspeId:"", 
                                      contractStatus:""
                                  }, 
                                  {
                                      cwPK__:"9583141", 
                                      $isCwSelected:false, 
                                      Select:"/unoImages/radio-off.png", 
                                      Select$imageWidth:13, 
                                      Select$imageHeight:13, 
                                      orderingTypeFlagMethod:"/unoImages/cw_order_offline.gif", 
                                      orderingTypeFlagMethod$imageWidth:16, 
                                      orderingTypeFlagMethod$imageHeight:16, 
                                      formattedOrderNumber:"         9583141", 
                                      orderVersion:0, 
                                      custName:"", 
                                      milestone:"InProgress", 
                                      orderType:"NEW", 
                                      suppType:"", 
                                      creationDate:new Date(1322135447000), 
                                      formattedCurEditor:"User Profile Administrator", 
                                      orderStatus:"In Progress", 
                                      displayStatus:"InProgress", 
                                      solution:"Calling Card", 
                                      services:"Calling Card", 
                                      nspeId:"", 
                                      contractStatus:""
                                  }, 
                                  {
                                      cwPK__:"9583000", 
                                      $isCwSelected:false, 
                                      Select:"/unoImages/radio-off.png", 
                                      Select$imageWidth:13, 
                                      Select$imageHeight:13, 
                                      orderingTypeFlagMethod:"/unoImages/cw_order_offline.gif", 
                                      orderingTypeFlagMethod$imageWidth:16, 
                                      orderingTypeFlagMethod$imageHeight:16, 
                                      formattedOrderNumber:"         9583000", 
                                      orderVersion:0, 
                                      custName:"andam", 
                                      milestone:"", 
                                      orderType:"NEW", 
                                      suppType:"", 
                                      creationDate:new Date(1322134281000), 
                                      formattedCurEditor:"User Profile Administrator", 
                                      orderStatus:"In Progress", 
                                      displayStatus:"InProgress", 
                                      solution:"Calling Card", 
                                      services:"Calling Card", 
                                      nspeId:"ieowurieur", 
                                      contractStatus:""
                                  }, 
                                  {
                                      cwPK__:"9576358", 
                                      $isCwSelected:false, 
                                      Select:"/unoImages/radio-off.png", 
                                      Select$imageWidth:13, 
                                      Select$imageHeight:13, 
                                      orderingTypeFlagMethod:"/unoImages/cw_order_offline.gif", 
                                      orderingTypeFlagMethod$imageWidth:16, 
                                      orderingTypeFlagMethod$imageHeight:16, 
                                      formattedOrderNumber:"         9576358", 
                                      orderVersion:0, 
                                      custName:"", 
                                      milestone:"", 
                                      orderType:"NEW", 
                                      suppType:"", 
                                      creationDate:new Date(1322067536000), 
                                      formattedCurEditor:"User Profile Administrator", 
                                      orderStatus:"In Progress", 
                                      displayStatus:"InProgress", 
                                      solution:"Calling Card", 
                                      services:"Calling Card", 
                                      nspeId:"", 
                                      contractStatus:""
                                  }
                              ]
                      
                      
                      
                      
                      isc.VStack.create({
                      	ID:"testLayout",
                      	name:"table",
                      	vPolicy:"fill",
                      	hPolicy:"fill",
                      	height:"100%",
                      	width:"100%",
                      	members:
                      		[(
                      		isc.DataSource.create({
                      			ID:"Table$ds",
                      			testData: "testData",
                      			clientOnly: true,
                      			
                      			fields:
                      				[{name:"cwPK__",primaryKey:true},
                      					{name:"formattedOrderNumber"},
                      					{name:"orderVersion"},
                      					{name:"custName"},
                      					{name:"milestone"},
                      					{name:"orderType"},
                      					{name:"suppType"},
                      					{name:"creationDate"},
                      					{name:"formattedCurEditor"},
                      					{name:"orderStatus"},
                      					{name:"displayStatus"},
                      					{name:"solution"},
                      					{name:"services"},
                      					{name:"nspeId"},
                      					{name:"orderSource"},
                      					{name:"contractStatus"}
                      				],
                      			showPrompt:false,
                      			criteriaPolicy:"dropOnChange",
                      			compareCriteria:function() { return 1; }
                      		}),
                      		isc.ListGrid.create({
                      			autoDraw:false,
                      			styleName:"mainDataGridResult",
                      			title:"&nbsp;",autoFetchData:true,
                      			alternateRecordStyles:true,
                      			baseStyle:"mainDataGridResult",
                      			bodyStyleName:"mainDataGridResult",
                      			fastCellUpdates:false,
                      			groupByField:["custName"],
                      			groupStartOpen:"first",
                      			dataSource:Table$ds,
                      			validateOnChange:true,
                      			dataProperties:{useClientFiltering:false,neverDropUpdatedRows:true},
                      			ID:"testGrid",
                      			hoverStyle:"CwHoverStyle",
                      			headerHeight:30,
                      			modalEditing:true,
                      			recordBaseStyleProperty:"velocityRowStyle",
                      			canSelectText:true,
                      			selectOnEdit:true,
                      			willHandleErrors:true,
                      			canSort:true,
                      			headerButtonProperties:{wrap:true},
                      			height:"400px",
                      			headerTitleStyle:"mainDataGridResultHead",
                      			fields:
                      				[
                      				{type:"image",
                      				canSort:false,
                      				showTitle:false,
                      				imageHeight:"Select$imageHeight",
                      				imageWidth:"Select$imageWidth",
                      				imageURLPrefix:"\/",
                      				name:"Select",align:"left",
                      				canEdit:false,
                      				filterEditorType:"SpacerItem",
                      				validateOnChange:true,
                      				width:"35"
                      				},
                      				{type:"image",
                      				canSort:false,
                      				title:"<nobr>Order Source&nbsp;<\/nobr>",
                      				imageHeight:"orderingTypeFlagMethod$imageHeight",
                      				imageWidth:"orderingTypeFlagMethod$imageWidth",
                      				imageURLPrefix:"\/",name:"orderingTypeFlagMethod",
                      				align:"center",
                      				canEdit:false,
                      				filterEditorType:"SpacerItem",
                      				validateOnChange:true,width:"97"},
                      				{title:"<nobr><center>Service Order No<\/center>&nbsp;<\/nobr>",
                      				editorType:"text",
                      				filterEditorProperties:{
                      					_constructor:"TextItem",
                      					required:false,
                      					validateOnChange:false,
                      					type:"text"},
                      				name:"formattedOrderNumber",
                      				align:"left",
                      				canEdit:false,
                      				validateOnChange:true,
                      				width:"8%"},
                      				{title:"<nobr><center>Version<\/center>&nbsp;<\/nobr>",
                      				editorType:"text",
                      				type:"decimal",
                      				editorProperties:{type:"cwinteger",_constructor:"TextItem"},
                      				filterEditorProperties:{_constructor:"TextItem",required:false,validateOnChange:false,type:"text"},
                      				name:"orderVersion",align:"left",validateOnChange:true,width:"5%"},
                      				{title:"<nobr><center>Customer<\/center>&nbsp;<\/nobr>",
                      				editorType:"text",
                      				filterEditorProperties:{_constructor:"TextItem",
                      				required:false,validateOnChange:false,type:"text"},
                      				name:"custName",align:"left",validateOnChange:true,width:"5%"},
                      				{title:"<nobr><center>Milestone<\/center>&nbsp;<\/nobr>",
                      				editorType:"text",
                      				filterEditorProperties:{_constructor:"TextItem",required:false,validateOnChange:false,type:"text"},
                      				name:"milestone",align:"left",validateOnChange:true,width:"6%"},
                      				{title:"<nobr><center>Order <\/center>&nbsp;<\/nobr>",valueMap:{"NEW":"NEW","MVE":"MVE","ADD":"ADD","CHG":"CHG","DIS":"DIS"},editorType:"SelectItem",
                      				editorProperties:{ID:"orderType",
                      				allowEmptyValue:true},
                      				filterEditorType:"select",
                      				filterEditorProperties:{required:false,validateOnChange:false,allowEmptyValue:true,changed:function() { return true; }},
                      				name:"orderType",align:"left",validateOnChange:true,width:"6%"},
                      				{title:"<nobr><center>Sub Type<\/center>&nbsp;<\/nobr>",valueMap:{"CAN":"Cancel","CHG":"SUPP"},
                      				editorType:"SelectItem",editorProperties:{ID:"suppType",
                      				allowEmptyValue:true},
                      				filterEditorType:"select",
                      				filterEditorProperties:{required:false,validateOnChange:false,allowEmptyValue:true,changed:function() { return true; }},
                      				name:"suppType",
                      				align:"left",
                      				validateOnChange:true,
                      				width:"7%"},
                      				{title:"<nobr><center>Action Date<\/center>&nbsp;<\/nobr>",type:"date",
                      				editorType:"date",
                      				name:"creationDate",
                      				align:"left",width:"7%"},
                      				{title:"<nobr><center>Status<\/center>&nbsp;<\/nobr>"
                      				,valueMap:{"New":"New","Submitted":"Submitted","Completed":"Completed","Cancelled":"Cancel","InProgress":"In Progress","SOM":"Submitted to OM","RFR":"Rejected for Revision","SOP":"Submitted to OP","CAN":"Cancelled"},
                      				editorType:"SelectItem",
                      				editorProperties:{ID:"orderStatus",
                      				allowEmptyValue:true},
                      				filterEditorType:"select",
                      				filterEditorProperties:{required:false,validateOnChange:false,allowEmptyValue:true,changed:function() { return true; }},name:"orderStatus",align:"left",
                      				validateOnChange:true,width:"7%"},{title:"<nobr><center>Solution<\/center>&nbsp;<\/nobr>",editorType:"text",
                      				filterEditorProperties:{_constructor:"TextItem",required:false,validateOnChange:false,type:"text"},
                      				name:"solution",align:"left",validateOnChange:true,width:"7%"},
                      				{title:"<nobr><center>NSPE ID<\/center>&nbsp;<\/nobr>",editorType:"text",
                      				filterEditorProperties:{_constructor:"TextItem",required:false,validateOnChange:false,type:"text"},
                      				name:"nspeId",align:"left",validateOnChange:true,width:"6%"}],showFilterEditor:true,
                      				canEdit:false}))]
                      	});
                      	
                      	
                      isc.VStack.create({
                      ID:"vLayout",
                      name:"vLayout",
                      autoDraw:true,
                      vPolicy:"fill",
                      hPolicy:"fill",
                      redrawOnResize:true,
                      height:"100%",
                      width:"100%",
                      members:
                      [isc.VStack.create({
                      members:
                      [testLayout],
                      ID:"content",
                      overflow:"auto",
                      vPolicy:"fill",
                      height:"100%"}),
                      isc.VStack.create({members:
                      [],ID:"contentMenu",width:"100%"})]})
                      
                      
                      
                      </SCRIPT></BODY></HTML>
                      Matter of fact, the other issue we could not reproduce as a standalone was also caused by this VStack
                      Last edited by acarur01; 16 Dec 2011, 12:31.

                      Comment


                        #12
                        Issue #2

                        In Chrome:

                        1. Tab through the filter editors until you reach the first row in the listgrid.
                        2. Press space bar and change the data.
                        3. Press enter to exit edit mode.
                        4. Tab again. The focus is not in the Apply button but instead it is on the Logout button.

                        Code:
                        
                        <HTML><HEAD><TITLE>Tabbing in a PopUp</TITLE>
                            <SCRIPT>var isomorphicDir = "isomorphic/"</SCRIPT>
                            <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
                            <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
                            <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
                            <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
                            <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
                            <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
                        	<SCRIPT SRC=isomorphic/skins/Enterprise/load_skin.js></SCRIPT>
                        </HEAD><BODY CLASS="pageBackground">
                        
                        
                        <SCRIPT>
                        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"
                                }
                            ]
                        });
                        
                        
                        
                        	
                        
                        </SCRIPT></BODY></HTML>
                        Last edited by acarur01; 16 Dec 2011, 12:31.

                        Comment


                          #13
                          Issue #3

                          Not sure if this is one is an actual bug or we are just missing something:

                          In Chrome AND IE8:


                          1. Click on button Show "Show Window".
                          2. Click on the second row.
                          3. rowClick will re-fetch the data. In our environment, this would go back to the server for the data and in dataArrived, we would re-set the previous selection but for this testcase, I just added a callback.
                          4. Now click the tab key. The focus goes to the filter editor instead of the Apply button at the bottom of the window.

                          Code:
                          <HTML><HEAD><TITLE>Tabbing in a PopUp V1.5 Dec16th</TITLE>
                              <SCRIPT>var isomorphicDir = "isomorphic/"</SCRIPT>
                              <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
                              <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
                              <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
                              <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
                              <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
                              <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
                          	<SCRIPT SRC=isomorphic/skins/Enterprise/load_skin.js></SCRIPT>
                          </HEAD><BODY CLASS="pageBackground">
                          
                          
                          <SCRIPT>
                          isc.screenReader = true;
                          
                          isc.ClassFactory.defineClass("CwButtonItem", "CanvasItem");
                          
                          isc.CwButtonItem.addProperties({
                              init:function () {
                              	var canvasProperties = {
                                          shouldSaveValue: false,
                                          cwUploadControl: this.cwUploadControl,
                                          $isCwButton: this.$isCwButton,
                                          icon: this.icon,
                                          iconOrientation: this.iconOrientation,
                                          hoverStyle: this.hoverStyle,
                                          hoverWidth: this.hoverWidth,
                                          //baseStyle: this.buttonStyle,
                                          ID: this.widgetID,
                                          width: this.width,
                                          height: this.height,
                                          action: this.cwClick,
                                          showRollOver: this.showRollOver,
                                          showDown: false,
                                          iconWidth: this.iconWidth,
                                          iconHeight: this.iconHeight,
                                          iconSpacing: this.iconSpacing,
                                          name: this.name,
                                          autoFit: this.autoFit,
                                          title: this.buttonLabel,
                                      	align: this.textAlign,
                                      	auditor: this.auditor,
                                      	$cwname: this.$cwname,
                                      	autoFit: this.autoFit,
                                      	iconWidth: this.iconWidth,
                                      	iconHeight: this.iconHeight, 
                                      	keyPress: this.keyPress
                                      };
                              	
                              	if (this.buttonStyle != null) {
                              		canvasProperties.baseStyle = this.buttonStyle;
                              		if (this.cwAutoFit)
                              			canvasProperties.overflow = "visible";
                              	}
                              	
                              	if (this.cwStretchButton) {
                              		canvasProperties.autoFit = this.cwAutoFit;
                              		canvasProperties.showRollOver = true;
                              		canvasProperties.src = this.cwImageSrc;
                              		if (this.cwCapSize)
                              		  canvasProperties.capSize = this.cwCapSize;
                              		if (canvasProperties.autoFit) {
                              			canvasProperties.overflow = "visible";
                              		}
                              		canvasProperties.titleSuffix = "";
                              		if (canvasProperties.autoFit && this.cwLabelLengthPad)
                              		  canvasProperties.labelLengthPad = this.cwLabelLengthPad;
                              		this.canvas = isc.StretchImgButton.create(canvasProperties);
                              	}
                              	else
                              		this.canvas = isc.Button.create(canvasProperties);
                              	
                              	//this.showTitle = false;
                          		this.title = "";	          //this is needed for the canvasItem otherwise a title will appear on top of the button or beside it
                                  return this.Super("init", arguments);
                              },
                              setCwDynStyle:function(style) {
                              	this.buttonStyle = style;
                              	if (this.canvas != null) {
                              		this.canvas.setProperty("baseStyle", style);
                              		this.canvas.markForRedraw();
                              		if (this.canvas.autoFit && this.form)
                              			this.form.markForRedraw();
                              	}
                              },
                              setCwDynIcon:function(icon) {
                              	if (this.canvas != null) {
                              		this.canvas.setProperty("icon", style);
                              		this.canvas.markForRedraw();
                              		if (this.canvas.autoFit && this.form)
                              			this.form.markForRedraw();
                              	}
                              },
                              setCwDynImage:function(image) {
                              	if (this.canvas != null) {
                              		this.canvas.setProperty("src", image);
                              		this.canvas.markForRedraw();
                              	}
                              }    
                          });
                          
                          var testData2=[
                          {pk:0, orderID:629, 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({
                              title: "Show Window",
                              top: 100,
                              left: 75,
                              click : function () {
                                  modalWindow.show();
                          		companyList.focusInFilterEditor("orderID");
                              }
                          });
                          
                          isc.Window.create({
                              ID: "modalWindow",
                              title: "Modal Window",
                          	keepInParentRect: true,
                          	showHeaderIcon: false,
                          	showCloseButton: true,
                          	showMinimizeButton: true,
                          	canDragResize: true,
                          	isModal: true,
                          	showBody: true,
                          	showModalMask: true,
                              autoCenter: true,
                              autoSize:true,
                              isModal: true,
                              showModalMask: true,
                              autoDraw: false,
                          	modalMaskOpacity: 40,
                              items: 
                          		[
                          		isc.VStack.create({autoDraw: false,vPolicy:"fill",hPolicy:"fill",height:1,width:"100%",showEdges:true,
                          		 edgeShowCenter:false,edgeSize:27,edgeOffset:2,members:
                          			[isc.VStack.create({showResizeBar:false,styleName:"boxContent2",visible:true,vPolicy:"fill",hPolicy:"fill",height:"100%",width:"100%",
                          			 members:[isc.SectionStack.create({canFocus:false,overflow:"visible",width:685,height:"100%",sections:
                          				[{visible:true,hidden:false,tabIndex: -1,canCollapse:false,title:"Finder",expanded:true,showHeader:true,items:
                          					[isc.VStack.create({overflow:"visible",vPolicy:"fill",hPolicy:"fill",members:
                          						[isc.DynamicForm.create({numCols:6,colWidths:["40","120","120","250","100","50"],titleOrientation:"top",cellPadding:2,fields:
                          							[{tabIndex:-1,width:40,vAlign:"bottom",defaultValue:"Select",_constructor:"StaticTextItem"},
                          							{tabIndex:-1,width:120,vAlign:"bottom",defaultValue:"First Name",_constructor:"StaticTextItem"},
                          							{tabIndex:-1,width:120,vAlign:"bottom",defaultValue:"Last Name",_constructor:"StaticTextItem"},
                          							{tabIndex:-1,width:250,vAlign:"bottom",defaultValue:"E-mail",_constructor:"StaticTextItem"},
                          							{tabIndex:-1,width:100,vAlign:"bottom",defaultValue:"Telephone",_constructor:"StaticTextItem"},
                          							{tabIndex:-1,width:50,vAlign:"bottom",defaultValue:"Ext",_constructor:"StaticTextItem"}
                          							]}),
                          						isc.SectionStack.create({canFocus:false,overflow:"visible",defaultWidth:1,height:"100%",sections:
                          							[{canCollapse:false,showHeader:false,expanded:true,items:
                          								[isc.VStack.create({overflow:"visible",vPolicy:"fill",hPolicy:"fill",members:
                          									[isc.VStack.create({showResizeBar:false,vPolicy:"fill",hPolicy:"fill",height:"100%",members:
                          										[isc.VStack.create({vPolicy:"fill",hPolicy:"fill",showResizeBar:false,height:"100%",width:"100%",members:
                          											[isc.ListGrid.create({ID: "companyList",width:600, height: 300,alternateRecordStyles:true,autoFetchData:true,
                          											 dataSource:orderItemLocal2,showAllRecords:true, selectOnEdit: true,showFilterEditor: true, 
                          											 recordClick: function(viewer, record, recordNum, field, fieldNum, value, rawValue) {
                          												companyList.setDataSource(orderItemLocal2);
                          												companyList.fetchData(null, function(){companyList.selectRecord(1);companyList.body.focus();});
                          											 },fields:
                          												[{name:"orderID"},{name:"itemDescription"},{name:"category"},{name:"shipDate"},
                          												{name:"quantity"},{name:"unitPrice"},{name:"Total"}
                          												]})
                          											]})
                          										]})
                          									]})
                          								]}
                          							]}),
                          						isc.DynamicForm.create({vAlign:"bottom",width:60,height:"*",autoFocus:false,
                          						 titleOrientation:"top",numCols:1,cellPadding:2,fields:
                          							[{width:60,height:20,buttonLabel:"Apply",textAlign:"center",_constructor:"CwButtonItem"}
                          							]})
                          						]})
                          					]}
                          				]})
                          				]})
                          			]})
                          		]
                          });
                          
                          </SCRIPT></BODY></HTML>
                          Last edited by acarur01; 19 Dec 2011, 07:06.

                          Comment


                            #14
                            Issue #4

                            1. Tab through the filter fields and into the listgrid body.
                            2. Press the space bar then press enter.
                            3. Tab into the apply button and press the space bar.
                            4. Tab through the page and repeat steps 1 and 2.
                            5. After pressing enter, try step 3 - the focus goes to the Logout button instead of the Username field.

                            Code:
                            
                            
                            <HTML><HEAD><TITLE>Tabbing No PopUp V1.5 Dec16th</TITLE>
                                <SCRIPT>var isomorphicDir = "isomorphic/"</SCRIPT>
                                <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
                                <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
                                <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
                                <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
                                <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
                                <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
                            	<SCRIPT SRC=isomorphic/skins/Enterprise/load_skin.js></SCRIPT>
                            </HEAD><BODY CLASS="pageBackground">
                            
                            
                            <SCRIPT>
                            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"
                                    }
                                ]
                            });
                            
                            
                            
                            
                            </SCRIPT></BODY></HTML>
                            Last edited by acarur01; 16 Dec 2011, 12:32.

                            Comment


                              #15
                              FYI - These are queued to be looked at. Expect a response early next week - probably Tuesday.

                              Comment

                              Working...
                              X