/[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 96 - (hide annotations)
Mon Feb 5 22:13:07 2007 UTC (17 years, 1 month ago) by dpavlin
File size: 3580 byte(s)
respect currently selected database when displaying date filter
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 dpavlin 96 $date_coll->limit( column => 'on_database', value => $on_database ) if ( $on_database );
70 dpavlin 90
71 dpavlin 93 #warn "## ", $date_coll->build_select_query;
72 dpavlin 90
73 dpavlin 93 my $dates = 0;
74    
75 dpavlin 90 while (my $q = $date_coll->next) {
76     my $date = $q->{values}->{date} || die "no date?";
77     my $count = $q->{values}->{count} || die "no count?";
78     $date_menu->child( $date,
79     active => $created_on && $created_on eq $date ? 1 : 0,
80     link => Jifty->web->link(
81     label => "$date ($count)",
82     onclick => {
83     replace_with => '/fragments/queries',
84     args => {
85     on_database => $on_database || '',
86     created_on => $date,
87     order => $order,
88     },
89     },
90     ),
91     );
92 dpavlin 93
93     $dates++; # why is this different from $date_coll->count ?
94 dpavlin 90 }
95    
96     </%init>
97    
98     <div class="sort">
99     <% $sort_menu->render_as_context_menu %>
100 dpavlin 93 % if ( $dates > 0 ) {
101 dpavlin 90 <% $date_menu->render_as_context_menu %>
102 dpavlin 93 % }
103 dpavlin 90 </div>
104    
105     <dl style="clear: left;">
106     % $queries->goto_first_item;
107 dpavlin 77 % while (my $q = $queries->next) {
108     <dt><% Jifty->web->tangent(
109     url => '/sql/' . $q->id,
110     label => $q->name,
111     ) %>
112    
113     <span class="database-name">
114     <% $q->on_database->name %>
115     |
116     <% defined($q->owner->name) ? $q->owner->name : '?' %>
117     |
118     <% $q->created_on->ymd . ' ' . $q->created_on->hms %>
119    
120     <span class="database-schema">
121     <%perl>
122     my $name = $q->on_database->dsn;
123     $name =~ s/^.*dbname=//;
124     $m->out("<a href=\"/static/spy/$name/index.html\" target=\"_spy\">$name shema</a>");
125     </%perl>
126     </span>
127    
128     </span>
129    
130     </dt>
131     <dd>
132     % if ($q->note) {
133     <div class="sql-note"><% $q->note %></div>
134     % }
135     <pre class="sql"><% $q->sql_query %></pre>
136     </dd>
137     % }
138     </dl>

  ViewVC Help
Powered by ViewVC 1.1.26