Date Tags feature

About

Diaspora currently displays notifications in a static drop down menu on the top of the web page. Users don't receive new notification in their currently opened windows. Rather, they need to refresh the page to check for any new notifications.

In order to help eliminating user excise, podricing now has support for modeless notifications. It means that whenever there are new notifications, they are automatically fetched and without the user need to refresh the page.

To illustrate this, see the examples below.

In the above video. By the way Diaspora currently shows notifications, the user needs to refresh the page in order to fetch new ones.

In the video below, for podricing users notifications are automatically fetched and the counter goes up whenever there are new ones without the user need to refresh the page.

With this change we hope to improve user experience on the site.

Limitations

Currently, the script only updates posting related notifications, for example mentions, comments and likes. It does not update new conversations, nor it updates posts with new likes or comments. Currently, it only updates the notifications dropdown menu.

Install

To install, embed this script to your pod's web interface javascript:

wget    http://blog.podricing.pw/src/modelessNotifications.js \
     -O app/assets/javascripts/modelessNotifications.js;
echo "//= require modelessNotifications" >> app/asset/javascripts/main.js

Usage

For podmins, you can configure the frequency of which the script checks for new notifications with the intervalBase variable in the script. The frequency decreases exponentially at each new check. In other words, every time the script checks for new notifications the script will take longer to check for new notifications again.

notifications check frequency

Illustrating this, in the graph above the x coordinate represents each check and the y coordinate the delay it takes for running the checking.

Observe that check 4 has a shorter delay than check 3. That because in this example during check 3 it counted additional new notifications. Considering that there is some new activity in the user's profile, the script will reset the delay in order show any new activity sooner.

The delay is eventually cappped to 30s by the variable intervalLimit.

Source code

You can download the source code here.