solid-panes 3.5.6-beta.0 → 3.5.6-beta.1

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/lib/index.js CHANGED
@@ -5,19 +5,20 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.getOutliner = getOutliner;
9
- Object.defineProperty(exports, "versionInfo", {
8
+ Object.defineProperty(exports, "OutlineManager", {
10
9
  enumerable: true,
11
10
  get: function get() {
12
- return _versionInfo["default"];
11
+ return _manager["default"];
13
12
  }
14
13
  });
15
- Object.defineProperty(exports, "OutlineManager", {
14
+ exports.UI = void 0;
15
+ Object.defineProperty(exports, "byName", {
16
16
  enumerable: true,
17
17
  get: function get() {
18
- return _manager["default"];
18
+ return _paneRegistry.byName;
19
19
  }
20
20
  });
21
+ exports.getOutliner = getOutliner;
21
22
  Object.defineProperty(exports, "list", {
22
23
  enumerable: true,
23
24
  get: function get() {
@@ -42,13 +43,12 @@ Object.defineProperty(exports, "register", {
42
43
  return _paneRegistry.register;
43
44
  }
44
45
  });
45
- Object.defineProperty(exports, "byName", {
46
+ Object.defineProperty(exports, "versionInfo", {
46
47
  enumerable: true,
47
48
  get: function get() {
48
- return _paneRegistry.byName;
49
+ return _versionInfo["default"];
49
50
  }
50
51
  });
51
- exports.UI = void 0;
52
52
 
53
53
  var _versionInfo = _interopRequireDefault(require("./versionInfo"));
54
54
 
@@ -24,7 +24,8 @@ module.exports = function licenseOptions() {
24
24
  var lics = this.checkedLicenses;
25
25
 
26
26
  for (var kk = 0; kk < lics.length; kk++) {
27
- message += "<input type='checkbox' name = 'n" + kk + "' onClick = 'tabulator.options.submit()'" + (lics[kk] ? 'CHECKED' : '') + ' />CC: ' + names[kk] + '<br />';
27
+ message += "<input type='checkbox' name = 'n" + kk + "' onClick = 'tabulator.options.submit()'" + ( // @@ FIXME
28
+ lics[kk] ? 'CHECKED' : '') + ' />CC: ' + names[kk] + '<br />';
28
29
  }
29
30
 
30
31
  message += "<br /> <a onclick='tabulator.options.selectAll()'>[Select All] </a>"; // @@ FIXME
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/outline/licenseOptions.js"],"names":["licenseURI","names","UI","require","kb","store","module","exports","licenseOptions","options","references","checkedLicenses","openCheckBoxWindow","display","window","open","message","lics","kk","length","document","write","close","i","checkboxes","elements","selectAll","checked","deselectAll","submit","checkLicence","checkLicense","statement","licenses","each","why","sym","log","info","j","uri"],"mappings":"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","sourcesContent":["// This was a student project to\n// allow the user to chose favoite CC licence terms and have them highlighted\n\n// tabulator.options becaome UI.licenseOptions\n// Possible future alternative directoons: Store licence preferences in a solid preferences file\n\nconst licenseURI = [\n 'http://creativecommons.org/licenses/by-nc-nd/3.0/',\n 'http://creativecommons.org/licenses/by-nc-sa/3.0/',\n 'http://creativecommons.org/licenses/by-nc/3.0/',\n 'http://creativecommons.org/licenses/by-nd/3.0/',\n 'http://creativecommons.org/licenses/by-sa/3.0/',\n 'http://creativecommons.org/licenses/by/3.0/'\n]\n\nconst names = ['BY-NC-ND', 'BY-NC-SA', 'BY-NC', 'BY-ND', 'BY-SA', 'BY']\n\nconst UI = require('solid-ui')\nconst kb = UI.store\n\nmodule.exports = function licenseOptions () {\n this.options = {}\n this.references = []\n this.checkedLicenses = []\n\n this.openCheckBoxWindow = function () {\n this.this.display = window.open(\n ' ',\n 'NewWin',\n 'menubar=0,location=no,status=no,directories=no,toolbar=no,scrollbars=yes,height=200,width=200'\n )\n }\n let message = \"<font face='arial' size='2'><form name ='checkboxes'>\"\n const lics = this.checkedLicenses\n for (let kk = 0; kk < lics.length; kk++) {\n message +=\n \"<input type='checkbox' name = 'n\" +\n kk +\n \"' onClick = 'tabulator.options.submit()'\" + // @@ FIXME\n (lics[kk] ? 'CHECKED' : '') +\n ' />CC: ' +\n names[kk] +\n '<br />'\n }\n\n message +=\n \"<br /> <a onclick='tabulator.options.selectAll()'>[Select All] </a>\" // @@ FIXME\n message += \"<a onclick='tabulator.options.deselectAll()'> [Deselect All]</a>\" // @@ FIXME\n message += '</form></font>'\n\n this.display.document.write(message)\n\n this.display.document.close()\n\n let i\n for (i = 0; i < 6; i++) {\n this.references[i] = this.this.display.document.checkboxes.elements[i]\n }\n\n this.selectAll = function () {\n let i\n for (i = 0; i < 6; i++) {\n this.display.document.checkboxes.elements[i].checked = true\n this.references[i].checked = true\n this.checkedLicenses[i] = true\n }\n }\n\n this.deselectAll = function () {\n let i\n for (i = 0; i < 6; i++) {\n this.display.document.checkboxes.elements[i].checked = false\n this.references[i].checked = false\n this.checkedLicenses[i] = false\n }\n }\n\n this.submit = function () {\n // alert('this.submit: checked=' + this.references[0].checked)\n for (let i = 0; i < 6; i++) {\n this.checkedLicenses[i] = !!this.references[i].checked\n }\n }\n\n this.checkLicence = function checkLicense (statement) {\n const licenses = kb.each(\n statement.why,\n kb.sym('http://creativecommons.org/ns#license')\n )\n UI.log.info('licenses:' + statement.why + ': ' + licenses)\n for (let i = 0; i < licenses.length; i++) {\n for (let j = 0; j < this.checkedLicenses.length; j++) {\n if (this.checkedLicenses[j] && licenses[i].uri === licenseURI[j]) {\n return true\n // theClass += ' licOkay' // icon_expand\n // break\n }\n }\n }\n return false\n }\n return this\n}\n\n// ends\n"],"file":"licenseOptions.js"}
1
+ {"version":3,"sources":["../../src/outline/licenseOptions.js"],"names":["licenseURI","names","UI","require","kb","store","module","exports","licenseOptions","options","references","checkedLicenses","openCheckBoxWindow","display","window","open","message","lics","kk","length","document","write","close","i","checkboxes","elements","selectAll","checked","deselectAll","submit","checkLicence","checkLicense","statement","licenses","each","why","sym","log","info","j","uri"],"mappings":"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","sourcesContent":["// This was a student project to\n// allow the user to chose favoite CC licence terms and have them highlighted\n\n// tabulator.options becaome UI.licenseOptions\n// Possible future alternative directoons: Store licence preferences in a solid preferences file\n\nconst licenseURI = [\n 'http://creativecommons.org/licenses/by-nc-nd/3.0/',\n 'http://creativecommons.org/licenses/by-nc-sa/3.0/',\n 'http://creativecommons.org/licenses/by-nc/3.0/',\n 'http://creativecommons.org/licenses/by-nd/3.0/',\n 'http://creativecommons.org/licenses/by-sa/3.0/',\n 'http://creativecommons.org/licenses/by/3.0/'\n]\n\nconst names = ['BY-NC-ND', 'BY-NC-SA', 'BY-NC', 'BY-ND', 'BY-SA', 'BY']\n\nconst UI = require('solid-ui')\nconst kb = UI.store\n\nmodule.exports = function licenseOptions () {\n this.options = {}\n this.references = []\n this.checkedLicenses = []\n\n this.openCheckBoxWindow = function () {\n this.this.display = window.open(\n ' ',\n 'NewWin',\n 'menubar=0,location=no,status=no,directories=no,toolbar=no,scrollbars=yes,height=200,width=200'\n )\n }\n let message = \"<font face='arial' size='2'><form name ='checkboxes'>\"\n const lics = this.checkedLicenses\n for (let kk = 0; kk < lics.length; kk++) {\n message +=\n \"<input type='checkbox' name = 'n\" +\n kk +\n \"' onClick = 'tabulator.options.submit()'\" + // @@ FIXME\n (lics[kk] ? 'CHECKED' : '') +\n ' />CC: ' +\n names[kk] +\n '<br />'\n }\n\n message +=\n \"<br /> <a onclick='tabulator.options.selectAll()'>[Select All] </a>\" // @@ FIXME\n message += \"<a onclick='tabulator.options.deselectAll()'> [Deselect All]</a>\" // @@ FIXME\n message += '</form></font>'\n\n this.display.document.write(message)\n\n this.display.document.close()\n\n let i\n for (i = 0; i < 6; i++) {\n this.references[i] = this.this.display.document.checkboxes.elements[i]\n }\n\n this.selectAll = function () {\n let i\n for (i = 0; i < 6; i++) {\n this.display.document.checkboxes.elements[i].checked = true\n this.references[i].checked = true\n this.checkedLicenses[i] = true\n }\n }\n\n this.deselectAll = function () {\n let i\n for (i = 0; i < 6; i++) {\n this.display.document.checkboxes.elements[i].checked = false\n this.references[i].checked = false\n this.checkedLicenses[i] = false\n }\n }\n\n this.submit = function () {\n // alert('this.submit: checked=' + this.references[0].checked)\n for (let i = 0; i < 6; i++) {\n this.checkedLicenses[i] = !!this.references[i].checked\n }\n }\n\n this.checkLicence = function checkLicense (statement) {\n const licenses = kb.each(\n statement.why,\n kb.sym('http://creativecommons.org/ns#license')\n )\n UI.log.info('licenses:' + statement.why + ': ' + licenses)\n for (let i = 0; i < licenses.length; i++) {\n for (let j = 0; j < this.checkedLicenses.length; j++) {\n if (this.checkedLicenses[j] && licenses[i].uri === licenseURI[j]) {\n return true\n // theClass += ' licOkay' // icon_expand\n // break\n }\n }\n }\n return false\n }\n return this\n}\n\n// ends\n"],"file":"licenseOptions.js"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
- module.exports = "\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix ical: <http://www.w3.org/2002/12/cal/ical#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix sched: <http://www.w3.org/ns/pim/schedule#>.\n\n ical:Vevent ui:annotationForm <#form2>, <#form3>; ui:creationForm <#form1> .\n\n<#bigForm>\n dc:title\n \"Schedule event (single form).\";\n a ui:Group;\n ui:part\n <#form1>, <#form2>, <#form3>.\n\n<#form1>\n dc:title\n \"Schedule an event (wizard)\";\n a ui:Form;\n ui:part\n <#form1header>,\n <#eventTitle>,\n <#eventLocation>,\n <#eventComment>,\n <#eventAuthor>.\n<#eventTitle>\n a ui:SingleLineTextField;\n ui:maxLength\n \"128\";\n ui:property\n ical:summary;\n ui:size\n \"40\".\n\n<#eventLocation>\n a ui:SingleLineTextField;\n ui:maxLength\n \"512\";\n ui:property\n ical:location;\n ui:size\n \"40\".\n\n<#eventComment>\n a ui:MultiLineTextField;\n# ui:maxLength\n# \"1048\";\n# ui:size\n# \"40\".\n ui:property\n ical:comment.\n\n<#eventAuthor>\n a ui:Multiple; ui:min 1; ui:part <#eventAuthorGroup>; ui:property dc:author.\n\n <#eventAuthorGroup> a ui:Group; ui:part <#authorName>, <#authorEmail> .\n <#authorName> a ui:SingleLineTextField; ui:property foaf:name .\n <#authorEmail> a ui:EmailField; ui:label \"email\"; ui:property foaf:mbox .\n\n\n#####################\n\n<#form2> dc:title \"Select possible days\"; a ui:Form;\n ui:part <#id1118132113134>, <#id1417314641301> .\n\n <#id1118132113134> a ui:Heading; ui:contents \"Time proposals\" .\n\n <#id1417314641301>\n a ui:Multiple; ui:min 2; ui:part <#id1417314674292>; ui:property sched:option.\n\n <#id1417314674292> a ui:DateField; ui:property ical:dtstart; ui:label \"Date\".\n\n ##################################\n\n <#form3> dc:title \"Select invited people\"; a ui:Form; ui:part <#id1118132113135>, <#id1417314641301b> .\n<#id1417314641301b>\n a ui:Multiple; ui:min 1; ui:part <#id1417314674292b>; ui:property sched:invitee.\n <#id1417314674292b> a ui:EmailField; ui:label \"email\"; ui:property foaf:mbox .\n <#form1header> a ui:Heading; ui:contents \"Schedule an event\" .\n <#id1118132113135> a ui:Heading; ui:contents \"Who to invite\" .\n";
3
+ module.exports = "\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix cal: <http://www.w3.org/2002/12/cal/ical#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix sched: <http://www.w3.org/ns/pim/schedule#>.\n\n cal:Vevent ui:annotationForm <#form2>, <#form3>; ui:creationForm <#form1> .\n\n<#bigForm>\n dc:title\n \"Schedule event (single form).\";\n a ui:Group;\n ui:parts ( <#form1> <#form2> <#form3> ).\n\n<#form1>\n dc:title\n \"Schedule an event (wizard)\";\n a ui:Form;\n ui:parts (\n <#form1header>\n <#eventTitle>\n <#eventLocation>\n <#eventType>\n <#eventSwitch>\n <#eventComment>\n <#eventAuthor> ).\n\n<#form1header> a ui:Heading; ui:contents \"Schedule an event\" .\n\n<#eventTitle>\n a ui:SingleLineTextField;\n ui:maxLength\n \"128\";\n ui:property\n cal:summary;\n ui:size\n \"40\".\n\n<#eventLocation>\n a ui:SingleLineTextField;\n ui:maxLength\n \"512\";\n ui:property\n cal:location;\n ui:size\n \"40\".\n\n<#eventType> a ui:BooleanField;\n ui:property sched:allDay;\n ui:default true . # Used to be the only way\n\n<#eventSwitch> a ui:Options;\n ui:dependingOn sched:allDay;\n ui:case [ ui:for true; ui:use <#AllDayForm> ];\n ui:case [ ui:for false; ui:use <#NotAllDayForm> ].\n\n <#AllDayForm> a ui:IntegerField ;\n ui:property sched:durationInDays;\n ui:label \"How many days?\";\n ui:min 1;\n ui:default 1 .\n\n <#NotAllDayForm> a ui:IntegerField ;\n ui:property sched:durationInMinutes;\n ui:label \"Duration (mins)\";\n ui:min 5;\n ui:default 55 .\n\n<#eventComment>\n a ui:MultiLineTextField;\n# ui:maxLength\n# \"1048\";\n# ui:size\n# \"40\".\n ui:property\n cal:comment.\n\n<#eventAuthor>\n a ui:Multiple; ui:min 1; ui:part <#eventAuthorGroup>; ui:property dc:author.\n\n <#eventAuthorGroup> a ui:Group; ui:parts ( <#authorName> <#authorEmail> ) .\n <#authorName> a ui:SingleLineTextField; ui:property foaf:name .\n <#authorEmail> a ui:EmailField; ui:label \"email\"; ui:property foaf:mbox .\n\n\n#####################\n\n<#form2> dc:title \"Select possible days or times\"; a ui:Form;\n ui:parts ( <#id1118132113134> <#possibleSwitch> ).\n\n <#id1118132113134> a ui:Heading; ui:contents \"Time proposals\" .\n\n <#possibleSwitch> a ui:Options;\n ui:dependingOn sched:allDay;\n ui:case [ ui:for true; ui:use <#AllDayForm2> ];\n ui:case [ ui:for false; ui:use <#NotAllDayForm2> ].\n\n <#AllDayForm2>\n a ui:Multiple; ui:min 2; ui:part <#posssibleDate>; ui:property sched:option.\n <#posssibleDate> a ui:DateField; ui:property cal:dtstart; ui:label \"date\".\n\n <#NotAllDayForm2>\n a ui:Multiple; ui:min 2; ui:part <#posssibleTime>; ui:property sched:option.\n <#posssibleTime> a ui:DateTimeField; ui:property cal:dtstart; ui:label \"date and time\".\n\n ##################################\n\n <#form3> dc:title \"Select invited people\"; a ui:Form; ui:parts ( <#id1118132113135> <#id1417314641301b> ) .\n<#id1417314641301b>\n a ui:Multiple; ui:min 1; ui:part <#id1417314674292b>; ui:property sched:invitee.\n <#id1417314674292b> a ui:EmailField; ui:label \"email\"; ui:property foaf:mbox .\n <#id1118132113135> a ui:Heading; ui:contents \"Who to invite\" .\n\n# ENDS\n";
4
4
  //# sourceMappingURL=formsForSchedule.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schedule/formsForSchedule.js"],"names":["module","exports"],"mappings":";;AAAAA,MAAM,CAACC,OAAP","sourcesContent":["module.exports = `\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix ical: <http://www.w3.org/2002/12/cal/ical#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix sched: <http://www.w3.org/ns/pim/schedule#>.\n\n ical:Vevent ui:annotationForm <#form2>, <#form3>; ui:creationForm <#form1> .\n\n<#bigForm>\n dc:title\n \"Schedule event (single form).\";\n a ui:Group;\n ui:part\n <#form1>, <#form2>, <#form3>.\n\n<#form1>\n dc:title\n \"Schedule an event (wizard)\";\n a ui:Form;\n ui:part\n <#form1header>,\n <#eventTitle>,\n <#eventLocation>,\n <#eventComment>,\n <#eventAuthor>.\n<#eventTitle>\n a ui:SingleLineTextField;\n ui:maxLength\n \"128\";\n ui:property\n ical:summary;\n ui:size\n \"40\".\n\n<#eventLocation>\n a ui:SingleLineTextField;\n ui:maxLength\n \"512\";\n ui:property\n ical:location;\n ui:size\n \"40\".\n\n<#eventComment>\n a ui:MultiLineTextField;\n# ui:maxLength\n# \"1048\";\n# ui:size\n# \"40\".\n ui:property\n ical:comment.\n\n<#eventAuthor>\n a ui:Multiple; ui:min 1; ui:part <#eventAuthorGroup>; ui:property dc:author.\n\n <#eventAuthorGroup> a ui:Group; ui:part <#authorName>, <#authorEmail> .\n <#authorName> a ui:SingleLineTextField; ui:property foaf:name .\n <#authorEmail> a ui:EmailField; ui:label \"email\"; ui:property foaf:mbox .\n\n\n#####################\n\n<#form2> dc:title \"Select possible days\"; a ui:Form;\n ui:part <#id1118132113134>, <#id1417314641301> .\n\n <#id1118132113134> a ui:Heading; ui:contents \"Time proposals\" .\n\n <#id1417314641301>\n a ui:Multiple; ui:min 2; ui:part <#id1417314674292>; ui:property sched:option.\n\n <#id1417314674292> a ui:DateField; ui:property ical:dtstart; ui:label \"Date\".\n\n ##################################\n\n <#form3> dc:title \"Select invited people\"; a ui:Form; ui:part <#id1118132113135>, <#id1417314641301b> .\n<#id1417314641301b>\n a ui:Multiple; ui:min 1; ui:part <#id1417314674292b>; ui:property sched:invitee.\n <#id1417314674292b> a ui:EmailField; ui:label \"email\"; ui:property foaf:mbox .\n <#form1header> a ui:Heading; ui:contents \"Schedule an event\" .\n <#id1118132113135> a ui:Heading; ui:contents \"Who to invite\" .\n`\n"],"file":"formsForSchedule.js"}
1
+ {"version":3,"sources":["../../src/schedule/formsForSchedule.js"],"names":["module","exports"],"mappings":";;AAAAA,MAAM,CAACC,OAAP","sourcesContent":["module.exports = `\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix cal: <http://www.w3.org/2002/12/cal/ical#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix sched: <http://www.w3.org/ns/pim/schedule#>.\n\n cal:Vevent ui:annotationForm <#form2>, <#form3>; ui:creationForm <#form1> .\n\n<#bigForm>\n dc:title\n \"Schedule event (single form).\";\n a ui:Group;\n ui:parts ( <#form1> <#form2> <#form3> ).\n\n<#form1>\n dc:title\n \"Schedule an event (wizard)\";\n a ui:Form;\n ui:parts (\n <#form1header>\n <#eventTitle>\n <#eventLocation>\n <#eventType>\n <#eventSwitch>\n <#eventComment>\n <#eventAuthor> ).\n\n<#form1header> a ui:Heading; ui:contents \"Schedule an event\" .\n\n<#eventTitle>\n a ui:SingleLineTextField;\n ui:maxLength\n \"128\";\n ui:property\n cal:summary;\n ui:size\n \"40\".\n\n<#eventLocation>\n a ui:SingleLineTextField;\n ui:maxLength\n \"512\";\n ui:property\n cal:location;\n ui:size\n \"40\".\n\n<#eventType> a ui:BooleanField;\n ui:property sched:allDay;\n ui:default true . # Used to be the only way\n\n<#eventSwitch> a ui:Options;\n ui:dependingOn sched:allDay;\n ui:case [ ui:for true; ui:use <#AllDayForm> ];\n ui:case [ ui:for false; ui:use <#NotAllDayForm> ].\n\n <#AllDayForm> a ui:IntegerField ;\n ui:property sched:durationInDays;\n ui:label \"How many days?\";\n ui:min 1;\n ui:default 1 .\n\n <#NotAllDayForm> a ui:IntegerField ;\n ui:property sched:durationInMinutes;\n ui:label \"Duration (mins)\";\n ui:min 5;\n ui:default 55 .\n\n<#eventComment>\n a ui:MultiLineTextField;\n# ui:maxLength\n# \"1048\";\n# ui:size\n# \"40\".\n ui:property\n cal:comment.\n\n<#eventAuthor>\n a ui:Multiple; ui:min 1; ui:part <#eventAuthorGroup>; ui:property dc:author.\n\n <#eventAuthorGroup> a ui:Group; ui:parts ( <#authorName> <#authorEmail> ) .\n <#authorName> a ui:SingleLineTextField; ui:property foaf:name .\n <#authorEmail> a ui:EmailField; ui:label \"email\"; ui:property foaf:mbox .\n\n\n#####################\n\n<#form2> dc:title \"Select possible days or times\"; a ui:Form;\n ui:parts ( <#id1118132113134> <#possibleSwitch> ).\n\n <#id1118132113134> a ui:Heading; ui:contents \"Time proposals\" .\n\n <#possibleSwitch> a ui:Options;\n ui:dependingOn sched:allDay;\n ui:case [ ui:for true; ui:use <#AllDayForm2> ];\n ui:case [ ui:for false; ui:use <#NotAllDayForm2> ].\n\n <#AllDayForm2>\n a ui:Multiple; ui:min 2; ui:part <#posssibleDate>; ui:property sched:option.\n <#posssibleDate> a ui:DateField; ui:property cal:dtstart; ui:label \"date\".\n\n <#NotAllDayForm2>\n a ui:Multiple; ui:min 2; ui:part <#posssibleTime>; ui:property sched:option.\n <#posssibleTime> a ui:DateTimeField; ui:property cal:dtstart; ui:label \"date and time\".\n\n ##################################\n\n <#form3> dc:title \"Select invited people\"; a ui:Form; ui:parts ( <#id1118132113135> <#id1417314641301b> ) .\n<#id1417314641301b>\n a ui:Multiple; ui:min 1; ui:part <#id1417314674292b>; ui:property sched:invitee.\n <#id1417314674292b> a ui:EmailField; ui:label \"email\"; ui:property foaf:mbox .\n <#id1118132113135> a ui:Heading; ui:contents \"Who to invite\" .\n\n# ENDS\n`\n"],"file":"formsForSchedule.js"}
@@ -691,7 +691,7 @@ module.exports = {
691
691
  // Read or create empty results file
692
692
 
693
693
 
694
- var getResults = function getResults() {
694
+ function getResults() {
695
695
  fetcher.nowOrWhenFetched(resultsDoc.uri, function (ok, body, response) {
696
696
  if (!ok) {
697
697
  if (response.status === 404) {
@@ -716,9 +716,9 @@ module.exports = {
716
716
  showResults();
717
717
  }
718
718
  });
719
- };
719
+ }
720
720
 
721
- var showResults = function showResults() {
721
+ function showResults() {
722
722
  // Now the form for responsing to the poll
723
723
  //
724
724
  // div.appendChild(dom.createElement('hr'))
@@ -751,7 +751,7 @@ module.exports = {
751
751
  var v = {};
752
752
  var vs = ['time', 'author', 'value', 'resp', 'cell'];
753
753
  vs.forEach(function (x) {
754
- query.vars.push(v[x] = $rdf.constiable(x));
754
+ query.vars.push(v[x] = $rdf.variable(x));
755
755
  });
756
756
  query.pat.add(invitation, ns.sched('response'), v.resp);
757
757
  query.pat.add(v.resp, ns.dc('author'), v.author);
@@ -905,7 +905,7 @@ module.exports = {
905
905
 
906
906
  clearElement(naviRight);
907
907
  naviRight.appendChild(newInstanceButton());
908
- }; // showResults
908
+ } // showResults
909
909
 
910
910
 
911
911
  var div = dom.createElement('div');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schedule/schedulePane.js"],"names":["UI","require","$rdf","rdf","ns","possibleAvailabilities","sched","module","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","mintClass","mintNew","options","Promise","resolve","reject","newBase","thisInstance","useExisting","sym","complainIfBad","ok","body","console","log","Error","genACLtext","docURI","aclURI","allWrite","g","graph","auth","Namespace","a","acl","doc","add","me","foaf","serialize","setACL2","callbackFunction","aclDoc","any","aclText","uri","fetcher","webOperation","data","contentType","then","_result","err","message","load","updater","authn","currentUser","alert","base","dir","newDetailsDoc","newInstance","newResultsDoc","toBeCopied","noIndexHTML","local","agenda","f","length","item","fun","copyItem","push","newURI","setThatACL","shift","webCopy","checkUser","webId","createDetailsFile","dc","Date","put","statementsMatching","undefined","uri2","render","dom","invitation","appPathSegment","waitingForLogin","detailsDoc","baseDir","resultsDoc","formsURI","form1","form2","form3","formText","parse","inputStyle","buttonIconStyle","div","appendChild","widgets","errorMessageBlock","clearElement","ele","firstChild","removeChild","refreshCellColor","cell","value","bg","ui","setAttribute","logInOutButton","refresh","showAppropriateDisplay","newInstanceButton","b","newAppInstance","noun","initializeNewInstanceInWorkspace","ws","space","split","slice","error","now","getTime","initializeNewInstanceAtBase","p","createElement","innerHTML","getForms","getDetails","nowOrWhenFetched","showSignon","editable","holds","wf","showBootstrap","ready","showForms","getResults","naviMain","signonContext","logIn","textContent","baseField","size","autocomplete","button","addEventListener","_e","doneButton","naviCenter","wizard","currentSlide","gotDoneButton","forms","slides","slide","appendForm","document","b1","removeAttribute","b2","emailButton","naviLeft","naviRight","table","insertables","st","update","success","errorBody","emailIcon","title","anyValue","cal","mailto","each","map","who","mbox","replace","join","encodeURIComponent","window","location","href","response","status","showResults","comment","author","authorName","query","Query","v","vs","forEach","x","vars","constiable","pat","resp","time","set_x","opt","set_y","possibleTimes","displayTheMatrix","matrix","matrixForQuery","refreshButton","refreshIcon","disabled","dataPointForNT","loginContext","filter","z","sameTerm","cellFunction","y","_error","selectOptions","predicate","cellSubject","toNT","selector","makeSelectForOptions","utils","responses","myResponse","r","id","newThing","dps","dataPoint","j","instanceCreator","editButton","editIcon","structure","naviLoginoutTR","naviTop","naviMenu"],"mappings":"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EAAE,CAACE,KAAH,CAAS,SAAT,CADjB,EAEGiM,GAFH,CAEO,UAAUC,GAAV,EAAe;AAClB,cAAMC,IAAI,GAAGvL,EAAE,CAACuC,GAAH,CAAO+I,GAAP,EAAYpM,EAAE,CAACgD,IAAH,CAAQ,MAAR,CAAZ,CAAb;AACA,iBAAOqJ,IAAI,GAAGA,IAAI,CAAC9I,GAAL,CAAS+I,OAAT,CAAiB,SAAjB,EAA4B,EAA5B,CAAH,GAAqC,EAAhD;AACD,SALH,EAMGC,IANH,CAMQ,GANR,CADA,GAQA,WARA,GASAC,kBAAkB,CAACV,KAAK,GAAG,sBAAT,CATlB,GAUA,QAVA,GAWAU,kBAAkB,CAChBV,KAAK,GAAG,2BAAR,GAAsClL,OAAtC,GAAgD,IADhC,CAZpB,CALY,CAoBZ;;AAEAoB,QAAAA,OAAO,CAACC,GAAR,CAAY,WAAWgK,MAAvB;AACAQ,QAAAA,MAAM,CAACC,QAAP,CAAgBC,IAAhB,GAAuBV,MAAvB;AACD,OA1BH,EA2BE,KA3BF;AA6BD,KA7LD,CA9OkC,CA2ahC;AAEF;;AACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgBI;AAEA;;;AACA,QAAMrC,U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","sourcesContent":["/* Scheduler Pane\n **\n **\n */\n/* global alert */\n\nconst UI = require('solid-ui')\nconst $rdf = UI.rdf\nconst ns = UI.ns\n\n// @@ Give other combos too-- see schedule ontology\nconst possibleAvailabilities = [\n ns.sched('No'),\n ns.sched('Maybe'),\n ns.sched('Yes')\n]\n\nmodule.exports = {\n icon: UI.icons.iconBase + 'noun_346777.svg', // @@ better?\n\n name: 'schedule',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve an Scheduler pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/ns/pim/schedule#SchedulableEvent']) {\n return 'Scheduling poll'\n }\n return null // No under other circumstances\n },\n\n // Mint a new Schedule poll\n mintClass: ns.sched('SchedulableEvent'),\n\n mintNew: function (context, options) {\n return new Promise(function (resolve, reject) {\n const ns = UI.ns\n const kb = context.session.store\n let newBase = options.newBase\n const thisInstance =\n options.useExisting || $rdf.sym(options.newBase + 'index.ttl#this')\n\n const complainIfBad = function (ok, body) {\n if (ok) return\n console.log(\n 'Error in Schedule Pane: Error constructing new scheduler: ' + body\n )\n reject(new Error(body))\n }\n\n // ////////////////////// Accesss control\n\n // Two constiations of ACL for this app, public read and public read/write\n // In all cases owner has read write control\n\n const genACLtext = function (docURI, aclURI, allWrite) {\n const g = $rdf.graph()\n const auth = $rdf.Namespace('http://www.w3.org/ns/auth/acl#')\n let a = g.sym(aclURI + '#a1')\n const acl = g.sym(aclURI)\n const doc = g.sym(docURI)\n g.add(a, UI.ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agent'), me, acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n g.add(a, auth('mode'), auth('Write'), acl)\n g.add(a, auth('mode'), auth('Control'), acl)\n\n a = g.sym(aclURI + '#a2')\n g.add(a, UI.ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agentClass'), ns.foaf('Agent'), acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n if (allWrite) {\n g.add(a, auth('mode'), auth('Write'), acl)\n }\n return $rdf.serialize(acl, g, aclURI, 'text/turtle')\n }\n\n /*\n const setACL3 = function (docURI, allWrite, callbackFunction) {\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n return UI.acl.setACL(docURI, aclText, callbackFunction)\n }\n */\n\n const setACL2 = function setACL2 (docURI, allWrite, callbackFunction) {\n const aclDoc = kb.any(\n kb.sym(docURI),\n kb.sym('http://www.iana.org/assignments/link-relations/acl')\n ) // @@ check that this get set by web.js\n\n if (aclDoc) {\n // Great we already know where it is\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher\n .webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then(_result => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n } else {\n return fetcher\n .load(docURI)\n .catch(err => {\n callbackFunction(false, 'Getting headers for ACL: ' + err)\n })\n .then(() => {\n const aclDoc = kb.any(\n kb.sym(docURI),\n kb.sym('http://www.iana.org/assignments/link-relations/acl')\n )\n\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI)\n throw new Error('No Link rel=ACL header for ' + docURI)\n }\n\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher.webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n })\n .then(_result => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n }\n }\n\n // Body of mintNew\n const fetcher = kb.fetcher\n const updater = kb.updater\n\n let me = options.me || UI.authn.currentUser()\n if (!me) {\n console.log('MUST BE LOGGED IN')\n alert('NOT LOGGED IN')\n return\n }\n\n const base = thisInstance.dir().uri\n let newDetailsDoc, newInstance // , newIndexDoc\n\n if (options.useExisting) {\n newInstance = options.useExisting\n newBase = thisInstance.dir().uri\n newDetailsDoc = newInstance.doc()\n // newIndexDoc = null\n if (options.newBase) {\n throw new Error(\n 'mint new scheduler: Illegal - have both new base and existing event'\n )\n }\n } else {\n newDetailsDoc = kb.sym(newBase + 'details.ttl')\n // newIndexDoc = kb.sym(newBase + 'index.html')\n newInstance = kb.sym(newDetailsDoc.uri + '#event')\n }\n\n const newResultsDoc = kb.sym(newBase + 'results.ttl')\n\n const toBeCopied = options.noIndexHTML\n ? {}\n : [{ local: 'index.html', contentType: 'text/html' }]\n\n const agenda = []\n\n // @@ This needs some form of visible progress bar\n for (let f = 0; f < toBeCopied.length; f++) {\n const item = toBeCopied[f]\n const fun = function copyItem (item) {\n agenda.push(function () {\n const newURI = newBase + item.local\n console.log('Copying ' + base + item.local + ' to ' + newURI)\n\n const setThatACL = function () {\n setACL2(newURI, false, function (ok, message) {\n if (!ok) {\n complainIfBad(\n ok,\n 'FAILED to set ACL ' + newURI + ' : ' + message\n )\n console.log('FAILED to set ACL ' + newURI + ' : ' + message)\n } else {\n agenda.shift()() // beware too much nesting\n }\n })\n }\n\n kb.fetcher\n .webCopy(\n base + item.local,\n newBase + item.local,\n item.contentType\n )\n .then(() => UI.authn.checkUser())\n .then(webId => {\n me = webId\n\n setThatACL()\n })\n .catch(err => {\n console.log(\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n complainIfBad(\n false,\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n })\n })\n }\n fun(item)\n }\n\n agenda.push(function createDetailsFile () {\n kb.add(\n newInstance,\n ns.rdf('type'),\n ns.sched('SchedulableEvent'),\n newDetailsDoc\n )\n if (me) {\n kb.add(newInstance, ns.dc('author'), me, newDetailsDoc) // Who is sending the invitation?\n kb.add(newInstance, ns.foaf('maker'), me, newDetailsDoc) // Uneditable - wh is allowed to edit this?\n }\n\n kb.add(newInstance, ns.dc('created'), new Date(), newDetailsDoc)\n kb.add(newInstance, ns.sched('resultsDocument'), newDetailsDoc)\n\n updater.put(\n newDetailsDoc,\n kb.statementsMatching(undefined, undefined, undefined, newDetailsDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n agenda.shift()()\n } else {\n complainIfBad(\n ok,\n 'FAILED to save new scheduler at: ' +\n newDetailsDoc +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to save new scheduler at: ' +\n newDetailsDoc +\n ' : ' +\n message\n )\n }\n }\n )\n })\n\n agenda.push(function () {\n kb.fetcher\n .webOperation('PUT', newResultsDoc.uri, {\n data: '',\n contentType: 'text/turtle'\n })\n .then(() => {\n agenda.shift()()\n })\n .catch(err => {\n complainIfBad(\n false,\n 'Failed to initialize empty results file: ' + err.message\n )\n })\n })\n\n agenda.push(function () {\n setACL2(newResultsDoc.uri, true, function (ok, body) {\n complainIfBad(\n ok,\n 'Failed to set Read-Write ACL on results file: ' + body\n )\n if (ok) agenda.shift()()\n })\n })\n\n agenda.push(function () {\n setACL2(newDetailsDoc.uri, false, function (ok, body) {\n complainIfBad(\n ok,\n 'Failed to set read ACL on configuration file: ' + body\n )\n if (ok) agenda.shift()()\n })\n })\n\n agenda.push(function () {\n // give the user links to the new app\n console.log('Finished minting new scheduler')\n options.newInstance = newInstance\n resolve(options)\n })\n\n agenda.shift()()\n // Created new data files.\n }) // promise\n }, // mintNew\n\n // Render one meeting schedule poll\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const ns = UI.ns\n const invitation = subject\n const appPathSegment = 'app-when-can-we.w3.org' // how to allocate this string and connect to\n\n // ////////////////////////////////////////////\n\n const fetcher = kb.fetcher\n const updater = kb.updater\n let waitingForLogin = false\n\n const thisInstance = subject\n const detailsDoc = subject.doc()\n const baseDir = detailsDoc.dir()\n const base = baseDir.uri\n\n const resultsDoc = $rdf.sym(base + 'results.ttl')\n // const formsURI = base + 'forms.ttl'\n // We can't in fact host stuff from there because of CORS\n const formsURI =\n 'https://solid.github.io/solid-panes/schedule/formsForSchedule.ttl'\n\n const form1 = kb.sym(formsURI + '#form1')\n const form2 = kb.sym(formsURI + '#form2')\n const form3 = kb.sym(formsURI + '#form3')\n\n const formText = require('./formsForSchedule.js')\n $rdf.parse(formText, kb, formsURI, 'text/turtle') // Load forms directly\n\n const inputStyle =\n 'background-color: #eef; padding: 0.5em; border: .5em solid white; font-size: 100%' // font-size: 120%\n const buttonIconStyle = 'width: 1.8em; height: 1.8em;'\n\n // Utility functions\n\n const complainIfBad = function (ok, message) {\n if (!ok) {\n div.appendChild(UI.widgets.errorMessageBlock(dom, message, 'pink'))\n }\n }\n\n const clearElement = function (ele) {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild)\n }\n return ele\n }\n\n const refreshCellColor = function (cell, value) {\n const bg = kb.any(value, UI.ns.ui('backgroundColor'))\n if (bg) {\n cell.setAttribute(\n 'style',\n 'padding: 0.3em; text-align: center; background-color: ' + bg + ';'\n )\n }\n }\n\n let me\n\n UI.authn.checkUser().then(webId => {\n me = webId\n\n if (logInOutButton) {\n logInOutButton.refresh()\n }\n if (webId && waitingForLogin) {\n waitingForLogin = false\n showAppropriateDisplay()\n }\n })\n console.log('me: ' + me) // @@ curently not actually used elsewhere\n\n // ////////////////////////////// Reproduction: spawn a new instance\n //\n // Viral growth path: user of app decides to make another instance\n //\n\n const newInstanceButton = function () {\n const b = UI.authn.newAppInstance(\n dom,\n { noun: 'scheduler' },\n initializeNewInstanceInWorkspace\n )\n b.firstChild.setAttribute('style', inputStyle)\n return b\n } // newInstanceButton\n\n // /////////////////////// Create new document files for new instance of app\n\n const initializeNewInstanceInWorkspace = function (ws) {\n let newBase = kb.any(ws, ns.space('uriPrefix'))\n if (!newBase) {\n newBase = ws.uri.split('#')[0]\n } else {\n newBase = newBase.value\n }\n if (newBase.slice(-1) !== '/') {\n $rdf.log.error(appPathSegment + ': No / at end of uriPrefix ' + newBase) // @@ paramater?\n newBase = newBase + '/'\n }\n const now = new Date()\n newBase += appPathSegment + '/id' + now.getTime() + '/' // unique id\n\n initializeNewInstanceAtBase(thisInstance, newBase)\n }\n\n const initializeNewInstanceAtBase = function (thisInstance, newBase) {\n const options = { thisInstance: thisInstance, newBase: newBase }\n this.mintNew(context, options)\n .then(function (options) {\n const p = div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n \"Your <a href='\" +\n options.newInstance.uri +\n \"'><b>new scheduler</b></a> is ready to be set up. \" +\n \"<br/><br/><a href='\" +\n options.newInstance.uri +\n \"'>Say when you what days work for you.</a>\"\n })\n .catch(function (error) {\n complainIfBad(\n false,\n 'Error createing new scheduler at ' +\n options.newInstance +\n ': ' +\n error\n )\n })\n }\n\n // ///////////////////////\n\n const getForms = function () {\n console.log('getforms()')\n getDetails()\n /*\n fetcher.nowOrWhenFetched(formsURI, undefined, function (ok, body) {\n console.log('getforms() ok? ' + ok)\n if (!ok) return complainIfBad(ok, body)\n getDetails()\n })\n */\n }\n\n const getDetails = function () {\n console.log('getDetails()') // Looking for blank screen hang-up\n fetcher.nowOrWhenFetched(detailsDoc.uri, undefined, function (ok, body) {\n console.log('getDetails() ok? ' + ok)\n if (!ok) return complainIfBad(ok, body)\n showAppropriateDisplay()\n })\n }\n\n const showAppropriateDisplay = function showAppropriateDisplay () {\n console.log('showAppropriateDisplay()')\n\n UI.authn.checkUser().then(webId => {\n if (!webId) {\n return showSignon()\n }\n\n // On gh-pages, the turtle will not load properly (bad mime type)\n // but we can trap it as being a non-editable server.\n\n if (\n !kb.updater.editable(detailsDoc.uri, kb) ||\n kb.holds(subject, ns.rdf('type'), ns.wf('TemplateInstance'))\n ) {\n // This is read-only example e.g. on github pages, etc\n showBootstrap(div)\n return\n }\n\n const ready = kb.any(subject, ns.sched('ready'))\n\n if (!ready) {\n showForms()\n } else {\n // no editing not author\n getResults()\n }\n })\n }\n\n const showSignon = function showSignon () {\n clearElement(naviMain)\n const signonContext = { div: div, dom: dom }\n UI.authn.logIn(signonContext).then(context => {\n me = context.me\n waitingForLogin = false // untested\n showAppropriateDisplay()\n })\n }\n\n const showBootstrap = function showBootstrap () {\n const div = clearElement(naviMain)\n div.appendChild(\n UI.authn.newAppInstance(\n dom,\n { noun: 'poll' },\n initializeNewInstanceInWorkspace\n )\n )\n\n div.appendChild(dom.createElement('hr')) // @@\n\n const p = div.appendChild(dom.createElement('p'))\n p.textContent =\n 'Where would you like to store the data for the poll? ' +\n 'Give the URL of the directory where you would like the data stored.'\n const baseField = div.appendChild(dom.createElement('input'))\n baseField.setAttribute('type', 'text')\n baseField.size = 80 // really a string\n baseField.label = 'base URL'\n baseField.autocomplete = 'on'\n\n div.appendChild(dom.createElement('br')) // @@\n\n const button = div.appendChild(dom.createElement('button'))\n button.setAttribute('style', inputStyle)\n button.textContent = 'Start new poll at this URI'\n button.addEventListener('click', function (_e) {\n let newBase = baseField.value\n if (newBase.slice(-1) !== '/') {\n newBase += '/'\n }\n initializeNewInstanceAtBase(thisInstance, newBase)\n })\n }\n\n // ///////////// The forms to configure the poll\n\n const doneButton = dom.createElement('button')\n\n const showForms = function () {\n clearElement(naviCenter) // Remove refresh button if nec\n const div = naviMain\n const wizard = true\n let currentSlide = 0\n let gotDoneButton = false\n if (wizard) {\n const forms = [form1, form2, form3]\n const slides = []\n currentSlide = 0\n for (let f = 0; f < forms.length; f++) {\n const slide = dom.createElement('div')\n UI.widgets.appendForm(\n document,\n slide,\n {},\n subject,\n forms[f],\n detailsDoc,\n complainIfBad\n )\n slides.push(slide)\n }\n\n const refresh = function () {\n clearElement(naviMain).appendChild(slides[currentSlide])\n\n if (currentSlide === 0) {\n b1.setAttribute('disabled', '')\n } else {\n b1.removeAttribute('disabled')\n }\n if (currentSlide === slides.length - 1) {\n b2.setAttribute('disabled', '')\n if (!gotDoneButton) {\n // Only expose at last slide seen\n naviCenter.appendChild(emailButton) // could also check data shape\n naviCenter.appendChild(doneButton) // could also check data shape\n gotDoneButton = true\n }\n } else {\n b2.removeAttribute('disabled')\n }\n }\n const b1 = clearElement(naviLeft).appendChild(dom.createElement('button'))\n b1.setAttribute('style', inputStyle)\n b1.textContent = '<- go back'\n b1.addEventListener(\n 'click',\n function (_e) {\n if (currentSlide > 0) {\n currentSlide -= 1\n refresh()\n }\n },\n false\n )\n\n const b2 = clearElement(naviRight).appendChild(\n dom.createElement('button')\n )\n b2.setAttribute('style', inputStyle)\n b2.textContent = 'continue ->'\n b2.addEventListener(\n 'click',\n function (_e) {\n if (currentSlide < slides.length - 1) {\n currentSlide += 1\n refresh()\n }\n },\n false\n )\n\n refresh()\n } else {\n // not wizard one big form\n // @@@ create the initial config doc if not exist\n const table = div.appendChild(dom.createElement('table'))\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form1,\n detailsDoc,\n complainIfBad\n )\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form2,\n detailsDoc,\n complainIfBad\n )\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form3,\n detailsDoc,\n complainIfBad\n )\n naviCenter.appendChild(doneButton) // could also check data shape\n }\n // @@@ link config to results\n\n const insertables = []\n insertables.push(\n $rdf.st(\n subject,\n ns.sched('availabilityOptions'),\n ns.sched('YesNoMaybe'),\n detailsDoc\n )\n )\n insertables.push(\n $rdf.st(subject, ns.sched('ready'), new Date(), detailsDoc)\n )\n insertables.push(\n $rdf.st(subject, ns.sched('results'), resultsDoc, detailsDoc)\n ) // @@ also link in results\n\n doneButton.setAttribute('style', inputStyle)\n doneButton.textContent = 'Go to poll'\n doneButton.addEventListener(\n 'click',\n function (_e) {\n if (kb.any(subject, ns.sched('ready'))) {\n // already done\n getResults()\n naviRight.appendChild(emailButton)\n } else {\n naviRight.appendChild(emailButton)\n kb.updater.update([], insertables, function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n // naviRight.appendChild(emailButton)\n getResults()\n }\n })\n }\n },\n false\n )\n\n const emailButton = dom.createElement('button')\n emailButton.setAttribute('style', inputStyle)\n const emailIcon = emailButton.appendChild(dom.createElement('img'))\n emailIcon.setAttribute('src', UI.icons.iconBase + 'noun_480183.svg') // noun_480183.svg\n emailIcon.setAttribute('style', buttonIconStyle)\n // emailButton.textContent = 'email invitations'\n emailButton.addEventListener(\n 'click',\n function (_e) {\n const title =\n kb.anyValue(subject, ns.cal('summary')) ||\n kb.anyValue(subject, ns.dc('title')) ||\n ''\n const mailto =\n 'mailto:' +\n kb\n .each(subject, ns.sched('invitee'))\n .map(function (who) {\n const mbox = kb.any(who, ns.foaf('mbox'))\n return mbox ? mbox.uri.replace('mailto:', '') : ''\n })\n .join(',') +\n '?subject=' +\n encodeURIComponent(title + '-- When can we meet?') +\n '&body=' +\n encodeURIComponent(\n title + '\\n\\nWhen can you?\\n\\nSee ' + subject + '\\n'\n )\n // @@ assumed there is a data browser\n\n console.log('Mail: ' + mailto)\n window.location.href = mailto\n },\n false\n )\n } // showForms\n\n // Ask for each day, what times .. @@ to be added some time\n /*\n const setTimesOfDay = function () {\n const i, j, x, y, slot, cell, day\n const insertables = []\n const possibleDays = kb.each(invitation, ns.sched('option'))\n .map(function (opt) {return kb.any(opt, ns.cal('dtstart'))})\n const cellLookup = []\n const slots = kb.each(invitation, ns.sched('slot'))\n if (slots.length === 0) {\n for (i = 0; i < 2; i++) {\n slot = UI.widgets.newThing(detailsDoc)\n insertables.push($rdf.st(invitation, ns.sched('slot'), slot))\n insertables.push($rdf.st(slot, ns.rdfs('label'), 'slot ' + (i + 1)))\n for (j = 0; j < possibleDays.length; j++) {\n day - possibleDays[j]\n x = kb.any(slot, ns.rdfs('label'))\n y = kb.any(day, ns.cal('dtstart'))\n cell = UI.widgets.newThing(detailsDoc)\n cellLookup[x.toNT() + y.toNT()] = cell\n insertables.push($rdf.st(slot, ns.sched('cell'), cell))\n insertables.push($rdf.st(cell, ns.sched('day'), possibleDays[j]))\n }\n }\n }\n\n const query = new $rdf.Query('TimesOfDay')\n const v = {}['day', 'label', 'value', 'slot', 'cell'].map(function (x) {\n query.consts.push(v[x] = $rdf.constiable(x)) })\n query.pat.add(invitation, ns.sched('slot'), v.slot)\n query.pat.add(v.slot, ns.rdfs('label'), v.label)\n query.pat.add(v.slot, ns.sched('cell'), v.cell)\n query.pat.add(v.cell, ns.sched('timeOfDay'), v.value)\n query.pat.add(v.cell, ns.sched('day'), v.day)\n\n const options = {}\n options.set_x = kb.each(subject, ns.sched('slot')) // @@@@@ option -> dtstart in future\n options.set_x = options.set_x.map(function (opt) { return kb.any(opt, ns.rdfs('label')) })\n\n options.set_y = kb.each(subject, ns.sched('option')); // @@@@@ option -> dtstart in future\n options.set_y = options.set_y.map(function (opt) { return kb.any(opt, ns.cal('dtstart')) })\n\n const possibleTimes = kb.each(invitation, ns.sched('option'))\n .map(function (opt) { return kb.any(opt, ns.cal('dtstart')) })\n\n const displayTheMatrix = function () {\n const matrix = div.appendChild(UI.matrix.matrixForQuery(\n dom, query, v.time, v.author, v.value, options, function () {}))\n\n matrix.setAttribute('class', 'matrix')\n\n const refreshButton = dom.createElement('button')\n refreshButton.setAttribute('style', inputStyle)\n refreshButton.textContent = 'refresh'\n refreshButton.addEventListener('click', function (e) {\n refreshButton.disabled = true\n UI.store.fetcher.nowOrWhenFetched(subject.doc(), undefined, function (ok, body) {\n if (!ok) {\n console.log('Cant refresh matrix' + body)\n } else {\n matrix.refresh()\n refreshButton.disabled = false\n }\n })\n }, false)\n\n clearElement(naviCenter)\n naviCenter.appendChild(refreshButton)\n }\n\n const dataPointForNT = []\n\n const doc = resultsDoc\n options.set_y = options.set_y.filter(function (z) { return (! z.sameTerm(me)) })\n options.set_y.push(me) // Put me on the end\n\n options.cellFunction = function (cell, x, y, value) {\n // const point = cellLookup[x.toNT() + y.toNT()]\n\n if (y.sameTerm(me)) {\n const callbackFunction = function () { refreshCellColor(cell, value); }; // @@ may need that\n const selectOptions = {}\n const predicate = ns.sched('timeOfDay')\n const cellSubject = dataPointForNT[x.toNT()]\n const selector = UI.widgets.makeSelectForOptions(dom, kb, cellSubject, predicate,\n possibleAvailabilities, selectOptions, resultsDoc, callbackFunction)\n cell.appendChild(selector)\n } else if (value !== null) {\n cell.textContent = UI.utils.label(value)\n }\n\n }\n\n const responses = kb.each(invitation, ns.sched('response'))\n const myResponse = null\n responses.map(function (r) {\n if (kb.holds(r, ns.dc('author'), me)) {\n myResponse = r\n }\n })\n\n const id = UI.widgets.newThing(doc).uri\n if (myResponse === null) {\n myResponse = $rdf.sym(id + '_response')\n insertables.push($rdf.st(invitation, ns.sched('response'), myResponse, doc))\n insertables.push($rdf.st(myResponse, ns.dc('author'), me, doc))\n } else {\n const dps = kb.each(myResponse, ns.sched('cell'))\n dps.map(function (dataPoint) {\n const time = kb.any(dataPoint, ns.cal('dtstart'))\n dataPointForNT[time.toNT()] = dataPoint\n })\n }\n for (let j = 0; j < possibleTimes.length; j++) {\n if (dataPointForNT[possibleTimes[j].toNT()]) continue\n const dataPoint = $rdf.sym(id + '_' + j)\n insertables.push($rdf.st(myResponse, ns.sched('cell'), dataPoint, doc))\n insertables.push($rdf.st(dataPoint, ns.cal('dtstart'), possibleTimes[j], doc)) // @@\n dataPointForNT[possibleTimes[j].toNT()] = dataPoint\n }\n if (insertables.length) {\n UI.store.updater.update([], insertables, function (uri, success, errorBody) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n displayTheMatrix()\n }\n })\n } else { // no insertables\n displayTheMatrix()\n }\n }\n */\n // end setTimesOfDay\n\n // Read or create empty results file\n const getResults = function () {\n fetcher.nowOrWhenFetched(resultsDoc.uri, (ok, body, response) => {\n if (!ok) {\n if (response.status === 404) {\n // / Check explicitly for 404 error\n console.log('Initializing details file ' + resultsDoc)\n updater.put(resultsDoc, [], 'text/turtle', function (\n uri2,\n ok,\n message\n ) {\n if (ok) {\n clearElement(naviMain)\n showResults()\n } else {\n complainIfBad(\n ok,\n 'FAILED to create results file at: ' +\n resultsDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to craete results file at: ' +\n resultsDoc.uri +\n ' : ' +\n message\n )\n }\n })\n } else {\n // Other error, not 404 -- do not try to overwite the file\n complainIfBad(ok, 'FAILED to read results file: ' + body)\n }\n } else {\n // Happy read\n clearElement(naviMain)\n showResults()\n }\n })\n }\n\n const showResults = function () {\n // Now the form for responsing to the poll\n //\n\n // div.appendChild(dom.createElement('hr'))\n\n // const invitation = subject\n const title = kb.any(invitation, ns.cal('summary'))\n const comment = kb.any(invitation, ns.cal('comment'))\n const location = kb.any(invitation, ns.cal('location'))\n const div = naviMain\n if (title) div.appendChild(dom.createElement('h3')).textContent = title\n if (location) {\n div.appendChild(dom.createElement('address')).textContent =\n location.value\n }\n if (comment) {\n div.appendChild(dom.createElement('p')).textContent = comment.value\n }\n const author = kb.any(invitation, ns.dc('author'))\n if (author) {\n const authorName = kb.any(author, ns.foaf('name'))\n if (authorName) {\n div.appendChild(dom.createElement('p')).textContent = authorName\n }\n }\n\n const query = new $rdf.Query('Responses')\n const v = {}\n const vs = ['time', 'author', 'value', 'resp', 'cell']\n vs.forEach(function (x) {\n query.vars.push((v[x] = $rdf.constiable(x)))\n })\n query.pat.add(invitation, ns.sched('response'), v.resp)\n query.pat.add(v.resp, ns.dc('author'), v.author)\n query.pat.add(v.resp, ns.sched('cell'), v.cell)\n query.pat.add(v.cell, ns.sched('availabilty'), v.value)\n query.pat.add(v.cell, ns.cal('dtstart'), v.time)\n\n // Sort by by person @@@\n\n const options = {}\n options.set_x = kb.each(subject, ns.sched('option')) // @@@@@ option -> dtstart in future\n options.set_x = options.set_x.map(function (opt) {\n return kb.any(opt, ns.cal('dtstart'))\n })\n\n options.set_y = kb.each(subject, ns.sched('response'))\n options.set_y = options.set_y.map(function (resp) {\n return kb.any(resp, ns.dc('author'))\n })\n\n const possibleTimes = kb\n .each(invitation, ns.sched('option'))\n .map(function (opt) {\n return kb.any(opt, ns.cal('dtstart'))\n })\n\n const displayTheMatrix = function () {\n const matrix = div.appendChild(\n UI.matrix.matrixForQuery(\n dom,\n query,\n v.time,\n v.author,\n v.value,\n options,\n function () {}\n )\n )\n\n matrix.setAttribute('class', 'matrix')\n\n const refreshButton = dom.createElement('button')\n refreshButton.setAttribute('style', inputStyle)\n // refreshButton.textContent = 'refresh' // noun_479395.svg\n const refreshIcon = dom.createElement('img')\n refreshIcon.setAttribute('src', UI.icons.iconBase + 'noun_479395.svg')\n refreshIcon.setAttribute('style', buttonIconStyle)\n refreshButton.appendChild(refreshIcon)\n refreshButton.addEventListener(\n 'click',\n function (_e) {\n refreshButton.disabled = true\n kb.fetcher.refresh(resultsDoc, function (ok, body) {\n if (!ok) {\n console.log('Cant refresh matrix' + body)\n } else {\n matrix.refresh()\n refreshButton.disabled = false\n }\n })\n },\n false\n )\n\n clearElement(naviCenter)\n naviCenter.appendChild(refreshButton)\n }\n\n // @@ Give other combos too-- see schedule ontology\n // const possibleAvailabilities = [ SCHED('No'), SCHED('Maybe'), SCHED('Yes') ]\n\n // const me = UI.authn.currentUser()\n\n const dataPointForNT = []\n\n const loginContext = { div: naviCenter, dom: dom }\n UI.authn.logIn(loginContext).then(context => {\n const me = context.me\n const doc = resultsDoc\n options.set_y = options.set_y.filter(function (z) {\n return !z.sameTerm(me)\n })\n options.set_y.push(me) // Put me on the end\n\n options.cellFunction = function (cell, x, y, value) {\n if (value !== null) {\n kb.fetcher.nowOrWhenFetched(\n value.uri.split('#')[0],\n undefined,\n function (ok, _error) {\n if (ok) refreshCellColor(cell, value)\n }\n )\n }\n if (y.sameTerm(me)) {\n const callbackFunction = function () {\n refreshCellColor(cell, value)\n } // @@ may need that\n const selectOptions = {}\n const predicate = ns.sched('availabilty')\n const cellSubject = dataPointForNT[x.toNT()]\n const selector = UI.widgets.makeSelectForOptions(\n dom,\n kb,\n cellSubject,\n predicate,\n possibleAvailabilities,\n selectOptions,\n resultsDoc,\n callbackFunction\n )\n cell.appendChild(selector)\n } else if (value !== null) {\n cell.textContent = UI.utils.label(value)\n }\n }\n\n const responses = kb.each(invitation, ns.sched('response'))\n let myResponse = null\n responses.forEach(function (r) {\n if (kb.holds(r, ns.dc('author'), me)) {\n myResponse = r\n }\n })\n\n const insertables = [] // list of statements to be stored\n\n const id = UI.widgets.newThing(doc).uri\n if (myResponse === null) {\n myResponse = $rdf.sym(id + '_response')\n insertables.push(\n $rdf.st(invitation, ns.sched('response'), myResponse, doc)\n )\n insertables.push($rdf.st(myResponse, ns.dc('author'), me, doc))\n } else {\n const dps = kb.each(myResponse, ns.sched('cell'))\n dps.forEach(function (dataPoint) {\n const time = kb.any(dataPoint, ns.cal('dtstart'))\n dataPointForNT[time.toNT()] = dataPoint\n })\n }\n for (let j = 0; j < possibleTimes.length; j++) {\n if (dataPointForNT[possibleTimes[j].toNT()]) continue\n const dataPoint = $rdf.sym(id + '_' + j)\n insertables.push(\n $rdf.st(myResponse, ns.sched('cell'), dataPoint, doc)\n )\n insertables.push(\n $rdf.st(dataPoint, ns.cal('dtstart'), possibleTimes[j], doc)\n ) // @@\n dataPointForNT[possibleTimes[j].toNT()] = dataPoint\n }\n if (insertables.length) {\n kb.updater.update([], insertables, function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n displayTheMatrix()\n }\n })\n } else {\n // no insertables\n displayTheMatrix()\n }\n })\n\n // If I made this in the first place, allow me to edit it.\n // @@ optionally -- allows others to if according to original\n const instanceCreator = kb.any(subject, ns.foaf('maker')) // owner?\n if (!instanceCreator || instanceCreator.sameTerm(me)) {\n const editButton = dom.createElement('button')\n editButton.setAttribute('style', inputStyle)\n // editButton.textContent = '(Modify the poll)' // noun_344563.svg\n const editIcon = dom.createElement('img')\n editIcon.setAttribute('src', UI.icons.iconBase + 'noun_344563.svg')\n editIcon.setAttribute('style', buttonIconStyle)\n editButton.appendChild(editIcon)\n editButton.addEventListener(\n 'click',\n function (_e) {\n clearElement(div)\n showForms()\n },\n false\n )\n clearElement(naviLeft)\n naviLeft.appendChild(editButton)\n }\n\n // div.appendChild(editButton)\n\n clearElement(naviRight)\n naviRight.appendChild(newInstanceButton())\n } // showResults\n\n const div = dom.createElement('div')\n const structure = div.appendChild(dom.createElement('table')) // @@ make responsive style\n structure.setAttribute(\n 'style',\n 'background-color: white; min-width: 40em; min-height: 13em;'\n )\n\n const naviLoginoutTR = structure.appendChild(dom.createElement('tr'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n\n const logInOutButton = null\n /*\n const logInOutButton = UI.authn.loginStatusBox(dom, setUser)\n // floating divs lead to a mess\n // logInOutButton.setAttribute('style', 'float: right') // float the beginning of the end\n naviLoginout3.appendChild(logInOutButton)\n logInOutButton.setAttribute('style', 'margin-right: 0em;')\n */\n\n const naviTop = structure.appendChild(dom.createElement('tr'))\n const naviMain = naviTop.appendChild(dom.createElement('td'))\n naviMain.setAttribute('colspan', '3')\n\n const naviMenu = structure.appendChild(dom.createElement('tr'))\n naviMenu.setAttribute('class', 'naviMenu')\n naviMenu.setAttribute(\n 'style',\n ' text-align: middle; vertical-align: middle; padding-top: 4em; '\n )\n // naviMenu.setAttribute('style', 'margin-top: 3em;')\n const naviLeft = naviMenu.appendChild(dom.createElement('td'))\n const naviCenter = naviMenu.appendChild(dom.createElement('td'))\n const naviRight = naviMenu.appendChild(dom.createElement('td'))\n\n getForms()\n\n return div\n } // render\n} // property list\n// ends\n"],"file":"schedulePane.js"}
1
+ {"version":3,"sources":["../../src/schedule/schedulePane.js"],"names":["UI","require","$rdf","rdf","ns","possibleAvailabilities","sched","module","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","t","findTypeURIs","mintClass","mintNew","options","Promise","resolve","reject","newBase","thisInstance","useExisting","sym","complainIfBad","ok","body","console","log","Error","genACLtext","docURI","aclURI","allWrite","g","graph","auth","Namespace","a","acl","doc","add","me","foaf","serialize","setACL2","callbackFunction","aclDoc","any","aclText","uri","fetcher","webOperation","data","contentType","then","_result","err","message","load","updater","authn","currentUser","alert","base","dir","newDetailsDoc","newInstance","newResultsDoc","toBeCopied","noIndexHTML","local","agenda","f","length","item","fun","copyItem","push","newURI","setThatACL","shift","webCopy","checkUser","webId","createDetailsFile","dc","Date","put","statementsMatching","undefined","uri2","render","dom","invitation","appPathSegment","waitingForLogin","detailsDoc","baseDir","resultsDoc","formsURI","form1","form2","form3","formText","parse","inputStyle","buttonIconStyle","div","appendChild","widgets","errorMessageBlock","clearElement","ele","firstChild","removeChild","refreshCellColor","cell","value","bg","ui","setAttribute","logInOutButton","refresh","showAppropriateDisplay","newInstanceButton","b","newAppInstance","noun","initializeNewInstanceInWorkspace","ws","space","split","slice","error","now","getTime","initializeNewInstanceAtBase","p","createElement","innerHTML","getForms","getDetails","nowOrWhenFetched","showSignon","editable","holds","wf","showBootstrap","ready","showForms","getResults","naviMain","signonContext","logIn","textContent","baseField","size","autocomplete","button","addEventListener","_e","doneButton","naviCenter","wizard","currentSlide","gotDoneButton","forms","slides","slide","appendForm","document","b1","removeAttribute","b2","emailButton","naviLeft","naviRight","table","insertables","st","update","success","errorBody","emailIcon","title","anyValue","cal","mailto","each","map","who","mbox","replace","join","encodeURIComponent","window","location","href","response","status","showResults","comment","author","authorName","query","Query","v","vs","forEach","x","vars","variable","pat","resp","time","set_x","opt","set_y","possibleTimes","displayTheMatrix","matrix","matrixForQuery","refreshButton","refreshIcon","disabled","dataPointForNT","loginContext","filter","z","sameTerm","cellFunction","y","_error","selectOptions","predicate","cellSubject","toNT","selector","makeSelectForOptions","utils","responses","myResponse","r","id","newThing","dps","dataPoint","j","instanceCreator","editButton","editIcon","structure","naviLoginoutTR","naviTop","naviMenu"],"mappings":"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EAAE,CAACE,KAAH,CAAS,SAAT,CADjB,EAEGiM,GAFH,CAEO,UAAUC,GAAV,EAAe;AAClB,cAAMC,IAAI,GAAGvL,EAAE,CAACuC,GAAH,CAAO+I,GAAP,EAAYpM,EAAE,CAACgD,IAAH,CAAQ,MAAR,CAAZ,CAAb;AACA,iBAAOqJ,IAAI,GAAGA,IAAI,CAAC9I,GAAL,CAAS+I,OAAT,CAAiB,SAAjB,EAA4B,EAA5B,CAAH,GAAqC,EAAhD;AACD,SALH,EAMGC,IANH,CAMQ,GANR,CADA,GAQA,WARA,GASAC,kBAAkB,CAACV,KAAK,GAAG,sBAAT,CATlB,GAUA,QAVA,GAWAU,kBAAkB,CAChBV,KAAK,GAAG,2BAAR,GAAsClL,OAAtC,GAAgD,IADhC,CAZpB,CALY,CAoBZ;;AAEAoB,QAAAA,OAAO,CAACC,GAAR,CAAY,WAAWgK,MAAvB;AACAQ,QAAAA,MAAM,CAACC,QAAP,CAAgBC,IAAhB,GAAuBV,MAAvB;AACD,OA1BH,EA2BE,KA3BF;AA6BD,KA7LD,CA9OkC,CA2ahC;AAEF;;AACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgBI;AAEA;;;AACA,aAASrC,U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","sourcesContent":["/* Scheduler Pane\n **\n **\n */\n/* global alert */\n\nconst UI = require('solid-ui')\nconst $rdf = UI.rdf\nconst ns = UI.ns\n\n// @@ Give other combos too-- see schedule ontology\nconst possibleAvailabilities = [\n ns.sched('No'),\n ns.sched('Maybe'),\n ns.sched('Yes')\n]\n\nmodule.exports = {\n icon: UI.icons.iconBase + 'noun_346777.svg', // @@ better?\n\n name: 'schedule',\n\n audience: [ns.solid('PowerUser')],\n\n // Does the subject deserve an Scheduler pane?\n label: function (subject, context) {\n const kb = context.session.store\n const t = kb.findTypeURIs(subject)\n if (t['http://www.w3.org/ns/pim/schedule#SchedulableEvent']) {\n return 'Scheduling poll'\n }\n return null // No under other circumstances\n },\n\n // Mint a new Schedule poll\n mintClass: ns.sched('SchedulableEvent'),\n\n mintNew: function (context, options) {\n return new Promise(function (resolve, reject) {\n const ns = UI.ns\n const kb = context.session.store\n let newBase = options.newBase\n const thisInstance =\n options.useExisting || $rdf.sym(options.newBase + 'index.ttl#this')\n\n const complainIfBad = function (ok, body) {\n if (ok) return\n console.log(\n 'Error in Schedule Pane: Error constructing new scheduler: ' + body\n )\n reject(new Error(body))\n }\n\n // ////////////////////// Accesss control\n\n // Two constiations of ACL for this app, public read and public read/write\n // In all cases owner has read write control\n\n const genACLtext = function (docURI, aclURI, allWrite) {\n const g = $rdf.graph()\n const auth = $rdf.Namespace('http://www.w3.org/ns/auth/acl#')\n let a = g.sym(aclURI + '#a1')\n const acl = g.sym(aclURI)\n const doc = g.sym(docURI)\n g.add(a, UI.ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agent'), me, acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n g.add(a, auth('mode'), auth('Write'), acl)\n g.add(a, auth('mode'), auth('Control'), acl)\n\n a = g.sym(aclURI + '#a2')\n g.add(a, UI.ns.rdf('type'), auth('Authorization'), acl)\n g.add(a, auth('accessTo'), doc, acl)\n g.add(a, auth('agentClass'), ns.foaf('Agent'), acl)\n g.add(a, auth('mode'), auth('Read'), acl)\n if (allWrite) {\n g.add(a, auth('mode'), auth('Write'), acl)\n }\n return $rdf.serialize(acl, g, aclURI, 'text/turtle')\n }\n\n /*\n const setACL3 = function (docURI, allWrite, callbackFunction) {\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n return UI.acl.setACL(docURI, aclText, callbackFunction)\n }\n */\n\n const setACL2 = function setACL2 (docURI, allWrite, callbackFunction) {\n const aclDoc = kb.any(\n kb.sym(docURI),\n kb.sym('http://www.iana.org/assignments/link-relations/acl')\n ) // @@ check that this get set by web.js\n\n if (aclDoc) {\n // Great we already know where it is\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher\n .webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then(_result => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n } else {\n return fetcher\n .load(docURI)\n .catch(err => {\n callbackFunction(false, 'Getting headers for ACL: ' + err)\n })\n .then(() => {\n const aclDoc = kb.any(\n kb.sym(docURI),\n kb.sym('http://www.iana.org/assignments/link-relations/acl')\n )\n\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI)\n throw new Error('No Link rel=ACL header for ' + docURI)\n }\n\n const aclText = genACLtext(docURI, aclDoc.uri, allWrite)\n\n return fetcher.webOperation('PUT', aclDoc.uri, {\n data: aclText,\n contentType: 'text/turtle'\n })\n })\n .then(_result => callbackFunction(true))\n .catch(err => {\n callbackFunction(false, err.message)\n })\n }\n }\n\n // Body of mintNew\n const fetcher = kb.fetcher\n const updater = kb.updater\n\n let me = options.me || UI.authn.currentUser()\n if (!me) {\n console.log('MUST BE LOGGED IN')\n alert('NOT LOGGED IN')\n return\n }\n\n const base = thisInstance.dir().uri\n let newDetailsDoc, newInstance // , newIndexDoc\n\n if (options.useExisting) {\n newInstance = options.useExisting\n newBase = thisInstance.dir().uri\n newDetailsDoc = newInstance.doc()\n // newIndexDoc = null\n if (options.newBase) {\n throw new Error(\n 'mint new scheduler: Illegal - have both new base and existing event'\n )\n }\n } else {\n newDetailsDoc = kb.sym(newBase + 'details.ttl')\n // newIndexDoc = kb.sym(newBase + 'index.html')\n newInstance = kb.sym(newDetailsDoc.uri + '#event')\n }\n\n const newResultsDoc = kb.sym(newBase + 'results.ttl')\n\n const toBeCopied = options.noIndexHTML\n ? {}\n : [{ local: 'index.html', contentType: 'text/html' }]\n\n const agenda = []\n\n // @@ This needs some form of visible progress bar\n for (let f = 0; f < toBeCopied.length; f++) {\n const item = toBeCopied[f]\n const fun = function copyItem (item) {\n agenda.push(function () {\n const newURI = newBase + item.local\n console.log('Copying ' + base + item.local + ' to ' + newURI)\n\n const setThatACL = function () {\n setACL2(newURI, false, function (ok, message) {\n if (!ok) {\n complainIfBad(\n ok,\n 'FAILED to set ACL ' + newURI + ' : ' + message\n )\n console.log('FAILED to set ACL ' + newURI + ' : ' + message)\n } else {\n agenda.shift()() // beware too much nesting\n }\n })\n }\n\n kb.fetcher\n .webCopy(\n base + item.local,\n newBase + item.local,\n item.contentType\n )\n .then(() => UI.authn.checkUser())\n .then(webId => {\n me = webId\n\n setThatACL()\n })\n .catch(err => {\n console.log(\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n complainIfBad(\n false,\n 'FAILED to copy ' + base + item.local + ' : ' + err.message\n )\n })\n })\n }\n fun(item)\n }\n\n agenda.push(function createDetailsFile () {\n kb.add(\n newInstance,\n ns.rdf('type'),\n ns.sched('SchedulableEvent'),\n newDetailsDoc\n )\n if (me) {\n kb.add(newInstance, ns.dc('author'), me, newDetailsDoc) // Who is sending the invitation?\n kb.add(newInstance, ns.foaf('maker'), me, newDetailsDoc) // Uneditable - wh is allowed to edit this?\n }\n\n kb.add(newInstance, ns.dc('created'), new Date(), newDetailsDoc)\n kb.add(newInstance, ns.sched('resultsDocument'), newDetailsDoc)\n\n updater.put(\n newDetailsDoc,\n kb.statementsMatching(undefined, undefined, undefined, newDetailsDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n agenda.shift()()\n } else {\n complainIfBad(\n ok,\n 'FAILED to save new scheduler at: ' +\n newDetailsDoc +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to save new scheduler at: ' +\n newDetailsDoc +\n ' : ' +\n message\n )\n }\n }\n )\n })\n\n agenda.push(function () {\n kb.fetcher\n .webOperation('PUT', newResultsDoc.uri, {\n data: '',\n contentType: 'text/turtle'\n })\n .then(() => {\n agenda.shift()()\n })\n .catch(err => {\n complainIfBad(\n false,\n 'Failed to initialize empty results file: ' + err.message\n )\n })\n })\n\n agenda.push(function () {\n setACL2(newResultsDoc.uri, true, function (ok, body) {\n complainIfBad(\n ok,\n 'Failed to set Read-Write ACL on results file: ' + body\n )\n if (ok) agenda.shift()()\n })\n })\n\n agenda.push(function () {\n setACL2(newDetailsDoc.uri, false, function (ok, body) {\n complainIfBad(\n ok,\n 'Failed to set read ACL on configuration file: ' + body\n )\n if (ok) agenda.shift()()\n })\n })\n\n agenda.push(function () {\n // give the user links to the new app\n console.log('Finished minting new scheduler')\n options.newInstance = newInstance\n resolve(options)\n })\n\n agenda.shift()()\n // Created new data files.\n }) // promise\n }, // mintNew\n\n // Render one meeting schedule poll\n render: function (subject, context) {\n const dom = context.dom\n const kb = context.session.store\n const ns = UI.ns\n const invitation = subject\n const appPathSegment = 'app-when-can-we.w3.org' // how to allocate this string and connect to\n\n // ////////////////////////////////////////////\n\n const fetcher = kb.fetcher\n const updater = kb.updater\n let waitingForLogin = false\n\n const thisInstance = subject\n const detailsDoc = subject.doc()\n const baseDir = detailsDoc.dir()\n const base = baseDir.uri\n\n const resultsDoc = $rdf.sym(base + 'results.ttl')\n // const formsURI = base + 'forms.ttl'\n // We can't in fact host stuff from there because of CORS\n const formsURI =\n 'https://solid.github.io/solid-panes/schedule/formsForSchedule.ttl'\n\n const form1 = kb.sym(formsURI + '#form1')\n const form2 = kb.sym(formsURI + '#form2')\n const form3 = kb.sym(formsURI + '#form3')\n\n const formText = require('./formsForSchedule.js')\n $rdf.parse(formText, kb, formsURI, 'text/turtle') // Load forms directly\n\n const inputStyle =\n 'background-color: #eef; padding: 0.5em; border: .5em solid white; font-size: 100%' // font-size: 120%\n const buttonIconStyle = 'width: 1.8em; height: 1.8em;'\n\n // Utility functions\n\n const complainIfBad = function (ok, message) {\n if (!ok) {\n div.appendChild(UI.widgets.errorMessageBlock(dom, message, 'pink'))\n }\n }\n\n const clearElement = function (ele) {\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild)\n }\n return ele\n }\n\n const refreshCellColor = function (cell, value) {\n const bg = kb.any(value, UI.ns.ui('backgroundColor'))\n if (bg) {\n cell.setAttribute(\n 'style',\n 'padding: 0.3em; text-align: center; background-color: ' + bg + ';'\n )\n }\n }\n\n let me\n\n UI.authn.checkUser().then(webId => {\n me = webId\n\n if (logInOutButton) {\n logInOutButton.refresh()\n }\n if (webId && waitingForLogin) {\n waitingForLogin = false\n showAppropriateDisplay()\n }\n })\n console.log('me: ' + me) // @@ curently not actually used elsewhere\n\n // ////////////////////////////// Reproduction: spawn a new instance\n //\n // Viral growth path: user of app decides to make another instance\n //\n\n const newInstanceButton = function () {\n const b = UI.authn.newAppInstance(\n dom,\n { noun: 'scheduler' },\n initializeNewInstanceInWorkspace\n )\n b.firstChild.setAttribute('style', inputStyle)\n return b\n } // newInstanceButton\n\n // /////////////////////// Create new document files for new instance of app\n\n const initializeNewInstanceInWorkspace = function (ws) {\n let newBase = kb.any(ws, ns.space('uriPrefix'))\n if (!newBase) {\n newBase = ws.uri.split('#')[0]\n } else {\n newBase = newBase.value\n }\n if (newBase.slice(-1) !== '/') {\n $rdf.log.error(appPathSegment + ': No / at end of uriPrefix ' + newBase) // @@ paramater?\n newBase = newBase + '/'\n }\n const now = new Date()\n newBase += appPathSegment + '/id' + now.getTime() + '/' // unique id\n\n initializeNewInstanceAtBase(thisInstance, newBase)\n }\n\n const initializeNewInstanceAtBase = function (thisInstance, newBase) {\n const options = { thisInstance: thisInstance, newBase: newBase }\n this.mintNew(context, options)\n .then(function (options) {\n const p = div.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n \"Your <a href='\" +\n options.newInstance.uri +\n \"'><b>new scheduler</b></a> is ready to be set up. \" +\n \"<br/><br/><a href='\" +\n options.newInstance.uri +\n \"'>Say when you what days work for you.</a>\"\n })\n .catch(function (error) {\n complainIfBad(\n false,\n 'Error createing new scheduler at ' +\n options.newInstance +\n ': ' +\n error\n )\n })\n }\n\n // ///////////////////////\n\n const getForms = function () {\n console.log('getforms()')\n getDetails()\n /*\n fetcher.nowOrWhenFetched(formsURI, undefined, function (ok, body) {\n console.log('getforms() ok? ' + ok)\n if (!ok) return complainIfBad(ok, body)\n getDetails()\n })\n */\n }\n\n const getDetails = function () {\n console.log('getDetails()') // Looking for blank screen hang-up\n fetcher.nowOrWhenFetched(detailsDoc.uri, undefined, function (ok, body) {\n console.log('getDetails() ok? ' + ok)\n if (!ok) return complainIfBad(ok, body)\n showAppropriateDisplay()\n })\n }\n\n const showAppropriateDisplay = function showAppropriateDisplay () {\n console.log('showAppropriateDisplay()')\n\n UI.authn.checkUser().then(webId => {\n if (!webId) {\n return showSignon()\n }\n\n // On gh-pages, the turtle will not load properly (bad mime type)\n // but we can trap it as being a non-editable server.\n\n if (\n !kb.updater.editable(detailsDoc.uri, kb) ||\n kb.holds(subject, ns.rdf('type'), ns.wf('TemplateInstance'))\n ) {\n // This is read-only example e.g. on github pages, etc\n showBootstrap(div)\n return\n }\n\n const ready = kb.any(subject, ns.sched('ready'))\n\n if (!ready) {\n showForms()\n } else {\n // no editing not author\n getResults()\n }\n })\n }\n\n const showSignon = function showSignon () {\n clearElement(naviMain)\n const signonContext = { div: div, dom: dom }\n UI.authn.logIn(signonContext).then(context => {\n me = context.me\n waitingForLogin = false // untested\n showAppropriateDisplay()\n })\n }\n\n const showBootstrap = function showBootstrap () {\n const div = clearElement(naviMain)\n div.appendChild(\n UI.authn.newAppInstance(\n dom,\n { noun: 'poll' },\n initializeNewInstanceInWorkspace\n )\n )\n\n div.appendChild(dom.createElement('hr')) // @@\n\n const p = div.appendChild(dom.createElement('p'))\n p.textContent =\n 'Where would you like to store the data for the poll? ' +\n 'Give the URL of the directory where you would like the data stored.'\n const baseField = div.appendChild(dom.createElement('input'))\n baseField.setAttribute('type', 'text')\n baseField.size = 80 // really a string\n baseField.label = 'base URL'\n baseField.autocomplete = 'on'\n\n div.appendChild(dom.createElement('br')) // @@\n\n const button = div.appendChild(dom.createElement('button'))\n button.setAttribute('style', inputStyle)\n button.textContent = 'Start new poll at this URI'\n button.addEventListener('click', function (_e) {\n let newBase = baseField.value\n if (newBase.slice(-1) !== '/') {\n newBase += '/'\n }\n initializeNewInstanceAtBase(thisInstance, newBase)\n })\n }\n\n // ///////////// The forms to configure the poll\n\n const doneButton = dom.createElement('button')\n\n const showForms = function () {\n clearElement(naviCenter) // Remove refresh button if nec\n const div = naviMain\n const wizard = true\n let currentSlide = 0\n let gotDoneButton = false\n if (wizard) {\n const forms = [form1, form2, form3]\n const slides = []\n currentSlide = 0\n for (let f = 0; f < forms.length; f++) {\n const slide = dom.createElement('div')\n UI.widgets.appendForm(\n document,\n slide,\n {},\n subject,\n forms[f],\n detailsDoc,\n complainIfBad\n )\n slides.push(slide)\n }\n\n const refresh = function () {\n clearElement(naviMain).appendChild(slides[currentSlide])\n\n if (currentSlide === 0) {\n b1.setAttribute('disabled', '')\n } else {\n b1.removeAttribute('disabled')\n }\n if (currentSlide === slides.length - 1) {\n b2.setAttribute('disabled', '')\n if (!gotDoneButton) {\n // Only expose at last slide seen\n naviCenter.appendChild(emailButton) // could also check data shape\n naviCenter.appendChild(doneButton) // could also check data shape\n gotDoneButton = true\n }\n } else {\n b2.removeAttribute('disabled')\n }\n }\n const b1 = clearElement(naviLeft).appendChild(dom.createElement('button'))\n b1.setAttribute('style', inputStyle)\n b1.textContent = '<- go back'\n b1.addEventListener(\n 'click',\n function (_e) {\n if (currentSlide > 0) {\n currentSlide -= 1\n refresh()\n }\n },\n false\n )\n\n const b2 = clearElement(naviRight).appendChild(\n dom.createElement('button')\n )\n b2.setAttribute('style', inputStyle)\n b2.textContent = 'continue ->'\n b2.addEventListener(\n 'click',\n function (_e) {\n if (currentSlide < slides.length - 1) {\n currentSlide += 1\n refresh()\n }\n },\n false\n )\n\n refresh()\n } else {\n // not wizard one big form\n // @@@ create the initial config doc if not exist\n const table = div.appendChild(dom.createElement('table'))\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form1,\n detailsDoc,\n complainIfBad\n )\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form2,\n detailsDoc,\n complainIfBad\n )\n UI.widgets.appendForm(\n document,\n table,\n {},\n subject,\n form3,\n detailsDoc,\n complainIfBad\n )\n naviCenter.appendChild(doneButton) // could also check data shape\n }\n // @@@ link config to results\n\n const insertables = []\n insertables.push(\n $rdf.st(\n subject,\n ns.sched('availabilityOptions'),\n ns.sched('YesNoMaybe'),\n detailsDoc\n )\n )\n insertables.push(\n $rdf.st(subject, ns.sched('ready'), new Date(), detailsDoc)\n )\n insertables.push(\n $rdf.st(subject, ns.sched('results'), resultsDoc, detailsDoc)\n ) // @@ also link in results\n\n doneButton.setAttribute('style', inputStyle)\n doneButton.textContent = 'Go to poll'\n doneButton.addEventListener(\n 'click',\n function (_e) {\n if (kb.any(subject, ns.sched('ready'))) {\n // already done\n getResults()\n naviRight.appendChild(emailButton)\n } else {\n naviRight.appendChild(emailButton)\n kb.updater.update([], insertables, function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n // naviRight.appendChild(emailButton)\n getResults()\n }\n })\n }\n },\n false\n )\n\n const emailButton = dom.createElement('button')\n emailButton.setAttribute('style', inputStyle)\n const emailIcon = emailButton.appendChild(dom.createElement('img'))\n emailIcon.setAttribute('src', UI.icons.iconBase + 'noun_480183.svg') // noun_480183.svg\n emailIcon.setAttribute('style', buttonIconStyle)\n // emailButton.textContent = 'email invitations'\n emailButton.addEventListener(\n 'click',\n function (_e) {\n const title =\n kb.anyValue(subject, ns.cal('summary')) ||\n kb.anyValue(subject, ns.dc('title')) ||\n ''\n const mailto =\n 'mailto:' +\n kb\n .each(subject, ns.sched('invitee'))\n .map(function (who) {\n const mbox = kb.any(who, ns.foaf('mbox'))\n return mbox ? mbox.uri.replace('mailto:', '') : ''\n })\n .join(',') +\n '?subject=' +\n encodeURIComponent(title + '-- When can we meet?') +\n '&body=' +\n encodeURIComponent(\n title + '\\n\\nWhen can you?\\n\\nSee ' + subject + '\\n'\n )\n // @@ assumed there is a data browser\n\n console.log('Mail: ' + mailto)\n window.location.href = mailto\n },\n false\n )\n } // showForms\n\n // Ask for each day, what times .. @@ to be added some time\n /*\n const setTimesOfDay = function () {\n const i, j, x, y, slot, cell, day\n const insertables = []\n const possibleDays = kb.each(invitation, ns.sched('option'))\n .map(function (opt) {return kb.any(opt, ns.cal('dtstart'))})\n const cellLookup = []\n const slots = kb.each(invitation, ns.sched('slot'))\n if (slots.length === 0) {\n for (i = 0; i < 2; i++) {\n slot = UI.widgets.newThing(detailsDoc)\n insertables.push($rdf.st(invitation, ns.sched('slot'), slot))\n insertables.push($rdf.st(slot, ns.rdfs('label'), 'slot ' + (i + 1)))\n for (j = 0; j < possibleDays.length; j++) {\n day - possibleDays[j]\n x = kb.any(slot, ns.rdfs('label'))\n y = kb.any(day, ns.cal('dtstart'))\n cell = UI.widgets.newThing(detailsDoc)\n cellLookup[x.toNT() + y.toNT()] = cell\n insertables.push($rdf.st(slot, ns.sched('cell'), cell))\n insertables.push($rdf.st(cell, ns.sched('day'), possibleDays[j]))\n }\n }\n }\n\n const query = new $rdf.Query('TimesOfDay')\n const v = {}['day', 'label', 'value', 'slot', 'cell'].map(function (x) {\n query.consts.push(v[x] = $rdf.constiable(x)) })\n query.pat.add(invitation, ns.sched('slot'), v.slot)\n query.pat.add(v.slot, ns.rdfs('label'), v.label)\n query.pat.add(v.slot, ns.sched('cell'), v.cell)\n query.pat.add(v.cell, ns.sched('timeOfDay'), v.value)\n query.pat.add(v.cell, ns.sched('day'), v.day)\n\n const options = {}\n options.set_x = kb.each(subject, ns.sched('slot')) // @@@@@ option -> dtstart in future\n options.set_x = options.set_x.map(function (opt) { return kb.any(opt, ns.rdfs('label')) })\n\n options.set_y = kb.each(subject, ns.sched('option')); // @@@@@ option -> dtstart in future\n options.set_y = options.set_y.map(function (opt) { return kb.any(opt, ns.cal('dtstart')) })\n\n const possibleTimes = kb.each(invitation, ns.sched('option'))\n .map(function (opt) { return kb.any(opt, ns.cal('dtstart')) })\n\n const displayTheMatrix = function () {\n const matrix = div.appendChild(UI.matrix.matrixForQuery(\n dom, query, v.time, v.author, v.value, options, function () {}))\n\n matrix.setAttribute('class', 'matrix')\n\n const refreshButton = dom.createElement('button')\n refreshButton.setAttribute('style', inputStyle)\n refreshButton.textContent = 'refresh'\n refreshButton.addEventListener('click', function (e) {\n refreshButton.disabled = true\n UI.store.fetcher.nowOrWhenFetched(subject.doc(), undefined, function (ok, body) {\n if (!ok) {\n console.log('Cant refresh matrix' + body)\n } else {\n matrix.refresh()\n refreshButton.disabled = false\n }\n })\n }, false)\n\n clearElement(naviCenter)\n naviCenter.appendChild(refreshButton)\n }\n\n const dataPointForNT = []\n\n const doc = resultsDoc\n options.set_y = options.set_y.filter(function (z) { return (! z.sameTerm(me)) })\n options.set_y.push(me) // Put me on the end\n\n options.cellFunction = function (cell, x, y, value) {\n // const point = cellLookup[x.toNT() + y.toNT()]\n\n if (y.sameTerm(me)) {\n const callbackFunction = function () { refreshCellColor(cell, value); }; // @@ may need that\n const selectOptions = {}\n const predicate = ns.sched('timeOfDay')\n const cellSubject = dataPointForNT[x.toNT()]\n const selector = UI.widgets.makeSelectForOptions(dom, kb, cellSubject, predicate,\n possibleAvailabilities, selectOptions, resultsDoc, callbackFunction)\n cell.appendChild(selector)\n } else if (value !== null) {\n cell.textContent = UI.utils.label(value)\n }\n\n }\n\n const responses = kb.each(invitation, ns.sched('response'))\n const myResponse = null\n responses.map(function (r) {\n if (kb.holds(r, ns.dc('author'), me)) {\n myResponse = r\n }\n })\n\n const id = UI.widgets.newThing(doc).uri\n if (myResponse === null) {\n myResponse = $rdf.sym(id + '_response')\n insertables.push($rdf.st(invitation, ns.sched('response'), myResponse, doc))\n insertables.push($rdf.st(myResponse, ns.dc('author'), me, doc))\n } else {\n const dps = kb.each(myResponse, ns.sched('cell'))\n dps.map(function (dataPoint) {\n const time = kb.any(dataPoint, ns.cal('dtstart'))\n dataPointForNT[time.toNT()] = dataPoint\n })\n }\n for (let j = 0; j < possibleTimes.length; j++) {\n if (dataPointForNT[possibleTimes[j].toNT()]) continue\n const dataPoint = $rdf.sym(id + '_' + j)\n insertables.push($rdf.st(myResponse, ns.sched('cell'), dataPoint, doc))\n insertables.push($rdf.st(dataPoint, ns.cal('dtstart'), possibleTimes[j], doc)) // @@\n dataPointForNT[possibleTimes[j].toNT()] = dataPoint\n }\n if (insertables.length) {\n UI.store.updater.update([], insertables, function (uri, success, errorBody) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n displayTheMatrix()\n }\n })\n } else { // no insertables\n displayTheMatrix()\n }\n }\n */\n // end setTimesOfDay\n\n // Read or create empty results file\n function getResults () {\n fetcher.nowOrWhenFetched(resultsDoc.uri, (ok, body, response) => {\n if (!ok) {\n if (response.status === 404) {\n // / Check explicitly for 404 error\n console.log('Initializing details file ' + resultsDoc)\n updater.put(resultsDoc, [], 'text/turtle', function (\n uri2,\n ok,\n message\n ) {\n if (ok) {\n clearElement(naviMain)\n showResults()\n } else {\n complainIfBad(\n ok,\n 'FAILED to create results file at: ' +\n resultsDoc.uri +\n ' : ' +\n message\n )\n console.log(\n 'FAILED to craete results file at: ' +\n resultsDoc.uri +\n ' : ' +\n message\n )\n }\n })\n } else {\n // Other error, not 404 -- do not try to overwite the file\n complainIfBad(ok, 'FAILED to read results file: ' + body)\n }\n } else {\n // Happy read\n clearElement(naviMain)\n showResults()\n }\n })\n }\n\n function showResults () {\n // Now the form for responsing to the poll\n //\n\n // div.appendChild(dom.createElement('hr'))\n\n // const invitation = subject\n const title = kb.any(invitation, ns.cal('summary'))\n const comment = kb.any(invitation, ns.cal('comment'))\n const location = kb.any(invitation, ns.cal('location'))\n const div = naviMain\n if (title) div.appendChild(dom.createElement('h3')).textContent = title\n if (location) {\n div.appendChild(dom.createElement('address')).textContent =\n location.value\n }\n if (comment) {\n div.appendChild(dom.createElement('p')).textContent = comment.value\n }\n const author = kb.any(invitation, ns.dc('author'))\n if (author) {\n const authorName = kb.any(author, ns.foaf('name'))\n if (authorName) {\n div.appendChild(dom.createElement('p')).textContent = authorName\n }\n }\n\n const query = new $rdf.Query('Responses')\n const v = {}\n const vs = ['time', 'author', 'value', 'resp', 'cell']\n vs.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n })\n query.pat.add(invitation, ns.sched('response'), v.resp)\n query.pat.add(v.resp, ns.dc('author'), v.author)\n query.pat.add(v.resp, ns.sched('cell'), v.cell)\n query.pat.add(v.cell, ns.sched('availabilty'), v.value)\n query.pat.add(v.cell, ns.cal('dtstart'), v.time)\n\n // Sort by by person @@@\n\n const options = {}\n options.set_x = kb.each(subject, ns.sched('option')) // @@@@@ option -> dtstart in future\n options.set_x = options.set_x.map(function (opt) {\n return kb.any(opt, ns.cal('dtstart'))\n })\n\n options.set_y = kb.each(subject, ns.sched('response'))\n options.set_y = options.set_y.map(function (resp) {\n return kb.any(resp, ns.dc('author'))\n })\n\n const possibleTimes = kb\n .each(invitation, ns.sched('option'))\n .map(function (opt) {\n return kb.any(opt, ns.cal('dtstart'))\n })\n\n const displayTheMatrix = function () {\n const matrix = div.appendChild(\n UI.matrix.matrixForQuery(\n dom,\n query,\n v.time,\n v.author,\n v.value,\n options,\n function () {}\n )\n )\n\n matrix.setAttribute('class', 'matrix')\n\n const refreshButton = dom.createElement('button')\n refreshButton.setAttribute('style', inputStyle)\n // refreshButton.textContent = 'refresh' // noun_479395.svg\n const refreshIcon = dom.createElement('img')\n refreshIcon.setAttribute('src', UI.icons.iconBase + 'noun_479395.svg')\n refreshIcon.setAttribute('style', buttonIconStyle)\n refreshButton.appendChild(refreshIcon)\n refreshButton.addEventListener(\n 'click',\n function (_e) {\n refreshButton.disabled = true\n kb.fetcher.refresh(resultsDoc, function (ok, body) {\n if (!ok) {\n console.log('Cant refresh matrix' + body)\n } else {\n matrix.refresh()\n refreshButton.disabled = false\n }\n })\n },\n false\n )\n\n clearElement(naviCenter)\n naviCenter.appendChild(refreshButton)\n }\n\n // @@ Give other combos too-- see schedule ontology\n // const possibleAvailabilities = [ SCHED('No'), SCHED('Maybe'), SCHED('Yes') ]\n\n // const me = UI.authn.currentUser()\n\n const dataPointForNT = []\n\n const loginContext = { div: naviCenter, dom: dom }\n UI.authn.logIn(loginContext).then(context => {\n const me = context.me\n const doc = resultsDoc\n options.set_y = options.set_y.filter(function (z) {\n return !z.sameTerm(me)\n })\n options.set_y.push(me) // Put me on the end\n\n options.cellFunction = function (cell, x, y, value) {\n if (value !== null) {\n kb.fetcher.nowOrWhenFetched(\n value.uri.split('#')[0],\n undefined,\n function (ok, _error) {\n if (ok) refreshCellColor(cell, value)\n }\n )\n }\n if (y.sameTerm(me)) {\n const callbackFunction = function () {\n refreshCellColor(cell, value)\n } // @@ may need that\n const selectOptions = {}\n const predicate = ns.sched('availabilty')\n const cellSubject = dataPointForNT[x.toNT()]\n const selector = UI.widgets.makeSelectForOptions(\n dom,\n kb,\n cellSubject,\n predicate,\n possibleAvailabilities,\n selectOptions,\n resultsDoc,\n callbackFunction\n )\n cell.appendChild(selector)\n } else if (value !== null) {\n cell.textContent = UI.utils.label(value)\n }\n }\n\n const responses = kb.each(invitation, ns.sched('response'))\n let myResponse = null\n responses.forEach(function (r) {\n if (kb.holds(r, ns.dc('author'), me)) {\n myResponse = r\n }\n })\n\n const insertables = [] // list of statements to be stored\n\n const id = UI.widgets.newThing(doc).uri\n if (myResponse === null) {\n myResponse = $rdf.sym(id + '_response')\n insertables.push(\n $rdf.st(invitation, ns.sched('response'), myResponse, doc)\n )\n insertables.push($rdf.st(myResponse, ns.dc('author'), me, doc))\n } else {\n const dps = kb.each(myResponse, ns.sched('cell'))\n dps.forEach(function (dataPoint) {\n const time = kb.any(dataPoint, ns.cal('dtstart'))\n dataPointForNT[time.toNT()] = dataPoint\n })\n }\n for (let j = 0; j < possibleTimes.length; j++) {\n if (dataPointForNT[possibleTimes[j].toNT()]) continue\n const dataPoint = $rdf.sym(id + '_' + j)\n insertables.push(\n $rdf.st(myResponse, ns.sched('cell'), dataPoint, doc)\n )\n insertables.push(\n $rdf.st(dataPoint, ns.cal('dtstart'), possibleTimes[j], doc)\n ) // @@\n dataPointForNT[possibleTimes[j].toNT()] = dataPoint\n }\n if (insertables.length) {\n kb.updater.update([], insertables, function (\n uri,\n success,\n errorBody\n ) {\n if (!success) {\n complainIfBad(success, errorBody)\n } else {\n displayTheMatrix()\n }\n })\n } else {\n // no insertables\n displayTheMatrix()\n }\n })\n\n // If I made this in the first place, allow me to edit it.\n // @@ optionally -- allows others to if according to original\n const instanceCreator = kb.any(subject, ns.foaf('maker')) // owner?\n if (!instanceCreator || instanceCreator.sameTerm(me)) {\n const editButton = dom.createElement('button')\n editButton.setAttribute('style', inputStyle)\n // editButton.textContent = '(Modify the poll)' // noun_344563.svg\n const editIcon = dom.createElement('img')\n editIcon.setAttribute('src', UI.icons.iconBase + 'noun_344563.svg')\n editIcon.setAttribute('style', buttonIconStyle)\n editButton.appendChild(editIcon)\n editButton.addEventListener(\n 'click',\n function (_e) {\n clearElement(div)\n showForms()\n },\n false\n )\n clearElement(naviLeft)\n naviLeft.appendChild(editButton)\n }\n\n // div.appendChild(editButton)\n\n clearElement(naviRight)\n naviRight.appendChild(newInstanceButton())\n } // showResults\n\n const div = dom.createElement('div')\n const structure = div.appendChild(dom.createElement('table')) // @@ make responsive style\n structure.setAttribute(\n 'style',\n 'background-color: white; min-width: 40em; min-height: 13em;'\n )\n\n const naviLoginoutTR = structure.appendChild(dom.createElement('tr'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n naviLoginoutTR.appendChild(dom.createElement('td'))\n\n const logInOutButton = null\n /*\n const logInOutButton = UI.authn.loginStatusBox(dom, setUser)\n // floating divs lead to a mess\n // logInOutButton.setAttribute('style', 'float: right') // float the beginning of the end\n naviLoginout3.appendChild(logInOutButton)\n logInOutButton.setAttribute('style', 'margin-right: 0em;')\n */\n\n const naviTop = structure.appendChild(dom.createElement('tr'))\n const naviMain = naviTop.appendChild(dom.createElement('td'))\n naviMain.setAttribute('colspan', '3')\n\n const naviMenu = structure.appendChild(dom.createElement('tr'))\n naviMenu.setAttribute('class', 'naviMenu')\n naviMenu.setAttribute(\n 'style',\n ' text-align: middle; vertical-align: middle; padding-top: 4em; '\n )\n // naviMenu.setAttribute('style', 'margin-top: 3em;')\n const naviLeft = naviMenu.appendChild(dom.createElement('td'))\n const naviCenter = naviMenu.appendChild(dom.createElement('td'))\n const naviRight = naviMenu.appendChild(dom.createElement('td'))\n\n getForms()\n\n return div\n } // render\n} // property list\n// ends\n"],"file":"schedulePane.js"}
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getStatementsToDelete = getStatementsToDelete;
7
- exports.getStatementsToAdd = getStatementsToAdd;
8
6
  exports.generateRandomString = generateRandomString;
7
+ exports.getStatementsToAdd = getStatementsToAdd;
8
+ exports.getStatementsToDelete = getStatementsToDelete;
9
9
 
10
10
  var _rdflib = require("rdflib");
11
11
 
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
  var _default = {
8
- buildTime: '2021-10-08T21:31:25Z',
9
- commit: 'ad50a64d65c457bd962c5761f2d93d84d0741758',
8
+ buildTime: '2021-10-09T09:28:13Z',
9
+ commit: 'b0efd3a68ddc241e87eebeb37a86ed03e4d9d912',
10
10
  npmInfo: {
11
- 'solid-panes': '3.5.6-beta.0',
11
+ 'solid-panes': '3.5.6-beta.1',
12
12
  npm: '6.14.13',
13
13
  ares: '1.17.1',
14
14
  brotli: '1.0.9',
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/versionInfo.ts"],"names":["buildTime","commit","npmInfo","npm","ares","brotli","cldr","icu","llhttp","modules","napi","nghttp2","node","openssl","tz","unicode","uv","v8","zlib"],"mappings":";;;;;;eAAe;AACbA,EAAAA,SAAS,EAAE,sBADE;AAEbC,EAAAA,MAAM,EAAE,0CAFK;AAGbC,EAAAA,OAAO,EACT;AACE,mBAAe,cADjB;AAEEC,IAAAA,GAAG,EAAE,SAFP;AAGEC,IAAAA,IAAI,EAAE,QAHR;AAIEC,IAAAA,MAAM,EAAE,OAJV;AAKEC,IAAAA,IAAI,EAAE,MALR;AAMEC,IAAAA,GAAG,EAAE,MANP;AAOEC,IAAAA,MAAM,EAAE,OAPV;AAQEC,IAAAA,OAAO,EAAE,IARX;AASEC,IAAAA,IAAI,EAAE,GATR;AAUEC,IAAAA,OAAO,EAAE,QAVX;AAWEC,IAAAA,IAAI,EAAE,SAXR;AAYEC,IAAAA,OAAO,EAAE,QAZX;AAaEC,IAAAA,EAAE,EAAE,OAbN;AAcEC,IAAAA,OAAO,EAAE,MAdX;AAeEC,IAAAA,EAAE,EAAE,QAfN;AAgBEC,IAAAA,EAAE,EAAE,oBAhBN;AAiBEC,IAAAA,IAAI,EAAE;AAjBR;AAJe,C","sourcesContent":["export default {\n buildTime: '2021-10-08T21:31:25Z',\n commit: 'ad50a64d65c457bd962c5761f2d93d84d0741758',\n npmInfo:\n{\n 'solid-panes': '3.5.6-beta.0',\n npm: '6.14.13',\n ares: '1.17.1',\n brotli: '1.0.9',\n cldr: '39.0',\n icu: '69.1',\n llhttp: '2.1.3',\n modules: '83',\n napi: '8',\n nghttp2: '1.42.0',\n node: '14.17.3',\n openssl: '1.1.1k',\n tz: '2021a',\n unicode: '13.0',\n uv: '1.41.0',\n v8: '8.4.371.23-node.67',\n zlib: '1.2.11'\n}\n}\n"],"file":"versionInfo.js"}
1
+ {"version":3,"sources":["../src/versionInfo.ts"],"names":["buildTime","commit","npmInfo","npm","ares","brotli","cldr","icu","llhttp","modules","napi","nghttp2","node","openssl","tz","unicode","uv","v8","zlib"],"mappings":";;;;;;eAAe;AACbA,EAAAA,SAAS,EAAE,sBADE;AAEbC,EAAAA,MAAM,EAAE,0CAFK;AAGbC,EAAAA,OAAO,EACT;AACE,mBAAe,cADjB;AAEEC,IAAAA,GAAG,EAAE,SAFP;AAGEC,IAAAA,IAAI,EAAE,QAHR;AAIEC,IAAAA,MAAM,EAAE,OAJV;AAKEC,IAAAA,IAAI,EAAE,MALR;AAMEC,IAAAA,GAAG,EAAE,MANP;AAOEC,IAAAA,MAAM,EAAE,OAPV;AAQEC,IAAAA,OAAO,EAAE,IARX;AASEC,IAAAA,IAAI,EAAE,GATR;AAUEC,IAAAA,OAAO,EAAE,QAVX;AAWEC,IAAAA,IAAI,EAAE,SAXR;AAYEC,IAAAA,OAAO,EAAE,QAZX;AAaEC,IAAAA,EAAE,EAAE,OAbN;AAcEC,IAAAA,OAAO,EAAE,MAdX;AAeEC,IAAAA,EAAE,EAAE,QAfN;AAgBEC,IAAAA,EAAE,EAAE,oBAhBN;AAiBEC,IAAAA,IAAI,EAAE;AAjBR;AAJe,C","sourcesContent":["export default {\n buildTime: '2021-10-09T09:28:13Z',\n commit: 'b0efd3a68ddc241e87eebeb37a86ed03e4d9d912',\n npmInfo:\n{\n 'solid-panes': '3.5.6-beta.1',\n npm: '6.14.13',\n ares: '1.17.1',\n brotli: '1.0.9',\n cldr: '39.0',\n icu: '69.1',\n llhttp: '2.1.3',\n modules: '83',\n napi: '8',\n nghttp2: '1.42.0',\n node: '14.17.3',\n openssl: '1.1.1k',\n tz: '2021a',\n unicode: '13.0',\n uv: '1.41.0',\n v8: '8.4.371.23-node.67',\n zlib: '1.2.11'\n}\n}\n"],"file":"versionInfo.js"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "solid-panes",
3
- "version": "3.5.6-beta.0",
3
+ "version": "3.5.6-beta.1",
4
4
  "description": "Solid-compatible Panes: applets and views for the mashlib and databrowser",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "npm run clean && npm run build-version && npm run build-lib && npm run build-types",
9
- "build-lib": "babel src -d lib --source-maps --extensions '.ts,.js'",
9
+ "build-form": "(cd src/schedule/ && make)",
10
+ "build-lib": "npm run build-form && babel src -d lib --source-maps --extensions '.ts,.js'",
10
11
  "build-dev": "webpack --progress --colors --mode=development",
11
12
  "build-types": "tsc --emitDeclarationOnly",
12
13
  "build-version": "./timestamp.sh > src/versionInfo.ts && eslint 'src/versionInfo.ts' --fix",
@@ -1,36 +1,40 @@
1
1
  module.exports = `
2
2
  @prefix dc: <http://purl.org/dc/elements/1.1/>.
3
3
  @prefix foaf: <http://xmlns.com/foaf/0.1/>.
4
- @prefix ical: <http://www.w3.org/2002/12/cal/ical#>.
4
+ @prefix cal: <http://www.w3.org/2002/12/cal/ical#>.
5
5
  @prefix ui: <http://www.w3.org/ns/ui#>.
6
6
  @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
7
7
  @prefix sched: <http://www.w3.org/ns/pim/schedule#>.
8
8
 
9
- ical:Vevent ui:annotationForm <#form2>, <#form3>; ui:creationForm <#form1> .
9
+ cal:Vevent ui:annotationForm <#form2>, <#form3>; ui:creationForm <#form1> .
10
10
 
11
11
  <#bigForm>
12
12
  dc:title
13
13
  "Schedule event (single form).";
14
14
  a ui:Group;
15
- ui:part
16
- <#form1>, <#form2>, <#form3>.
15
+ ui:parts ( <#form1> <#form2> <#form3> ).
17
16
 
18
17
  <#form1>
19
18
  dc:title
20
19
  "Schedule an event (wizard)";
21
20
  a ui:Form;
22
- ui:part
23
- <#form1header>,
24
- <#eventTitle>,
25
- <#eventLocation>,
26
- <#eventComment>,
27
- <#eventAuthor>.
21
+ ui:parts (
22
+ <#form1header>
23
+ <#eventTitle>
24
+ <#eventLocation>
25
+ <#eventType>
26
+ <#eventSwitch>
27
+ <#eventComment>
28
+ <#eventAuthor> ).
29
+
30
+ <#form1header> a ui:Heading; ui:contents "Schedule an event" .
31
+
28
32
  <#eventTitle>
29
33
  a ui:SingleLineTextField;
30
34
  ui:maxLength
31
35
  "128";
32
36
  ui:property
33
- ical:summary;
37
+ cal:summary;
34
38
  ui:size
35
39
  "40".
36
40
 
@@ -39,10 +43,31 @@ module.exports = `
39
43
  ui:maxLength
40
44
  "512";
41
45
  ui:property
42
- ical:location;
46
+ cal:location;
43
47
  ui:size
44
48
  "40".
45
49
 
50
+ <#eventType> a ui:BooleanField;
51
+ ui:property sched:allDay;
52
+ ui:default true . # Used to be the only way
53
+
54
+ <#eventSwitch> a ui:Options;
55
+ ui:dependingOn sched:allDay;
56
+ ui:case [ ui:for true; ui:use <#AllDayForm> ];
57
+ ui:case [ ui:for false; ui:use <#NotAllDayForm> ].
58
+
59
+ <#AllDayForm> a ui:IntegerField ;
60
+ ui:property sched:durationInDays;
61
+ ui:label "How many days?";
62
+ ui:min 1;
63
+ ui:default 1 .
64
+
65
+ <#NotAllDayForm> a ui:IntegerField ;
66
+ ui:property sched:durationInMinutes;
67
+ ui:label "Duration (mins)";
68
+ ui:min 5;
69
+ ui:default 55 .
70
+
46
71
  <#eventComment>
47
72
  a ui:MultiLineTextField;
48
73
  # ui:maxLength
@@ -50,34 +75,43 @@ module.exports = `
50
75
  # ui:size
51
76
  # "40".
52
77
  ui:property
53
- ical:comment.
78
+ cal:comment.
54
79
 
55
80
  <#eventAuthor>
56
81
  a ui:Multiple; ui:min 1; ui:part <#eventAuthorGroup>; ui:property dc:author.
57
82
 
58
- <#eventAuthorGroup> a ui:Group; ui:part <#authorName>, <#authorEmail> .
83
+ <#eventAuthorGroup> a ui:Group; ui:parts ( <#authorName> <#authorEmail> ) .
59
84
  <#authorName> a ui:SingleLineTextField; ui:property foaf:name .
60
85
  <#authorEmail> a ui:EmailField; ui:label "email"; ui:property foaf:mbox .
61
86
 
62
87
 
63
88
  #####################
64
89
 
65
- <#form2> dc:title "Select possible days"; a ui:Form;
66
- ui:part <#id1118132113134>, <#id1417314641301> .
90
+ <#form2> dc:title "Select possible days or times"; a ui:Form;
91
+ ui:parts ( <#id1118132113134> <#possibleSwitch> ).
67
92
 
68
93
  <#id1118132113134> a ui:Heading; ui:contents "Time proposals" .
69
94
 
70
- <#id1417314641301>
71
- a ui:Multiple; ui:min 2; ui:part <#id1417314674292>; ui:property sched:option.
95
+ <#possibleSwitch> a ui:Options;
96
+ ui:dependingOn sched:allDay;
97
+ ui:case [ ui:for true; ui:use <#AllDayForm2> ];
98
+ ui:case [ ui:for false; ui:use <#NotAllDayForm2> ].
72
99
 
73
- <#id1417314674292> a ui:DateField; ui:property ical:dtstart; ui:label "Date".
100
+ <#AllDayForm2>
101
+ a ui:Multiple; ui:min 2; ui:part <#posssibleDate>; ui:property sched:option.
102
+ <#posssibleDate> a ui:DateField; ui:property cal:dtstart; ui:label "date".
103
+
104
+ <#NotAllDayForm2>
105
+ a ui:Multiple; ui:min 2; ui:part <#posssibleTime>; ui:property sched:option.
106
+ <#posssibleTime> a ui:DateTimeField; ui:property cal:dtstart; ui:label "date and time".
74
107
 
75
108
  ##################################
76
109
 
77
- <#form3> dc:title "Select invited people"; a ui:Form; ui:part <#id1118132113135>, <#id1417314641301b> .
110
+ <#form3> dc:title "Select invited people"; a ui:Form; ui:parts ( <#id1118132113135> <#id1417314641301b> ) .
78
111
  <#id1417314641301b>
79
112
  a ui:Multiple; ui:min 1; ui:part <#id1417314674292b>; ui:property sched:invitee.
80
113
  <#id1417314674292b> a ui:EmailField; ui:label "email"; ui:property foaf:mbox .
81
- <#form1header> a ui:Heading; ui:contents "Schedule an event" .
82
114
  <#id1118132113135> a ui:Heading; ui:contents "Who to invite" .
115
+
116
+ # ENDS
83
117
  `
@@ -22,8 +22,12 @@
22
22
  <#eventTitle>
23
23
  <#eventLocation>
24
24
  <#eventType>
25
+ <#eventSwitch>
25
26
  <#eventComment>
26
27
  <#eventAuthor> ).
28
+
29
+ <#form1header> a ui:Heading; ui:contents "Schedule an event" .
30
+
27
31
  <#eventTitle>
28
32
  a ui:SingleLineTextField;
29
33
  ui:maxLength
@@ -48,16 +52,18 @@
48
52
 
49
53
  <#eventSwitch> a ui:Options;
50
54
  ui:dependingOn sched:allDay;
51
- ui:case [ ui:for false; ui:use <#AllDayForm> ];
52
- ui:case [ ui:for true; ui:use <#NotAllDayForm> ].
55
+ ui:case [ ui:for true; ui:use <#AllDayForm> ];
56
+ ui:case [ ui:for false; ui:use <#NotAllDayForm> ].
53
57
 
54
- <#AllDayForm> a ui:IntegerForm;
58
+ <#AllDayForm> a ui:IntegerField ;
55
59
  ui:property sched:durationInDays;
60
+ ui:label "How many days?";
56
61
  ui:min 1;
57
62
  ui:default 1 .
58
63
 
59
- <#NotllDayForm> a ui:IntegerForm;
64
+ <#NotAllDayForm> a ui:IntegerField ;
60
65
  ui:property sched:durationInMinutes;
66
+ ui:label "Duration (mins)";
61
67
  ui:min 5;
62
68
  ui:default 55 .
63
69
 
@@ -87,8 +93,8 @@
87
93
 
88
94
  <#possibleSwitch> a ui:Options;
89
95
  ui:dependingOn sched:allDay;
90
- ui:case [ ui:for false; ui:use <#AllDayForm2> ];
91
- ui:case [ ui:for true; ui:use <#NotAllDayForm2> ].
96
+ ui:case [ ui:for true; ui:use <#AllDayForm2> ];
97
+ ui:case [ ui:for false; ui:use <#NotAllDayForm2> ].
92
98
 
93
99
  <#AllDayForm2>
94
100
  a ui:Multiple; ui:min 2; ui:part <#posssibleDate>; ui:property sched:option.
@@ -104,7 +110,6 @@
104
110
  <#id1417314641301b>
105
111
  a ui:Multiple; ui:min 1; ui:part <#id1417314674292b>; ui:property sched:invitee.
106
112
  <#id1417314674292b> a ui:EmailField; ui:label "email"; ui:property foaf:mbox .
107
- <#form1header> a ui:Heading; ui:contents "Schedule an event" .
108
113
  <#id1118132113135> a ui:Heading; ui:contents "Who to invite" .
109
114
 
110
115
  # ENDS
@@ -879,7 +879,7 @@ module.exports = {
879
879
  // end setTimesOfDay
880
880
 
881
881
  // Read or create empty results file
882
- const getResults = function () {
882
+ function getResults () {
883
883
  fetcher.nowOrWhenFetched(resultsDoc.uri, (ok, body, response) => {
884
884
  if (!ok) {
885
885
  if (response.status === 404) {
@@ -921,7 +921,7 @@ module.exports = {
921
921
  })
922
922
  }
923
923
 
924
- const showResults = function () {
924
+ function showResults () {
925
925
  // Now the form for responsing to the poll
926
926
  //
927
927
 
@@ -952,7 +952,7 @@ module.exports = {
952
952
  const v = {}
953
953
  const vs = ['time', 'author', 'value', 'resp', 'cell']
954
954
  vs.forEach(function (x) {
955
- query.vars.push((v[x] = $rdf.constiable(x)))
955
+ query.vars.push((v[x] = $rdf.variable(x)))
956
956
  })
957
957
  query.pat.add(invitation, ns.sched('response'), v.resp)
958
958
  query.pat.add(v.resp, ns.dc('author'), v.author)
@@ -1,9 +1,9 @@
1
1
  export default {
2
- buildTime: '2021-10-08T21:31:25Z',
3
- commit: 'ad50a64d65c457bd962c5761f2d93d84d0741758',
2
+ buildTime: '2021-10-09T09:28:13Z',
3
+ commit: 'b0efd3a68ddc241e87eebeb37a86ed03e4d9d912',
4
4
  npmInfo:
5
5
  {
6
- 'solid-panes': '3.5.6-beta.0',
6
+ 'solid-panes': '3.5.6-beta.1',
7
7
  npm: '6.14.13',
8
8
  ares: '1.17.1',
9
9
  brotli: '1.0.9',