solid-panes 3.5.28-alpha → 3.5.29-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +0 -2
  2. package/lib/RDFXMLPane.js +6 -8
  3. package/lib/RDFXMLPane.js.map +1 -1
  4. package/lib/argument/argumentPane.js +10 -11
  5. package/lib/argument/argumentPane.js.map +1 -1
  6. package/lib/attach/attachPane.js +47 -85
  7. package/lib/attach/attachPane.js.map +1 -1
  8. package/lib/audio/audioPane.js +11 -36
  9. package/lib/audio/audioPane.js.map +1 -1
  10. package/lib/classInstancePane.js +11 -20
  11. package/lib/classInstancePane.js.map +1 -1
  12. package/lib/dashboard/basicPreferences.js +3 -53
  13. package/lib/dashboard/basicPreferences.js.map +1 -1
  14. package/lib/dashboard/dashboardPane.js +2 -18
  15. package/lib/dashboard/dashboardPane.js.map +1 -1
  16. package/lib/dashboard/homepage.js +1 -19
  17. package/lib/dashboard/homepage.js.map +1 -1
  18. package/lib/dataContentPane.js +15 -58
  19. package/lib/dataContentPane.js.map +1 -1
  20. package/lib/defaultPane.js +13 -21
  21. package/lib/defaultPane.js.map +1 -1
  22. package/lib/dokieli/dokieliPane.js +19 -28
  23. package/lib/dokieli/dokieliPane.js.map +1 -1
  24. package/lib/dokieli/new.js.map +1 -1
  25. package/lib/form/pane.js +26 -40
  26. package/lib/form/pane.js.map +1 -1
  27. package/lib/home/homePane.js +7 -23
  28. package/lib/home/homePane.js.map +1 -1
  29. package/lib/humanReadablePane.js +14 -28
  30. package/lib/humanReadablePane.js.map +1 -1
  31. package/lib/imagePane.js +9 -13
  32. package/lib/imagePane.js.map +1 -1
  33. package/lib/index.js +4 -18
  34. package/lib/index.js.map +1 -1
  35. package/lib/internal/internalPane.js +10 -41
  36. package/lib/internal/internalPane.js.map +1 -1
  37. package/lib/mainPage/footer.js +0 -4
  38. package/lib/mainPage/footer.js.map +1 -1
  39. package/lib/mainPage/header.js +2 -28
  40. package/lib/mainPage/header.js.map +1 -1
  41. package/lib/mainPage/index.js +1 -12
  42. package/lib/mainPage/index.js.map +1 -1
  43. package/lib/microblogPane/microblogPane.js +100 -237
  44. package/lib/microblogPane/microblogPane.js.map +1 -1
  45. package/lib/n3Pane.js +2 -7
  46. package/lib/n3Pane.js.map +1 -1
  47. package/lib/outline/context.js +0 -2
  48. package/lib/outline/context.js.map +1 -1
  49. package/lib/outline/licenseOptions.js +9 -25
  50. package/lib/outline/licenseOptions.js.map +1 -1
  51. package/lib/outline/manager.js +178 -580
  52. package/lib/outline/manager.js.map +1 -1
  53. package/lib/outline/manager.test.js +1 -11
  54. package/lib/outline/manager.test.js.map +1 -1
  55. package/lib/outline/outlineIcons.js +30 -25
  56. package/lib/outline/outlineIcons.js.map +1 -1
  57. package/lib/outline/propertyViews.js +0 -10
  58. package/lib/outline/propertyViews.js.map +1 -1
  59. package/lib/outline/propertyViews.test.js +1 -3
  60. package/lib/outline/propertyViews.test.js.map +1 -1
  61. package/lib/outline/queryByExample.js +24 -76
  62. package/lib/outline/queryByExample.js.map +1 -1
  63. package/lib/outline/userInput.js +214 -454
  64. package/lib/outline/userInput.js.map +1 -1
  65. package/lib/outline/viewAsImage.js +0 -6
  66. package/lib/outline/viewAsImage.js.map +1 -1
  67. package/lib/outline/viewAsMbox.js +3 -4
  68. package/lib/outline/viewAsMbox.js.map +1 -1
  69. package/lib/pad/padPane.js +45 -93
  70. package/lib/pad/padPane.js.map +1 -1
  71. package/lib/playlist/playlistPane.js +3 -20
  72. package/lib/playlist/playlistPane.js.map +1 -1
  73. package/lib/profile/editProfile.view.js +7 -24
  74. package/lib/profile/editProfile.view.js.map +1 -1
  75. package/lib/profile/profile.dom.js +0 -3
  76. package/lib/profile/profile.dom.js.map +1 -1
  77. package/lib/registerPanes.js +29 -27
  78. package/lib/registerPanes.js.map +1 -1
  79. package/lib/schedule/formsForSchedule.js.map +1 -1
  80. package/lib/schedule/schedulePane.js +62 -122
  81. package/lib/schedule/schedulePane.js.map +1 -1
  82. package/lib/sharing/sharingPane.js +2 -10
  83. package/lib/sharing/sharingPane.js.map +1 -1
  84. package/lib/slideshow/slideshowPane.js +9 -14
  85. package/lib/slideshow/slideshowPane.js.map +1 -1
  86. package/lib/socialPane.js +43 -124
  87. package/lib/socialPane.js.map +1 -1
  88. package/lib/tabbed/tabbedPane.js +1 -15
  89. package/lib/tabbed/tabbedPane.js.map +1 -1
  90. package/lib/tableViewPane.js +4 -7
  91. package/lib/tableViewPane.js.map +1 -1
  92. package/lib/test-import-export/common.js +2 -1
  93. package/lib/test-import-export/common.js.map +1 -1
  94. package/lib/test-import-export/edit-importer.js +7 -9
  95. package/lib/test-import-export/edit-importer.js.map +1 -1
  96. package/lib/transaction/pane.js +31 -90
  97. package/lib/transaction/pane.js.map +1 -1
  98. package/lib/transaction/period.js +20 -71
  99. package/lib/transaction/period.js.map +1 -1
  100. package/lib/trip/tripPane.js +30 -34
  101. package/lib/trip/tripPane.js.map +1 -1
  102. package/lib/trustedApplications/trustedApplications.dom.js +8 -34
  103. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  104. package/lib/trustedApplications/trustedApplications.test.js +3 -8
  105. package/lib/trustedApplications/trustedApplications.test.js.map +1 -1
  106. package/lib/trustedApplications/trustedApplications.utils.js +0 -10
  107. package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
  108. package/lib/trustedApplications/trustedApplications.view.js +1 -22
  109. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  110. package/lib/ui/pane.js +22 -28
  111. package/lib/ui/pane.js.map +1 -1
  112. package/lib/versionInfo.d.ts +2 -0
  113. package/lib/versionInfo.d.ts.map +1 -1
  114. package/lib/versionInfo.js +18 -16
  115. package/lib/versionInfo.js.map +1 -1
  116. package/lib/video/videoPane.js +2 -5
  117. package/lib/video/videoPane.js.map +1 -1
  118. package/package.json +24 -24
  119. package/src/versionInfo.ts +18 -16
@@ -1,15 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  var _solidLogic = require("solid-logic");
4
-
5
4
  var UI = _interopRequireWildcard(require("solid-ui"));
6
-
7
5
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
8
-
9
6
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
-
11
7
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
12
-
13
8
  module.exports = {
14
9
  icon: UI.icons.originalIconBase + 'microblog/microblog.png',
15
10
  name: 'microblogPane',
@@ -31,26 +26,24 @@ module.exports = {
31
26
  var RDF = UI.ns.rdf;
32
27
  var kb = _solidLogic.store;
33
28
  var charCount = 140;
34
- var sf = _solidLogic.store.fetcher; //* **********************************************
29
+ var sf = _solidLogic.store.fetcher;
30
+ //* **********************************************
35
31
  // BACK END
36
32
  //* **********************************************
37
-
38
- var sparqlUpdater = kb.updater; // ----------------------------------------------
33
+ var sparqlUpdater = kb.updater;
34
+ // ----------------------------------------------
39
35
  // FOLLOW LIST
40
36
  // store the URIs of followed users for
41
37
  // dereferencing the @replies
42
38
  // ----------------------------------------------
43
-
44
39
  var FollowList = function FollowList(user) {
45
40
  this.userlist = {};
46
41
  this.uris = {};
47
42
  var myFollows = kb.each(kb.sym(user), SIOC('follows'));
48
-
49
43
  for (var mf in myFollows) {
50
44
  this.add(kb.any(myFollows[mf], SIOC('id')), myFollows[mf].uri);
51
45
  }
52
46
  };
53
-
54
47
  FollowList.prototype.add = function (user, uri) {
55
48
  // add a user to the follows store
56
49
  if (this.userlist[user]) {
@@ -62,7 +55,6 @@ module.exports = {
62
55
  this.userlist[user] = [uri];
63
56
  }
64
57
  };
65
-
66
58
  FollowList.prototype.selectUser = function (user) {
67
59
  // check if a user is in the follows list.
68
60
  if (this.userlist[user]) {
@@ -71,92 +63,77 @@ module.exports = {
71
63
  // user does not follow any users with this nick
72
64
  return [false, []];
73
65
  }
74
- }; // ----------------------------------------------
66
+ };
67
+ // ----------------------------------------------
75
68
  // FAVORITES
76
69
  // controls the list of favorites.
77
70
  // constructor expects a user as uri.
78
71
  // ----------------------------------------------
79
-
80
-
81
72
  var Favorites = function Favorites(user) {
82
73
  this.favorites = {};
83
74
  this.favoritesURI = '';
84
-
85
75
  if (!user) {
86
76
  // TODO is this even useful?
87
77
  return;
88
78
  }
89
-
90
79
  this.user = user.split('#')[0];
91
80
  var created = kb.each(kb.sym(user), SIOC('creator_of'));
92
-
93
81
  for (var c in created) {
94
82
  if (kb.whether(created[c], RDF('type'), SIOCt('FavouriteThings'))) {
95
83
  this.favoritesURI = created[c];
96
84
  var favs = kb.each(created[c], SIOC('container_of'));
97
-
98
85
  for (var f in favs) {
99
86
  this.favorites[favs[f]] = '';
100
87
  }
101
-
102
88
  break;
103
89
  }
104
90
  }
105
91
  };
106
-
107
92
  Favorites.prototype.favorited = function (post) {
108
93
  /* Favorited- returns true if the post is a favorite
109
94
  false otherwise */
110
95
  return kb.sym(post) in this.favorites;
111
96
  };
112
-
113
97
  Favorites.prototype.add = function (post, callback) {
114
98
  var batch = new UI.rdf.Statement(this.favoritesURI, SIOC('container_of'), kb.sym(post), kb.sym(this.user));
115
99
  sparqlUpdater.insert_statement(batch, function (a, success, c) {
116
100
  if (success) {
117
101
  kb.add(batch.subject, batch.predicate, batch.object, batch.why);
118
102
  }
119
-
120
103
  callback(a, success, c);
121
104
  });
122
105
  };
123
-
124
106
  Favorites.prototype.remove = function (post, callback) {
125
107
  var batch = new UI.rdf.Statement(this.favoritesURI, SIOC('container_of'), kb.sym(post), kb.sym(this.user));
126
108
  sparqlUpdater.delete_statement(batch, function (a, success, c) {
127
109
  if (success) {
128
110
  kb.add(batch.subject, batch.predicate, batch.object, batch.why);
129
111
  }
130
-
131
112
  callback(a, success, c);
132
113
  });
133
- }; // ----------------------------------------------
114
+ };
115
+ // ----------------------------------------------
134
116
  // MICROBLOG
135
117
  // store the uri's of followed users for
136
118
  // dereferencing the @replies.
137
119
  // ----------------------------------------------
138
-
139
-
140
120
  var Microblog = function Microblog(kb) {
141
- this.kb = kb; // attempt to fetch user account from local preferences if just
121
+ this.kb = kb;
122
+
123
+ // attempt to fetch user account from local preferences if just
142
124
  // in case the user's foaf was not writable. add it to the store
143
125
  // this will probably need to change.
144
-
145
126
  var theUser = _solidLogic.authn.currentUser();
146
-
147
127
  if (theUser) {
148
128
  var theAccount = UI.preferences.get('acct');
149
-
150
129
  if (theAccount) {
151
130
  theAccount = kb.sym(theAccount);
152
131
  }
153
-
154
132
  if (theUser && theAccount) {
155
133
  kb.add(theUser, FOAF('holdsAccount'), theAccount, theUser.uri.split('#')[0]);
156
134
  }
157
135
  }
158
136
  };
159
-
160
137
  Microblog.prototype.getUser = function (uri) {
161
138
  var User = {};
162
139
  User.name = kb.any(uri, SIOC('name')) ? kb.any(uri, SIOC('name')) : '';
@@ -165,10 +142,9 @@ module.exports = {
165
142
  User.sym = uri;
166
143
  return User;
167
144
  };
168
-
169
145
  Microblog.prototype.getPost = function (uri) {
170
- var Post = {}; // date ----------
171
-
146
+ var Post = {};
147
+ // date ----------
172
148
  var postLink = new Date(kb.anyValue(uri, terms('created')));
173
149
  var h = postLink.getHours();
174
150
  var a = h > 12 ? ' PM' : ' AM';
@@ -179,48 +155,45 @@ module.exports = {
179
155
  var da = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
180
156
  var ds = da[postLink.getDay()] + ' ' + postLink.getDate() + ' ' + mo[postLink.getMonth()] + ' ' + postLink.getFullYear();
181
157
  postLink = h + ':' + m + a + ' on ' + ds;
182
- Post.date = postLink; // ---------
183
-
158
+ Post.date = postLink;
159
+ // ---------
184
160
  Post.mentions = '';
185
161
  Post.message = String(kb.any(uri, SIOC('content')));
186
162
  Post.creator = kb.any(uri, SIOC('has_creator'));
187
163
  Post.uri = '';
188
164
  return Post;
189
165
  };
190
-
191
166
  Microblog.prototype.gen_random_uri = function (base) {
192
167
  // generate random uri
193
168
  var uriNonce = base + '#n' + Math.floor(Math.random() * 10e9);
194
169
  return kb.sym(uriNonce);
195
170
  };
196
-
197
171
  Microblog.prototype.statusUpdate = function (statusMsg, callback, replyTo, meta) {
198
172
  var myUserURI = this.getMyURI();
199
173
  var myUser = kb.sym(myUserURI.split('#')[0]);
200
174
  var newPost = this.gen_random_uri(myUser.uri);
201
175
  var microlist = kb.each(kb.sym(myUserURI), SIOC('creator_of'));
202
176
  var micro;
203
-
204
177
  for (var microlistelement in microlist) {
205
178
  if (kb.whether(microlist[microlistelement], RDF('type'), SIOCt('Microblog')) && !kb.whether(microlist[microlistelement], SIOC('topic'), kb.sym(this.getMyURI()))) {
206
179
  micro = microlist[microlistelement];
207
180
  break;
208
181
  }
209
- } // generate new post
210
-
182
+ }
211
183
 
212
- 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)]; // message replies
184
+ // generate new post
185
+ 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)];
213
186
 
187
+ // message replies
214
188
  if (replyTo) {
215
189
  batch.push(new UI.rdf.Statement(newPost, SIOC('reply_of'), kb.sym(replyTo), myUser));
216
- } // @replies, #hashtags, !groupReplies
217
-
190
+ }
218
191
 
192
+ // @replies, #hashtags, !groupReplies
219
193
  for (var r in meta.recipients) {
220
194
  batch.push(new UI.rdf.Statement(newPost, SIOC('topic'), kb.sym(meta.recipients[r]), myUser));
221
195
  batch.push(new UI.rdf.Statement(kb.any(), SIOC('container_of'), newPost, myUser));
222
196
  var mblogs = kb.each(kb.sym(meta.recipients[r]), SIOC('creator_of'));
223
-
224
197
  for (var mbl in mblogs) {
225
198
  if (kb.whether(mblogs[mbl], SIOC('topic'), kb.sym(meta.recipients[r]))) {
226
199
  var replyBatch = new UI.rdf.Statement(mblogs[mbl], SIOC('container_of'), newPost, kb.sym(meta.recipients[r].split('#')[0]));
@@ -228,67 +201,61 @@ module.exports = {
228
201
  }
229
202
  }
230
203
  }
231
-
232
204
  sparqlUpdater.insert_statement(batch, function (a, b, c) {
233
205
  callback(a, b, c, batch);
234
206
  });
235
207
  };
236
-
237
208
  Microblog.prototype.getMyURI = function () {
238
209
  var me = _solidLogic.authn.currentUser();
239
-
240
210
  console.log(me);
241
211
  var myMicroblog = kb.any(kb.sym(me), FOAF('holdsAccount'));
242
212
  console.log('\n\n' + myMicroblog);
243
213
  return myMicroblog ? myMicroblog.uri : false;
244
214
  };
245
-
246
215
  Microblog.prototype.generateNewMB = function (id, name, avatar, loc) {
247
216
  var host = loc + '/' + id;
248
-
249
217
  var rememberMicroblog = function rememberMicroblog() {
250
218
  UI.preferences.set('acct', host + '#' + id);
251
219
  };
252
-
253
220
  var cbgenUserMB = function cbgenUserMB(a, success, c, d) {
254
221
  if (success) {
255
- alert('Microblog generated at ' + host + '#' + id + 'please add <b>' + host + '</b> to your foaf.'); // mbCancelNewMB() @@TBD
222
+ alert('Microblog generated at ' + host + '#' + id + 'please add <b>' + host + '</b> to your foaf.');
223
+ // mbCancelNewMB() @@TBD
256
224
  // assume the foaf is not writable and store the microblog to the
257
225
  // preferences for later retrieval.
258
226
  // this will probably need to change.
259
-
260
227
  rememberMicroblog();
261
-
262
228
  for (var triple in d) {
263
229
  kb.add(d[triple].subject, d[triple].predicate, d[triple].object, d[triple].why);
264
230
  }
265
231
  }
266
232
  };
267
-
268
- var genUserMB = [// user
269
- 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)), // microblog
270
- new UI.rdf.Statement(kb.sym(host + '#mb'), RDF('type'), SIOCt('Microblog'), kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#mb'), SIOC('has_creator'), kb.sym(host + '#' + id), kb.sym(host)), // notification microblog
271
- new UI.rdf.Statement(kb.sym(host + '#mbn'), RDF('type'), SIOCt('Microblog'), kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#mbn'), SIOC('topic'), kb.sym(host + '#' + id), kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#mbn'), SIOC('has_creator'), kb.sym(host + '#' + id), kb.sym(host)), // favorites container
233
+ var genUserMB = [
234
+ // user
235
+ 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)),
236
+ // microblog
237
+ new UI.rdf.Statement(kb.sym(host + '#mb'), RDF('type'), SIOCt('Microblog'), kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#mb'), SIOC('has_creator'), kb.sym(host + '#' + id), kb.sym(host)),
238
+ // notification microblog
239
+ new UI.rdf.Statement(kb.sym(host + '#mbn'), RDF('type'), SIOCt('Microblog'), kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#mbn'), SIOC('topic'), kb.sym(host + '#' + id), kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#mbn'), SIOC('has_creator'), kb.sym(host + '#' + id), kb.sym(host)),
240
+ // favorites container
272
241
  new UI.rdf.Statement(kb.sym(host + '#fav'), RDF('type'), SIOCt('FavouriteThings'), kb.sym(host)), new UI.rdf.Statement(kb.sym(host + '#fav'), SIOC('has_creator'), kb.sym(host + '#' + id), kb.sym(host))];
273
-
274
242
  if (avatar) {
275
243
  // avatar optional
276
244
  genUserMB.push(new UI.rdf.Statement(kb.sym(host + '#' + id), SIOC('avatar'), kb.sym(avatar), kb.sym(host)));
277
245
  }
278
-
279
246
  sparqlUpdater.insert_statement(genUserMB, cbgenUserMB);
280
247
  };
281
-
282
248
  var mb = new Microblog(kb);
283
249
  var myFavorites = new Favorites(mb.getMyURI());
284
- var myFollowList = new FollowList(mb.getMyURI()); //* **********************************************
250
+ var myFollowList = new FollowList(mb.getMyURI());
251
+
252
+ //* **********************************************
285
253
  // FRONT END FUNCTIONALITY
286
254
  //* **********************************************
287
255
  // ----------------------------------------------
288
256
  // PANE
289
257
  // User Interface for the Microblog Pane
290
258
  // ----------------------------------------------
291
-
292
259
  var Pane = function Pane(s, doc, microblogPane) {
293
260
  var TabManager = function TabManager(doc) {
294
261
  this.tablist = {};
@@ -296,15 +263,12 @@ module.exports = {
296
263
  this.tabView = doc.createElement('ul');
297
264
  this.tabView.className = 'tabslist';
298
265
  };
299
-
300
266
  TabManager.prototype.create = function (id, caption, view, isDefault) {
301
267
  var tab = this.doc.createElement('li');
302
268
  tab.innerHTML = caption;
303
-
304
269
  if (isDefault) {
305
270
  tab.className = 'active';
306
271
  }
307
-
308
272
  tab.id = id;
309
273
  var change = this.change;
310
274
  var tablist = this.tablist;
@@ -317,11 +281,9 @@ module.exports = {
317
281
  };
318
282
  this.tabView.appendChild(tab);
319
283
  };
320
-
321
284
  TabManager.prototype.getTabView = function () {
322
285
  return this.tabView;
323
286
  };
324
-
325
287
  TabManager.prototype.change = function (id, tablist, doc) {
326
288
  for (var tab in tablist) {
327
289
  if (tab === id) {
@@ -334,55 +296,46 @@ module.exports = {
334
296
  }
335
297
  }
336
298
  };
337
-
338
299
  this.microblogPane = microblogPane;
339
300
  var accounts = kb.each(s, FOAF('holdsAccount'));
340
301
  var account;
341
-
342
302
  for (var a in accounts) {
343
303
  if (kb.whether(accounts[a], RDF('type'), SIOC('User')) && kb.whether(kb.any(accounts[a], SIOC('creator_of')), RDF('type'), SIOCt('Microblog'))) {
344
304
  account = accounts[a];
345
305
  break;
346
306
  }
347
307
  }
348
-
349
308
  this.Ifollow = kb.whether(kb.sym(mb.getMyURI()), SIOC('follows'), account);
350
309
  var resourceType = kb.any(s, RDF('type'));
351
-
352
310
  if (resourceType.uri === SIOCt('Microblog').uri || resourceType.uri === SIOCt('MicroblogPost').uri) {
353
311
  this.thisIsMe = kb.any(s, SIOC('has_creator')).uri === mb.getMyURI();
354
312
  } else if (resourceType.uri === SIOC('User').uri) {
355
313
  this.thisIsMe = s.uri === mb.getMyURI();
356
314
  } else if (resourceType.uri === FOAF('Person').uri) {
357
315
  var me = _solidLogic.authn.currentUser();
358
-
359
316
  var meUri = me && me.uri;
360
317
  this.thisIsMe = s.uri === meUri;
361
318
  } else {
362
319
  this.thisIsMe = false;
363
320
  }
364
-
365
321
  this.Tab = new TabManager(doc);
366
322
  };
367
-
368
323
  Pane.prototype.notify = function (messageString) {
369
324
  var xmsg = doc.createElement('li');
370
325
  xmsg.className = 'notify';
371
326
  xmsg.innerHTML = messageString;
372
327
  doc.getElementById('notify-container').appendChild(xmsg);
373
328
  setTimeout(function () {
374
- doc.getElementById('notify-container').removeChild(xmsg); // delete xmsg;
329
+ doc.getElementById('notify-container').removeChild(xmsg);
330
+ // delete xmsg;
375
331
  }, 4000);
376
332
  };
377
-
378
333
  Pane.prototype.header = function (s, doc) {
379
334
  var that = this;
380
-
381
335
  function lsFollowUser() {
382
- var myUser = kb.sym(mb.getMyURI()); // var Ifollow = that.Ifollow
383
-
336
+ var myUser = kb.sym(mb.getMyURI());
337
+ // var Ifollow = that.Ifollow
384
338
  var username = that.creator.name;
385
-
386
339
  var mbconfirmFollow = function mbconfirmFollow(uri, success, _msg) {
387
340
  if (success === true) {
388
341
  if (!that.Ifollow) {
@@ -393,7 +346,6 @@ module.exports = {
393
346
  } else {
394
347
  kb.removeMany(followMe.subject, followMe.predicate, followMe.object, followMe.why);
395
348
  }
396
-
397
349
  console.log(that.Ifollow);
398
350
  that.Ifollow = !that.Ifollow;
399
351
  xfollowButton.disabled = false;
@@ -404,40 +356,35 @@ module.exports = {
404
356
  that.notify('You ' + doFollow + username + '.');
405
357
  }
406
358
  };
407
-
408
359
  var followMe = new UI.rdf.Statement(myUser, SIOC('follows'), that.creator.sym, myUser);
409
360
  xfollowButton.disabled = true;
410
361
  xfollowButton.value = 'Updating...';
411
-
412
362
  if (!that.Ifollow) {
413
363
  sparqlUpdater.insert_statement(followMe, mbconfirmFollow);
414
364
  } else {
415
365
  sparqlUpdater.delete_statement(followMe, mbconfirmFollow);
416
366
  }
417
367
  }
418
-
419
368
  var notify = function notify(messageString) {
420
369
  var xmsg = doc.createElement('li');
421
370
  xmsg.className = 'notify';
422
371
  xmsg.innerHTML = messageString;
423
372
  doc.getElementById('notify-container').appendChild(xmsg);
424
373
  setTimeout(function () {
425
- doc.getElementById('notify-container').removeChild(xmsg); // delete xmsg;
374
+ doc.getElementById('notify-container').removeChild(xmsg);
375
+ // delete xmsg;
426
376
  }, 4000);
427
377
  };
428
-
429
378
  var mbCancelNewMB = function mbCancelNewMB(_evt) {
430
379
  xupdateContainer.removeChild(xupdateContainer.childNodes[xupdateContainer.childNodes.length - 1]);
431
380
  xcreateNewMB.disabled = false;
432
381
  };
433
-
434
382
  var lsCreateNewMB = function lsCreateNewMB(_evt) {
435
383
  // disable the create new microblog button.
436
384
  // then prefills the information.
437
385
  xcreateNewMB.disabled = true;
438
386
  var xcmb = doc.createElement('div');
439
387
  var xcmbName = doc.createElement('input');
440
-
441
388
  if (kb.whether(s, FOAF('name'))) {
442
389
  // handle use of FOAF:NAME
443
390
  xcmbName.value = kb.any(s, FOAF('name'));
@@ -447,11 +394,9 @@ module.exports = {
447
394
  xcmbName.value += kb.any(s, FOAF('family_name')) ? kb.any(s, FOAF('givenname')) : '';
448
395
  xcmbName.value = kb.any(s, FOAF('givenname')) + ' ' + kb.any(s, FOAF('family_name'));
449
396
  }
450
-
451
397
  var xcmbId = doc.createElement('input');
452
398
  xcmbId.value = kb.any(s, FOAF('nick')) ? kb.any(s, FOAF('nick')) : '';
453
399
  var xcmbAvatar = doc.createElement('input');
454
-
455
400
  if (kb.whether(s, FOAF('img'))) {
456
401
  // handle use of img
457
402
  xcmbAvatar.value = kb.any(s, FOAF('img')).uri;
@@ -459,12 +404,10 @@ module.exports = {
459
404
  // otherwise try depiction
460
405
  xcmbAvatar.value = kb.any(s, FOAF('depiction')) ? kb.any(s, FOAF('depiction')).uri : '';
461
406
  }
462
-
463
- var workspace; // = kb.any(s,WORKSPACE) //TODO - ADD URI FOR WORKSPACE DEFINITION
464
-
407
+ var workspace;
408
+ // = kb.any(s,WORKSPACE) //TODO - ADD URI FOR WORKSPACE DEFINITION
465
409
  var xcmbWritable = doc.createElement('input');
466
410
  xcmbWritable.value = workspace || 'http://dig.csail.mit.edu/2007/wiki/sandbox'; // @@@
467
-
468
411
  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 ";
469
412
  xupdateContainer.appendChild(xcmb);
470
413
  doc.getElementById('xcmbname').appendChild(xcmbName);
@@ -477,12 +420,11 @@ module.exports = {
477
420
  }, false);
478
421
  xcmbName.focus();
479
422
  };
480
-
481
423
  var mbSubmitPost = function mbSubmitPost() {
482
424
  var meta = {
483
425
  recipients: []
484
- }; // user has selected a microblog to post to
485
-
426
+ };
427
+ // user has selected a microblog to post to
486
428
  if (mb.getMyURI()) {
487
429
  var _ret = function () {
488
430
  // let myUser = kb.sym(mb.getMyURI())
@@ -492,12 +434,10 @@ module.exports = {
492
434
  for (var triple in d) {
493
435
  kb.add(d[triple].subject, d[triple].predicate, d[triple].object, d[triple].why);
494
436
  }
495
-
496
437
  xupdateSubmit.disabled = false;
497
438
  xupdateStatus.value = '';
498
439
  mbLetterCount();
499
440
  notify('Microblog Updated.');
500
-
501
441
  if (that.thisIsMe) {
502
442
  doc.getElementById('postNotificationList').insertBefore(that.generatePost(d[0].subject), doc.getElementById('postNotificationList').childNodes[0]);
503
443
  }
@@ -505,21 +445,17 @@ module.exports = {
505
445
  notify('There was a problem submitting your post.');
506
446
  }
507
447
  };
508
-
509
448
  var words = xupdateStatus.value.split(' ');
510
-
511
449
  var mbUpdateWithReplies = function mbUpdateWithReplies() {
512
450
  xupdateSubmit.disabled = true;
513
451
  xupdateSubmit.value = 'Updating...';
514
452
  mb.statusUpdate(xupdateStatus.value, cbconfirmSubmit, xinReplyToContainer.value, meta);
515
453
  };
516
-
517
454
  for (var word in words) {
518
455
  if (words[word].match(/@\w+/)) {
519
456
  var _ret2 = function () {
520
457
  var atUser = words[word].replace(/\W/g, '');
521
458
  var recipient = myFollowList.selectUser(atUser);
522
-
523
459
  if (recipient[0] === true) {
524
460
  meta.recipients.push(recipient[1][0]);
525
461
  } else if (recipient[1].length > 1) {
@@ -534,7 +470,6 @@ module.exports = {
534
470
  xrecipients.parentNode.removeChild(xrecipientsSubmit);
535
471
  xrecipients.parentNode.removeChild(xrecipients);
536
472
  }, false);
537
-
538
473
  var recipChoice = function recipChoice(recip, c) {
539
474
  var name = kb.any(kb.sym(recip), SIOC('name'));
540
475
  var choice = doc.createElement('option');
@@ -542,11 +477,9 @@ module.exports = {
542
477
  choice.innerHTML = name;
543
478
  return choice;
544
479
  };
545
-
546
480
  for (var r in recipient[1]) {
547
481
  xrecipients.appendChild(recipChoice(recipient[1][r], r));
548
482
  }
549
-
550
483
  xupdateContainer.appendChild(xrecipients);
551
484
  xupdateContainer.appendChild(xrecipientsSubmit);
552
485
  return {
@@ -568,7 +501,6 @@ module.exports = {
568
501
  }
569
502
  }
570
503
  }();
571
-
572
504
  if (_typeof(_ret2) === "object") return _ret2.v;
573
505
  }
574
506
  /* else if(words[word].match(/\#\w+/)){
@@ -576,29 +508,24 @@ module.exports = {
576
508
  } else if(words[word].match(/\!\w+/)){
577
509
  //usergroup
578
510
  } */
579
-
580
511
  }
581
512
 
582
513
  mbUpdateWithReplies();
583
514
  }();
584
-
585
515
  if (_typeof(_ret) === "object") return _ret.v;
586
516
  } else {
587
517
  notify('Please set your microblog first.');
588
518
  }
589
519
  };
590
-
591
520
  var mbLetterCount = function mbLetterCount() {
592
521
  xupdateStatusCounter.innerHTML = charCount - xupdateStatus.value.length;
593
522
  xupdateStatusCounter.style.color = charCount - xupdateStatus.value.length < 0 ? '#c33' : '';
594
-
595
523
  if (xupdateStatus.value.length === 0) {
596
524
  xinReplyToContainer.value = '';
597
525
  xupdateSubmit.value = 'Send';
598
526
  }
599
- }; // reply viewer
600
-
601
-
527
+ };
528
+ // reply viewer
602
529
  var xviewReply = doc.createElement('ul');
603
530
  xviewReply.className = 'replyView';
604
531
  xviewReply.addEventListener('click', function () {
@@ -606,8 +533,9 @@ module.exports = {
606
533
  }, false);
607
534
  this.xviewReply = xviewReply;
608
535
  var headerContainer = doc.createElement('div');
609
- headerContainer.className = 'header-container'; // ---create status update box---
536
+ headerContainer.className = 'header-container';
610
537
 
538
+ // ---create status update box---
611
539
  var xnotify = doc.createElement('ul');
612
540
  xnotify.id = 'notify-container';
613
541
  xnotify.className = 'notify-container';
@@ -620,7 +548,6 @@ module.exports = {
620
548
  var xupdateStatusCounter;
621
549
  var xupdateSubmit;
622
550
  var xcreateNewMB;
623
-
624
551
  if (mb.getMyURI()) {
625
552
  xinReplyToContainer = doc.createElement('input');
626
553
  xinReplyToContainer.id = 'xinReplyToContainer';
@@ -650,41 +577,39 @@ module.exports = {
650
577
  xupdateContainer.appendChild(xnewUser);
651
578
  xupdateContainer.appendChild(xcreateNewMB);
652
579
  }
653
-
654
580
  headerContainer.appendChild(xupdateContainer);
655
581
  var subheaderContainer = doc.createElement('div');
656
- subheaderContainer.className = 'subheader-container'; // user header
657
- // this.creator
582
+ subheaderContainer.className = 'subheader-container';
658
583
 
584
+ // user header
585
+ // this.creator
659
586
  var creators = kb.each(s, FOAF('holdsAccount'));
660
587
  var creator;
661
-
662
588
  for (var c in creators) {
663
589
  if (kb.whether(creators[c], RDF('type'), SIOC('User')) && kb.whether(kb.any(creators[c], SIOC('creator_of')), RDF('type'), SIOCt('Microblog'))) {
664
- creator = creators[c]; // var mb = kb.sym(creator.uri.split("#")[0]);
590
+ creator = creators[c];
591
+ // var mb = kb.sym(creator.uri.split("#")[0]);
665
592
  // store.fetcher.refresh(mb);
666
-
667
- break; // TODO add support for more than one microblog in same foaf
593
+ break;
594
+ // TODO add support for more than one microblog in same foaf
668
595
  }
669
596
  }
670
597
 
671
598
  var xfollowButton;
672
-
673
599
  if (creator) {
674
- this.creator = mb.getUser(creator); // ---display avatar, if available ---
675
-
600
+ this.creator = mb.getUser(creator);
601
+ // ---display avatar, if available ---
676
602
  if (this.creator.avatar !== '') {
677
603
  var avatar = doc.createElement('img');
678
604
  avatar.src = this.creator.avatar.uri;
679
605
  subheaderContainer.appendChild(avatar);
680
- } // ---generate name ---
681
-
682
-
606
+ }
607
+ // ---generate name ---
683
608
  var userName = doc.createElement('h1');
684
609
  userName.className = 'fn';
685
610
  userName.appendChild(doc.createTextNode(this.creator.name + ' (' + this.creator.id + ')'));
686
- subheaderContainer.appendChild(userName); // ---display follow button---
687
-
611
+ subheaderContainer.appendChild(userName);
612
+ // ---display follow button---
688
613
  if (!this.thisIsMe && mb.getMyURI()) {
689
614
  xfollowButton = doc.createElement('input');
690
615
  xfollowButton.setAttribute('type', 'button');
@@ -692,32 +617,26 @@ module.exports = {
692
617
  xfollowButton.value = followButtonLabel + this.creator.name;
693
618
  xfollowButton.addEventListener('click', lsFollowUser, false);
694
619
  subheaderContainer.appendChild(xfollowButton);
695
- } // user header end
620
+ }
621
+ // user header end
696
622
  // header tabs
697
-
698
-
699
623
  var xtabsList = this.Tab.getTabView();
700
624
  headerContainer.appendChild(subheaderContainer);
701
625
  headerContainer.appendChild(xtabsList);
702
626
  }
703
-
704
627
  return headerContainer;
705
628
  };
706
-
707
629
  Pane.prototype.generatePost = function (post, _me) {
708
630
  /*
709
631
  generatePost - Creates and formats microblog posts
710
632
  post - symbol of the uri the post in question
711
633
  */
712
634
  var that = this;
713
-
714
635
  var viewPost = function viewPost(uris) {
715
636
  var xviewReply = that.xviewReply;
716
-
717
637
  for (var i = 0; i < xviewReply.childNodes.length; i++) {
718
638
  xviewReply.removeChild(xviewReply.childNodes[0]);
719
639
  }
720
-
721
640
  var xcloseContainer = doc.createElement('li');
722
641
  xcloseContainer.className = 'closeContainer';
723
642
  var xcloseButton = doc.createElement('span');
@@ -725,36 +644,33 @@ module.exports = {
725
644
  xcloseButton.className = 'closeButton';
726
645
  xcloseContainer.appendChild(xcloseButton);
727
646
  xviewReply.appendChild(xcloseContainer);
728
-
729
647
  for (var uri in uris) {
730
648
  xviewReply.appendChild(that.generatePost(kb.sym(uris[uri]), this.thisIsMe, 'view'));
731
649
  }
732
-
733
650
  xviewReply.className = 'replyView-active';
734
651
  that.microblogPane.appendChild(xviewReply);
735
- }; // container for post
736
-
737
-
652
+ };
653
+ // container for post
738
654
  var xpost = doc.createElement('li');
739
655
  xpost.className = 'post';
740
656
  xpost.setAttribute('id', String(post.uri).split('#')[1]);
741
- var Post = mb.getPost(post); // username text
657
+ var Post = mb.getPost(post);
658
+ // username text
742
659
  // var uname = kb.any(kb.any(post, SIOC('has_creator')), SIOC('id'))
743
-
744
660
  var uholdsaccount = kb.any(undefined, FOAF('holdsAccount'), kb.any(post, SIOC('has_creator')));
745
661
  var xuname = doc.createElement('a');
746
662
  xuname.href = uholdsaccount.uri;
747
663
  xuname.className = 'userLink';
748
664
  var xunameText = doc.createTextNode(mb.getUser(Post.creator).id);
749
- xuname.appendChild(xunameText); // user image
750
-
665
+ xuname.appendChild(xunameText);
666
+ // user image
751
667
  var xuavatar = doc.createElement('img');
752
668
  xuavatar.src = mb.getUser(Post.creator).avatar.uri;
753
- xuavatar.className = 'postAvatar'; // post content
754
-
669
+ xuavatar.className = 'postAvatar';
670
+ // post content
755
671
  var xpostContent = doc.createElement('blockquote');
756
- var postText = Post.message; // post date
757
-
672
+ var postText = Post.message;
673
+ // post date
758
674
  var xpostLink = doc.createElement('a');
759
675
  xpostLink.className = 'postLink';
760
676
  xpostLink.addEventListener('click', function () {
@@ -764,40 +680,35 @@ module.exports = {
764
680
  xpostLink.setAttribute('content', post.uri);
765
681
  xpostLink.setAttribute('property', 'permalink');
766
682
  var postLink = doc.createTextNode(Post.date ? Post.date : 'post date unknown');
767
- xpostLink.appendChild(postLink); // LINK META DATA (MENTIONS, HASHTAGS, GROUPS)
683
+ xpostLink.appendChild(postLink);
768
684
 
685
+ // LINK META DATA (MENTIONS, HASHTAGS, GROUPS)
769
686
  var mentions = kb.each(post, SIOC('topic'));
770
687
  var tags = {};
771
-
772
688
  for (var mention in mentions) {
773
689
  sf.lookUpThing(mentions[mention]);
774
690
  var id = kb.any(mentions[mention], SIOC('id'));
775
691
  tags['@' + id] = mentions[mention];
776
692
  }
777
-
778
693
  var postTags = postText.match(/(@|#|!)\w+/g);
779
-
780
694
  var postFunction = function postFunction() {
781
695
  var p = postTags.pop();
782
696
  return tags[p] ? kb.any(undefined, FOAF('holdsAccount'), tags[p]).uri : p;
783
697
  };
784
-
785
698
  for (var t in tags) {
786
699
  var person = t.replace(/@/, '');
787
700
  var replacePerson = RegExp('(@|!|#)(' + person + ')');
788
701
  postText = postText.replace(replacePerson, '$1<a href="' + postFunction() + '">$2</a>');
789
702
  }
703
+ xpostContent.innerHTML = postText;
790
704
 
791
- xpostContent.innerHTML = postText; // in reply to logic
705
+ // in reply to logic
792
706
  // This has the potential to support a post that replies to many messages.
793
-
794
707
  var inReplyTo = kb.each(post, SIOC('reply_of'));
795
708
  var xreplyTo = doc.createElement('span');
796
709
  var theReply;
797
-
798
710
  for (var reply in inReplyTo) {
799
711
  theReply = String(inReplyTo[reply]).replace(/<|>/g, '');
800
-
801
712
  var genReplyTo = function genReplyTo() {
802
713
  var reply = doc.createElement('a');
803
714
  reply.innerHTML = ', <b>in reply to</b>';
@@ -807,12 +718,11 @@ module.exports = {
807
718
  }, false);
808
719
  return reply;
809
720
  };
810
-
811
721
  xreplyTo.appendChild(genReplyTo());
812
- } // END LINK META DATA
813
- // add the reply to and delete buttons to the interface
814
-
722
+ }
815
723
 
724
+ // END LINK META DATA
725
+ // add the reply to and delete buttons to the interface
816
726
  var mbReplyTo = function mbReplyTo() {
817
727
  var id = mb.getUser(Post.creator).id;
818
728
  var xupdateStatus = doc.getElementById('xupdateStatus');
@@ -823,20 +733,16 @@ module.exports = {
823
733
  xinReplyToContainer.value = post.uri;
824
734
  xupdateSubmit.value = 'Reply';
825
735
  };
826
-
827
736
  var xconfirmDeletionDialog;
828
-
829
737
  var mbDeletePost = function mbDeletePost(evt) {
830
738
  var lsconfirmNo = function lsconfirmNo() {
831
739
  doc.getElementById('notify-container').removeChild(xconfirmDeletionDialog);
832
740
  evt.target.disabled = false;
833
741
  };
834
-
835
742
  var lsconfirmYes = function lsconfirmYes() {
836
743
  reallyDelete();
837
744
  doc.getElementById('notify-container').removeChild(xconfirmDeletionDialog);
838
745
  };
839
-
840
746
  evt.target.disabled = true;
841
747
  xconfirmDeletionDialog = doc.createElement('li');
842
748
  xconfirmDeletionDialog.className = 'notify conf';
@@ -860,13 +766,12 @@ module.exports = {
860
766
  xconfirmDeletionDialog.appendChild(confirmyes);
861
767
  doc.getElementById('notify-container').appendChild(xconfirmDeletionDialog);
862
768
  confirmno.focus();
863
-
864
769
  var reallyDelete = function reallyDelete() {
865
770
  // callback after deletion
866
771
  var mbconfirmDeletePost = function mbconfirmDeletePost(a, success) {
867
772
  if (success) {
868
- that.notify('Post deleted.'); // update the ui to reflect model changes.
869
-
773
+ that.notify('Post deleted.');
774
+ // update the ui to reflect model changes.
870
775
  var deleteThisNode = evt.target.parentNode;
871
776
  deleteThisNode.parentNode.removeChild(deleteThisNode);
872
777
  kb.removeMany(deleteMe);
@@ -874,9 +779,8 @@ module.exports = {
874
779
  that.notify('Oops, there was a problem, please try again');
875
780
  evt.target.disabled = true;
876
781
  }
877
- }; // delete references to post
878
-
879
-
782
+ };
783
+ // delete references to post
880
784
  var deleteContainerOf = function deleteContainerOf(a, success) {
881
785
  if (success) {
882
786
  var deleteContainer = kb.statementsMatching(undefined, SIOC('container_of'), kb.sym(doc.getElementById('post_' + evt.target.parentNode.id).getAttribute('content')));
@@ -885,24 +789,20 @@ module.exports = {
885
789
  that.notify('Oops, there was a problem, please try again');
886
790
  evt.target.disabled = false;
887
791
  }
888
- }; // delete attributes of post
889
-
890
-
792
+ };
793
+ // delete attributes of post
891
794
  evt.target.disabled = true;
892
795
  var deleteMe = kb.statementsMatching(kb.sym(doc.getElementById('post_' + evt.target.parentNode.id).getAttribute('content')));
893
796
  sparqlUpdater.batch_delete_statement(deleteMe, deleteContainerOf);
894
797
  };
895
798
  };
896
-
897
799
  var themaker;
898
800
  var xreplyButton;
899
801
  var xdeleteButton;
900
-
901
802
  if (mb.getMyURI()) {
902
803
  // If the microblog in question does not belong to the user,
903
804
  // display the delete post and reply to post buttons.
904
805
  themaker = kb.any(post, SIOC('has_creator'));
905
-
906
806
  if (mb.getMyURI() !== themaker.uri) {
907
807
  xreplyButton = doc.createElement('input');
908
808
  xreplyButton.type = 'button';
@@ -917,59 +817,47 @@ module.exports = {
917
817
  xdeleteButton.addEventListener('click', mbDeletePost, false);
918
818
  }
919
819
  }
920
-
921
820
  var mbFavorite = function mbFavorite(evt) {
922
821
  var nid = evt.target.parentNode.id;
923
822
  var favpost = doc.getElementById('post_' + nid).getAttribute('content');
924
823
  xfavorite.className += ' ing';
925
-
926
824
  var cbFavorite = function cbFavorite(a, success, _c, _d) {
927
825
  if (success) {
928
826
  xfavorite.className = xfavorite.className.split(' ')[1] === 'ed' ? 'favorit' : 'favorit ed';
929
827
  }
930
828
  };
931
-
932
829
  if (!myFavorites.favorited(favpost)) {
933
830
  myFavorites.add(favpost, cbFavorite);
934
831
  } else {
935
832
  myFavorites.remove(favpost, cbFavorite);
936
833
  }
937
834
  };
938
-
939
835
  var xfavorite = doc.createElement('a');
940
836
  xfavorite.innerHTML = '&#9733;';
941
837
  xfavorite.addEventListener('click', mbFavorite, false);
942
-
943
838
  if (myFavorites.favorited(post.uri)) {
944
839
  xfavorite.className = 'favorit ed';
945
840
  } else {
946
841
  xfavorite.className = 'favorit';
947
- } // build
948
-
949
-
842
+ }
843
+ // build
950
844
  xpost.appendChild(xuavatar);
951
845
  xpost.appendChild(xpostContent);
952
-
953
846
  if (mb.getMyURI()) {
954
847
  xpost.appendChild(xfavorite);
955
-
956
848
  if (mb.getMyURI() !== themaker.uri) {
957
849
  xpost.appendChild(xreplyButton);
958
850
  } else {
959
851
  xpost.appendChild(xdeleteButton);
960
852
  }
961
853
  }
962
-
963
854
  xpost.appendChild(xuname);
964
855
  xpost.appendChild(xpostLink);
965
-
966
856
  if (inReplyTo !== '') {
967
857
  xpost.appendChild(xreplyTo);
968
858
  }
969
-
970
859
  return xpost;
971
860
  };
972
-
973
861
  Pane.prototype.generatePostList = function (gmbPosts) {
974
862
  /*
975
863
  generatePostList - Generate the posts and
@@ -978,25 +866,19 @@ module.exports = {
978
866
  var postList = doc.createElement('ul');
979
867
  var postlist = {};
980
868
  var datelist = [];
981
-
982
869
  for (var post in gmbPosts) {
983
870
  var postDate = kb.any(gmbPosts[post], terms('created'));
984
-
985
871
  if (postDate) {
986
872
  datelist.push(postDate);
987
873
  postlist[postDate] = this.generatePost(gmbPosts[post], this.thisIsMe);
988
874
  }
989
875
  }
990
-
991
876
  datelist.sort().reverse();
992
-
993
877
  for (var d in datelist) {
994
878
  postList.appendChild(postlist[datelist[d]]);
995
879
  }
996
-
997
880
  return postList;
998
881
  };
999
-
1000
882
  Pane.prototype.followsView = function () {
1001
883
  var getFollowed = function getFollowed(user) {
1002
884
  var userid = kb.any(user, SIOC('id'));
@@ -1008,44 +890,35 @@ module.exports = {
1008
890
  follow.innerHTML = '<a href="' + fol + '">' + userid + '</a>';
1009
891
  return follow;
1010
892
  };
1011
-
1012
893
  var xfollows = doc.createElement('div');
1013
894
  xfollows.id = 'xfollows';
1014
895
  xfollows.className = 'followlist-container view-container';
1015
-
1016
896
  if (this.creator && kb.whether(this.creator.sym, SIOC('follows'))) {
1017
897
  var creatorFollows = kb.each(this.creator.sym, SIOC('follows'));
1018
898
  var xfollowsList = doc.createElement('ul');
1019
-
1020
899
  for (var thisPerson in creatorFollows) {
1021
900
  xfollowsList.appendChild(getFollowed(creatorFollows[thisPerson]));
1022
901
  }
1023
-
1024
902
  xfollows.appendChild(xfollowsList);
1025
903
  }
1026
-
1027
904
  this.Tab.create('tab-follows', 'Follows', xfollows, false);
1028
905
  return xfollows;
1029
906
  };
1030
-
1031
907
  Pane.prototype.streamView = function (s, doc) {
1032
908
  var postContainer = doc.createElement('div');
1033
909
  postContainer.id = 'postContainer';
1034
910
  postContainer.className = 'post-container view-container active';
1035
911
  var mbPosts = [];
1036
-
1037
912
  if (kb.whether(s, FOAF('name')) && kb.whether(s, FOAF('holdsAccount'))) {
1038
913
  sf.lookUpThing(kb.any(s, FOAF('holdsAccount')));
1039
914
  var follows = kb.each(kb.any(s, FOAF('holdsAccount')), SIOC('follows'));
1040
-
1041
915
  for (var f in follows) {
1042
- sf.lookUpThing(follows[f]); // look up people user follows
1043
-
1044
- var smicroblogs = kb.each(follows[f], SIOC('creator_of')); // get the follows microblogs
1045
-
916
+ sf.lookUpThing(follows[f]);
917
+ // look up people user follows
918
+ var smicroblogs = kb.each(follows[f], SIOC('creator_of'));
919
+ // get the follows microblogs
1046
920
  for (var smb in smicroblogs) {
1047
921
  sf.lookUpThing(smicroblogs[smb]);
1048
-
1049
922
  if (kb.whether(smicroblogs[smb], SIOC('topic'), follows[f])) {
1050
923
  continue;
1051
924
  } else {
@@ -1054,19 +927,16 @@ module.exports = {
1054
927
  }
1055
928
  }
1056
929
  }
1057
-
1058
930
  if (mbPosts.length > 0) {
1059
- var postList = this.generatePostList(mbPosts); // generate stream
1060
-
931
+ var postList = this.generatePostList(mbPosts);
932
+ // generate stream
1061
933
  postList.id = 'postList';
1062
934
  postList.className = 'postList';
1063
935
  postContainer.appendChild(postList);
1064
936
  }
1065
-
1066
937
  this.Tab.create('tab-stream', 'By Follows', postContainer, true);
1067
938
  return postContainer;
1068
939
  };
1069
-
1070
940
  Pane.prototype.notificationsView = function (s, doc) {
1071
941
  var postNotificationContainer = doc.createElement('div');
1072
942
  postNotificationContainer.id = 'postNotificationContainer';
@@ -1075,15 +945,13 @@ module.exports = {
1075
945
  postMentionContainer.id = 'postMentionContainer';
1076
946
  postMentionContainer.className = 'mention-container view-container';
1077
947
  var mbnPosts = [];
1078
- var mbmPosts = []; // get mbs that I am the creator of.
1079
-
948
+ var mbmPosts = [];
949
+ // get mbs that I am the creator of.
1080
950
  var theUser = kb.any(s, FOAF('holdsAccount'));
1081
951
  var user = kb.any(theUser, SIOC('id'));
1082
952
  var microblogs = kb.each(theUser, SIOC('creator_of'));
1083
-
1084
953
  for (var mbm in microblogs) {
1085
954
  sf.lookUpThing(microblogs[mbm]);
1086
-
1087
955
  if (kb.whether(microblogs[mbm], SIOC('topic'), theUser)) {
1088
956
  mbmPosts = mbmPosts.concat(kb.each(microblogs[mbm], SIOC('container_of')));
1089
957
  } else {
@@ -1092,7 +960,6 @@ module.exports = {
1092
960
  }
1093
961
  }
1094
962
  }
1095
-
1096
963
  var postNotificationList = this.generatePostList(mbnPosts);
1097
964
  postNotificationList.id = 'postNotificationList';
1098
965
  postNotificationList.className = 'postList';
@@ -1106,7 +973,6 @@ module.exports = {
1106
973
  this.Tab.create('tab-by-user', 'By ' + user, postNotificationContainer, false);
1107
974
  this.Tab.create('tab-at-user', '@' + user, postMentionContainer, false);
1108
975
  };
1109
-
1110
976
  Pane.prototype.build = function () {
1111
977
  var microblogPane = this.microblogPane;
1112
978
  this.headerContainer = this.header(s, doc);
@@ -1117,17 +983,15 @@ module.exports = {
1117
983
  microblogPane.appendChild(this.xviewReply);
1118
984
  microblogPane.appendChild(this.xnotify);
1119
985
  microblogPane.appendChild(this.headerContainer);
1120
-
1121
986
  if (this.xfollows !== undefined) {
1122
987
  microblogPane.appendChild(this.xfollows);
1123
988
  }
1124
-
1125
989
  microblogPane.appendChild(this.postContainer);
1126
990
  microblogPane.appendChild(this.postNotificationContainer);
1127
991
  microblogPane.appendChild(this.postMentionContainer);
1128
992
  };
1129
-
1130
- var microblogpane = doc.createElement('div'); // var getusersfollows = function(uri){
993
+ var microblogpane = doc.createElement('div');
994
+ // var getusersfollows = function(uri){
1131
995
  // var follows = new Object();
1132
996
  // var followsa = {follows:0, matches:0};
1133
997
  // var accounts = kb.each(s, FOAF("holdsAccount"));
@@ -1146,9 +1010,9 @@ module.exports = {
1146
1010
  // followsa.matches = (follows[uri]) ? followsa.matches+1: followsa.matches;
1147
1011
  // console.log(follows.toSource());
1148
1012
  // if(followsa.follows == followsa.matches ){
1149
-
1150
1013
  var ppane = new Pane(s, doc, microblogpane);
1151
- ppane.build(); // return false;
1014
+ ppane.build();
1015
+ // return false;
1152
1016
  // }
1153
1017
  // else{
1154
1018
  // return true;
@@ -1161,7 +1025,6 @@ module.exports = {
1161
1025
  // sf.refresh(kb.sym(f));
1162
1026
  // }
1163
1027
  // }(s);
1164
-
1165
1028
  return microblogpane;
1166
1029
  }
1167
1030
  };