solid-panes 3.7.3-18da570b → 3.7.3-322e9b27
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/Documentation/VisualLanguage.html +538 -0
- package/Documentation/conventions.md +333 -0
- package/coverage/clover.xml +152 -0
- package/coverage/coverage-final.json +6 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +131 -0
- package/coverage/lcov-report/outline/index.html +161 -0
- package/coverage/lcov-report/outline/outlineIcons.js.html +565 -0
- package/coverage/lcov-report/outline/propertyViews.ts.html +196 -0
- package/coverage/lcov-report/outline/viewAsImage.ts.html +121 -0
- package/coverage/lcov-report/outline/viewAsMbox.ts.html +127 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov-report/trustedApplications/index.html +116 -0
- package/coverage/lcov-report/trustedApplications/trustedApplications.utils.ts.html +238 -0
- package/coverage/lcov.info +204 -0
- package/dev/index.html +28 -0
- package/dev/loader.ts +91 -0
- package/dev/pane/index.ts +10 -0
- package/doc/images/panes-for-classes.epgz +0 -0
- package/doc/images/panes-for-classes.svg +609 -0
- package/eslint.config.mjs +34 -0
- package/jest.config.js +27 -0
- package/jest.setup.ts +4 -0
- package/lib/RDFXMLPane.js +59 -0
- package/lib/RDFXMLPane.js.map +1 -0
- package/{dist → lib}/argument/argumentPane.js +15 -14
- package/lib/argument/argumentPane.js.map +1 -0
- package/{dist → lib}/attach/attachPane.js +93 -83
- package/lib/attach/attachPane.js.map +1 -0
- package/{dist → lib}/audio/audioPane.js +50 -49
- package/lib/audio/audioPane.js.map +1 -0
- package/{dist → lib}/classInstancePane.js +24 -23
- package/lib/classInstancePane.js.map +1 -0
- package/lib/dashboard/basicPreferences.js +229 -0
- package/lib/dashboard/basicPreferences.js.map +1 -0
- package/{dist → lib}/dashboard/dashboardPane.js +21 -17
- package/lib/dashboard/dashboardPane.js.map +1 -0
- package/lib/dashboard/homepage.js +86 -0
- package/lib/dashboard/homepage.js.map +1 -0
- package/{dist → lib}/dataContentPane.js +63 -63
- package/lib/dataContentPane.js.map +1 -0
- package/{dist → lib}/defaultPane.js +15 -14
- package/lib/defaultPane.js.map +1 -0
- package/{dist → lib}/dokieli/dokieliPane.js +53 -49
- package/lib/dokieli/dokieliPane.js.map +1 -0
- package/lib/dokieli/new.js +9 -0
- package/lib/dokieli/new.js.map +1 -0
- package/{dist → lib}/form/pane.js +45 -44
- package/lib/form/pane.js.map +1 -0
- package/lib/home/homePane.js +91 -0
- package/lib/home/homePane.js.map +1 -0
- package/lib/humanReadablePane.js +138 -0
- package/lib/humanReadablePane.js.map +1 -0
- package/lib/imagePane.js +71 -0
- package/lib/imagePane.js.map +1 -0
- package/{dist → lib}/index.js +20 -17
- package/lib/index.js.map +1 -0
- package/{dist → lib}/internal/internalPane.js +41 -41
- package/lib/internal/internalPane.js.map +1 -0
- package/{dist → lib}/mainPage/footer.js +2 -2
- package/{dist → lib}/mainPage/footer.js.map +1 -1
- package/lib/mainPage/header.js +152 -0
- package/lib/mainPage/header.js.map +1 -0
- package/{dist → lib}/mainPage/index.d.ts.map +1 -1
- package/lib/mainPage/index.js +42 -0
- package/lib/mainPage/index.js.map +1 -0
- package/{dist → lib}/microblogPane/microblogPane.js +262 -261
- package/lib/microblogPane/microblogPane.js.map +1 -0
- package/lib/n3Pane.js +57 -0
- package/lib/n3Pane.js.map +1 -0
- package/{dist → lib}/outline/context.js +4 -4
- package/{dist → lib}/outline/context.js.map +1 -1
- package/lib/outline/manager.js +2264 -0
- package/lib/outline/manager.js.map +1 -0
- package/lib/outline/manager.test.d.ts +2 -0
- package/lib/outline/manager.test.d.ts.map +1 -0
- package/lib/outline/manager.test.js +210 -0
- package/lib/outline/manager.test.js.map +1 -0
- package/{dist → lib}/outline/outlineIcons.js +3 -2
- package/lib/outline/outlineIcons.js.map +1 -0
- package/{dist → lib}/outline/propertyViews.js +4 -4
- package/lib/outline/propertyViews.js.map +1 -0
- package/lib/outline/propertyViews.test.d.ts +2 -0
- package/lib/outline/propertyViews.test.d.ts.map +1 -0
- package/lib/outline/propertyViews.test.js +27 -0
- package/lib/outline/propertyViews.test.js.map +1 -0
- package/{dist → lib}/outline/queryByExample.js +31 -30
- package/lib/outline/queryByExample.js.map +1 -0
- package/{dist → lib}/outline/userInput.js +260 -262
- package/lib/outline/userInput.js.map +1 -0
- package/lib/outline/viewAsImage.js +17 -0
- package/lib/outline/viewAsImage.js.map +1 -0
- package/lib/outline/viewAsMbox.js +23 -0
- package/lib/outline/viewAsMbox.js.map +1 -0
- package/{dist → lib}/pad/padPane.js +96 -90
- package/lib/pad/padPane.js.map +1 -0
- package/{dist → lib}/playlist/playlistPane.js +37 -36
- package/lib/playlist/playlistPane.js.map +1 -0
- package/{dist → lib}/registerPanes.js +29 -29
- package/lib/registerPanes.js.map +1 -0
- package/lib/schedule/formsForSchedule.js +8 -0
- package/lib/schedule/formsForSchedule.js.map +1 -0
- package/{dist → lib}/schedule/schedulePane.js +178 -171
- package/lib/schedule/schedulePane.js.map +1 -0
- package/{dist → lib}/sharing/sharingPane.js +12 -12
- package/lib/sharing/sharingPane.js.map +1 -0
- package/lib/slideshow/slideshowPane.js +84 -0
- package/lib/slideshow/slideshowPane.js.map +1 -0
- package/{dist → lib}/socialPane.js +142 -141
- package/lib/socialPane.js.map +1 -0
- package/lib/tabbed/tabbedPane.js +72 -0
- package/lib/tabbed/tabbedPane.js.map +1 -0
- package/{dist → lib}/tableViewPane.js +9 -8
- package/lib/tableViewPane.js.map +1 -0
- package/lib/test-import-export/common.js +12 -0
- package/lib/test-import-export/common.js.map +1 -0
- package/lib/test-import-export/edit-importer.js +25 -0
- package/lib/test-import-export/edit-importer.js.map +1 -0
- package/lib/test-import-export/testImportExport.js +2 -0
- package/lib/test-import-export/testImportExport.js.map +1 -0
- package/{dist → lib}/transaction/pane.js +118 -117
- package/lib/transaction/pane.js.map +1 -0
- package/{dist → lib}/transaction/period.js +83 -82
- package/lib/transaction/period.js.map +1 -0
- package/{dist → lib}/trip/tripPane.js +48 -47
- package/lib/trip/tripPane.js.map +1 -0
- package/lib/trustedApplications/trustedApplications.dom.js +177 -0
- package/lib/trustedApplications/trustedApplications.dom.js.map +1 -0
- package/lib/trustedApplications/trustedApplications.test.d.ts +2 -0
- package/lib/trustedApplications/trustedApplications.test.d.ts.map +1 -0
- package/lib/trustedApplications/trustedApplications.test.js +64 -0
- package/lib/trustedApplications/trustedApplications.test.js.map +1 -0
- package/lib/trustedApplications/trustedApplications.utils.js +34 -0
- package/lib/trustedApplications/trustedApplications.utils.js.map +1 -0
- package/lib/trustedApplications/trustedApplications.view.js +87 -0
- package/lib/trustedApplications/trustedApplications.view.js.map +1 -0
- package/lib/types.js.map +1 -0
- package/{dist → lib}/ui/pane.js +31 -30
- package/lib/ui/pane.js.map +1 -0
- package/lib/versionInfo.d.ts +32 -0
- package/lib/versionInfo.d.ts.map +1 -0
- package/lib/versionInfo.js +37 -0
- package/lib/versionInfo.js.map +1 -0
- package/lib/video/videoPane.js +44 -0
- package/lib/video/videoPane.js.map +1 -0
- package/package.json +14 -27
- package/src/RDFXMLPane.js +60 -0
- package/src/argument/argumentPane.js +65 -0
- package/src/argument/argument_icon_v04.jpg +0 -0
- package/src/argument/icon_argument.png +0 -0
- package/src/argument/transparentyingyang.png +0 -0
- package/src/attach/attachPane.js +508 -0
- package/src/attach/tbl-paperclip-128.png +0 -0
- package/src/attach/tbl-paperclip-22.png +0 -0
- package/src/attach/tbl-paperclip-22a.png +0 -0
- package/src/audio/audioPane.js +197 -0
- package/src/chatPreferencesForm.ttl +12 -0
- package/src/classInstancePane.js +110 -0
- package/src/dashboard/basicPreferences.ts +201 -0
- package/src/dashboard/dashboardPane.ts +83 -0
- package/src/dashboard/homepage.ts +72 -0
- package/src/dashboard/languages/codes.html +8611 -0
- package/src/dashboard/languages/codes.xml +3563 -0
- package/src/dashboard/languages/codes2.txt +170 -0
- package/src/dashboard/languages/foo +70 -0
- package/src/dashboard/languages/foo.ttl +0 -0
- package/src/dashboard/languages/get-language-names.sh +12 -0
- package/src/dashboard/ontologyData.ttl +35 -0
- package/src/dashboard/preferencesFormText.ttl +18 -0
- package/src/dataContentPane.js +290 -0
- package/src/defaultPane.js +102 -0
- package/src/dokieli/Makefile +6 -0
- package/src/dokieli/dokieliPane.js +190 -0
- package/src/dokieli/new.html +30 -0
- package/{dist → src}/dokieli/new.js +3 -9
- package/src/form/form-22.png +0 -0
- package/src/form/form-b-22.png +0 -0
- package/src/form/form.graffle +0 -0
- package/src/form/form.png +0 -0
- package/src/form/pane.js +217 -0
- package/src/form/psuedocode-notes.txt +57 -0
- package/src/global.d.ts +4 -0
- package/src/home/homePane.ts +72 -0
- package/src/humanReadablePane.js +150 -0
- package/src/imagePane.js +75 -0
- package/src/index.ts +71 -0
- package/src/internal/internalPane.ts +263 -0
- package/src/mainPage/footer.ts +19 -0
- package/src/mainPage/header.ts +79 -0
- package/src/mainPage/index.ts +20 -0
- package/src/meeting/Makefile +3 -0
- package/src/meeting/test/meeting1/Actions/actions.ttl +14 -0
- package/src/meeting/test/meeting1/Actions/config.ttl +16 -0
- package/src/meeting/test/meeting1/Actions/state.ttl +30 -0
- package/src/meeting/test/meeting1/Schedule/details.ttl +34 -0
- package/src/meeting/test/meeting1/Schedule/details.ttl.acl +20 -0
- package/src/meeting/test/meeting1/Schedule/forms.ttl +75 -0
- package/src/meeting/test/meeting1/Schedule/forms.ttl.acl +20 -0
- package/src/meeting/test/meeting1/Schedule/index.html +72 -0
- package/src/meeting/test/meeting1/Schedule/index.html.acl +20 -0
- package/src/meeting/test/meeting1/Schedule/results.ttl +15 -0
- package/src/meeting/test/meeting1/Schedule/results.ttl.acl +20 -0
- package/src/meeting/test/meeting1/SharedNotes/pad.ttl +23 -0
- package/src/meeting/test/meeting1/chat/chat.ttl +1 -0
- package/src/meeting/test/meeting1/details.ttl +35 -0
- package/src/meeting/test/meeting1/pad/pad.ttl +16 -0
- package/src/microblogPane/mbStyle.css +267 -0
- package/src/microblogPane/microblogPane.js +1412 -0
- package/src/n3Pane.js +56 -0
- package/src/outline/context.ts +21 -0
- package/src/outline/manager.js +2384 -0
- package/src/outline/manager.test.ts +189 -0
- package/src/outline/outlineIcons.js +160 -0
- package/src/outline/propertyViews.test.ts +36 -0
- package/src/outline/propertyViews.ts +37 -0
- package/src/outline/queryByExample.js +296 -0
- package/src/outline/userInput.js +2373 -0
- package/src/outline/viewAsImage.ts +12 -0
- package/src/outline/viewAsMbox.ts +14 -0
- package/src/pad/images/ColourOff.ai +873 -1
- package/src/pad/images/ColourOff.png +0 -0
- package/src/pad/images/ColourOn.ai +934 -2
- package/src/pad/images/ColourOn.png +0 -0
- package/src/pad/padPane.ts +559 -0
- package/src/playlist/playlistPane.js +161 -0
- package/src/registerPanes.js +147 -0
- package/src/schedule/Makefile +6 -0
- package/src/schedule/formsForSchedule.js +117 -0
- package/src/schedule/formsForSchedule.ttl +115 -0
- package/src/schedule/schedulePane.js +1201 -0
- package/src/sharing/sharingPane.ts +49 -0
- package/src/slideshow/slideshowPane.js +80 -0
- package/src/socialPane.js +523 -0
- package/src/style/tabbedtab.css +1347 -0
- package/src/tabbed/tabbedPane.ts +60 -0
- package/src/tableViewPane.js +51 -0
- package/src/test-import-export/common.js +6 -0
- package/src/test-import-export/edit-importer.js +20 -0
- package/src/test-import-export/testImportExport.js +0 -0
- package/src/transaction/068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/075988-3d-transparent-glass-icon-business-currency-british-pound-sc35.png +0 -0
- package/src/transaction/22-pixel-068010-3d-transparent-glass-icon-alphanumeric-dollar-sign.png +0 -0
- package/src/transaction/pane.js +629 -0
- package/src/transaction/period.js +374 -0
- package/src/transaction/thumbs_075987-3d-transparent-glass-icon-business-creditcard2.png +0 -0
- package/src/transaction/thumbs_075989-3d-transparent-glass-icon-business-currency-cent-sc35.png +0 -0
- package/src/trip/tripPane.js +176 -0
- package/src/trustedApplications/__snapshots__/trustedApplications.test.ts.snap +176 -0
- package/src/trustedApplications/trustedApplications.dom.ts +276 -0
- package/src/trustedApplications/trustedApplications.test.ts +82 -0
- package/src/trustedApplications/trustedApplications.utils.ts +51 -0
- package/src/trustedApplications/trustedApplications.view.ts +80 -0
- package/src/types.ts +34 -0
- package/src/ui/22-builder.png +0 -0
- package/src/ui/builder.graffle +0 -0
- package/src/ui/builder.png +0 -0
- package/src/ui/builder2.png +0 -0
- package/src/ui/pane.js +226 -0
- package/src/versionInfo.ts +30 -0
- package/src/video/videoPane.js +44 -0
- package/timestamp.sh +13 -0
- package/travis/bumpversion.js +29 -0
- package/tsconfig.json +78 -0
- package/typings/raw-loader.d.ts +4 -0
- package/typings/solid-namespace/index.d.ts +9 -0
- package/webpack.config.js +41 -0
- package/dist/RDFXMLPane.js +0 -58
- package/dist/RDFXMLPane.js.map +0 -1
- package/dist/argument/argumentPane.js.map +0 -1
- package/dist/attach/attachPane.js.map +0 -1
- package/dist/audio/audioPane.js.map +0 -1
- package/dist/classInstancePane.js.map +0 -1
- package/dist/dashboard/basicPreferences.js +0 -147
- package/dist/dashboard/basicPreferences.js.map +0 -1
- package/dist/dashboard/dashboardPane.js.map +0 -1
- package/dist/dashboard/homepage.js +0 -54
- package/dist/dashboard/homepage.js.map +0 -1
- package/dist/dataContentPane.js.map +0 -1
- package/dist/defaultPane.js.map +0 -1
- package/dist/dokieli/dokieliPane.js.map +0 -1
- package/dist/dokieli/new.js.map +0 -1
- package/dist/form/pane.js.map +0 -1
- package/dist/home/homePane.js +0 -73
- package/dist/home/homePane.js.map +0 -1
- package/dist/humanReadablePane.js +0 -135
- package/dist/humanReadablePane.js.map +0 -1
- package/dist/imagePane.js +0 -70
- package/dist/imagePane.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internal/internalPane.js.map +0 -1
- package/dist/mainPage/header.js +0 -85
- package/dist/mainPage/header.js.map +0 -1
- package/dist/mainPage/index.js +0 -25
- package/dist/mainPage/index.js.map +0 -1
- package/dist/microblogPane/microblogPane.js.map +0 -1
- package/dist/n3Pane.js +0 -56
- package/dist/n3Pane.js.map +0 -1
- package/dist/outline/manager.js +0 -1997
- package/dist/outline/manager.js.map +0 -1
- package/dist/outline/outlineIcons.js.map +0 -1
- package/dist/outline/propertyViews.js.map +0 -1
- package/dist/outline/queryByExample.js.map +0 -1
- package/dist/outline/userInput.js.map +0 -1
- package/dist/outline/viewAsImage.js +0 -15
- package/dist/outline/viewAsImage.js.map +0 -1
- package/dist/outline/viewAsMbox.js +0 -22
- package/dist/outline/viewAsMbox.js.map +0 -1
- package/dist/pad/padPane.js.map +0 -1
- package/dist/playlist/playlistPane.js.map +0 -1
- package/dist/registerPanes.js.map +0 -1
- package/dist/schedule/schedulePane.js.map +0 -1
- package/dist/sharing/sharingPane.js.map +0 -1
- package/dist/slideshow/slideshowPane.js +0 -80
- package/dist/slideshow/slideshowPane.js.map +0 -1
- package/dist/socialPane.js.map +0 -1
- package/dist/tabbed/tabbedPane.js +0 -58
- package/dist/tabbed/tabbedPane.js.map +0 -1
- package/dist/tableViewPane.js.map +0 -1
- package/dist/transaction/pane.js.map +0 -1
- package/dist/transaction/period.js.map +0 -1
- package/dist/trip/tripPane.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.dom.js +0 -146
- package/dist/trustedApplications/trustedApplications.dom.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.utils.js +0 -24
- package/dist/trustedApplications/trustedApplications.utils.js.map +0 -1
- package/dist/trustedApplications/trustedApplications.view.js +0 -56
- package/dist/trustedApplications/trustedApplications.view.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/ui/pane.js.map +0 -1
- package/dist/versionInfo.js +0 -37
- package/dist/versionInfo.js.map +0 -1
- package/dist/video/videoPane.js +0 -43
- package/dist/video/videoPane.js.map +0 -1
- /package/{dist → lib}/dashboard/basicPreferences.d.ts +0 -0
- /package/{dist → lib}/dashboard/basicPreferences.d.ts.map +0 -0
- /package/{dist → lib}/dashboard/dashboardPane.d.ts +0 -0
- /package/{dist → lib}/dashboard/dashboardPane.d.ts.map +0 -0
- /package/{dist → lib}/dashboard/homepage.d.ts +0 -0
- /package/{dist → lib}/dashboard/homepage.d.ts.map +0 -0
- /package/{dist → lib}/global.d.js +0 -0
- /package/{dist → lib}/global.d.js.map +0 -0
- /package/{dist → lib}/home/homePane.d.ts +0 -0
- /package/{dist → lib}/home/homePane.d.ts.map +0 -0
- /package/{dist → lib}/index.d.ts +0 -0
- /package/{dist → lib}/index.d.ts.map +0 -0
- /package/{dist → lib}/internal/internalPane.d.ts +0 -0
- /package/{dist → lib}/internal/internalPane.d.ts.map +0 -0
- /package/{dist → lib}/mainPage/footer.d.ts +0 -0
- /package/{dist → lib}/mainPage/footer.d.ts.map +0 -0
- /package/{dist → lib}/mainPage/header.d.ts +0 -0
- /package/{dist → lib}/mainPage/header.d.ts.map +0 -0
- /package/{dist → lib}/mainPage/index.d.ts +0 -0
- /package/{dist → lib}/outline/context.d.ts +0 -0
- /package/{dist → lib}/outline/context.d.ts.map +0 -0
- /package/{dist → lib}/outline/propertyViews.d.ts +0 -0
- /package/{dist → lib}/outline/propertyViews.d.ts.map +0 -0
- /package/{dist → lib}/outline/viewAsImage.d.ts +0 -0
- /package/{dist → lib}/outline/viewAsImage.d.ts.map +0 -0
- /package/{dist → lib}/outline/viewAsMbox.d.ts +0 -0
- /package/{dist → lib}/outline/viewAsMbox.d.ts.map +0 -0
- /package/{dist → lib}/pad/padPane.d.ts +0 -0
- /package/{dist → lib}/pad/padPane.d.ts.map +0 -0
- /package/{dist → lib}/sharing/sharingPane.d.ts +0 -0
- /package/{dist → lib}/sharing/sharingPane.d.ts.map +0 -0
- /package/{dist → lib}/tabbed/tabbedPane.d.ts +0 -0
- /package/{dist → lib}/tabbed/tabbedPane.d.ts.map +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.dom.d.ts +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.dom.d.ts.map +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.utils.d.ts +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.utils.d.ts.map +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.view.d.ts +0 -0
- /package/{dist → lib}/trustedApplications/trustedApplications.view.d.ts.map +0 -0
- /package/{dist → lib}/types.d.ts +0 -0
- /package/{dist → lib}/types.d.ts.map +0 -0
- /package/{dist → lib}/types.js +0 -0
|
@@ -1,34 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.schedulePane = void 0;
|
|
7
8
|
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
8
9
|
var _solidLogic = require("solid-logic");
|
|
9
|
-
|
|
10
|
+
var _formsForSchedule = _interopRequireDefault(require("./formsForSchedule.js"));
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
10
13
|
/* Scheduler Pane
|
|
11
14
|
**
|
|
12
15
|
**
|
|
13
16
|
*/
|
|
14
17
|
/* global alert */
|
|
15
|
-
/* babel-plugin-inline-import './formsForSchedule.ttl' */
|
|
16
|
-
const formText = "@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";
|
|
17
|
-
const $rdf = UI.rdf;
|
|
18
|
-
const ns = UI.ns;
|
|
19
18
|
|
|
19
|
+
var $rdf = UI.rdf;
|
|
20
|
+
var ns = UI.ns;
|
|
20
21
|
// @@ Give other combos too-- see schedule ontology
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
var possibleAvailabilities = [ns.sched('No'), ns.sched('Maybe'), ns.sched('Yes')];
|
|
23
|
+
var schedulePane = exports.schedulePane = {
|
|
23
24
|
icon: UI.icons.iconBase + 'noun_346777.svg',
|
|
24
25
|
// @@ better?
|
|
25
26
|
|
|
26
27
|
name: 'schedule',
|
|
27
28
|
audience: [ns.solid('PowerUser')],
|
|
28
29
|
// Does the subject deserve an Scheduler pane?
|
|
29
|
-
label: function (subject, context) {
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
label: function label(subject, context) {
|
|
31
|
+
var kb = context.session.store;
|
|
32
|
+
var t = kb.findTypeURIs(subject);
|
|
32
33
|
if (t['http://www.w3.org/ns/pim/schedule#SchedulableEvent']) {
|
|
33
34
|
return 'Scheduling poll';
|
|
34
35
|
}
|
|
@@ -36,13 +37,13 @@ const schedulePane = exports.schedulePane = {
|
|
|
36
37
|
},
|
|
37
38
|
// Mint a new Schedule poll
|
|
38
39
|
mintClass: ns.sched('SchedulableEvent'),
|
|
39
|
-
mintNew: function (context, options) {
|
|
40
|
+
mintNew: function mintNew(context, options) {
|
|
40
41
|
return new Promise(function (resolve, reject) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
var ns = UI.ns;
|
|
43
|
+
var kb = context.session.store;
|
|
44
|
+
var newBase = options.newBase;
|
|
45
|
+
var thisInstance = options.useExisting || $rdf.sym(options.newBase + 'index.ttl#this');
|
|
46
|
+
var complainIfBad = function complainIfBad(ok, body) {
|
|
46
47
|
if (ok) return;
|
|
47
48
|
console.log('Error in Schedule Pane: Error constructing new scheduler: ' + body);
|
|
48
49
|
reject(new Error(body));
|
|
@@ -53,12 +54,12 @@ const schedulePane = exports.schedulePane = {
|
|
|
53
54
|
// Two constiations of ACL for this app, public read and public read/write
|
|
54
55
|
// In all cases owner has read write control
|
|
55
56
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
var genACLtext = function genACLtext(docURI, aclURI, allWrite) {
|
|
58
|
+
var g = $rdf.graph();
|
|
59
|
+
var auth = $rdf.Namespace('http://www.w3.org/ns/auth/acl#');
|
|
60
|
+
var a = g.sym(aclURI + '#a1');
|
|
61
|
+
var acl = g.sym(aclURI);
|
|
62
|
+
var doc = g.sym(docURI);
|
|
62
63
|
g.add(a, UI.ns.rdf('type'), auth('Authorization'), acl);
|
|
63
64
|
g.add(a, auth('accessTo'), doc, acl);
|
|
64
65
|
g.add(a, auth('agent'), me, acl);
|
|
@@ -83,49 +84,53 @@ const schedulePane = exports.schedulePane = {
|
|
|
83
84
|
}
|
|
84
85
|
*/
|
|
85
86
|
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
var setACL2 = function setACL2(docURI, allWrite, callbackFunction) {
|
|
88
|
+
var aclDoc = kb.any(kb.sym(docURI), kb.sym('http://www.iana.org/assignments/link-relations/acl')); // @@ check that this get set by web.js
|
|
88
89
|
|
|
89
90
|
if (aclDoc) {
|
|
90
91
|
// Great we already know where it is
|
|
91
|
-
|
|
92
|
+
var aclText = genACLtext(docURI, aclDoc.uri, allWrite);
|
|
92
93
|
return fetcher.webOperation('PUT', aclDoc.uri, {
|
|
93
94
|
data: aclText,
|
|
94
95
|
contentType: 'text/turtle'
|
|
95
|
-
}).then(
|
|
96
|
+
}).then(function (_result) {
|
|
97
|
+
return callbackFunction(true);
|
|
98
|
+
})["catch"](function (err) {
|
|
96
99
|
callbackFunction(false, err.message);
|
|
97
100
|
});
|
|
98
101
|
} else {
|
|
99
|
-
return fetcher.load(docURI)
|
|
102
|
+
return fetcher.load(docURI)["catch"](function (err) {
|
|
100
103
|
callbackFunction(false, 'Getting headers for ACL: ' + err);
|
|
101
|
-
}).then(()
|
|
102
|
-
|
|
104
|
+
}).then(function () {
|
|
105
|
+
var aclDoc = kb.any(kb.sym(docURI), kb.sym('http://www.iana.org/assignments/link-relations/acl'));
|
|
103
106
|
if (!aclDoc) {
|
|
104
107
|
// complainIfBad(false, "No Link rel=ACL header for " + docURI)
|
|
105
108
|
throw new Error('No Link rel=ACL header for ' + docURI);
|
|
106
109
|
}
|
|
107
|
-
|
|
110
|
+
var aclText = genACLtext(docURI, aclDoc.uri, allWrite);
|
|
108
111
|
return fetcher.webOperation('PUT', aclDoc.uri, {
|
|
109
112
|
data: aclText,
|
|
110
113
|
contentType: 'text/turtle'
|
|
111
114
|
});
|
|
112
|
-
}).then(
|
|
115
|
+
}).then(function (_result) {
|
|
116
|
+
return callbackFunction(true);
|
|
117
|
+
})["catch"](function (err) {
|
|
113
118
|
callbackFunction(false, err.message);
|
|
114
119
|
});
|
|
115
120
|
}
|
|
116
121
|
};
|
|
117
122
|
|
|
118
123
|
// Body of mintNew
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
124
|
+
var fetcher = kb.fetcher;
|
|
125
|
+
var updater = kb.updater;
|
|
126
|
+
var me = options.me || _solidLogic.authn.currentUser();
|
|
122
127
|
if (!me) {
|
|
123
128
|
console.log('MUST BE LOGGED IN');
|
|
124
129
|
alert('NOT LOGGED IN');
|
|
125
130
|
return;
|
|
126
131
|
}
|
|
127
|
-
|
|
128
|
-
|
|
132
|
+
var base = thisInstance.dir().uri;
|
|
133
|
+
var newDetailsDoc, newInstance; // , newIndexDoc
|
|
129
134
|
|
|
130
135
|
if (options.useExisting) {
|
|
131
136
|
newInstance = options.useExisting;
|
|
@@ -140,21 +145,21 @@ const schedulePane = exports.schedulePane = {
|
|
|
140
145
|
// newIndexDoc = kb.sym(newBase + 'index.html')
|
|
141
146
|
newInstance = kb.sym(newDetailsDoc.uri + '#event');
|
|
142
147
|
}
|
|
143
|
-
|
|
144
|
-
|
|
148
|
+
var newResultsDoc = kb.sym(newBase + 'results.ttl');
|
|
149
|
+
var toBeCopied = options.noIndexHTML ? {} : [{
|
|
145
150
|
local: 'index.html',
|
|
146
151
|
contentType: 'text/html'
|
|
147
152
|
}];
|
|
148
|
-
|
|
153
|
+
var agenda = [];
|
|
149
154
|
|
|
150
155
|
// @@ This needs some form of visible progress bar
|
|
151
|
-
for (
|
|
152
|
-
|
|
153
|
-
|
|
156
|
+
for (var f = 0; f < toBeCopied.length; f++) {
|
|
157
|
+
var item = toBeCopied[f];
|
|
158
|
+
var fun = function copyItem(item) {
|
|
154
159
|
agenda.push(function () {
|
|
155
|
-
|
|
160
|
+
var newURI = newBase + item.local;
|
|
156
161
|
console.log('Copying ' + base + item.local + ' to ' + newURI);
|
|
157
|
-
|
|
162
|
+
var setThatACL = function setThatACL() {
|
|
158
163
|
setACL2(newURI, false, function (ok, message) {
|
|
159
164
|
if (!ok) {
|
|
160
165
|
complainIfBad(ok, 'FAILED to set ACL ' + newURI + ' : ' + message);
|
|
@@ -164,10 +169,12 @@ const schedulePane = exports.schedulePane = {
|
|
|
164
169
|
}
|
|
165
170
|
});
|
|
166
171
|
};
|
|
167
|
-
kb.fetcher.webCopy(base + item.local, newBase + item.local, item.contentType).then(
|
|
172
|
+
kb.fetcher.webCopy(base + item.local, newBase + item.local, item.contentType).then(function () {
|
|
173
|
+
return _solidLogic.authn.checkUser();
|
|
174
|
+
}).then(function (webId) {
|
|
168
175
|
me = webId;
|
|
169
176
|
setThatACL();
|
|
170
|
-
})
|
|
177
|
+
})["catch"](function (err) {
|
|
171
178
|
console.log('FAILED to copy ' + base + item.local + ' : ' + err.message);
|
|
172
179
|
complainIfBad(false, 'FAILED to copy ' + base + item.local + ' : ' + err.message);
|
|
173
180
|
});
|
|
@@ -196,9 +203,9 @@ const schedulePane = exports.schedulePane = {
|
|
|
196
203
|
kb.fetcher.webOperation('PUT', newResultsDoc.uri, {
|
|
197
204
|
data: '',
|
|
198
205
|
contentType: 'text/turtle'
|
|
199
|
-
}).then(()
|
|
206
|
+
}).then(function () {
|
|
200
207
|
agenda.shift()();
|
|
201
|
-
})
|
|
208
|
+
})["catch"](function (err) {
|
|
202
209
|
complainIfBad(false, 'Failed to initialize empty results file: ' + err.message);
|
|
203
210
|
});
|
|
204
211
|
});
|
|
@@ -227,55 +234,55 @@ const schedulePane = exports.schedulePane = {
|
|
|
227
234
|
// mintNew
|
|
228
235
|
|
|
229
236
|
// Render one meeting schedule poll
|
|
230
|
-
render: function (subject, context) {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
237
|
+
render: function render(subject, context) {
|
|
238
|
+
var dom = context.dom;
|
|
239
|
+
var kb = context.session.store;
|
|
240
|
+
var ns = UI.ns;
|
|
241
|
+
var invitation = subject;
|
|
242
|
+
var appPathSegment = 'app-when-can-we.w3.org'; // how to allocate this string and connect to
|
|
236
243
|
|
|
237
244
|
// ////////////////////////////////////////////
|
|
238
245
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
246
|
+
var fetcher = kb.fetcher;
|
|
247
|
+
var updater = kb.updater;
|
|
248
|
+
var waitingForLogin = false;
|
|
249
|
+
var thisInstance = subject;
|
|
250
|
+
var detailsDoc = subject.doc();
|
|
251
|
+
var baseDir = detailsDoc.dir();
|
|
252
|
+
var base = baseDir.uri;
|
|
253
|
+
var resultsDoc = $rdf.sym(base + 'results.ttl');
|
|
247
254
|
// const formsURI = base + 'forms.ttl'
|
|
248
255
|
// We can't in fact host stuff from there because of CORS
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
$rdf.parse(
|
|
256
|
+
var formsURI = 'https://solidos.github.io/solid-panes/schedule/formsForSchedule.ttl';
|
|
257
|
+
var form1 = kb.sym(formsURI + '#form1');
|
|
258
|
+
var form2 = kb.sym(formsURI + '#form2');
|
|
259
|
+
var form3 = kb.sym(formsURI + '#form3');
|
|
260
|
+
$rdf.parse(_formsForSchedule["default"], kb, formsURI, 'text/turtle'); // Load forms directly
|
|
254
261
|
|
|
255
|
-
|
|
256
|
-
|
|
262
|
+
var inputStyle = 'background-color: #eef; padding: 0.5em; border: .5em solid white; font-size: 100%'; // font-size: 120%
|
|
263
|
+
var buttonIconStyle = 'width: 1.8em; height: 1.8em;';
|
|
257
264
|
|
|
258
265
|
// Utility functions
|
|
259
266
|
|
|
260
|
-
|
|
267
|
+
var complainIfBad = function complainIfBad(ok, message) {
|
|
261
268
|
if (!ok) {
|
|
262
269
|
div.appendChild(UI.widgets.errorMessageBlock(dom, message, 'pink'));
|
|
263
270
|
}
|
|
264
271
|
};
|
|
265
|
-
|
|
272
|
+
var clearElement = function clearElement(ele) {
|
|
266
273
|
while (ele.firstChild) {
|
|
267
274
|
ele.removeChild(ele.firstChild);
|
|
268
275
|
}
|
|
269
276
|
return ele;
|
|
270
277
|
};
|
|
271
|
-
|
|
272
|
-
|
|
278
|
+
var refreshCellColor = function refreshCellColor(cell, value) {
|
|
279
|
+
var bg = kb.any(value, UI.ns.ui('backgroundColor'));
|
|
273
280
|
if (bg) {
|
|
274
281
|
cell.setAttribute('style', 'padding: 0.3em; text-align: center; background-color: ' + bg + ';');
|
|
275
282
|
}
|
|
276
283
|
};
|
|
277
|
-
|
|
278
|
-
_solidLogic.authn.checkUser().then(webId
|
|
284
|
+
var me;
|
|
285
|
+
_solidLogic.authn.checkUser().then(function (webId) {
|
|
279
286
|
me = webId;
|
|
280
287
|
if (logInOutButton) {
|
|
281
288
|
logInOutButton.refresh();
|
|
@@ -292,8 +299,8 @@ const schedulePane = exports.schedulePane = {
|
|
|
292
299
|
// Viral growth path: user of app decides to make another instance
|
|
293
300
|
//
|
|
294
301
|
|
|
295
|
-
|
|
296
|
-
|
|
302
|
+
var newInstanceButton = function newInstanceButton() {
|
|
303
|
+
var b = UI.login.newAppInstance(dom, {
|
|
297
304
|
noun: 'scheduler'
|
|
298
305
|
}, initializeNewInstanceInWorkspace);
|
|
299
306
|
b.firstChild.setAttribute('style', inputStyle);
|
|
@@ -302,8 +309,8 @@ const schedulePane = exports.schedulePane = {
|
|
|
302
309
|
|
|
303
310
|
// /////////////////////// Create new document files for new instance of app
|
|
304
311
|
|
|
305
|
-
|
|
306
|
-
|
|
312
|
+
var initializeNewInstanceInWorkspace = function initializeNewInstanceInWorkspace(ws) {
|
|
313
|
+
var newBase = kb.any(ws, ns.space('uriPrefix'));
|
|
307
314
|
if (!newBase) {
|
|
308
315
|
newBase = ws.uri.split('#')[0];
|
|
309
316
|
} else {
|
|
@@ -313,28 +320,28 @@ const schedulePane = exports.schedulePane = {
|
|
|
313
320
|
$rdf.log.error(appPathSegment + ': No / at end of uriPrefix ' + newBase); // @@ paramater?
|
|
314
321
|
newBase = newBase + '/';
|
|
315
322
|
}
|
|
316
|
-
|
|
323
|
+
var now = new Date();
|
|
317
324
|
newBase += appPathSegment + '/id' + now.getTime() + '/'; // unique id
|
|
318
325
|
|
|
319
326
|
initializeNewInstanceAtBase(thisInstance, newBase);
|
|
320
327
|
};
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
thisInstance,
|
|
324
|
-
newBase
|
|
328
|
+
var initializeNewInstanceAtBase = function initializeNewInstanceAtBase(thisInstance, newBase) {
|
|
329
|
+
var options = {
|
|
330
|
+
thisInstance: thisInstance,
|
|
331
|
+
newBase: newBase
|
|
325
332
|
};
|
|
326
333
|
this.mintNew(context, options).then(function (options) {
|
|
327
|
-
|
|
334
|
+
var p = div.appendChild(dom.createElement('p'));
|
|
328
335
|
p.setAttribute('style', 'font-size: 140%;');
|
|
329
|
-
p.innerHTML =
|
|
330
|
-
})
|
|
336
|
+
p.innerHTML = "Your <a href='" + options.newInstance.uri + "'><b>new scheduler</b></a> is ready to be set up. " + "<br/><br/><a href='" + options.newInstance.uri + "'>Say when you what days work for you.</a>";
|
|
337
|
+
})["catch"](function (error) {
|
|
331
338
|
complainIfBad(false, 'Error createing new scheduler at ' + options.newInstance + ': ' + error);
|
|
332
339
|
});
|
|
333
340
|
};
|
|
334
341
|
|
|
335
342
|
// ///////////////////////
|
|
336
343
|
|
|
337
|
-
|
|
344
|
+
var getForms = function getForms() {
|
|
338
345
|
console.log('getforms()');
|
|
339
346
|
getDetails();
|
|
340
347
|
/*
|
|
@@ -345,7 +352,7 @@ const schedulePane = exports.schedulePane = {
|
|
|
345
352
|
})
|
|
346
353
|
*/
|
|
347
354
|
};
|
|
348
|
-
|
|
355
|
+
var getDetails = function getDetails() {
|
|
349
356
|
console.log('getDetails()'); // Looking for blank screen hang-up
|
|
350
357
|
fetcher.nowOrWhenFetched(detailsDoc.uri, undefined, function (ok, body) {
|
|
351
358
|
console.log('getDetails() ok? ' + ok);
|
|
@@ -353,9 +360,9 @@ const schedulePane = exports.schedulePane = {
|
|
|
353
360
|
showAppropriateDisplay();
|
|
354
361
|
});
|
|
355
362
|
};
|
|
356
|
-
|
|
363
|
+
var showAppropriateDisplay = function showAppropriateDisplay() {
|
|
357
364
|
console.log('showAppropriateDisplay()');
|
|
358
|
-
_solidLogic.authn.checkUser().then(webId
|
|
365
|
+
_solidLogic.authn.checkUser().then(function (webId) {
|
|
359
366
|
if (!webId) {
|
|
360
367
|
return showSignon();
|
|
361
368
|
}
|
|
@@ -368,7 +375,7 @@ const schedulePane = exports.schedulePane = {
|
|
|
368
375
|
showBootstrap(div);
|
|
369
376
|
return;
|
|
370
377
|
}
|
|
371
|
-
|
|
378
|
+
var ready = kb.any(subject, ns.sched('ready'));
|
|
372
379
|
if (!ready) {
|
|
373
380
|
showForms();
|
|
374
381
|
} else {
|
|
@@ -377,39 +384,39 @@ const schedulePane = exports.schedulePane = {
|
|
|
377
384
|
}
|
|
378
385
|
});
|
|
379
386
|
};
|
|
380
|
-
|
|
387
|
+
var showSignon = function showSignon() {
|
|
381
388
|
clearElement(naviMain);
|
|
382
|
-
|
|
383
|
-
div,
|
|
384
|
-
dom
|
|
389
|
+
var signonContext = {
|
|
390
|
+
div: div,
|
|
391
|
+
dom: dom
|
|
385
392
|
};
|
|
386
|
-
UI.login.ensureLoggedIn(signonContext).then(context
|
|
393
|
+
UI.login.ensureLoggedIn(signonContext).then(function (context) {
|
|
387
394
|
me = context.me;
|
|
388
395
|
waitingForLogin = false; // untested
|
|
389
396
|
showAppropriateDisplay();
|
|
390
397
|
});
|
|
391
398
|
};
|
|
392
|
-
|
|
393
|
-
|
|
399
|
+
var showBootstrap = function showBootstrap() {
|
|
400
|
+
var div = clearElement(naviMain);
|
|
394
401
|
div.appendChild(UI.login.newAppInstance(dom, {
|
|
395
402
|
noun: 'poll'
|
|
396
403
|
}, initializeNewInstanceInWorkspace));
|
|
397
404
|
div.appendChild(dom.createElement('hr')); // @@
|
|
398
405
|
|
|
399
|
-
|
|
406
|
+
var p = div.appendChild(dom.createElement('p'));
|
|
400
407
|
p.textContent = 'Where would you like to store the data for the poll? ' + 'Give the URL of the directory where you would like the data stored.';
|
|
401
|
-
|
|
408
|
+
var baseField = div.appendChild(dom.createElement('input'));
|
|
402
409
|
baseField.setAttribute('type', 'text');
|
|
403
410
|
baseField.size = 80; // really a string
|
|
404
411
|
baseField.label = 'base URL';
|
|
405
412
|
baseField.autocomplete = 'on';
|
|
406
413
|
div.appendChild(dom.createElement('br')); // @@
|
|
407
414
|
|
|
408
|
-
|
|
415
|
+
var button = div.appendChild(dom.createElement('button'));
|
|
409
416
|
button.setAttribute('style', inputStyle);
|
|
410
417
|
button.textContent = 'Start new poll at this URI';
|
|
411
418
|
button.addEventListener('click', function (_e) {
|
|
412
|
-
|
|
419
|
+
var newBase = baseField.value;
|
|
413
420
|
if (newBase.slice(-1) !== '/') {
|
|
414
421
|
newBase += '/';
|
|
415
422
|
}
|
|
@@ -419,23 +426,23 @@ const schedulePane = exports.schedulePane = {
|
|
|
419
426
|
|
|
420
427
|
// ///////////// The forms to configure the poll
|
|
421
428
|
|
|
422
|
-
|
|
423
|
-
|
|
429
|
+
var doneButton = dom.createElement('button');
|
|
430
|
+
var showForms = function showForms() {
|
|
424
431
|
clearElement(naviCenter); // Remove refresh button if nec
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
432
|
+
var div = naviMain;
|
|
433
|
+
var wizard = true;
|
|
434
|
+
var currentSlide = 0;
|
|
435
|
+
var gotDoneButton = false;
|
|
429
436
|
if (wizard) {
|
|
430
|
-
|
|
431
|
-
|
|
437
|
+
var forms = [form1, form2, form3];
|
|
438
|
+
var slides = [];
|
|
432
439
|
currentSlide = 0;
|
|
433
|
-
for (
|
|
434
|
-
|
|
440
|
+
for (var f = 0; f < forms.length; f++) {
|
|
441
|
+
var slide = dom.createElement('div');
|
|
435
442
|
UI.widgets.appendForm(document, slide, {}, subject, forms[f], detailsDoc, complainIfBad);
|
|
436
443
|
slides.push(slide);
|
|
437
444
|
}
|
|
438
|
-
|
|
445
|
+
var refresh = function refresh() {
|
|
439
446
|
clearElement(naviMain).appendChild(slides[currentSlide]);
|
|
440
447
|
if (currentSlide === 0) {
|
|
441
448
|
b1.setAttribute('disabled', '');
|
|
@@ -454,7 +461,7 @@ const schedulePane = exports.schedulePane = {
|
|
|
454
461
|
b2.removeAttribute('disabled');
|
|
455
462
|
}
|
|
456
463
|
};
|
|
457
|
-
|
|
464
|
+
var b1 = clearElement(naviLeft).appendChild(dom.createElement('button'));
|
|
458
465
|
b1.setAttribute('style', inputStyle);
|
|
459
466
|
b1.textContent = '<- go back';
|
|
460
467
|
b1.addEventListener('click', function (_e) {
|
|
@@ -463,7 +470,7 @@ const schedulePane = exports.schedulePane = {
|
|
|
463
470
|
refresh();
|
|
464
471
|
}
|
|
465
472
|
}, false);
|
|
466
|
-
|
|
473
|
+
var b2 = clearElement(naviRight).appendChild(dom.createElement('button'));
|
|
467
474
|
b2.setAttribute('style', inputStyle);
|
|
468
475
|
b2.textContent = 'continue ->';
|
|
469
476
|
b2.addEventListener('click', function (_e) {
|
|
@@ -476,7 +483,7 @@ const schedulePane = exports.schedulePane = {
|
|
|
476
483
|
} else {
|
|
477
484
|
// not wizard one big form
|
|
478
485
|
// @@@ create the initial config doc if not exist
|
|
479
|
-
|
|
486
|
+
var table = div.appendChild(dom.createElement('table'));
|
|
480
487
|
UI.widgets.appendForm(document, table, {}, subject, form1, detailsDoc, complainIfBad);
|
|
481
488
|
UI.widgets.appendForm(document, table, {}, subject, form2, detailsDoc, complainIfBad);
|
|
482
489
|
UI.widgets.appendForm(document, table, {}, subject, form3, detailsDoc, complainIfBad);
|
|
@@ -484,7 +491,7 @@ const schedulePane = exports.schedulePane = {
|
|
|
484
491
|
}
|
|
485
492
|
// @@@ link config to results
|
|
486
493
|
|
|
487
|
-
|
|
494
|
+
var insertables = [];
|
|
488
495
|
insertables.push($rdf.st(subject, ns.sched('availabilityOptions'), ns.sched('YesNoMaybe'), detailsDoc));
|
|
489
496
|
insertables.push($rdf.st(subject, ns.sched('ready'), new Date(), detailsDoc));
|
|
490
497
|
insertables.push($rdf.st(subject, ns.sched('results'), resultsDoc, detailsDoc)); // @@ also link in results
|
|
@@ -508,16 +515,16 @@ const schedulePane = exports.schedulePane = {
|
|
|
508
515
|
});
|
|
509
516
|
}
|
|
510
517
|
}, false);
|
|
511
|
-
|
|
518
|
+
var emailButton = dom.createElement('button');
|
|
512
519
|
emailButton.setAttribute('style', inputStyle);
|
|
513
|
-
|
|
520
|
+
var emailIcon = emailButton.appendChild(dom.createElement('img'));
|
|
514
521
|
emailIcon.setAttribute('src', UI.icons.iconBase + 'noun_480183.svg'); // noun_480183.svg
|
|
515
522
|
emailIcon.setAttribute('style', buttonIconStyle);
|
|
516
523
|
// emailButton.textContent = 'email invitations'
|
|
517
524
|
emailButton.addEventListener('click', function (_e) {
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
525
|
+
var title = kb.anyValue(subject, ns.cal('summary')) || kb.anyValue(subject, ns.dc('title')) || '';
|
|
526
|
+
var mailto = 'mailto:' + kb.each(subject, ns.sched('invitee')).map(function (who) {
|
|
527
|
+
var mbox = kb.any(who, ns.foaf('mbox'));
|
|
521
528
|
return mbox ? mbox.uri.replace('mailto:', '') : '';
|
|
522
529
|
}).join(',') + '?subject=' + encodeURIComponent(title + '-- When can we meet?') + '&body=' + encodeURIComponent(title + '\n\nWhen can you?\n\nSee ' + subject + '\n');
|
|
523
530
|
// @@ assumed there is a data browser
|
|
@@ -649,7 +656,7 @@ const schedulePane = exports.schedulePane = {
|
|
|
649
656
|
|
|
650
657
|
// Read or create empty results file
|
|
651
658
|
function getResults() {
|
|
652
|
-
fetcher.nowOrWhenFetched(resultsDoc.uri, (ok, body, response)
|
|
659
|
+
fetcher.nowOrWhenFetched(resultsDoc.uri, function (ok, body, response) {
|
|
653
660
|
if (!ok) {
|
|
654
661
|
if (response.status === 404) {
|
|
655
662
|
// / Check explicitly for 404 error
|
|
@@ -681,10 +688,10 @@ const schedulePane = exports.schedulePane = {
|
|
|
681
688
|
// div.appendChild(dom.createElement('hr'))
|
|
682
689
|
|
|
683
690
|
// const invitation = subject
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
691
|
+
var title = kb.any(invitation, ns.cal('summary'));
|
|
692
|
+
var comment = kb.any(invitation, ns.cal('comment'));
|
|
693
|
+
var location = kb.any(invitation, ns.cal('location'));
|
|
694
|
+
var div = naviMain;
|
|
688
695
|
if (title) div.appendChild(dom.createElement('h3')).textContent = title;
|
|
689
696
|
if (location) {
|
|
690
697
|
div.appendChild(dom.createElement('address')).textContent = location.value;
|
|
@@ -692,16 +699,16 @@ const schedulePane = exports.schedulePane = {
|
|
|
692
699
|
if (comment) {
|
|
693
700
|
div.appendChild(dom.createElement('p')).textContent = comment.value;
|
|
694
701
|
}
|
|
695
|
-
|
|
702
|
+
var author = kb.any(invitation, ns.dc('author'));
|
|
696
703
|
if (author) {
|
|
697
|
-
|
|
704
|
+
var authorName = kb.any(author, ns.foaf('name'));
|
|
698
705
|
if (authorName) {
|
|
699
706
|
div.appendChild(dom.createElement('p')).textContent = authorName;
|
|
700
707
|
}
|
|
701
708
|
}
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
709
|
+
var query = new $rdf.Query('Responses');
|
|
710
|
+
var v = {};
|
|
711
|
+
var vs = ['time', 'author', 'value', 'resp', 'cell'];
|
|
705
712
|
vs.forEach(function (x) {
|
|
706
713
|
query.vars.push(v[x] = $rdf.variable(x));
|
|
707
714
|
});
|
|
@@ -713,7 +720,7 @@ const schedulePane = exports.schedulePane = {
|
|
|
713
720
|
|
|
714
721
|
// Sort by by person @@@
|
|
715
722
|
|
|
716
|
-
|
|
723
|
+
var options = {};
|
|
717
724
|
options.set_x = kb.each(subject, ns.sched('option')); // @@@@@ option -> dtstart in future
|
|
718
725
|
options.set_x = options.set_x.map(function (opt) {
|
|
719
726
|
return kb.any(opt, ns.cal('dtstart'));
|
|
@@ -722,16 +729,16 @@ const schedulePane = exports.schedulePane = {
|
|
|
722
729
|
options.set_y = options.set_y.map(function (resp) {
|
|
723
730
|
return kb.any(resp, ns.dc('author'));
|
|
724
731
|
});
|
|
725
|
-
|
|
732
|
+
var possibleTimes = kb.each(invitation, ns.sched('option')).map(function (opt) {
|
|
726
733
|
return kb.any(opt, ns.cal('dtstart'));
|
|
727
734
|
});
|
|
728
|
-
|
|
729
|
-
|
|
735
|
+
var displayTheMatrix = function displayTheMatrix() {
|
|
736
|
+
var matrix = div.appendChild(UI.matrix.matrixForQuery(dom, query, v.time, v.author, v.value, options, function () {}));
|
|
730
737
|
matrix.setAttribute('class', 'matrix');
|
|
731
|
-
|
|
738
|
+
var refreshButton = dom.createElement('button');
|
|
732
739
|
refreshButton.setAttribute('style', inputStyle);
|
|
733
740
|
// refreshButton.textContent = 'refresh' // noun_479395.svg
|
|
734
|
-
|
|
741
|
+
var refreshIcon = dom.createElement('img');
|
|
735
742
|
refreshIcon.setAttribute('src', UI.icons.iconBase + 'noun_479395.svg');
|
|
736
743
|
refreshIcon.setAttribute('style', buttonIconStyle);
|
|
737
744
|
refreshButton.appendChild(refreshIcon);
|
|
@@ -755,14 +762,14 @@ const schedulePane = exports.schedulePane = {
|
|
|
755
762
|
|
|
756
763
|
// const me = authn.currentUser()
|
|
757
764
|
|
|
758
|
-
|
|
759
|
-
|
|
765
|
+
var dataPointForNT = [];
|
|
766
|
+
var loginContext = {
|
|
760
767
|
div: naviCenter,
|
|
761
|
-
dom
|
|
768
|
+
dom: dom
|
|
762
769
|
};
|
|
763
|
-
UI.login.ensureLoggedIn(loginContext).then(context
|
|
764
|
-
|
|
765
|
-
|
|
770
|
+
UI.login.ensureLoggedIn(loginContext).then(function (context) {
|
|
771
|
+
var me = context.me;
|
|
772
|
+
var doc = resultsDoc;
|
|
766
773
|
options.set_y = options.set_y.filter(function (z) {
|
|
767
774
|
return !z.sameTerm(me);
|
|
768
775
|
});
|
|
@@ -775,42 +782,42 @@ const schedulePane = exports.schedulePane = {
|
|
|
775
782
|
});
|
|
776
783
|
}
|
|
777
784
|
if (y.sameTerm(me)) {
|
|
778
|
-
|
|
785
|
+
var callbackFunction = function callbackFunction() {
|
|
779
786
|
refreshCellColor(cell, value);
|
|
780
787
|
}; // @@ may need that
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
788
|
+
var selectOptions = {};
|
|
789
|
+
var predicate = ns.sched('availabilty');
|
|
790
|
+
var cellSubject = dataPointForNT[x.toNT()];
|
|
791
|
+
var selector = UI.widgets.makeSelectForOptions(dom, kb, cellSubject, predicate, possibleAvailabilities, selectOptions, resultsDoc, callbackFunction);
|
|
785
792
|
cell.appendChild(selector);
|
|
786
793
|
} else if (value !== null) {
|
|
787
794
|
cell.textContent = UI.utils.label(value);
|
|
788
795
|
}
|
|
789
796
|
};
|
|
790
|
-
|
|
791
|
-
|
|
797
|
+
var responses = kb.each(invitation, ns.sched('response'));
|
|
798
|
+
var myResponse = null;
|
|
792
799
|
responses.forEach(function (r) {
|
|
793
800
|
if (kb.holds(r, ns.dc('author'), me)) {
|
|
794
801
|
myResponse = r;
|
|
795
802
|
}
|
|
796
803
|
});
|
|
797
|
-
|
|
804
|
+
var insertables = []; // list of statements to be stored
|
|
798
805
|
|
|
799
|
-
|
|
806
|
+
var id = UI.widgets.newThing(doc).uri;
|
|
800
807
|
if (myResponse === null) {
|
|
801
808
|
myResponse = $rdf.sym(id + '_response');
|
|
802
809
|
insertables.push($rdf.st(invitation, ns.sched('response'), myResponse, doc));
|
|
803
810
|
insertables.push($rdf.st(myResponse, ns.dc('author'), me, doc));
|
|
804
811
|
} else {
|
|
805
|
-
|
|
812
|
+
var dps = kb.each(myResponse, ns.sched('cell'));
|
|
806
813
|
dps.forEach(function (dataPoint) {
|
|
807
|
-
|
|
814
|
+
var time = kb.any(dataPoint, ns.cal('dtstart'));
|
|
808
815
|
dataPointForNT[time.toNT()] = dataPoint;
|
|
809
816
|
});
|
|
810
817
|
}
|
|
811
|
-
for (
|
|
818
|
+
for (var j = 0; j < possibleTimes.length; j++) {
|
|
812
819
|
if (dataPointForNT[possibleTimes[j].toNT()]) continue;
|
|
813
|
-
|
|
820
|
+
var dataPoint = $rdf.sym(id + '_' + j);
|
|
814
821
|
insertables.push($rdf.st(myResponse, ns.sched('cell'), dataPoint, doc));
|
|
815
822
|
insertables.push($rdf.st(dataPoint, ns.cal('dtstart'), possibleTimes[j], doc)); // @@
|
|
816
823
|
dataPointForNT[possibleTimes[j].toNT()] = dataPoint;
|
|
@@ -831,12 +838,12 @@ const schedulePane = exports.schedulePane = {
|
|
|
831
838
|
|
|
832
839
|
// If I made this in the first place, allow me to edit it.
|
|
833
840
|
// @@ optionally -- allows others to if according to original
|
|
834
|
-
|
|
841
|
+
var instanceCreator = kb.any(subject, ns.foaf('maker')); // owner?
|
|
835
842
|
if (!instanceCreator || instanceCreator.sameTerm(me)) {
|
|
836
|
-
|
|
843
|
+
var editButton = dom.createElement('button');
|
|
837
844
|
editButton.setAttribute('style', inputStyle);
|
|
838
845
|
// editButton.textContent = '(Modify the poll)' // noun_344563.svg
|
|
839
|
-
|
|
846
|
+
var editIcon = dom.createElement('img');
|
|
840
847
|
editIcon.setAttribute('src', UI.icons.iconBase + 'noun_344563.svg');
|
|
841
848
|
editIcon.setAttribute('style', buttonIconStyle);
|
|
842
849
|
editButton.appendChild(editIcon);
|
|
@@ -854,14 +861,14 @@ const schedulePane = exports.schedulePane = {
|
|
|
854
861
|
naviRight.appendChild(newInstanceButton());
|
|
855
862
|
} // showResults
|
|
856
863
|
|
|
857
|
-
|
|
858
|
-
|
|
864
|
+
var div = dom.createElement('div');
|
|
865
|
+
var structure = div.appendChild(dom.createElement('table')); // @@ make responsive style
|
|
859
866
|
structure.setAttribute('style', 'background-color: white; min-width: 40em; min-height: 13em;');
|
|
860
|
-
|
|
867
|
+
var naviLoginoutTR = structure.appendChild(dom.createElement('tr'));
|
|
861
868
|
naviLoginoutTR.appendChild(dom.createElement('td'));
|
|
862
869
|
naviLoginoutTR.appendChild(dom.createElement('td'));
|
|
863
870
|
naviLoginoutTR.appendChild(dom.createElement('td'));
|
|
864
|
-
|
|
871
|
+
var logInOutButton = null;
|
|
865
872
|
/*
|
|
866
873
|
const logInOutButton = UI.login.loginStatusBox(dom, setUser)
|
|
867
874
|
// floating divs lead to a mess
|
|
@@ -870,16 +877,16 @@ const schedulePane = exports.schedulePane = {
|
|
|
870
877
|
logInOutButton.setAttribute('style', 'margin-right: 0em;')
|
|
871
878
|
*/
|
|
872
879
|
|
|
873
|
-
|
|
874
|
-
|
|
880
|
+
var naviTop = structure.appendChild(dom.createElement('tr'));
|
|
881
|
+
var naviMain = naviTop.appendChild(dom.createElement('td'));
|
|
875
882
|
naviMain.setAttribute('colspan', '3');
|
|
876
|
-
|
|
883
|
+
var naviMenu = structure.appendChild(dom.createElement('tr'));
|
|
877
884
|
naviMenu.setAttribute('class', 'naviMenu');
|
|
878
885
|
naviMenu.setAttribute('style', ' text-align: middle; vertical-align: middle; padding-top: 4em; ');
|
|
879
886
|
// naviMenu.setAttribute('style', 'margin-top: 3em;')
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
887
|
+
var naviLeft = naviMenu.appendChild(dom.createElement('td'));
|
|
888
|
+
var naviCenter = naviMenu.appendChild(dom.createElement('td'));
|
|
889
|
+
var naviRight = naviMenu.appendChild(dom.createElement('td'));
|
|
883
890
|
getForms();
|
|
884
891
|
return div;
|
|
885
892
|
} // render
|