From 86f8d785847ab7bf022a2734b736f8c3698ad714 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Sat, 13 Oct 2012 00:07:03 +0200 Subject: reverted js back to old state --- js/cache.js | 34 ++++++++++++++++++++++ js/items.js | 65 +++++++++++++++--------------------------- js/menu.js | 27 +++++++++--------- js/test.js | 1 + templates/javascript.tests.php | 6 ++++ 5 files changed, 78 insertions(+), 55 deletions(-) create mode 100644 js/cache.js create mode 100644 js/test.js create mode 100644 templates/javascript.tests.php diff --git a/js/cache.js b/js/cache.js new file mode 100644 index 000000000..08353bae8 --- /dev/null +++ b/js/cache.js @@ -0,0 +1,34 @@ +/** +* ownCloud - News app +* +* @author Bernhard Posselt +* Copyright (c) 2012 - Bernhard Posselt +* +* This file is licensed under the Affero General Public License version 3 or later. +* See the COPYING-README file +* +*/ + +/** + * The cache is used to cache items and tell the program which items have been + * loaded + */ + + (function(exports) { + "use strict"; + + var Cache = function(){ + this.reset(); + }; + + + + Cache.prototype.reset = function(){ + this.items = []; + }; + + exports.Cache = Cache; + + }(typeof exports === "undefined" ? (this.moduleName = {}): exports)); + + diff --git a/js/items.js b/js/items.js index 76b6df5d9..8541b0031 100644 --- a/js/items.js +++ b/js/items.js @@ -70,7 +70,7 @@ var News = News || {}; * @param item the dom item */ Items.prototype._markItemAsReadTimeout = function(item) { - var itemId = parseInt($(item).data('id'), 10); + var itemId = parseInt($(item).data('id')); var itemOffset = $(item).position().top; var cachedItem = this._itemCache.getItem(itemId); if(itemOffset < 0){ @@ -96,8 +96,7 @@ var News = News || {}; var data = { id: id, type: type, - mostRecentItemId: this._itemCache.getMostRecentItemId(), - mostRecentItemTimestamp: this._itemCache.getMostRecentItemTimestamp() + mostRecentItemId: this._itemCache.getMostRecentItemId(type, id) }; this._$articleList.addClass('loading'); @@ -134,7 +133,7 @@ var News = News || {}; var notJumped = true; $('.feed_item').each(function(){ if(notJumped && $(this).position().top > 1){ - var id = parseInt($(this).data('id'), 10); + var id = parseInt($(this).data('id')); self._jumpToElemenId(id); notJumped = false; } @@ -151,7 +150,7 @@ var News = News || {}; if(notJumped && $(this).position().top >= 0){ var previous = $(this).prev(); if(previous.length > 0){ - var id = parseInt(previous.data('id'), 10); + var id = parseInt(previous.data('id')); self._jumpToElemenId(id); } notJumped = false; @@ -162,7 +161,7 @@ var News = News || {}; if(notJumped){ var $items = $('.feed_item'); if($items.length > 0){ - var id = parseInt($items.last().data('id'), 10); + var id = parseInt($items.last().data('id')); self._jumpToElemenId(id); } } @@ -221,7 +220,7 @@ var News = News || {}; * @return the jquery node */ Items.prototype._findNodeById = function(id) { - id = parseInt(id, 10); + id = parseInt(id); return this._$articleList.find('.feed_item[data-id="' + id + '"]'); }; @@ -253,15 +252,13 @@ var News = News || {}; var ItemCache = function() { this._items = {}; this._feeds = {}; - this._itemIds = []; - this._itemTimestamps = []; }; /** * Returns an item from the cache */ ItemCache.prototype.getItem = function(itemId) { - itemId = parseInt(itemId, 10); + itemId = parseInt(itemId); return this._items[itemId]; }; @@ -292,8 +289,6 @@ var News = News || {}; self._items[item.getId()] = item; self._feeds[item.getFeedId()] = self._feeds[item.getFeedId()] || {}; self._feeds[item.getFeedId()][item.getId()] = item; - self._itemIds.push(item.getId()); - self._itemTimestamps.push(item.getTimeStamp()); }); }; @@ -303,8 +298,6 @@ var News = News || {}; ItemCache.prototype.empty = function() { this._items = {}; this._feeds = {}; - this._itemIds = []; - this._itemTimestamps = []; }; @@ -350,13 +343,12 @@ var News = News || {}; return pairs; }; - /** - * Returns all the ids of feeds for a type sorted by timestamp ascending - * @param type the type (MenuNodeType) - * @param id the id - * @return all the ids of feeds for a type sorted by timestamp ascending - */ + * Returns all the ids of feeds for a type sorted by timestamp ascending + * @param type the type (MenuNodeType) + * @param id the id + * @return all the ids of feeds for a type sorted by timestamp ascending + */ ItemCache.prototype._getSortedItemIds = function(type, id) { var pairs = this._getItemIdTimestampPairs(type, id); @@ -371,32 +363,21 @@ var News = News || {}; return itemIds; }; - /** - * @return the most recent id that is loaded on the page or 0 if no ids are there - */ - ItemCache.prototype.getMostRecentItemId = function() { - if(this._itemIds.length === 0){ - return 0; - } else { - this.itemIds = this._itemIds.sort(); - return this.itemIds[this.itemIds.length-1]; - } - }; - - /** - * @return the most recent timestamp that is loaded on the page or 0 if no ids are there + * Returns the most recent id of a feed + * @param type the type (MenuNodeType) + * @param id the id + * @return the most recent id that is loaded on the page or 0 */ - ItemCache.prototype.getMostRecentItemTimestamp = function() { - if(this._itemTimestamps.length === 0){ + ItemCache.prototype.getMostRecentItemId = function(type, id) { + var itemIds = this._getSortedItemIds(type, id); + if(itemIds.length === 0){ return 0; } else { - this._itemTimestamps = this._itemTimestamps.sort(); - return this._itemTimestamps[this._itemTimestamps.length-1]; + return itemIds[itemIds.length-1]; } }; - /** * Returns the html for a specific feed * @param type the type (MenuNodeType) @@ -431,14 +412,14 @@ var News = News || {}; var Item = function(html){ this._starred = false; this._$html = $(html); - this._id = parseInt(this._$html.data('id'), 10); - this._feedId = parseInt(this._$html.data('feedid'), 10); + this._id = parseInt(this._$html.data('id')); + this._feedId = parseInt(this._$html.data('feedid')); this._read = this._$html.hasClass('read'); this._locked = false; this._important = this._$html.find('li.star').hasClass('important'); // get timestamp for sorting var $stamp = this._$html.find('.timestamp'); - this._timestamp = parseInt($stamp.html(), 10); + this._timestamp = parseInt($stamp.html()); $stamp.remove(); // open all links in new tabs this._$html.find('.body a').attr('target', '_blank'); diff --git a/js/menu.js b/js/menu.js index bdb8e8442..90c623f6f 100644 --- a/js/menu.js +++ b/js/menu.js @@ -135,7 +135,7 @@ var News = News || {}; * @param html the html to add */ Menu.prototype.addNode = function(parentId, html){ - parentId = parseInt(parentId, 10); + parentId = parseInt(parentId); var $parentNode; var $html = $(html); @@ -172,7 +172,7 @@ var News = News || {}; */ Menu.prototype.updateNode = function(type, id, data){ var $node = this._getNodeFromTypeAndId(type, id); - id = parseInt(id, 10); + id = parseInt(id); if(data.title !== undefined){ // prevent xss @@ -188,10 +188,10 @@ var News = News || {}; /** * Removes a node and its subnodes from the menu * @param type the type (MenuNodeType) - * @param id the id + * @param id the id */ Menu.prototype.removeNode = function(type, id){ - id = parseInt(id, 10); + id = parseInt(id); var $node = this._getNodeFromTypeAndId(type, id); $node.remove(); }; @@ -276,9 +276,9 @@ var News = News || {}; */ Menu.prototype.getFeedIdsOfFolder = function(folderId) { $folder = this._getNodeFromTypeAndId(MenuNodeType.Folder, folderId); - var ids = []; + var ids = new Array(); $folder.children('ul').children('li').each(function(){ - ids.push(parseInt($(this).data('id'), 10)); + ids.push(parseInt($(this).data('id'))); }); return ids; }; @@ -546,6 +546,7 @@ var News = News || {}; Menu.prototype._edit = function(type, id){ var $node = this._getNodeFromTypeAndId(type, id); var name = $node.children('.title').html(); + var id = $node.data('id'); $('#changefolder_dialog').find('input[type=text]').val(name); $('#changefolder_dialog').find('input[type=hidden]').val(id); $('#changefolder_dialog').dialog('open'); @@ -589,7 +590,7 @@ var News = News || {}; $.post(OC.filePath('news', 'ajax', 'setallitemsread.php'), data, function(jsonData) { if(jsonData.status == 'success'){ - self._setUnreadCount(type, id, parseInt(jsonData.data.unreadCount, 10)); + self._setUnreadCount(type, id, parseInt(jsonData.data.unreadCount)); } else { OC.dialogs.alert(jsonData.data.message, t('news', 'Error')); } @@ -691,7 +692,7 @@ var News = News || {}; */ Menu.prototype._getAndRemoveUnreadCount = function($listItem){ var $unreadCounter = $listItem.children('.unread_items_counter'); - var unreadCount = parseInt($unreadCounter.html(), 10); + var unreadCount = parseInt($unreadCounter.html()); $unreadCounter.remove(); return unreadCount; }; @@ -719,7 +720,7 @@ var News = News || {}; */ Menu.prototype._getIdAndTypeFromNode = function($listItem) { return { - id: parseInt($listItem.data('id'), 10), + id: parseInt($listItem.data('id')), type: this._listItemToMenuNodeType($listItem) }; }; @@ -781,7 +782,7 @@ var News = News || {}; * @param unreadCount the count of unread items */ Menu.prototype._setUnreadCount = function(type, id, unreadCount){ - unreadCount = parseInt(unreadCount, 10); + unreadCount = parseInt(unreadCount); if(unreadCount < 0){ unreadCount = 0; } @@ -864,9 +865,9 @@ var News = News || {}; var $dropped = $(this); var $dragged = $(ui.draggable); - var feedId = parseInt($dragged.data('id'), 10); - var folderId = parseInt($dropped.data('id'), 10); - var fromFolderId = parseInt($dragged.parent().data('id'), 10); + var feedId = parseInt($dragged.data('id')); + var folderId = parseInt($dropped.data('id')); + var fromFolderId = parseInt($dragged.parent().data('id')); // ignore when dragged to the same folder if(folderId === fromFolderId){ diff --git a/js/test.js b/js/test.js new file mode 100644 index 000000000..3fe07a7a9 --- /dev/null +++ b/js/test.js @@ -0,0 +1 @@ +alert('hi') \ No newline at end of file diff --git a/templates/javascript.tests.php b/templates/javascript.tests.php new file mode 100644 index 000000000..163e3cb0a --- /dev/null +++ b/templates/javascript.tests.php @@ -0,0 +1,6 @@ + + +
hi
\ No newline at end of file -- cgit v1.2.3