solid-panes 3.5.28-alpha → 3.5.29-alpha
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/README.md +0 -2
- package/lib/RDFXMLPane.js +6 -8
- package/lib/RDFXMLPane.js.map +1 -1
- package/lib/argument/argumentPane.js +10 -11
- package/lib/argument/argumentPane.js.map +1 -1
- package/lib/attach/attachPane.js +47 -85
- package/lib/attach/attachPane.js.map +1 -1
- package/lib/audio/audioPane.js +11 -36
- package/lib/audio/audioPane.js.map +1 -1
- package/lib/classInstancePane.js +11 -20
- package/lib/classInstancePane.js.map +1 -1
- package/lib/dashboard/basicPreferences.js +3 -53
- package/lib/dashboard/basicPreferences.js.map +1 -1
- package/lib/dashboard/dashboardPane.js +2 -18
- package/lib/dashboard/dashboardPane.js.map +1 -1
- package/lib/dashboard/homepage.js +1 -19
- package/lib/dashboard/homepage.js.map +1 -1
- package/lib/dataContentPane.js +15 -58
- package/lib/dataContentPane.js.map +1 -1
- package/lib/defaultPane.js +13 -21
- package/lib/defaultPane.js.map +1 -1
- package/lib/dokieli/dokieliPane.js +19 -28
- package/lib/dokieli/dokieliPane.js.map +1 -1
- package/lib/dokieli/new.js.map +1 -1
- package/lib/form/pane.js +26 -40
- package/lib/form/pane.js.map +1 -1
- package/lib/home/homePane.js +7 -23
- package/lib/home/homePane.js.map +1 -1
- package/lib/humanReadablePane.js +14 -28
- package/lib/humanReadablePane.js.map +1 -1
- package/lib/imagePane.js +9 -13
- package/lib/imagePane.js.map +1 -1
- package/lib/index.js +4 -18
- package/lib/index.js.map +1 -1
- package/lib/internal/internalPane.js +10 -41
- package/lib/internal/internalPane.js.map +1 -1
- package/lib/mainPage/footer.js +0 -4
- package/lib/mainPage/footer.js.map +1 -1
- package/lib/mainPage/header.js +2 -28
- package/lib/mainPage/header.js.map +1 -1
- package/lib/mainPage/index.js +1 -12
- package/lib/mainPage/index.js.map +1 -1
- package/lib/microblogPane/microblogPane.js +100 -237
- package/lib/microblogPane/microblogPane.js.map +1 -1
- package/lib/n3Pane.js +2 -7
- package/lib/n3Pane.js.map +1 -1
- package/lib/outline/context.js +0 -2
- package/lib/outline/context.js.map +1 -1
- package/lib/outline/licenseOptions.js +9 -25
- package/lib/outline/licenseOptions.js.map +1 -1
- package/lib/outline/manager.js +178 -580
- package/lib/outline/manager.js.map +1 -1
- package/lib/outline/manager.test.js +1 -11
- package/lib/outline/manager.test.js.map +1 -1
- package/lib/outline/outlineIcons.js +30 -25
- package/lib/outline/outlineIcons.js.map +1 -1
- package/lib/outline/propertyViews.js +0 -10
- package/lib/outline/propertyViews.js.map +1 -1
- package/lib/outline/propertyViews.test.js +1 -3
- package/lib/outline/propertyViews.test.js.map +1 -1
- package/lib/outline/queryByExample.js +24 -76
- package/lib/outline/queryByExample.js.map +1 -1
- package/lib/outline/userInput.js +214 -454
- package/lib/outline/userInput.js.map +1 -1
- package/lib/outline/viewAsImage.js +0 -6
- package/lib/outline/viewAsImage.js.map +1 -1
- package/lib/outline/viewAsMbox.js +3 -4
- package/lib/outline/viewAsMbox.js.map +1 -1
- package/lib/pad/padPane.js +45 -93
- package/lib/pad/padPane.js.map +1 -1
- package/lib/playlist/playlistPane.js +3 -20
- package/lib/playlist/playlistPane.js.map +1 -1
- package/lib/profile/editProfile.view.js +7 -24
- package/lib/profile/editProfile.view.js.map +1 -1
- package/lib/profile/profile.dom.js +0 -3
- package/lib/profile/profile.dom.js.map +1 -1
- package/lib/registerPanes.js +29 -27
- package/lib/registerPanes.js.map +1 -1
- package/lib/schedule/formsForSchedule.js.map +1 -1
- package/lib/schedule/schedulePane.js +62 -122
- package/lib/schedule/schedulePane.js.map +1 -1
- package/lib/sharing/sharingPane.js +2 -10
- package/lib/sharing/sharingPane.js.map +1 -1
- package/lib/slideshow/slideshowPane.js +9 -14
- package/lib/slideshow/slideshowPane.js.map +1 -1
- package/lib/socialPane.js +43 -124
- package/lib/socialPane.js.map +1 -1
- package/lib/tabbed/tabbedPane.js +1 -15
- package/lib/tabbed/tabbedPane.js.map +1 -1
- package/lib/tableViewPane.js +4 -7
- package/lib/tableViewPane.js.map +1 -1
- package/lib/test-import-export/common.js +2 -1
- package/lib/test-import-export/common.js.map +1 -1
- package/lib/test-import-export/edit-importer.js +7 -9
- package/lib/test-import-export/edit-importer.js.map +1 -1
- package/lib/transaction/pane.js +31 -90
- package/lib/transaction/pane.js.map +1 -1
- package/lib/transaction/period.js +20 -71
- package/lib/transaction/period.js.map +1 -1
- package/lib/trip/tripPane.js +30 -34
- package/lib/trip/tripPane.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.dom.js +8 -34
- package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.test.js +3 -8
- package/lib/trustedApplications/trustedApplications.test.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.utils.js +0 -10
- package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
- package/lib/trustedApplications/trustedApplications.view.js +1 -22
- package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
- package/lib/ui/pane.js +22 -28
- package/lib/ui/pane.js.map +1 -1
- package/lib/versionInfo.d.ts +2 -0
- package/lib/versionInfo.d.ts.map +1 -1
- package/lib/versionInfo.js +18 -16
- package/lib/versionInfo.js.map +1 -1
- package/lib/video/videoPane.js +2 -5
- package/lib/video/videoPane.js.map +1 -1
- package/package.json +24 -24
- package/src/versionInfo.ts +18 -16
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
8
|
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
11
|
-
|
|
12
9
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
-
|
|
14
10
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
-
|
|
16
11
|
var _default = function _default(dom) {
|
|
17
12
|
return function viewAsImage(obj) {
|
|
18
13
|
var img = UI.utils.AJARImage(obj.uri, UI.utils.label(obj), UI.utils.label(obj), dom);
|
|
@@ -20,6 +15,5 @@ var _default = function _default(dom) {
|
|
|
20
15
|
return img;
|
|
21
16
|
};
|
|
22
17
|
};
|
|
23
|
-
|
|
24
18
|
exports["default"] = _default;
|
|
25
19
|
//# sourceMappingURL=viewAsImage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewAsImage.js","names":["dom","viewAsImage","obj","img","UI","utils","AJARImage","uri","label","setAttribute"],"sources":["../../src/outline/viewAsImage.ts"],"sourcesContent":["import * as UI from 'solid-ui'\n\nexport default (dom) => function viewAsImage (obj) {\n const img = UI.utils.AJARImage(\n obj.uri,\n UI.utils.label(obj),\n UI.utils.label(obj),\n dom\n )\n img.setAttribute('class', 'outlineImage')\n return img\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"viewAsImage.js","names":["dom","viewAsImage","obj","img","UI","utils","AJARImage","uri","label","setAttribute"],"sources":["../../src/outline/viewAsImage.ts"],"sourcesContent":["import * as UI from 'solid-ui'\n\nexport default (dom) => function viewAsImage (obj) {\n const img = UI.utils.AJARImage(\n obj.uri,\n UI.utils.label(obj),\n UI.utils.label(obj),\n dom\n )\n img.setAttribute('class', 'outlineImage')\n return img\n}\n"],"mappings":";;;;;;;AAAA;AAA8B;AAAA;AAAA,eAEf,kBAACA,GAAG;EAAA,OAAK,SAASC,WAAW,CAAEC,GAAG,EAAE;IACjD,IAAMC,GAAG,GAAGC,EAAE,CAACC,KAAK,CAACC,SAAS,CAC5BJ,GAAG,CAACK,GAAG,EACPH,EAAE,CAACC,KAAK,CAACG,KAAK,CAACN,GAAG,CAAC,EACnBE,EAAE,CAACC,KAAK,CAACG,KAAK,CAACN,GAAG,CAAC,EACnBF,GAAG,CACJ;IACDG,GAAG,CAACM,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC;IACzC,OAAON,GAAG;EACZ,CAAC;AAAA;AAAA"}
|
|
@@ -4,15 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
var _default = function _default(dom) {
|
|
9
8
|
return function viewAsMbox(obj) {
|
|
10
|
-
var anchor = dom.createElement('a');
|
|
9
|
+
var anchor = dom.createElement('a');
|
|
10
|
+
// previous implementation assumed email address was Literal. fixed.
|
|
11
|
+
|
|
11
12
|
// FOAF mboxs must NOT be literals -- must be mailto: URIs.
|
|
12
13
|
|
|
13
14
|
var address = obj.termType === 'NamedNode' ? obj.uri : obj.value; // this way for now
|
|
14
15
|
// if (!address) return viewAsBoringDefault(obj)
|
|
15
|
-
|
|
16
16
|
var index = address.indexOf('mailto:');
|
|
17
17
|
address = index >= 0 ? address.slice(index + 7) : address;
|
|
18
18
|
anchor.setAttribute('href', 'mailto:' + address);
|
|
@@ -20,6 +20,5 @@ var _default = function _default(dom) {
|
|
|
20
20
|
return anchor;
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
|
-
|
|
24
23
|
exports["default"] = _default;
|
|
25
24
|
//# sourceMappingURL=viewAsMbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewAsMbox.js","names":["dom","viewAsMbox","obj","anchor","createElement","address","termType","uri","value","index","indexOf","slice","setAttribute","appendChild","createTextNode"],"sources":["../../src/outline/viewAsMbox.ts"],"sourcesContent":["export default (dom) => function viewAsMbox (obj) {\n const anchor = dom.createElement('a')\n // previous implementation assumed email address was Literal. fixed.\n\n // FOAF mboxs must NOT be literals -- must be mailto: URIs.\n\n let address = obj.termType === 'NamedNode' ? obj.uri : obj.value // this way for now\n // if (!address) return viewAsBoringDefault(obj)\n const index = address.indexOf('mailto:')\n address = index >= 0 ? address.slice(index + 7) : address\n anchor.setAttribute('href', 'mailto:' + address)\n anchor.appendChild(dom.createTextNode(address))\n return anchor\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"viewAsMbox.js","names":["dom","viewAsMbox","obj","anchor","createElement","address","termType","uri","value","index","indexOf","slice","setAttribute","appendChild","createTextNode"],"sources":["../../src/outline/viewAsMbox.ts"],"sourcesContent":["export default (dom) => function viewAsMbox (obj) {\n const anchor = dom.createElement('a')\n // previous implementation assumed email address was Literal. fixed.\n\n // FOAF mboxs must NOT be literals -- must be mailto: URIs.\n\n let address = obj.termType === 'NamedNode' ? obj.uri : obj.value // this way for now\n // if (!address) return viewAsBoringDefault(obj)\n const index = address.indexOf('mailto:')\n address = index >= 0 ? address.slice(index + 7) : address\n anchor.setAttribute('href', 'mailto:' + address)\n anchor.appendChild(dom.createTextNode(address))\n return anchor\n}\n"],"mappings":";;;;;;eAAe,kBAACA,GAAG;EAAA,OAAK,SAASC,UAAU,CAAEC,GAAG,EAAE;IAChD,IAAMC,MAAM,GAAGH,GAAG,CAACI,aAAa,CAAC,GAAG,CAAC;IACrC;;IAEA;;IAEA,IAAIC,OAAO,GAAGH,GAAG,CAACI,QAAQ,KAAK,WAAW,GAAGJ,GAAG,CAACK,GAAG,GAAGL,GAAG,CAACM,KAAK,EAAC;IACjE;IACA,IAAMC,KAAK,GAAGJ,OAAO,CAACK,OAAO,CAAC,SAAS,CAAC;IACxCL,OAAO,GAAGI,KAAK,IAAI,CAAC,GAAGJ,OAAO,CAACM,KAAK,CAACF,KAAK,GAAG,CAAC,CAAC,GAAGJ,OAAO;IACzDF,MAAM,CAACS,YAAY,CAAC,MAAM,EAAE,SAAS,GAAGP,OAAO,CAAC;IAChDF,MAAM,CAACU,WAAW,CAACb,GAAG,CAACc,cAAc,CAACT,OAAO,CAAC,CAAC;IAC/C,OAAOF,MAAM;EACf,CAAC;AAAA;AAAA"}
|
package/lib/pad/padPane.js
CHANGED
|
@@ -4,16 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
var _solidUi = require("solid-ui");
|
|
9
|
-
|
|
10
8
|
var _solidLogic = require("solid-logic");
|
|
11
|
-
|
|
12
9
|
var _rdflib = require("rdflib");
|
|
13
|
-
|
|
14
10
|
/* pad Pane
|
|
15
11
|
**
|
|
16
12
|
*/
|
|
13
|
+
|
|
17
14
|
var paneDef = {
|
|
18
15
|
// icon: (module.__dirname || __dirname) + 'images/ColourOn.png',
|
|
19
16
|
icon: _solidUi.icons.iconBase + 'noun_79217.svg',
|
|
@@ -22,38 +19,32 @@ var paneDef = {
|
|
|
22
19
|
// Does the subject deserve an pad pane?
|
|
23
20
|
label: function label(subject, context) {
|
|
24
21
|
var t = context.session.store.findTypeURIs(subject);
|
|
25
|
-
|
|
26
22
|
if (t['http://www.w3.org/ns/pim/pad#Notepad']) {
|
|
27
23
|
return 'pad';
|
|
28
24
|
}
|
|
29
|
-
|
|
30
25
|
return null; // No under other circumstances
|
|
31
26
|
},
|
|
27
|
+
|
|
32
28
|
mintClass: _solidUi.ns.pad('Notepad'),
|
|
33
29
|
mintNew: function mintNew(context, newPaneOptions) {
|
|
34
30
|
var store = context.session.store;
|
|
35
31
|
var updater = store.updater;
|
|
36
|
-
|
|
37
32
|
if (newPaneOptions.me && !newPaneOptions.me.uri) {
|
|
38
33
|
throw new Error('notepad mintNew: Invalid userid');
|
|
39
34
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
var newInstance = newPaneOptions.newInstance = newPaneOptions.newInstance || store.sym(newPaneOptions.newBase + 'index.ttl#this');
|
|
36
|
+
// const newInstance = kb.sym(newBase + 'pad.ttl#thisPad');
|
|
43
37
|
var newPadDoc = newInstance.doc();
|
|
44
38
|
store.add(newInstance, _solidUi.ns.rdf('type'), _solidUi.ns.pad('Notepad'), newPadDoc);
|
|
45
39
|
store.add(newInstance, _solidUi.ns.dc('title'), 'Shared Notes', newPadDoc);
|
|
46
40
|
store.add(newInstance, _solidUi.ns.dc('created'), new Date(), newPadDoc); // @@ TODO Remove casting
|
|
47
|
-
|
|
48
41
|
if (newPaneOptions.me) {
|
|
49
42
|
store.add(newInstance, _solidUi.ns.dc('author'), newPaneOptions.me, newPadDoc);
|
|
50
|
-
}
|
|
43
|
+
}
|
|
44
|
+
// kb.add(newInstance, ns.pad('next'), newInstance, newPadDoc);
|
|
51
45
|
// linked list empty @@
|
|
52
|
-
|
|
53
|
-
|
|
54
46
|
var chunk = store.sym(newInstance.uri + '_line0');
|
|
55
47
|
store.add(newInstance, _solidUi.ns.pad('next'), chunk, newPadDoc); // Linked list has one entry
|
|
56
|
-
|
|
57
48
|
store.add(chunk, _solidUi.ns.pad('next'), newInstance, newPadDoc);
|
|
58
49
|
store.add(chunk, _solidUi.ns.dc('author'), newPaneOptions.me, newPadDoc);
|
|
59
50
|
store.add(chunk, _solidUi.ns.sioc('content'), '', newPadDoc);
|
|
@@ -62,7 +53,6 @@ var paneDef = {
|
|
|
62
53
|
reject(new Error('Have no updater'));
|
|
63
54
|
return;
|
|
64
55
|
}
|
|
65
|
-
|
|
66
56
|
updater.put(newPadDoc, store.statementsMatching(undefined, undefined, undefined, newPadDoc), 'text/turtle', function (uri2, ok, message) {
|
|
67
57
|
if (ok) {
|
|
68
58
|
resolve(newPaneOptions);
|
|
@@ -76,25 +66,24 @@ var paneDef = {
|
|
|
76
66
|
// @@ TODO Set better type for paneOptions
|
|
77
67
|
render: function render(subject, context, paneOptions) {
|
|
78
68
|
var dom = context.dom;
|
|
79
|
-
var store = context.session.store;
|
|
80
|
-
|
|
69
|
+
var store = context.session.store;
|
|
70
|
+
// Utility functions
|
|
81
71
|
var complainIfBad = function complainIfBad(ok, message) {
|
|
82
72
|
if (!ok) {
|
|
83
73
|
div.appendChild(_solidUi.widgets.errorMessageBlock(dom, message, 'pink'));
|
|
84
74
|
}
|
|
85
75
|
};
|
|
86
|
-
|
|
87
76
|
var clearElement = function clearElement(ele) {
|
|
88
77
|
while (ele.firstChild) {
|
|
89
78
|
ele.removeChild(ele.firstChild);
|
|
90
79
|
}
|
|
91
|
-
|
|
92
80
|
return ele;
|
|
93
|
-
};
|
|
94
|
-
// Two constiations of ACL for this app, public read and public read/write
|
|
95
|
-
// In all cases owner has read write control
|
|
81
|
+
};
|
|
96
82
|
|
|
83
|
+
// Access control
|
|
97
84
|
|
|
85
|
+
// Two constiations of ACL for this app, public read and public read/write
|
|
86
|
+
// In all cases owner has read write control
|
|
98
87
|
var genACLtext = function genACLtext(docURI, aclURI, allWrite) {
|
|
99
88
|
var g = (0, _rdflib.graph)();
|
|
100
89
|
var auth = (0, _rdflib.Namespace)('http://www.w3.org/ns/auth/acl#');
|
|
@@ -112,14 +101,13 @@ var paneDef = {
|
|
|
112
101
|
g.add(a, auth('accessTo'), doc, acl);
|
|
113
102
|
g.add(a, auth('agentClass'), _solidUi.ns.foaf('Agent'), acl);
|
|
114
103
|
g.add(a, auth('mode'), auth('Read'), acl);
|
|
115
|
-
|
|
116
104
|
if (allWrite) {
|
|
117
105
|
g.add(a, auth('mode'), auth('Write'), acl);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
106
|
+
}
|
|
107
|
+
// TODO: Figure out why `serialize` isn't on the type definition according to TypeScript:
|
|
121
108
|
return (0, _rdflib.serialize)(acl, g, aclURI, 'text/turtle');
|
|
122
109
|
};
|
|
110
|
+
|
|
123
111
|
/**
|
|
124
112
|
* @param docURI
|
|
125
113
|
* @param allWrite
|
|
@@ -127,15 +115,11 @@ var paneDef = {
|
|
|
127
115
|
*
|
|
128
116
|
* @returns {Promise<Response>}
|
|
129
117
|
*/
|
|
130
|
-
|
|
131
|
-
|
|
132
118
|
var setACL = function setACL(docURI, allWrite, callbackFunction) {
|
|
133
119
|
var aclDoc = store.any((0, _rdflib.sym)(docURI), (0, _rdflib.sym)('http://www.iana.org/assignments/link-relations/acl')); // @@ check that this get set by web.js
|
|
134
|
-
|
|
135
120
|
if (!fetcher) {
|
|
136
121
|
throw new Error('Have no fetcher');
|
|
137
122
|
}
|
|
138
|
-
|
|
139
123
|
if (aclDoc) {
|
|
140
124
|
// Great we already know where it is
|
|
141
125
|
var aclText = genACLtext(docURI, aclDoc.uri, allWrite);
|
|
@@ -152,12 +136,10 @@ var paneDef = {
|
|
|
152
136
|
callbackFunction(false, 'Getting headers for ACL: ' + err);
|
|
153
137
|
}).then(function () {
|
|
154
138
|
var aclDoc = store.any((0, _rdflib.sym)(docURI), (0, _rdflib.sym)('http://www.iana.org/assignments/link-relations/acl'));
|
|
155
|
-
|
|
156
139
|
if (!aclDoc) {
|
|
157
140
|
// complainIfBad(false, "No Link rel=ACL header for " + docURI);
|
|
158
141
|
throw new Error('No Link rel=ACL header for ' + docURI);
|
|
159
142
|
}
|
|
160
|
-
|
|
161
143
|
var aclText = genACLtext(docURI, aclDoc.uri, allWrite);
|
|
162
144
|
return fetcher.webOperation('PUT', aclDoc.uri, {
|
|
163
145
|
data: aclText,
|
|
@@ -169,11 +151,11 @@ var paneDef = {
|
|
|
169
151
|
callbackFunction(false, err.message);
|
|
170
152
|
});
|
|
171
153
|
}
|
|
172
|
-
};
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
// Reproduction: spawn a new instance
|
|
173
157
|
//
|
|
174
158
|
// Viral growth path: user of app decides to make another instance
|
|
175
|
-
|
|
176
|
-
|
|
177
159
|
var newInstanceButton = function newInstanceButton() {
|
|
178
160
|
var button = div.appendChild(dom.createElement('button'));
|
|
179
161
|
button.textContent = 'Start another pad';
|
|
@@ -181,9 +163,9 @@ var paneDef = {
|
|
|
181
163
|
return showBootstrap(subject, spawnArea, 'pad');
|
|
182
164
|
});
|
|
183
165
|
return button;
|
|
184
|
-
};
|
|
185
|
-
|
|
166
|
+
};
|
|
186
167
|
|
|
168
|
+
// Option of either using the workspace system or just typing in a URI
|
|
187
169
|
var showBootstrap = function showBootstrap(thisInstance, container, noun) {
|
|
188
170
|
var div = clearElement(container);
|
|
189
171
|
var appDetails = {
|
|
@@ -210,39 +192,31 @@ var paneDef = {
|
|
|
210
192
|
button.textContent = 'Start new ' + noun + ' at this URI';
|
|
211
193
|
button.addEventListener('click', function (_e) {
|
|
212
194
|
var newBase = baseField.value;
|
|
213
|
-
|
|
214
195
|
if (newBase.slice(-1) !== '/') {
|
|
215
196
|
newBase += '/';
|
|
216
197
|
}
|
|
217
|
-
|
|
218
198
|
initializeNewInstanceAtBase(thisInstance, newBase);
|
|
219
199
|
});
|
|
220
|
-
};
|
|
221
|
-
|
|
200
|
+
};
|
|
222
201
|
|
|
202
|
+
// Create new document files for new instance of app
|
|
223
203
|
var initializeNewInstanceInWorkspace = function initializeNewInstanceInWorkspace(ws) {
|
|
224
204
|
// @@ TODO Clean up type for newBase
|
|
225
205
|
var newBase = store.any(ws, _solidUi.ns.space('uriPrefix'));
|
|
226
|
-
|
|
227
206
|
if (!newBase) {
|
|
228
207
|
newBase = ws.uri.split('#')[0];
|
|
229
208
|
} else {
|
|
230
209
|
newBase = newBase.value;
|
|
231
210
|
}
|
|
232
|
-
|
|
233
211
|
if (newBase.slice(-1) !== '/') {
|
|
234
212
|
_rdflib.log.error(appPathSegment + ': No / at end of uriPrefix ' + newBase); // @@ paramater?
|
|
235
|
-
|
|
236
|
-
|
|
237
213
|
newBase = newBase + '/';
|
|
238
214
|
}
|
|
239
|
-
|
|
240
215
|
var now = new Date();
|
|
241
216
|
newBase += appPathSegment + '/id' + now.getTime() + '/'; // unique id
|
|
242
217
|
|
|
243
218
|
initializeNewInstanceAtBase(thisInstance, newBase);
|
|
244
219
|
};
|
|
245
|
-
|
|
246
220
|
var initializeNewInstanceAtBase = function initializeNewInstanceAtBase(thisInstance, newBase) {
|
|
247
221
|
var here = (0, _rdflib.sym)(thisInstance.uri.split('#')[0]);
|
|
248
222
|
var base = here; // @@ ???
|
|
@@ -253,19 +227,18 @@ var paneDef = {
|
|
|
253
227
|
local: 'index.html',
|
|
254
228
|
contentType: 'text/html'
|
|
255
229
|
}];
|
|
256
|
-
var newInstance = store.sym(newPadDoc.uri + '#thisPad');
|
|
230
|
+
var newInstance = store.sym(newPadDoc.uri + '#thisPad');
|
|
231
|
+
|
|
232
|
+
// log.debug("\n Ready to put " + kb.statementsMatching(undefined, undefined, undefined, there)); //@@
|
|
257
233
|
|
|
258
234
|
var agenda = [];
|
|
259
235
|
var f; // @@ This needs some form of visible progress bar
|
|
260
|
-
|
|
261
236
|
for (f = 0; f < toBeCopied.length; f++) {
|
|
262
237
|
var item = toBeCopied[f];
|
|
263
|
-
|
|
264
238
|
var fun = function copyItem(item) {
|
|
265
239
|
agenda.push(function () {
|
|
266
240
|
var newURI = newBase + item.local;
|
|
267
241
|
console.log('Copying ' + base + item.local + ' to ' + newURI);
|
|
268
|
-
|
|
269
242
|
var setThatACL = function setThatACL() {
|
|
270
243
|
setACL(newURI, false, function (ok, message) {
|
|
271
244
|
if (!ok) {
|
|
@@ -280,7 +253,6 @@ var paneDef = {
|
|
|
280
253
|
if (!store.fetcher) {
|
|
281
254
|
throw new Error('Store has no fetcher');
|
|
282
255
|
}
|
|
283
|
-
|
|
284
256
|
store.fetcher.webCopy(base + item.local, newBase + item.local, item.contentType).then(function () {
|
|
285
257
|
return _solidLogic.authn.checkUser();
|
|
286
258
|
}).then(function (webId) {
|
|
@@ -292,30 +264,26 @@ var paneDef = {
|
|
|
292
264
|
});
|
|
293
265
|
});
|
|
294
266
|
};
|
|
295
|
-
|
|
296
267
|
fun(item);
|
|
297
268
|
}
|
|
298
|
-
|
|
299
269
|
agenda.push(function createNewPadDataFile() {
|
|
300
|
-
store.add(newInstance, _solidUi.ns.rdf('type'), PAD('Notepad'), newPadDoc);
|
|
270
|
+
store.add(newInstance, _solidUi.ns.rdf('type'), PAD('Notepad'), newPadDoc);
|
|
301
271
|
|
|
302
|
-
|
|
272
|
+
// TODO @@ Remove casting of add
|
|
273
|
+
store.add(newInstance, _solidUi.ns.dc('created'), new Date(),
|
|
274
|
+
// @@ TODO Remove casting
|
|
303
275
|
newPadDoc);
|
|
304
|
-
|
|
305
276
|
if (me) {
|
|
306
277
|
store.add(newInstance, _solidUi.ns.dc('author'), me, newPadDoc);
|
|
307
278
|
}
|
|
308
|
-
|
|
309
279
|
store.add(newInstance, PAD('next'), newInstance, newPadDoc); // linked list empty
|
|
310
|
-
// Keep a paper trail @@ Revisit when we have non-public ones @@ Privacy
|
|
311
280
|
|
|
281
|
+
// Keep a paper trail @@ Revisit when we have non-public ones @@ Privacy
|
|
312
282
|
store.add(newInstance, _solidUi.ns.space('inspiration'), thisInstance, padDoc);
|
|
313
283
|
store.add(newInstance, _solidUi.ns.space('inspiration'), thisInstance, newPadDoc);
|
|
314
|
-
|
|
315
284
|
if (!updater) {
|
|
316
285
|
throw new Error('Have no updater');
|
|
317
286
|
}
|
|
318
|
-
|
|
319
287
|
updater.put(newPadDoc, store.statementsMatching(undefined, undefined, undefined, newPadDoc), 'text/turtle', function (_uri2, ok, message) {
|
|
320
288
|
if (ok) {
|
|
321
289
|
agenda.shift()();
|
|
@@ -333,58 +301,50 @@ var paneDef = {
|
|
|
333
301
|
});
|
|
334
302
|
agenda.push(function () {
|
|
335
303
|
// give the user links to the new app
|
|
304
|
+
|
|
336
305
|
var p = div.appendChild(dom.createElement('p'));
|
|
337
306
|
p.setAttribute('style', 'font-size: 140%;');
|
|
338
307
|
p.innerHTML = "Your <a href='" + newIndexDoc.uri + "'><b>new notepad</b></a> is ready. " + "<br/><br/><a href='" + newIndexDoc.uri + "'>Go to new pad</a>";
|
|
339
308
|
});
|
|
340
|
-
agenda.shift()();
|
|
341
|
-
|
|
342
|
-
|
|
309
|
+
agenda.shift()();
|
|
310
|
+
// Created new data files.
|
|
311
|
+
};
|
|
343
312
|
|
|
313
|
+
// Update on incoming changes
|
|
344
314
|
var showResults = function showResults(exists) {
|
|
345
315
|
console.log('showResults()');
|
|
346
316
|
me = _solidLogic.authn.currentUser();
|
|
347
|
-
|
|
348
317
|
_solidLogic.authn.checkUser().then(function (webId) {
|
|
349
318
|
me = webId;
|
|
350
319
|
});
|
|
351
|
-
|
|
352
320
|
var title = store.any(subject, _solidUi.ns.dc('title')) || store.any(subject, _solidUi.ns.vcard('fn'));
|
|
353
|
-
|
|
354
321
|
if (paneOptions.solo && typeof window !== 'undefined' && title) {
|
|
355
322
|
window.document.title = title.value;
|
|
356
323
|
}
|
|
357
|
-
|
|
358
324
|
options.exists = exists;
|
|
359
325
|
padEle = _solidUi.pad.notepad(dom, padDoc, subject, me, options);
|
|
360
326
|
naviMain.appendChild(padEle);
|
|
361
327
|
var partipationTarget = store.any(subject, _solidUi.ns.meeting('parentMeeting')) || subject;
|
|
362
|
-
|
|
363
328
|
_solidUi.pad.manageParticipation(dom, naviMiddle2, padDoc, partipationTarget, me, options);
|
|
364
|
-
|
|
365
329
|
if (!store.updater) {
|
|
366
330
|
throw new Error('Store has no updater');
|
|
367
331
|
}
|
|
368
|
-
|
|
369
332
|
store.updater.setRefreshHandler(padDoc, padEle.reloadAndSync); // initiated =
|
|
370
|
-
};
|
|
371
|
-
|
|
333
|
+
};
|
|
372
334
|
|
|
335
|
+
// Read or create empty data file
|
|
373
336
|
var loadPadData = function loadPadData() {
|
|
374
337
|
if (!fetcher) {
|
|
375
338
|
throw new Error('Have no fetcher');
|
|
376
339
|
}
|
|
377
|
-
|
|
378
340
|
fetcher.nowOrWhenFetched(padDoc.uri, undefined, function (ok, body, response) {
|
|
379
341
|
if (!ok) {
|
|
380
342
|
if (response.status === 404) {
|
|
381
343
|
// / Check explicitly for 404 error
|
|
382
344
|
console.log('Initializing results file ' + padDoc);
|
|
383
|
-
|
|
384
345
|
if (!updater) {
|
|
385
346
|
throw new Error('Have no updater');
|
|
386
347
|
}
|
|
387
|
-
|
|
388
348
|
updater.put(padDoc, [], 'text/turtle', function (_uri2, ok, message) {
|
|
389
349
|
if (ok) {
|
|
390
350
|
clearElement(naviMain);
|
|
@@ -401,18 +361,16 @@ var paneDef = {
|
|
|
401
361
|
} else {
|
|
402
362
|
// Happy read
|
|
403
363
|
clearElement(naviMain);
|
|
404
|
-
|
|
405
364
|
if (store.holds(subject, _solidUi.ns.rdf('type'), _solidUi.ns.wf('TemplateInstance'))) {
|
|
406
365
|
showBootstrap(subject, naviMain, 'pad');
|
|
407
366
|
}
|
|
408
|
-
|
|
409
367
|
showResults(true);
|
|
410
368
|
naviMiddle3.appendChild(newInstanceButton());
|
|
411
369
|
}
|
|
412
370
|
});
|
|
413
|
-
};
|
|
414
|
-
|
|
371
|
+
};
|
|
415
372
|
|
|
373
|
+
// Body of Pane
|
|
416
374
|
var appPathSegment = 'app-pad.timbl.com'; // how to allocate this string and connect to
|
|
417
375
|
|
|
418
376
|
var fetcher = store.fetcher;
|
|
@@ -422,36 +380,30 @@ var paneDef = {
|
|
|
422
380
|
var thisInstance = subject;
|
|
423
381
|
var padDoc = subject.doc();
|
|
424
382
|
var padEle;
|
|
425
|
-
var div = dom.createElement('div');
|
|
383
|
+
var div = dom.createElement('div');
|
|
426
384
|
|
|
385
|
+
// Build the DOM
|
|
427
386
|
var structure = div.appendChild(dom.createElement('table')); // @@ make responsive style
|
|
428
|
-
|
|
429
387
|
structure.setAttribute('style', 'background-color: white; min-width: 94%; margin-right:3% margin-left: 3%; min-height: 13em;');
|
|
430
388
|
var naviLoginoutTR = structure.appendChild(dom.createElement('tr'));
|
|
431
389
|
naviLoginoutTR.appendChild(dom.createElement('td')); // naviLoginout1
|
|
432
|
-
|
|
433
390
|
naviLoginoutTR.appendChild(dom.createElement('td'));
|
|
434
391
|
naviLoginoutTR.appendChild(dom.createElement('td'));
|
|
435
392
|
var naviTop = structure.appendChild(dom.createElement('tr')); // stuff
|
|
436
|
-
|
|
437
393
|
var naviMain = naviTop.appendChild(dom.createElement('td'));
|
|
438
394
|
naviMain.setAttribute('colspan', '3');
|
|
439
395
|
var naviMiddle = structure.appendChild(dom.createElement('tr')); // controls
|
|
440
|
-
|
|
441
396
|
var naviMiddle1 = naviMiddle.appendChild(dom.createElement('td'));
|
|
442
397
|
var naviMiddle2 = naviMiddle.appendChild(dom.createElement('td'));
|
|
443
398
|
var naviMiddle3 = naviMiddle.appendChild(dom.createElement('td'));
|
|
444
399
|
var naviStatus = structure.appendChild(dom.createElement('tr')); // status etc
|
|
445
|
-
|
|
446
400
|
var statusArea = naviStatus.appendChild(dom.createElement('div'));
|
|
447
401
|
var naviSpawn = structure.appendChild(dom.createElement('tr')); // create new
|
|
448
|
-
|
|
449
402
|
var spawnArea = naviSpawn.appendChild(dom.createElement('div'));
|
|
450
403
|
var naviMenu = structure.appendChild(dom.createElement('tr'));
|
|
451
|
-
naviMenu.setAttribute('class', 'naviMenu');
|
|
452
|
-
|
|
404
|
+
naviMenu.setAttribute('class', 'naviMenu');
|
|
405
|
+
// naviMenu.setAttribute('style', 'margin-top: 3em;');
|
|
453
406
|
naviMenu.appendChild(dom.createElement('td')); // naviLeft
|
|
454
|
-
|
|
455
407
|
naviMenu.appendChild(dom.createElement('td'));
|
|
456
408
|
naviMenu.appendChild(dom.createElement('td'));
|
|
457
409
|
var options = {
|
|
@@ -461,8 +413,8 @@ var paneDef = {
|
|
|
461
413
|
loadPadData();
|
|
462
414
|
return div;
|
|
463
415
|
}
|
|
464
|
-
};
|
|
465
|
-
|
|
416
|
+
};
|
|
417
|
+
// ends
|
|
466
418
|
var _default = paneDef;
|
|
467
419
|
exports["default"] = _default;
|
|
468
420
|
//# sourceMappingURL=padPane.js.map
|