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,53 +1,54 @@
|
|
|
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
|
-
exports
|
|
7
|
+
exports["default"] = void 0;
|
|
7
8
|
var _solidLogic = require("solid-logic");
|
|
8
9
|
var UI = _interopRequireWildcard(require("solid-ui"));
|
|
9
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" !=
|
|
10
|
+
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
11
|
/*
|
|
11
12
|
Microblog pane
|
|
12
13
|
Charles McKenzie <charles2@mit.edu>
|
|
13
14
|
*/
|
|
14
15
|
/* global alert */
|
|
15
|
-
var _default = exports
|
|
16
|
+
var _default = exports["default"] = {
|
|
16
17
|
icon: UI.icons.originalIconBase + 'microblog/microblog.png',
|
|
17
18
|
name: 'microblogPane',
|
|
18
|
-
label: function (subject) {
|
|
19
|
+
label: function label(subject) {
|
|
19
20
|
if (_solidLogic.store.whether(subject, UI.ns.rdf('type'), UI.ns.foaf('Person'))) {
|
|
20
21
|
return 'Microblog';
|
|
21
22
|
} else {
|
|
22
23
|
return null;
|
|
23
24
|
}
|
|
24
25
|
},
|
|
25
|
-
render: function (s, doc) {
|
|
26
|
+
render: function render(s, doc) {
|
|
26
27
|
//* **********************************************
|
|
27
28
|
// NAMESPACES SECTION
|
|
28
29
|
//* **********************************************
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
var SIOC = UI.rdf.Namespace('http://rdfs.org/sioc/ns#');
|
|
31
|
+
var SIOCt = UI.rdf.Namespace('http://rdfs.org/sioc/types#');
|
|
32
|
+
var FOAF = UI.rdf.Namespace('http://xmlns.com/foaf/0.1/');
|
|
33
|
+
var terms = UI.rdf.Namespace('http://purl.org/dc/terms/');
|
|
34
|
+
var RDF = UI.ns.rdf;
|
|
35
|
+
var kb = _solidLogic.store;
|
|
36
|
+
var charCount = 140;
|
|
37
|
+
var sf = _solidLogic.store.fetcher;
|
|
37
38
|
//* **********************************************
|
|
38
39
|
// BACK END
|
|
39
40
|
//* **********************************************
|
|
40
|
-
|
|
41
|
+
var sparqlUpdater = kb.updater;
|
|
41
42
|
// ----------------------------------------------
|
|
42
43
|
// FOLLOW LIST
|
|
43
44
|
// store the URIs of followed users for
|
|
44
45
|
// dereferencing the @replies
|
|
45
46
|
// ----------------------------------------------
|
|
46
|
-
|
|
47
|
+
var FollowList = function FollowList(user) {
|
|
47
48
|
this.userlist = {};
|
|
48
49
|
this.uris = {};
|
|
49
|
-
|
|
50
|
-
for (
|
|
50
|
+
var myFollows = kb.each(kb.sym(user), SIOC('follows'));
|
|
51
|
+
for (var mf in myFollows) {
|
|
51
52
|
this.add(kb.any(myFollows[mf], SIOC('id')), myFollows[mf].uri);
|
|
52
53
|
}
|
|
53
54
|
};
|
|
@@ -76,7 +77,7 @@ var _default = exports.default = {
|
|
|
76
77
|
// controls the list of favorites.
|
|
77
78
|
// constructor expects a user as uri.
|
|
78
79
|
// ----------------------------------------------
|
|
79
|
-
|
|
80
|
+
var Favorites = function Favorites(user) {
|
|
80
81
|
this.favorites = {};
|
|
81
82
|
this.favoritesURI = '';
|
|
82
83
|
if (!user) {
|
|
@@ -84,12 +85,12 @@ var _default = exports.default = {
|
|
|
84
85
|
return;
|
|
85
86
|
}
|
|
86
87
|
this.user = user.split('#')[0];
|
|
87
|
-
|
|
88
|
-
for (
|
|
88
|
+
var created = kb.each(kb.sym(user), SIOC('creator_of'));
|
|
89
|
+
for (var c in created) {
|
|
89
90
|
if (kb.whether(created[c], RDF('type'), SIOCt('FavouriteThings'))) {
|
|
90
91
|
this.favoritesURI = created[c];
|
|
91
|
-
|
|
92
|
-
for (
|
|
92
|
+
var favs = kb.each(created[c], SIOC('container_of'));
|
|
93
|
+
for (var f in favs) {
|
|
93
94
|
this.favorites[favs[f]] = '';
|
|
94
95
|
}
|
|
95
96
|
break;
|
|
@@ -102,7 +103,7 @@ var _default = exports.default = {
|
|
|
102
103
|
return kb.sym(post) in this.favorites;
|
|
103
104
|
};
|
|
104
105
|
Favorites.prototype.add = function (post, callback) {
|
|
105
|
-
|
|
106
|
+
var batch = new UI.rdf.Statement(this.favoritesURI, SIOC('container_of'), kb.sym(post), kb.sym(this.user));
|
|
106
107
|
sparqlUpdater.insert_statement(batch, function (a, success, c) {
|
|
107
108
|
if (success) {
|
|
108
109
|
kb.add(batch.subject, batch.predicate, batch.object, batch.why);
|
|
@@ -111,7 +112,7 @@ var _default = exports.default = {
|
|
|
111
112
|
});
|
|
112
113
|
};
|
|
113
114
|
Favorites.prototype.remove = function (post, callback) {
|
|
114
|
-
|
|
115
|
+
var batch = new UI.rdf.Statement(this.favoritesURI, SIOC('container_of'), kb.sym(post), kb.sym(this.user));
|
|
115
116
|
sparqlUpdater.delete_statement(batch, function (a, success, c) {
|
|
116
117
|
if (success) {
|
|
117
118
|
kb.add(batch.subject, batch.predicate, batch.object, batch.why);
|
|
@@ -124,15 +125,15 @@ var _default = exports.default = {
|
|
|
124
125
|
// store the uri's of followed users for
|
|
125
126
|
// dereferencing the @replies.
|
|
126
127
|
// ----------------------------------------------
|
|
127
|
-
|
|
128
|
+
var Microblog = function Microblog(kb) {
|
|
128
129
|
this.kb = kb;
|
|
129
130
|
|
|
130
131
|
// attempt to fetch user account from local preferences if just
|
|
131
132
|
// in case the user's foaf was not writable. add it to the store
|
|
132
133
|
// this will probably need to change.
|
|
133
|
-
|
|
134
|
+
var theUser = _solidLogic.authn.currentUser();
|
|
134
135
|
if (theUser) {
|
|
135
|
-
|
|
136
|
+
var theAccount = UI.preferences.get('acct');
|
|
136
137
|
if (theAccount) {
|
|
137
138
|
theAccount = kb.sym(theAccount);
|
|
138
139
|
}
|
|
@@ -142,7 +143,7 @@ var _default = exports.default = {
|
|
|
142
143
|
}
|
|
143
144
|
};
|
|
144
145
|
Microblog.prototype.getUser = function (uri) {
|
|
145
|
-
|
|
146
|
+
var User = {};
|
|
146
147
|
User.name = kb.any(uri, SIOC('name')) ? kb.any(uri, SIOC('name')) : '';
|
|
147
148
|
User.avatar = kb.any(uri, SIOC('avatar')) ? kb.any(uri, SIOC('avatar')) : '';
|
|
148
149
|
User.id = kb.any(uri, SIOC('id'));
|
|
@@ -150,17 +151,17 @@ var _default = exports.default = {
|
|
|
150
151
|
return User;
|
|
151
152
|
};
|
|
152
153
|
Microblog.prototype.getPost = function (uri) {
|
|
153
|
-
|
|
154
|
+
var Post = {};
|
|
154
155
|
// date ----------
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
156
|
+
var postLink = new Date(kb.anyValue(uri, terms('created')));
|
|
157
|
+
var h = postLink.getHours();
|
|
158
|
+
var a = h > 12 ? ' PM' : ' AM';
|
|
158
159
|
h = h > 12 ? h - 12 : h;
|
|
159
|
-
|
|
160
|
+
var m = postLink.getMinutes();
|
|
160
161
|
m = m < 10 ? '0' + m : m;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
var mo = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
|
163
|
+
var da = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
|
164
|
+
var ds = da[postLink.getDay()] + ' ' + postLink.getDate() + ' ' + mo[postLink.getMonth()] + ' ' + postLink.getFullYear();
|
|
164
165
|
postLink = h + ':' + m + a + ' on ' + ds;
|
|
165
166
|
Post.date = postLink;
|
|
166
167
|
// ---------
|
|
@@ -172,16 +173,16 @@ var _default = exports.default = {
|
|
|
172
173
|
};
|
|
173
174
|
Microblog.prototype.gen_random_uri = function (base) {
|
|
174
175
|
// generate random uri
|
|
175
|
-
|
|
176
|
+
var uriNonce = base + '#n' + Math.floor(Math.random() * 10e9);
|
|
176
177
|
return kb.sym(uriNonce);
|
|
177
178
|
};
|
|
178
179
|
Microblog.prototype.statusUpdate = function (statusMsg, callback, replyTo, meta) {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
for (
|
|
180
|
+
var myUserURI = this.getMyURI();
|
|
181
|
+
var myUser = kb.sym(myUserURI.split('#')[0]);
|
|
182
|
+
var newPost = this.gen_random_uri(myUser.uri);
|
|
183
|
+
var microlist = kb.each(kb.sym(myUserURI), SIOC('creator_of'));
|
|
184
|
+
var micro;
|
|
185
|
+
for (var microlistelement in microlist) {
|
|
185
186
|
if (kb.whether(microlist[microlistelement], RDF('type'), SIOCt('Microblog')) && !kb.whether(microlist[microlistelement], SIOC('topic'), kb.sym(this.getMyURI()))) {
|
|
186
187
|
micro = microlist[microlistelement];
|
|
187
188
|
break;
|
|
@@ -189,7 +190,7 @@ var _default = exports.default = {
|
|
|
189
190
|
}
|
|
190
191
|
|
|
191
192
|
// generate new post
|
|
192
|
-
|
|
193
|
+
var batch = [new UI.rdf.Statement(newPost, RDF('type'), SIOCt('MicroblogPost'), myUser), new UI.rdf.Statement(newPost, SIOC('has_creator'), kb.sym(myUserURI), myUser), new UI.rdf.Statement(newPost, SIOC('content'), statusMsg, myUser), new UI.rdf.Statement(newPost, terms('created'), new Date(), myUser), new UI.rdf.Statement(micro, SIOC('container_of'), newPost, myUser)];
|
|
193
194
|
|
|
194
195
|
// message replies
|
|
195
196
|
if (replyTo) {
|
|
@@ -197,13 +198,13 @@ var _default = exports.default = {
|
|
|
197
198
|
}
|
|
198
199
|
|
|
199
200
|
// @replies, #hashtags, !groupReplies
|
|
200
|
-
for (
|
|
201
|
+
for (var r in meta.recipients) {
|
|
201
202
|
batch.push(new UI.rdf.Statement(newPost, SIOC('topic'), kb.sym(meta.recipients[r]), myUser));
|
|
202
203
|
batch.push(new UI.rdf.Statement(kb.any(), SIOC('container_of'), newPost, myUser));
|
|
203
|
-
|
|
204
|
-
for (
|
|
204
|
+
var mblogs = kb.each(kb.sym(meta.recipients[r]), SIOC('creator_of'));
|
|
205
|
+
for (var mbl in mblogs) {
|
|
205
206
|
if (kb.whether(mblogs[mbl], SIOC('topic'), kb.sym(meta.recipients[r]))) {
|
|
206
|
-
|
|
207
|
+
var replyBatch = new UI.rdf.Statement(mblogs[mbl], SIOC('container_of'), newPost, kb.sym(meta.recipients[r].split('#')[0]));
|
|
207
208
|
sparqlUpdater.insert_statement(replyBatch);
|
|
208
209
|
}
|
|
209
210
|
}
|
|
@@ -213,18 +214,18 @@ var _default = exports.default = {
|
|
|
213
214
|
});
|
|
214
215
|
};
|
|
215
216
|
Microblog.prototype.getMyURI = function () {
|
|
216
|
-
|
|
217
|
+
var me = _solidLogic.authn.currentUser();
|
|
217
218
|
console.log(me);
|
|
218
|
-
|
|
219
|
+
var myMicroblog = kb.any(kb.sym(me), FOAF('holdsAccount'));
|
|
219
220
|
console.log('\n\n' + myMicroblog);
|
|
220
221
|
return myMicroblog ? myMicroblog.uri : false;
|
|
221
222
|
};
|
|
222
223
|
Microblog.prototype.generateNewMB = function (id, name, avatar, loc) {
|
|
223
|
-
|
|
224
|
-
|
|
224
|
+
var host = loc + '/' + id;
|
|
225
|
+
var rememberMicroblog = function rememberMicroblog() {
|
|
225
226
|
UI.preferences.set('acct', host + '#' + id);
|
|
226
227
|
};
|
|
227
|
-
|
|
228
|
+
var cbgenUserMB = function cbgenUserMB(a, success, c, d) {
|
|
228
229
|
if (success) {
|
|
229
230
|
alert('Microblog generated at ' + host + '#' + id + 'please add <b>' + host + '</b> to your foaf.');
|
|
230
231
|
// mbCancelNewMB() @@TBD
|
|
@@ -232,12 +233,12 @@ var _default = exports.default = {
|
|
|
232
233
|
// preferences for later retrieval.
|
|
233
234
|
// this will probably need to change.
|
|
234
235
|
rememberMicroblog();
|
|
235
|
-
for (
|
|
236
|
+
for (var triple in d) {
|
|
236
237
|
kb.add(d[triple].subject, d[triple].predicate, d[triple].object, d[triple].why);
|
|
237
238
|
}
|
|
238
239
|
}
|
|
239
240
|
};
|
|
240
|
-
|
|
241
|
+
var genUserMB = [
|
|
241
242
|
// user
|
|
242
243
|
new UI.rdf.Statement(kb.sym(host + '#' + id), RDF('type'), SIOC('User'), kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#' + id), SIOC('creator_of'), kb.sym(host + '#mb'), kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#' + id), SIOC('creator_of'), kb.sym(host + '#mbn'), kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#' + id), SIOC('creator_of'), kb.sym(host + '#fav'), kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#' + id), SIOC('name'), name, kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#' + id), SIOC('id'), id, kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#' + id), RDF('label'), id, kb.sym(host)), new UI.rdf.Statement(s, FOAF('holdsAccount'), kb.sym(host + '#' + id), kb.sym(host)),
|
|
243
244
|
// microblog
|
|
@@ -252,9 +253,9 @@ var _default = exports.default = {
|
|
|
252
253
|
}
|
|
253
254
|
sparqlUpdater.insert_statement(genUserMB, cbgenUserMB);
|
|
254
255
|
};
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
256
|
+
var mb = new Microblog(kb);
|
|
257
|
+
var myFavorites = new Favorites(mb.getMyURI());
|
|
258
|
+
var myFollowList = new FollowList(mb.getMyURI());
|
|
258
259
|
|
|
259
260
|
//* **********************************************
|
|
260
261
|
// FRONT END FUNCTIONALITY
|
|
@@ -263,28 +264,28 @@ var _default = exports.default = {
|
|
|
263
264
|
// PANE
|
|
264
265
|
// User Interface for the Microblog Pane
|
|
265
266
|
// ----------------------------------------------
|
|
266
|
-
|
|
267
|
-
|
|
267
|
+
var Pane = function Pane(s, doc, microblogPane) {
|
|
268
|
+
var TabManager = function TabManager(doc) {
|
|
268
269
|
this.tablist = {};
|
|
269
270
|
this.doc = doc;
|
|
270
271
|
this.tabView = doc.createElement('ul');
|
|
271
272
|
this.tabView.className = 'tabslist';
|
|
272
273
|
};
|
|
273
274
|
TabManager.prototype.create = function (id, caption, view, isDefault) {
|
|
274
|
-
|
|
275
|
+
var tab = this.doc.createElement('li');
|
|
275
276
|
tab.innerHTML = caption;
|
|
276
277
|
if (isDefault) {
|
|
277
278
|
tab.className = 'active';
|
|
278
279
|
}
|
|
279
280
|
tab.id = id;
|
|
280
|
-
|
|
281
|
-
|
|
281
|
+
var change = this.change;
|
|
282
|
+
var tablist = this.tablist;
|
|
282
283
|
tab.addEventListener('click', function (evt) {
|
|
283
284
|
change(evt.target.id, tablist, doc);
|
|
284
285
|
}, false);
|
|
285
286
|
this.tablist[id] = {
|
|
286
287
|
view: view.id,
|
|
287
|
-
tab
|
|
288
|
+
tab: tab
|
|
288
289
|
};
|
|
289
290
|
this.tabView.appendChild(tab);
|
|
290
291
|
};
|
|
@@ -292,35 +293,35 @@ var _default = exports.default = {
|
|
|
292
293
|
return this.tabView;
|
|
293
294
|
};
|
|
294
295
|
TabManager.prototype.change = function (id, tablist, doc) {
|
|
295
|
-
for (
|
|
296
|
+
for (var tab in tablist) {
|
|
296
297
|
if (tab === id) {
|
|
297
298
|
tablist[id].tab.className = 'active';
|
|
298
299
|
doc.getElementById(tablist[id].view).className += ' active';
|
|
299
300
|
} else {
|
|
300
|
-
|
|
301
|
+
var view = doc.getElementById(tablist[tab].view);
|
|
301
302
|
view.className = view.className.replace(/\w*active\w*/, '');
|
|
302
303
|
tablist[tab].tab.className = tablist[id].tab.className.replace(/\w*active\w*/, '');
|
|
303
304
|
}
|
|
304
305
|
}
|
|
305
306
|
};
|
|
306
307
|
this.microblogPane = microblogPane;
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
for (
|
|
308
|
+
var accounts = kb.each(s, FOAF('holdsAccount'));
|
|
309
|
+
var account;
|
|
310
|
+
for (var a in accounts) {
|
|
310
311
|
if (kb.whether(accounts[a], RDF('type'), SIOC('User')) && kb.whether(kb.any(accounts[a], SIOC('creator_of')), RDF('type'), SIOCt('Microblog'))) {
|
|
311
312
|
account = accounts[a];
|
|
312
313
|
break;
|
|
313
314
|
}
|
|
314
315
|
}
|
|
315
316
|
this.Ifollow = kb.whether(kb.sym(mb.getMyURI()), SIOC('follows'), account);
|
|
316
|
-
|
|
317
|
+
var resourceType = kb.any(s, RDF('type'));
|
|
317
318
|
if (resourceType.uri === SIOCt('Microblog').uri || resourceType.uri === SIOCt('MicroblogPost').uri) {
|
|
318
319
|
this.thisIsMe = kb.any(s, SIOC('has_creator')).uri === mb.getMyURI();
|
|
319
320
|
} else if (resourceType.uri === SIOC('User').uri) {
|
|
320
321
|
this.thisIsMe = s.uri === mb.getMyURI();
|
|
321
322
|
} else if (resourceType.uri === FOAF('Person').uri) {
|
|
322
|
-
|
|
323
|
-
|
|
323
|
+
var me = _solidLogic.authn.currentUser();
|
|
324
|
+
var meUri = me && me.uri;
|
|
324
325
|
this.thisIsMe = s.uri === meUri;
|
|
325
326
|
} else {
|
|
326
327
|
this.thisIsMe = false;
|
|
@@ -328,7 +329,7 @@ var _default = exports.default = {
|
|
|
328
329
|
this.Tab = new TabManager(doc);
|
|
329
330
|
};
|
|
330
331
|
Pane.prototype.notify = function (messageString) {
|
|
331
|
-
|
|
332
|
+
var xmsg = doc.createElement('li');
|
|
332
333
|
xmsg.className = 'notify';
|
|
333
334
|
xmsg.innerHTML = messageString;
|
|
334
335
|
doc.getElementById('notify-container').appendChild(xmsg);
|
|
@@ -338,12 +339,12 @@ var _default = exports.default = {
|
|
|
338
339
|
}, 4000);
|
|
339
340
|
};
|
|
340
341
|
Pane.prototype.header = function (s, doc) {
|
|
341
|
-
|
|
342
|
+
var that = this;
|
|
342
343
|
function lsFollowUser() {
|
|
343
|
-
|
|
344
|
+
var myUser = kb.sym(mb.getMyURI());
|
|
344
345
|
// var Ifollow = that.Ifollow
|
|
345
|
-
|
|
346
|
-
|
|
346
|
+
var username = that.creator.name;
|
|
347
|
+
var mbconfirmFollow = function mbconfirmFollow(uri, success, _msg) {
|
|
347
348
|
if (success === true) {
|
|
348
349
|
if (!that.Ifollow) {
|
|
349
350
|
// prevent duplicate entries from being added to kb (because that was happening)
|
|
@@ -357,13 +358,13 @@ var _default = exports.default = {
|
|
|
357
358
|
that.Ifollow = !that.Ifollow;
|
|
358
359
|
xfollowButton.disabled = false;
|
|
359
360
|
console.log(that.Ifollow);
|
|
360
|
-
|
|
361
|
-
|
|
361
|
+
var followButtonLabel = that.Ifollow ? 'Unfollow ' : 'Follow ';
|
|
362
|
+
var doFollow = that.Ifollow ? 'now follow ' : 'no longer follow ';
|
|
362
363
|
xfollowButton.value = followButtonLabel + username;
|
|
363
364
|
that.notify('You ' + doFollow + username + '.');
|
|
364
365
|
}
|
|
365
366
|
};
|
|
366
|
-
|
|
367
|
+
var followMe = new UI.rdf.Statement(myUser, SIOC('follows'), that.creator.sym, myUser);
|
|
367
368
|
xfollowButton.disabled = true;
|
|
368
369
|
xfollowButton.value = 'Updating...';
|
|
369
370
|
if (!that.Ifollow) {
|
|
@@ -372,8 +373,8 @@ var _default = exports.default = {
|
|
|
372
373
|
sparqlUpdater.delete_statement(followMe, mbconfirmFollow);
|
|
373
374
|
}
|
|
374
375
|
}
|
|
375
|
-
|
|
376
|
-
|
|
376
|
+
var notify = function notify(messageString) {
|
|
377
|
+
var xmsg = doc.createElement('li');
|
|
377
378
|
xmsg.className = 'notify';
|
|
378
379
|
xmsg.innerHTML = messageString;
|
|
379
380
|
doc.getElementById('notify-container').appendChild(xmsg);
|
|
@@ -382,16 +383,16 @@ var _default = exports.default = {
|
|
|
382
383
|
// delete xmsg;
|
|
383
384
|
}, 4000);
|
|
384
385
|
};
|
|
385
|
-
|
|
386
|
+
var mbCancelNewMB = function mbCancelNewMB(_evt) {
|
|
386
387
|
xupdateContainer.removeChild(xupdateContainer.childNodes[xupdateContainer.childNodes.length - 1]);
|
|
387
388
|
xcreateNewMB.disabled = false;
|
|
388
389
|
};
|
|
389
|
-
|
|
390
|
+
var lsCreateNewMB = function lsCreateNewMB(_evt) {
|
|
390
391
|
// disable the create new microblog button.
|
|
391
392
|
// then prefills the information.
|
|
392
393
|
xcreateNewMB.disabled = true;
|
|
393
|
-
|
|
394
|
-
|
|
394
|
+
var xcmb = doc.createElement('div');
|
|
395
|
+
var xcmbName = doc.createElement('input');
|
|
395
396
|
if (kb.whether(s, FOAF('name'))) {
|
|
396
397
|
// handle use of FOAF:NAME
|
|
397
398
|
xcmbName.value = kb.any(s, FOAF('name'));
|
|
@@ -401,9 +402,9 @@ var _default = exports.default = {
|
|
|
401
402
|
xcmbName.value += kb.any(s, FOAF('family_name')) ? kb.any(s, FOAF('givenname')) : '';
|
|
402
403
|
xcmbName.value = kb.any(s, FOAF('givenname')) + ' ' + kb.any(s, FOAF('family_name'));
|
|
403
404
|
}
|
|
404
|
-
|
|
405
|
+
var xcmbId = doc.createElement('input');
|
|
405
406
|
xcmbId.value = kb.any(s, FOAF('nick')) ? kb.any(s, FOAF('nick')) : '';
|
|
406
|
-
|
|
407
|
+
var xcmbAvatar = doc.createElement('input');
|
|
407
408
|
if (kb.whether(s, FOAF('img'))) {
|
|
408
409
|
// handle use of img
|
|
409
410
|
xcmbAvatar.value = kb.any(s, FOAF('img')).uri;
|
|
@@ -411,20 +412,11 @@ var _default = exports.default = {
|
|
|
411
412
|
// otherwise try depiction
|
|
412
413
|
xcmbAvatar.value = kb.any(s, FOAF('depiction')) ? kb.any(s, FOAF('depiction')).uri : '';
|
|
413
414
|
}
|
|
414
|
-
|
|
415
|
+
var workspace;
|
|
415
416
|
// = kb.any(s,WORKSPACE) //TODO - ADD URI FOR WORKSPACE DEFINITION
|
|
416
|
-
|
|
417
|
+
var xcmbWritable = doc.createElement('input');
|
|
417
418
|
xcmbWritable.value = workspace || 'http://dig.csail.mit.edu/2007/wiki/sandbox'; // @@@
|
|
418
|
-
xcmb.innerHTML =
|
|
419
|
-
<form class ="createNewMB" id="createNewMB">
|
|
420
|
-
<p id="xcmbname"><span class="">Name: </span></p>
|
|
421
|
-
<p id="xcmbid">Id: </p>
|
|
422
|
-
<p id="xcmbavatar">Avatar: </p>
|
|
423
|
-
<p id="xcmbwritable">Host my microblog at: </p>
|
|
424
|
-
<input type="button" id="mbCancel" value="Cancel" />
|
|
425
|
-
<input type="submit" id="mbCreate" value="Create!" />
|
|
426
|
-
</form>
|
|
427
|
-
`;
|
|
419
|
+
xcmb.innerHTML = "\n <form class =\"createNewMB\" id=\"createNewMB\">\n <p id=\"xcmbname\"><span class=\"\">Name: </span></p>\n <p id=\"xcmbid\">Id: </p>\n <p id=\"xcmbavatar\">Avatar: </p>\n <p id=\"xcmbwritable\">Host my microblog at: </p>\n <input type=\"button\" id=\"mbCancel\" value=\"Cancel\" />\n <input type=\"submit\" id=\"mbCreate\" value=\"Create!\" />\n </form>\n ";
|
|
428
420
|
xupdateContainer.appendChild(xcmb);
|
|
429
421
|
doc.getElementById('xcmbname').appendChild(xcmbName);
|
|
430
422
|
doc.getElementById('xcmbid').appendChild(xcmbId);
|
|
@@ -436,17 +428,17 @@ var _default = exports.default = {
|
|
|
436
428
|
}, false);
|
|
437
429
|
xcmbName.focus();
|
|
438
430
|
};
|
|
439
|
-
|
|
440
|
-
|
|
431
|
+
var mbSubmitPost = function mbSubmitPost() {
|
|
432
|
+
var meta = {
|
|
441
433
|
recipients: []
|
|
442
434
|
};
|
|
443
435
|
// user has selected a microblog to post to
|
|
444
436
|
if (mb.getMyURI()) {
|
|
445
437
|
// let myUser = kb.sym(mb.getMyURI())
|
|
446
438
|
// submission callback
|
|
447
|
-
|
|
439
|
+
var cbconfirmSubmit = function cbconfirmSubmit(uri, success, responseText, d) {
|
|
448
440
|
if (success === true) {
|
|
449
|
-
for (
|
|
441
|
+
for (var triple in d) {
|
|
450
442
|
kb.add(d[triple].subject, d[triple].predicate, d[triple].object, d[triple].why);
|
|
451
443
|
}
|
|
452
444
|
xupdateSubmit.disabled = false;
|
|
@@ -460,65 +452,74 @@ var _default = exports.default = {
|
|
|
460
452
|
notify('There was a problem submitting your post.');
|
|
461
453
|
}
|
|
462
454
|
};
|
|
463
|
-
|
|
464
|
-
|
|
455
|
+
var words = xupdateStatus.value.split(' ');
|
|
456
|
+
var mbUpdateWithReplies = function mbUpdateWithReplies() {
|
|
465
457
|
xupdateSubmit.disabled = true;
|
|
466
458
|
xupdateSubmit.value = 'Updating...';
|
|
467
459
|
mb.statusUpdate(xupdateStatus.value, cbconfirmSubmit, xinReplyToContainer.value, meta);
|
|
468
460
|
};
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
if (String(kb.any(kb.sym(mb.getMyURI()), SIOC('id'))).toLowerCase() === atUser.toLowerCase()) {
|
|
503
|
-
meta.recipients.push(mb.getMyURI());
|
|
461
|
+
var _loop = function _loop() {
|
|
462
|
+
if (words[word].match(/@\w+/)) {
|
|
463
|
+
var atUser = words[word].replace(/\W/g, '');
|
|
464
|
+
var recipient = myFollowList.selectUser(atUser);
|
|
465
|
+
if (recipient[0] === true) {
|
|
466
|
+
meta.recipients.push(recipient[1][0]);
|
|
467
|
+
} else if (recipient[1].length > 1) {
|
|
468
|
+
// if multiple users allow the user to choose
|
|
469
|
+
var xrecipients = doc.createElement('select');
|
|
470
|
+
var xrecipientsSubmit = doc.createElement('input');
|
|
471
|
+
xrecipientsSubmit.type = 'button';
|
|
472
|
+
xrecipientsSubmit.value = 'Continue';
|
|
473
|
+
xrecipientsSubmit.addEventListener('click', function () {
|
|
474
|
+
meta.recipients.push(recipient[1][xrecipients.value]);
|
|
475
|
+
mbUpdateWithReplies();
|
|
476
|
+
xrecipients.parentNode.removeChild(xrecipientsSubmit);
|
|
477
|
+
xrecipients.parentNode.removeChild(xrecipients);
|
|
478
|
+
}, false);
|
|
479
|
+
var recipChoice = function recipChoice(recip, c) {
|
|
480
|
+
var name = kb.any(kb.sym(recip), SIOC('name'));
|
|
481
|
+
var choice = doc.createElement('option');
|
|
482
|
+
choice.value = c;
|
|
483
|
+
choice.innerHTML = name;
|
|
484
|
+
return choice;
|
|
485
|
+
};
|
|
486
|
+
for (var r in recipient[1]) {
|
|
487
|
+
xrecipients.appendChild(recipChoice(recipient[1][r], r));
|
|
488
|
+
}
|
|
489
|
+
xupdateContainer.appendChild(xrecipients);
|
|
490
|
+
xupdateContainer.appendChild(xrecipientsSubmit);
|
|
491
|
+
return {
|
|
492
|
+
v: void 0
|
|
493
|
+
};
|
|
504
494
|
} else {
|
|
505
|
-
|
|
506
|
-
|
|
495
|
+
// no users known or self reference.
|
|
496
|
+
if (String(kb.any(kb.sym(mb.getMyURI()), SIOC('id'))).toLowerCase() === atUser.toLowerCase()) {
|
|
497
|
+
meta.recipients.push(mb.getMyURI());
|
|
498
|
+
} else {
|
|
499
|
+
notify('You do not follow ' + atUser + '. Try following ' + atUser + ' before mentioning them.');
|
|
500
|
+
return {
|
|
501
|
+
v: void 0
|
|
502
|
+
};
|
|
503
|
+
}
|
|
507
504
|
}
|
|
508
505
|
}
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
}
|
|
506
|
+
/* else if(words[word].match(/\#\w+/)){
|
|
507
|
+
//hashtag
|
|
508
|
+
} else if(words[word].match(/\!\w+/)){
|
|
509
|
+
//usergroup
|
|
510
|
+
} */
|
|
511
|
+
},
|
|
512
|
+
_ret;
|
|
513
|
+
for (var word in words) {
|
|
514
|
+
_ret = _loop();
|
|
515
|
+
if (_ret) return _ret.v;
|
|
515
516
|
}
|
|
516
517
|
mbUpdateWithReplies();
|
|
517
518
|
} else {
|
|
518
519
|
notify('Please set your microblog first.');
|
|
519
520
|
}
|
|
520
521
|
};
|
|
521
|
-
|
|
522
|
+
var mbLetterCount = function mbLetterCount() {
|
|
522
523
|
xupdateStatusCounter.innerHTML = charCount - xupdateStatus.value.length;
|
|
523
524
|
xupdateStatusCounter.style.color = charCount - xupdateStatus.value.length < 0 ? '#c33' : '';
|
|
524
525
|
if (xupdateStatus.value.length === 0) {
|
|
@@ -527,28 +528,28 @@ var _default = exports.default = {
|
|
|
527
528
|
}
|
|
528
529
|
};
|
|
529
530
|
// reply viewer
|
|
530
|
-
|
|
531
|
+
var xviewReply = doc.createElement('ul');
|
|
531
532
|
xviewReply.className = 'replyView';
|
|
532
533
|
xviewReply.addEventListener('click', function () {
|
|
533
534
|
xviewReply.className = 'replyView';
|
|
534
535
|
}, false);
|
|
535
536
|
this.xviewReply = xviewReply;
|
|
536
|
-
|
|
537
|
+
var headerContainer = doc.createElement('div');
|
|
537
538
|
headerContainer.className = 'header-container';
|
|
538
539
|
|
|
539
540
|
// ---create status update box---
|
|
540
|
-
|
|
541
|
+
var xnotify = doc.createElement('ul');
|
|
541
542
|
xnotify.id = 'notify-container';
|
|
542
543
|
xnotify.className = 'notify-container';
|
|
543
544
|
this.xnotify = xnotify;
|
|
544
|
-
|
|
545
|
+
var xupdateContainer = doc.createElement('form');
|
|
545
546
|
xupdateContainer.className = 'update-container';
|
|
546
547
|
xupdateContainer.innerHTML = '<h3>What are you up to?</h3>';
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
548
|
+
var xinReplyToContainer;
|
|
549
|
+
var xupdateStatus;
|
|
550
|
+
var xupdateStatusCounter;
|
|
551
|
+
var xupdateSubmit;
|
|
552
|
+
var xcreateNewMB;
|
|
552
553
|
if (mb.getMyURI()) {
|
|
553
554
|
xinReplyToContainer = doc.createElement('input');
|
|
554
555
|
xinReplyToContainer.id = 'xinReplyToContainer';
|
|
@@ -570,7 +571,7 @@ var _default = exports.default = {
|
|
|
570
571
|
xupdateContainer.appendChild(xupdateSubmit);
|
|
571
572
|
xupdateContainer.addEventListener('submit', mbSubmitPost, false);
|
|
572
573
|
} else {
|
|
573
|
-
|
|
574
|
+
var xnewUser = doc.createTextNode("Hi, it looks like you don't have a microblog, " + ' would you like to create one? ');
|
|
574
575
|
xcreateNewMB = doc.createElement('input');
|
|
575
576
|
xcreateNewMB.type = 'button';
|
|
576
577
|
xcreateNewMB.value = 'Create a new Microblog';
|
|
@@ -579,14 +580,14 @@ var _default = exports.default = {
|
|
|
579
580
|
xupdateContainer.appendChild(xcreateNewMB);
|
|
580
581
|
}
|
|
581
582
|
headerContainer.appendChild(xupdateContainer);
|
|
582
|
-
|
|
583
|
+
var subheaderContainer = doc.createElement('div');
|
|
583
584
|
subheaderContainer.className = 'subheader-container';
|
|
584
585
|
|
|
585
586
|
// user header
|
|
586
587
|
// this.creator
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
for (
|
|
588
|
+
var creators = kb.each(s, FOAF('holdsAccount'));
|
|
589
|
+
var creator;
|
|
590
|
+
for (var c in creators) {
|
|
590
591
|
if (kb.whether(creators[c], RDF('type'), SIOC('User')) && kb.whether(kb.any(creators[c], SIOC('creator_of')), RDF('type'), SIOCt('Microblog'))) {
|
|
591
592
|
creator = creators[c];
|
|
592
593
|
// var mb = kb.sym(creator.uri.split("#")[0]);
|
|
@@ -595,17 +596,17 @@ var _default = exports.default = {
|
|
|
595
596
|
// TODO add support for more than one microblog in same foaf
|
|
596
597
|
}
|
|
597
598
|
}
|
|
598
|
-
|
|
599
|
+
var xfollowButton;
|
|
599
600
|
if (creator) {
|
|
600
601
|
this.creator = mb.getUser(creator);
|
|
601
602
|
// ---display avatar, if available ---
|
|
602
603
|
if (this.creator.avatar !== '') {
|
|
603
|
-
|
|
604
|
+
var avatar = doc.createElement('img');
|
|
604
605
|
avatar.src = this.creator.avatar.uri;
|
|
605
606
|
subheaderContainer.appendChild(avatar);
|
|
606
607
|
}
|
|
607
608
|
// ---generate name ---
|
|
608
|
-
|
|
609
|
+
var userName = doc.createElement('h1');
|
|
609
610
|
userName.className = 'fn';
|
|
610
611
|
userName.appendChild(doc.createTextNode(this.creator.name + ' (' + this.creator.id + ')'));
|
|
611
612
|
subheaderContainer.appendChild(userName);
|
|
@@ -613,14 +614,14 @@ var _default = exports.default = {
|
|
|
613
614
|
if (!this.thisIsMe && mb.getMyURI()) {
|
|
614
615
|
xfollowButton = doc.createElement('input');
|
|
615
616
|
xfollowButton.setAttribute('type', 'button');
|
|
616
|
-
|
|
617
|
+
var followButtonLabel = this.Ifollow ? 'Unfollow ' : 'Follow ';
|
|
617
618
|
xfollowButton.value = followButtonLabel + this.creator.name;
|
|
618
619
|
xfollowButton.addEventListener('click', lsFollowUser, false);
|
|
619
620
|
subheaderContainer.appendChild(xfollowButton);
|
|
620
621
|
}
|
|
621
622
|
// user header end
|
|
622
623
|
// header tabs
|
|
623
|
-
|
|
624
|
+
var xtabsList = this.Tab.getTabView();
|
|
624
625
|
headerContainer.appendChild(subheaderContainer);
|
|
625
626
|
headerContainer.appendChild(xtabsList);
|
|
626
627
|
}
|
|
@@ -631,47 +632,47 @@ var _default = exports.default = {
|
|
|
631
632
|
generatePost - Creates and formats microblog posts
|
|
632
633
|
post - symbol of the uri the post in question
|
|
633
634
|
*/
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
for (
|
|
635
|
+
var that = this;
|
|
636
|
+
var viewPost = function viewPost(uris) {
|
|
637
|
+
var xviewReply = that.xviewReply;
|
|
638
|
+
for (var i = 0; i < xviewReply.childNodes.length; i++) {
|
|
638
639
|
xviewReply.removeChild(xviewReply.childNodes[0]);
|
|
639
640
|
}
|
|
640
|
-
|
|
641
|
+
var xcloseContainer = doc.createElement('li');
|
|
641
642
|
xcloseContainer.className = 'closeContainer';
|
|
642
|
-
|
|
643
|
+
var xcloseButton = doc.createElement('span');
|
|
643
644
|
xcloseButton.innerHTML = '×';
|
|
644
645
|
xcloseButton.className = 'closeButton';
|
|
645
646
|
xcloseContainer.appendChild(xcloseButton);
|
|
646
647
|
xviewReply.appendChild(xcloseContainer);
|
|
647
|
-
for (
|
|
648
|
+
for (var uri in uris) {
|
|
648
649
|
xviewReply.appendChild(that.generatePost(kb.sym(uris[uri]), this.thisIsMe, 'view'));
|
|
649
650
|
}
|
|
650
651
|
xviewReply.className = 'replyView-active';
|
|
651
652
|
that.microblogPane.appendChild(xviewReply);
|
|
652
653
|
};
|
|
653
654
|
// container for post
|
|
654
|
-
|
|
655
|
+
var xpost = doc.createElement('li');
|
|
655
656
|
xpost.className = 'post';
|
|
656
657
|
xpost.setAttribute('id', String(post.uri).split('#')[1]);
|
|
657
|
-
|
|
658
|
+
var Post = mb.getPost(post);
|
|
658
659
|
// username text
|
|
659
660
|
// var uname = kb.any(kb.any(post, SIOC('has_creator')), SIOC('id'))
|
|
660
|
-
|
|
661
|
-
|
|
661
|
+
var uholdsaccount = kb.any(undefined, FOAF('holdsAccount'), kb.any(post, SIOC('has_creator')));
|
|
662
|
+
var xuname = doc.createElement('a');
|
|
662
663
|
xuname.href = uholdsaccount.uri;
|
|
663
664
|
xuname.className = 'userLink';
|
|
664
|
-
|
|
665
|
+
var xunameText = doc.createTextNode(mb.getUser(Post.creator).id);
|
|
665
666
|
xuname.appendChild(xunameText);
|
|
666
667
|
// user image
|
|
667
|
-
|
|
668
|
+
var xuavatar = doc.createElement('img');
|
|
668
669
|
xuavatar.src = mb.getUser(Post.creator).avatar.uri;
|
|
669
670
|
xuavatar.className = 'postAvatar';
|
|
670
671
|
// post content
|
|
671
|
-
|
|
672
|
-
|
|
672
|
+
var xpostContent = doc.createElement('blockquote');
|
|
673
|
+
var postText = Post.message;
|
|
673
674
|
// post date
|
|
674
|
-
|
|
675
|
+
var xpostLink = doc.createElement('a');
|
|
675
676
|
xpostLink.className = 'postLink';
|
|
676
677
|
xpostLink.addEventListener('click', function () {
|
|
677
678
|
viewPost([post.uri]);
|
|
@@ -679,38 +680,38 @@ var _default = exports.default = {
|
|
|
679
680
|
xpostLink.id = 'post_' + String(post.uri).split('#')[1];
|
|
680
681
|
xpostLink.setAttribute('content', post.uri);
|
|
681
682
|
xpostLink.setAttribute('property', 'permalink');
|
|
682
|
-
|
|
683
|
+
var postLink = doc.createTextNode(Post.date ? Post.date : 'post date unknown');
|
|
683
684
|
xpostLink.appendChild(postLink);
|
|
684
685
|
|
|
685
686
|
// LINK META DATA (MENTIONS, HASHTAGS, GROUPS)
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
for (
|
|
687
|
+
var mentions = kb.each(post, SIOC('topic'));
|
|
688
|
+
var tags = {};
|
|
689
|
+
for (var mention in mentions) {
|
|
689
690
|
sf.lookUpThing(mentions[mention]);
|
|
690
|
-
|
|
691
|
+
var id = kb.any(mentions[mention], SIOC('id'));
|
|
691
692
|
tags['@' + id] = mentions[mention];
|
|
692
693
|
}
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
694
|
+
var postTags = postText.match(/(@|#|!)\w+/g);
|
|
695
|
+
var postFunction = function postFunction() {
|
|
696
|
+
var p = postTags.pop();
|
|
696
697
|
return tags[p] ? kb.any(undefined, FOAF('holdsAccount'), tags[p]).uri : p;
|
|
697
698
|
};
|
|
698
|
-
for (
|
|
699
|
-
|
|
700
|
-
|
|
699
|
+
for (var t in tags) {
|
|
700
|
+
var person = t.replace(/@/, '');
|
|
701
|
+
var replacePerson = RegExp('(@|!|#)(' + person + ')');
|
|
701
702
|
postText = postText.replace(replacePerson, '$1<a href="' + postFunction() + '">$2</a>');
|
|
702
703
|
}
|
|
703
704
|
xpostContent.innerHTML = postText;
|
|
704
705
|
|
|
705
706
|
// in reply to logic
|
|
706
707
|
// This has the potential to support a post that replies to many messages.
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
for (
|
|
708
|
+
var inReplyTo = kb.each(post, SIOC('reply_of'));
|
|
709
|
+
var xreplyTo = doc.createElement('span');
|
|
710
|
+
var theReply;
|
|
711
|
+
for (var reply in inReplyTo) {
|
|
711
712
|
theReply = String(inReplyTo[reply]).replace(/<|>/g, '');
|
|
712
|
-
|
|
713
|
-
|
|
713
|
+
var genReplyTo = function genReplyTo() {
|
|
714
|
+
var reply = doc.createElement('a');
|
|
714
715
|
reply.innerHTML = ', <b>in reply to</b>';
|
|
715
716
|
reply.addEventListener('click', function () {
|
|
716
717
|
viewPost([post.uri, theReply]);
|
|
@@ -723,23 +724,23 @@ var _default = exports.default = {
|
|
|
723
724
|
|
|
724
725
|
// END LINK META DATA
|
|
725
726
|
// add the reply to and delete buttons to the interface
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
727
|
+
var mbReplyTo = function mbReplyTo() {
|
|
728
|
+
var id = mb.getUser(Post.creator).id;
|
|
729
|
+
var xupdateStatus = doc.getElementById('xupdateStatus');
|
|
730
|
+
var xinReplyToContainer = doc.getElementById('xinReplyToContainer');
|
|
731
|
+
var xupdateSubmit = doc.getElementById('xupdateSubmit');
|
|
731
732
|
xupdateStatus.value = '@' + id + ' ';
|
|
732
733
|
xupdateStatus.focus();
|
|
733
734
|
xinReplyToContainer.value = post.uri;
|
|
734
735
|
xupdateSubmit.value = 'Reply';
|
|
735
736
|
};
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
737
|
+
var xconfirmDeletionDialog;
|
|
738
|
+
var mbDeletePost = function mbDeletePost(evt) {
|
|
739
|
+
var lsconfirmNo = function lsconfirmNo() {
|
|
739
740
|
doc.getElementById('notify-container').removeChild(xconfirmDeletionDialog);
|
|
740
741
|
evt.target.disabled = false;
|
|
741
742
|
};
|
|
742
|
-
|
|
743
|
+
var lsconfirmYes = function lsconfirmYes() {
|
|
743
744
|
reallyDelete();
|
|
744
745
|
doc.getElementById('notify-container').removeChild(xconfirmDeletionDialog);
|
|
745
746
|
};
|
|
@@ -752,12 +753,12 @@ var _default = exports.default = {
|
|
|
752
753
|
lsconfirmNo();
|
|
753
754
|
}
|
|
754
755
|
}, false);
|
|
755
|
-
|
|
756
|
+
var confirmyes = doc.createElement('input');
|
|
756
757
|
confirmyes.type = 'button';
|
|
757
758
|
confirmyes.className = 'confirm';
|
|
758
759
|
confirmyes.value = 'Delete';
|
|
759
760
|
confirmyes.addEventListener('click', lsconfirmYes, false);
|
|
760
|
-
|
|
761
|
+
var confirmno = doc.createElement('input');
|
|
761
762
|
confirmno.type = 'button';
|
|
762
763
|
confirmno.className = 'confirm';
|
|
763
764
|
confirmno.value = 'Cancel';
|
|
@@ -766,13 +767,13 @@ var _default = exports.default = {
|
|
|
766
767
|
xconfirmDeletionDialog.appendChild(confirmyes);
|
|
767
768
|
doc.getElementById('notify-container').appendChild(xconfirmDeletionDialog);
|
|
768
769
|
confirmno.focus();
|
|
769
|
-
|
|
770
|
+
var reallyDelete = function reallyDelete() {
|
|
770
771
|
// callback after deletion
|
|
771
|
-
|
|
772
|
+
var mbconfirmDeletePost = function mbconfirmDeletePost(a, success) {
|
|
772
773
|
if (success) {
|
|
773
774
|
that.notify('Post deleted.');
|
|
774
775
|
// update the ui to reflect model changes.
|
|
775
|
-
|
|
776
|
+
var deleteThisNode = evt.target.parentNode;
|
|
776
777
|
deleteThisNode.parentNode.removeChild(deleteThisNode);
|
|
777
778
|
kb.removeMany(deleteMe);
|
|
778
779
|
} else {
|
|
@@ -781,9 +782,9 @@ var _default = exports.default = {
|
|
|
781
782
|
}
|
|
782
783
|
};
|
|
783
784
|
// delete references to post
|
|
784
|
-
|
|
785
|
+
var deleteContainerOf = function deleteContainerOf(a, success) {
|
|
785
786
|
if (success) {
|
|
786
|
-
|
|
787
|
+
var deleteContainer = kb.statementsMatching(undefined, SIOC('container_of'), kb.sym(doc.getElementById('post_' + evt.target.parentNode.id).getAttribute('content')));
|
|
787
788
|
sparqlUpdater.batch_delete_statement(deleteContainer, mbconfirmDeletePost);
|
|
788
789
|
} else {
|
|
789
790
|
that.notify('Oops, there was a problem, please try again');
|
|
@@ -792,13 +793,13 @@ var _default = exports.default = {
|
|
|
792
793
|
};
|
|
793
794
|
// delete attributes of post
|
|
794
795
|
evt.target.disabled = true;
|
|
795
|
-
|
|
796
|
+
var deleteMe = kb.statementsMatching(kb.sym(doc.getElementById('post_' + evt.target.parentNode.id).getAttribute('content')));
|
|
796
797
|
sparqlUpdater.batch_delete_statement(deleteMe, deleteContainerOf);
|
|
797
798
|
};
|
|
798
799
|
};
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
800
|
+
var themaker;
|
|
801
|
+
var xreplyButton;
|
|
802
|
+
var xdeleteButton;
|
|
802
803
|
if (mb.getMyURI()) {
|
|
803
804
|
// If the microblog in question does not belong to the user,
|
|
804
805
|
// display the delete post and reply to post buttons.
|
|
@@ -817,11 +818,11 @@ var _default = exports.default = {
|
|
|
817
818
|
xdeleteButton.addEventListener('click', mbDeletePost, false);
|
|
818
819
|
}
|
|
819
820
|
}
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
821
|
+
var mbFavorite = function mbFavorite(evt) {
|
|
822
|
+
var nid = evt.target.parentNode.id;
|
|
823
|
+
var favpost = doc.getElementById('post_' + nid).getAttribute('content');
|
|
823
824
|
xfavorite.className += ' ing';
|
|
824
|
-
|
|
825
|
+
var cbFavorite = function cbFavorite(a, success, _c, _d) {
|
|
825
826
|
if (success) {
|
|
826
827
|
xfavorite.className = xfavorite.className.split(' ')[1] === 'ed' ? 'favorit' : 'favorit ed';
|
|
827
828
|
}
|
|
@@ -832,7 +833,7 @@ var _default = exports.default = {
|
|
|
832
833
|
myFavorites.remove(favpost, cbFavorite);
|
|
833
834
|
}
|
|
834
835
|
};
|
|
835
|
-
|
|
836
|
+
var xfavorite = doc.createElement('a');
|
|
836
837
|
xfavorite.innerHTML = '★';
|
|
837
838
|
xfavorite.addEventListener('click', mbFavorite, false);
|
|
838
839
|
if (myFavorites.favorited(post.uri)) {
|
|
@@ -863,40 +864,40 @@ var _default = exports.default = {
|
|
|
863
864
|
generatePostList - Generate the posts and
|
|
864
865
|
display their results on the interface.
|
|
865
866
|
*/
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
for (
|
|
870
|
-
|
|
867
|
+
var postList = doc.createElement('ul');
|
|
868
|
+
var postlist = {};
|
|
869
|
+
var datelist = [];
|
|
870
|
+
for (var post in gmbPosts) {
|
|
871
|
+
var postDate = kb.any(gmbPosts[post], terms('created'));
|
|
871
872
|
if (postDate) {
|
|
872
873
|
datelist.push(postDate);
|
|
873
874
|
postlist[postDate] = this.generatePost(gmbPosts[post], this.thisIsMe);
|
|
874
875
|
}
|
|
875
876
|
}
|
|
876
877
|
datelist.sort().reverse();
|
|
877
|
-
for (
|
|
878
|
+
for (var d in datelist) {
|
|
878
879
|
postList.appendChild(postlist[datelist[d]]);
|
|
879
880
|
}
|
|
880
881
|
return postList;
|
|
881
882
|
};
|
|
882
883
|
Pane.prototype.followsView = function () {
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
884
|
+
var getFollowed = function getFollowed(user) {
|
|
885
|
+
var userid = kb.any(user, SIOC('id'));
|
|
886
|
+
var follow = doc.createElement('li');
|
|
886
887
|
follow.className = 'follow';
|
|
887
888
|
userid = userid || user.uri;
|
|
888
|
-
|
|
889
|
+
var fol = kb.any(undefined, FOAF('holdsAccount'), user);
|
|
889
890
|
fol = fol ? fol.uri : user.uri;
|
|
890
891
|
follow.innerHTML = '<a href="' + fol + '">' + userid + '</a>';
|
|
891
892
|
return follow;
|
|
892
893
|
};
|
|
893
|
-
|
|
894
|
+
var xfollows = doc.createElement('div');
|
|
894
895
|
xfollows.id = 'xfollows';
|
|
895
896
|
xfollows.className = 'followlist-container view-container';
|
|
896
897
|
if (this.creator && kb.whether(this.creator.sym, SIOC('follows'))) {
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
for (
|
|
898
|
+
var creatorFollows = kb.each(this.creator.sym, SIOC('follows'));
|
|
899
|
+
var xfollowsList = doc.createElement('ul');
|
|
900
|
+
for (var thisPerson in creatorFollows) {
|
|
900
901
|
xfollowsList.appendChild(getFollowed(creatorFollows[thisPerson]));
|
|
901
902
|
}
|
|
902
903
|
xfollows.appendChild(xfollowsList);
|
|
@@ -905,19 +906,19 @@ var _default = exports.default = {
|
|
|
905
906
|
return xfollows;
|
|
906
907
|
};
|
|
907
908
|
Pane.prototype.streamView = function (s, doc) {
|
|
908
|
-
|
|
909
|
+
var postContainer = doc.createElement('div');
|
|
909
910
|
postContainer.id = 'postContainer';
|
|
910
911
|
postContainer.className = 'post-container view-container active';
|
|
911
|
-
|
|
912
|
+
var mbPosts = [];
|
|
912
913
|
if (kb.whether(s, FOAF('name')) && kb.whether(s, FOAF('holdsAccount'))) {
|
|
913
914
|
sf.lookUpThing(kb.any(s, FOAF('holdsAccount')));
|
|
914
|
-
|
|
915
|
-
for (
|
|
915
|
+
var follows = kb.each(kb.any(s, FOAF('holdsAccount')), SIOC('follows'));
|
|
916
|
+
for (var f in follows) {
|
|
916
917
|
sf.lookUpThing(follows[f]);
|
|
917
918
|
// look up people user follows
|
|
918
|
-
|
|
919
|
+
var smicroblogs = kb.each(follows[f], SIOC('creator_of'));
|
|
919
920
|
// get the follows microblogs
|
|
920
|
-
for (
|
|
921
|
+
for (var smb in smicroblogs) {
|
|
921
922
|
sf.lookUpThing(smicroblogs[smb]);
|
|
922
923
|
if (kb.whether(smicroblogs[smb], SIOC('topic'), follows[f])) {
|
|
923
924
|
continue;
|
|
@@ -928,7 +929,7 @@ var _default = exports.default = {
|
|
|
928
929
|
}
|
|
929
930
|
}
|
|
930
931
|
if (mbPosts.length > 0) {
|
|
931
|
-
|
|
932
|
+
var postList = this.generatePostList(mbPosts);
|
|
932
933
|
// generate stream
|
|
933
934
|
postList.id = 'postList';
|
|
934
935
|
postList.className = 'postList';
|
|
@@ -938,19 +939,19 @@ var _default = exports.default = {
|
|
|
938
939
|
return postContainer;
|
|
939
940
|
};
|
|
940
941
|
Pane.prototype.notificationsView = function (s, doc) {
|
|
941
|
-
|
|
942
|
+
var postNotificationContainer = doc.createElement('div');
|
|
942
943
|
postNotificationContainer.id = 'postNotificationContainer';
|
|
943
944
|
postNotificationContainer.className = 'notification-container view-container';
|
|
944
|
-
|
|
945
|
+
var postMentionContainer = doc.createElement('div');
|
|
945
946
|
postMentionContainer.id = 'postMentionContainer';
|
|
946
947
|
postMentionContainer.className = 'mention-container view-container';
|
|
947
|
-
|
|
948
|
-
|
|
948
|
+
var mbnPosts = [];
|
|
949
|
+
var mbmPosts = [];
|
|
949
950
|
// get mbs that I am the creator of.
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
for (
|
|
951
|
+
var theUser = kb.any(s, FOAF('holdsAccount'));
|
|
952
|
+
var user = kb.any(theUser, SIOC('id'));
|
|
953
|
+
var microblogs = kb.each(theUser, SIOC('creator_of'));
|
|
954
|
+
for (var mbm in microblogs) {
|
|
954
955
|
sf.lookUpThing(microblogs[mbm]);
|
|
955
956
|
if (kb.whether(microblogs[mbm], SIOC('topic'), theUser)) {
|
|
956
957
|
mbmPosts = mbmPosts.concat(kb.each(microblogs[mbm], SIOC('container_of')));
|
|
@@ -960,11 +961,11 @@ var _default = exports.default = {
|
|
|
960
961
|
}
|
|
961
962
|
}
|
|
962
963
|
}
|
|
963
|
-
|
|
964
|
+
var postNotificationList = this.generatePostList(mbnPosts);
|
|
964
965
|
postNotificationList.id = 'postNotificationList';
|
|
965
966
|
postNotificationList.className = 'postList';
|
|
966
967
|
postNotificationContainer.appendChild(postNotificationList);
|
|
967
|
-
|
|
968
|
+
var postMentionList = this.generatePostList(mbmPosts);
|
|
968
969
|
postMentionList.id = 'postMentionList';
|
|
969
970
|
postMentionList.className = 'postList';
|
|
970
971
|
postMentionContainer.appendChild(postMentionList);
|
|
@@ -974,7 +975,7 @@ var _default = exports.default = {
|
|
|
974
975
|
this.Tab.create('tab-at-user', '@' + user, postMentionContainer, false);
|
|
975
976
|
};
|
|
976
977
|
Pane.prototype.build = function () {
|
|
977
|
-
|
|
978
|
+
var microblogPane = this.microblogPane;
|
|
978
979
|
this.headerContainer = this.header(s, doc);
|
|
979
980
|
this.postContainer = this.streamView(s, doc);
|
|
980
981
|
this.notificationsView(s, doc);
|
|
@@ -990,7 +991,7 @@ var _default = exports.default = {
|
|
|
990
991
|
microblogPane.appendChild(this.postNotificationContainer);
|
|
991
992
|
microblogPane.appendChild(this.postMentionContainer);
|
|
992
993
|
};
|
|
993
|
-
|
|
994
|
+
var microblogpane = doc.createElement('div');
|
|
994
995
|
// var getusersfollows = function(uri){
|
|
995
996
|
// var follows = new Object();
|
|
996
997
|
// var followsa = {follows:0, matches:0};
|
|
@@ -1010,7 +1011,7 @@ var _default = exports.default = {
|
|
|
1010
1011
|
// followsa.matches = (follows[uri]) ? followsa.matches+1: followsa.matches;
|
|
1011
1012
|
// console.log(follows.toSource());
|
|
1012
1013
|
// if(followsa.follows == followsa.matches ){
|
|
1013
|
-
|
|
1014
|
+
var ppane = new Pane(s, doc, microblogpane);
|
|
1014
1015
|
ppane.build();
|
|
1015
1016
|
// return false;
|
|
1016
1017
|
// }
|