Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
8c0e196e
S
SkyWalking
项目概览
apache
/
SkyWalking
上一次同步 大约 1 年
通知
302
Star
21345
Fork
6091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8c0e196e
编写于
5月 11, 2016
作者:
A
ascrutae
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善展示功能
上级
f8a17db5
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
263 addition
and
78 deletion
+263
-78
skywalking-webui/demo/treeDetail.html
skywalking-webui/demo/treeDetail.html
+118
-11
skywalking-webui/src/main/webapp/bower_components/skywalking/js/analysisResultViewResovler.js
...er_components/skywalking/js/analysisResultViewResovler.js
+138
-57
skywalking-webui/src/main/webapp/pages/anls-result/analysisResult.ftl
...ebui/src/main/webapp/pages/anls-result/analysisResult.ftl
+5
-4
skywalking-webui/src/main/webapp/pages/main.ftl
skywalking-webui/src/main/webapp/pages/main.ftl
+2
-6
未找到文件。
skywalking-webui/demo/treeDetail.html
浏览文件 @
8c0e196e
...
...
@@ -133,8 +133,8 @@
<td>
20.0ms
</td>
</tr>
<tr
id=
"b"
>
<td
rowspan=
"0"
valign=
"middle"
>
0.0
</td>
<td>
<a>
com.ai.aisse.core.service.impl...taServiceImpl.SynchAisseData()
</a></td>
<td
valign=
"middle"
>
0.0
</td>
<td>
<a
id=
"popBtn"
data-toggle=
"modal"
data-target=
"#myModal"
>
com.ai.aisse.core.service.impl...taServiceImpl.SynchAisseData()
</a></td>
<td>
Account-Application
</td>
<td>
100
</td>
<td>
100
</td>
...
...
@@ -143,6 +143,7 @@
<td>
20.0ms
</td>
</tr>
<tr
id=
"c"
>
<td
valign=
"middle"
>
0.0
</td>
<td>
<a>
com.ai.aisse.core.dao.impl.Syn...taDaoImpl.queryAppAisseTimer()
</a></td>
<td>
Biling-Application
</td>
<td>
100
</td>
...
...
@@ -152,7 +153,7 @@
<td>
20.0ms
</td>
</tr>
<tr
id=
"d"
>
<td
rowspan=
"1"
>
0.2
</td>
<td
>
0.2
</td>
<td>
<a>
tracing:jdbc:oracle:thin:@10.1.1.61:1521:OAPROD(aisse)
</a></td>
<td>
Order-Application
</td>
<td>
100
</td>
...
...
@@ -162,7 +163,7 @@
<td>
20.0ms
</td>
</tr>
<tr
id=
"e"
>
<td
rowspan=
"2"
valign=
"middle"
>
0.3
</td>
<td
valign=
"middle"
>
0.3
</td>
<td>
<a>
com.ai.aisse.core.dao.impl.Syn...AisseTimer(java.sql.Timestamp)
</a></td>
<td>
Order-Application
</td>
<td>
100
</td>
...
...
@@ -172,6 +173,7 @@
<td>
20.0ms
</td>
</tr>
<tr
id=
"f"
>
<td
valign=
"middle"
>
0.0
</td>
<td>
<a>
tracing:jdbc:oracle:thin:@10.1.1.61:1521:OAPROD(aisse)
</a></td>
<td>
Order-Application
</td>
<td>
100
</td>
...
...
@@ -185,7 +187,109 @@
<hr/>
</div>
</div>
<div>
<!-- 模态框(Modal) -->
<div
class=
"modal fade "
id=
"myModal"
tabindex=
"-1"
role=
"dialog"
aria-labelledby=
"myModalLabel"
aria-hidden=
"true"
>
<div
class=
"modal-dialog "
style=
"width:1000px"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
典型调用链管理
</div>
<div
class=
"modal-body"
>
<div
class=
"row"
>
<div
class=
"col-md-2"
>
典型调用连列表
</div>
<div
class=
"col-md-10"
>
<a>
典型调用连A
</a>
<a>
典型调用连A
</a>
<a>
典型调用连A
</a>
<a>
典型调用连A
</a>
</div>
</div>
<hr/>
<div
class=
"row"
>
<table
class=
"gridtable"
style=
"margin:10px"
>
<thead>
<tr>
<th>
LevelId
</th>
<th>
ViewPoint
</th>
<th>
应用
</th>
<th>
调用次数
</th>
<th>
正确次数
</th>
<th>
错误次数
</th>
<th>
正确率
</th>
<th>
平均耗时
</th>
</tr>
</thead>
<tbody
id=
"dataBody"
>
<tr
id=
"a"
>
<td>
0
</td>
<td>
Http://localhost:8080/order/save1
</td>
<td>
Order-Application
</td>
<td>
100
</td>
<td>
100
</td>
<td>
0
</td>
<td>
100%
</td>
<td>
20.0ms
</td>
</tr>
<tr
id=
"b"
>
<td
valign=
"middle"
>
0.0
</td>
<td>
<a
id=
"popBtn"
data-toggle=
"modal"
data-target=
"#myModal"
>
com.ai.aisse.core.service.impl...taServiceImpl.SynchAisseData()
</a></td>
<td>
Account-Application
</td>
<td>
100
</td>
<td>
100
</td>
<td>
0
</td>
<td>
100%
</td>
<td>
20.0ms
</td>
</tr>
<tr
id=
"c"
>
<td
valign=
"middle"
>
0.0
</td>
<td>
<a>
com.ai.aisse.core.dao.impl.Syn...taDaoImpl.queryAppAisseTimer()
</a></td>
<td>
Biling-Application
</td>
<td>
100
</td>
<td>
100
</td>
<td>
0
</td>
<td>
100%
</td>
<td>
20.0ms
</td>
</tr>
<tr
id=
"d"
>
<td
>
0.2
</td>
<td>
<a>
tracing:jdbc:oracle:thin:@10.1.1.61:1521:OAPROD(aisse)
</a></td>
<td>
Order-Application
</td>
<td>
100
</td>
<td>
100
</td>
<td>
0
</td>
<td>
100%
</td>
<td>
20.0ms
</td>
</tr>
<tr
id=
"e"
>
<td
valign=
"middle"
>
0.3
</td>
<td>
<a>
com.ai.aisse.core.dao.impl.Syn...AisseTimer(java.sql.Timestamp)
</a></td>
<td>
Order-Application
</td>
<td>
100
</td>
<td>
100
</td>
<td>
0
</td>
<td>
100%
</td>
<td>
20.0ms
</td>
</tr>
<tr
id=
"f"
>
<td
valign=
"middle"
>
0.0
</td>
<td>
<a>
tracing:jdbc:oracle:thin:@10.1.1.61:1521:OAPROD(aisse)
</a></td>
<td>
Order-Application
</td>
<td>
100
</td>
<td>
100
</td>
<td>
0
</td>
<td>
100%
</td>
<td>
20.0ms
</td>
</tr>
</tbody>
</table>
<hr/>
</div>
</div>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal -->
<script>
$
(
document
).
ready
(
function
()
{
$
(
'
#datetimepicker
'
).
val
();
...
...
@@ -220,23 +324,26 @@
$
(
"
a[name='analyTypeDropDownOption'][value='2']
"
).
click
();
alert
(
getPreviousMonth
());
//alert(getPreviousMonth());
$
(
"
#popBtn
"
).
click
(
function
()
{
});
});
function
getPreviousMonth
(){
function
getPreviousMonth
()
{
var
date
=
new
Date
();
var
seperator1
=
"
-
"
;
var
month
=
date
.
getMonth
();
var
year
=
date
.
getFullYear
();
if
(
month
==
0
){
year
=
date
.
getFullYear
()
-
1
;
month
=
12
;
if
(
month
==
0
)
{
year
=
date
.
getFullYear
()
-
1
;
month
=
12
;
}
if
(
month
>=
1
&&
month
<=
9
)
{
month
=
"
0
"
+
month
;
month
=
"
0
"
+
month
;
}
return
year
+
seperator1
+
month
;
}
}
</script>
</body>
...
...
skywalking-webui/src/main/webapp/bower_components/skywalking/js/analysisResultViewResovler.js
浏览文件 @
8c0e196e
function
AnalysisResultViewResolver
(
param
)
{
AnalysisResultViewResolver
.
prototype
.
baseUrl
=
param
.
baseUrl
;
AnalysisResultViewResolver
.
prototype
.
treeId
=
param
.
treeId
;
this
.
changetAnalyCondition
(
"
MONTH
"
,
this
.
getCurrentMonth
());
}
AnalysisResultViewResolver
.
prototype
.
callChainTreeData
=
[];
AnalysisResultViewResolver
.
prototype
.
callEntrance
=
{};
AnalysisResultViewResolver
.
prototype
.
typicCallChainData
=
[];
AnalysisResultViewResolver
.
prototype
.
analyType
=
"
MONTH
"
;
AnalysisResultViewResolver
.
prototype
.
analyDate
=
""
;
AnalysisResultViewResolver
.
prototype
.
currentTypicalTreeNodes
=
{
callChainTreeNodeList
:
[]};
AnalysisResultViewResolver
.
prototype
.
currentTypicalTreeNodeMapping
=
{
typicalTreeIds
:
[]};
AnalysisResultViewResolver
.
prototype
.
paintChainTreeMainPage
=
function
()
{
var
template
=
$
.
templates
(
"
#analysisResultPanelTmpl
"
);
var
htmlOutput
=
template
.
render
({
treeId
:
this
.
treeId
});
$
(
"
#mainPanel
"
).
empty
();
$
(
"
#mainPanel
"
).
html
(
htmlOutput
);
}
AnalysisResultViewResolver
.
prototype
.
loadMainPage
=
function
()
{
this
.
paintChainTreeMainPage
();
this
.
bindEvent
();
$
(
"
a[name='analyTypeDropDownOption'][value='
"
+
this
.
analyType
+
"
']
"
).
click
();
$
(
"
#analyDate
"
).
val
(
this
.
analyDate
);
$
(
"
#showAnalyResultBtn
"
).
click
();
}
AnalysisResultViewResolver
.
prototype
.
reloadMainPage
=
function
()
{
this
.
paintChainTreeMainPage
();
this
.
bindEvent
();
$
(
"
a[name='analyTypeDropDownOption'][value='
"
+
this
.
analyType
+
"
']
"
).
click
();
$
(
"
#analyDate
"
).
val
(
this
.
analyDate
);
this
.
paintChainTreeDataTable
();
this
.
bindGotoTypicalPageEvent
();
}
AnalysisResultViewResolver
.
prototype
.
changetAnalyCondition
=
function
(
type
,
date
)
{
this
.
analyDate
=
date
;
this
.
analyType
=
type
;
}
AnalysisResultViewResolver
.
prototype
.
bindEvent
=
function
()
{
...
...
@@ -16,24 +59,14 @@ AnalysisResultViewResolver.prototype.bindEvent = function () {
this
.
bindHotSearchLink
();
this
.
bindEventForSearchDateInput
();
$
(
"
a[name='analyTypeDropDownOption'][value='MONTH']
"
).
click
();
$
(
"
#analyDate
"
).
val
(
this
.
getCurrentMonth
());
$
(
"
#showAnalyResultBtn
"
).
click
(
function
()
{
self
.
loadData
(
$
(
"
#analyType
"
).
val
(),
$
(
"
#analyDate
"
).
val
());
});
$
(
"
#showAnalyResultBtn
"
).
click
();
}
AnalysisResultViewResolver
.
prototype
.
callChainTreeData
=
[];
AnalysisResultViewResolver
.
prototype
.
callEntrance
=
{};
AnalysisResultViewResolver
.
prototype
.
typicCallChainData
=
[];
AnalysisResultViewResolver
.
prototype
.
currentTypicalTreeNodes
=
{
callChainTreeNodeList
:[]};
AnalysisResultViewResolver
.
prototype
.
currentTypicalTreeNodeMapping
=
{
typicalTreeIds
:[]};
AnalysisResultViewResolver
.
prototype
.
showTypicalCallTree
=
function
(
nodeToken
)
{
this
.
currentTypicalTreeNodes
=
{
callChainTreeNodeList
:
[]};
this
.
currentTypicalTreeNodeMapping
=
{
typicalTreeIds
:
[]};
for
(
var
i
=
0
;
i
<
this
.
typicCallChainData
.
length
;
i
++
)
{
var
node
=
this
.
typicCallChainData
[
i
];
var
tmpInfo
=
node
.
treeNodes
[
nodeToken
];
...
...
@@ -45,14 +78,21 @@ AnalysisResultViewResolver.prototype.showTypicalCallTree = function (nodeToken)
for
(
var
key
in
node
.
treeNodes
)
{
var
tmpNode
=
node
.
treeNodes
[
key
];
tmpNode
.
anlyResult
=
JSON
.
parse
(
$
(
"
#
"
+
key
).
text
());
tmpTypicalCallChain
.
push
(
key
);
tmpTypicalCallChain
.
push
(
tmpNode
);
this
.
currentTypicalTreeNodes
.
callChainTreeNodeList
.
push
(
tmpNode
);
}
this
.
currentTypicalTreeNodeMapping
[
node
.
callTreeId
]
=
tmpTypicalCallChain
;
this
.
currentTypicalTreeNodeMapping
.
typicalTreeIds
.
push
(
node
.
callTreeId
);
this
.
currentTypicalTreeNodeMapping
.
typicalTreeIds
.
push
(
{
"
callTreeToken
"
:
node
.
callTreeId
}
);
}
}
AnalysisResultViewResolver
.
prototype
.
paintChainTreeDataTable
=
function
()
{
var
template
=
$
.
templates
(
"
#analysisResultTableTmpl
"
);
var
htmlOutput
=
template
.
render
(
this
.
callChainTreeData
);
$
(
"
#dataBody
"
).
empty
();
$
(
"
#dataBody
"
).
html
(
htmlOutput
);
}
AnalysisResultViewResolver
.
prototype
.
loadData
=
function
(
analyType
,
analyDate
)
{
var
self
=
this
;
var
analysisResultUrl
=
this
.
baseUrl
+
"
/analy/load/
"
+
this
.
treeId
+
"
/
"
+
...
...
@@ -65,43 +105,16 @@ AnalysisResultViewResolver.prototype.loadData = function (analyType, analyDate)
success
:
function
(
data
)
{
if
(
data
.
code
==
'
200
'
)
{
self
.
callChainTreeData
=
self
.
convertAnalysisResult
(
jQuery
.
parseJSON
(
data
.
result
));
var
template
=
$
.
templates
(
"
#analysisResultTableTmpl
"
);
var
htmlOutput
=
template
.
render
(
self
.
callChainTreeData
);
$
(
"
#dataBody
"
).
empty
();
$
(
"
#dataBody
"
).
html
(
htmlOutput
);
$
(
"
button[name='showTypicalCallTreeBtn']
"
).
each
(
function
()
{
$
(
this
).
click
(
function
()
{
var
treeNode
=
$
(
this
).
attr
(
"
value
"
);
$
(
"
.modal-backdrop
"
).
remove
();
self
.
showTypicalCallTree
(
treeNode
);
var
template
=
$
.
templates
(
"
#typicalCallChainTreesTmpl
"
);
var
htmlOutput
=
template
.
render
({});
$
(
"
#mainPanel
"
).
empty
();
$
(
"
#mainPanel
"
).
html
(
htmlOutput
);
template
=
$
.
templates
(
"
#typicalTreeCheckBoxTmpl
"
);
htmlOutput
=
template
.
render
({
"
typicalTreeIds
"
:
self
.
currentTypicalTreeNodeMapping
.
typicalTreeIds
});
alert
(
htmlOutput
);
$
(
"
#typicalCheckBoxDiv
"
).
empty
();
$
(
"
#typicalCheckBoxDiv
"
).
html
(
htmlOutput
);
$
(
"
input[name='typicalTreeCheckBox']
"
).
each
(
function
(){
$
(
this
).
change
(
function
(){
var
treeIds
=
new
Array
();
$
(
"
input[name='typicalTreeCheckBox']
"
).
each
(
function
(){
});
});
});
template
=
$
.
templates
(
"
#typicalTreeTableTmpl
"
);
var
htmlOutput
=
template
.
render
((
self
.
convertAnalysisResult
(
self
.
currentTypicalTreeNodes
)));
$
(
"
#typicalTreeTableDataBody
"
).
empty
();
$
(
"
#typicalTreeTableDataBody
"
).
html
(
htmlOutput
);
})
});
for
(
var
i
=
0
;
i
<
self
.
callChainTreeData
.
length
;
i
++
)
{
var
node
=
self
.
callChainTreeData
[
i
];
if
(
node
.
traceLevelId
==
"
0
"
)
{
self
.
callEntrance
=
node
.
viewPoint
;
break
;
}
}
self
.
paintChainTreeDataTable
();
self
.
bindGotoTypicalPageEvent
();
}
},
error
:
function
()
{
...
...
@@ -128,6 +141,64 @@ AnalysisResultViewResolver.prototype.loadData = function (analyType, analyDate)
})
}
AnalysisResultViewResolver
.
prototype
.
bindGotoTypicalPageEvent
=
function
()
{
var
self
=
this
;
$
(
"
button[name='showTypicalCallTreeBtn']
"
).
each
(
function
()
{
$
(
this
).
click
(
function
()
{
var
treeNodeToken
=
$
(
this
).
attr
(
"
value
"
);
$
(
"
.modal-backdrop
"
).
remove
();
self
.
showTypicalCallTree
(
treeNodeToken
);
var
template
=
$
.
templates
(
"
#typicalCallChainTreesTmpl
"
);
var
htmlOutput
=
template
.
render
({
"
entryViewPoint
"
:
self
.
callEntrance
,
"
currentViewPoint
"
:
$
(
"
#
"
+
treeNodeToken
+
"
ViewPoint
"
).
text
()
});
$
(
"
#mainPanel
"
).
empty
();
$
(
"
#mainPanel
"
).
html
(
htmlOutput
);
template
=
$
.
templates
(
"
#typicalTreeCheckBoxTmpl
"
);
htmlOutput
=
template
.
render
({
"
typicalTreeIds
"
:
self
.
currentTypicalTreeNodeMapping
.
typicalTreeIds
});
$
(
"
#typicalCheckBoxDiv
"
).
empty
();
$
(
"
#typicalCheckBoxDiv
"
).
html
(
htmlOutput
);
$
(
"
input[name='typicalTreeCheckBox']
"
).
each
(
function
()
{
$
(
this
).
change
(
function
()
{
var
treeIds
=
new
Array
();
$
(
"
input[name='typicalTreeCheckBox']
"
).
each
(
function
()
{
if
(
$
(
this
).
prop
(
"
checked
"
))
{
treeIds
.
push
(
$
(
this
).
attr
(
"
value
"
));
}
});
self
.
currentTypicalTreeNodes
.
callChainTreeNodeList
=
[];
for
(
var
i
=
0
;
i
<
treeIds
.
length
;
i
++
)
{
var
tmpNodes
=
self
.
currentTypicalTreeNodeMapping
[
treeIds
[
i
]];
for
(
var
j
=
0
;
j
<
tmpNodes
.
length
;
j
++
)
{
self
.
currentTypicalTreeNodes
.
callChainTreeNodeList
.
push
(
tmpNodes
[
j
]);
}
}
template
=
$
.
templates
(
"
#typicalTreeTableTmpl
"
);
var
htmlOutput
=
template
.
render
((
self
.
convertAnalysisResult
(
self
.
currentTypicalTreeNodes
)));
$
(
"
#typicalTreeTableDataBody
"
).
empty
();
$
(
"
#typicalTreeTableDataBody
"
).
html
(
htmlOutput
);
});
});
template
=
$
.
templates
(
"
#typicalTreeTableTmpl
"
);
var
htmlOutput
=
template
.
render
((
self
.
convertAnalysisResult
(
self
.
currentTypicalTreeNodes
)));
$
(
"
#typicalTreeTableDataBody
"
).
empty
();
$
(
"
#typicalTreeTableDataBody
"
).
html
(
htmlOutput
);
$
(
"
#rebackCallChainTreeBtn
"
).
click
(
function
()
{
self
.
reloadMainPage
();
});
})
});
}
AnalysisResultViewResolver
.
prototype
.
convertAnalysisResult
=
function
(
originData
)
{
if
(
originData
==
undefined
||
originData
.
callChainTreeNodeList
==
undefined
)
{
return
[];
...
...
@@ -175,7 +246,6 @@ AnalysisResultViewResolver.prototype.convertAnalysisResult = function (originDat
return
originData
.
callChainTreeNodeList
;
}
AnalysisResultViewResolver
.
prototype
.
getPreviousHour
=
function
()
{
var
date
=
new
Date
();
var
seperator1
=
"
-
"
;
...
...
@@ -230,7 +300,6 @@ AnalysisResultViewResolver.prototype.getPreviousMonth = function () {
return
year
+
seperator1
+
month
;
}
AnalysisResultViewResolver
.
prototype
.
bindEventForSearchDateInput
=
function
()
{
$
(
"
a[name='analyTypeDropDownOption']
"
).
each
(
function
()
{
$
(
this
).
click
(
function
()
{
...
...
@@ -268,18 +337,30 @@ AnalysisResultViewResolver.prototype.bindEventForSearchDateInput = function () {
AnalysisResultViewResolver
.
prototype
.
bindHotSearchLink
=
function
()
{
var
self
=
this
;
$
(
"
#previousHourBtn
"
).
click
(
function
()
{
self
.
loadData
(
"
HOUR
"
,
self
.
getPreviousHour
())
$
(
"
a[name='analyTypeDropDownOption'][value='HOUR']
"
).
click
();
$
(
"
#analyDate
"
).
val
(
self
.
getPreviousHour
());
self
.
changetAnalyCondition
(
"
HOUR
"
,
self
.
getPreviousHour
());
$
(
"
#showAnalyResultBtn
"
).
click
();
});
$
(
"
#yesterdayBtn
"
).
click
(
function
()
{
self
.
loadData
(
"
DAY
"
,
self
.
getYesterday
())
$
(
"
a[name='analyTypeDropDownOption'][value='DAY']
"
).
click
();
$
(
"
#analyDate
"
).
val
(
self
.
getYesterday
());
self
.
changetAnalyCondition
(
"
DAY
"
,
self
.
getYesterday
());
$
(
"
#showAnalyResultBtn
"
).
click
();
});
$
(
"
#currentMonthBtn
"
).
click
(
function
()
{
self
.
loadData
(
"
MONTH
"
,
self
.
getCurrentMonth
())
$
(
"
a[name='analyTypeDropDownOption'][value='MONTH']
"
).
click
();
$
(
"
#analyDate
"
).
val
(
self
.
getCurrentMonth
());
self
.
changetAnalyCondition
(
"
MONTH
"
,
self
.
getCurrentMonth
());
$
(
"
#showAnalyResultBtn
"
).
click
();
});
$
(
"
#previousMonthBtn
"
).
click
(
function
()
{
self
.
loadData
(
"
MONTH
"
,
self
.
getPreviousMonth
())
$
(
"
a[name='analyTypeDropDownOption'][value='MONTH']
"
).
click
();
$
(
"
#analyDate
"
).
val
(
self
.
getPreviousMonth
());
self
.
changetAnalyCondition
(
"
MONTH
"
,
self
.
getPreviousMonth
());
$
(
"
#showAnalyResultBtn
"
).
click
();
});
}
\ No newline at end of file
skywalking-webui/src/main/webapp/pages/anls-result/analysisResult.ftl
浏览文件 @
8c0e196e
...
...
@@ -58,6 +58,7 @@
{{/if}}
<td>
<a href="javascript:void(0);" data-toggle="modal" data-target="#modal{{>nodeToken}}">{{>viewPoint}}</a>
<span style="display:none" id="{{>nodeToken}}ViewPoint">{{>viewPoint}}</span>
<div class="modal fade" id="modal{{>nodeToken}}" tabindex="-1" role="dialog" aria-labelledby="modal{{>modalId}}Label">
<div class="modal-dialog" role="document">
<div class="modal-dialog">
...
...
@@ -106,11 +107,11 @@
<#macro typicalCallChainTrees>
<script type="text/x-jsrender" id="typicalCallChainTreesTmpl">
<br/>
<br/>
<div class="row">
<small> <a
>http://aisse-mobile-web/Aisse-Mobile-Web/aisseWorkPage/backOvertimeInit
</a> </small>
<small> <a
href="javascript:void(0);" id="rebackCallChainTreeBtn">{{>entryViewPoint}}
</a> </small>
<br/>
<small>
com.ai.aisse.controller.overtimeexpense.Ov...t(HttpServletRequest,HttpServletResponse,ModelMap)
</small>
<small>
{{>currentViewPoint}}
</small>
</div>
<br/>
...
...
@@ -143,7 +144,7 @@
<script type="text/x-jsrender" id="typicalTreeCheckBoxTmpl">
<span> 归属该节点下所有的典型调用链:</span>
{{for typicalTreeIds}}
<input name="typicalTreeCheckBox" type="checkbox" checked/>典型调用链{{: #index}}
<input name="typicalTreeCheckBox" type="checkbox" checked
value="{{>callTreeToken}}"
/>典型调用链{{: #index}}
{{/for}}
</script>
</#macro>
...
...
skywalking-webui/src/main/webapp/pages/main.ftl
浏览文件 @
8c0e196e
...
...
@@ -100,12 +100,8 @@
if
(
index
!=
-
1
)
{
searchKey
=
searchKey
.
substr
(
index
+
1
);
}
var
template
=
$
.
templates
(
"
#analysisResultPanelTmpl
"
);
var
htmlOutput
=
template
.
render
({
treeId
:
searchKey
});
$
(
"
#mainPanel
"
).
empty
();
$
(
"
#mainPanel
"
).
html
(
htmlOutput
);
viewResolver
=
new
AnalysisResultViewResolver
({
baseUrl
:
"
${_base}
"
,
treeId
:
searchKey
})
viewResolver
=
new
AnalysisResultViewResolver
({
baseUrl
:
"
${_base}
"
,
treeId
:
searchKey
});
viewResolver
.
loadMainPage
();
return
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录