Mercurial > hg > isophonics-drupal-site
comparison core/modules/history/js/history.js @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
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 thirtyDaysAgo = Math.round(new Date().getTime() / 1000) - 30 * 24 * 60 * 60; | |
12 | |
13 var embeddedLastReadTimestamps = false; | |
14 if (drupalSettings.history && drupalSettings.history.lastReadTimestamps) { | |
15 embeddedLastReadTimestamps = drupalSettings.history.lastReadTimestamps; | |
16 } | |
17 | |
18 Drupal.history = { | |
19 fetchTimestamps: function fetchTimestamps(nodeIDs, callback) { | |
20 if (embeddedLastReadTimestamps) { | |
21 callback(); | |
22 return; | |
23 } | |
24 | |
25 $.ajax({ | |
26 url: Drupal.url('history/get_node_read_timestamps'), | |
27 type: 'POST', | |
28 data: { 'node_ids[]': nodeIDs }, | |
29 dataType: 'json', | |
30 success: function success(results) { | |
31 for (var nodeID in results) { | |
32 if (results.hasOwnProperty(nodeID)) { | |
33 storage.setItem('Drupal.history.' + currentUserID + '.' + nodeID, results[nodeID]); | |
34 } | |
35 } | |
36 callback(); | |
37 } | |
38 }); | |
39 }, | |
40 getLastRead: function getLastRead(nodeID) { | |
41 if (embeddedLastReadTimestamps && embeddedLastReadTimestamps[nodeID]) { | |
42 return parseInt(embeddedLastReadTimestamps[nodeID], 10); | |
43 } | |
44 return parseInt(storage.getItem('Drupal.history.' + currentUserID + '.' + nodeID) || 0, 10); | |
45 }, | |
46 markAsRead: function markAsRead(nodeID) { | |
47 $.ajax({ | |
48 url: Drupal.url('history/' + nodeID + '/read'), | |
49 type: 'POST', | |
50 dataType: 'json', | |
51 success: function success(timestamp) { | |
52 if (embeddedLastReadTimestamps && embeddedLastReadTimestamps[nodeID]) { | |
53 return; | |
54 } | |
55 | |
56 storage.setItem('Drupal.history.' + currentUserID + '.' + nodeID, timestamp); | |
57 } | |
58 }); | |
59 }, | |
60 needsServerCheck: function needsServerCheck(nodeID, contentTimestamp) { | |
61 if (contentTimestamp < thirtyDaysAgo) { | |
62 return false; | |
63 } | |
64 | |
65 if (embeddedLastReadTimestamps && embeddedLastReadTimestamps[nodeID]) { | |
66 return contentTimestamp > parseInt(embeddedLastReadTimestamps[nodeID], 10); | |
67 } | |
68 | |
69 var minLastReadTimestamp = parseInt(storage.getItem('Drupal.history.' + currentUserID + '.' + nodeID) || 0, 10); | |
70 return contentTimestamp > minLastReadTimestamp; | |
71 } | |
72 }; | |
73 })(jQuery, Drupal, drupalSettings, window.localStorage); |