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
f9286377
Commit
f9286377
authored
Jul 03, 2015
by
Dietmar Maurer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
copy panel/LogView.js from manager to manager5
parent
4eafa964
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
210 additions
and
0 deletions
+210
-0
LogView.js
www/manager5/panel/LogView.js
+210
-0
No files found.
www/manager5/panel/LogView.js
0 → 100644
View file @
f9286377
/*
* Display log entries in a panel with scrollbar
* The log entries are automatically refreshed via a background task,
* with newest entries comming at the bottom
*/
Ext
.
define
(
'
PVE.panel.LogView
'
,
{
extend
:
'
Ext.panel.Panel
'
,
alias
:
[
'
widget.pveLogView
'
],
pageSize
:
500
,
lineHeight
:
16
,
viewInfo
:
undefined
,
scrollToEnd
:
true
,
getMaxDown
:
function
(
scrollToEnd
)
{
var
me
=
this
;
var
target
=
me
.
getTargetEl
();
var
dom
=
target
.
dom
;
if
(
scrollToEnd
)
{
dom
.
scrollTop
=
dom
.
scrollHeight
-
dom
.
clientHeight
;
}
var
maxDown
=
dom
.
scrollHeight
-
dom
.
clientHeight
-
dom
.
scrollTop
;
return
maxDown
;
},
updateView
:
function
(
start
,
end
,
total
,
text
)
{
var
me
=
this
;
var
el
=
me
.
dataCmp
.
el
;
if
(
me
.
viewInfo
&&
me
.
viewInfo
.
start
===
start
&&
me
.
viewInfo
.
end
===
end
&&
me
.
viewInfo
.
total
===
total
&&
me
.
viewInfo
.
textLength
===
text
.
length
)
{
return
;
// same content
}
var
maxDown
=
me
.
getMaxDown
();
var
scrollToEnd
=
(
maxDown
<=
0
)
&&
me
.
scrollToEnd
;
el
.
setStyle
(
'
padding-top
'
,
start
*
me
.
lineHeight
+
'
px
'
);
el
.
update
(
text
);
me
.
dataCmp
.
setHeight
(
total
*
me
.
lineHeight
);
if
(
scrollToEnd
)
{
me
.
getMaxDown
(
true
);
}
me
.
viewInfo
=
{
start
:
start
,
end
:
end
,
total
:
total
,
textLength
:
text
.
length
};
},
doAttemptLoad
:
function
(
start
)
{
var
me
=
this
;
PVE
.
Utils
.
API2Request
({
url
:
me
.
url
,
params
:
{
start
:
start
,
limit
:
me
.
pageSize
},
method
:
'
GET
'
,
success
:
function
(
response
)
{
PVE
.
Utils
.
setErrorMask
(
me
,
false
);
var
list
=
response
.
result
.
data
;
var
total
=
response
.
result
.
total
;
var
first
=
0
,
last
=
0
;
var
text
=
''
;
Ext
.
Array
.
each
(
list
,
function
(
item
)
{
if
(
!
first
||
item
.
n
<
first
)
{
first
=
item
.
n
;
}
if
(
!
last
||
item
.
n
>
last
)
{
last
=
item
.
n
;
}
text
=
text
+
Ext
.
htmlEncode
(
item
.
t
)
+
"
<br>
"
;
});
if
(
first
&&
last
&&
total
)
{
me
.
updateView
(
first
-
1
,
last
-
1
,
total
,
text
);
}
else
{
me
.
updateView
(
0
,
0
,
0
,
''
);
}
},
failure
:
function
(
response
)
{
var
msg
=
response
.
htmlStatus
;
PVE
.
Utils
.
setErrorMask
(
me
,
msg
);
}
});
},
attemptLoad
:
function
(
start
)
{
var
me
=
this
;
if
(
!
me
.
loadTask
)
{
me
.
loadTask
=
Ext
.
create
(
'
Ext.util.DelayedTask
'
,
me
.
doAttemptLoad
,
me
,
[]);
}
me
.
loadTask
.
delay
(
200
,
me
.
doAttemptLoad
,
me
,
[
start
]);
},
requestUpdate
:
function
(
top
,
force
)
{
var
me
=
this
;
if
(
top
===
undefined
)
{
var
target
=
me
.
getTargetEl
();
top
=
target
.
dom
.
scrollTop
;
}
var
viewStart
=
parseInt
((
top
/
me
.
lineHeight
)
-
1
,
10
);
if
(
viewStart
<
0
)
{
viewStart
=
0
;
}
var
viewEnd
=
parseInt
(((
top
+
me
.
getHeight
())
/
me
.
lineHeight
)
+
1
,
10
);
var
info
=
me
.
viewInfo
;
if
(
info
&&
!
force
)
{
if
(
viewStart
>=
info
.
start
&&
viewEnd
<=
info
.
end
)
{
return
;
}
}
var
line
=
parseInt
((
top
/
me
.
lineHeight
)
-
(
me
.
pageSize
/
2
)
+
10
,
10
);
if
(
line
<
0
)
{
line
=
0
;
}
me
.
attemptLoad
(
line
);
},
afterRender
:
function
()
{
var
me
=
this
;
me
.
callParent
(
arguments
);
Ext
.
Function
.
defer
(
function
()
{
var
target
=
me
.
getTargetEl
();
target
.
on
(
'
scroll
'
,
function
(
e
)
{
me
.
requestUpdate
();
});
me
.
requestUpdate
(
0
);
},
20
);
},
initComponent
:
function
()
{
/*jslint confusion: true */
var
me
=
this
;
if
(
!
me
.
url
)
{
throw
"
no url specified
"
;
}
me
.
dataCmp
=
Ext
.
create
(
'
Ext.Component
'
,
{
style
:
'
font:normal 11px tahoma, arial, verdana, sans-serif;
'
+
'
line-height:
'
+
me
.
lineHeight
.
toString
()
+
'
px; white-space: pre;
'
});
me
.
task
=
Ext
.
TaskManager
.
start
({
run
:
function
()
{
if
(
!
me
.
isVisible
()
||
!
me
.
scrollToEnd
||
!
me
.
viewInfo
)
{
return
;
}
var
maxDown
=
me
.
getMaxDown
();
if
(
maxDown
>
0
)
{
return
;
}
me
.
requestUpdate
(
undefined
,
true
);
},
interval
:
1000
});
Ext
.
apply
(
me
,
{
autoScroll
:
true
,
layout
:
'
auto
'
,
items
:
me
.
dataCmp
,
bodyStyle
:
'
padding: 5px;
'
,
listeners
:
{
show
:
function
()
{
var
target
=
me
.
getTargetEl
();
if
(
target
&&
target
.
dom
)
{
target
.
dom
.
scrollTop
=
me
.
savedScrollTop
;
}
},
beforehide
:
function
()
{
// Hack: chrome reset scrollTop to 0, so we save/restore
var
target
=
me
.
getTargetEl
();
if
(
target
&&
target
.
dom
)
{
me
.
savedScrollTop
=
target
.
dom
.
scrollTop
;
}
},
destroy
:
function
()
{
Ext
.
TaskManager
.
stop
(
me
.
task
);
}
}
});
me
.
callParent
();
}
});
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