[Jifty-commit] r4977 - in jifty/trunk: lib/Jifty/Plugin share/web/static/js

Jifty commits jifty-commit at lists.jifty.org
Fri Feb 1 15:56:52 EST 2008


Author: sartak
Date: Fri Feb  1 15:56:51 2008
New Revision: 4977

Modified:
   jifty/trunk/   (props changed)
   jifty/trunk/lib/Jifty/Plugin/Halo.pm
   jifty/trunk/lib/Jifty/Plugin/SQLQueries.pm
   jifty/trunk/share/web/static/js/halo.js

Log:
 r51321 at onn:  sartak | 2008-02-01 15:55:43 -0500
 Add query logging to halos
 Add some "downgrade the info link if there's no information" logic


Modified: jifty/trunk/lib/Jifty/Plugin/Halo.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin/Halo.pm	(original)
+++ jifty/trunk/lib/Jifty/Plugin/Halo.pm	Fri Feb  1 15:56:51 2008
@@ -114,10 +114,22 @@
         my $d = $displays->{$_};
         my $name = Jifty->web->escape($d->{name});
 
-        push @divs, join "\n", grep { $_ }
-            qq{<div id="halo-info-$name-$id" style="display: none">},
-            $d->{callback} && $d->{callback}->($frame),
-            qq{</div>},
+        if ($d->{callback}) {
+            my $output =
+                qq{<div id="halo-info-$name-$id" style="display: none">};
+
+            if (defined(my $info = $d->{callback}->($frame))) {
+                $output .= $info;
+            }
+            else {
+                # downgrade the link to plaintext so it's obvious there's no
+                # information available
+                $output .= qq{<script type="text/javascript">remove_link('$id', '$name');</script>};
+            }
+
+            $output .= "</div>";
+            push @divs, $output;
+        }
     }
 
     my $divs = join "\n", @divs;

Modified: jifty/trunk/lib/Jifty/Plugin/SQLQueries.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin/SQLQueries.pm	(original)
+++ jifty/trunk/lib/Jifty/Plugin/SQLQueries.pm	Fri Feb  1 15:56:51 2008
@@ -146,6 +146,50 @@
     push @halo_queries, Jifty->handle->sql_statement_log;
 
     Jifty->handle->clear_sql_statement_log;
+
+    $args{frame}{displays}{Q} = {
+        name => "queries",
+        callback => sub {
+            my $frame = shift;
+            my @queries;
+
+            for (@{ $frame->{sql_statements} || [] }) {
+                my $bindings;
+
+                if (@{$_->[2]}) {
+                    my @bindings = map {
+                        defined $_
+                            ? $_ =~ /[^[:space:][:graph:]]/
+                                ? "*BLOB*"
+                                : Jifty->web->escape($_)
+                            : "undef"
+                    } @{$_->[2]};
+
+                    $bindings = join '',
+                        "<b>",
+                        _('Bindings'),
+                        ":</b> <tt>",
+                        join(', ', @bindings),
+                        "</tt><br />",
+                }
+
+                push @queries, join "\n",
+                    qq{<span class="fixed">},
+                    Jifty->web->escape($_->[1]),
+                    qq{</span><br />},
+                    $bindings,
+                    "<i>". _('%1 seconds', $_->[3]) ."</i>",
+            }
+
+            return undef if @queries == 0;
+
+            return "<ol>"
+                 . join("\n",
+                        map { "<li>$_</li>" }
+                        @queries)
+                 . "</ol>";
+        },
+    };
 }
 
 =head2 halo_post_template

Modified: jifty/trunk/share/web/static/js/halo.js
==============================================================================
--- jifty/trunk/share/web/static/js/halo.js	(original)
+++ jifty/trunk/share/web/static/js/halo.js	Fri Feb  1 15:56:51 2008
@@ -147,3 +147,10 @@
     }
 }
 
+function remove_link(id, name) {
+    var link = $('halo-button-'+name+'-'+id);
+    var newlink = document.createElement("span");
+    newlink.appendChild(link.childNodes[0]);
+    link.parentNode.replaceChild(newlink, link);
+}
+


More information about the Jifty-commit mailing list