added resizable textareas

This commit is contained in:
JT Smith 2006-04-19 19:08:56 +00:00
parent 04911c04e9
commit 722a214f80
13 changed files with 278 additions and 72 deletions

View file

@ -45,6 +45,18 @@ See the super class for additional details.
=head3 additionalTerms
=head4 width
The width of this control in pixels. Defaults to 550 pixels.
=head4 height
The height of this control in pixels. Defaults to 450 pixels.
=head4 style
Style attributes besides width and height which should be specified using the above parameters. Be sure to escape quotes if you use any.
The following additional parameters have been added via this sub class.
=head4 profileEnabled
@ -62,6 +74,15 @@ sub definition {
formName=>{
defaultValue=>$i18n->get("codearea")
},
height=>{
defaultValue=> 450
},
width=>{
defaultValue=> 550
},
style=>{
defaultValue => undef,
},
profileEnabled=>{
defaultValue=>1
}
@ -80,7 +101,7 @@ Renders a code area field.
sub toHtml {
my $self = shift;
$self->session->style->setScript($self->session->config->get("extrasURL").'/TabFix.js',{type=>"text/javascript"});
$self->set("extras", $self->get('extras') . ' style="width: 600px; height: 400px" onkeypress="return TabFix_keyPress(event)" onkeydown="return TabFix_keyDown(event)"');
$self->set("extras", $self->get('extras').' onkeypress="return TabFix_keyPress(event)" onkeydown="return TabFix_keyDown(event)"');
return $self->SUPER::toHtml;
}

View file

@ -213,7 +213,7 @@ sub toHtml {
foreach my $file (@{$storage->getFiles}) {
if ($self->get("deleteFileUrl")) {
$uploadControl .= '<p style="display:inline;vertical-align:middle;"><a href="'.$self->get("deleteFileUrl").$file.'">'
.'<img src="'.$self->session->icon->_getBaseURL().'delete.gif" style="vertical-align:middle;border: 0px;" alt="x" /></a></p> ';
.'<img src="'.$self->session->icon->getBaseURL().'delete.gif" style="vertical-align:middle;border: 0px;" alt="x" /></a></p> ';
}
$uploadControl .= '<p style="display:inline;vertical-align:middle;"><a href="'.$storage->getUrl($file).'">'
.'<img src="'.$storage->getFileIconUrl($file).'" style="vertical-align:middle;border: 0px;" alt="'

View file

@ -49,13 +49,17 @@ See the super class for additional details.
The following additional parameters have been added via this sub class.
=head4 rows
=head4 width
The number of rows (in characters) tall the box should be. Defaults to the setting textAreaRows + 20.
The width of this control in pixels. Defaults to 500 pixels.
=head4 columns
=head4 height
The number of columns (in characters) wide the box should be. Defaults to the setting textAreaCols + 10.
The height of this control in pixels. Defaults to 400 pixels.
=head4 style
Style attributes besides width and height which should be specified using the above parameters. Be sure to escape quotes if you use any.
=head4 richEditId
@ -76,12 +80,15 @@ sub definition {
formName=>{
defaultValue=>$i18n->get("477")
},
rows=>{
defaultValue=> $session->setting->get("textAreaRows")+20
},
columns=>{
defaultValue=> $session->setting->get("textAreaCols")+10
},
height=>{
defaultValue=> 400
},
width=>{
defaultValue=> 500
},
style=>{
defaultValue => undef,
},
richEditId=>{
defaultValue=>$session->setting->get("richEditor") || "PBrichedit000000000001"
},
@ -118,6 +125,7 @@ sub toHtml {
my $self = shift;
$self->session->style->setScript($self->session->config->get("extrasURL").'/textFix.js',{ type=>'text/javascript' });
$self->set("extras", $self->get('extras') . ' onblur="fixChars(this.form.'.$self->get("name").')" mce_editable="true" ');
$self->set("resizeable", 0);
return $self->SUPER::toHtml.WebGUI::Asset::RichEdit->new($self->session,$self->get("richEditId"))->getRichEditor($self->get('id'));
my $i18n = WebGUI::International->new($self->session);
my $richEdit = WebGUI::Asset::RichEdit->new($self->session,$self->get("richEditId"));

View file

@ -186,7 +186,7 @@ sub toHtml {
foreach my $file (@{$storage->getFiles}) {
if ($self->get("deleteFileUrl")) {
$uploadControl .= '<p style="display:inline;vertical-align:middle;"><a href="'.$self->get("deleteFileUrl").$file.'">'
.'<img src="'.$self->session->icon->_getBaseURL().'delete.gif" style="vertical-align:middle;border: 0px;" alt="x" /></a></p> ';
.'<img src="'.$self->session->icon->getBaseURL().'delete.gif" style="vertical-align:middle;border: 0px;" alt="x" /></a></p> ';
}
my $image = $storage->isImage($file) ? $storage->getThumbnailUrl($file) : $storage->getFileIconUrl($file);
$uploadControl .= '<p style="display:inline;vertical-align:middle;"><a href="'.$storage->getUrl($file).'">'

View file

@ -46,18 +46,26 @@ See the super class for additional details.
The following additional parameters have been added via this sub class.
=head4 rows
=head4 width
The number of rows (in characters) tall the box should be. Defaults to the setting textAreaRows or 5 if that's not specified.
The width of this control in pixels. Defaults to 400 pixels.
=head4 columns
=head4 height
The number of columns (in characters) wide the box should be. Defaults to the setting textAreaCols or 50 if that's not specified.
The height of this control in pixels. Defaults to 150 pixels.
=head4 style
Style attributes besides width and height which should be specified using the above parameters. Be sure to escape quotes if you use any.
=head4 profileEnabled
Flag that tells the User Profile system that this is a valid form element in a User Profile
=head4 resizeable
A boolean indicating whether the text area can be reized by users. Defaults to 1.
=cut
sub definition {
@ -69,11 +77,17 @@ sub definition {
formName=>{
defaultValue=>$i18n->get("476")
},
rows=>{
defaultValue=> $session->setting->get("textAreaRows") || 5
height=>{
defaultValue=> 150
},
columns=>{
defaultValue=> $session->setting->get("textAreaCols") || 50
width=>{
defaultValue=> 400
},
style=>{
defaultValue => undef,
},
resizeable => {
defaultValue => 1,
},
profileEnabled=>{
defaultValue=>1
@ -92,8 +106,15 @@ Renders an input tag of type text.
sub toHtml {
my $self = shift;
my $resize = undef;
if ($self->get("resizeable")) {
my $i18n = WebGUI::International->new($self->session, "Form_Textarea");
$self->session->style->setScript($self->session->config->get("extrasURL")."/resizeable_textarea.js", {type=>"text/javascript"});
$resize = '<img src="'.$self->session->icon->getBaseURL().'/drag.gif" title="'.$i18n->get("drag to resize").'" alt="'.$i18n->get("drag to resize").'" class="draggable" onmousedown="tar_drag_start(event, \''.$self->get('id').'\');" />';
}
my $value = $self->fixMacros($self->fixTags($self->fixSpecialCharacters($self->get("value"))));
return '<textarea id="'.$self->get('id').'" name="'.$self->get("name").'" cols="'.$self->get("columns").'" rows="'.$self->get("rows").'" '.$self->get("extras").'>'.$value.'</textarea>';
my $style = "width: ".$self->get('width')."px; height: ".$self->get('height')."px; ".$self->get("style");
return '<textarea id="'.$self->get('id').'" name="'.$self->get("name").'" style="'.$style.'" '.$self->get("extras").'>'.$value.'</textarea>'.$resize;
}