[Rt-commit] rt branch, 4.2/message-box-type, created. rt-4.2.3-7-ge2bdb73

? sunnavy sunnavy at bestpractical.com
Sun Mar 2 03:00:58 EST 2014


The branch, 4.2/message-box-type has been created
        at  e2bdb73a57166af38f24ece0eb34afe7d3e2582c (commit)

- Log -----------------------------------------------------------------
commit e2bdb73a57166af38f24ece0eb34afe7d3e2582c
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Wed Feb 26 22:04:53 2014 +0800

    add $Type to %ARGS so we can specify the type of the textarea in the caller
    
    by default, the type is controlled by the system config($MessageBoxRichText)
    and user perferences. however, sometimes we want to explicitly set the type no
    matter what system config or the user perference is.
    
    this is initially for the IPs and Addresses textareas in RTIR's ScriptedAction
    tool page(/RTIR/Tools/ScriptedAction.html), where rich texts are not useful at
    all(actually harmful as the backend doesn't handle the rich format).

diff --git a/lib/RT/Interface/Web.pm b/lib/RT/Interface/Web.pm
index 8f690fe..df2e17c 100644
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -105,7 +105,7 @@ sub SquishedJS {
 =cut
 
 sub JSFiles {
-    return qw/
+    return qw{
       jquery-1.9.1.min.js
       jquery_noconflict.js
       jquery-ui-1.10.0.custom.min.js
@@ -127,7 +127,8 @@ sub JSFiles {
       forms.js
       event-registration.js
       late.js
-      /, RT->Config->Get('JSFiles');
+      /static/RichText/ckeditor.js
+      }, RT->Config->Get('JSFiles');
 }
 
 =head2 ClearSquished
diff --git a/lib/RT/Squish/JS.pm b/lib/RT/Squish/JS.pm
index 0c3bd3d..37b9088 100644
--- a/lib/RT/Squish/JS.pm
+++ b/lib/RT/Squish/JS.pm
@@ -76,7 +76,7 @@ sub Squish {
     my $content = "";
 
     for my $file ( RT::Interface::Web->JSFiles ) {
-        my $uri = "/static/js/$file";
+        my $uri = $file =~ m{^/} ? $file : "/static/js/$file";
         my $res = RT::Interface::Web::Handler->GetStatic($uri);
 
         if ($res->is_success) {
diff --git a/share/html/Elements/HeaderJavascript b/share/html/Elements/HeaderJavascript
index 27dada4..4b1abdb 100644
--- a/share/html/Elements/HeaderJavascript
+++ b/share/html/Elements/HeaderJavascript
@@ -55,9 +55,6 @@ $onload => undef
 <script type="text/javascript" src="<%RT->Config->Get('WebPath')%><% $jsfile %>"></script>
 % }
 
-% if ( $RichText and RT->Config->Get('MessageBoxRichText',  $session{'CurrentUser'}) ) {
-<script type="text/javascript" src="<%RT->Config->Get('WebPath')%>/static/RichText/ckeditor.js"></script>
-% }
 <script type="text/javascript"><!--
 jQuery( loadTitleBoxStates );
 % if ( $focus ) {
@@ -66,19 +63,12 @@ jQuery( loadTitleBoxStates );
 % if ( $onload ) {
     jQuery( <% $onload |n %> );
 % }
-
-% if ( $RichText and RT->Config->Get('MessageBoxRichText',  $session{'CurrentUser'})) {
-    jQuery().ready(function ()  { ReplaceAllTextareas() });
-% }
 --></script>
-<%ARGS>
-$RichText => 1
-</%ARGS>
 <%INIT>
 
 my @js_files;
 if ( RT->Config->Get('DevelMode') ) {
-    @js_files = map { "/static/js/$_" } RT::Interface::Web->JSFiles();
+    @js_files = map { $_ =~ m{^/} ? $_ : "/static/js/$_" } RT::Interface::Web->JSFiles();
 }
 else {
     my $key = RT::Interface::Web::SquishedJS()->Key;
diff --git a/share/html/Elements/MessageBox b/share/html/Elements/MessageBox
index 0749514..3bf390b 100644
--- a/share/html/Elements/MessageBox
+++ b/share/html/Elements/MessageBox
@@ -45,29 +45,29 @@
 %# those contributions and any derivatives thereof.
 %#
 %# END BPS TAGGED BLOCK }}}
-<textarea autocomplete="off" class="messagebox" <% $width_attr %>="<% $Width %>" rows="<% $Height %>" <% $wrap_type |n %> name="<% $Name %>" id="<% $Name %>">\
+<textarea autocomplete="off" class="messagebox <% $Type eq 'text/html' ? 'richtext' : '' %>" <% $width_attr %>="<% $Width %>" rows="<% $Height %>" <% $wrap_type |n %> name="<% $Name %>" id="<% $Name %>">\
 % $m->comp('/Articles/Elements/IncludeArticle', %ARGS) if $IncludeArticle;
 % $m->callback( %ARGS, SignatureRef => \$signature );
 <% $Default || '' %><% $message %><% $signature %></textarea>
 % $m->callback( %ARGS, CallbackName => 'AfterTextArea' );
-% if ($type eq 'text/html') {
-<input type="text" style="display:none" name="<% $Name %>Type" id="<% $Name %>Type" value="<% $m->request_args->{$Name."Type"}||$type %>" />
+% if ($Type eq 'text/html') {
+<input type="text" style="display:none" name="<% $Name %>Type" id="<% $Name %>Type" value="<% $m->request_args->{$Name."Type"}||$Type %>" />
 % }
 <%INIT>
 
-my $type = RT->Config->Get('MessageBoxRichText',  $session{'CurrentUser'}) ? 'text/html' : 'text/plain';
+$Type ||= RT->Config->Get('MessageBoxRichText',  $session{'CurrentUser'}) ? 'text/html' : 'text/plain';
 my $message = '';
 
 if ( $QuoteTransaction ) {
     my $transaction = RT::Transaction->new( $session{'CurrentUser'} );
     $transaction->Load( $QuoteTransaction );
-    $message = $transaction->Content( Quote => 1, Type  => $type );
+    $message = $transaction->Content( Quote => 1, Type  => $Type );
 }
 
 my $signature = '';
 if ( $IncludeSignature and my $text = $session{'CurrentUser'}->UserObj->Signature ) {
     $signature = "-- \n". $text;
-    if ($type eq 'text/html') {
+    if ($Type eq 'text/html') {
         $signature =~ s/&/&/g;
         $signature =~ s/</</g;
         $signature =~ s/>/>/g;
@@ -79,7 +79,7 @@ if ( $IncludeSignature and my $text = $session{'CurrentUser'}->UserObj->Signatur
 }
 
 # wrap="something" seems to really break IE + richtext
-my $wrap_type = $type eq 'text/html' ? '' : 'wrap="soft"';
+my $wrap_type = $Type eq 'text/html' ? '' : 'wrap="soft"';
 
 # If there's no cols specified, we want to set the width to 100% in CSS
 my $width_attr;
@@ -99,4 +99,5 @@ $Width            => RT->Config->Get('MessageBoxWidth', $session{'CurrentUser'}
 $Height           => RT->Config->Get('MessageBoxHeight', $session{'CurrentUser'} ) || 15
 $IncludeSignature => RT->Config->Get('MessageBoxIncludeSignature');
 $IncludeArticle   => 1;
+$Type             => RT->Config->Get('MessageBoxRichText',  $session{'CurrentUser'}) ? 'text/html' : 'text/plain';
 </%ARGS>
diff --git a/share/static/js/util.js b/share/static/js/util.js
index d4a53c8..003109b 100644
--- a/share/static/js/util.js
+++ b/share/static/js/util.js
@@ -243,7 +243,7 @@ function ReplaceAllTextareas() {
 
     for (var i=0; i < allTextAreas.length; i++) {
         var textArea = allTextAreas[i];
-        if (jQuery(textArea).hasClass("messagebox")) {
+        if (jQuery(textArea).hasClass("messagebox richtext")) {
             // Turn the original plain text content into HTML
             var type = jQuery("#"+textArea.name+"Type");
             if (type.val() != "text/html")
@@ -341,4 +341,5 @@ jQuery(function() {
             return true;
         });
     });
+    ReplaceAllTextareas();
 });

-----------------------------------------------------------------------


More information about the rt-commit mailing list