/[SQLSession]/trunk/share/web/templates/fragments/queries
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/share/web/templates/fragments/queries

Parent Directory Parent Directory | Revision Log Revision Log


Revision 94 - (show annotations)
Mon Feb 5 22:04:59 2007 UTC (17 years, 1 month ago) by dpavlin
File size: 3491 byte(s)
mark active entries in sort menu, force results_are_readable for my group by
query so that anonymous users will also see it's results
1 <%args>
2 $on_database => undef
3 $created_on => undef;
4 $order
5 </%args>
6 <%init>
7 my $queries = SQLSession::Model::QueryCollection->new();
8
9 my $edit = Jifty->web->current_user->role('edit');
10
11 #use Data::Dump qw/dump/;
12 #warn "current_user = ", dump( Jifty->web->current_user );
13 #warn "edit = $edit";
14
15 $queries->unlimit;
16 $queries->limit( column => 'on_database', value => $on_database ) if ( $on_database );
17 $queries->limit( column => 'created_on', operator => 'STARTSWITH', value => $created_on ) if ( $created_on );
18 $queries->order_by( column => $order, order => 'asc' );
19
20 #warn $queries->build_select_query,$/;
21
22 my $sort_label = {
23 name => 'Query name',
24 created_on => 'Creation date',
25 owner => 'Creator',
26 };
27
28 my $sort_menu = Jifty::Web::Menu->new( label => 'Sort by: ' . $sort_label->{$order} );
29 foreach my $c ( qw/name created_on owner/ ) {
30 #next if ($c eq $order);
31 $sort_menu->child( $c,
32 active => $c eq $order,
33 link => Jifty->web->link(
34 label => $sort_label->{$c},
35 onclick => {
36 replace_with => '/fragments/queries',
37 args => {
38 on_database => $on_database || '',
39 created_on => $created_on || '',
40 order => $c,
41 },
42 },
43 ),
44 );
45 }
46
47 my $date_menu = Jifty::Web::Menu->new( label => 'Date filter' . ( $created_on ? ": $created_on" : '' ) );
48 $date_menu->child( 'clear',
49 link => Jifty->web->link(
50 label => 'clear',
51 onclick => {
52 replace_with => '/fragments/queries',
53 args => {
54 on_database => $on_database || '',
55 created_on => '',
56 order => $order,
57 },
58 },
59 ),
60 ) if ($created_on);
61
62 # select created_on,count(date(created_on)) from queries group by date(created_on) order by created_on;
63 my $date_coll = SQLSession::Model::QueryCollection->new( results_are_readable => 1 );
64 my $created_on_date = $date_coll->column( function => 'date(created_on)', column => 'date' );
65 my $count = $date_coll->column( function => 'count(date(created_on))', column => 'count' );
66 $date_coll->group_by( function => $created_on_date );
67 $date_coll->order_by( column => 'date', order => 'DESC' );
68 $date_coll->unlimit;
69
70 #warn "## ", $date_coll->build_select_query;
71
72 my $dates = 0;
73
74 while (my $q = $date_coll->next) {
75 my $date = $q->{values}->{date} || die "no date?";
76 my $count = $q->{values}->{count} || die "no count?";
77 $date_menu->child( $date,
78 active => $created_on && $created_on eq $date ? 1 : 0,
79 link => Jifty->web->link(
80 label => "$date ($count)",
81 onclick => {
82 replace_with => '/fragments/queries',
83 args => {
84 on_database => $on_database || '',
85 created_on => $date,
86 order => $order,
87 },
88 },
89 ),
90 );
91
92 $dates++; # why is this different from $date_coll->count ?
93 }
94
95 </%init>
96
97 <div class="sort">
98 <% $sort_menu->render_as_context_menu %>
99 % if ( $dates > 0 ) {
100 <% $date_menu->render_as_context_menu %>
101 % }
102 </div>
103
104 <dl style="clear: left;">
105 % $queries->goto_first_item;
106 % while (my $q = $queries->next) {
107 <dt><% Jifty->web->tangent(
108 url => '/sql/' . $q->id,
109 label => $q->name,
110 ) %>
111
112 <span class="database-name">
113 <% $q->on_database->name %>
114 |
115 <% defined($q->owner->name) ? $q->owner->name : '?' %>
116 |
117 <% $q->created_on->ymd . ' ' . $q->created_on->hms %>
118
119 <span class="database-schema">
120 <%perl>
121 my $name = $q->on_database->dsn;
122 $name =~ s/^.*dbname=//;
123 $m->out("<a href=\"/static/spy/$name/index.html\" target=\"_spy\">$name shema</a>");
124 </%perl>
125 </span>
126
127 </span>
128
129 </dt>
130 <dd>
131 % if ($q->note) {
132 <div class="sql-note"><% $q->note %></div>
133 % }
134 <pre class="sql"><% $q->sql_query %></pre>
135 </dd>
136 % }
137 </dl>

  ViewVC Help
Powered by ViewVC 1.1.26