Mercurial > hg > isophonics-drupal-site
view core/modules/history/js/history.js @ 1:1a348b17ec81
Logo and header background
author | Chris Cannam |
---|---|
date | Thu, 30 Nov 2017 14:56:35 +0000 |
parents | 4c8ae668cc8c |
children | 1fec387a4317 |
line wrap: on
line source
/** * 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 thirtyDaysAgo = Math.round(new Date().getTime() / 1000) - 30 * 24 * 60 * 60; 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) { for (var nodeID in results) { if (results.hasOwnProperty(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);