Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pve-manager
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
pve-manager
Commits
a7bafc3d
Commit
a7bafc3d
authored
Jun 26, 2015
by
Alexandre Derumier
Committed by
Dietmar Maurer
Jun 26, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ExtJS: backport Ext.ux.IFrame from ExtJS 4.2
Signed-off-by:
Alexandre Derumier
<
aderumier@odiso.com
>
parent
8286b36f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
150 additions
and
0 deletions
+150
-0
Utils.js
www/manager/Utils.js
+150
-0
No files found.
www/manager/Utils.js
View file @
a7bafc3d
...
...
@@ -48,6 +48,156 @@ var IP6_bracket_match = new RegExp("^\\[(" + IPV6_REGEXP + ")\\]");
var
IP64_match
=
new
RegExp
(
"
^(?:
"
+
IPV6_REGEXP
+
"
|
"
+
IPV4_REGEXP
+
"
)$
"
);
Ext
.
define
(
'
Ext.ux.IFrame
'
,
{
extend
:
'
Ext.Component
'
,
alias
:
'
widget.uxiframe
'
,
loadMask
:
'
Loading...
'
,
src
:
'
about:blank
'
,
renderTpl
:
[
'
<iframe src="{src}" name="{frameName}" width="100%" height="100%" frameborder="0"></iframe>
'
],
initComponent
:
function
()
{
this
.
callParent
();
this
.
frameName
=
this
.
frameName
||
this
.
id
+
'
-frame
'
;
this
.
addEvents
(
'
beforeload
'
,
'
load
'
);
Ext
.
apply
(
this
.
renderSelectors
,
{
iframeEl
:
'
iframe
'
});
},
initEvents
:
function
()
{
var
me
=
this
;
me
.
callParent
();
me
.
iframeEl
.
on
(
'
load
'
,
me
.
onLoad
,
me
);
},
initRenderData
:
function
()
{
return
Ext
.
apply
(
this
.
callParent
(),
{
src
:
this
.
src
,
frameName
:
this
.
frameName
});
},
getBody
:
function
()
{
var
doc
=
this
.
getDoc
();
return
doc
.
body
||
doc
.
documentElement
;
},
getDoc
:
function
()
{
try
{
return
this
.
getWin
().
document
;
}
catch
(
ex
)
{
return
null
;
}
},
getWin
:
function
()
{
var
me
=
this
,
name
=
me
.
frameName
,
win
=
Ext
.
isIE
?
me
.
iframeEl
.
dom
.
contentWindow
:
window
.
frames
[
name
];
return
win
;
},
getFrame
:
function
()
{
var
me
=
this
;
return
me
.
iframeEl
.
dom
;
},
beforeDestroy
:
function
()
{
this
.
cleanupListeners
(
true
);
this
.
callParent
();
},
cleanupListeners
:
function
(
destroying
){
var
doc
,
prop
;
if
(
this
.
rendered
)
{
try
{
doc
=
this
.
getDoc
();
if
(
doc
)
{
Ext
.
EventManager
.
removeAll
(
doc
);
if
(
destroying
)
{
for
(
prop
in
doc
)
{
if
(
doc
.
hasOwnProperty
&&
doc
.
hasOwnProperty
(
prop
))
{
delete
doc
[
prop
];
}
}
}
}
}
catch
(
e
)
{
}
}
},
onLoad
:
function
()
{
var
me
=
this
,
doc
=
me
.
getDoc
(),
fn
=
me
.
onRelayedEvent
;
if
(
doc
)
{
try
{
Ext
.
EventManager
.
removeAll
(
doc
);
// These events need to be relayed from the inner document (where they stop
// bubbling) up to the outer document. This has to be done at the DOM level so
// the event reaches listeners on elements like the document body. The effected
// mechanisms that depend on this bubbling behavior are listed to the right
// of the event.
Ext
.
EventManager
.
on
(
doc
,
{
mousedown
:
fn
,
// menu dismisal (MenuManager) and Window onMouseDown (toFront)
mousemove
:
fn
,
// window resize drag detection
mouseup
:
fn
,
// window resize termination
click
:
fn
,
// not sure, but just to be safe
dblclick
:
fn
,
// not sure again
scope
:
me
});
}
catch
(
e
)
{
// cannot do this xss
}
// We need to be sure we remove all our events from the iframe on unload or we're going to LEAK!
Ext
.
EventManager
.
on
(
this
.
getWin
(),
'
beforeunload
'
,
me
.
cleanupListeners
,
me
);
this
.
el
.
unmask
();
this
.
fireEvent
(
'
load
'
,
this
);
}
else
if
(
me
.
src
&&
me
.
src
!=
''
)
{
this
.
el
.
unmask
();
this
.
fireEvent
(
'
error
'
,
this
);
}
},
load
:
function
(
src
)
{
var
me
=
this
,
text
=
me
.
loadMask
,
frame
=
me
.
getFrame
();
if
(
me
.
fireEvent
(
'
beforeload
'
,
me
,
src
)
!==
false
)
{
if
(
text
&&
me
.
el
)
{
me
.
el
.
mask
(
text
);
}
frame
.
src
=
me
.
src
=
(
src
||
me
.
src
);
}
}
});
Ext
.
define
(
'
PVE.Utils
'
,
{
statics
:
{
// this class only contains static functions
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment