added resizable textareas
This commit is contained in:
parent
04911c04e9
commit
722a214f80
13 changed files with 278 additions and 72 deletions
|
|
@ -102,6 +102,7 @@
|
|||
- added [ 881817 ] allowed characters in username
|
||||
- added [ 1231386 ] Insert WebGUI Image
|
||||
- added [ 1205807 ] ability to report file size in File template
|
||||
- added [ 1201811 ] resizable textAreas
|
||||
- added [ 1376374 ] WebGUI should return a Last-Modified http/1.x header
|
||||
- fix [ 1178981 ] IE is in "quirks mode" - multi-column layout templates
|
||||
break
|
||||
|
|
|
|||
|
|
@ -51,9 +51,17 @@ addRichEditUpload();
|
|||
updateArticle();
|
||||
updateScratch();
|
||||
installSQLForm();
|
||||
addResizableTextareas();
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
#-------------------------------------------------
|
||||
sub addResizableTextareas {
|
||||
print "\tAllowing user to resize text areas on the fly.\n";
|
||||
$session->setting->remove("textAreaCols");
|
||||
$session->setting->remove("textAreaRows");
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateScratch {
|
||||
print "\tIncreasing size of scratch variables.\n";
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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="'
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
|
|
|
|||
|
|
@ -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).'">'
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
12
lib/WebGUI/i18n/English/Form_Textarea.pm
Normal file
12
lib/WebGUI/i18n/English/Form_Textarea.pm
Normal 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;
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
165
www/extras/resizeable_textarea.js
Normal file
165
www/extras/resizeable_textarea.js
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
/* -*-mode: Java; coding: latin-1;-*- Time-stamp: "2005-05-13 20:47:10 ADT"
|
||||
|
||||
"Resizeable textarea functions" by Sean M. Burke, sburke@cpan.org, 2005
|
||||
|
||||
You can use, modify, and redistribute this only under the terms of the
|
||||
Perl Artistic License:
|
||||
http://www.perl.com/pub/a/language/misc/Artistic.html
|
||||
|
||||
*/
|
||||
|
||||
var // Configurables:
|
||||
tar_Drag_increments = 15, // number of pixels that we grow by
|
||||
|
||||
// Sizes (in pixels) that no draggable textarea should exceed:
|
||||
tar_Min_Height = 120, tar_Min_Width = 120,
|
||||
tar_Max_Height = 1400, tar_Max_Width = 1400
|
||||
;
|
||||
|
||||
// End of configurables
|
||||
|
||||
//==========================================================================
|
||||
var tar_Textarea, tar_Orig_width, tar_Orig_height, tar_Grip, tar_Cursor_start_x, tar_Cursor_start_y;
|
||||
|
||||
function tar_drag_start (event, textarea_id) {
|
||||
Textarea = tar_id(textarea_id);
|
||||
|
||||
if(! tar_find_draggable(event) ) return;
|
||||
|
||||
tar_add_class(Grip, "activedrag");
|
||||
|
||||
Cursor_start_x = event.clientX;
|
||||
Cursor_start_y = event.clientY;
|
||||
Orig_width = parseInt( Textarea.style.width , 10 );
|
||||
Orig_height = parseInt( Textarea.style.height , 10 );
|
||||
|
||||
// Capture mousemove and mouseup events on the page.
|
||||
document.addEventListener("mousemove", tar_drag_move, true);
|
||||
document.addEventListener("mouseup", tar_drag_stop, true);
|
||||
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
|
||||
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
function tar_drag_move(event) {
|
||||
var
|
||||
new_width = event.clientX - Cursor_start_x + Orig_width ,
|
||||
new_height = event.clientY - Cursor_start_y + Orig_height;
|
||||
|
||||
new_width = tar_constrain_range(tar_Min_Width ,new_width , tar_Max_Width, tar_Drag_increments);;
|
||||
new_height = tar_constrain_range(tar_Min_Height,new_height, tar_Max_Height, tar_Drag_increments);;
|
||||
|
||||
Textarea.style.width = new_width+'px';
|
||||
Textarea.style.height = new_height+'px';
|
||||
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
|
||||
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
function tar_drag_stop(event) {
|
||||
// Stop capturing the mousemove and mouseup events.
|
||||
tar_remove_class(Grip, "activedrag");
|
||||
document.removeEventListener("mousemove", tar_drag_move, true);
|
||||
document.removeEventListener("mouseup", tar_drag_stop, true);
|
||||
return;
|
||||
}
|
||||
|
||||
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
|
||||
|
||||
function tar_constrain_range (min, i, max, incr) {
|
||||
if(incr) i = Math.floor(i/incr) * incr;
|
||||
return(
|
||||
(i > max) ? max
|
||||
:(i < min) ? min
|
||||
: i
|
||||
);
|
||||
}
|
||||
|
||||
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
function tar_find_draggable (event) {
|
||||
if(!event) throw tar_complaining("No event?!");
|
||||
|
||||
var el = event.target;
|
||||
if(!el) {
|
||||
if(window.event) throw tar_complaining(
|
||||
"Your browser is too old to allow textarea resizing. Upgrade at getfirefox.com"
|
||||
);
|
||||
// Modern browsers implement the DOM Events model, dammit!
|
||||
|
||||
throw tar_complaining("No event target?!");
|
||||
}
|
||||
|
||||
//trace("Dragging ", el.tagName, "#", el.id);
|
||||
|
||||
if (el.nodeType == document.TEXT_NODE) el = el.parentNode;
|
||||
while(el) {
|
||||
if( el.tagName == "BODY" ) { el = false; break; }
|
||||
if( tar_has_class(el, 'draggable') ) break; // found it!
|
||||
el = el.parentNode;
|
||||
}
|
||||
if(!el) return false; // undraggable
|
||||
Grip = el;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
// Misc library functions:
|
||||
|
||||
function tar_has_class (el, classname) {
|
||||
return(
|
||||
(" " + (el.className || '') + " ").indexOf(classname) >= 0
|
||||
);
|
||||
}
|
||||
|
||||
function tar_add_class (el, newclass) {
|
||||
var classes = (el.className || '').split(" ");
|
||||
classes.push(newclass);
|
||||
el.className = classes.join(" ");
|
||||
return el;
|
||||
}
|
||||
|
||||
function tar_remove_class (el, endclass) {
|
||||
if(!el.className) return el;
|
||||
var classes = el.className.split(" ");
|
||||
for(var i = 0; i < classes.length; i++) {
|
||||
if(classes[i] == endclass) classes[i] = '';
|
||||
}
|
||||
el.className = classes.join(" ");
|
||||
return el;
|
||||
}
|
||||
|
||||
function tar_id (name) { // find element with the given ID, else exception.
|
||||
var object = tar_id_try(name);
|
||||
if( ! object ) throw tar_complaining("Failed to find element with id='"
|
||||
+ name + "' in " + document.location );
|
||||
return object;
|
||||
}
|
||||
|
||||
function tar_id_try (name) {
|
||||
var object = document.getElementById(name);
|
||||
return object;
|
||||
}
|
||||
|
||||
function tar_complaining () {
|
||||
var _ = [];
|
||||
for(var i = 0; i < arguments.length; i++) { _.push(arguments[i]) }
|
||||
_ = _.join("");
|
||||
if(! _.length) out = "Unknown error!?!";
|
||||
void alert(_);
|
||||
return new Error(_,_);
|
||||
}
|
||||
|
||||
// And a sanity-check:
|
||||
if(!document.getElementById) throw tar_complaining(
|
||||
"Your browser is too old to show this page quite right. Upgrade at getfirefox.com"
|
||||
);
|
||||
|
||||
|
||||
//End
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue