Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 15 additions & 8 deletions core/src/main/scala/org/apache/spark/ui/UIUtils.scala
Original file line number Diff line number Diff line change
Expand Up @@ -218,24 +218,27 @@ private[spark] object UIUtils extends Logging {
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet"
href={prependBaseUri(request, "/static/bootstrap.min.css")} type="text/css"/>
<link rel="stylesheet"
href={prependBaseUri(request, "/static/vis-timeline-graph2d.min.css")} type="text/css"/>
<link rel="stylesheet" href={prependBaseUri(request, "/static/webui.css")} type="text/css"/>
<link rel="stylesheet"
href={prependBaseUri(request, "/static/timeline-view.css")} type="text/css"/>
<script src={prependBaseUri(request, "/static/sorttable.js")} ></script>
<script src={prependBaseUri(request, "/static/jquery.min.js")}></script>
<script src={prependBaseUri(request, "/static/vis-timeline-graph2d.min.js")}></script>
<script src={prependBaseUri(request, "/static/bootstrap.bundle.min.js")}></script>
<script src={prependBaseUri(request, "/static/initialize-tooltips.js")}></script>
<script src={prependBaseUri(request, "/static/table.js")}></script>
<script src={prependBaseUri(request, "/static/timeline-view.js")}></script>
<script src={prependBaseUri(request, "/static/log-view.js")}></script>
<script src={prependBaseUri(request, "/static/webui.js")}></script>
<script src={prependBaseUri(request, "/static/scroll-button.js")} type="module"></script>
<script nonce={CspNonce.get}>setUIRoot('{UIUtils.uiRoot(request)}')</script>
}

def timelineHeaderNodes(request: HttpServletRequest): Seq[Node] = {
<link rel="stylesheet"
href={prependBaseUri(request, "/static/vis-timeline-graph2d.min.css")} type="text/css"/>
<link rel="stylesheet"
href={prependBaseUri(request, "/static/timeline-view.css")} type="text/css"/>
<script src={prependBaseUri(request, "/static/vis-timeline-graph2d.min.js")}></script>
<script src={prependBaseUri(request, "/static/timeline-view.js")}></script>
}

def vizHeaderNodes(request: HttpServletRequest): Seq[Node] = {
<link rel="stylesheet"
href={prependBaseUri(request, "/static/spark-dag-viz.css")} type="text/css" />
Expand Down Expand Up @@ -266,7 +269,8 @@ private[spark] object UIUtils extends Logging {
activeTab: SparkUITab,
helpText: Option[String] = None,
showVisualization: Boolean = false,
useDataTables: Boolean = false): Seq[Node] = {
useDataTables: Boolean = false,
useTimeline: Boolean = false): Seq[Node] = {

val appName = activeTab.appName
val shortAppName = if (appName.length < 36) appName else appName.take(32) + "..."
Expand All @@ -288,6 +292,7 @@ private[spark] object UIUtils extends Logging {
<script nonce={CspNonce.get}>setAppBasePath('{activeTab.basePath}')</script>
{if (showVisualization) vizHeaderNodes(request) else Seq.empty}
{if (useDataTables) dataTablesHeaderNodes(request) else Seq.empty}
{if (useTimeline) timelineHeaderNodes(request) else Seq.empty}
<link rel="shortcut icon"
href={prependBaseUri(request, "/static/spark-logo.svg")}></link>
<title>{appName} - {title}</title>
Expand Down Expand Up @@ -352,7 +357,8 @@ private[spark] object UIUtils extends Logging {
request: HttpServletRequest,
content: => Seq[Node],
title: String,
useDataTables: Boolean = false): Seq[Node] = {
useDataTables: Boolean = false,
useTimeline: Boolean = false): Seq[Node] = {
<html data-bs-theme="light">
<head>
{commonHeaderNodes(request)}
Expand All @@ -361,6 +367,7 @@ private[spark] object UIUtils extends Logging {
"localStorage.getItem('spark-theme')||" +
"(matchMedia('(prefers-color-scheme:dark)').matches?'dark':'light'))")}</script>
{if (useDataTables) dataTablesHeaderNodes(request) else Seq.empty}
{if (useTimeline) timelineHeaderNodes(request) else Seq.empty}
<link rel="shortcut icon"
href={prependBaseUri(request, "/static/spark-logo.svg")}></link>
<title>{title}</title>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@ private[ui] class AllJobsPage(parent: JobsTab, store: AppStatusStore) extends We
" Click on a job to see information about the stages of tasks inside it."

UIUtils.headerSparkPage(request, "Spark Jobs", content, parent,
helpText = Some(helpText))
helpText = Some(helpText), useTimeline = true)
}

}
Expand Down
3 changes: 2 additions & 1 deletion core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala
Original file line number Diff line number Diff line change
Expand Up @@ -530,6 +530,7 @@ private[ui] class JobPage(parent: JobsTab, store: AppStatusStore) extends WebUIP
</div>
}
UIUtils.headerSparkPage(
request, s"Details for Job $jobId", content, parent, showVisualization = true)
request, s"Details for Job $jobId", content, parent, showVisualization = true,
useTimeline = true)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ private[ui] class StagePage(parent: StagesTab, store: AppStatusStore) extends We
<script type="module" nonce={CspNonce.get}>{Unparsed(js)}</script>
</div>
UIUtils.headerSparkPage(request, stageHeader, content, parent, showVisualization = true,
useDataTables = true)
useDataTables = true, useTimeline = true)

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ class ExecutionPage(parent: SQLTab) extends WebUIPage("execution") with Logging
}

UIUtils.headerSparkPage(
request, s"Details for Query $executionId", content, parent)
request, s"Details for Query $executionId", content, parent, useTimeline = true)
}


Expand Down