ePortal

 view release on metacpan or  search on metacpan

lib/ePortal/ThePersistent/Support.pm  view on Meta::CPAN

            $defaultvalue = 'gid';
            $gid_def = $1;
            $gid_style = 'inline';
        }
        $CGI{'-default'} = $defaultvalue;

        # list of groups
        my $G = new ePortal::epGroup;
        my ($G_values, $G_labels) = $G->restore_all_hash('groupname','groupname', 'hidden=0');

        return CGI::popup_menu( {%CGI} ) .
            '<div id="'. $attr.
                '_uidspan" class="smallfont" style="display:'.
                $uid_style . ';"><br>' .
            pick_lang(rus => 'Èìÿ:', eng => 'Name:') .
            CGI::textfield({
                    -name => $attr.'_uid',
                    -class => 'dlgfield',
                    -size => 20,
                    -value => $uid_def}) .
            qq{</div>} .
            '<div id="'.$attr.'_gidspan" class="smallfont" style="display:'.$gid_style.';"><br>' .
            pick_lang(rus => 'Ãðóïïà:', eng => 'Group:') .
            CGI::popup_menu({
                    -name => $attr.'_gid',
                    -class => 'dlgfield',
                    -values => $G_values,
                    -labels => $G_labels,
                    -default => $gid_def}) .
            qq{</div>}

            ;
    }

    die "Unknown fieldtype parameter for htmlField [$fieldtype]";
}##htmlField


############################################################################
# Function: htmlSave
# Description: Get parameters from HTTP request, update or create new
#   object.
# Parameters: %ARGS from mason component
# Returns: throw Exception on error
#
############################################################################
sub htmlSave    {   #04/02/01 1:22
############################################################################
    my $self = shift;
    my %ARGS = @_;

    # Save attributes from HTTP request into self
    FIELD:
    foreach my $field ( $self->attributes ) {
        next FIELD if $field eq 'id';

        # Date and DateTime fields may be passed as multi-field. See htmlField
        # for details
        my $A = $self->attribute($field);
        if ( $A->{dtype} =~ /^DateT/oi ) {
            if ( exists $ARGS{$field.'_d'} ) {      # combobox style
                my $datestring = $ARGS{$field.'_d'} . '.' . $ARGS{$field.'_m'} . '.' .$ARGS{$field.'_y'} . ' ' .$ARGS{$field.'_t'};
                eval { $self->value($field, $datestring); };
                $self->value($field, undef) if $@;
                next FIELD;

            } elsif ( exists $ARGS{$field.'_date'} ) {  # java style
                my $datestring = $ARGS{$field.'_date'} . ' ' .$ARGS{$field.'_time'};
                eval { $self->value($field, $datestring); };
                $self->value($field, undef) if $@;
                next FIELD;
            }

        } elsif ( $A->{dtype} =~ /^Date/oi ) {
            if ( exists $ARGS{$field.'_d'} ) {      # combobox style
                my $datestring = $ARGS{$field.'_d'} . '.' . $ARGS{$field.'_m'} . '.' .$ARGS{$field.'_y'};
                eval { $self->value($field, $datestring); };
                $self->value($field, undef) if $@;
                next FIELD;

            } elsif ( exists $ARGS{$field.'_date'} ) {  # java style
                my $datestring = $ARGS{$field.'_date'};
                eval { $self->value($field, $datestring); };
                $self->value($field, undef) if $@;
                next FIELD;
            }

        } elsif ($field =~ /^xacl_/o) {     # ExtendedACL
            next if ! exists $ARGS{$field};
            my $v = $ARGS{$field};
            if ($v eq 'uid') { $v = 'uid:' . $ARGS{$field . '_uid'}; }
            if ($v eq 'gid') { $v = 'gid:' . $ARGS{$field . '_gid'}; }
            $self->value($field, $v);
            next FIELD;

        } elsif ( $A->{dtype} =~ /^Ar/oi) { # Array
            next if ! exists $ARGS{$field};
            my $v = [split('\s*,\s*', $ARGS{$field})];
            $self->value($field, $v);
            next FIELD;
        }

        # Default field processing
        if (exists $ARGS{$field}) {
            $self->value($field, $ARGS{$field});
        }
    }

    if (! $ARGS{skip_object_insert_update}) {
        if ($self->check_id()) {
            return $self->update;
        } else {
            return $self->insert;
        }
    }
}##htmlSave

############################################################################
sub htmlSave2    {   #04/02/01 1:22
############################################################################
    my $self = shift;
    my %ARGS = @_;

    # Save attributes from HTTP request into self
    FIELD:
    foreach my $field ( $self->attributes_at ) {
        next if ! exists $ARGS{$field};

        my $A = $self->attribute($field);
        if ( $A->{dtype} =~ /^Ar/oi) { # Array
            $ARGS{$field} = [split('\s*,\s*', $ARGS{$field})];
        }

        try {
            $self->value_from_req($field, $ARGS{$field});



( run in 1.070 second using v1.01-cache-2.11-cpan-59e3e3084b8 )