use partials for data rows in organisation timelines
This commit is contained in:
parent
88b685cf2e
commit
1da4c591d2
7 changed files with 233 additions and 58 deletions
|
@ -25,11 +25,6 @@
|
||||||
var chart = new google.visualization.Timeline(container);
|
var chart = new google.visualization.Timeline(container);
|
||||||
var dataTable = new google.visualization.DataTable();
|
var dataTable = new google.visualization.DataTable();
|
||||||
|
|
||||||
{{- $unpaid_past := "#FFFFF0" -}}
|
|
||||||
{{- $paid_past := "#FCFCA6" -}}
|
|
||||||
{{- $unpaid_current := "#BBBBB0" -}}
|
|
||||||
{{- $paid_current := "#BCBC7E" -}}
|
|
||||||
|
|
||||||
dataTable.addColumn({ type: 'string', id: 'Type' });
|
dataTable.addColumn({ type: 'string', id: 'Type' });
|
||||||
dataTable.addColumn({ type: 'string', id: 'Job Title' });
|
dataTable.addColumn({ type: 'string', id: 'Job Title' });
|
||||||
dataTable.addColumn({ type: 'string', id: 'style', role: 'style' });
|
dataTable.addColumn({ type: 'string', id: 'style', role: 'style' });
|
||||||
|
@ -37,61 +32,33 @@
|
||||||
dataTable.addColumn({ type: 'date', id: 'End' });
|
dataTable.addColumn({ type: 'date', id: 'End' });
|
||||||
|
|
||||||
dataTable.addRows([
|
dataTable.addRows([
|
||||||
{{ with ( .GetPage "cv/roles" ).Pages -}}
|
{{- with ( .GetPage "cv/roles" ).Pages -}}
|
||||||
{{- range ( where . ".Params.organisations" "intersect" $titles ) -}}
|
{{- range ( where . ".Params.organisations" "intersect" $titles ) -}}
|
||||||
{{- if ( not ( and ( .Params.redact ) ( ne $.Site.Params.redact "show" ) ) ) -}}
|
{{- if ( not ( and ( .Params.redact ) ( ne $.Site.Params.redact "show" ) ) ) -}}
|
||||||
[
|
{{-
|
||||||
"
|
printf `["%s", "%s", "%s", %s, %s],`
|
||||||
{{- with .Params.organisations -}}
|
(
|
||||||
{{- $.Scratch.Set "parents" ( slice ) -}}
|
partialCached
|
||||||
{{- range . -}}
|
"cv/organisation/get_role_organisation_string.html"
|
||||||
{{- range ( where ( where $.Site.Pages "Type" "cv" ) "Title" . ) -}}
|
( dict "sc" $ "pc" . )
|
||||||
{{- if ( and ( .Params.redact ) ( ne $.Site.Params.redact "show" ) ) -}}
|
.
|
||||||
{{- if ( eq $.Site.Params.redact "black" ) -}}
|
)
|
||||||
{{- $.Scratch.Set "parents" ( $.Scratch.Get "parents" | append "███████████████" ) -}}
|
(
|
||||||
{{- end -}}
|
partialCached
|
||||||
{{- else -}}
|
"cv/organisation/get_role_role_string.html"
|
||||||
{{- $.Scratch.Set "parents" ( $.Scratch.Get "parents" | append ( .Title | plainify ) ) -}}
|
( dict "sc" $ "pc" . )
|
||||||
{{- end -}}
|
.
|
||||||
{{- else -}}
|
)
|
||||||
{{ erroridf "missing-organisation" "Could not find organisation %q (%q)" . $.File.Path }}
|
(
|
||||||
{{- end -}}
|
partialCached
|
||||||
{{- end -}}
|
"cv/organisation/get_role_colour.html"
|
||||||
{{- delimit ( $.Scratch.Get "parents" ) ", " -}}
|
( dict "end_date" .Params.end_date "is_paid" .Params.paid )
|
||||||
{{- $.Scratch.Delete "parents" -}}
|
.Params.end_date .Params.paid
|
||||||
{{- end -}}
|
)
|
||||||
",
|
( partialCached "cv/organisation/get_role_start_date.html" .Date .Date )
|
||||||
"
|
( partialCached "cv/organisation/get_role_end_date.html" .Params.end_date .Params.end_date )
|
||||||
{{- if ( and ( .Params.redact ) ( ne $.Site.Params.redact "show" ) ) -}}
|
| safeJS
|
||||||
{{- if ( eq $.Site.Params.redact "black" ) -}}
|
-}}
|
||||||
███████████████
|
|
||||||
{{- end -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- .Title | plainify -}}
|
|
||||||
{{- end -}}
|
|
||||||
",
|
|
||||||
"{{ if .Params.end_date -}}
|
|
||||||
{{- if .Params.paid -}}
|
|
||||||
{{- $paid_past -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- $unpaid_past -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- if .Params.paid -}}
|
|
||||||
{{- $paid_current -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- $unpaid_current -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end }}",
|
|
||||||
new Date("{{ .Date.Format "2006-01-02" }}"),
|
|
||||||
new Date("
|
|
||||||
{{- if .Params.end_date -}}
|
|
||||||
{{- .Params.end_date -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- now.Format "2006-01-02" -}}
|
|
||||||
{{- end -}}
|
|
||||||
")
|
|
||||||
],
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
<!--
|
||||||
|
Renders an organisation's parents as a slice.
|
||||||
|
|
||||||
|
@params sc Site context.
|
||||||
|
@params pc Page context.
|
||||||
|
@params organisation Organisation title.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Validation -->
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "sc" ) ) -}}
|
||||||
|
{{- errorf "No site context passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "pc" ) ) -}}
|
||||||
|
{{- errorf "No page context passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "organisation" ) ) -}}
|
||||||
|
{{- errorf "No organisation passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- Variable Assignment -->
|
||||||
|
|
||||||
|
{{- $parents := slice -}}
|
||||||
|
|
||||||
|
<!-- Rendering -->
|
||||||
|
|
||||||
|
{{- $organisations_pages := ( where .sc.Site.Pages "Type" "cv" ) -}}
|
||||||
|
{{- $matching_organisations_pages := where $organisations_pages "Title" .organisation -}}
|
||||||
|
{{- range $matching_organisations_pages -}}
|
||||||
|
{{- if ( and ( $.pc.Params.redact ) ( ne $.sc.Site.Params.redact "show" ) ) -}}
|
||||||
|
{{- if ( eq $.sc.Site.Params.redact "black" ) -}}
|
||||||
|
{{- $parents = ( $parents | append "███████████████" ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- else -}}
|
||||||
|
{{- $parents = ( $parents | append ( .Title | htmlUnescape | plainify ) ) -}}
|
||||||
|
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- else -}}
|
||||||
|
{{ erroridf "missing-organisation" "Could not find organisation '%q' (%q)" .organisation $.pc.File.Path }}
|
||||||
|
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- return $parents -}}
|
50
layouts/partials/cv/organisation/get_role_colour.html
Normal file
50
layouts/partials/cv/organisation/get_role_colour.html
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
<!--
|
||||||
|
Renders a role's class (i.e. colour based on paid/unpaid).
|
||||||
|
|
||||||
|
@params end_date The end date of the role, or undefined if the role is ongoing.
|
||||||
|
@params is_paid Whether the role is paid or not.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Validation -->
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "end_date" ) ) -}}
|
||||||
|
{{- errorf "No end date passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "is_paid" ) ) -}}
|
||||||
|
{{- errorf "No 'is_paid' passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Variable Assignment -->
|
||||||
|
|
||||||
|
{{- $end_date := .end_date -}}
|
||||||
|
{{- $is_paid := .is_paid -}}
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Variable Initialisation -->
|
||||||
|
|
||||||
|
{{- $unpaid_past := "#FFFFF0" -}}
|
||||||
|
{{- $paid_past := "#FCFCA6" -}}
|
||||||
|
{{- $unpaid_current := "#BBBBB0" -}}
|
||||||
|
{{- $paid_current := "#BCBC7E" -}}
|
||||||
|
{{- $colour := "" -}}
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Rendering -->
|
||||||
|
|
||||||
|
{{- if $end_date -}}
|
||||||
|
{{- if $is_paid -}}
|
||||||
|
{{- $colour = $paid_past -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- $colour = $unpaid_past -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- if $is_paid -}}
|
||||||
|
{{- $colour = $paid_current -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- $colour = $unpaid_current -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- return $colour -}}
|
21
layouts/partials/cv/organisation/get_role_end_date.html
Normal file
21
layouts/partials/cv/organisation/get_role_end_date.html
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<!--
|
||||||
|
Renders a role's end date, or today if none is set.
|
||||||
|
|
||||||
|
@params . Role start date. Can be undefined.
|
||||||
|
@return Date
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Variable Initialisation -->
|
||||||
|
|
||||||
|
{{- $end_date := "" -}}
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Rendering -->
|
||||||
|
|
||||||
|
{{- if . -}}
|
||||||
|
{{- $end_date = . -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- $end_date = ( now.Format "2006-01-02" ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- return ( printf "new Date('%s')" $end_date ) -}}
|
|
@ -0,0 +1,38 @@
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Renders a role's organization(s) as a comma-delimited list.
|
||||||
|
|
||||||
|
@params sc Site context.
|
||||||
|
@params pc Page context.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Validation -->
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "sc" ) ) -}}
|
||||||
|
{{- errorf "No site context passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "pc" ) ) -}}
|
||||||
|
{{- errorf "No page context passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- Variable Assignment -->
|
||||||
|
|
||||||
|
{{- $parents := slice -}}
|
||||||
|
|
||||||
|
<!-- Rendering -->
|
||||||
|
|
||||||
|
{{- with .pc.Params.organisations -}}
|
||||||
|
{{- range . -}}
|
||||||
|
{{-
|
||||||
|
$parents = $parents | append (
|
||||||
|
partialCached
|
||||||
|
"cv/organisation/get_organisation_parents.html"
|
||||||
|
( dict "sc" $.sc "pc" $.pc "organisation" . )
|
||||||
|
.
|
||||||
|
)
|
||||||
|
-}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- return ( delimit $parents ", ") -}}
|
35
layouts/partials/cv/organisation/get_role_role_string.html
Normal file
35
layouts/partials/cv/organisation/get_role_role_string.html
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Renders a role's role.
|
||||||
|
|
||||||
|
@params sc Site context.
|
||||||
|
@params pc Page context.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Validation -->
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "sc" ) ) -}}
|
||||||
|
{{- errorf "No site context passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "pc" ) ) -}}
|
||||||
|
{{- errorf "No page context passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- Variable Assignment -->
|
||||||
|
|
||||||
|
{{- $role_text := "" -}}
|
||||||
|
|
||||||
|
<!-- Rendering -->
|
||||||
|
|
||||||
|
{{- if ( and ( .pc.Params.redact ) ( ne .sc.Site.Params.redact "show" ) ) -}}
|
||||||
|
{{- if ( eq .sc.Site.Params.redact "black" ) -}}
|
||||||
|
{{- $role_text = "███████████████" -}}
|
||||||
|
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- else -}}
|
||||||
|
{{- $role_text = .pc.Title | htmlUnescape | plainify -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- return $role_text -}}
|
17
layouts/partials/cv/organisation/get_role_start_date.html
Normal file
17
layouts/partials/cv/organisation/get_role_start_date.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<!--
|
||||||
|
Renders a role's start date.
|
||||||
|
|
||||||
|
@params . Role start date.
|
||||||
|
@return Date
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Validation -->
|
||||||
|
|
||||||
|
{{- if ( not ( eq (printf "%T" . ) "time.Time" ) ) -}}
|
||||||
|
{{- errorf "Start date is not a `time.Time`, it's a %T" . -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Rendering -->
|
||||||
|
|
||||||
|
{{- return ( printf "new Date('%s')" ( .Format "2006-01-02" ) ) -}}
|
Loading…
Add table
Add a link
Reference in a new issue