github.com/vlifesystems/rulehunter@v0.0.0-20180501090014-673078aa4a83/html/activity.go (about)

     1  // Copyright (C) 2016-2017 vLife Systems Ltd <http://vlifesystems.com>
     2  // Licensed under an MIT licence.  Please see LICENSE.md for details.
     3  
     4  package html
     5  
     6  import (
     7  	"html/template"
     8  	"path/filepath"
     9  	"time"
    10  
    11  	"github.com/vlifesystems/rulehunter/config"
    12  	"github.com/vlifesystems/rulehunter/progress"
    13  )
    14  
    15  func generateActivityPage(
    16  	cfg *config.Config,
    17  	pm *progress.Monitor,
    18  ) error {
    19  	type TplExperiment struct {
    20  		Title       string
    21  		Category    string
    22  		CategoryURL string
    23  		Tags        map[string]string
    24  		Stamp       string
    25  		Filename    string
    26  		Status      string
    27  		Msg         string
    28  		Percent     float64
    29  	}
    30  
    31  	type TplData struct {
    32  		Experiments []*TplExperiment
    33  		Html        map[string]template.HTML
    34  	}
    35  
    36  	experiments := pm.GetExperiments()
    37  	tplExperiments := make([]*TplExperiment, len(experiments))
    38  
    39  	for i, experiment := range experiments {
    40  		tplExperiments[i] = &TplExperiment{
    41  			experiment.Title,
    42  			experiment.Category,
    43  			makeCategoryLink(experiment.Category),
    44  			makeTagLinks(experiment.Tags),
    45  			experiment.Status.Stamp.Format(time.RFC822),
    46  			experiment.Filename,
    47  			experiment.Status.State.String(),
    48  			experiment.Status.Msg,
    49  			experiment.Status.Percent,
    50  		}
    51  	}
    52  	tplData := TplData{tplExperiments, makeHtml(cfg, "activity")}
    53  
    54  	outputFilename := filepath.Join("activity", "index.html")
    55  	return writeTemplate(cfg, outputFilename, activityTpl, tplData)
    56  }