// Copyright 2017 HootSuite Media Inc. // // Licensed under the Apache License, Version 2.0 (the License); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0 // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an AS IS BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // Modified hereafter by contributors to runatlantis/atlantis. package server import ( "html/template" "io" "time" ) //go:generate pegomock generate -m --use-experimental-model-gen --package mocks -o mocks/mock_template_writer.go TemplateWriter // TemplateWriter is an interface over html/template that's used to enable // mocking. type TemplateWriter interface { // Execute applies a parsed template to the specified data object, // writing the output to wr. Execute(wr io.Writer, data interface{}) error } // LockIndexData holds the fields needed to display the index view for locks. type LockIndexData struct { LockPath string RepoFullName string PullNum int Time time.Time } // IndexData holds the data for rendering the index page type IndexData struct { Locks []LockIndexData AtlantisVersion string // CleanedBasePath is the path Atlantis is accessible at externally. If // not using a path-based proxy, this will be an empty string. Never ends // in a '/' (hence "cleaned"). CleanedBasePath string } var indexTemplate = template.Must(template.New("index.html.tmpl").Parse(`
atlantis
Plan discarded and unlocked!
Locks
{{ if .Locks }} {{ $basePath := .CleanedBasePath }} {{ range .Locks }} {{ end }} {{ else }}No locks found.
{{ end }}atlantis
{{.LockKey}} Locked
Repo Owner: {{.RepoOwner}}Repo Name: {{.RepoName}}Pull Request Link: {{.PullRequestLink}}Locked By: {{.LockedBy}}Workspace: {{.Workspace}}