/[Frey]/trunk/lib/Frey/View/Exhibit.pm
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/lib/Frey/View/Exhibit.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 453 - (show annotations)
Wed Nov 19 04:28:27 2008 UTC (15 years, 5 months ago) by dpavlin
File size: 1539 byte(s)
Fake id and label for exhibit data if it doesn't exist

This will probably require some kind of intelicence instead of
brute force which is used now. First working version, yee!
1 package Frey::View::Exhibit;
2 use Moose;
3
4 extends 'Frey';
5 with 'Frey::Web';
6
7 use MooseX::Types::Moose qw(Str Int ArrayRef);
8 use MooseX::Types::Structured qw/Dict/;
9
10 use Data::Dump qw/dump/;
11
12 =head1 DESCRIPTION
13
14 present C<sponge> as Exhibit from L<http://simile.mit.edu/exhibit/>
15
16 =cut
17
18 has sponge => (
19 is => 'rw',
20 isa => Dict[
21 rows => ArrayRef[ArrayRef],
22 NAME => ArrayRef[Str],
23 ],
24 # required => 1,
25 );
26
27 sub data {
28 my ($self) = @_;
29
30 confess "need sponge" unless $self->sponge;
31
32 my $items;
33 my $names = $self->sponge->{NAME};
34
35 my $id = 0;
36 my $have_id = grep { m{^id$} } @$names;
37 my $have_label = grep { m{^label$} } @$names;
38
39 foreach my $row ( @{ $self->sponge->{rows} } ) {
40 my $item;
41 map { $item->{ $names->[$_] } = $row->[$_] } ( 0 .. $#{ $row } );
42 $item->{id} = $id unless $have_id;
43 $item->{label} = $id unless $have_label;
44 $id++;
45 push @{ $items->{items} }, $item;
46 }
47
48 return $items;
49 }
50
51 sub depends {
52 my ($self) = @_;
53 $self->add_head(qq{
54 <link href="/Frey::Pipe/markup?pipe=Frey::DelIcioUs/sponge|Frey::View::Exhibit/data|Frey::JSON/markup"
55 type="application/json" rel="exhibit/data" />
56 });
57 $self->add_head(qq|
58 <script src="http://static.simile.mit.edu/exhibit/api-2.0/exhibit-api.js"
59 type="text/javascript"></script>
60 |);
61 warn "# depends";
62 }
63
64 sub markup {
65 my ($self) = @_;
66
67 return qq|
68 <table width="100%">
69 <tr valign="top">
70 <td ex:role="viewPanel">
71 <div ex:role="view"></div>
72 </td>
73 <td width="25%">
74 browsing controls here...
75 </td>
76 </tr>
77 </table>
78 |;
79 }
80
81 1;

  ViewVC Help
Powered by ViewVC 1.1.26