/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 94 - (hide annotations)
Mon Feb 5 22:04:59 2007 UTC (17 years, 2 months 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 dpavlin 77 <%args>
2 dpavlin 84 $on_database => undef
3 dpavlin 87 $created_on => undef;
4 dpavlin 77 $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 dpavlin 84 $queries->limit( column => 'on_database', value => $on_database ) if ( $on_database );
17 dpavlin 87 $queries->limit( column => 'created_on', operator => 'STARTSWITH', value => $created_on ) if ( $created_on );
18 dpavlin 77 $queries->order_by( column => $order, order => 'asc' );
19    
20 dpavlin 88 #warn $queries->build_select_query,$/;
21 dpavlin 77
22 dpavlin 90 my $sort_label = {
23     name => 'Query name',
24     created_on => 'Creation date',
25     owner => 'Creator',
26     };
27 dpavlin 77
28 dpavlin 90 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 dpavlin 94 active => $c eq $order,
33 dpavlin 90 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 dpavlin 77
47 dpavlin 90 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 dpavlin 87 },
59 dpavlin 90 ),
60     ) if ($created_on);
61 dpavlin 87
62 dpavlin 90 # select created_on,count(date(created_on)) from queries group by date(created_on) order by created_on;
63 dpavlin 94 my $date_coll = SQLSession::Model::QueryCollection->new( results_are_readable => 1 );
64 dpavlin 90 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 dpavlin 93 #warn "## ", $date_coll->build_select_query;
71 dpavlin 90
72 dpavlin 93 my $dates = 0;
73    
74 dpavlin 90 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 dpavlin 93
92     $dates++; # why is this different from $date_coll->count ?
93 dpavlin 90 }
94    
95     </%init>
96    
97     <div class="sort">
98     <% $sort_menu->render_as_context_menu %>
99 dpavlin 93 % if ( $dates > 0 ) {
100 dpavlin 90 <% $date_menu->render_as_context_menu %>
101 dpavlin 93 % }
102 dpavlin 90 </div>
103    
104     <dl style="clear: left;">
105     % $queries->goto_first_item;
106 dpavlin 77 % 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