Author: pkotikov
Date: 2007-03-28 05:47:37 -0400 (Wed, 28 Mar 2007)
New Revision: 187
Modified:
tags/3_0_0/richfaces/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanel.js
Log:
https://jira.exadel.com/browse/RFA-207
Fixed in IE and FF.
Modified:
tags/3_0_0/richfaces/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanel.js
===================================================================
---
tags/3_0_0/richfaces/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanel.js 2007-03-28
08:11:09 UTC (rev 186)
+++
tags/3_0_0/richfaces/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanel.js 2007-03-28
09:47:37 UTC (rev 187)
@@ -130,7 +130,7 @@
this.cdiv.mpUseExpr = true;
}
},
-
+
initIframe : function() {
if (this.contentWindow) {
Element.setStyle(this.contentWindow.document.body, { "margin" : "0px
0px 0px 0px" });
@@ -193,8 +193,11 @@
this.cdiv.style.top = pos + "px";
}
},
-
+
show: function(opts) {
+
+ this.setModal();
+
var options = {};
if (!this.cdiv.mpSet) {
@@ -315,6 +318,58 @@
this.id.style.visibility = "";
},
+ setModal : function(){
+ //this function removes all links and inputs from tabbing navigation
+ //if element have tabindex it value saves in component
+ var links = document.links;
+ var forms = document.forms;
+ if(links)
+ for (var i=0; i<links.length; i++)
+ if(!this.isInMP(links[i])){
+ if (links[i].tabIndex)
+ links[i].prevTabIndex = document.links[i].tabIndex;
+ links[i].tabIndex = -1;
+ }
+ if (forms)
+ for (var i=0; i<forms.length; i++)
+ for (var j=0; j<forms[i].length; j++)
+ if(!this.isInMP(forms[i][j])){
+ if (forms[i][j].tabIndex)
+ forms[i][j].prevTabIndex = forms[i][j].tabIndex;
+ forms[i][j].tabIndex = -1;
+ }
+ },
+
+ removeModal : function(){
+ //this function restores state of elements tabindex
+ var links = document.links;
+ var forms = document.forms;
+ if(links)
+ for (var i=0; i<links.length; i++)
+ if(!this.isInMP(links[i]))
+ if (links[i].prevTabIndex)
+ links[i].tabIndex = links[i].prevTabIndex;
+ else
+ links[i].tabIndex = 0;
+ if (forms)
+ for (var i=0; i<document.forms.length; i++)
+ for (var j=0; j<document.forms[i].length; j++)
+ if(!this.isInMP(document.forms[i][j]))
+ if (forms[i][j].prevTabIndex)
+ forms[i][j].tabIndex = forms[i][j].prevTabIndex;
+ else
+ forms[i][j].tabIndex = 0;
+ },
+
+ isInMP : function(elem){
+ while (elem.parentNode.tagName.toLowerCase() != "body")
+ if (elem.parentNode.id == this.id.id + "Content")
+ return true;
+ else
+ elem = elem.parentNode;
+ return false;
+ },
+
startDrag: function(border) {
for (var k = 0; k < this.borders.length; k++ ) {
//this.borders[k].hide();
@@ -329,6 +384,9 @@
},
hide: function() {
+
+ this.removeModal();
+
this.traverseSelects(true);
if (this.div.style.removeExpression) {