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

  ViewVC Help
Powered by ViewVC 1.1.26