App-Widget

 view release on metacpan or  search on metacpan

lib/App/Widget.pm  view on Meta::CPAN

    my ($self, $event, @args) = @_;
    my ($name, $args);
    $name = $self->{name};
    $args = "";
    $args = "(" . join(",",@args) . ")" if ($#args > -1);
    my $result = "<input type=hidden name='app.event' value='${name}.${event}${args}'/>";
    &App::sub_exit($result) if ($App::trace);
    return($result);
}

# unescape URL-encoded data
sub url_unescape {
   my $self = shift;
   my($todecode) = @_;
   $todecode =~ tr/+/ /;       # pluses become spaces
   $todecode =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge;
   return $todecode;
}

# URL-encode data
sub url_escape {
   my $self = shift;
   my ($toencode,$charset) = @_;
   if ($charset) {
      $toencode=~s/($charset)/uc sprintf("%%%02x",ord($1))/eg;
   }
   else {
      $toencode=~s/([^a-zA-Z0-9_\-. ])/uc sprintf("%%%02x",ord($1))/eg;
      $toencode =~ tr/ /+/;       # spaces become pluses
   }
   return $toencode;
}

# HTML-escape data
sub html_escape {
    &App::sub_entry if ($App::trace);
    my ($self, $text) = @_;
    if (!defined $text) {
        $text = "";
    }
    elsif ($text) {
        $text =~ s{&}{&amp;}gso;
        $text =~ s{<}{&lt;}gso;
        $text =~ s{>}{&gt;}gso;
        $text =~ s{\"}{&quot;}gso;

lib/App/Widget.pm  view on Meta::CPAN

    $value = $theme_values->{"$class.$var"} if (!defined $value);
    $value = $theme_values->{$var} if (!defined $value);
    $value = $default if (!defined $value && defined $default);

    &App::sub_exit($value) if ($App::trace);
    return($value);
}

sub html {
    my ($self) = @_;
    return $self->html_escape($self->{name});
}

# get the URL of the host
sub host_url {
   my ($url, $protocol, $server, $port, $port_str);

   $protocol = "http";                            # assume it's vanilla HTTP
   $protocol = "https" if (defined $ENV{HTTPS});  # this is how Apache does it

   $server = $ENV{SERVER_NAME};

lib/App/Widget/Button.pm  view on Meta::CPAN

#    my $self = shift;
#}

######################################################################
# OUTPUT METHODS
######################################################################

sub html {
    my $self = shift;
    my $name = $self->{name};
    my $label = $self->html_escape($self->{label});
    my $html_attribs = $self->html_attribs();
    return "<input type=\"submit\" name=\"app.event.${name}.click\" value=\"$label\"$html_attribs/>";
}

1;

lib/App/Widget/DataTable.pm  view on Meta::CPAN

    }

    my ($format, $scale_factor);
    for ($row = 0; $row <= $#$data; $row++) {
        $numrow = $startrow + $row;

        $html .= "<tr>\n";

        $key = "";
        if (defined $keys && defined $keys->[$row]) {
            $key = join(",", @{$keys->[$row]});   # need to HTML-escape these!
        }

        $html .= "  <td bgcolor=\"$heading_bgcolor\" align=\"right\">$elem_begin$numrow$elem_end</td>\n" if ($numbered);

        if ($row_selectable) {
            $html .= "  <td bgcolor=\"#ffaaaa\" valign=\"middle\" align=\"center\">\n";
            $html .= $context->widget("$name\{row_selected}{$key}",
                         class => "App::Widget::Checkbox",
                     )->html();
            $html .= "  </td>\n";

lib/App/Widget/DataTable.pm  view on Meta::CPAN

                             maxlength => 99,
                             background_color => "#ffaaaa",
                             border_style => "solid",
                             border_width => "1px",
                             padding => 0,
                             @edit_style,
                         )->html();
                $html .= "$elem_end</td>\n";
            }
            else {
                $elem = $self->html_escape($elem);
                if (!defined $elem || $elem eq "") {
                    $elem = "&nbsp;";
                }
                else {
                    $elem = $elem * $scale_factor if ($scale_factor);
                    $elem = sprintf($format, $elem) if ($format);
                    if ($align) {
                        $td_col_attrib = " align=\"$align\"";
                    }
                    elsif ($elem =~ /^[-0-9.,%]+$/) {

lib/App/Widget/DataTable2.pm  view on Meta::CPAN

            }
        }
    }

    my ($format, $scale_factor, $edit_widget_args, $edit_widget);
    for ($row = 0; $row <= $#$data; $row++) {
        $numrow = $startrow + $row;

        $key = "";
        if (defined $keys && defined $keys->[$row]) {
            $key = join(",", @{$keys->[$row]});   # need to HTML-escape these!
        }

        $html .= $self->{row_selected}{$key} ? "<tr class=\"App-DataTable-tr_selected\">" : "<tr>\n";

        $html .= "  <td bgcolor=\"$heading_bgcolor\" align=\"right\">$elem_begin$numrow$elem_end</td>\n" if ($numbered);

        if ($row_selectable) {
            $html .= "  <td bgcolor=\"#ffaaaa\" valign=\"middle\" align=\"center\" class=\"App-DataTable-td_select\">\n";
            $html .= $context->widget("$name\{row_selected}{$key}",
                         class => "App::Widget::Checkbox",

lib/App/Widget/DataTable2.pm  view on Meta::CPAN

                        my $data = $view_widget->html();
                        if ($data ne "") {
                            $elem = "<span style=\"white-space: nowrap\">".$data."</span>";
                        }
                    }
                    else {
                        $elem = $view_widget->html();
                    }
                }
                else {
                    $elem = $self->html_escape($elem);
                    if (!defined $elem || $elem eq "") {
                        $elem = "&nbsp;";
                    }
                    else {
                        $elem = $elem * $scale_factor if ($scale_factor);
                        $elem = sprintf($format, $elem) if ($format);
                        if ($align) {
                            $td_col_attrib = " align=\"$align\"";
                        }
                        elsif ($elem =~ /^[-0-9.,%]+$/) {

lib/App/Widget/Element.pm  view on Meta::CPAN

# options: _default, value

sub html {
    my $self = shift;
    my ($context, $tag, $name, $value, $html_value, $contents);

    $context = $self->{context};
    $name = $self->{name};

    $value = $self->get_value("");
    $html_value = $self->html_escape($value);

    $tag = $self->get("tag");
    $contents = $self->get("contents");

    if (!defined $tag || $tag eq "") {
        return $contents if (defined $contents);
        return "[$name widget tag not defined]. <input type=\"hidden\" name=\"$name\" value=\"$html_value\"/>";
    }

    my (@keys, $key, @html, $config);
    push(@html, $tag);
    push(@html, "name=\"$name\"") if ($name ne "");
    push(@html, "value=\"$html_value\"") if (defined $value);

    $config = $self->config();
    @keys = (keys %$config);
    foreach $key (@keys) {
        next if ($key eq "tag" || $key eq "name" || $key eq "default" || $key eq "contents" || $key =~ /^widget/);
        $value = $self->get($key);
        $html_value = $self->html_escape($value);
        push(@html, $key . "=\"$html_value\"") if (defined $value);
    }

    if (!defined $contents || $contents eq "") {
        return "<" . join(" ",@html) . "/>";
    }
    else {
        return "<" . join(" ",@html) . ">$contents</$tag>";
    }
}

lib/App/Widget/Hidden.pm  view on Meta::CPAN


This class is a <input type=hidden> HTML element.

=cut

sub html {
    my $self = shift;
    my ($name, $value, $html_value, $html);
    $name = $self->{name};
    $value = $self->get_value();
    $html_value = $self->html_escape($value);
    $html = "<input type=\"hidden\" name=\"${name}\" value=\"$html_value\" />";
    $html;
}

1;

lib/App/Widget/ImageButton.pm  view on Meta::CPAN


sub html {
    my $self = shift;
    my ($name);
    my ($url, $image, $image_script, $script_url_dir, $html_url_dir);
    my ($height, $width, $bevel, $event, $args, $tabindex, $bgcolor);
    my ($label, $url_label, $html_label, $event_target, $type, $selected);

    $name         = $self->{name};
    $label        = $self->label();
    $url_label    = $self->url_escape($label);
    $html_label   = $self->html_escape($label);
    $tabindex     = $self->get("tabindex");
    $tabindex     = ($tabindex) ? " tabindex=\"$tabindex\"" : "";
    $event_target = $self->get("event_target",$name);
    $event        = $self->get("event","click");
    $args         = $self->get("args");
    $args         = (defined $args && $args ne "") ? "($args)" : "";
    $type         = $self->{type};
    $type         = "button" if (!$type);
    $selected     = $self->{selected} ? "&selected=1" : "&selected=0";

lib/App/Widget/Password.pm  view on Meta::CPAN


######################################################################
# OUTPUT METHODS
######################################################################

sub unstyled_html {
    my $self = shift;
    my ($name, $value, $html_value, $html, $var, $size, $maxlength, $tabindex);
    $name = $self->{name};
    $value = $self->fget_value();
    $html_value = $self->html_escape($value);
    $size = $self->get("size");
    $maxlength = $self->get("maxlength");
    $tabindex = $self->get("tabindex");
    $html = "<input type=\"password\" name=\"${name}\" value=\"$html_value\"";
    $html .= " size=\"$size\"" if ($size);
    $html .= " maxlength=\"$maxlength\"" if ($maxlength);
    $html .= " tabindex=\"$tabindex\"" if ($tabindex);
    $html .= "/>";
    $html;
}

lib/App/Widget/RadioButtonSet.pm  view on Meta::CPAN

    ($values, $labels) = $self->values_labels();

    $html_attribs = $self->html_attribs();

    $tabindex = (defined $tabindex && $tabindex ne "") ? " tabindex=\"$tabindex\"" : "";

    @html = ();
    $curr_value = $self->get_value();
    for ($v = 0; $v <= $#$values; $v++) {
        $value = $values->[$v];
        $label = $self->html_escape($labels->{$value});
        push(@html,"  <input type=\"radio\" name=\"$name\" value=\"$value\"$tabindex".
            (($html_attribs) ? " $html_attribs" : "") .
            (($value eq $curr_value) ? " checked />" : " />") .
            $label .
            "<br>");
    }
    return join("",@html);
}

1;

lib/App/Widget/Select.pm  view on Meta::CPAN

    my ($value, $v, %value_exists, $value_exists, @html);
    @currvalues = $self->get_values();
    foreach $value (@currvalues) {
        if (defined $value) {
            $value_exists{$value} = 1;
            $value_exists = 1;
        }
    }
    for ($v = 0; $v <= $#$values; $v++) {
        $value = $values->[$v];
        my $convert_value = $self->html_escape($value);
        push(@html,"  <option value='$convert_value'" .
            ($value_exists{$value} ? " selected>" : ">") .
            ((defined $labels->{$value}) ? $self->html_escape($labels->{$value}) : $convert_value) .
            "</option>\n");   
    }
    my $html_attribs = $self->html_attribs();
    return "<select name='$tagname'${size}${multiple}${tabindex}${onchange}$html_attribs>\n" . join("",@html) . "</select>";
}

1;

lib/App/Widget/TextArea.pm  view on Meta::CPAN


######################################################################
# OUTPUT METHODS
######################################################################

sub unstyled_html {
    my $self = shift;
    my ($html);
    my $name = $self->{name};
    my $value = $self->get_value();
    my $html_value = $self->html_escape($value);
    my $rows = $self->{rows} || 40;
    my $cols = $self->{cols} || 10;
    my $wrap_html = "";
    my $wrap = $self->{wrap};
    my $readonly = $self->get("readonly");
    my $readonly_html = "";
    my $enable_warn = $self->get("enable_warning");
    my $enable_warning_widget = $self->get("enable_warning_widget");

    if (defined $wrap) {

lib/App/Widget/TextField.pm  view on Meta::CPAN


######################################################################
# OUTPUT METHODS
######################################################################

sub unstyled_html {
    my $self = shift;
    my ($name, $value, $html_value, $html, $var, $size, $maxlength, $tabindex, $readonly, $html_attribs, $enable_warn, $enable_warning_widget);
    $name = $self->{name};
    $value = $self->fget_value();
    $html_value = $self->html_escape($value);
    $size = $self->get("size");
    $maxlength = $self->get("maxlength");
    $tabindex = $self->get("tabindex");
    $readonly = $self->get("readonly");
    $html_attribs = $self->html_attribs();
    $enable_warn = $self->get("enable_warning");
    $enable_warning_widget = $self->get("enable_warning_widget");
    $html = "<input type=\"text\" name=\"${name}\" value=\"$html_value\"";
    $html .= " size=\"$size\"" if ($size);
    $html .= " maxlength=\"$maxlength\"" if ($maxlength);



( run in 1.320 second using v1.01-cache-2.11-cpan-5467b0d2c73 )