issue-pane 2.6.1 → 3.0.0-a58a4367

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/newIssue.js DELETED
@@ -1,118 +0,0 @@
1
- // Form to collect data about a New Issue
2
- //
3
- import { ns, rdf, utils } from 'solid-ui'
4
-
5
- const $rdf = rdf
6
-
7
- export function newIssueForm (dom, kb, tracker, superIssue, showNewIssue) {
8
- const form = dom.createElement('div') // form is broken as HTML behaviour can resurface on js error
9
- const stateStore = kb.any(tracker, ns.wf('stateStore'))
10
-
11
- const timestring = function () {
12
- const now = new Date()
13
- return '' + now.getTime()
14
- // http://www.w3schools.com/jsref/jsref_obj_date.asp
15
- }
16
-
17
- const sendNewIssue = function () {
18
- titlefield.setAttribute('class', 'pendingedit')
19
- titlefield.disabled = true
20
- const sts = []
21
-
22
- const expandTemplate = function (template) {
23
- const now = new $rdf.Literal(new Date())
24
- const nnnn = '' + new Date().getTime()
25
- const YYYY = now.value.slice(0, 4)
26
- const MM = now.value.slice(5, 7)
27
- const DD = now.value.slice(8, 10)
28
- return template
29
- .replace('{N}', nnnn)
30
- .replace('{YYYY}', YYYY)
31
- .replace('{MM}', MM)
32
- .replace('{DD}', DD)
33
- }
34
- // Where to store the new issue?
35
- const template = kb.anyValue(tracker, ns.wf('issueURITemplate'))
36
- const issue = template
37
- // Does each issue do in its own file?
38
- ? kb.sym(expandTemplate($rdf.uri.join(template, stateStore.uri)))
39
- : kb.sym(stateStore.uri + '#' + 'Iss' + timestring())
40
-
41
- const issueDoc = issue.doc()
42
-
43
- // Basic 9 core predicates are stored in the main stateStore
44
-
45
- const title = kb.literal(titlefield.value)
46
- sts.push(new $rdf.Statement(issue, ns.wf('tracker'), tracker, stateStore))
47
- sts.push(new $rdf.Statement(issue, ns.dc('title'), title, stateStore))
48
- sts.push(new $rdf.Statement(issue, ns.dct('created'), new Date(), stateStore))
49
- // Copy states from super issue as after all they are subtasks so initially same state same category
50
- const initialStates = superIssue
51
- ? kb.each(superIssue, ns.rdf('type'), null, superIssue.doc())
52
- : kb.each(tracker, ns.wf('initialState'))
53
- for (const state of initialStates) {
54
- sts.push(
55
- new $rdf.Statement(
56
- issue,
57
- ns.rdf('type'),
58
- state,
59
- stateStore
60
- )
61
- )
62
- }
63
- if (superIssue) {
64
- sts.push(
65
- new $rdf.Statement(superIssue, ns.wf('dependent'), issue, stateStore)
66
- )
67
- }
68
-
69
- // Other things are stores in the individual
70
- if (template) {
71
- sts.push(new $rdf.Statement(issue, ns.wf('tracker'), tracker, issueDoc))
72
- sts.push(
73
- new $rdf.Statement(issue, ns.rdfs('seeAlso'), stateStore, issueDoc)
74
- )
75
- }
76
-
77
- const sendComplete = function (uri, success, body) {
78
- if (!success) {
79
- console.log("Error: can't save new issue:" + body)
80
- } else {
81
- form.parentNode.removeChild(form)
82
- showNewIssue(issue)
83
- }
84
- }
85
- kb.updater.update([], sts, sendComplete)
86
- }
87
-
88
- const states = kb.any(tracker, ns.wf('issueClass'))
89
- const classLabel = utils.label(states)
90
- form.innerHTML =
91
- '<h2>Add new ' +
92
- (superIssue ? 'sub ' : '') +
93
- classLabel +
94
- '</h2><p>Title of new ' +
95
- classLabel +
96
- ':</p>'
97
- const titlefield = dom.createElement('input')
98
- titlefield.setAttribute('type', 'text')
99
- titlefield.setAttribute(
100
- 'style',
101
- 'margin: 0.5em; font-size: 100%; padding: 0.3em;'
102
- )
103
- titlefield.setAttribute('size', '100')
104
- titlefield.setAttribute('maxLength', '2048') // No arbitrary limits
105
- titlefield.select() // focus next user input
106
- titlefield.addEventListener(
107
- 'keyup',
108
- function (e) {
109
- if (e.keyCode === 13) {
110
- sendNewIssue()
111
- }
112
- },
113
- false
114
- )
115
- form.appendChild(titlefield)
116
- titlefield.focus() // we want user cursor here
117
- return form
118
- }
package/newTracker.js DELETED
@@ -1,132 +0,0 @@
1
- import * as UI from 'solid-ui'
2
- import { store } from 'solid-logic'
3
-
4
- const $rdf = UI.rdf
5
- const ns = UI.ns
6
- const kb = store
7
- const updater = store.updater
8
-
9
- /* Button for making a whole new tracker
10
- ** This is the least tesetd part of the tracker system at the moment.
11
- */
12
- export function newTrackerButton (thisTracker, context) {
13
- function timestring () {
14
- const now = new Date()
15
- return '' + now.getTime()
16
- // http://www.w3schools.com/jsref/jsref_obj_date.asp
17
- }
18
-
19
- // const dom = context.dom
20
- const button = UI.login.newAppInstance(context.dom, { noun: 'tracker' }, function (
21
- ws,
22
- base
23
- ) {
24
- function morph (x) {
25
- // Move any URIs in this space into that space
26
- if (x.elements !== undefined) return x.elements.map(morph) // Morph within lists
27
- if (x.uri === undefined) return x
28
- let u = x.uri
29
- if (u === stateStore.uri) return newStore // special case
30
- if (u.slice(0, oldBase.length) === oldBase) {
31
- u = base + u.slice(oldBase.length)
32
- }
33
- return kb.sym(u)
34
- }
35
-
36
- const appPathSegment = 'issuetracker.w3.org' // how to allocate this string and connect to
37
- // console.log("Ready to make new instance at "+ws)
38
- const sp = UI.ns.space
39
- const kb = context.session.store
40
-
41
- if (!base) {
42
- base = kb.any(ws, sp('uriPrefix')).value
43
- if (base.slice(-1) !== '/') {
44
- $rdf.log.error(
45
- appPathSegment + ': No / at end of uriPrefix ' + base
46
- )
47
- base = base + '/'
48
- }
49
- base += appPathSegment + '/' + timestring() + '/' // unique id
50
- if (!confirm('Make new tracker at ' + base + '?')) {
51
- return
52
- }
53
- }
54
-
55
- const stateStore = kb.any(thisTracker, ns.wf('stateStore'))
56
- const newStore = kb.sym(base + 'store.ttl')
57
-
58
- const here = thisTracker.doc()
59
-
60
- const oldBase = here.uri.slice(0, here.uri.lastIndexOf('/') + 1)
61
-
62
- const there = morph(here)
63
- const newTracker = morph(thisTracker)
64
-
65
- const myConfig = kb.statementsMatching(
66
- undefined,
67
- undefined,
68
- undefined,
69
- here
70
- )
71
- for (let i = 0; i < myConfig.length; i++) {
72
- const st = myConfig[i]
73
- kb.add(
74
- morph(st.subject),
75
- morph(st.predicate),
76
- morph(st.object),
77
- there
78
- )
79
- }
80
-
81
- // Keep a paper trail @@ Revisit when we have non-public ones @@ Privacy
82
- //
83
- kb.add(newTracker, UI.ns.space('inspiration'), thisTracker, stateStore)
84
-
85
- kb.add(newTracker, UI.ns.space('inspiration'), thisTracker, there)
86
-
87
- // $rdf.log.debug("\n Ready to put " + kb.statementsMatching(undefined, undefined, undefined, there)); //@@
88
-
89
- updater.put(
90
- there,
91
- kb.statementsMatching(undefined, undefined, undefined, there),
92
- 'text/turtle',
93
- function (uri2, ok, message) {
94
- if (ok) {
95
- updater.put(newStore, [], 'text/turtle', function (
96
- uri3,
97
- ok,
98
- message
99
- ) {
100
- if (ok) {
101
- console.info(
102
- 'Ok The tracker created OK at: ' +
103
- newTracker.uri +
104
- '\nMake a note of it, bookmark it. '
105
- )
106
- } else {
107
- console.log(
108
- 'FAILED to set up new store at: ' +
109
- newStore.uri +
110
- ' : ' +
111
- message
112
- )
113
- }
114
- })
115
- } else {
116
- console.log(
117
- 'FAILED to save new tracker at: ' + there.uri + ' : ' + message
118
- )
119
- }
120
- }
121
- )
122
-
123
- // Created new data files.
124
- // @@ Now create initial files - html skin, (Copy of mashlib, css?)
125
- // @@ Now create form to edit configuation parameters
126
- // @@ Optionally link new instance to list of instances -- both ways? and to child/parent?
127
- // @@ Set up access control for new config and store.
128
- }) // callback to newAppInstance
129
-
130
- button.setAttribute('style', 'margin: 0.5em 1em;')
131
- return button
132
- } // newTrackerButton
package/tbl-bug-22.png DELETED
Binary file
@@ -1,237 +0,0 @@
1
- #Processed by Id
2
- # using base file:///Users/timbl_1/src/github.com/solidos/solidos/workspaces/issue-pane/test/big-tracker-config.ttl
3
- @prefix : <tracker.n3#> .
4
- @prefix con: <http://www.w3.org/2000/10/swap/pim/contact#> .
5
- @prefix doap: <http://usefulinc.com/ns/doap#> .
6
- @prefix flow: <http://www.w3.org/2005/01/wf/flow#> .
7
- @prefix ical: <http://www.w3.org/2002/12/cal/ical#> .
8
- @prefix owl: <http://www.w3.org/2002/07/owl#> .
9
- @prefix ui: <http://www.w3.org/ns/ui#> .
10
-
11
- :Accepted a <http://www.w3.org/2000/01/rdf-schema#Class>;
12
- <http://www.w3.org/2000/01/rdf-schema#comment> "Will go ahead. We are working on this";
13
- <http://www.w3.org/2000/01/rdf-schema#label> "Accepted, in progress";
14
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> flow:Open,
15
- :MotherIssue;
16
- ui:sortOrder 50 .
17
-
18
- :Action a <http://www.w3.org/2000/01/rdf-schema#Class>;
19
- <http://www.w3.org/2000/01/rdf-schema#label> "action";
20
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> :RequestCategory;
21
- ui:backgroundColor "#eeeeff";
22
- ui:sortOrder 80 .
23
-
24
- :AttendConference a <http://www.w3.org/2000/01/rdf-schema#Class>;
25
- <http://www.w3.org/2000/01/rdf-schema#label> "attend conference";
26
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> :RequestCategory;
27
- ui:backgroundColor "#fcfce8";
28
- ui:sortOrder 50 .
29
-
30
- :Book a <http://www.w3.org/2000/01/rdf-schema#Class>;
31
- <http://www.w3.org/2000/01/rdf-schema#label> "book";
32
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> :RequestCategory;
33
- ui:backgroundColor "#eeffee";
34
- ui:sortOrder 70 .
35
-
36
- :CommercialSpeaking a <http://www.w3.org/2000/01/rdf-schema#Class>;
37
- <http://www.w3.org/2000/01/rdf-schema#label> "commercial speaking";
38
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> :RequestCategory;
39
- ui:backgroundColor "#ffcbad";
40
- ui:sortOrder 30 .
41
-
42
- :Declined a <http://www.w3.org/2000/01/rdf-schema#Class>;
43
- <http://www.w3.org/2000/01/rdf-schema#comment> "Declined";
44
- <http://www.w3.org/2000/01/rdf-schema#label> "declined";
45
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> flow:Closed,
46
- :MotherIssue;
47
- ui:sortOrder 30 .
48
-
49
- :Discussing a <http://www.w3.org/2000/01/rdf-schema#Class>;
50
- <http://www.w3.org/2000/01/rdf-schema#comment> "Being discussed";
51
- <http://www.w3.org/2000/01/rdf-schema#label> "in discussion";
52
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> flow:Open,
53
- :MotherIssue;
54
- ui:sortOrder 80 .
55
-
56
- :Done a <http://www.w3.org/2000/01/rdf-schema#Class>;
57
- <http://www.w3.org/2000/01/rdf-schema#comment> "Completed.";
58
- <http://www.w3.org/2000/01/rdf-schema#label> "done";
59
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> flow:Closed,
60
- :MotherIssue;
61
- ui:sortOrder 20 .
62
-
63
- :Film a <http://www.w3.org/2000/01/rdf-schema#Class>;
64
- <http://www.w3.org/2000/01/rdf-schema#label> "film";
65
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> :RequestCategory;
66
- ui:backgroundColor "#eeffff";
67
- ui:sortOrder 80 .
68
-
69
- :HonoraryDegree a <http://www.w3.org/2000/01/rdf-schema#Class>;
70
- <http://www.w3.org/2000/01/rdf-schema#label> "honorary degree";
71
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> :RequestCategory;
72
- ui:backgroundColor "#ffa8ab";
73
- ui:sortOrder 40 .
74
-
75
- :Meeting a <http://www.w3.org/2000/01/rdf-schema#Class>;
76
- <http://www.w3.org/2000/01/rdf-schema#label> "meeting request";
77
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> :RequestCategory;
78
- ui:backgroundColor "#e8e8ff";
79
- ui:sortOrder 60 .
80
-
81
- :MotherIssue a <http://www.w3.org/2000/01/rdf-schema#Class>;
82
- <http://www.w3.org/2000/01/rdf-schema#label> "Request";
83
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> flow:Task;
84
- owl:disjointUnionOf (
85
- :New
86
- :Discussing
87
- :Pending
88
- :Negotiating
89
- :Accepted
90
- :Urgent
91
- :ToBeDeclined
92
- :Watchlist
93
- :Declined
94
- :Obsolete
95
- :Done ) .
96
-
97
- :Negotiating a <http://www.w3.org/2000/01/rdf-schema#Class>;
98
- <http://www.w3.org/2000/01/rdf-schema#comment> "Being negotiated";
99
- <http://www.w3.org/2000/01/rdf-schema#label> "negotiating";
100
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> flow:Open,
101
- :MotherIssue;
102
- ui:sortOrder 60 .
103
-
104
- :New a <http://www.w3.org/2000/01/rdf-schema#Class>;
105
- <http://www.w3.org/2000/01/rdf-schema#comment> """Has not been looked at.
106
- This is the initial state normally when an issue is created.""";
107
- <http://www.w3.org/2000/01/rdf-schema#label> "new";
108
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> flow:Open,
109
- :MotherIssue;
110
- ui:sortOrder 90 .
111
-
112
- :NonProfitSpeaking a <http://www.w3.org/2000/01/rdf-schema#Class>;
113
- <http://www.w3.org/2000/01/rdf-schema#label> "non-profit speaking";
114
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> :RequestCategory;
115
- ui:backgroundColor "#fffed0";
116
- ui:sortOrder 20 .
117
-
118
- :Obsolete a <http://www.w3.org/2000/01/rdf-schema#Class>;
119
- <http://www.w3.org/2000/01/rdf-schema#comment> "Overtaken by time or events.";
120
- <http://www.w3.org/2000/01/rdf-schema#label> "obsolete/missed";
121
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> flow:Closed,
122
- :MotherIssue;
123
- ui:sortOrder 10 .
124
-
125
-
126
- :OtherRequest a <http://www.w3.org/2000/01/rdf-schema#Class>;
127
- <http://www.w3.org/2000/01/rdf-schema#label> "other";
128
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> :RequestCategory;
129
- ui:backgroundColor "#eeeeee";
130
- ui:sortOrder 90 .
131
-
132
- :Pending a <http://www.w3.org/2000/01/rdf-schema#Class>;
133
- <http://www.w3.org/2000/01/rdf-schema#comment> "Waiting for someone else's input.";
134
- <http://www.w3.org/2000/01/rdf-schema#label> "pending others";
135
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> flow:Open,
136
- :MotherIssue;
137
- ui:sortOrder 75 .
138
-
139
- :PressRequest a <http://www.w3.org/2000/01/rdf-schema#Class>;
140
- <http://www.w3.org/2000/01/rdf-schema#label> "press";
141
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> :RequestCategory;
142
- ui:backgroundColor "#dccdfc";
143
- ui:sortOrder 10 .
144
-
145
- :RequestCategory <http://www.w3.org/2000/01/rdf-schema#label> "category";
146
- owl:disjointUnionOf (
147
- :PressRequest
148
- :NonProfitSpeaking
149
- :CommercialSpeaking
150
- :HonoraryDegree
151
- :AttendConference
152
- :Meeting
153
- :Book
154
- :Film
155
- :Action
156
- :OtherRequest ) .
157
-
158
- :RequestExtrasForm a ui:Form,
159
- ui:Group;
160
- <http://purl.org/dc/elements/1.1/title> "Extra details of a request";
161
- ui:parts (
162
- [
163
- a ui:Heading;
164
- ui:contents "Details:"@en;
165
- ui:sequence 10 ]
166
- [
167
- a ui:DateField;
168
- ui:property flow:earliestDate;
169
- ui:sequence 20 ]
170
- [
171
- a ui:DateField;
172
- ui:property flow:latestDate;
173
- ui:sequence 40 ]
174
- [
175
- a ui:Comment;
176
- ui:contents "The earliest and latest dates are the window for the event, or both the same if fixed."@en;
177
- ui:sequence 60;
178
- ui:style "background-color: #ffe;" ]
179
- [
180
- a ui:SingleLineTextField;
181
- ui:property ical:location;
182
- ui:seuqence 70;
183
- ui:size 30 ]
184
- [
185
- a ui:DateField;
186
- ui:property flow:dateReceived;
187
- ui:sequence 80 ]
188
- [
189
- a ui:MultiLineTextField;
190
- ui:property <http://www.w3.org/2000/01/rdf-schema#comment>;
191
- ui:sequence 90 ] ) .
192
-
193
-
194
- :ToBeDeclined a <http://www.w3.org/2000/01/rdf-schema#Class>;
195
- <http://www.w3.org/2000/01/rdf-schema#comment> "To be declined";
196
- <http://www.w3.org/2000/01/rdf-schema#label> "to be declined";
197
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> flow:Open,
198
- :MotherIssue;
199
- ui:sortOrder 40 .
200
-
201
- :Urgent a <http://www.w3.org/2000/01/rdf-schema#Class>;
202
- <http://www.w3.org/2000/01/rdf-schema#comment> "Needs urgent attention";
203
- <http://www.w3.org/2000/01/rdf-schema#label> "URGENT";
204
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> flow:Open,
205
- :MotherIssue;
206
- ui:sortOrder 55 .
207
-
208
- :Watchlist a <http://www.w3.org/2000/01/rdf-schema#Class>;
209
- <http://www.w3.org/2000/01/rdf-schema#comment> "We will keep this in mind.";
210
- <http://www.w3.org/2000/01/rdf-schema#label> "watch list";
211
- <http://www.w3.org/2000/01/rdf-schema#subClassOf> flow:Open,
212
- :MotherIssue;
213
- ui:sortOrder 35 .
214
-
215
- :this a flow:Tracker;
216
- <http://purl.org/dc/terms/title> "The Big Request Tracker";
217
- <http://www.w3.org/2000/01/rdf-schema#label> "Request Tracker";
218
- flow:allowSubIssues :false;
219
- flow:assigneeClass <http://xmlns.com/foaf/0.1/Person>;
220
- flow:defaultView flow:TableView;
221
- flow:description "Requests";
222
- flow:extrasEntryForm :RequestExtrasForm;
223
- flow:initialState :New;
224
- flow:issueCategory :RequestCategory;
225
- flow:issueClass :MotherIssue;
226
- flow:propertyList (
227
- flow:earliestDate
228
- flow:latestDate
229
- ical:location
230
- <http://www.w3.org/2000/01/rdf-schema#comment>
231
- flow:assignee );
232
- flow:stateStore <state.n3> .
233
-
234
- <tracker.n3> <http://www.w3.org/2000/01/rdf-schema#comment> """This file defines a tracker for requests.
235
- """;
236
- <http://www.w3.org/2000/01/rdf-schema#label> "A tracker definition file for requests" .
237
-
@@ -1,78 +0,0 @@
1
- @prefix : <#>.
2
- @prefix dc: <http://purl.org/dc/elements/1.1/>.
3
- @prefix dct: <http://purl.org/dc/terms/>.
4
- @prefix foaf: <http://xmlns.com/foaf/0.1/>.
5
- @prefix owl: <http://www.w3.org/2002/07/owl#>.
6
- @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
7
- @prefix ui: <http://www.w3.org/ns/ui#>.
8
- @prefix wf: <http://www.w3.org/2005/01/wf/flow#>.
9
- @prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
10
- @prefix c: </profile/card#>.
11
-
12
- :Classification
13
- rdfs:label "Category";
14
- owl:disjointUnionOf
15
- ( :Specification :Tests :Servers :Clients :DeveloperTools :Vertical ).
16
- :Clients
17
- rdfs:comment "Client side frameworks, SDKs and operating systems";
18
- rdfs:label "Clients";
19
- rdfs:subClassOf :Classification.
20
- :DeveloperTools rdfs:label "Developer tools"; rdfs:subClassOf :Classification.
21
-
22
- :InProgress
23
- rdfs:label "In progress";
24
- rdfs:subClassOf wf:Open, :States;
25
- ui:backgroundColor "#f9ee71"^^xsd:color.
26
- :NextSession
27
- rdfs:label "To be done this month";
28
- rdfs:subClassOf wf:Open, :States;
29
- ui:backgroundColor "#91fdb9"^^xsd:color.
30
- :Released
31
- rdfs:label "Released";
32
- rdfs:subClassOf wf:Open, :States;
33
- ui:backgroundColor "#e2a7fb"^^xsd:color.
34
- :Research
35
- rdfs:label "Research";
36
- rdfs:subClassOf wf:Open, :States;
37
- ui:backgroundColor "#ffffff"^^xsd:color.
38
- :Servers
39
- rdfs:label "Solid Server implementations"; rdfs:subClassOf :Classification.
40
- :Someday
41
- rdfs:label "Someday pile";
42
- rdfs:subClassOf wf:Open, :States;
43
- ui:backgroundColor "#e3e3e3"^^xsd:color.
44
- :Specification
45
- rdfs:label "Parts of the Solid specification"; rdfs:subClassOf :Classification.
46
- :States
47
- rdfs:label "Task";
48
- owl:disjointUnionOf
49
- ( :Research :Someday :ToBeDone :NextSession :InProgress :Works :Released ).
50
- :Tests rdfs:label "Test suites"; rdfs:subClassOf :Classification.
51
-
52
- :this
53
- a wf:Tracker;
54
- dc:author c:me;
55
- dc:created "2020-07-21T14:00:20Z"^^xsd:dateTime;
56
- dct:title "Solid Ecosystem: Roadmap";
57
- wf:assigneeClass foaf:Person;
58
- wf:defaultView :Classification;
59
- wf:description
60
- """A roadmap for the whole Solid ecosystem.
61
- See also other linked roadmaps for parts of the ecosystem like the SolidOS, Spec, open source projects, etc.
62
-
63
-
64
- """;
65
- wf:initialState :Someday;
66
- wf:issueCategory :Classification;
67
- wf:issueClass :States;
68
- wf:stateStore <state.ttl>.
69
- :ToBeDone
70
- rdfs:label "To Be Done";
71
- rdfs:subClassOf wf:Open, :States;
72
- ui:backgroundColor "#e0ffeb"^^xsd:color.
73
- :Vertical rdfs:label "Apps and Verticals"; rdfs:subClassOf :Classification.
74
-
75
- :Works
76
- rdfs:label "Code runs";
77
- rdfs:subClassOf wf:Open, :States;
78
- ui:backgroundColor "#dcdbff"^^xsd:color.