Skip to content

Commit

Permalink
Remove the YUI based code editor from WebGUI, and replace it with a t…
Browse files Browse the repository at this point in the history
…extarea. Fixes bug #1618, and others.
  • Loading branch information
perlDreamer committed Oct 5, 2010
1 parent d93238d commit f883d8b
Show file tree
Hide file tree
Showing 5 changed files with 1 addition and 860 deletions.
1 change: 1 addition & 0 deletions docs/changelog/7.x.x.txt
Expand Up @@ -10,6 +10,7 @@
- fixed #11871: Metadata display and criteria builder problems
- fixed #10189: pbworkflow000000000007 Hanging
- fixed #11897: Continue to the site link loses current page
- fixed #11618: Code Editor: Content loses it's whitespace formatting

7.10.1
- fixed #11851: Story Topic: top story variables should be available all the time
Expand Down
104 changes: 0 additions & 104 deletions lib/WebGUI/Form/Codearea.pm
Expand Up @@ -16,7 +16,6 @@ package WebGUI::Form::Codearea;

use strict;
use base 'WebGUI::Form::Textarea';
use HTML::Entities qw(encode_entities decode_entities);
use WebGUI::International;

=head1 NAME
Expand Down Expand Up @@ -90,18 +89,6 @@ sub definition {

#-------------------------------------------------------------------

=head2 getDatabaseFieldType ( )
Returns "MEDIUMTEXT".
=cut

sub getDatabaseFieldType {
return "MEDIUMTEXT";
}

#-------------------------------------------------------------------

=head2 getName ( session )
Returns the human readable name of this control.
Expand All @@ -113,95 +100,4 @@ sub getName {
return WebGUI::International->new($session, 'WebGUI')->get('codearea');
}

#-------------------------------------------------------------------

=head2 getValue ( [value] )
Return the value, HTML decoded
=cut

sub getValue {
my ( $self, @args ) = @_;
my $value = $self->SUPER::getValue( @args );
return decode_entities( $value );
}

#-------------------------------------------------------------------

=head2 headTags ( )
Set the head tags for this form plugin
=cut

sub headTags {
my $self = shift;
my ($style, $url) = $self->session->quick(qw(style url));
$style->setLink($url->extras("yui/build/resize/assets/skins/sam/resize.css"), {type=>"text/css", rel=>"stylesheet"});
$style->setLink($url->extras("yui/build/assets/skins/sam/skin.css"), {type=>"text/css", rel=>"stylesheet"});
$style->setScript($url->extras("yui/build/utilities/utilities.js"),{type=>"text/javascript"});
$style->setScript($url->extras("yui/build/container/container_core-min.js"),{type=>"text/javascript"});
$style->setScript($url->extras("yui/build/menu/menu-min.js"),{type=>"text/javascript"});
$style->setScript($url->extras("yui/build/button/button-min.js"),{type=>"text/javascript"});
$style->setScript($url->extras("yui/build/resize/resize-min.js"),{type=>"text/javascript"});
$style->setScript($url->extras("yui/build/editor/editor-min.js"),{type=>"text/javascript"});
$style->setScript($url->extras("yui-webgui/build/code-editor/code-editor.js"),{type=>"text/javascript"});
#$style->setLink($url->extras("yui/build/logger/assets/logger.css"), {type=>"text/css", rel=>"stylesheet"});
#$style->setLink($url->extras("yui/build/logger/assets/skins/sam/logger.css"), {type=>"text/css", rel=>"stylesheet"});
#$style->setScript($url->extras("yui/build/logger/logger.js"),{type=>"text/javascript"});
$self->SUPER::headTags();
}

#-------------------------------------------------------------------

=head2 isDynamicCompatible ( )
A class method that returns a boolean indicating whether this control is compatible with the DynamicField control.
=cut

sub isDynamicCompatible {
return 1;
}

#-------------------------------------------------------------------

=head2 toHtml ( )
Renders a code area field.
=cut

sub toHtml {
my $self = shift;

$self->headTags;
my $value = encode_entities( $self->fixMacros($self->fixTags($self->fixSpecialCharacters(scalar $self->getOriginalValue))) );
my $width = $self->get('width') || 400;
my $height = $self->get('height') || 150;
my $id = $self->get('id');
my $name = $self->get('name');
my $extras = $self->get('extras');
my $syntax = $self->get('syntax');
my $styleAttr = $self->get('style');

my $codeCss = $self->session->url->extras("yui-webgui/build/code-editor/code.css");
my $out = <<"END_HTML";
<textarea id="$id" name="$name" $extras rows="10" cols="60" style="font-family: monospace; $styleAttr; height: 100%; width: 100%; resize: none;">$value</textarea>
<script type="text/javascript">
(function(){
YAHOO.util.Event.onDOMReady( function () {
var myeditor = new YAHOO.widget.CodeEditor('${id}', { toggleButton: true, handleSubmit: true, css_url: '${codeCss}', height: '${height}px', width: '${width}px', status: true, resize: true });
myeditor.render();
//var myLogReader = new YAHOO.widget.LogReader();
} );
}());
</script>
END_HTML
return $out;
}

1;

0 comments on commit f883d8b

Please sign in to comment.