afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
afuna ([personal profile] afuna) wrote in [site community profile] changelog2009-05-09 07:56 pm

[dw-free] Improve page summary module

[commit: http://hg.dwscoalition.org/dw-free/rev/f072d6e75dc3]

http://bugs.dwscoalition.org/show_bug.cgi?id=896

Make readpage page summary show the poster names; show number of comments,
as either a tooltip or after the subject; refactoring

Patch by [community profile] livredor.

Files modified:
  • bin/upgrading/s2layers/core2.s2
--------------------------------------------------------------------------------
diff -r 0c637cf85259 -r f072d6e75dc3 bin/upgrading/s2layers/core2.s2
--- a/bin/upgrading/s2layers/core2.s2	Sat May 09 18:46:35 2009 +0000
+++ b/bin/upgrading/s2layers/core2.s2	Sat May 09 19:55:49 2009 +0000
@@ -1278,10 +1278,19 @@ property string[] module_pagesummary_gro
     des = "Page Summary";
     grouptype = "module";
 }
-set module_pagesummary_group = ["module_pagesummary_show", "module_pagesummary_order", "module_pagesummary_section"];
+set module_pagesummary_group = ["module_pagesummary_show", "module_pagesummary_order", "module_pagesummary_section", "module_pagesummary_opts_group"];
 property bool module_pagesummary_show   { grouped = 1; }
 property int  module_pagesummary_order  { grouped = 1; }
 property string module_pagesummary_section { grouped = 1; }
+property string[] module_pagesummary_opts_group { grouptype="moduleopts"; grouped = 1; }
+set module_pagesummary_opts_group = ["module_pagesummary_opts_comments_tooltip"];
+property bool module_pagesummary_opts_comments_tooltip {
+    grouped = 1; 
+    des = "Display comment counts in page summary as tooltip (otherwise the number will appear next to the entry title)";
+    label = "Comment count as tooltip";
+}
+
+set module_pagesummary_opts_comments_tooltip = true;
 
 set module_pagesummary_show = true;
 set module_pagesummary_order = 7;
@@ -3036,51 +3045,75 @@ function print_module_pagesummary() {
             $links[size $links] = """$poster - <a href="#$c.anchor">$subject</a>""";
         }
     }
+
+    elseif ($p isa FriendsPage) {
+        var FriendsPage cp = $p as FriendsPage;
+        var string subject;
+        var string poster;
+        foreach var Entry e ( $cp.entries ) {
+            $poster = $e.poster->ljuser();
+            $subject = ($e.subject != "" ? striphtml($e.subject) : "<em>$*text_nosubject</em>");
+            var string comment_display;
+            if ($*module_pagesummary_opts_comments_tooltip) {
+                $comment_display = "title='$e.comments.count comments'>$subject";
+               }
+            else {
+               $comment_display = ">$subject</a> +$e.comments.count comments";
+               }
+            
+            if (not $e.poster->equals($e.journal)) {
+                $links[size $links] = """$poster in $e.journal - <a href="#entry-$e.itemid" $comment_display</a>""";
+            }
+            else {
+                $links[size $links] = """$poster - <a href="#entry-$e.itemid" $comment_display</a>""";
+            }
+        }
+    }
     elseif ($p isa RecentPage) {
         var RecentPage cp = $p as RecentPage;
         var string subject;
         var string poster;
         foreach var Entry e ( $cp.entries ) {
+            $subject = ($e.subject != "" ? striphtml($e.subject) : "<em>$*text_nosubject</em>");
+            var string comment_display;
+            if ($*module_pagesummary_opts_comments_tooltip) {
+                $comment_display = "title='$e.comments.count comments'>$subject";
+               }
+            else {
+               $comment_display = ">$subject</a> +$e.comments.count comments";
+               }
+            
             if (not $e.poster->equals($e.journal)) {
                 $poster = $e.poster->ljuser();
-                $subject = ($e.subject != "" ? striphtml($e.subject) : "<em>$*text_nosubject</em>");
-                $links[size $links] = """$poster - <a href="#entry-$e.itemid">$subject</a>""";
-            }
-            else {
-                $subject = ($e.subject != "" ? striphtml($e.subject) : "<em>$*text_nosubject</em>");
-                $links[size $links] = """<a href="#entry-$e.itemid">$subject</a>""";
-            }
-        }
-    }
-    elseif ($p isa FriendsPage) {
-        var FriendsPage cp = $p as FriendsPage;
-        var string subject;
-        var string poster;
-        foreach var Entry e ( $cp.entries ) {
-            if (not $e.poster->equals($e.journal)) {
-                $poster = $e.poster->ljuser();
-                $subject = ($e.subject != "" ? striphtml($e.subject) : "<em>$*text_nosubject</em>");
-                $links[size $links] = """$poster - <a href="#entry-$e.itemid">$subject</a>""";
-            }
-            else {
-                $subject = ($e.subject != "" ? striphtml($e.subject) : "<em>$*text_nosubject</em>");
-                $links[size $links] = """<a href="#entry-$e.itemid">$subject</a>""";
-            }
-        }
-    }
+                $links[size $links] = """$poster - <a href="#entry-$e.itemid" $comment_display</a>""";
+            }
+            else {
+                $links[size $links] = """<a href="#entry-$e.itemid" $comment_display</a>""";
+            }
+        }
+    }
+    
     elseif ($p isa DayPage) {
         var DayPage cp = $p as DayPage;
         var string subject;
         var string poster;
         foreach var Entry e ( $cp.entries ) {
+            $subject = ($e.subject != "" ? striphtml($e.subject) : "<em>$*text_nosubject</em>");
+            
+            var string comment_display;
+            if ($*module_pagesummary_opts_comments_tooltip) {
+                $comment_display = "title='$e.comments.count comments'>$subject";
+               }
+            else {
+               $comment_display = ">$subject</a> +$e.comments.count comments";
+               }
+
             if (not $e.poster->equals($e.journal)) {
                 $poster = $e.poster->ljuser();
-                $subject = ($e.subject != "" ? striphtml($e.subject) : "<em>$*text_nosubject</em>");
-                $links[size $links] = """$poster - <a href="#entry-$e.itemid">$subject</a>""";
-            }
-            else {
-                $subject = ($e.subject != "" ? striphtml($e.subject) : "<em>$*text_nosubject</em>");
-                $links[size $links] = """<a href="#entry-$e.itemid">$subject</a>""";
+                $links[size $links] = """$poster - <a href="#entry-$e.itemid" title="$e.comments.count comments">$subject</a>""";
+            }
+            else {
+                $links[size $links] = """<a href="#entry-$e.itemid" title="$e.comments.count comments">$subject</a>""";
             }
         }
     }
@@ -3089,6 +3122,7 @@ function print_module_pagesummary() {
     print_module_list($links);
     close_module();
 }
+
 function print_module_tags() {
     var Page p = get_page();
     var string title = "";
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org