123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /**
- * DO NOT EDIT THIS FILE.
- * See the following change record for more information,
- * https://www.drupal.org/node/2815083
- * @preserve
- **/
- (function ($, Drupal, drupalSettings, storage) {
- var currentUserID = parseInt(drupalSettings.user.uid, 10);
- var secondsIn30Days = 2592000;
- var thirtyDaysAgo = Math.round(new Date().getTime() / 1000) - secondsIn30Days;
- var embeddedLastReadTimestamps = false;
- if (drupalSettings.history && drupalSettings.history.lastReadTimestamps) {
- embeddedLastReadTimestamps = drupalSettings.history.lastReadTimestamps;
- }
- Drupal.history = {
- fetchTimestamps: function fetchTimestamps(nodeIDs, callback) {
- if (embeddedLastReadTimestamps) {
- callback();
- return;
- }
- $.ajax({
- url: Drupal.url('history/get_node_read_timestamps'),
- type: 'POST',
- data: { 'node_ids[]': nodeIDs },
- dataType: 'json',
- success: function success(results) {
- Object.keys(results || {}).forEach(function (nodeID) {
- storage.setItem('Drupal.history.' + currentUserID + '.' + nodeID, results[nodeID]);
- });
- callback();
- }
- });
- },
- getLastRead: function getLastRead(nodeID) {
- if (embeddedLastReadTimestamps && embeddedLastReadTimestamps[nodeID]) {
- return parseInt(embeddedLastReadTimestamps[nodeID], 10);
- }
- return parseInt(storage.getItem('Drupal.history.' + currentUserID + '.' + nodeID) || 0, 10);
- },
- markAsRead: function markAsRead(nodeID) {
- $.ajax({
- url: Drupal.url('history/' + nodeID + '/read'),
- type: 'POST',
- dataType: 'json',
- success: function success(timestamp) {
- if (embeddedLastReadTimestamps && embeddedLastReadTimestamps[nodeID]) {
- return;
- }
- storage.setItem('Drupal.history.' + currentUserID + '.' + nodeID, timestamp);
- }
- });
- },
- needsServerCheck: function needsServerCheck(nodeID, contentTimestamp) {
- if (contentTimestamp < thirtyDaysAgo) {
- return false;
- }
- if (embeddedLastReadTimestamps && embeddedLastReadTimestamps[nodeID]) {
- return contentTimestamp > parseInt(embeddedLastReadTimestamps[nodeID], 10);
- }
- var minLastReadTimestamp = parseInt(storage.getItem('Drupal.history.' + currentUserID + '.' + nodeID) || 0, 10);
- return contentTimestamp > minLastReadTimestamp;
- }
- };
- })(jQuery, Drupal, drupalSettings, window.localStorage);
|