Mercurial > hg > cmmr2012-drupal-site
comparison core/modules/history/js/history.js @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c75dbcec494b |
---|---|
1 /** | |
2 * DO NOT EDIT THIS FILE. | |
3 * See the following change record for more information, | |
4 * https://www.drupal.org/node/2815083 | |
5 * @preserve | |
6 **/ | |
7 | |
8 (function ($, Drupal, drupalSettings, storage) { | |
9 var currentUserID = parseInt(drupalSettings.user.uid, 10); | |
10 | |
11 var secondsIn30Days = 2592000; | |
12 var thirtyDaysAgo = Math.round(new Date().getTime() / 1000) - secondsIn30Days; | |
13 | |
14 var embeddedLastReadTimestamps = false; | |
15 if (drupalSettings.history && drupalSettings.history.lastReadTimestamps) { | |
16 embeddedLastReadTimestamps = drupalSettings.history.lastReadTimestamps; | |
17 } | |
18 | |
19 Drupal.history = { | |
20 fetchTimestamps: function fetchTimestamps(nodeIDs, callback) { | |
21 if (embeddedLastReadTimestamps) { | |
22 callback(); | |
23 return; | |
24 } | |
25 | |
26 $.ajax({ | |
27 url: Drupal.url('history/get_node_read_timestamps'), | |
28 type: 'POST', | |
29 data: { 'node_ids[]': nodeIDs }, | |
30 dataType: 'json', | |
31 success: function success(results) { | |
32 Object.keys(results || {}).forEach(function (nodeID) { | |
33 storage.setItem('Drupal.history.' + currentUserID + '.' + nodeID, results[nodeID]); | |
34 }); | |
35 callback(); | |
36 } | |
37 }); | |
38 }, | |
39 getLastRead: function getLastRead(nodeID) { | |
40 if (embeddedLastReadTimestamps && embeddedLastReadTimestamps[nodeID]) { | |
41 return parseInt(embeddedLastReadTimestamps[nodeID], 10); | |
42 } | |
43 return parseInt(storage.getItem('Drupal.history.' + currentUserID + '.' + nodeID) || 0, 10); | |
44 }, | |
45 markAsRead: function markAsRead(nodeID) { | |
46 $.ajax({ | |
47 url: Drupal.url('history/' + nodeID + '/read'), | |
48 type: 'POST', | |
49 dataType: 'json', | |
50 success: function success(timestamp) { | |
51 if (embeddedLastReadTimestamps && embeddedLastReadTimestamps[nodeID]) { | |
52 return; | |
53 } | |
54 | |
55 storage.setItem('Drupal.history.' + currentUserID + '.' + nodeID, timestamp); | |
56 } | |
57 }); | |
58 }, | |
59 needsServerCheck: function needsServerCheck(nodeID, contentTimestamp) { | |
60 if (contentTimestamp < thirtyDaysAgo) { | |
61 return false; | |
62 } | |
63 | |
64 if (embeddedLastReadTimestamps && embeddedLastReadTimestamps[nodeID]) { | |
65 return contentTimestamp > parseInt(embeddedLastReadTimestamps[nodeID], 10); | |
66 } | |
67 | |
68 var minLastReadTimestamp = parseInt(storage.getItem('Drupal.history.' + currentUserID + '.' + nodeID) || 0, 10); | |
69 return contentTimestamp > minLastReadTimestamp; | |
70 } | |
71 }; | |
72 })(jQuery, Drupal, drupalSettings, window.localStorage); |