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

@ -443,6 +443,7 @@ sub getRichEditor {
auto_reset_designmode => "true",
cleanup_callback => "tinyMCE_WebGUI_Cleanup",
urlconvertor_callback => "tinyMCE_WebGUI_URLConvertor",
theme_advanced_resizing => "true",
theme_advanced_buttons1 => join(",",@toolbarRow1),
theme_advanced_buttons2 => join(",",@toolbarRow2),
theme_advanced_buttons3 => join(",",@toolbarRow3),
@ -454,6 +455,7 @@ sub getRichEditor {
nowrap => $self->getValue("nowrap") ? "true" : "false",
directionality => $self->getValue("directionality"),
theme_advanced_toolbar_location => $self->getValue("toolbarLocation"),
theme_advanced_statusbar_location => "bottom",
valid_elements => $self->getValue("validElements"),
);
foreach my $button (@toolbarButtons) {

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;
}

View file

@ -135,18 +135,6 @@ sub www_editSettings {
-options=>WebGUI::Asset::RichEdit->getList($session),
-defaultValue=>["PBrichedit000000000001"]
);
$tabform->getTab("ui")->integer(
-name=>"textAreaRows",
-label=>$i18n->get(463),
-hoverHelp=>$i18n->get('463 description'),
-value=>$session->setting->get("textAreaRows")
);
$tabform->getTab("ui")->integer(
-name=>"textAreaCols",
-label=>$i18n->get(464),
-hoverHelp=>$i18n->get('464 description'),
-value=>$session->setting->get("textAreaCols")
);
$tabform->getTab("ui")->integer(
-name=>"textBoxSize",
-label=>$i18n->get(465),

View file

@ -54,13 +54,13 @@ These subroutines are available from this package:
#-------------------------------------------------------------------
=head2 _getBaseURL ( )
=head2 getBaseURL ( )
Returns the base URL for this user's toolbar icon set.
=cut
sub _getBaseURL {
sub getBaseURL {
my $self = shift;
my $url = $self->session->config->get("extrasURL").'/toolbar/';
if ($self->session->user->profileField("toolbar") ne "useLanguageDefault") {
@ -95,7 +95,7 @@ sub copy {
my $pageURL = shift || $self->session->url->getRequestedUrl;
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'">';
$output .= '<img src="'.$self->_getBaseURL().'copy.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Copy').'" title="'.$i18n->get('Copy').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'copy.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Copy').'" title="'.$i18n->get('Copy').'" /></a></p>';
return $output;
}
@ -121,7 +121,7 @@ sub cut {
my $pageURL = shift || $self->session->url->getRequestedUrl;
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'">';
$output .= '<img src="'.$self->_getBaseURL().'cut.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Cut').'" title="'.$i18n->get('Cut').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'cut.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Cut').'" title="'.$i18n->get('Cut').'" /></a></p>';
return $output;
}
@ -169,7 +169,7 @@ sub delete {
}
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'" '.$confirmText.'>';
$output .= '<img src="'.$self->_getBaseURL().'delete.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Delete').'" title="'.$i18n->get('Delete').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'delete.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Delete').'" title="'.$i18n->get('Delete').'" /></a></p>';
return $output;
}
@ -184,7 +184,7 @@ Generates an icon that can be used to drag content.
sub drag {
my $self = shift;
my $i18n = WebGUI::International->new($self->session,'Icon');
return '<p style="display:inline;vertical-align:middle;"><img id="dragTrigger" class="dragTrigger" src="'.$self->_getBaseURL().'drag.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Drag').'" title="'.$i18n->get('Drag').'" /></p>';
return '<p style="display:inline;vertical-align:middle;"><img id="dragTrigger" class="dragTrigger" src="'.$self->getBaseURL().'drag.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Drag').'" title="'.$i18n->get('Drag').'" /></p>';
}
#-------------------------------------------------------------------
@ -209,7 +209,7 @@ sub edit {
my $pageURL = shift || $self->session->url->getRequestedUrl;
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'">';
$output .= '<img src="'.$self->_getBaseURL().'edit.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Edit').'" title="'.$i18n->get('Edit').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'edit.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Edit').'" title="'.$i18n->get('Edit').'" /></a></p>';
return $output;
}
@ -235,7 +235,7 @@ sub export {
my $pageURL = shift || $self->session->url->getRequestedUrl;
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'">';
$output .= '<img src="'.$self->_getBaseURL().'export.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Export').'" title="'.$i18n->get('Export').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'export.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Export').'" title="'.$i18n->get('Export').'" /></a></p>';
return $output;
}
@ -286,7 +286,7 @@ sub locked {
my $pageURL = shift || $self->session->url->getRequestedUrl;
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'">';
$output .= '<img src="'.$self->_getBaseURL().'locked.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('locked').'" title="'.$i18n->get('locked').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'locked.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('locked').'" title="'.$i18n->get('locked').'" /></a></p>';
return $output;
}
@ -312,7 +312,7 @@ sub manage {
my $pageURL = shift || $self->session->url->getRequestedUrl;
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'">';
$output .= '<img src="'.$self->_getBaseURL().'manage.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Manage').'" title="'.$i18n->get('Manage').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'manage.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Manage').'" title="'.$i18n->get('Manage').'" /></a></p>';
return $output;
}
@ -338,7 +338,7 @@ sub moveBottom {
my $pageURL = shift || $self->session->url->getRequestedUrl;
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'">';
$output .= '<img src="'.$self->_getBaseURL().'moveBottom.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Move To Bottom').'" title="'.$i18n->get('Move To Bottom').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'moveBottom.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Move To Bottom').'" title="'.$i18n->get('Move To Bottom').'" /></a></p>';
return $output;
}
@ -366,7 +366,7 @@ sub moveDown {
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;">';
$output .= '<a href="'.$self->session->url->gateway($pageURL,$urlParams).'">' unless $disabled;
$output .= '<img src="'.$self->_getBaseURL().'moveDown.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Move Down').'" title="'.$i18n->get('Move Down').'" />';
$output .= '<img src="'.$self->getBaseURL().'moveDown.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Move Down').'" title="'.$i18n->get('Move Down').'" />';
$output .= '</a>' unless $disabled;
$output .= '</p>';
return $output;
@ -394,7 +394,7 @@ sub moveLeft {
my $pageURL = shift || $self->session->url->getRequestedUrl;
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'">';
$output .= '<img src="'.$self->_getBaseURL().'moveLeft.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Move Left').'" title="'.$i18n->get('Move Left').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'moveLeft.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Move Left').'" title="'.$i18n->get('Move Left').'" /></a></p>';
return $output;
}
@ -420,7 +420,7 @@ sub moveRight {
my $pageURL = shift || $self->session->url->getRequestedUrl;
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'">';
$output .= '<img src="'.$self->_getBaseURL().'moveRight.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Move Right').'" title="'.$i18n->get('Move Right').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'moveRight.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Move Right').'" title="'.$i18n->get('Move Right').'" /></a></p>';
return $output;
}
@ -446,7 +446,7 @@ sub moveTop {
my $pageURL = shift || $self->session->url->getRequestedUrl;
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'">';
$output .= '<img src="'.$self->_getBaseURL().'moveTop.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Move To Top').'" title="'.$i18n->get('Move To Top').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'moveTop.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Move To Top').'" title="'.$i18n->get('Move To Top').'" /></a></p>';
return $output;
}
@ -474,7 +474,7 @@ sub moveUp {
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;">';
$output .= '<a href="'.$self->session->url->gateway($pageURL,$urlParams).'">' unless $disabled;
$output .= '<img src="'.$self->_getBaseURL().'moveUp.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Move Up').'" title="'.$i18n->get('Move Up').'" />';
$output .= '<img src="'.$self->getBaseURL().'moveUp.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Move Up').'" title="'.$i18n->get('Move Up').'" />';
$output .= '</a>' unless $disabled;
$output .= '</p>';
return $output;
@ -536,7 +536,7 @@ sub shortcut {
my $pageURL = shift || $self->session->url->getRequestedUrl;
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'">';
$output .= '<img src="'.$self->_getBaseURL().'shortcut.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Create Shortcut').'" title="'.$i18n->get('Create Shortcut').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'shortcut.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('Create Shortcut').'" title="'.$i18n->get('Create Shortcut').'" /></a></p>';
return $output;
}
@ -562,7 +562,7 @@ sub view {
my $pageURL = shift || $self->session->url->getRequestedUrl;
my $i18n = WebGUI::International->new($self->session,'Icon');
my $output = '<p style="display:inline;vertical-align:middle;"><a href="'.$self->session->url->gateway($pageURL,$urlParams).'">';
$output .= '<img src="'.$self->_getBaseURL().'view.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('View').'" title="'.$i18n->get('View').'" /></a></p>';
$output .= '<img src="'.$self->getBaseURL().'view.gif" style="vertical-align:middle;border: 0px;" alt="'.$i18n->get('View').'" title="'.$i18n->get('View').'" /></a></p>';
return $output;
}

View file

@ -0,0 +1,12 @@
package WebGUI::i18n::English::Form_Textarea; ##Be sure to change the package name to match the filename
our $I18N = { ##hashref of hashes
'drag to resize' => {
message => q|Drag to Resize|,
lastUpdated => 0,
context => q|alt tag for the text area drag icon|
},
};
1;

View file

@ -137,11 +137,6 @@ our $I18N = {
context => q|Title of the statistics viewer for the admin console.|
},
'463' => {
message => q|Text Area Rows|,
lastUpdated => 1031514049
},
'451' => {
message => q|is required.|,
lastUpdated => 1031514049
@ -2557,11 +2552,6 @@ The headings of columns on things like message boards and user contributions.
lastUpdated => 1078243385
},
'464' => {
message => q|Text Area Columns|,
lastUpdated => 1031514049
},
'363' => {
message => q|Page Template Position|,
lastUpdated => 1034736999
@ -3525,16 +3515,6 @@ and tracked by WebGUI.|,
lastUpdated => 1120239343,
},
'463 description' => {
message => q|How many rows of characters will be displayed in textareas on the site.|,
lastUpdated => 1120239343,
},
'464 description' => {
message => q|How many columns of characters will be displayed in textareas on the site. |,
lastUpdated => 1120239343,
},
'465 description' => {
message => q|How many characters can be displayed at once in text boxes on the site. |,
lastUpdated => 1120239343,