summaryrefslogtreecommitdiffstats
path: root/js/news.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/news.js')
-rw-r--r--js/news.js54
1 files changed, 43 insertions, 11 deletions
diff --git a/js/news.js b/js/news.js
index dbe9a53a1..2647427a8 100644
--- a/js/news.js
+++ b/js/news.js
@@ -66,7 +66,7 @@ News={
if(folderid > 0){
$('.collapsable_container[data-id="' + folderid + '"] > ul').append(jsondata.data.listfolder);
} else {
- $('#feeds').append(jsondata.data.listfolder);
+ $('#feeds > ul').append(jsondata.data.listfolder);
}
setupFeedList();
transformCollapsableTrigger();
@@ -132,7 +132,7 @@ News={
if(folderid > 0){
$('.collapsable_container[data-id="' + folderid + '"] > ul').append(jsondata.data.listfeed);
} else {
- $('#feeds').append(jsondata.data.listfeed);
+ $('#feeds > ul').append(jsondata.data.listfeed);
}
setupFeedList();
News.Feed.load(jsondata.data.feedid);
@@ -251,8 +251,10 @@ News={
var $feedItems = $('#feed_items');
$feedItems.empty();
$feedItems.html(jsonData.data.feedItems);
+ $feedItems.scrollTop(0);
var $feedTitle = $(".feed_controls .feed_title h1");
$feedTitle.html(jsonData.data.feedTitle);
+ $feedTitle.attr('title', jsonData.data.feedTitle);
$('li#selected_feed').attr('id', '');
$('li.feed[data-id="' + feedId + '"]').attr('id', 'selected_feed');
@@ -368,6 +370,8 @@ News={
* hide the icon and show the unread count
*/
var _setUpdating = function(isUpdating){
+ // we dont use this anymore
+ return;
if(isUpdating){
_$feed.addClass('updating');
_$feedUnreadCounter.hide();
@@ -599,6 +603,14 @@ function bindItemEventListeners(){
handler.setRead(true);
});
+ // single hover on item should mark it as read too
+ $('#feed_items .body').click(function(){
+ var $item = $(this).parent('.feed_item');
+ var itemId = $item.data('id');
+ var handler = new News.ItemStatusHandler(itemId);
+ handler.setRead(true);
+ });
+
// mark or unmark as important
$('#feed_items li.star').click(function(){
var $item = $(this).parent().parent().parent('.feed_item');
@@ -640,7 +652,8 @@ $(document).ready(function(){
});
$('#addfeedfolder').click(function(event) {
- event.stopPropagation();
+ News.DropDownMenu.fade($(this).children('ul'));
+ event.stopPropagation();
});
$('#settingsbtn').on('click keydown', function() {
@@ -670,24 +683,43 @@ $(document).ready(function(){
var boxHeight = $(this).height();
var scrollHeight = $(this).prop('scrollHeight');
var scrolled = $(this).scrollTop() + boxHeight;
-
+ var scrollArea = this;
$(this).children('ul').children('.feed_item:not(.read)').each(function(){
+ var item = this;
var itemOffset = $(this).position().top;
if(itemOffset <= 0 || scrolled >= scrollHeight){
- var itemId = parseInt($(this).data('id'));
- if(News.Feed.processing[itemId] === undefined || News.Feed.processing[itemId] === false){
- // mark item as processing to prevent unecessary post requests
- News.Feed.processing[itemId] = true;
- var handler = new News.ItemStatusHandler(itemId);
- handler.setRead(true);
- }
+ // wait and check if the item is still under the top edge
+ setTimeout(function(){ markItemAsRead(scrollArea, item);}, 1000);
}
})
});
+
+ $('#feed_items').scrollTop(0);
});
+/**
+ * Marks an item as read which is called by the timeout
+ * @param item the dom item
+ */
+function markItemAsRead(scrollArea, item){
+ var itemId = parseInt($(item).data('id'));
+ var itemOffset = $(item).position().top;
+ var boxHeight = $(scrollArea).height();
+ var scrollHeight = $(scrollArea).prop('scrollHeight');
+ var scrolled = $(scrollArea).scrollTop() + boxHeight;
+ if(itemOffset < 0 || scrolled >= scrollHeight){
+ console.log(itemOffset);
+ if(News.Feed.processing[itemId] === undefined || News.Feed.processing[itemId] === false){
+ // mark item as processing to prevent unecessary post requests
+ News.Feed.processing[itemId] = true;
+ var handler = new News.ItemStatusHandler(itemId);
+ handler.setRead(true);
+ }
+ }
+}
+
$(document).click(function(event) {
$('#feedfoldermenu').hide();
});