meeting-pane 2.3.10-49104a66 → 2.3.11-4f4f0df7
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"meetingDetailsForm.js","names":["module","exports"],"sources":["../src/meetingDetailsForm.js"],"sourcesContent":["module.exports = `@prefix : <http://www.w3.org/ns/ui#> .\n@prefix f: <#> .\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix cal: <http://www.w3.org/2002/12/cal/ical#>.\n@prefix meeting: <http://www.w3.org/ns/pim/meeting#>.\n@prefix ns: <http://www.w3.org/2006/vcard/ns#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix te: <http://purl.org/dc/terms/> .\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n\n f:main a :Form;\n cal:summary \"Meeting Details\";\n :part f:titleField, f:locationField, f:startField,\n f:endField, f:eventComment, f:colorField .\n\n f:titleField a :SingleLineTextField;\n :maxLength 256;\n :property cal:summary;\n :label \"Name of meeting\";\n :size 80 .\n\n f:locationField a :SingleLineTextField;\n :maxLength 128;\n :property cal:location;\n :size 40 .\n\n f:startField a :DateField;\n :label \"Start\";\n :property cal:dtstart .\n\n f:endField a :DateField;\n :label \"End\";\n :property cal:dtend .\n\n f:colorField a :ColorField;\n :label \"Tab color\";\n # :default \"#ddddcc\"^^xsd:color;\n :property ui:backgroundColor .\n\n f:eventComment\n a ui:MultiLineTextField;\n # ui:maxLength\n # \"1048\";\n # ui:size\n # \"40\".\n ui:property\n cal:comment.\n\n###################################################\n\nf:settings a :Form;\n dc:title \"Tab settings\";\n :part f:labelField, f:targetField, f:viewField.\n\n f:labelField a :SingleLineTextField;\n :maxLength 128;\n :property rdfs:label;\n :label \"Label on tab\";\n :size 40 .\n\n f:targetField a :NamedNodeURIField;\n :maxLength 1024; # Longer?\n :property meeting:target;\n :label \"URL of resource\";\n :size 80 .\n\n f:colorField2 a :ColorField;\n :label \"Tab color\";\n # :default \"#ddddcc\"^^xsd:color;\n :property ui:backgroundColor .\n\n f:viewField a :SingleLineTextField;\n :maxLength 128;\n :property meeting:view;\n :label \"View mode (experts only)\";\n :size 40 .\n\n#\n`\n"],"mappings":";;AAAAA,MAAM,CAACC,OAAP"}
|
package/lib/meetingPane.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/meetingPane.js"],"names":["logic","require","VideoRoomPrefix","UI","ns","$rdf","meetingDetailsFormText","module","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","holds","rdf","meeting","mintClass","mintNew","options","Promise","resolve","reject","newInstance","sym","newBase","meetingDoc","doc","me","authn","currentUser","add","dc","Date","ui","Literal","undefined","xsd","toolList","Collection","elements","push","updater","put","statementsMatching","uri2","ok","message","Error","render","dataBrowserContext","dom","thisPane","complain","color","console","log","pre","createElement","setAttribute","div","appendChild","createTextNode","complainIfBad","meetingBase","dir","uri","table","style","topTR","mainTR","toolBar0","toolBar1","toolBar","saveBackMeetingDoc","tabs","refresh","resetTools","saveAppDocumentLinkAndAddNewThing","tool","thing","pred","appDoc","makeToolNode","target","iconURI","x","widgets","newThing","rdfs","the","googleMapsSpecial","page","initialPrefix","finalPrefix","myPersonalApiKEY","match","startsWith","map","replace","handleDroppedThing","addIframeTool","wf","utils","addLink","toolObject","limit","shareTab","newPaneOptions","pane","paneRegistry","byName","predicate","tabTitle","view","noIndexHTML","makeNewPaneTool","addParticipant","pref","any","foaf","obj","group","addPersonToGroup","ins","st","vcard","fetcher","nowOrWhenFetched","_body","update","body","makeParticipantsGroup","then","putBack","contentType","_xhr","err","u","indexOf","mess","addAttachmentTab","types","findTypeURIs","ty","hh","getHeader","ok2","j","length","droppedURIHandler","uris","all","_a","droppedFileHandler","files","uploadFiles","theFile","_destURI","type","makePicturesFolder","makeMaterialsFolder","makeGroup","_toolObject","makePoll","useExisting","folderName","_folderName","instanceClass","instanceName","makePad","makeMeeting","askName","parameterCell","URIsegment","encodeURIComponent","e","existing","makeAgenda","makeActions","stateStore","anyValue","cal","makeChat","messageStore","makeVideoCall","genUuid","makeAttachment","makeSharing","makeNewMeeting","appDetails","noun","gotWS","ws","base","removeChild","mintUI","p","innerHTML","errorMessageBlock","login","selectWorkspace","toolIcons","maker","hint","disabled","settingsForm","parse","iconStyle","iconCell","star","visible","selectNewTool","_event","styleTheIcons","loginOutButton","checkUser","webId","addEventListener","loginStatusBox","webIdUri","iconArray","i","foo","selectTool","renderTab","item","value","s","textContent","tr","left","right","img","tipDiv","text","d","renderTabSettings","containerDiv","form","appendForm","document","delButton","deleteButtonWithCheck","sameTerm","splice","ds","concat","remove","renderMain","selectedGroup","showIframe","iframe","padding","renderPeoplePicker","groupPickedCb","toIns","loadTypeIndexes","defaultNewGroupName","picker","PeoplePicker","index","renderDetails","statusArea","registrationControl","_context","pad","manageParticipation","imageStyle","detailsBottom","spawn","forka","fork","width","getOutliner","GotoSubject","ordered","orientation","backgroundColor","tabWidget","aclControl","preventBrowserDropEvents","makeDropTarget","tabContainer"],"mappings":"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","sourcesContent":["/* Meeting materials and tools Pane\n **\n ** Putting together some of the tools we have to manage a Meeting\n */\n\n// const VideoRoomPrefix = 'https://appear.in/'\nconst logic = require('solid-logic')\nconst VideoRoomPrefix = 'https://meet.jit.si/'\n\nconst UI = require('solid-ui')\nconst ns = UI.ns\nconst $rdf = require('rdflib')\n\nconst meetingDetailsFormText = require('./meetingDetailsForm.js')\n\nmodule.exports = {\n icon: UI.icons.iconBase + 'noun_66617.svg',\n\n name: 'meeting',\n\n audience: [ns.solid('PowerUser')],\n\n label: function (subject, context) {\n var kb = context.session.store\n var ns = UI.ns\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('Meeting'))) {\n return 'Meeting'\n }\n return null // Suppress pane otherwise\n },\n\n // Create a new Meeting thing\n //\n // returns: A promise of a meeting object\n //\n\n mintClass: UI.ns.meeting('Meeting'),\n\n mintNew: function (context, options) {\n return new Promise(function (resolve, reject) {\n var kb = context.session.store\n var ns = UI.ns\n options.newInstance =\n options.newInstance || kb.sym(options.newBase + 'index.ttl#this')\n var meeting = options.newInstance\n var meetingDoc = meeting.doc()\n\n var me = logic.authn.currentUser()\n\n if (me) {\n kb.add(meeting, ns.dc('author'), me, meetingDoc)\n }\n\n kb.add(meeting, ns.rdf('type'), ns.meeting('Meeting'), meetingDoc)\n kb.add(meeting, ns.dc('created'), new Date(), meetingDoc)\n kb.add(\n meeting,\n ns.ui('backgroundColor'),\n new $rdf.Literal('#ddddcc', undefined, ns.xsd('color')),\n meetingDoc\n )\n var toolList = new $rdf.Collection()\n kb.add(meeting, ns.meeting('toolList'), toolList, meetingDoc)\n\n toolList.elements.push(meeting) // Add the meeting itself - see renderMain()\n\n kb.updater.put(\n meetingDoc,\n kb.statementsMatching(undefined, undefined, undefined, meetingDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n resolve(options)\n } else {\n reject(new Error('Error writing meeting configuration: ' + message))\n }\n }\n )\n })\n },\n\n // Returns a div\n\n render: function (subject, dataBrowserContext) {\n const dom = dataBrowserContext.dom\n var kb = dataBrowserContext.session.store\n var ns = UI.ns\n var updater = kb.updater\n var thisPane = this\n\n var complain = function complain (message, color) {\n console.log(message)\n var pre = dom.createElement('pre')\n pre.setAttribute('style', 'background-color: ' + color || '#eed' + ';')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n\n var complainIfBad = function (ok, message) {\n if (!ok) complain(message)\n }\n\n var meeting = subject\n var meetingDoc = subject.doc()\n var meetingBase = subject.dir().uri\n var div = dom.createElement('div')\n var table = div.appendChild(dom.createElement('table'))\n table.style = 'width: 100%; height: 100%; margin:0;'\n var topTR = table.appendChild(dom.createElement('tr'))\n topTR.appendChild(dom.createElement('div')) // topDiv\n var mainTR = table.appendChild(dom.createElement('tr'))\n\n var toolBar0 = table.appendChild(dom.createElement('td'))\n var toolBar1 = toolBar0.appendChild(dom.createElement('table'))\n var toolBar = toolBar1.appendChild(dom.createElement('tr'))\n\n topTR.setAttribute('style', 'height: 2em;') // spacer if notthing else\n\n var me = null // @@ Put code to find out logged in person\n\n var saveBackMeetingDoc = function () {\n updater.put(\n meetingDoc,\n kb.statementsMatching(undefined, undefined, undefined, meetingDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n tabs.refresh()\n resetTools()\n } else {\n message =\n 'FAILED to save new thing at: ' + meetingDoc + ' : ' + message\n complain(message)\n }\n }\n )\n }\n\n var saveAppDocumentLinkAndAddNewThing = function (tool, thing, pred) {\n var appDoc = thing.doc()\n if (pred) {\n kb.add(meeting, pred, thing, appDoc) // Specific Link back to meeting\n }\n kb.add(thing, ns.meeting('parentMeeting'), meeting, appDoc) // Generic link back to meeting\n updater.put(\n appDoc,\n kb.statementsMatching(undefined, undefined, undefined, appDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n saveBackMeetingDoc()\n } else {\n complain('FAILED to save new tool at: ' + thing + ' : ' + message)\n }\n }\n )\n }\n\n var makeToolNode = function (target, pred, label, iconURI) {\n if (pred) {\n kb.add(meeting, pred, target, meetingDoc)\n }\n var x = UI.widgets.newThing(meetingDoc)\n if (label) kb.add(x, ns.rdfs('label'), label, meetingDoc)\n if (iconURI) kb.add(x, ns.meeting('icon'), kb.sym(iconURI), meetingDoc)\n kb.add(x, ns.rdf('type'), ns.meeting('Tool'), meetingDoc)\n kb.add(x, ns.meeting('target'), target, meetingDoc)\n var toolList = kb.the(meeting, ns.meeting('toolList'))\n toolList.elements.push(x)\n return x\n }\n\n // Map from end-user non-iframeable Google maps URI to G Maps API\n // Input: like https://www.google.co.uk/maps/place/Mastercard/@53.2717971,-6.2042699,17z/...\n // Output:\n function googleMapsSpecial (page) {\n const initialPrefix = /https:\\/\\/www\\.google\\..*\\/maps\\//\n const finalPrefix = 'https://www.google.com/maps/embed/v1/'\n const myPersonalApiKEY = 'AIzaSyB8aaT6bY9tcLCmc2oPCkdUYLmTOWM8R54' // Get your own key!\n // GET YOUR KEY AT https://developers.google.com/maps/documentation/javascript/\n const uri = page.uri\n if (!uri.match(initialPrefix)) return page\n if (uri.startsWith(finalPrefix)) return page // Already done\n const map =\n uri.replace(initialPrefix, finalPrefix) + '&key=' + myPersonalApiKEY\n console.log('Converted Google Map URI! ' + map)\n return $rdf.sym(map)\n }\n\n // //////////////////// DRAG and Drop\n\n var handleDroppedThing = function (target) {\n // @@ idea: look\n return new Promise(function (resolve) {\n // Add a meeting tab for a web resource. Alas many resource canot be framed\n // as they block framing, or are insecure.\n var addIframeTool = function (target) {\n var tool = makeToolNode(\n target,\n UI.ns.wf('attachment'),\n UI.utils.label(target),\n null\n )\n kb.add(tool, UI.ns.meeting('view'), 'iframe', meetingDoc)\n }\n\n var addLink = function (target) {\n const pred = ns.wf('attachment')\n kb.add(subject, pred, target, subject.doc())\n var toolObject = {\n icon: 'noun_160581.svg', // right arrow \"link\"\n limit: 1,\n shareTab: true // but many things behind it\n }\n var newPaneOptions = {\n newInstance: subject, // kb.sym(subject.doc().uri + '#LinkListTool'),\n pane: dataBrowserContext.session.paneRegistry.byName('link'), // the pane to be used to mint a new thing\n predicate: ns.meeting('attachmentTool'),\n tabTitle: 'Links',\n view: 'link', // The pane to be used when it is viewed\n noIndexHTML: true\n }\n return makeNewPaneTool(toolObject, newPaneOptions)\n }\n\n // When paerson added to he meeting, make an ad hoc group\n // of meeting participants is one does not already exist, and add them\n var addParticipant = function (target) {\n var pref = kb.any(target, ns.foaf('preferredURI'))\n var obj = pref ? kb.sym(pref) : target\n var group = kb.any(meeting, ns.meeting('attendeeGroup'))\n var addPersonToGroup = function (obj, group) {\n var ins = [\n $rdf.st(group, UI.ns.vcard('hasMember'), obj, group.doc())\n ] // @@@ Complex rules about webid?\n var name =\n kb.any(obj, ns.vcard('fn')) || kb.any(obj, ns.foaf('name'))\n if (name) {\n ins.push($rdf.st(obj, UI.ns.vcard('fn'), name, group.doc()))\n }\n kb.fetcher.nowOrWhenFetched(group.doc(), undefined, function (\n ok,\n _body\n ) {\n if (!ok) {\n complain(\"Can't read group to add person\" + group)\n return\n }\n kb.updater.update([], ins, function (uri, ok, body) {\n complainIfBad(ok, body)\n if (ok) {\n console.log('Addded to particpants OK: ' + obj)\n }\n })\n })\n }\n if (group) {\n addPersonToGroup(obj, group)\n return\n }\n makeParticipantsGroup()\n .then(function (options) {\n var group = options.newInstance\n addPersonToGroup(obj, group)\n kb.fetcher\n .putBack(meetingDoc, { contentType: 'text/turtle' })\n .then(function (_xhr) {\n console.log('Particiants Group created: ' + group)\n })\n })\n .catch(function (err) {\n complain(err)\n })\n }\n\n console.log('Dropped on thing ' + target) // icon was: UI.icons.iconBase + 'noun_25830.svg'\n var u = target.uri\n if (u.startsWith('http:') && u.indexOf('#') < 0) {\n // insecure Plain document\n addLink(target)\n return resolve(target)\n }\n kb.fetcher.nowOrWhenFetched(target, function (ok, mess) {\n function addAttachmentTab (target) {\n target = googleMapsSpecial(target)\n console.log('make web page attachement tab ' + target) // icon was: UI.icons.iconBase + 'noun_25830.svg'\n var tool = makeToolNode(\n target,\n UI.ns.wf('attachment'),\n UI.utils.label(target),\n null\n )\n kb.add(tool, UI.ns.meeting('view'), 'iframe', meetingDoc)\n return resolve(target)\n }\n if (!ok) {\n console.log(\n 'Error looking up dropped thing, will just add it anyway. ' +\n target +\n ': ' +\n mess\n )\n return addAttachmentTab(target) // You can still try iframing it. (Could also add to list of links in PersonTR widgets)\n } else {\n var obj = target\n var types = kb.findTypeURIs(obj)\n for (var ty in types) {\n console.log(' drop object type includes: ' + ty)\n }\n if (\n ns.vcard('Individual').uri in types ||\n ns.foaf('Person').uri in types ||\n ns.foaf('Agent').uri in types\n ) {\n addParticipant(target)\n return resolve(target)\n }\n if (u.startsWith('https:') && u.indexOf('#') < 0) {\n // Plain secure document\n // can we iframe it?\n var hh = kb.fetcher.getHeader(target, 'x-frame-options')\n var ok2 = true\n if (hh) {\n for (var j = 0; j < hh.length; j++) {\n console.log('x-frame-options: ' + hh[j])\n if (hh[j].indexOf('sameorigin') < 0) {\n // (and diff origin @@)\n ok2 = false\n }\n if (hh[j].indexOf('deny') < 0) {\n ok2 = false\n }\n }\n }\n if (ok2) {\n target = googleMapsSpecial(target) // tweak Google maps to embed OK\n addIframeTool(target) // Something we can maybe iframe\n return resolve(target)\n }\n } // Something we cannot iframe, and must link to:\n console.log('Default: assume web page attachement ' + target) // icon was: UI.icons.iconBase + 'noun_25830.svg'\n return addAttachmentTab(target)\n }\n })\n }) // promise\n }\n\n // When a set of URIs are dropped on the tabs\n var droppedURIHandler = function (uris) {\n Promise.all(\n uris.map(function (u) {\n var target = $rdf.sym(u) // Attachment needs text label to disinguish I think not icon.\n return handleDroppedThing(target) // can add to meetingDoc but must be sync\n })\n ).then(function (_a) {\n saveBackMeetingDoc()\n })\n }\n\n var droppedFileHandler = function (files) {\n UI.widgets.uploadFiles(\n kb.fetcher,\n files,\n meeting.dir().uri + 'Files',\n meeting.dir().uri + 'Pictures',\n function (theFile, _destURI) {\n if (theFile.type.startsWith('image/')) {\n makePicturesFolder('Files') // If necessary\n } else {\n makeMaterialsFolder('Pictures')\n }\n }\n )\n }\n\n // ////////////////////////////////////////////////////// end of drag drop\n\n var makeGroup = function (_toolObject) {\n var newBase = meetingBase + 'Group/'\n var kb = dataBrowserContext.session.store\n var group = kb.any(meeting, ns.meeting('particpants'))\n if (!group) {\n group = $rdf.sym(newBase + 'index.ttl#this')\n }\n console.log('Participant group: ' + group)\n\n var tool = makeToolNode(\n group,\n ns.meeting('particpants'),\n 'Particpants',\n UI.icons.iconBase + 'noun_339237.svg'\n ) // group: noun_339237.svg 'noun_15695.svg'\n kb.add(tool, UI.ns.meeting('view'), 'peoplePicker', meetingDoc)\n saveBackMeetingDoc()\n }\n /*\n var makeAddressBook = function (toolObject) {\n var newBase = meetingBase + 'Group/'\n var kb = store\n var group = kb.any(meeting, ns.meeting('addressBook'))\n if (!group) {\n group = $rdf.sym(newBase + 'index.ttl#this')\n }\n\n // Create a tab for the addressbook\n var div = dom.createElement('div')\n var context = { dom: dom, div: div }\n var book\n UI.login.findAppInstances(context, ns.vcard('AddressBook')).then(\n function (context) {\n if (context.instances.length === 0) {\n complain('You have no solid address book. It is really handy to have one to keep track of people and groups')\n } else if (context.instances.length > 1) {\n var s = context.instances.map(function (x) { return '' + x }).join(', ')\n complain('You have more than one solid address book: ' + s + ' Not supported yet.')\n } else { // addressbook\n book = context.instances[0]\n var tool = makeToolNode(book, ns.meeting('addressBook'), 'Address Book', UI.icons.iconBase + 'noun_15695.svg') // group: noun_339237.svg\n kb.add(tool, UI.ns.meeting('view'), 'contact', meetingDoc)\n saveBackMeetingDoc()\n }\n }\n )\n }\n */\n var makePoll = function (toolObject) {\n var newPaneOptions = {\n useExisting: meeting, // Regard the meeting as being the schedulable event itself.\n // newInstance: meeting,\n pane: dataBrowserContext.session.paneRegistry.byName('schedule'),\n view: 'schedule',\n // predicate: ns.meeting('schedulingPoll'),\n // newBase: meetingBase + 'Schedule/', Not needed as uses existing meeting\n tabTitle: 'Schedule poll',\n noIndexHTML: true\n }\n return makeNewPaneTool(toolObject, newPaneOptions)\n }\n\n var makePicturesFolder = function (folderName) {\n var toolObject = {\n icon: 'noun_598334.svg', // Slideshow @@ find a \"picture\" icon?\n limit: 1,\n shareTab: true // but many things behind it\n }\n var newPaneOptions = {\n newInstance: kb.sym(meeting.dir().uri + folderName + '/'),\n pane: dataBrowserContext.session.paneRegistry.byName('folder'), // @@ slideshow??\n predicate: ns.meeting('pictures'),\n shareTab: true,\n tabTitle: folderName,\n view: 'slideshow',\n noIndexHTML: true\n }\n return makeNewPaneTool(toolObject, newPaneOptions)\n }\n\n var makeMaterialsFolder = function (_folderName) {\n var toolObject = {\n icon: 'noun_681601.svg', // Document\n limit: 1,\n shareTab: true // but many things behind it\n }\n var options = {\n newInstance: kb.sym(meeting.dir().uri + 'Files/'),\n pane: dataBrowserContext.session.paneRegistry.byName('folder'),\n predicate: ns.meeting('materialsFolder'),\n tabTitle: 'Materials',\n noIndexHTML: true\n }\n return makeNewPaneTool(toolObject, options)\n }\n\n var makeParticipantsGroup = function () {\n var toolObject = {\n icon: 'noun_339237.svg', // Group of people\n limit: 1, // Only one tab\n shareTab: true // but many things behind it\n }\n var options = {\n newInstance: kb.sym(meeting.dir().uri + 'Attendees/index.ttl#this'),\n pane: dataBrowserContext.session.paneRegistry.byName('contact'),\n predicate: ns.meeting('attendeeGroup'),\n tabTitle: 'Attendees',\n instanceClass: ns.vcard('Group'),\n instanceName: UI.utils.label(subject) + ' attendees',\n noIndexHTML: true\n }\n\n return makeNewPaneTool(toolObject, options)\n }\n\n // Make Pad for notes of meeting\n\n var makePad = function (toolObject) {\n var newPaneOptions = {\n newBase: meetingBase + 'SharedNotes/',\n predicate: UI.ns.meeting('sharedNotes'),\n tabTitle: 'Shared Notes',\n pane: dataBrowserContext.session.paneRegistry.byName('pad')\n }\n return makeNewPaneTool(toolObject, newPaneOptions)\n }\n\n // Make Sub-meeting of meeting\n\n var makeMeeting = function (toolObject) {\n UI.widgets\n .askName(\n dom,\n kb,\n parameterCell,\n ns.foaf('name'),\n UI.ns.meeting('Meeting')\n )\n .then(function (name) {\n if (!name) {\n return resetTools()\n }\n var URIsegment = encodeURIComponent(name)\n var options = {\n newBase: meetingBase + URIsegment + '/', // @@@ sanitize\n predicate: UI.ns.meeting('subMeeting'),\n tabTitle: name,\n pane: dataBrowserContext.session.paneRegistry.byName('meeting')\n }\n return makeNewPaneTool(toolObject, options)\n })\n .catch(function (e) {\n complain('Error making new sub-meeting: ' + e)\n })\n }\n\n // Returns promise of newPaneOptions\n // In: options.\n // me?, predicate, newInstance ?, newBase, instanceClass\n // out: options. the above plus\n // me, newInstance\n\n function makeNewPaneTool (toolObject, options) {\n return new Promise(function (resolve, reject) {\n var kb = dataBrowserContext.session.store\n if (!options.useExisting) {\n // useExisting means use existing object in new role\n var existing = kb.any(meeting, options.predicate)\n if (existing) {\n if (\n toolObject.limit &&\n toolObject.limit === 1 &&\n !toolObject.shareTab\n ) {\n complain(\n 'Already have ' +\n existing +\n ' as ' +\n UI.utils.label(options.predicate)\n )\n complain('Cant have two')\n return resolve(null)\n }\n if (toolObject.shareTab) {\n // return existing one\n console.log(\n 'Using existing ' +\n existing +\n ' as ' +\n UI.utils.label(options.predicate)\n )\n return resolve({\n me: me,\n newInstance: existing,\n instanceClass: options.instanceClass\n })\n }\n }\n }\n if (!me && !options.me) { reject(new Error('Username not defined for new tool')) }\n options.me = options.me || me\n options.newInstance =\n options.useExisting ||\n options.newInstance ||\n kb.sym(options.newBase + 'index.ttl#this')\n\n options.pane\n .mintNew(dataBrowserContext, options)\n .then(function (options) {\n var tool = makeToolNode(\n options.newInstance,\n options.predicate,\n options.tabTitle,\n options.pane.icon\n )\n if (options.view) {\n kb.add(tool, UI.ns.meeting('view'), options.view, meetingDoc)\n }\n saveBackMeetingDoc()\n kb.fetcher\n .putBack(meetingDoc, { contentType: 'text/turtle' })\n .then(function (_xhr) {\n resolve(options)\n })\n .catch(function (err) {\n reject(err)\n })\n })\n .catch(function (err) {\n complain(err)\n reject(err)\n })\n })\n }\n\n var makeAgenda = function (_toolObject) {\n // selectTool(icon)\n }\n\n var makeActions = function (_toolObject) {\n var newBase = meetingBase + 'Actions/'\n var kb = dataBrowserContext.session.store\n if (kb.holds(meeting, ns.meeting('actions'))) {\n console.log('Ignored - already have actions')\n return // already got one\n }\n var appDoc = kb.sym(newBase + 'config.ttl')\n var newInstance = kb.sym(newBase + 'config.ttl#this')\n var stateStore = kb.sym(newBase + 'state.ttl')\n\n kb.add(\n newInstance,\n ns.dc('title'),\n (kb.anyValue(meeting, ns.cal('summary')) || 'Meeting ') + ' actions',\n appDoc\n )\n kb.add(newInstance, ns.wf('issueClass'), ns.wf('Task'), appDoc)\n kb.add(newInstance, ns.wf('initialState'), ns.wf('Open'), appDoc)\n kb.add(newInstance, ns.wf('stateStore'), stateStore, appDoc)\n kb.add(newInstance, ns.wf('assigneeClass'), ns.foaf('Person'), appDoc) // @@ set to people in the meeting?\n\n kb.add(newInstance, ns.rdf('type'), ns.wf('Tracker'), appDoc)\n\n // Flag its type in the chat itself as well as in the master meeting config file\n kb.add(newInstance, ns.rdf('type'), ns.wf('Tracker'), appDoc)\n var tool = makeToolNode(\n newInstance,\n ns.meeting('actions'),\n 'Actions',\n UI.icons.iconBase + 'noun_17020.svg'\n )\n saveAppDocumentLinkAndAddNewThing(\n tool,\n newInstance,\n ns.meeting('actions')\n )\n }\n\n var makeChat = function (_toolObject) {\n var newBase = meetingBase + 'Chat/'\n var kb = dataBrowserContext.session.store\n if (kb.holds(meeting, ns.meeting('chat'))) {\n console.log('Ignored - already have chat')\n return // already got one\n }\n var messageStore = kb.sym(newBase + 'chat.ttl')\n\n kb.add(messageStore, ns.rdf('type'), ns.meeting('Chat'), messageStore)\n\n var tool = makeToolNode(\n messageStore,\n ns.meeting('chat'),\n 'Chat',\n UI.icons.iconBase + 'noun_346319.svg'\n )\n saveAppDocumentLinkAndAddNewThing(tool, messageStore, ns.meeting('chat'))\n }\n\n var makeVideoCall = function (_toolObject) {\n var kb = dataBrowserContext.session.store\n var newInstance = $rdf.sym(VideoRoomPrefix + UI.utils.genUuid())\n\n if (kb.holds(meeting, ns.meeting('videoCallPage'))) {\n console.log('Ignored - already have a videoCallPage')\n return // already got one\n }\n kb.add(\n newInstance,\n ns.rdf('type'),\n ns.meeting('VideoCallPage'),\n meetingDoc\n )\n var tool = makeToolNode(\n newInstance,\n ns.meeting('videoCallPage'),\n 'Video call',\n UI.icons.iconBase + 'noun_260227.svg'\n )\n kb.add(tool, ns.meeting('view'), 'iframe', meetingDoc)\n saveBackMeetingDoc()\n }\n\n var makeAttachment = function (_toolObject) {\n UI.widgets\n .askName(dom, kb, parameterCell, ns.log('uri'), UI.ns.rdf('Resource'))\n .then(function (uri) {\n if (!uri) {\n return resetTools()\n }\n var kb = dataBrowserContext.session.store\n var ns = UI.ns\n var target = kb.sym(uri)\n var tool = makeToolNode(\n target,\n ns.wf('attachment'),\n UI.utils.label(target),\n null\n )\n kb.add(tool, ns.meeting('view'), 'iframe', meetingDoc)\n saveBackMeetingDoc()\n })\n .catch(function (e) {\n complain('Error making new sub-meeting: ' + e)\n })\n }\n\n var makeSharing = function (toolObject) {\n var kb = dataBrowserContext.session.store\n var ns = UI.ns\n var target = meeting.dir()\n if (\n toolObject.limit &&\n toolObject.limit === 1 &&\n kb.holds(meeting, ns.wf('sharingControl'))\n ) {\n complain('Ignored - already have ' + UI.utils.label(options.predicate))\n return\n }\n var tool = makeToolNode(\n target,\n ns.wf('sharingControl'),\n 'Sharing',\n UI.icons.iconBase + 'noun_123691.svg'\n )\n kb.add(tool, ns.meeting('view'), 'sharing', meetingDoc)\n saveBackMeetingDoc()\n }\n\n var makeNewMeeting = function () {\n // @@@ make option of continuing series\n var appDetails = { noun: 'meeting' }\n var gotWS = function (ws, base) {\n thisPane\n .mintNew(dataBrowserContext, { newBase: base })\n .then(function (options) {\n var newInstance = options.newInstance\n parameterCell.removeChild(mintUI)\n var p = parameterCell.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n \"Your <a target='_blank' href='\" +\n newInstance.uri +\n \"'><b>new meeting</b></a> is ready to be set up. \" +\n \"<br/><br/><a target='_blank' href='\" +\n newInstance.uri +\n \"'>Go to your new meeting.</a>\"\n })\n .catch(function (err) {\n parameterCell.removeChild(mintUI)\n parameterCell.appendChild(UI.widgets.errorMessageBlock(dom, err))\n })\n }\n var mintUI = UI.login.selectWorkspace(dom, appDetails, gotWS)\n parameterCell.appendChild(mintUI)\n }\n\n // //////////////////////////////////////////////////////////// end of new tab creation functions\n\n var toolIcons = [\n {\n icon: 'noun_339237.svg',\n maker: makeGroup,\n hint: 'Make a group of people',\n limit: 1\n },\n {\n icon: 'noun_346777.svg',\n maker: makePoll,\n hint: 'Make a poll to schedule the meeting'\n }, // When meet THIS or NEXT time\n {\n icon: 'noun_48218.svg',\n maker: makeAgenda,\n limit: 1,\n hint: 'Add an agenda list',\n disabled: true\n }, // When meet THIS or NEXT time\n { icon: 'noun_79217.svg', maker: makePad, hint: 'Add a shared notepad' },\n {\n icon: 'noun_346319.svg',\n maker: makeChat,\n limit: 1,\n hint: 'Add a chat channel for the meeting'\n },\n {\n icon: 'noun_17020.svg',\n maker: makeActions,\n limit: 1,\n hint: 'Add a list of action items'\n }, // When meet THIS or NEXT time\n {\n icon: 'noun_260227.svg',\n maker: makeVideoCall,\n limit: 1,\n hint: 'Add a video call for the meeting'\n },\n {\n icon: 'noun_25830.svg',\n maker: makeAttachment,\n hint: 'Attach meeting materials',\n disabled: false\n },\n {\n icon: 'noun_123691.svg',\n maker: makeSharing,\n limit: 1,\n hint: 'Control Sharing',\n disabled: false\n },\n {\n icon: 'noun_66617.svg',\n maker: makeMeeting,\n hint: 'Make a sub meeting',\n disabled: false\n }\n ] // 'noun_66617.svg'\n\n var settingsForm = $rdf.sym(\n 'https://solid.github.io/solid-panes/meeting/meetingDetailsForm.ttl#settings'\n )\n $rdf.parse(\n meetingDetailsFormText,\n kb,\n settingsForm.doc().uri,\n 'text/turtle'\n ) // Load form directly\n\n var iconStyle = 'padding: 1em; width: 3em; height: 3em;'\n var iconCell = toolBar.appendChild(dom.createElement('td'))\n var parameterCell = toolBar.appendChild(dom.createElement('td'))\n var star = iconCell.appendChild(dom.createElement('img'))\n var visible = false // the inividual tools tools\n\n star.setAttribute('src', UI.icons.iconBase + 'noun_19460_green.svg') // noun_272948.svg\n star.setAttribute('style', iconStyle + 'opacity: 50%;')\n star.setAttribute('title', 'Add another tool to the meeting')\n\n var selectNewTool = function (_event) {\n visible = !visible\n star.setAttribute(\n 'style',\n iconStyle + (visible ? 'background-color: yellow;' : '')\n )\n styleTheIcons(visible ? '' : 'display: none;')\n }\n\n var loginOutButton\n logic.authn.checkUser().then(webId => {\n if (webId) {\n me = webId\n star.addEventListener('click', selectNewTool)\n star.setAttribute('style', iconStyle)\n return\n }\n\n loginOutButton = UI.login.loginStatusBox(dom, webIdUri => {\n if (webIdUri) {\n me = kb.sym(webIdUri)\n parameterCell.removeChild(loginOutButton)\n // loginOutButton.setAttribute('',iconStyle) // make it match the icons\n star.addEventListener('click', selectNewTool)\n star.setAttribute('style', iconStyle)\n } else {\n console.log('(Logged out)')\n me = null\n }\n })\n loginOutButton.setAttribute('style', 'margin: 0.5em 1em;')\n parameterCell.appendChild(loginOutButton)\n })\n\n var iconArray = []\n for (var i = 0; i < toolIcons.length; i++) {\n var foo = function () {\n var toolObject = toolIcons[i]\n var icon = iconCell.appendChild(dom.createElement('img'))\n icon.setAttribute('src', UI.icons.iconBase + toolObject.icon)\n icon.setAttribute('style', iconStyle + 'display: none;')\n iconArray.push(icon)\n icon.tool = toolObject\n var maker = toolObject.maker\n if (!toolObject.disabled) {\n icon.addEventListener('click', function (_event) {\n selectTool(icon)\n maker(toolObject)\n })\n }\n }\n foo()\n }\n\n var styleTheIcons = function (style) {\n for (var i = 0; i < iconArray.length; i++) {\n var st = iconStyle + style\n if (toolIcons[i].disabled) {\n st += 'opacity: 0.3;'\n }\n iconArray[i].setAttribute('style', st) // eg 'background-color: #ccc;'\n }\n }\n var resetTools = function () {\n styleTheIcons('display: none;')\n star.setAttribute('style', iconStyle)\n }\n\n var selectTool = function (icon) {\n styleTheIcons('display: none;') // 'background-color: #ccc;'\n icon.setAttribute('style', iconStyle + 'background-color: yellow;')\n }\n\n // //////////////////////////////\n\n var renderTab = function (div, item) {\n if (kb.holds(item, ns.rdf('type'), ns.meeting('Tool'))) {\n var target = kb.any(item, ns.meeting('target'))\n var label = kb.any(item, ns.rdfs('label'))\n label = label ? label.value : UI.utils.label(target)\n var s = div.appendChild(dom.createElement('div'))\n s.textContent = label\n s.setAttribute('style', 'margin-left: 0.7em')\n var icon = kb.any(item, ns.meeting('icon'))\n if (icon) {\n // Make sure the icon is cleanly on the left of the label\n var table = div.appendChild(dom.createElement('table'))\n var tr = table.appendChild(dom.createElement('tr'))\n var left = tr.appendChild(dom.createElement('td'))\n var right = tr.appendChild(dom.createElement('td'))\n // var img = div.appendChild(dom.createElement('img'))\n var img = left.appendChild(dom.createElement('img'))\n img.setAttribute('src', icon.uri)\n // img.setAttribute('style', 'max-width: 1.5em; max-height: 1.5em;') // @@ SVG shrinks to 0\n img.setAttribute('style', 'width: 1.5em; height: 1.5em;') // @\n img.setAttribute('title', label)\n right.appendChild(s)\n } else {\n div.appendChild(s)\n }\n } else {\n div.textContent = UI.utils.label(item)\n }\n }\n\n var tipDiv = function (text) {\n var d = dom.createElement('div')\n var p = d.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'margin: 0em; padding:3em; color: #888;')\n p.textContent = 'Tip: ' + text\n return d\n }\n\n var renderTabSettings = function (containerDiv, subject) {\n containerDiv.innerHTML = ''\n containerDiv.style += 'border-color: #eed;'\n containerDiv.appendChild(dom.createElement('h3')).textContent =\n 'Adjust this tab'\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('Tool'))) {\n var form = $rdf.sym(\n 'https://solid.github.io/solid-panes/meeting/meetingDetailsForm.ttl#settings'\n )\n UI.widgets.appendForm(\n document,\n containerDiv,\n {},\n subject,\n form,\n meeting.doc(),\n complainIfBad\n )\n var delButton = UI.widgets.deleteButtonWithCheck(\n dom,\n containerDiv,\n 'tab',\n function () {\n var toolList = kb.the(meeting, ns.meeting('toolList'))\n for (var i = 0; i < toolList.elements.length; i++) {\n if (toolList.elements[i].sameTerm(subject)) {\n toolList.elements.splice(i, 1)\n break\n }\n }\n var target = kb.any(subject, ns.meeting('target'))\n var ds = kb\n .statementsMatching(subject)\n .concat(kb.statementsMatching(undefined, undefined, subject))\n .concat(kb.statementsMatching(meeting, undefined, target))\n kb.remove(ds) // Remove all links to and from the tab node\n saveBackMeetingDoc()\n }\n )\n delButton.setAttribute('style', 'width: 1.5em; height: 1.5em;')\n // delButton.setAttribute('class', '')\n // delButton.setAttribute('style', 'height: 2em; width: 2em; margin: 1em; border-radius: 0.5em; padding: 1em; font-size: 120%; background-color: red; color: white;')\n // delButton.textContent = 'Delete this tab'\n } else {\n containerDiv.appendChild(dom.createElement('h4')).textContent =\n '(No adjustments available)'\n }\n }\n\n const renderMain = function (containerDiv, subject) {\n var pane = null\n var table\n var selectedGroup = null\n containerDiv.innerHTML = ''\n var complainIfBad = function (ok, message) {\n if (!ok) {\n containerDiv.textContent = '' + message\n }\n }\n var showIframe = function (target) {\n var iframe = containerDiv.appendChild(dom.createElement('iframe'))\n // iframe.setAttribute('sandbox', '') // All restrictions\n iframe.setAttribute('src', target.uri)\n // See https://stackoverflow.com/questions/325273/make-iframe-to-fit-100-of-containers-remaining-height\n // Set the container position (sic) so it becaomes a 100% reference for the size of the iframe height 100%\n /* For now at least , leave the container style as set by the tab system. 20200115b\n containerDiv.setAttribute(\n 'style',\n 'position: relative; top: 0px; left:0px; right:0px; resize: both; overflow:scroll; min-width: 30em; min-height: 30em;'\n )\n */\n // iframe.setAttribute('style', 'height: 350px; border: 0; margin: 0; padding: 0; resize:both; overflow:scroll; width: 100%;')\n // iframe.setAttribute('style', 'border: none; margin: 0; padding: 0; height: 100%; width: 100%; resize: both; overflow:scroll;')\n iframe.setAttribute(\n 'style',\n 'border: none; margin: 0; padding: 0; height: 100%; width: 100%;'\n )\n // Following https://dev.chromium.org/Home/chromium-security/deprecating-permissions-in-cross-origin-iframes :\n iframe.setAttribute('allow', 'microphone camera') // Allow iframe to request camera and mic\n // containerDiv.style.resize = 'none' // Remove scroll bars on outer div - don't seem to work so well\n iframe.setAttribute('name', 'disable-x-frame-options') // For electron: see https://github.com/electron/electron/pull/573\n containerDiv.style.padding = 0\n }\n var renderPeoplePicker = function () {\n var context = { div: containerDiv, dom: dom }\n containerDiv.appendChild(dom.createElement('h4')).textContent =\n 'Meeting Participants'\n var groupPickedCb = function (group) {\n var toIns = [\n $rdf.st(\n meeting,\n ns.meeting('particpantGroup'),\n group,\n meeting.doc()\n )\n ]\n kb.updater.update([], toIns, function (uri, ok, message) {\n if (ok) {\n selectedGroup = group\n } else {\n complain('Cant save participants group: ' + message)\n }\n })\n }\n selectedGroup = kb.any(meeting, ns.meeting('particpantGroup'))\n\n logic.loadTypeIndexes(context).then(function () {\n // Assumes that the type index has an entry for addressbook\n var options = {\n defaultNewGroupName: 'Meeting Participants',\n selectedGroup: selectedGroup\n }\n var picker = new UI.widgets.PeoplePicker(\n context.div,\n context.index.private[0],\n groupPickedCb,\n options\n )\n picker.render()\n })\n }\n\n var renderDetails = function () {\n containerDiv.appendChild(dom.createElement('h3')).textContent =\n 'Details of meeting'\n var form = $rdf.sym(\n 'https://solid.github.io/solid-panes/meeting/meetingDetailsForm.ttl#main'\n )\n UI.widgets.appendForm(\n document,\n containerDiv,\n {},\n meeting,\n form,\n meeting.doc(),\n complainIfBad\n )\n containerDiv.appendChild(\n tipDiv(\n 'Drag URL-bar icons of web pages into the tab bar on the left to add new meeting materials.'\n )\n )\n me = logic.authn.currentUser()\n if (me) {\n kb.add(meeting, ns.dc('author'), me, meetingDoc) // @@ should nly be on initial creation?\n }\n var context = {\n noun: 'meeting',\n me: me,\n statusArea: containerDiv,\n div: containerDiv,\n dom: dom\n }\n UI.login\n .registrationControl(context, meeting, ns.meeting('Meeting'))\n .then(function (_context) {\n console.log('Registration control finsished.')\n })\n var options = {}\n UI.pad.manageParticipation(\n dom,\n containerDiv,\n meetingDoc,\n meeting,\n me,\n options\n )\n\n // \"Make a new meeting\" button\n var imageStyle = 'height: 2em; width: 2em; margin:0.5em;'\n var detailsBottom = containerDiv.appendChild(dom.createElement('div'))\n var spawn = detailsBottom.appendChild(dom.createElement('img'))\n spawn.setAttribute('src', UI.icons.iconBase + 'noun_145978.svg')\n spawn.setAttribute('title', 'Make a fresh new meeting')\n spawn.addEventListener('click', makeNewMeeting)\n spawn.setAttribute('style', imageStyle)\n\n // \"Fork me on Github\" button\n var forka = detailsBottom.appendChild(dom.createElement('a'))\n forka.setAttribute('href', 'https://github.com/solid/solid-panes') // @@ Move when code moves\n forka.setAttribute('target', '_blank')\n var fork = forka.appendChild(dom.createElement('img'))\n fork.setAttribute('src', UI.icons.iconBase + 'noun_368567.svg')\n fork.setAttribute('title', 'Fork me on github')\n fork.setAttribute('style', imageStyle + 'opacity: 50%;')\n }\n\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('Tool'))) {\n var target = kb.any(subject, ns.meeting('target'))\n if (target.sameTerm(meeting) && !kb.any(subject, ns.meeting('view'))) {\n // self reference? force details form\n renderDetails() // Legacy meeting instances\n } else {\n var view = kb.any(subject, ns.meeting('view'))\n view = view ? view.value : null\n if (view === 'details') {\n renderDetails()\n } else if (view === 'peoplePicker') {\n renderPeoplePicker()\n } else if (view === 'iframe') {\n showIframe(target)\n } else {\n pane = view\n ? dataBrowserContext.session.paneRegistry.byName(view)\n : null\n table = containerDiv.appendChild(dom.createElement('table'))\n table.style.width = '100%'\n dataBrowserContext\n .getOutliner(dom)\n .GotoSubject(target, true, pane, false, undefined, table)\n }\n }\n } else if (subject.sameTerm(meeting)) {\n // self reference? force details form\n renderDetails()\n } else if (\n subject.sameTerm(subject.doc()) &&\n !kb.holds(subject, UI.ns.rdf('type'), UI.ns.meeting('Chat')) &&\n !kb.holds(subject, UI.ns.rdf('type'), UI.ns.meeting('PaneView'))\n // eslint-disable-next-line no-empty\n ) { } else {\n table = containerDiv.appendChild(dom.createElement('table'))\n dataBrowserContext\n .getOutliner(dom)\n .GotoSubject(subject, true, undefined, false, undefined, table)\n }\n }\n\n var options = { dom: dom }\n options.predicate = ns.meeting('toolList')\n options.subject = subject\n options.ordered = true\n options.orientation = 1 // tabs on LHS\n options.renderMain = renderMain\n options.renderTab = renderTab\n options.renderTabSettings = renderTabSettings\n options.backgroundColor =\n kb.anyValue(subject, ns.ui('backgroundColor')) || '#ddddcc'\n var tabs = mainTR.appendChild(UI.tabs.tabWidget(options))\n\n UI.aclControl.preventBrowserDropEvents(dom)\n\n UI.widgets.makeDropTarget(\n tabs.tabContainer,\n droppedURIHandler,\n droppedFileHandler\n )\n UI.widgets.makeDropTarget(iconCell, droppedURIHandler, droppedFileHandler)\n\n return div\n }\n}\n// ends\n"],"file":"meetingPane.js"}
|
|
1
|
+
{"version":3,"file":"meetingPane.js","names":["logic","require","VideoRoomPrefix","UI","ns","$rdf","meetingDetailsFormText","module","exports","icon","icons","iconBase","name","audience","solid","label","subject","context","kb","session","store","holds","rdf","meeting","mintClass","mintNew","options","Promise","resolve","reject","newInstance","sym","newBase","meetingDoc","doc","me","authn","currentUser","add","dc","Date","ui","Literal","undefined","xsd","toolList","Collection","elements","push","updater","put","statementsMatching","uri2","ok","message","Error","render","dataBrowserContext","dom","thisPane","complain","color","console","log","pre","createElement","setAttribute","div","appendChild","createTextNode","complainIfBad","meetingBase","dir","uri","table","style","topTR","mainTR","toolBar0","toolBar1","toolBar","saveBackMeetingDoc","tabs","refresh","resetTools","saveAppDocumentLinkAndAddNewThing","tool","thing","pred","appDoc","makeToolNode","target","iconURI","x","widgets","newThing","rdfs","the","googleMapsSpecial","page","initialPrefix","finalPrefix","myPersonalApiKEY","match","startsWith","map","replace","handleDroppedThing","addIframeTool","wf","utils","addLink","toolObject","limit","shareTab","newPaneOptions","pane","paneRegistry","byName","predicate","tabTitle","view","noIndexHTML","makeNewPaneTool","addParticipant","pref","any","foaf","obj","group","addPersonToGroup","ins","st","vcard","fetcher","nowOrWhenFetched","_body","update","body","makeParticipantsGroup","then","putBack","contentType","_xhr","err","u","indexOf","mess","addAttachmentTab","types","findTypeURIs","ty","hh","getHeader","ok2","j","length","droppedURIHandler","uris","all","_a","droppedFileHandler","files","uploadFiles","theFile","_destURI","type","makePicturesFolder","makeMaterialsFolder","makeGroup","_toolObject","makePoll","useExisting","folderName","_folderName","instanceClass","instanceName","makePad","makeMeeting","askName","parameterCell","URIsegment","encodeURIComponent","e","existing","makeAgenda","makeActions","stateStore","anyValue","cal","makeChat","messageStore","makeVideoCall","genUuid","makeAttachment","makeSharing","makeNewMeeting","appDetails","noun","gotWS","ws","base","removeChild","mintUI","p","innerHTML","errorMessageBlock","login","selectWorkspace","toolIcons","maker","hint","disabled","settingsForm","parse","iconStyle","iconCell","star","visible","selectNewTool","_event","styleTheIcons","loginOutButton","checkUser","webId","addEventListener","loginStatusBox","webIdUri","iconArray","i","foo","selectTool","renderTab","item","value","s","textContent","tr","left","right","img","tipDiv","text","d","renderTabSettings","containerDiv","form","appendForm","document","delButton","deleteButtonWithCheck","sameTerm","splice","ds","concat","remove","renderMain","selectedGroup","showIframe","iframe","padding","renderPeoplePicker","groupPickedCb","toIns","loadTypeIndexes","defaultNewGroupName","picker","PeoplePicker","index","renderDetails","statusArea","registrationControl","_context","pad","manageParticipation","imageStyle","detailsBottom","spawn","forka","fork","width","getOutliner","GotoSubject","ordered","orientation","backgroundColor","tabWidget","aclControl","preventBrowserDropEvents","makeDropTarget","tabContainer"],"sources":["../src/meetingPane.js"],"sourcesContent":["/* Meeting materials and tools Pane\n **\n ** Putting together some of the tools we have to manage a Meeting\n */\n\n// const VideoRoomPrefix = 'https://appear.in/'\nconst logic = require('solid-logic')\nconst VideoRoomPrefix = 'https://meet.jit.si/'\n\nconst UI = require('solid-ui')\nconst ns = UI.ns\nconst $rdf = require('rdflib')\n\nconst meetingDetailsFormText = require('./meetingDetailsForm.js')\n\nmodule.exports = {\n icon: UI.icons.iconBase + 'noun_66617.svg',\n\n name: 'meeting',\n\n audience: [ns.solid('PowerUser')],\n\n label: function (subject, context) {\n var kb = context.session.store\n var ns = UI.ns\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('Meeting'))) {\n return 'Meeting'\n }\n return null // Suppress pane otherwise\n },\n\n // Create a new Meeting thing\n //\n // returns: A promise of a meeting object\n //\n\n mintClass: UI.ns.meeting('Meeting'),\n\n mintNew: function (context, options) {\n return new Promise(function (resolve, reject) {\n var kb = context.session.store\n var ns = UI.ns\n options.newInstance =\n options.newInstance || kb.sym(options.newBase + 'index.ttl#this')\n var meeting = options.newInstance\n var meetingDoc = meeting.doc()\n\n var me = logic.authn.currentUser()\n\n if (me) {\n kb.add(meeting, ns.dc('author'), me, meetingDoc)\n }\n\n kb.add(meeting, ns.rdf('type'), ns.meeting('Meeting'), meetingDoc)\n kb.add(meeting, ns.dc('created'), new Date(), meetingDoc)\n kb.add(\n meeting,\n ns.ui('backgroundColor'),\n new $rdf.Literal('#ddddcc', undefined, ns.xsd('color')),\n meetingDoc\n )\n var toolList = new $rdf.Collection()\n kb.add(meeting, ns.meeting('toolList'), toolList, meetingDoc)\n\n toolList.elements.push(meeting) // Add the meeting itself - see renderMain()\n\n kb.updater.put(\n meetingDoc,\n kb.statementsMatching(undefined, undefined, undefined, meetingDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n resolve(options)\n } else {\n reject(new Error('Error writing meeting configuration: ' + message))\n }\n }\n )\n })\n },\n\n // Returns a div\n\n render: function (subject, dataBrowserContext) {\n const dom = dataBrowserContext.dom\n var kb = dataBrowserContext.session.store\n var ns = UI.ns\n var updater = kb.updater\n var thisPane = this\n\n var complain = function complain (message, color) {\n console.log(message)\n var pre = dom.createElement('pre')\n pre.setAttribute('style', 'background-color: ' + color || '#eed' + ';')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n }\n\n var complainIfBad = function (ok, message) {\n if (!ok) complain(message)\n }\n\n var meeting = subject\n var meetingDoc = subject.doc()\n var meetingBase = subject.dir().uri\n var div = dom.createElement('div')\n var table = div.appendChild(dom.createElement('table'))\n table.style = 'width: 100%; height: 100%; margin:0;'\n var topTR = table.appendChild(dom.createElement('tr'))\n topTR.appendChild(dom.createElement('div')) // topDiv\n var mainTR = table.appendChild(dom.createElement('tr'))\n\n var toolBar0 = table.appendChild(dom.createElement('td'))\n var toolBar1 = toolBar0.appendChild(dom.createElement('table'))\n var toolBar = toolBar1.appendChild(dom.createElement('tr'))\n\n topTR.setAttribute('style', 'height: 2em;') // spacer if notthing else\n\n var me = null // @@ Put code to find out logged in person\n\n var saveBackMeetingDoc = function () {\n updater.put(\n meetingDoc,\n kb.statementsMatching(undefined, undefined, undefined, meetingDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n tabs.refresh()\n resetTools()\n } else {\n message =\n 'FAILED to save new thing at: ' + meetingDoc + ' : ' + message\n complain(message)\n }\n }\n )\n }\n\n var saveAppDocumentLinkAndAddNewThing = function (tool, thing, pred) {\n var appDoc = thing.doc()\n if (pred) {\n kb.add(meeting, pred, thing, appDoc) // Specific Link back to meeting\n }\n kb.add(thing, ns.meeting('parentMeeting'), meeting, appDoc) // Generic link back to meeting\n updater.put(\n appDoc,\n kb.statementsMatching(undefined, undefined, undefined, appDoc),\n 'text/turtle',\n function (uri2, ok, message) {\n if (ok) {\n saveBackMeetingDoc()\n } else {\n complain('FAILED to save new tool at: ' + thing + ' : ' + message)\n }\n }\n )\n }\n\n var makeToolNode = function (target, pred, label, iconURI) {\n if (pred) {\n kb.add(meeting, pred, target, meetingDoc)\n }\n var x = UI.widgets.newThing(meetingDoc)\n if (label) kb.add(x, ns.rdfs('label'), label, meetingDoc)\n if (iconURI) kb.add(x, ns.meeting('icon'), kb.sym(iconURI), meetingDoc)\n kb.add(x, ns.rdf('type'), ns.meeting('Tool'), meetingDoc)\n kb.add(x, ns.meeting('target'), target, meetingDoc)\n var toolList = kb.the(meeting, ns.meeting('toolList'))\n toolList.elements.push(x)\n return x\n }\n\n // Map from end-user non-iframeable Google maps URI to G Maps API\n // Input: like https://www.google.co.uk/maps/place/Mastercard/@53.2717971,-6.2042699,17z/...\n // Output:\n function googleMapsSpecial (page) {\n const initialPrefix = /https:\\/\\/www\\.google\\..*\\/maps\\//\n const finalPrefix = 'https://www.google.com/maps/embed/v1/'\n const myPersonalApiKEY = 'AIzaSyB8aaT6bY9tcLCmc2oPCkdUYLmTOWM8R54' // Get your own key!\n // GET YOUR KEY AT https://developers.google.com/maps/documentation/javascript/\n const uri = page.uri\n if (!uri.match(initialPrefix)) return page\n if (uri.startsWith(finalPrefix)) return page // Already done\n const map =\n uri.replace(initialPrefix, finalPrefix) + '&key=' + myPersonalApiKEY\n console.log('Converted Google Map URI! ' + map)\n return $rdf.sym(map)\n }\n\n // //////////////////// DRAG and Drop\n\n var handleDroppedThing = function (target) {\n // @@ idea: look\n return new Promise(function (resolve) {\n // Add a meeting tab for a web resource. Alas many resource canot be framed\n // as they block framing, or are insecure.\n var addIframeTool = function (target) {\n var tool = makeToolNode(\n target,\n UI.ns.wf('attachment'),\n UI.utils.label(target),\n null\n )\n kb.add(tool, UI.ns.meeting('view'), 'iframe', meetingDoc)\n }\n\n var addLink = function (target) {\n const pred = ns.wf('attachment')\n kb.add(subject, pred, target, subject.doc())\n var toolObject = {\n icon: 'noun_160581.svg', // right arrow \"link\"\n limit: 1,\n shareTab: true // but many things behind it\n }\n var newPaneOptions = {\n newInstance: subject, // kb.sym(subject.doc().uri + '#LinkListTool'),\n pane: dataBrowserContext.session.paneRegistry.byName('link'), // the pane to be used to mint a new thing\n predicate: ns.meeting('attachmentTool'),\n tabTitle: 'Links',\n view: 'link', // The pane to be used when it is viewed\n noIndexHTML: true\n }\n return makeNewPaneTool(toolObject, newPaneOptions)\n }\n\n // When paerson added to he meeting, make an ad hoc group\n // of meeting participants is one does not already exist, and add them\n var addParticipant = function (target) {\n var pref = kb.any(target, ns.foaf('preferredURI'))\n var obj = pref ? kb.sym(pref) : target\n var group = kb.any(meeting, ns.meeting('attendeeGroup'))\n var addPersonToGroup = function (obj, group) {\n var ins = [\n $rdf.st(group, UI.ns.vcard('hasMember'), obj, group.doc())\n ] // @@@ Complex rules about webid?\n var name =\n kb.any(obj, ns.vcard('fn')) || kb.any(obj, ns.foaf('name'))\n if (name) {\n ins.push($rdf.st(obj, UI.ns.vcard('fn'), name, group.doc()))\n }\n kb.fetcher.nowOrWhenFetched(group.doc(), undefined, function (\n ok,\n _body\n ) {\n if (!ok) {\n complain(\"Can't read group to add person\" + group)\n return\n }\n kb.updater.update([], ins, function (uri, ok, body) {\n complainIfBad(ok, body)\n if (ok) {\n console.log('Addded to particpants OK: ' + obj)\n }\n })\n })\n }\n if (group) {\n addPersonToGroup(obj, group)\n return\n }\n makeParticipantsGroup()\n .then(function (options) {\n var group = options.newInstance\n addPersonToGroup(obj, group)\n kb.fetcher\n .putBack(meetingDoc, { contentType: 'text/turtle' })\n .then(function (_xhr) {\n console.log('Particiants Group created: ' + group)\n })\n })\n .catch(function (err) {\n complain(err)\n })\n }\n\n console.log('Dropped on thing ' + target) // icon was: UI.icons.iconBase + 'noun_25830.svg'\n var u = target.uri\n if (u.startsWith('http:') && u.indexOf('#') < 0) {\n // insecure Plain document\n addLink(target)\n return resolve(target)\n }\n kb.fetcher.nowOrWhenFetched(target, function (ok, mess) {\n function addAttachmentTab (target) {\n target = googleMapsSpecial(target)\n console.log('make web page attachement tab ' + target) // icon was: UI.icons.iconBase + 'noun_25830.svg'\n var tool = makeToolNode(\n target,\n UI.ns.wf('attachment'),\n UI.utils.label(target),\n null\n )\n kb.add(tool, UI.ns.meeting('view'), 'iframe', meetingDoc)\n return resolve(target)\n }\n if (!ok) {\n console.log(\n 'Error looking up dropped thing, will just add it anyway. ' +\n target +\n ': ' +\n mess\n )\n return addAttachmentTab(target) // You can still try iframing it. (Could also add to list of links in PersonTR widgets)\n } else {\n var obj = target\n var types = kb.findTypeURIs(obj)\n for (var ty in types) {\n console.log(' drop object type includes: ' + ty)\n }\n if (\n ns.vcard('Individual').uri in types ||\n ns.foaf('Person').uri in types ||\n ns.foaf('Agent').uri in types\n ) {\n addParticipant(target)\n return resolve(target)\n }\n if (u.startsWith('https:') && u.indexOf('#') < 0) {\n // Plain secure document\n // can we iframe it?\n var hh = kb.fetcher.getHeader(target, 'x-frame-options')\n var ok2 = true\n if (hh) {\n for (var j = 0; j < hh.length; j++) {\n console.log('x-frame-options: ' + hh[j])\n if (hh[j].indexOf('sameorigin') < 0) {\n // (and diff origin @@)\n ok2 = false\n }\n if (hh[j].indexOf('deny') < 0) {\n ok2 = false\n }\n }\n }\n if (ok2) {\n target = googleMapsSpecial(target) // tweak Google maps to embed OK\n addIframeTool(target) // Something we can maybe iframe\n return resolve(target)\n }\n } // Something we cannot iframe, and must link to:\n console.log('Default: assume web page attachement ' + target) // icon was: UI.icons.iconBase + 'noun_25830.svg'\n return addAttachmentTab(target)\n }\n })\n }) // promise\n }\n\n // When a set of URIs are dropped on the tabs\n var droppedURIHandler = function (uris) {\n Promise.all(\n uris.map(function (u) {\n var target = $rdf.sym(u) // Attachment needs text label to disinguish I think not icon.\n return handleDroppedThing(target) // can add to meetingDoc but must be sync\n })\n ).then(function (_a) {\n saveBackMeetingDoc()\n })\n }\n\n var droppedFileHandler = function (files) {\n UI.widgets.uploadFiles(\n kb.fetcher,\n files,\n meeting.dir().uri + 'Files',\n meeting.dir().uri + 'Pictures',\n function (theFile, _destURI) {\n if (theFile.type.startsWith('image/')) {\n makePicturesFolder('Files') // If necessary\n } else {\n makeMaterialsFolder('Pictures')\n }\n }\n )\n }\n\n // ////////////////////////////////////////////////////// end of drag drop\n\n var makeGroup = function (_toolObject) {\n var newBase = meetingBase + 'Group/'\n var kb = dataBrowserContext.session.store\n var group = kb.any(meeting, ns.meeting('particpants'))\n if (!group) {\n group = $rdf.sym(newBase + 'index.ttl#this')\n }\n console.log('Participant group: ' + group)\n\n var tool = makeToolNode(\n group,\n ns.meeting('particpants'),\n 'Particpants',\n UI.icons.iconBase + 'noun_339237.svg'\n ) // group: noun_339237.svg 'noun_15695.svg'\n kb.add(tool, UI.ns.meeting('view'), 'peoplePicker', meetingDoc)\n saveBackMeetingDoc()\n }\n /*\n var makeAddressBook = function (toolObject) {\n var newBase = meetingBase + 'Group/'\n var kb = store\n var group = kb.any(meeting, ns.meeting('addressBook'))\n if (!group) {\n group = $rdf.sym(newBase + 'index.ttl#this')\n }\n\n // Create a tab for the addressbook\n var div = dom.createElement('div')\n var context = { dom: dom, div: div }\n var book\n UI.login.findAppInstances(context, ns.vcard('AddressBook')).then(\n function (context) {\n if (context.instances.length === 0) {\n complain('You have no solid address book. It is really handy to have one to keep track of people and groups')\n } else if (context.instances.length > 1) {\n var s = context.instances.map(function (x) { return '' + x }).join(', ')\n complain('You have more than one solid address book: ' + s + ' Not supported yet.')\n } else { // addressbook\n book = context.instances[0]\n var tool = makeToolNode(book, ns.meeting('addressBook'), 'Address Book', UI.icons.iconBase + 'noun_15695.svg') // group: noun_339237.svg\n kb.add(tool, UI.ns.meeting('view'), 'contact', meetingDoc)\n saveBackMeetingDoc()\n }\n }\n )\n }\n */\n var makePoll = function (toolObject) {\n var newPaneOptions = {\n useExisting: meeting, // Regard the meeting as being the schedulable event itself.\n // newInstance: meeting,\n pane: dataBrowserContext.session.paneRegistry.byName('schedule'),\n view: 'schedule',\n // predicate: ns.meeting('schedulingPoll'),\n // newBase: meetingBase + 'Schedule/', Not needed as uses existing meeting\n tabTitle: 'Schedule poll',\n noIndexHTML: true\n }\n return makeNewPaneTool(toolObject, newPaneOptions)\n }\n\n var makePicturesFolder = function (folderName) {\n var toolObject = {\n icon: 'noun_598334.svg', // Slideshow @@ find a \"picture\" icon?\n limit: 1,\n shareTab: true // but many things behind it\n }\n var newPaneOptions = {\n newInstance: kb.sym(meeting.dir().uri + folderName + '/'),\n pane: dataBrowserContext.session.paneRegistry.byName('folder'), // @@ slideshow??\n predicate: ns.meeting('pictures'),\n shareTab: true,\n tabTitle: folderName,\n view: 'slideshow',\n noIndexHTML: true\n }\n return makeNewPaneTool(toolObject, newPaneOptions)\n }\n\n var makeMaterialsFolder = function (_folderName) {\n var toolObject = {\n icon: 'noun_681601.svg', // Document\n limit: 1,\n shareTab: true // but many things behind it\n }\n var options = {\n newInstance: kb.sym(meeting.dir().uri + 'Files/'),\n pane: dataBrowserContext.session.paneRegistry.byName('folder'),\n predicate: ns.meeting('materialsFolder'),\n tabTitle: 'Materials',\n noIndexHTML: true\n }\n return makeNewPaneTool(toolObject, options)\n }\n\n var makeParticipantsGroup = function () {\n var toolObject = {\n icon: 'noun_339237.svg', // Group of people\n limit: 1, // Only one tab\n shareTab: true // but many things behind it\n }\n var options = {\n newInstance: kb.sym(meeting.dir().uri + 'Attendees/index.ttl#this'),\n pane: dataBrowserContext.session.paneRegistry.byName('contact'),\n predicate: ns.meeting('attendeeGroup'),\n tabTitle: 'Attendees',\n instanceClass: ns.vcard('Group'),\n instanceName: UI.utils.label(subject) + ' attendees',\n noIndexHTML: true\n }\n\n return makeNewPaneTool(toolObject, options)\n }\n\n // Make Pad for notes of meeting\n\n var makePad = function (toolObject) {\n var newPaneOptions = {\n newBase: meetingBase + 'SharedNotes/',\n predicate: UI.ns.meeting('sharedNotes'),\n tabTitle: 'Shared Notes',\n pane: dataBrowserContext.session.paneRegistry.byName('pad')\n }\n return makeNewPaneTool(toolObject, newPaneOptions)\n }\n\n // Make Sub-meeting of meeting\n\n var makeMeeting = function (toolObject) {\n UI.widgets\n .askName(\n dom,\n kb,\n parameterCell,\n ns.foaf('name'),\n UI.ns.meeting('Meeting')\n )\n .then(function (name) {\n if (!name) {\n return resetTools()\n }\n var URIsegment = encodeURIComponent(name)\n var options = {\n newBase: meetingBase + URIsegment + '/', // @@@ sanitize\n predicate: UI.ns.meeting('subMeeting'),\n tabTitle: name,\n pane: dataBrowserContext.session.paneRegistry.byName('meeting')\n }\n return makeNewPaneTool(toolObject, options)\n })\n .catch(function (e) {\n complain('Error making new sub-meeting: ' + e)\n })\n }\n\n // Returns promise of newPaneOptions\n // In: options.\n // me?, predicate, newInstance ?, newBase, instanceClass\n // out: options. the above plus\n // me, newInstance\n\n function makeNewPaneTool (toolObject, options) {\n return new Promise(function (resolve, reject) {\n var kb = dataBrowserContext.session.store\n if (!options.useExisting) {\n // useExisting means use existing object in new role\n var existing = kb.any(meeting, options.predicate)\n if (existing) {\n if (\n toolObject.limit &&\n toolObject.limit === 1 &&\n !toolObject.shareTab\n ) {\n complain(\n 'Already have ' +\n existing +\n ' as ' +\n UI.utils.label(options.predicate)\n )\n complain('Cant have two')\n return resolve(null)\n }\n if (toolObject.shareTab) {\n // return existing one\n console.log(\n 'Using existing ' +\n existing +\n ' as ' +\n UI.utils.label(options.predicate)\n )\n return resolve({\n me: me,\n newInstance: existing,\n instanceClass: options.instanceClass\n })\n }\n }\n }\n if (!me && !options.me) { reject(new Error('Username not defined for new tool')) }\n options.me = options.me || me\n options.newInstance =\n options.useExisting ||\n options.newInstance ||\n kb.sym(options.newBase + 'index.ttl#this')\n\n options.pane\n .mintNew(dataBrowserContext, options)\n .then(function (options) {\n var tool = makeToolNode(\n options.newInstance,\n options.predicate,\n options.tabTitle,\n options.pane.icon\n )\n if (options.view) {\n kb.add(tool, UI.ns.meeting('view'), options.view, meetingDoc)\n }\n saveBackMeetingDoc()\n kb.fetcher\n .putBack(meetingDoc, { contentType: 'text/turtle' })\n .then(function (_xhr) {\n resolve(options)\n })\n .catch(function (err) {\n reject(err)\n })\n })\n .catch(function (err) {\n complain(err)\n reject(err)\n })\n })\n }\n\n var makeAgenda = function (_toolObject) {\n // selectTool(icon)\n }\n\n var makeActions = function (_toolObject) {\n var newBase = meetingBase + 'Actions/'\n var kb = dataBrowserContext.session.store\n if (kb.holds(meeting, ns.meeting('actions'))) {\n console.log('Ignored - already have actions')\n return // already got one\n }\n var appDoc = kb.sym(newBase + 'config.ttl')\n var newInstance = kb.sym(newBase + 'config.ttl#this')\n var stateStore = kb.sym(newBase + 'state.ttl')\n\n kb.add(\n newInstance,\n ns.dc('title'),\n (kb.anyValue(meeting, ns.cal('summary')) || 'Meeting ') + ' actions',\n appDoc\n )\n kb.add(newInstance, ns.wf('issueClass'), ns.wf('Task'), appDoc)\n kb.add(newInstance, ns.wf('initialState'), ns.wf('Open'), appDoc)\n kb.add(newInstance, ns.wf('stateStore'), stateStore, appDoc)\n kb.add(newInstance, ns.wf('assigneeClass'), ns.foaf('Person'), appDoc) // @@ set to people in the meeting?\n\n kb.add(newInstance, ns.rdf('type'), ns.wf('Tracker'), appDoc)\n\n // Flag its type in the chat itself as well as in the master meeting config file\n kb.add(newInstance, ns.rdf('type'), ns.wf('Tracker'), appDoc)\n var tool = makeToolNode(\n newInstance,\n ns.meeting('actions'),\n 'Actions',\n UI.icons.iconBase + 'noun_17020.svg'\n )\n saveAppDocumentLinkAndAddNewThing(\n tool,\n newInstance,\n ns.meeting('actions')\n )\n }\n\n var makeChat = function (_toolObject) {\n var newBase = meetingBase + 'Chat/'\n var kb = dataBrowserContext.session.store\n if (kb.holds(meeting, ns.meeting('chat'))) {\n console.log('Ignored - already have chat')\n return // already got one\n }\n var messageStore = kb.sym(newBase + 'chat.ttl')\n\n kb.add(messageStore, ns.rdf('type'), ns.meeting('Chat'), messageStore)\n\n var tool = makeToolNode(\n messageStore,\n ns.meeting('chat'),\n 'Chat',\n UI.icons.iconBase + 'noun_346319.svg'\n )\n saveAppDocumentLinkAndAddNewThing(tool, messageStore, ns.meeting('chat'))\n }\n\n var makeVideoCall = function (_toolObject) {\n var kb = dataBrowserContext.session.store\n var newInstance = $rdf.sym(VideoRoomPrefix + UI.utils.genUuid())\n\n if (kb.holds(meeting, ns.meeting('videoCallPage'))) {\n console.log('Ignored - already have a videoCallPage')\n return // already got one\n }\n kb.add(\n newInstance,\n ns.rdf('type'),\n ns.meeting('VideoCallPage'),\n meetingDoc\n )\n var tool = makeToolNode(\n newInstance,\n ns.meeting('videoCallPage'),\n 'Video call',\n UI.icons.iconBase + 'noun_260227.svg'\n )\n kb.add(tool, ns.meeting('view'), 'iframe', meetingDoc)\n saveBackMeetingDoc()\n }\n\n var makeAttachment = function (_toolObject) {\n UI.widgets\n .askName(dom, kb, parameterCell, ns.log('uri'), UI.ns.rdf('Resource'))\n .then(function (uri) {\n if (!uri) {\n return resetTools()\n }\n var kb = dataBrowserContext.session.store\n var ns = UI.ns\n var target = kb.sym(uri)\n var tool = makeToolNode(\n target,\n ns.wf('attachment'),\n UI.utils.label(target),\n null\n )\n kb.add(tool, ns.meeting('view'), 'iframe', meetingDoc)\n saveBackMeetingDoc()\n })\n .catch(function (e) {\n complain('Error making new sub-meeting: ' + e)\n })\n }\n\n var makeSharing = function (toolObject) {\n var kb = dataBrowserContext.session.store\n var ns = UI.ns\n var target = meeting.dir()\n if (\n toolObject.limit &&\n toolObject.limit === 1 &&\n kb.holds(meeting, ns.wf('sharingControl'))\n ) {\n complain('Ignored - already have ' + UI.utils.label(options.predicate))\n return\n }\n var tool = makeToolNode(\n target,\n ns.wf('sharingControl'),\n 'Sharing',\n UI.icons.iconBase + 'noun_123691.svg'\n )\n kb.add(tool, ns.meeting('view'), 'sharing', meetingDoc)\n saveBackMeetingDoc()\n }\n\n var makeNewMeeting = function () {\n // @@@ make option of continuing series\n var appDetails = { noun: 'meeting' }\n var gotWS = function (ws, base) {\n thisPane\n .mintNew(dataBrowserContext, { newBase: base })\n .then(function (options) {\n var newInstance = options.newInstance\n parameterCell.removeChild(mintUI)\n var p = parameterCell.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'font-size: 140%;')\n p.innerHTML =\n \"Your <a target='_blank' href='\" +\n newInstance.uri +\n \"'><b>new meeting</b></a> is ready to be set up. \" +\n \"<br/><br/><a target='_blank' href='\" +\n newInstance.uri +\n \"'>Go to your new meeting.</a>\"\n })\n .catch(function (err) {\n parameterCell.removeChild(mintUI)\n parameterCell.appendChild(UI.widgets.errorMessageBlock(dom, err))\n })\n }\n var mintUI = UI.login.selectWorkspace(dom, appDetails, gotWS)\n parameterCell.appendChild(mintUI)\n }\n\n // //////////////////////////////////////////////////////////// end of new tab creation functions\n\n var toolIcons = [\n {\n icon: 'noun_339237.svg',\n maker: makeGroup,\n hint: 'Make a group of people',\n limit: 1\n },\n {\n icon: 'noun_346777.svg',\n maker: makePoll,\n hint: 'Make a poll to schedule the meeting'\n }, // When meet THIS or NEXT time\n {\n icon: 'noun_48218.svg',\n maker: makeAgenda,\n limit: 1,\n hint: 'Add an agenda list',\n disabled: true\n }, // When meet THIS or NEXT time\n { icon: 'noun_79217.svg', maker: makePad, hint: 'Add a shared notepad' },\n {\n icon: 'noun_346319.svg',\n maker: makeChat,\n limit: 1,\n hint: 'Add a chat channel for the meeting'\n },\n {\n icon: 'noun_17020.svg',\n maker: makeActions,\n limit: 1,\n hint: 'Add a list of action items'\n }, // When meet THIS or NEXT time\n {\n icon: 'noun_260227.svg',\n maker: makeVideoCall,\n limit: 1,\n hint: 'Add a video call for the meeting'\n },\n {\n icon: 'noun_25830.svg',\n maker: makeAttachment,\n hint: 'Attach meeting materials',\n disabled: false\n },\n {\n icon: 'noun_123691.svg',\n maker: makeSharing,\n limit: 1,\n hint: 'Control Sharing',\n disabled: false\n },\n {\n icon: 'noun_66617.svg',\n maker: makeMeeting,\n hint: 'Make a sub meeting',\n disabled: false\n }\n ] // 'noun_66617.svg'\n\n var settingsForm = $rdf.sym(\n 'https://solid.github.io/solid-panes/meeting/meetingDetailsForm.ttl#settings'\n )\n $rdf.parse(\n meetingDetailsFormText,\n kb,\n settingsForm.doc().uri,\n 'text/turtle'\n ) // Load form directly\n\n var iconStyle = 'padding: 1em; width: 3em; height: 3em;'\n var iconCell = toolBar.appendChild(dom.createElement('td'))\n var parameterCell = toolBar.appendChild(dom.createElement('td'))\n var star = iconCell.appendChild(dom.createElement('img'))\n var visible = false // the inividual tools tools\n\n star.setAttribute('src', UI.icons.iconBase + 'noun_19460_green.svg') // noun_272948.svg\n star.setAttribute('style', iconStyle + 'opacity: 50%;')\n star.setAttribute('title', 'Add another tool to the meeting')\n\n var selectNewTool = function (_event) {\n visible = !visible\n star.setAttribute(\n 'style',\n iconStyle + (visible ? 'background-color: yellow;' : '')\n )\n styleTheIcons(visible ? '' : 'display: none;')\n }\n\n var loginOutButton\n logic.authn.checkUser().then(webId => {\n if (webId) {\n me = webId\n star.addEventListener('click', selectNewTool)\n star.setAttribute('style', iconStyle)\n return\n }\n\n loginOutButton = UI.login.loginStatusBox(dom, webIdUri => {\n if (webIdUri) {\n me = kb.sym(webIdUri)\n parameterCell.removeChild(loginOutButton)\n // loginOutButton.setAttribute('',iconStyle) // make it match the icons\n star.addEventListener('click', selectNewTool)\n star.setAttribute('style', iconStyle)\n } else {\n console.log('(Logged out)')\n me = null\n }\n })\n loginOutButton.setAttribute('style', 'margin: 0.5em 1em;')\n parameterCell.appendChild(loginOutButton)\n })\n\n var iconArray = []\n for (var i = 0; i < toolIcons.length; i++) {\n var foo = function () {\n var toolObject = toolIcons[i]\n var icon = iconCell.appendChild(dom.createElement('img'))\n icon.setAttribute('src', UI.icons.iconBase + toolObject.icon)\n icon.setAttribute('style', iconStyle + 'display: none;')\n iconArray.push(icon)\n icon.tool = toolObject\n var maker = toolObject.maker\n if (!toolObject.disabled) {\n icon.addEventListener('click', function (_event) {\n selectTool(icon)\n maker(toolObject)\n })\n }\n }\n foo()\n }\n\n var styleTheIcons = function (style) {\n for (var i = 0; i < iconArray.length; i++) {\n var st = iconStyle + style\n if (toolIcons[i].disabled) {\n st += 'opacity: 0.3;'\n }\n iconArray[i].setAttribute('style', st) // eg 'background-color: #ccc;'\n }\n }\n var resetTools = function () {\n styleTheIcons('display: none;')\n star.setAttribute('style', iconStyle)\n }\n\n var selectTool = function (icon) {\n styleTheIcons('display: none;') // 'background-color: #ccc;'\n icon.setAttribute('style', iconStyle + 'background-color: yellow;')\n }\n\n // //////////////////////////////\n\n var renderTab = function (div, item) {\n if (kb.holds(item, ns.rdf('type'), ns.meeting('Tool'))) {\n var target = kb.any(item, ns.meeting('target'))\n var label = kb.any(item, ns.rdfs('label'))\n label = label ? label.value : UI.utils.label(target)\n var s = div.appendChild(dom.createElement('div'))\n s.textContent = label\n s.setAttribute('style', 'margin-left: 0.7em')\n var icon = kb.any(item, ns.meeting('icon'))\n if (icon) {\n // Make sure the icon is cleanly on the left of the label\n var table = div.appendChild(dom.createElement('table'))\n var tr = table.appendChild(dom.createElement('tr'))\n var left = tr.appendChild(dom.createElement('td'))\n var right = tr.appendChild(dom.createElement('td'))\n // var img = div.appendChild(dom.createElement('img'))\n var img = left.appendChild(dom.createElement('img'))\n img.setAttribute('src', icon.uri)\n // img.setAttribute('style', 'max-width: 1.5em; max-height: 1.5em;') // @@ SVG shrinks to 0\n img.setAttribute('style', 'width: 1.5em; height: 1.5em;') // @\n img.setAttribute('title', label)\n right.appendChild(s)\n } else {\n div.appendChild(s)\n }\n } else {\n div.textContent = UI.utils.label(item)\n }\n }\n\n var tipDiv = function (text) {\n var d = dom.createElement('div')\n var p = d.appendChild(dom.createElement('p'))\n p.setAttribute('style', 'margin: 0em; padding:3em; color: #888;')\n p.textContent = 'Tip: ' + text\n return d\n }\n\n var renderTabSettings = function (containerDiv, subject) {\n containerDiv.innerHTML = ''\n containerDiv.style += 'border-color: #eed;'\n containerDiv.appendChild(dom.createElement('h3')).textContent =\n 'Adjust this tab'\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('Tool'))) {\n var form = $rdf.sym(\n 'https://solid.github.io/solid-panes/meeting/meetingDetailsForm.ttl#settings'\n )\n UI.widgets.appendForm(\n document,\n containerDiv,\n {},\n subject,\n form,\n meeting.doc(),\n complainIfBad\n )\n var delButton = UI.widgets.deleteButtonWithCheck(\n dom,\n containerDiv,\n 'tab',\n function () {\n var toolList = kb.the(meeting, ns.meeting('toolList'))\n for (var i = 0; i < toolList.elements.length; i++) {\n if (toolList.elements[i].sameTerm(subject)) {\n toolList.elements.splice(i, 1)\n break\n }\n }\n var target = kb.any(subject, ns.meeting('target'))\n var ds = kb\n .statementsMatching(subject)\n .concat(kb.statementsMatching(undefined, undefined, subject))\n .concat(kb.statementsMatching(meeting, undefined, target))\n kb.remove(ds) // Remove all links to and from the tab node\n saveBackMeetingDoc()\n }\n )\n delButton.setAttribute('style', 'width: 1.5em; height: 1.5em;')\n // delButton.setAttribute('class', '')\n // delButton.setAttribute('style', 'height: 2em; width: 2em; margin: 1em; border-radius: 0.5em; padding: 1em; font-size: 120%; background-color: red; color: white;')\n // delButton.textContent = 'Delete this tab'\n } else {\n containerDiv.appendChild(dom.createElement('h4')).textContent =\n '(No adjustments available)'\n }\n }\n\n const renderMain = function (containerDiv, subject) {\n var pane = null\n var table\n var selectedGroup = null\n containerDiv.innerHTML = ''\n var complainIfBad = function (ok, message) {\n if (!ok) {\n containerDiv.textContent = '' + message\n }\n }\n var showIframe = function (target) {\n var iframe = containerDiv.appendChild(dom.createElement('iframe'))\n // iframe.setAttribute('sandbox', '') // All restrictions\n iframe.setAttribute('src', target.uri)\n // See https://stackoverflow.com/questions/325273/make-iframe-to-fit-100-of-containers-remaining-height\n // Set the container position (sic) so it becaomes a 100% reference for the size of the iframe height 100%\n /* For now at least , leave the container style as set by the tab system. 20200115b\n containerDiv.setAttribute(\n 'style',\n 'position: relative; top: 0px; left:0px; right:0px; resize: both; overflow:scroll; min-width: 30em; min-height: 30em;'\n )\n */\n // iframe.setAttribute('style', 'height: 350px; border: 0; margin: 0; padding: 0; resize:both; overflow:scroll; width: 100%;')\n // iframe.setAttribute('style', 'border: none; margin: 0; padding: 0; height: 100%; width: 100%; resize: both; overflow:scroll;')\n iframe.setAttribute(\n 'style',\n 'border: none; margin: 0; padding: 0; height: 100%; width: 100%;'\n )\n // Following https://dev.chromium.org/Home/chromium-security/deprecating-permissions-in-cross-origin-iframes :\n iframe.setAttribute('allow', 'microphone camera') // Allow iframe to request camera and mic\n // containerDiv.style.resize = 'none' // Remove scroll bars on outer div - don't seem to work so well\n iframe.setAttribute('name', 'disable-x-frame-options') // For electron: see https://github.com/electron/electron/pull/573\n containerDiv.style.padding = 0\n }\n var renderPeoplePicker = function () {\n var context = { div: containerDiv, dom: dom }\n containerDiv.appendChild(dom.createElement('h4')).textContent =\n 'Meeting Participants'\n var groupPickedCb = function (group) {\n var toIns = [\n $rdf.st(\n meeting,\n ns.meeting('particpantGroup'),\n group,\n meeting.doc()\n )\n ]\n kb.updater.update([], toIns, function (uri, ok, message) {\n if (ok) {\n selectedGroup = group\n } else {\n complain('Cant save participants group: ' + message)\n }\n })\n }\n selectedGroup = kb.any(meeting, ns.meeting('particpantGroup'))\n\n logic.loadTypeIndexes(context).then(function () {\n // Assumes that the type index has an entry for addressbook\n var options = {\n defaultNewGroupName: 'Meeting Participants',\n selectedGroup: selectedGroup\n }\n var picker = new UI.widgets.PeoplePicker(\n context.div,\n context.index.private[0],\n groupPickedCb,\n options\n )\n picker.render()\n })\n }\n\n var renderDetails = function () {\n containerDiv.appendChild(dom.createElement('h3')).textContent =\n 'Details of meeting'\n var form = $rdf.sym(\n 'https://solid.github.io/solid-panes/meeting/meetingDetailsForm.ttl#main'\n )\n UI.widgets.appendForm(\n document,\n containerDiv,\n {},\n meeting,\n form,\n meeting.doc(),\n complainIfBad\n )\n containerDiv.appendChild(\n tipDiv(\n 'Drag URL-bar icons of web pages into the tab bar on the left to add new meeting materials.'\n )\n )\n me = logic.authn.currentUser()\n if (me) {\n kb.add(meeting, ns.dc('author'), me, meetingDoc) // @@ should nly be on initial creation?\n }\n var context = {\n noun: 'meeting',\n me: me,\n statusArea: containerDiv,\n div: containerDiv,\n dom: dom\n }\n UI.login\n .registrationControl(context, meeting, ns.meeting('Meeting'))\n .then(function (_context) {\n console.log('Registration control finsished.')\n })\n var options = {}\n UI.pad.manageParticipation(\n dom,\n containerDiv,\n meetingDoc,\n meeting,\n me,\n options\n )\n\n // \"Make a new meeting\" button\n var imageStyle = 'height: 2em; width: 2em; margin:0.5em;'\n var detailsBottom = containerDiv.appendChild(dom.createElement('div'))\n var spawn = detailsBottom.appendChild(dom.createElement('img'))\n spawn.setAttribute('src', UI.icons.iconBase + 'noun_145978.svg')\n spawn.setAttribute('title', 'Make a fresh new meeting')\n spawn.addEventListener('click', makeNewMeeting)\n spawn.setAttribute('style', imageStyle)\n\n // \"Fork me on Github\" button\n var forka = detailsBottom.appendChild(dom.createElement('a'))\n forka.setAttribute('href', 'https://github.com/solid/solid-panes') // @@ Move when code moves\n forka.setAttribute('target', '_blank')\n var fork = forka.appendChild(dom.createElement('img'))\n fork.setAttribute('src', UI.icons.iconBase + 'noun_368567.svg')\n fork.setAttribute('title', 'Fork me on github')\n fork.setAttribute('style', imageStyle + 'opacity: 50%;')\n }\n\n if (kb.holds(subject, ns.rdf('type'), ns.meeting('Tool'))) {\n var target = kb.any(subject, ns.meeting('target'))\n if (target.sameTerm(meeting) && !kb.any(subject, ns.meeting('view'))) {\n // self reference? force details form\n renderDetails() // Legacy meeting instances\n } else {\n var view = kb.any(subject, ns.meeting('view'))\n view = view ? view.value : null\n if (view === 'details') {\n renderDetails()\n } else if (view === 'peoplePicker') {\n renderPeoplePicker()\n } else if (view === 'iframe') {\n showIframe(target)\n } else {\n pane = view\n ? dataBrowserContext.session.paneRegistry.byName(view)\n : null\n table = containerDiv.appendChild(dom.createElement('table'))\n table.style.width = '100%'\n dataBrowserContext\n .getOutliner(dom)\n .GotoSubject(target, true, pane, false, undefined, table)\n }\n }\n } else if (subject.sameTerm(meeting)) {\n // self reference? force details form\n renderDetails()\n } else if (\n subject.sameTerm(subject.doc()) &&\n !kb.holds(subject, UI.ns.rdf('type'), UI.ns.meeting('Chat')) &&\n !kb.holds(subject, UI.ns.rdf('type'), UI.ns.meeting('PaneView'))\n // eslint-disable-next-line no-empty\n ) { } else {\n table = containerDiv.appendChild(dom.createElement('table'))\n dataBrowserContext\n .getOutliner(dom)\n .GotoSubject(subject, true, undefined, false, undefined, table)\n }\n }\n\n var options = { dom: dom }\n options.predicate = ns.meeting('toolList')\n options.subject = subject\n options.ordered = true\n options.orientation = 1 // tabs on LHS\n options.renderMain = renderMain\n options.renderTab = renderTab\n options.renderTabSettings = renderTabSettings\n options.backgroundColor =\n kb.anyValue(subject, ns.ui('backgroundColor')) || '#ddddcc'\n var tabs = mainTR.appendChild(UI.tabs.tabWidget(options))\n\n UI.aclControl.preventBrowserDropEvents(dom)\n\n UI.widgets.makeDropTarget(\n tabs.tabContainer,\n droppedURIHandler,\n droppedFileHandler\n )\n UI.widgets.makeDropTarget(iconCell, droppedURIHandler, droppedFileHandler)\n\n return div\n }\n}\n// ends\n"],"mappings":"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"}
|
package/lib/versionInfo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"versionInfo.js","names":["versionInfo","buildTime","commit","npmInfo","npm","node","v8","uv","zlib","brotli","ares","modules","nghttp2","napi","llhttp","openssl","cldr","icu","tz","unicode","ngtcp2","nghttp3"],"sources":["../src/versionInfo.ts"],"sourcesContent":["export const versionInfo = {\n buildTime: '2022-03-22T10:13:42Z',\n commit: 'f283f808fdf9257a9b6fd12d9efbec142afd0735',\n npmInfo:\n{\n 'meeting-pane': '2.3.9',\n npm: '8.3.1',\n node: '16.14.0',\n v8: '9.4.146.24-node.20',\n uv: '1.43.0',\n zlib: '1.2.11',\n brotli: '1.0.9',\n ares: '1.18.1',\n modules: '93',\n nghttp2: '1.45.1',\n napi: '8',\n llhttp: '6.0.4',\n openssl: '1.1.1m+quic',\n cldr: '40.0',\n icu: '70.1',\n tz: '2021a3',\n unicode: '14.0',\n ngtcp2: '0.1.0-DEV',\n nghttp3: '0.1.0-DEV'\n}\n}\n"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG;EACzBC,SAAS,EAAE,sBADc;EAEzBC,MAAM,EAAE,0CAFiB;EAGzBC,OAAO,EACT;IACE,gBAAgB,OADlB;IAEEC,GAAG,EAAE,OAFP;IAGEC,IAAI,EAAE,SAHR;IAIEC,EAAE,EAAE,oBAJN;IAKEC,EAAE,EAAE,QALN;IAMEC,IAAI,EAAE,QANR;IAOEC,MAAM,EAAE,OAPV;IAQEC,IAAI,EAAE,QARR;IASEC,OAAO,EAAE,IATX;IAUEC,OAAO,EAAE,QAVX;IAWEC,IAAI,EAAE,GAXR;IAYEC,MAAM,EAAE,OAZV;IAaEC,OAAO,EAAE,aAbX;IAcEC,IAAI,EAAE,MAdR;IAeEC,GAAG,EAAE,MAfP;IAgBEC,EAAE,EAAE,QAhBN;IAiBEC,OAAO,EAAE,MAjBX;IAkBEC,MAAM,EAAE,WAlBV;IAmBEC,OAAO,EAAE;EAnBX;AAJ2B,CAApB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "meeting-pane",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.11-4f4f0df7",
|
|
4
4
|
"description": "Solid-compatible Panes: meeting collaborative tool",
|
|
5
5
|
"main": "./lib/meetingPane.js",
|
|
6
6
|
"files": [
|
|
@@ -43,28 +43,28 @@
|
|
|
43
43
|
"author": "Tim Berners-Lee <timbl@mit.edu>",
|
|
44
44
|
"license": "MIT",
|
|
45
45
|
"bugs": {
|
|
46
|
-
"url": "https://github.com/
|
|
46
|
+
"url": "https://github.com/solidos/meeting-pane/issues/"
|
|
47
47
|
},
|
|
48
|
-
"homepage": "https://github.com/
|
|
48
|
+
"homepage": "https://github.com/solidos/meeting-pane/",
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"rdflib": "^2.2.19",
|
|
51
|
-
"solid-logic": "
|
|
52
|
-
"solid-ui": "
|
|
51
|
+
"solid-logic": "1.3.17-af110ecf",
|
|
52
|
+
"solid-ui": "2.4.22-f9e7cddc"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@babel/cli": "^7.17.6",
|
|
56
|
-
"@babel/core": "^7.17.
|
|
56
|
+
"@babel/core": "^7.17.9",
|
|
57
57
|
"@babel/preset-env": "^7.16.11",
|
|
58
58
|
"@webpack-cli/serve": "^1.6.1",
|
|
59
59
|
"buffer": "^6.0.3",
|
|
60
|
-
"eslint": "^8.
|
|
60
|
+
"eslint": "^8.13.0",
|
|
61
61
|
"html-webpack-plugin": "^5.5.0",
|
|
62
62
|
"husky": "^7.0.4",
|
|
63
63
|
"lint-staged": "^12.3.7",
|
|
64
64
|
"typescript": "^4.6.3",
|
|
65
|
-
"webpack": "^5.
|
|
65
|
+
"webpack": "^5.72.0",
|
|
66
66
|
"webpack-cli": "^4.9.2",
|
|
67
|
-
"webpack-dev-server": "^4.
|
|
67
|
+
"webpack-dev-server": "^4.8.1"
|
|
68
68
|
},
|
|
69
69
|
"husky": {
|
|
70
70
|
"hooks": {
|