Latest Posts

Topic: Forum navigation back arrow

kaputtnik
Avatar
Joined: 2013-02-18, 20:48
Posts: 2433
OS: Archlinux
Version: current master
Ranking
One Elder of Players
Location: Germany
Posted at: 2015-05-28, 20:20

I am looking into this... currently i try to implement it for logged in users only (it's easier than the cookie thing).

But i have a question:

wl-zocker wrote:

  • The section "New posts since your last login" (which replaces the "Latest posts") contains a link to the first unread post in every thread. It would be nice if the number was not restricted to five, but would adapt to the actual number of threads with new posts (so one link per thread, not per post).

If the latest Posts gets replaced with "Latest unread Posts" (or "New Posts since last login"), the list will become empty, if no unread posts are there. So there is no possibility to jump quick to a topic(post) which the user might be interested in. F.e. sometimes i read only some actual topics and maybe post in it after some other posts are made. If the "Latest unread posts" is empty, i have to use the forum overview to find the topic i am interested in.

Possibilitys to solve this:

  1. If no unread posts are there, switch to the old (current) behavior
  2. Make it optional to show "Latest unread posts". This could be done with a radio button "Show unread posts". If marked, the "Latest unread posts" are shown, if unmark, current view is shown. (unmark is standard)

Another thing that could happen: Most users are only interested in a few topics. So they could have a lot of unread posts which they aren't interested in. To such users the "Latest unread posts" is more or less useless because it shows many "unread" topics(posts). For those users the solution 2 from above would be the best i think.

  • We could limit the number to ten (I suggest something greater than five) to prevent very long lists. If there are still more (e.g. because I was on vacation), there should be a link at the bottom "Show the whole list" (or whatever) which links to a wiki-like page. This number (ten) could also be the default value for users that are not logged in and have no cookies.

I implement a button to extend the list from 5 to 20. So the list gets only larger instead of linking to another page. We will see if this is a good way to go or if a extra page is better.

Any other suggestions?


Fight simulator for Widelands:
https://wide-fighter.netlify.app/

Top Quote
fuchur

Topic Opener
Joined: 2009-10-07, 14:01
Posts: 186
Ranking
Widelands-Forum-Junkie
Location: Germany
Posted at: 2015-05-28, 21:57

kaputtnik wrote:

If the latest Posts gets replaced with "Latest unread Posts" (or "New Posts since last login"), the list will become empty, if no unread posts are there. So there is no possibility to jump quick to a topic(post) which the user might be interested in. F.e. sometimes i read only some actual topics and maybe post in it after some other posts are made. If the "Latest unread posts" is empty, i have to use the forum overview to find the topic i am interested in.

Good point, I didn't think of that.

Possibilitys to solve this:

  1. If no unread posts are there, switch to the old (current) behavior
  2. Make it optional to show "Latest unread posts". This could be done with a radio button "Show unread posts". If marked, the "Latest unread posts" are shown, if unmark, current view is shown. (unmark is standard)

I think both solutions are ok, but as you say the second one is better for people only interested in some topics. So I'd say try that if it's not too difficult to implement.

And thanks for your effort face-smile.png


Top Quote
wl-zocker

Joined: 2011-12-30, 17:37
Posts: 495
Ranking
Tribe Member
Location: Germany
Posted at: 2015-05-28, 22:07

I prefer you second proposal. The first one has the problem that there might be one unread post, but that is not the one I am interested in.

I usually click on all links (they are marked as visited then, so that I have a quick overview what is new) and close the topics that do not interest me once the page has loaded. I can live with this behaviour. You could also add a "Mark as read" button next to each topic, but I fear that will be too many buttons then.

I agree that a longer list is more desirable than a link to another page. I think I wrote that because a) I do not know whether is breaks the layout when the list gets very long (what happens when it is longer than 20 with your limitation?) and b) I did not know how difficult it is to implement such a functionality. But if you got it working, that's great.


"Only few people know how much one has to know in order to know how little one knows." - Werner Heisenberg

Top Quote
Venatrix
Avatar
Joined: 2010-10-05, 20:31
Posts: 449
Ranking
Tribe Member
Location: Germany
Posted at: 2015-05-29, 08:22

wl-zocker wrote:

what happens when it is longer than 20 with your limitation?

Well, at least I would expect this behaviour: After I clicked on a link, reading that topic, that topic is marked as read and therefore doesn’t show up in the list anymore. I think, that’s clear this far. If I have had more unread topics than could be shown in the list, the next (older, I guess) unread topic appears below the others, filling the list to max again. That’s why I would not go to 20 but to 10 topics shown in the list.

And of course a "mark as read" button really would be nice, at least in the forum overview. face-wink.png


Two is the oddest prime.

Top Quote
kaputtnik
Avatar
Joined: 2013-02-18, 20:48
Posts: 2433
OS: Archlinux
Version: current master
Ranking
One Elder of Players
Location: Germany
Posted at: 2015-05-29, 08:42

So, two for second face-smile.png

I would implement some things with javascript. Is this a problem?

Instead of a radio button i choosed for now a a dropdownbox where to choose "Latest Posts" or "Latest unread Posts". The choosen option is shown as the header. The arrow is quite ugly... Here is a screenshot of the additional elements in current state:

latest_posts

wl-zocker wrote:

I agree that a longer list is more desirable than a link to another page. I think I wrote that because a) I do not know whether is breaks the layout when the list gets very long (what happens when it is longer than 20 with your limitation?) and b) I did not know how difficult it is to implement such a functionality. But if you got it working, that's great.

A longer list is just longer. If you didn't scroll down (f.e. to read the last post on a topics page) or the page is automatically scrolled (f.e. if you click on a link to a post which is at the bottom of the page) you have to scroll down manually to see all entrys in the list.

@venatrix: You explained my additional thoughts face-smile.png

There is still a lot of work. So don't expect that it is finished in a short time...


Fight simulator for Widelands:
https://wide-fighter.netlify.app/

Top Quote
DragonAtma
Avatar
Joined: 2014-09-14, 01:54
Posts: 351
Ranking
Tribe Member
Posted at: 2015-05-29, 16:38

Hmm... what about changing it to something like this:
Latest Posts (3 unread)

Then the poster would know right away if there are more unread posts than the five (or however many) shown on the right.


Top Quote
kaputtnik
Avatar
Joined: 2013-02-18, 20:48
Posts: 2433
OS: Archlinux
Version: current master
Ranking
One Elder of Players
Location: Germany
Posted at: 2015-06-05, 21:06

wl-zocker wrote:

What if the "latest post" did not bring you to the latest post, but to the first unread post in a thread? [...]. The information which user has read which posts is already stored somewhere and used when you click on forum in the navigation bar.

I thought this too and spend time to a UI instead of investigating this. Currently there is no information stored which user read which post. What is stored is if a user has read a topic, not a post (how could this information be gathered?)

DragonAtma wrote:

Hmm... what about changing it to something like this: Latest Posts (3 unread)

As described above it is currently not possible to get the latest unread posts. To do so we have to store somewhere a timestamp which could be used to calculate the latest unread posts. This timestamp has to be set, if a user loggs out (before he loggs out he could possibly have read all posts; all posts after logout are unread).

  • Cookies:
    • What timestamp should the cookie have? The only valid timestamp would be, if a user left wl.widelands.org. I currently don't know if this is possible.
    • cookies could be deleted. ( i let automatically delete all cookies if i close my browser)
    • What happend if such a cookie is deleted? (no timestamp would mean all posts are unread). If there is a button to "mark all as seen" and you click it then, all the benefit is gone
    • cookies have a bad reputation

So in my opinion, cookies are bad for storing a timestamp.

The other way would be to store such a timestamp for logged in users only in the database. But there are currently much importand things related to the website than changing a model. And this would be a great change and i am not sure if the benefit would justify the work. There are also some other possibilitys to find a unread post (f.e. notifications, rss-feeds, visited links). So, for now, this suggestion is, from my point of view, for now, rejected. Sorry face-sad.png

GunChleoc wrote:

I have spent time on lots of different forums and none of them go to the bottom of the page when hitting the back arrow.

Because other forums do not have such a feature, it is a bad thing? It's just uncommon. If you want to follow a thread backwards, f.e.to find the latest unread post, or just want to read what the former poster has written, it is very bad to

  1. click to previous page
  2. scroll down (or use end-key)

I couldn't see any benefit if hitting the back arrow, the top of previous page is shown. Do you?

In my opinion this is a nice idea. I havn't looked into the code for that, but maybe we could add an additional sign for this feature in the pagination?


Fight simulator for Widelands:
https://wide-fighter.netlify.app/

Top Quote
tuggyne

Joined: 2011-07-22, 00:27
Posts: 42
Ranking
Pry about Widelands
Location: TN
Posted at: 2015-06-05, 21:40

kaputtnik wrote:

  • Cookies:
    • What timestamp should the cookie have? The only valid timestamp would be, if a user left wl.widelands.org. I currently don't know if this is possible.
    • cookies could be deleted. ( i let automatically delete all cookies if i close my browser)
    • What happend if such a cookie is deleted? (no timestamp would mean all posts are unread). If there is a button to "mark all as seen" and you click it then, all the benefit is gone
    • cookies have a bad reputation

So in my opinion, cookies are bad for storing a timestamp.

While cookies are certainly not perfect, I think you are substantially overstating their downsides. Many forums do use them for this purpose with little problem in practice. Deleting cookies on exit is fairly rare, and one has to expect this sort of feature degradation; 95%+ of users will not delete cookies except on very rare occasions. And deletion is not such a terrible thing, since it simply returns a user with a missing cookie to the state we're all in now. Finally, nearly all websites use cookies and relatively few users complain about them. (Data point: I run NoScript, Request Policy, and AdBlock Plus. I don't bother deleting cookies most of the time.)

The timestamp to use seems simple enough: the time they last loaded a topic page, which shows the latest possible post they could have seen. This can of course be generated trivially upon serving the page.

Edited: 2015-06-05, 21:40

Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 15:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2015-06-06, 09:52

The problem with cookies is that I use two different computers to access Widelands.

How does the forum handle showing unread forums/topics at the moment? As a first step, maybe you could write a time stamp every time a user clicks on something in the forum and store that in the database. A timestamp might already be there with the session info.

There is a mod for phpBB to mark posts unread, maybe you can get some coding ideas from there.


Busy indexing nil values

Top Quote
einstein13
Avatar
Joined: 2013-07-29, 00:01
Posts: 1118
Ranking
One Elder of Players
Location: Poland
Posted at: 2015-06-06, 14:37

GunChleoc wrote:

The problem with cookies is that I use two different computers to access Widelands.

I use 2 computers + two virtual machines (depends on what I currently do :P)

How does the forum handle showing unread forums/topics at the moment?

I have tried to track it down in this widelands-site part, but I've failed to understand that.

http://bazaar.launchpad.net/~widelands-dev/widelands-website/trunk/view/head:/pybb/unread.py

(where is it used?)

As a first step, maybe you could write a time stamp every time a user clicks on something in the forum and store that in the database. A timestamp might already be there with the session info.

timestamp is for sure most important: newer posts than "last_visit" timestamp are for sure unread.

But I think that current model of Forum & User is enough to list all unread posts. One clever query to database face-smile.png


einstein13
calculations & maps packages: http://wuatek.no-ip.org/~rak/widelands/
backup website files: http://kartezjusz.ddns.net/upload/widelands/

Top Quote