cvs commit: p5ee/App-Widget/lib/App Widget.pm

[email protected] (Stephen Adkins)
Newsgroups perl.cvs.p5ee
Message-ID <[email protected]>
cvsuser     05/08/09 12:21:27

  Modified:    App-Widget/lib/App Widget.pm
  Log:
  style sheet and javascript support
  
  Revision  Changes    Path
  1.7       +47 -26    p5ee/App-Widget/lib/App/Widget.pm
  
  Index: Widget.pm
  ===================================================================
  RCS file: /cvs/public/p5ee/App-Widget/lib/App/Widget.pm,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Widget.pm	7 Jan 2005 13:52:17 -0000	1.6
  +++ Widget.pm	9 Aug 2005 19:21:27 -0000	1.7
  @@ -13,7 +13,7 @@
   
   =head1 NAME
   
  -App::Widget - An abstract base class for all Widget::* classes
  +App::Widget - a family of web user interface widgets (works with App::Context), enabling development of UI's and UI components as compound, nested sets of other UI components
   
   =head1 SYNOPSIS
   
  @@ -59,7 +59,7 @@
   #    else {
   #        my $name = $self->{name};
   #        my $container = "default";
  -#        if ($name =~ /^(.+)\.[a-zA-Z][a-zA-Z0-9_]*$/) {
  +#        if ($name =~ /^(.+)-[a-zA-Z][a-zA-Z0-9_]*$/) {
   #            $container = $1;
   #        }
   #        my $context = $self->{context};
  @@ -167,13 +167,30 @@
       }
   
       my $context = $self->{context};
  +    my $options = $context->{options};
       my $response = $context->response();
  -    my $context_head = "";
  +    my $context_head = $options->{"app.html.head"} || "";
       my $context_body = "";
  +    if ($response->{include}{css_list}) {
  +        my $items = $response->{include}{css_list};
  +        foreach my $item (@$items) {
  +            if ($item =~ /^</) {
  +                $context_head .= $item;
  +            }
  +            else {
  +                $context_head .= "<link href=\"$item\" type=\"text/css\" rel=\"stylesheet\"></script>\n";
  +            }
  +        }
  +    }
       if ($response->{include}{javascript}) {
  -        my $javascript = $response->{include}{javascript};
  -        foreach my $url (keys %$javascript) {
  -            $context_head .= "<script src=\"$url\"></script>\n";
  +        my $items = $response->{include}{javascript_list};
  +        foreach my $item (@$items) {
  +            if ($item =~ /^</) {
  +                $context_head .= $item;
  +            }
  +            else {
  +                $context_head .= "<script src=\"$item\" type=\"text/javascript\" language=\"JavaScript\"></script>\n";
  +            }
           }
       }
   
  @@ -181,6 +198,7 @@
       #$context_body = $self->{context}->body_html(\%main::conf);
   
       my $session_html = $context->session()->html();
  +    my $event_placeholder = '<input type="hidden" id="app-event-aux" name="app.event" value="">';
   
       my $messages = $context->get_messages() || "";
       if ($messages) {
  @@ -209,6 +227,7 @@
   <body${bodyoptions}>
   $messages<form method="POST">
   $session_html
  +$event_placeholder
   $context_body
   $html
   </form>
  @@ -347,30 +366,32 @@
   
   # HTML-escape data
   sub html_escape {
  -   my ($self, $text) = @_;
  -   return "" if (!defined $text || $text eq "");
  -   $text =~ s{&}{&amp;}gso;
  -   $text =~ s{<}{&lt;}gso;
  -   $text =~ s{>}{&gt;}gso;
  -   $text =~ s{\"}{&quot;}gso;
  -   return $text;
  +    &App::sub_entry if ($App::trace);
  +    my ($self, $text) = @_;
  +    return "" if (!defined $text || $text eq "");
  +    $text =~ s{&}{&amp;}gso;
  +    $text =~ s{<}{&lt;}gso;
  +    $text =~ s{>}{&gt;}gso;
  +    $text =~ s{\"}{&quot;}gso;
  +    &App::sub_exit($text) if ($App::trace);
  +    return $text;
   }
   
   sub html_attribs {
  -   my ($self) = @_;
  -   my $html_attribs = "";
  -   if ($self->{attrib}) {
  -      my $attrib_value = $self->{attrib};
  -      foreach my $attrib (keys %$attrib_value) {
  -         $html_attribs .= " $attrib=\"$attrib_value->{$attrib}\"";
  -      }
  -   }
  -   return($html_attribs);
  +    my ($self) = @_;
  +    my $html_attribs = "";
  +    if ($self->{attrib}) {
  +        my $attrib_value = $self->{attrib};
  +        foreach my $attrib (keys %$attrib_value) {
  +            $html_attribs .= " $attrib=\"$attrib_value->{$attrib}\"";
  +        }
  +    }
  +    return($html_attribs);
   }
   
   sub html {
  -   my ($self) = @_;
  -   return $self->html_escape($self->{name});
  +    my ($self) = @_;
  +    return $self->html_escape($self->{name});
   }
   
   # get the URL of the host
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.