github.com/drone/runner-go@v1.12.0/handler/template/template_gen.go (about)

     1  package template
     2  
     3  import "html/template"
     4  
     5  // list of embedded template files.
     6  var files = []struct {
     7  	name string
     8  	data string
     9  }{
    10  	{
    11  		name: "index.tmpl",
    12  		data: index,
    13  	}, {
    14  		name: "logs.tmpl",
    15  		data: logs,
    16  	}, {
    17  		name: "stage.tmpl",
    18  		data: stage,
    19  	},
    20  }
    21  
    22  // T exposes the embedded templates.
    23  var T *template.Template
    24  
    25  func init() {
    26  	T = template.New("_").Funcs(funcMap)
    27  	for _, file := range files {
    28  		T = template.Must(
    29  			T.New(file.name).Parse(file.data),
    30  		)
    31  	}
    32  }
    33  
    34  //
    35  // embedded template files.
    36  //
    37  
    38  // files/index.tmpl
    39  var index = `<!DOCTYPE html>
    40  <html>
    41  <head>
    42  <meta charset="UTF-8">
    43  <meta http-equiv="refresh" content="10">
    44  <title>Dashboard</title>
    45  <link rel="stylesheet" type="text/css" href="/static/reset.css">
    46  <link rel="stylesheet" type="text/css" href="/static/style.css">
    47  <link rel="icon" type="image/png" id="favicon" href="/static/favicon.png">
    48  <script src="/static/timeago.js" type="text/javascript"></script>
    49  </head>
    50  <body>
    51  
    52  <header class="navbar">
    53      <div class="logo">
    54          <svg viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path d="M12.086 5.814l-.257.258 10.514 10.514C20.856 18.906 20 21.757 20 25c0 9.014 6.618 15 15 15 3.132 0 6.018-.836 8.404-2.353l10.568 10.568C48.497 55.447 39.796 60 30 60 13.434 60 0 46.978 0 30 0 19.903 4.751 11.206 12.086 5.814zm5.002-2.97C20.998 1.015 25.378 0 30 0c16.566 0 30 13.022 30 30 0 4.67-1.016 9.04-2.835 12.923l-9.508-9.509C49.144 31.094 50 28.243 50 25c0-9.014-6.618-15-15-15-3.132 0-6.018.836-8.404 2.353l-9.508-9.508zM35 34c-5.03 0-9-3.591-9-9s3.97-9 9-9c5.03 0 9 3.591 9 9s-3.97 9-9 9z" id="a"></path></defs><use fill="#FFF" xlink:href="#a" fill-rule="evenodd"></use></svg>
    55      </div>
    56      <nav class="inline-nav">
    57          <ul>
    58              <li><a href="/" class="active">Dashboard</a></li>
    59              <li><a href="/logs">Logging</a></li>
    60          </ul>
    61      </nav>
    62  </header>
    63  
    64  <main>
    65      <section>
    66          <header>
    67              <h1>Dashboard</h1>
    68          </header>
    69          <article class="cards stages">
    70              {{ if not .Items }}
    71              <div class="alert sleeping">
    72                  <p>There is no recent activity to display.</p>
    73              </div>
    74              {{ else if .Idle }}
    75              <div class="alert sleeping">
    76                  <p>This runner is currently idle.</p>
    77              </div>
    78              {{ end }}
    79              {{ range .Items }}
    80              <a href="/view?id={{ .Stage.ID }}" class="card stage">
    81                  <h2>{{ .Repo.Slug }}</h2>
    82                  <img src="{{ .Build.AuthorAvatar }}" />
    83                  <span class="connector"></span>
    84                  <span class="status {{ .Stage.Status }}"></span>
    85                  <span class="desc">assigned stage <em>{{ .Stage.Name }}</em> for build <em>#{{ .Build.Number }}</em></span>
    86                  <span class="time" datetime="{{ if .Stage.Started }}{{ timestamp .Stage.Started }}{{ else }}{{ timestamp .Stage.Created }}{{ end }}"></span>
    87              </a>
    88              {{ end }}
    89          </article>
    90      </section>
    91  </main>
    92  
    93  <footer></footer>
    94  
    95  <script>
    96  timeago.render(document.querySelectorAll('.time'));
    97  </script>
    98  </body>
    99  </html>`
   100  
   101  // files/logs.tmpl
   102  var logs = `<!DOCTYPE html>
   103  <html>
   104  <head>
   105  <meta charset="UTF-8">
   106  <title>Dashboard</title>
   107  <link rel="stylesheet" type="text/css" href="/static/reset.css">
   108  <link rel="stylesheet" type="text/css" href="/static/style.css">
   109  <link rel="icon" type="image/png" id="favicon" href="/static/favicon.png">
   110  <script src="/static/timeago.js" type="text/javascript"></script>
   111  </head>
   112  <body>
   113  
   114  <header class="navbar">
   115      <div class="logo">
   116          <svg viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path d="M12.086 5.814l-.257.258 10.514 10.514C20.856 18.906 20 21.757 20 25c0 9.014 6.618 15 15 15 3.132 0 6.018-.836 8.404-2.353l10.568 10.568C48.497 55.447 39.796 60 30 60 13.434 60 0 46.978 0 30 0 19.903 4.751 11.206 12.086 5.814zm5.002-2.97C20.998 1.015 25.378 0 30 0c16.566 0 30 13.022 30 30 0 4.67-1.016 9.04-2.835 12.923l-9.508-9.509C49.144 31.094 50 28.243 50 25c0-9.014-6.618-15-15-15-3.132 0-6.018.836-8.404 2.353l-9.508-9.508zM35 34c-5.03 0-9-3.591-9-9s3.97-9 9-9c5.03 0 9 3.591 9 9s-3.97 9-9 9z" id="a"></path></defs><use fill="#FFF" xlink:href="#a" fill-rule="evenodd"></use></svg>
   117      </div>
   118      <nav class="inline-nav">
   119          <ul>
   120              <li><a href="/">Dashboard</a></li>
   121              <li><a href="/logs" class="active">Logging</a></li>
   122          </ul>
   123      </nav>
   124  </header>
   125  
   126  <main>
   127      <section>
   128          <header>
   129              <h1>Recent Logs</h1>
   130          </header>
   131          {{ if .Entries }}
   132          <article class="logs">
   133              {{ range .Entries }}
   134              <div class="entry">
   135                  <span class="level {{ .Level }}">{{ .Level }}</span>
   136                  <span class="message">{{ .Message }}</span>
   137                  <span class="fields">
   138                      {{ range $key, $val := .Data }}
   139                      <span><em>{{ $key }}</em>{{ $val }}</span>
   140                      {{ end }}
   141                  </span>
   142                  <span class="time" datetime="{{ timestamp .Unix }}"></span>
   143              </div>
   144              {{ end }}
   145          </article>
   146          {{ else }}
   147          <div class="alert sleeping">
   148              <p>There is no recent log activity to display.</p>
   149          </div>
   150          {{ end }}
   151      </section>
   152  </main>
   153  
   154  <footer></footer>
   155  
   156  <script>
   157  timeago.render(document.querySelectorAll('.time'));
   158  </script>
   159  </body>
   160  </html>`
   161  
   162  // files/stage.tmpl
   163  var stage = `<!DOCTYPE html>
   164  <html>
   165  <head>
   166  <meta charset="UTF-8">
   167  {{- if not (done .Stage.Status) }}
   168  <meta http-equiv="refresh" content="30">
   169  {{- end }}
   170  <title>Dashboard</title>
   171  <link rel="stylesheet" type="text/css" href="/static/reset.css">
   172  <link rel="stylesheet" type="text/css" href="/static/style.css">
   173  <link rel="icon" type="image/png" id="favicon" href="/static/favicon.png">
   174  <script src="/static/timeago.js" type="text/javascript"></script>
   175  </head>
   176  <body>
   177  
   178  <header class="navbar">
   179      <div class="logo">
   180          <svg viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path d="M12.086 5.814l-.257.258 10.514 10.514C20.856 18.906 20 21.757 20 25c0 9.014 6.618 15 15 15 3.132 0 6.018-.836 8.404-2.353l10.568 10.568C48.497 55.447 39.796 60 30 60 13.434 60 0 46.978 0 30 0 19.903 4.751 11.206 12.086 5.814zm5.002-2.97C20.998 1.015 25.378 0 30 0c16.566 0 30 13.022 30 30 0 4.67-1.016 9.04-2.835 12.923l-9.508-9.509C49.144 31.094 50 28.243 50 25c0-9.014-6.618-15-15-15-3.132 0-6.018.836-8.404 2.353l-9.508-9.508zM35 34c-5.03 0-9-3.591-9-9s3.97-9 9-9c5.03 0 9 3.591 9 9s-3.97 9-9 9z" id="a"></path></defs><use fill="#FFF" xlink:href="#a" fill-rule="evenodd"></use></svg>
   181      </div>
   182      <nav class="inline-nav">
   183          <ul>
   184              <li><a href="/">Dashboard</a></li>
   185              <li><a href="/logs">Logging</a></li>
   186          </ul>
   187      </nav>
   188  </header>
   189  
   190  <main>
   191      <section>
   192          <nav class="breadcrumb">
   193              <ul>
   194                  <li><a href="/">Dashboard</a></li>
   195                  <li class="separator"></li>
   196                  <li>{{ .Repo.Slug }}</li>
   197                  <li class="separator"></li>
   198                  <li>#{{ .Build.Number }}</li>
   199              </ul>
   200          </nav>
   201          <header>
   202              <h1>{{ .Repo.Name }}</h1>
   203          </header>
   204          
   205          <div class="card stage">
   206              <h2>{{ .Build.Message }}</h2>
   207              <img src="{{ .Build.AuthorAvatar }}" />
   208              <span class="connector"></span>
   209              <span class="status {{ .Stage.Status }}"></span>
   210              {{ if eq .Build.Event "pull_request" }}
   211                  {{ if eq .Build.Action "synchronized" }}
   212                  <span class="desc">{{ .Build.Author }} synchronized pull request <em>#{{ pr .Build.Ref }}</em></span>
   213                  {{ else }}
   214                  <span class="desc">{{ .Build.Author }} opened pull request <em>#{{ pr .Build.Ref }}</em> to <em>{{ .Build.Target }}</em></span>
   215                  {{ end }}
   216              {{ else if eq .Build.Event "tag" }}
   217              <span class="desc">{{ .Build.Author }} created reference <em>{{ tag .Build.Ref }}</em></span>
   218              {{ else if eq .Build.Event "promote"}}
   219              <span class="desc">{{ .Build.Author }} promoted build <em>#{{ .Build.Parent }}</em> to <em>{{ .Build.Deploy }}</em></span>
   220              {{ else if eq .Build.Event "rollback"}}
   221              <span class="desc">{{ .Build.Author }} reverted <em>{{ .Build.Deploy }}</em> to <em>#{{ .Build.Parent }}</em></span>
   222              {{ else if eq .Build.Event "cron"}}
   223              <span class="desc">Executed <em>{{ .Build.Cron }}</em> for branch <em>{{ .Build.Target }}</em></span>
   224              {{ else }}
   225              <span class="desc">{{ .Build.Author }} pushed <em>{{ sha .Build.After }}</em> to <em>{{ .Build.Target }}</em></span>
   226              {{ end }}
   227              <span class="time" datetime="{{ if .Stage.Started }}{{ timestamp .Stage.Started }}{{ else }}{{ timestamp .Stage.Created }}{{ end }}"></span>
   228          </div>
   229  
   230          {{ if .Stage.Steps }}
   231          <div class="card steps">
   232              <div class="body">
   233                  {{ range .Stage.Steps }}
   234                  <div class="step">
   235                      <span class="status {{ .Status }}"></span>
   236                      <span class="name">{{ .Name }}</span>
   237                      <span class="status-name">{{ .Status }}</span>
   238                  </div>
   239                  {{ end }}
   240              </div>
   241          </div>
   242          {{ end }}
   243  
   244          {{ if .Logs }}
   245          <div class="logs">
   246              {{ range .Logs }}
   247              <div class="entry">
   248                  <span class="level {{ .Level }}">{{ .Level }}</span>
   249                  <span class="message">{{ .Message }}</span>
   250                  <span class="fields">
   251                      {{ range $key, $val := .Data }}
   252                      <span><em>{{ $key }}</em>{{ $val }}</span>
   253                      {{ end }}
   254                  </span>
   255                  <span class="time" datetime="{{ timestamp .Unix }}"></span>
   256              </div>
   257              {{ end }}
   258          </div>
   259          {{ end }}
   260      </section>
   261  </main>
   262  
   263  <footer></footer>
   264  
   265  <script>
   266  timeago.render(document.querySelectorAll('.time'));
   267  </script>
   268  </body>
   269  </html>`