Mark inbox items as read when you interact with them.

        Patch by kareila. 

diffs (38 lines):

diff -r f5182f9f9a31 -r 14d55325e78b htdocs/js/esn_inbox.js
--- a/htdocs/js/esn_inbox.js    Mon Jul 13 02:41:11 2009 +0000
+++ b/htdocs/js/esn_inbox.js    Mon Jul 13 03:30:02 2009 +0000
@@ -10,6 +10,7 @@ DOM.addEventListener(window, "load", fun
       ESN_Inbox.initTableSelection(folder);
       ESN_Inbox.initContentExpandButtons(folder);
       ESN_Inbox.initInboxBtns(folder, cur_folder);
+      ESN_Inbox.initActionLinks(folder);
   }
 });
 
@@ -165,6 +166,26 @@ ESN_Inbox.initInboxBtns = function (fold
     
     DOM.addEventListener($(folder + "_MarkAllRead"), "click", function(e) { 
ESN_Inbox.markAllRead(e, folder, cur_folder) });
     DOM.addEventListener($(folder + "_DeleteAll"), "click", function(e) { 
ESN_Inbox.deleteAll(e, folder, cur_folder) });
+};
+
+// set up action links
+ESN_Inbox.initActionLinks = function (folder) {
+    var actions = DOM.getElementsByClassName($(folder), "actions") || [];
+    for (var i=0; i < actions.length; i++) {
+        var links = actions[i].getElementsByTagName("a");
+        for (var j=0; j < links.length; j++) {
+            DOM.addEventListener(links[j], "click", function(e) { 
ESN_Inbox.markLinkedItemRead(e, folder) });
+        }
+    }
+};
+
+ESN_Inbox.markLinkedItemRead = function (evt, folder) {
+    Event.stop(evt);
+    var row = DOM.getFirstAncestorByClassName(evt.target, "InboxItem_Row");
+    var qid = row.getAttribute("lj_qid");
+    ESN_Inbox.updateItems('mark_read', evt, folder, qid);
+    window.open(evt.target.href);
+    return false;
 };
 
 ESN_Inbox.markRead = function (evt, folder) {
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to