- Added Guid form control.

- Moved Asset ID and Class Name fields to the Meta tab of all assets.
 - Made Classname from control a subclass of ReadOnly.
This commit is contained in:
JT Smith 2008-10-16 19:02:13 +00:00
parent 2b8a3c279d
commit 84d7c20fed
5 changed files with 119 additions and 57 deletions

View file

@ -1,5 +1,8 @@
7.6.2 7.6.2
- fixed #8839: Documentation is wrong for Stock Ticker - fixed #8839: Documentation is wrong for Stock Ticker
- Added Guid form control.
- Moved Asset ID and Class Name fields to the Meta tab of all assets.
- Made Classname from control a subclass of ReadOnly.
- Fixed a limit bug in the asset discovery service. - Fixed a limit bug in the asset discovery service.
7.6.1 7.6.1

View file

@ -818,21 +818,19 @@ sub getEditForm {
name=>"func", name=>"func",
value=>"editSave" value=>"editSave"
}); });
my $assetId;
my $class;
if ($self->getId eq "new") { if ($self->getId eq "new") {
$tabform->hidden({ $assetId = "new";
name=>"assetId", $class = $self->session->form->process("class","className");
value=>"new"
});
$tabform->hidden({
name=>"class",
value=>$self->session->form->process("class","className")
});
} }
else { else {
# revision history # revision history
$assetId = $self->getId;
$class = $self->get('className');
my $ac = $self->getAdminConsole; my $ac = $self->getAdminConsole;
$ac->addSubmenuItem($self->getUrl("func=manageRevisions"),$i18n->get("revisions").":"); $ac->addSubmenuItem($self->getUrl("func=manageRevisions"),$i18n->get("revisions").":");
my $rs = $self->session->db->read("select revisionDate from assetData where assetId=? order by revisionDate desc limit 5", [$self->getId]); my $rs = $self->session->db->read("select revisionDate from assetData where assetId=? order by revisionDate desc limit 5", [$assetId]);
while (my ($version) = $rs->array) { while (my ($version) = $rs->array) {
my ($interval, $units) = $self->session->datetime->secondsToInterval(time() - $version); my ($interval, $units) = $self->session->datetime->secondsToInterval(time() - $version);
$ac->addSubmenuItem($self->getUrl("func=edit;revision=".$version), $interval." ".$units." ".$ago); $ac->addSubmenuItem($self->getUrl("func=edit;revision=".$version), $interval." ".$units." ".$ago);
@ -875,11 +873,19 @@ sub getEditForm {
tie my %baseProperties, 'Tie::IxHash'; tie my %baseProperties, 'Tie::IxHash';
%baseProperties = ( %baseProperties = (
assetId => { assetId => {
fieldType => "readOnly", fieldType => "guid",
label => $i18n->get("asset id"), label => $i18n->get("asset id"),
value => $self->get("assetId"), value => $assetId,
hoverHelp => $i18n->get('asset id description'), hoverHelp => $i18n->get('asset id description'),
tab => "properties", uiLevel => 9,
tab => "meta",
},
class => {
fieldType => "className",
label => $i18n->get("class name",'WebGUI'),
value => $class,
uiLevel => 9,
tab => "meta",
}, },
keywords => { keywords => {
label => $i18n->get('keywords'), label => $i18n->get('keywords'),

View file

@ -15,7 +15,7 @@ package WebGUI::Form::ClassName;
=cut =cut
use strict; use strict;
use base 'WebGUI::Form::Text'; use base 'WebGUI::Form::ReadOnly';
use WebGUI::International; use WebGUI::International;
=head1 NAME =head1 NAME
@ -28,7 +28,7 @@ Creates a field for typing in perl class names which is validated for taint safe
=head1 SEE ALSO =head1 SEE ALSO
This is a subclass of WebGUI::Form::Text. This is a subclass of WebGUI::Form::ReadOnly.
=head1 METHODS =head1 METHODS
@ -65,32 +65,5 @@ sub getValue {
return $value; return $value;
} }
#-------------------------------------------------------------------
=head2 isDynamicCompatible ( )
Returns 0.
=cut
sub isDynamicCompatible {
return 0;
}
#-------------------------------------------------------------------
=head2 toHtml ( )
Renders a class name field.
=cut
sub toHtml {
my $self = shift;
$self->session->style->setScript($self->session->url->extras('inputCheck.js'),{ type=>'text/javascript' });
$self->set("extras", $self->get('extras') . ' onkeyup="doInputCheck(document.getElementById(\''.$self->get("id").'\'),\'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890:_\')" ');
return $self->SUPER::toHtml;
}
1; 1;

84
lib/WebGUI/Form/Guid.pm Normal file
View file

@ -0,0 +1,84 @@
package WebGUI::Form::Guid;
=head1 LEGAL
-------------------------------------------------------------------
WebGUI is Copyright 2001-2008 Plain Black Corporation.
-------------------------------------------------------------------
Please read the legal notices (docs/legal.txt) and the license
(docs/license.txt) that came with this distribution before using
this software.
-------------------------------------------------------------------
http://www.plainblack.com info@plainblack.com
-------------------------------------------------------------------
=cut
use strict;
use base 'WebGUI::Form::ReadOnly';
use WebGUI::International;
=head1 NAME
Package WebGUI::Form::Guid
=head1 DESCRIPTION
Creates a form control for feeding WebGUI IDs (which are called GUIDs or Global Unique IDs) through forms.
=head1 SEE ALSO
This is a subclass of WebGUI::Form::ReadOnly.
=head1 METHODS
The following methods are specifically available from this class. Check the superclass for additional methods.
=cut
#-------------------------------------------------------------------
=head2 getDatabaseFieldType ( )
Returns "char(22) binary"
=cut
sub getDatabaseFieldType {
return "char(22) binary";
}
#-------------------------------------------------------------------
=head2 getName ( session )
Returns the human readable name of this control.
=cut
sub getName {
my ($self, $session) = @_;
return 'GUID';
}
#-------------------------------------------------------------------
=head2 getValue ( )
Returns a class name which has been taint checked.
=cut
sub getValue {
my $self = shift;
my $value = $self->SUPER::getValue(@_);
if ($value =~ m/[A-Za-z0-9\-_]{1,22}/) {
return $value;
}
return undef;
}
1;

View file

@ -52,18 +52,6 @@ sub getName {
#------------------------------------------------------------------- #-------------------------------------------------------------------
=head2 getValue ( )
Returns undef.
=cut
sub getValue {
return undef;
}
#-------------------------------------------------------------------
=head2 isDynamicCompatible ( ) =head2 isDynamicCompatible ( )
A class method that returns a boolean indicating whether this control is compatible with the DynamicField control. A class method that returns a boolean indicating whether this control is compatible with the DynamicField control.
@ -71,31 +59,39 @@ A class method that returns a boolean indicating whether this control is compati
=cut =cut
sub isDynamicCompatible { sub isDynamicCompatible {
return 1; return 0;
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
=head2 toHtml ( ) =head2 toHtml ( )
Renders the value. Renders the value and a hidden input type if a "name" attribute was specified.
=cut =cut
sub toHtml { sub toHtml {
my $self = shift; my $self = shift;
return $self->getOriginalValue; my $out = $self->getOriginalValue;
if ($self->get('name') ne '') {
$out .= $self->toHtmlAsHidden;
}
return $out;
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
=head2 toHtmlAsHidden ( ) =head2 toHtmlAsHidden ( )
Outputs nothing. Outputs nothing unless a "name" attribute was specified.
=cut =cut
sub toHtmlAsHidden { sub toHtmlAsHidden {
my $self = shift;
if ($self->get('name') ne '') {
return $self->SUPER::toHtmlAsHidden;
}
return undef; return undef;
} }