/[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 90 - (hide annotations)
Mon Feb 5 20:48:15 2007 UTC (17 years, 2 months ago) by dpavlin
File size: 3431 byte(s)
converted sorting and date filter into Jifty::Web::Menu
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     #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 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 my $dates;
63    
64     # select created_on,count(date(created_on)) from queries group by date(created_on) order by created_on;
65     my $date_coll = SQLSession::Model::QueryCollection->new();
66     my $created_on_date = $date_coll->column( function => 'date(created_on)', column => 'date' );
67     my $count = $date_coll->column( function => 'count(date(created_on))', column => 'count' );
68     $date_coll->group_by( function => $created_on_date );
69     $date_coll->order_by( column => 'date', order => 'DESC' );
70     $date_coll->unlimit;
71    
72     warn "## ", $date_coll->build_select_query;
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    
93     use Data::Dump qw/dump/;
94     warn "dates = ",dump( $dates );
95    
96     </%init>
97    
98     <div class="sort">
99     <% $sort_menu->render_as_context_menu %>
100     <% $date_menu->render_as_context_menu %>
101     </div>
102    
103     <dl style="clear: left;">
104     % $queries->goto_first_item;
105 dpavlin 77 % while (my $q = $queries->next) {
106     <dt><% Jifty->web->tangent(
107     url => '/sql/' . $q->id,
108     label => $q->name,
109     ) %>
110    
111     <span class="database-name">
112     <% $q->on_database->name %>
113     |
114     <% defined($q->owner->name) ? $q->owner->name : '?' %>
115     |
116     <% $q->created_on->ymd . ' ' . $q->created_on->hms %>
117    
118     <span class="database-schema">
119     <%perl>
120     my $name = $q->on_database->dsn;
121     $name =~ s/^.*dbname=//;
122     $m->out("<a href=\"/static/spy/$name/index.html\" target=\"_spy\">$name shema</a>");
123     </%perl>
124     </span>
125    
126     </span>
127    
128     </dt>
129     <dd>
130     % if ($q->note) {
131     <div class="sql-note"><% $q->note %></div>
132     % }
133     <pre class="sql"><% $q->sql_query %></pre>
134     </dd>
135     % }
136     </dl>

  ViewVC Help
Powered by ViewVC 1.1.26