--- trunk/lib/Frey/ObjectBrowser.pm 2008/07/11 09:35:32 94
+++ trunk/lib/Frey/ORM/Browser.pm 2009/01/10 23:29:38 991
@@ -1,125 +1,51 @@
-package Frey::ObjectBrowser;
+package Frey::ORM::Browser;
use Moose;
-use MooseX::Method;
-
-extends 'Frey';
-
-my @callbacks;
-
-sub gen_link {
- my ($text, $code) = @_;
- push @callbacks, $code;
- return qq{$text};
-}
-
-sub process_links {
- my $request = shift;
- my $cb = $request->param('cb');
- if (exists $callbacks[$cb]) {
- $callbacks[$cb]->($request);
- delete $callbacks[$cb];
- }
-}
#use Data::Dumper;
#$Data::Dumper::Deparse = 1;
use Data::Dump qw/dump/;
-use Data::Structure::Util qw(unbless);
+use lib 'lib';
+use Frey::ORM::Item;
+use Frey::ORM::Links;
-#method 'html' => positional(
-# isa => 'Continuity::RequestHolder',
-# required => 1,
-#) => sub {
-sub html {
- my ( $self, $req ) = @_;
-
- my $f = { $req->params };
- my $layout = delete( $f->{layout} ) || 'div';
-
- use Strix::User;
- use Strix::View::User;
-
- my $s = Strix::User->rows();
- #warn "# s = ",dump( $s );
-
- my @w;
-
- while ( my $u = $s->next ) {
- my $w = Strix::View::User->new( %{ $u } );
- $w->_fey( $u );
- $w->_layout( $layout );
- warn "# w = ",dump( $w ) if $self->debug;
- push @w, $w;
- }
-
- while ( 1 ) {
-
- warn "# got $#w elements: ",dump( map { $_->id } @w );
- warn "<<< GOT REQUEST ",dump( $f );
-
- # re-apply (changed?) layout to elements
- if ( defined $f->{layout} ) {
- $layout = delete( $f->{layout} );
- warn "# new layout = $layout\n";
- }
-
- my $rows_delimiter = '
';
- $rows_delimiter = '' if $layout eq 'table';
-
- my $form = join($rows_delimiter, map {
- $_->_layout( $layout );
- $_->process($f) || ''
- } @w );
-
- if ( $w[ $#w ]->_fey ) {
- warn "+++ added new item widget\n";
- my $w = Strix::View::User->new( render_as => 'edit' );
- $w->_layout( $layout );
- $form .= $rows_delimiter . $w->process;
- push @w, $w;
- }
-
- $form = qq|| if $layout eq 'table';
-
- my $layout_picker = join(' ',
- qq|layout:|,
- map {
- if ( $layout eq $_ ) {
- qq|
$_|;
- } else {
- qq|
$_|;
- }
- } ( 'div', 'table' ),
- qq|
|,
- );
-
- my $doc = Continuity::Widget::DomNode->create(
- html => [
- head => [
- link => { rel=>"stylesheet", href=>"/static/form.css", type=>"text/css" }
- ],
- body => [
- h1 => [ 'Strix::User' ],
- $layout_picker,
- form => { method=>'post' } => [
- $form,
- ],
- ],
- ]
- )->to_string;
-
- warn ">>> $layout ",length( $doc ),"\n";
-
- $req->print( $doc );
- $req->next;
+extends 'Frey';
+with 'Frey::ORM::Pager';
+with 'Frey::Web';
- $f = { $req->params };
+has 'fey_class' => (
+ is => 'rw',
+ isa => 'Str',
+ default => 'Reblog::Feeds',
+);
+
+sub as_markup {
+ my ( $self ) = @_;
+
+ $self->add_head( 'static/form.css' );
+
+=for FIXME
+ $self->add_item(
+ Frey::ORM::CRUD->new(
+ fey_class => $self->fey_class,
+ render_as => 'edit',
+ )
+ );
+=cut
+
+ my $form = $self->items_in_layout;
+# $form = $self->render_table_wrapper( $form );
+
+ my $html = $self->html_page(
+ body => '' . $self->fey_class . '
'
+# . $last->layout_picker # FIXME ugly
+ . $self->render_pager
+ . qq||
+ );
- process_links( $req );
- }
+ warn ">>> ",length( $html ),"\n";
- warn "NO WAY OUT!";
+ return $html;
};
1;