diff --git a/makinghistory-eventfeed/template.hjson b/makinghistory-eventfeed/template.hjson new file mode 100644 index 0000000..5f1940b --- /dev/null +++ b/makinghistory-eventfeed/template.hjson @@ -0,0 +1,56 @@ +{ + templateId: makinghistory-eventfeed + templateRole: eventfeed + extends: [] + containedBy: [] + model: Stream + + label: MakingHistory Event Feed + description: View and/or Edit Sources of Events for MakingHistory + + schema: { + type: object + properties: { + icon: {type: "string"} + label: {type: "string"} + summary: {type: "string"} + data: { + type: object + properties: { + searchText: {type: "string"} + content: {type: "string"} + } + } + } + } + states: { + default: { + label: "Default State" + description: "Event feed templates do not use other states [true?]" + } + } + roles: {} + + bundles: {} + + actions: { + create: { + roles: ["owner", "mod"] + steps: [] + } + edit: { + roles: ["owner", "mod"] + steps: [] + } + delete: { + roles: ["owner", "mod"] + steps: [] + } + view: { + roles: ["anonymous"] + steps: [ + {do: "view-html"} + ] + } + } +} diff --git a/makinghistory-eventfeed/view-events.html b/makinghistory-eventfeed/view-events.html new file mode 100644 index 0000000..d8254cd --- /dev/null +++ b/makinghistory-eventfeed/view-events.html @@ -0,0 +1,12 @@ +{{- $results := .Events.Slice -}} + +
+ + {{- range $result := $results -}} +
+
{{- $result | jsonIndent -}}
+
+ {{- end -}} + +
+ diff --git a/makinghistory-eventfeed/view.html b/makinghistory-eventfeed/view.html new file mode 100644 index 0000000..2c6e6b3 --- /dev/null +++ b/makinghistory-eventfeed/view.html @@ -0,0 +1,15 @@ +
+ + + +
+ +
+
+ {{- template "view-events" . -}} +
+
+ +
+ +
diff --git a/templates/events/events.html b/templates/events/events.html new file mode 100644 index 0000000..480459c --- /dev/null +++ b/templates/events/events.html @@ -0,0 +1,10 @@ +{{- $folders := .FoldersWithSelection}} +{{- $folder := $folders.Selected -}} +{{- $filter := .FilteredByFollowing -}} + +{{- $folderID := $folder.FolderID.Hex -}} +{{- $followingID := .QueryParam "origin.followingId" -}} + +
+ {{- template "sidebar" $folders -}} +
diff --git a/templates/events/inbox.html b/templates/events/inbox.html new file mode 100644 index 0000000..c7da78b --- /dev/null +++ b/templates/events/inbox.html @@ -0,0 +1,65 @@ +{{- $folders := .FoldersWithSelection}} +{{- $folder := $folders.Selected -}} +{{- $filter := .FilteredByFollowing -}} + +{{- $folderID := $folder.FolderID.Hex -}} +{{- $followingID := .QueryParam "origin.followingId" -}} + +
+ + + + + {{- template "sidebar" $folders -}} + + +
+ +
+ + {{- if $filter.NotZero -}} + {{- $following := .FollowingByToken $followingID -}} +
+ +
+ {{- if ne "" $following.IconURL -}} +
+ +
+ {{- end -}} + +
+

+ {{$following.Label}} +

+
+ {{$following.URL}} + · {{$following.LastPolled | tinyDate}} ago +   + +
+
+
+
+ {{- else -}} +

{{icon $folder.Icon}} {{$folder.Label}}

+ {{- end -}} +
+ +
+ + {{- if $filter.IsZero -}} + + {{- else -}} + + {{- end -}} + +
+ + {{- template "list" . -}} + +
+ + + +
\ No newline at end of file diff --git a/templates/events/template.hjson b/templates/events/template.hjson new file mode 100644 index 0000000..68cf8d3 --- /dev/null +++ b/templates/events/template.hjson @@ -0,0 +1,93 @@ +{ + templateId: events + // This role makes the template eligible to be displayed as a UI choice for user inbox + templateRole: user-inbox + // The model sets which go builder to use with this template + model: inbox + label: Events + description: A simple inbox with a sidebar for folders and several feed layouts + icon: inbox + // Extends inherits from other templates + extends: ["user-inbox"] + // A schema sets up the data structure that will be used inside a template + // Reflected in mongodb + // Based on json, without linking between schemas; all rules must be defined herein + schema: { + title: Events + type: object + properties: { + feeds: { + description: Array of news sources to render on the page + type: array + items: { + type: object + properties: { + uri: { + type: string + } + name: { + type: string + } + trust-level: { + type: string + } + } + } + } + } + } + states: { + published: { + label: Publically viewable events item + } + for-review: { + label: Events item to be reviewed before publishing or not + } + } + roles: { + mod: { + label: Events Moderator + decription: Full control + } + reader: { + label: Events Reader + description: Read only + } + } + /* + bundles: { + stylesheet: { + content-type: text/css + } + hyperscript: { + content-type: text/hyperscript + } + } + */ + actions: { + view: { + roles: ["mod"] + stateRoles: { + published: ["reader"] + } + steps: [ + {do: "view-html"} + ] + } + inbox: { + roles: ["self"] + do: "view-html" + file: "events" + } + events: { + roles: ["self"] + do: "view-html" + } + /* + sidebar-events: { + roles: ["self"] + do: "view-html" + } + */ + } +}