[Rt-commit] rt branch, 4.2/static-handler, created. rt-4.1.5-95-gcf145cf

Alex Vandiver alexmv at bestpractical.com
Wed Dec 19 20:52:55 EST 2012


The branch, 4.2/static-handler has been created
        at  cf145cf40812c36b194bbe379d41a2038e694afe (commit)

- Log -----------------------------------------------------------------
commit f7d9c8a458598f1afb0cbc754ae699330046b361
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Mon May 16 14:14:24 2011 +0800

    Add a share/static directory

diff --git a/Makefile.in b/Makefile.in
index 28450fa..9db52cf 100755
--- a/Makefile.in
+++ b/Makefile.in
@@ -108,11 +108,13 @@ RT_VAR_PATH		=	@RT_VAR_PATH_R@
 RT_DOC_PATH		=	@RT_DOC_PATH_R@
 RT_FONT_PATH		=	@RT_FONT_PATH_R@
 RT_LEXICON_PATH		=	@RT_LEXICON_PATH_R@
+RT_STATIC_PATH		=	@RT_STATIC_PATH_R@
 RT_LOCAL_PATH		=	@RT_LOCAL_PATH_R@
 LOCAL_PLUGIN_PATH	=	@RT_LOCAL_PATH_R@/plugins
 LOCAL_ETC_PATH		=	@LOCAL_ETC_PATH_R@
 LOCAL_LIB_PATH		=	@LOCAL_LIB_PATH_R@
 LOCAL_LEXICON_PATH	=	@LOCAL_LEXICON_PATH_R@
+LOCAL_STATIC_PATH	=	@LOCAL_STATIC_PATH_R@
 MASON_HTML_PATH		=	@MASON_HTML_PATH_R@
 MASON_LOCAL_HTML_PATH	=	@MASON_LOCAL_HTML_PATH_R@
 MASON_DATA_PATH		=	@MASON_DATA_PATH_R@
@@ -303,15 +305,21 @@ fixperms:
 	chmod -R  u+rwX,go-w,go+rX 	$(DESTDIR)$(MASON_HTML_PATH) \
 					$(DESTDIR)$(MASON_LOCAL_HTML_PATH) \
 					$(DESTDIR)$(RT_LEXICON_PATH) \
-					$(DESTDIR)$(LOCAL_LEXICON_PATH)
+					$(DESTDIR)$(LOCAL_LEXICON_PATH) \
+					$(DESTDIR)$(RT_STATIC_PATH) \
+					$(DESTDIR)$(LOCAL_STATIC_PATH)
 	chown -R $(LIBS_OWNER) 	$(DESTDIR)$(MASON_HTML_PATH) \
 				$(DESTDIR)$(MASON_LOCAL_HTML_PATH) \
 				$(DESTDIR)$(RT_LEXICON_PATH) \
-				$(DESTDIR)$(LOCAL_LEXICON_PATH)
+				$(DESTDIR)$(LOCAL_LEXICON_PATH) \
+				$(DESTDIR)$(RT_STATIC_PATH) \
+				$(DESTDIR)$(LOCAL_STATIC_PATH)
 	chgrp -R $(LIBS_GROUP) 	$(DESTDIR)$(MASON_HTML_PATH) \
 				$(DESTDIR)$(MASON_LOCAL_HTML_PATH) \
 				$(DESTDIR)$(RT_LEXICON_PATH) \
-				$(DESTDIR)$(LOCAL_LEXICON_PATH)
+				$(DESTDIR)$(LOCAL_LEXICON_PATH) \
+				$(DESTDIR)$(RT_STATIC_PATH) \
+				$(DESTDIR)$(LOCAL_STATIC_PATH)
 
 	# Make the web ui's data dir writable
 	chmod 0770  	$(DESTDIR)$(MASON_DATA_PATH) \
@@ -325,6 +333,7 @@ dirs:
 	$(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LOG_PATH)
 	$(INSTALL) -m 0755 -d $(DESTDIR)$(RT_FONT_PATH)
 	$(INSTALL) -m 0755 -d $(DESTDIR)$(RT_LEXICON_PATH)
+	$(INSTALL) -m 0755 -d $(DESTDIR)$(RT_STATIC_PATH)
 	$(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)
 	$(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)/cache
 	$(INSTALL) -m 0770 -d $(DESTDIR)$(MASON_DATA_PATH)/etc
@@ -336,10 +345,11 @@ dirs:
 	$(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_LIB_PATH)
 	$(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_PLUGIN_PATH)
 	$(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_LEXICON_PATH)
+	$(INSTALL) -m 0755 -d $(DESTDIR)$(LOCAL_STATIC_PATH)
 
 install: testdeps config-install dirs files-install fixperms instruct
 
-files-install: libs-install etc-install config-install bin-install sbin-install html-install local-install doc-install font-install po-install
+files-install: libs-install etc-install config-install bin-install sbin-install html-install local-install doc-install font-install po-install static-install
 
 config-install:
 @COMMENT_INPLACE_LAYOUT@	$(INSTALL) -m 0755 -o $(BIN_OWNER) -g $(RTGROUP) -d $(DESTDIR)$(CONFIG_FILE_PATH)
@@ -406,6 +416,14 @@ po-install:
 @COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0644 "share/po/$$file" "$(DESTDIR)$(RT_LEXICON_PATH)/$$file" ; \
 @COMMENT_INPLACE_LAYOUT@	done
 
+static-install:
+ at COMMENT_INPLACE_LAYOUT@	[ -d $(DESTDIR)$(RT_STATIC_PATH) ] || $(INSTALL) -m 0755 -d $(DESTDIR)$(RT_STATIC_PATH)
+ at COMMENT_INPLACE_LAYOUT@	-( cd share/static && find . -type d -print ) | while read dir ; do \
+ at COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0755 -d "$(DESTDIR)$(RT_STATIC_PATH)/$$dir" ; \
+ at COMMENT_INPLACE_LAYOUT@	done
+ at COMMENT_INPLACE_LAYOUT@	-( cd share/static && find . -type f -print ) | while read file ; do \
+ at COMMENT_INPLACE_LAYOUT@	    $(INSTALL) -m 0644 "share/static/$$file" "$(DESTDIR)$(RT_STATIC_PATH)/$$file" ; \
+ at COMMENT_INPLACE_LAYOUT@	done
 
 
 doc-install:
@@ -455,6 +473,12 @@ local-install:
 	-( cd local/po && find . -type f -print ) | while read file ; do \
 	    $(INSTALL) -m 0644 "local/po/$$file" "$(DESTDIR)$(LOCAL_LEXICON_PATH)/$$file" ; \
 	done
+	-( cd local/static && find . -type d -print ) | while read dir ; do \
+	    $(INSTALL) -m 0755 -d "$(DESTDIR)$(LOCAL_STATIC_PATH)/$$dir" ; \
+	done
+	-( cd local/static && find . -type f -print ) | while read file ; do \
+	    $(INSTALL) -m 0644 "local/static/$$file" "$(DESTDIR)$(LOCAL_STATIC_PATH)/$$file" ; \
+	done
 	-( cd local/etc && find . -type d -print ) | while read dir ; do \
 	    $(INSTALL) -m 0755 -d "$(DESTDIR)$(LOCAL_ETC_PATH)/$$dir" ; \
 	done
diff --git a/aclocal.m4 b/aclocal.m4
index d427e13..793644f 100755
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -91,9 +91,9 @@ AC_DEFUN([RT_LAYOUT],[
 			changequote({,})
 			for var in prefix exec_prefix bindir sbindir \
 				 sysconfdir mandir libdir datadir htmldir fontdir\
-				 lexdir localstatedir logfiledir masonstatedir \
+				 lexdir staticdir localstatedir logfiledir masonstatedir \
 				 sessionstatedir customdir custometcdir customhtmldir \
-				 customlexdir customplugindir customlibdir manualdir; do
+				 customlexdir customstaticdir customplugindir customlibdir manualdir; do
 				eval "val=\"\$$var\""
 				val=`echo $val | sed -e 's:\(.\)/*$:\1:'`
 				val=`echo $val | 
@@ -114,6 +114,7 @@ AC_DEFUN([RT_LAYOUT],[
 	RT_SUBST_EXPANDED_ARG(mandir)
 	RT_SUBST_EXPANDED_ARG(libdir)
 	RT_SUBST_EXPANDED_ARG(lexdir)
+	RT_SUBST_EXPANDED_ARG(staticdir)
 	RT_SUBST_EXPANDED_ARG(datadir)
 	RT_SUBST_EXPANDED_ARG(htmldir)
 	RT_SUBST_EXPANDED_ARG(fontdir)
@@ -128,6 +129,7 @@ AC_DEFUN([RT_LAYOUT],[
 	RT_SUBST_EXPANDED_ARG(customplugindir)
 	RT_SUBST_EXPANDED_ARG(customhtmldir)
 	RT_SUBST_EXPANDED_ARG(customlexdir)
+	RT_SUBST_EXPANDED_ARG(customstaticdir)
 	RT_SUBST_EXPANDED_ARG(customlibdir)
 ])dnl
 
diff --git a/config.layout b/config.layout
index e356e7f..decebae 100755
--- a/config.layout
+++ b/config.layout
@@ -11,7 +11,7 @@
 ##  The following variables must _all_ be set:
 ##	prefix exec_prefix bindir sbindir sysconfdir mandir libdir
 ##	datadir htmldir localstatedir logfiledir masonstatedir fontdir
-##	sessionstatedir customdir customhtmldir customlexdir
+##	sessionstatedir customdir customhtmldir customlexdir customstaticdir
 ##  (This can be seen in m4/rt_layout.m4.)
 ##
 
@@ -29,6 +29,7 @@
   htmldir:		${datadir}/html
   fontdir:		${datadir}/fonts
   lexdir:		${datadir}/po
+  staticdir:	${datadir}/static
   manualdir:		${prefix}/docs
   localstatedir:	${prefix}/var
   logfiledir:		${localstatedir}/log
@@ -38,6 +39,7 @@
   custometcdir:		${customdir}/etc
   customhtmldir:	${customdir}/html
   customlexdir:		${customdir}/po
+  customstaticdir:	${customdir}/static
   customlibdir:		${customdir}/lib
   customplugindir:  ${customdir}/plugins
 </Layout>
@@ -53,6 +55,7 @@
   datadir:		${prefix}/share
   htmldir:		${datadir}/html
   lexdir:		${datadir}/po
+  staticdir:	${datadir}/static
   fontdir:		${datadir}/fonts
   manualdir:		${prefix}/docs
   localstatedir:	${prefix}/var
@@ -63,6 +66,7 @@
   custometcdir:		${customdir}/etc
   customhtmldir:	${customdir}/html
   customlexdir:		${customdir}/po
+  customstaticdir:	${customdir}/static
   customlibdir:		${customdir}/lib
   customplugindir:  ${customdir}/plugins
 </Layout>
@@ -81,6 +85,7 @@
   plugindir:		${datadir}/plugins
   htmldir:		${datadir}/html
   lexdir:		${datadir}/po
+  staticdir:	${datadir}/static
   fontdir:		${datadir}/fonts
   manualdir:		${datadir}/doc
   localstatedir:	/var
@@ -92,6 +97,7 @@
   custometcdir:		${customdir}/etc
   customhtmldir:	${customdir}/html
   customlexdir:		${customdir}/po
+  customstaticdir:	${customdir}/static
   customlibdir:		${customdir}/lib
   customplugindir:  ${customdir}/plugins
 </Layout>
@@ -108,6 +114,7 @@
   datadir:		${prefix}/share+
   htmldir:		${datadir}/html
   lexdir:		${datadir}/po
+  staticdir:	${datadir}/static
   fontdir:		${datadir}/fonts
   manualdir:		${prefix}/share/doc+
   logfiledir:		/var/log
@@ -118,6 +125,7 @@
   custometcdir:		${customdir}/local/etc
   customhtmldir:	${customdir}/local/html
   customlexdir:		${customdir}/local/po
+  customstaticdir:	${customdir}/static
   customlibdir:		${customdir}/local/lib
   customplugindir:  ${customdir}/local/plugins
 </Layout>
@@ -135,6 +143,7 @@
   htmldir:		${datadir}/html
   fontdir:		${datadir}/fonts
   lexdir:		${datadir}/po
+  staticdir:	${datadir}/static
   manualdir:		${datadir}/doc
   localstatedir:	${prefix}/var
   logfiledir:		${localstatedir}/log
@@ -144,6 +153,7 @@
   custometcdir:		${customdir}/etc
   customhtmldir:	${customdir}/html
   customlexdir:		${customdir}/po
+  customstaticdir:	${customdir}/static
   customlibdir:		${customdir}/lib
   customplugindir:  ${customdir}/plugins
 </Layout>
@@ -161,6 +171,7 @@
   htmldir:		${datadir}/html
   fontdir:		${datadir}/fonts
   lexdir:		${datadir}/po
+  staticdir:	${datadir}/static
   manualdir:		${datadir}/doc
   plugindir:		${datadir}/plugins
   localstatedir:	/var
@@ -171,6 +182,7 @@
   custometcdir:		${customdir}/etc
   customhtmldir:	${customdir}/html
   customlexdir:		${customdir}/po
+  customstaticdir:	${customdir}/static
   customlibdir:		${customdir}/lib
   customplugindir:  ${customdir}/plugins
 </Layout>
@@ -189,6 +201,7 @@
   htmldir:		${datadir}/html
   fontdir:		${datadir}/fonts
   lexdir:		${datadir}/po
+  staticdir:	${datadir}/static
   manualdir:	docs
   localstatedir:	var
   logfiledir:		${localstatedir}/log
@@ -198,6 +211,7 @@
   custometcdir:		${customdir}/etc
   customhtmldir:	${customdir}/html
   customlexdir:		${customdir}/po
+  customstaticdir:	${customdir}/static
   customlibdir:		${customdir}/lib
   customplugindir:  ${customdir}/plugins
 </Layout>
@@ -214,6 +228,7 @@
   htmldir:		${datadir}/html
   fontdir:		${datadir}/fonts
   lexdir:		${datadir}/po
+  staticdir:	${datadir}/static
   manualdir:	docs/rt
   localstatedir:	var/rt/
   logfiledir:		${localstatedir}/log
@@ -223,6 +238,7 @@
   custometcdir:		${customdir}/etc
   customhtmldir:	${customdir}/html
   customlexdir:		${customdir}/po
+  customstaticdir:	${customdir}/static
   customlibdir:		${customdir}/lib
   customplugindir:  ${customdir}/plugins
 </Layout>
diff --git a/configure.ac b/configure.ac
index ce35320..ee56d62 100755
--- a/configure.ac
+++ b/configure.ac
@@ -336,6 +336,7 @@ AC_SUBST([RT_DOC_PATH],			${exp_manualdir})
 AC_SUBST([RT_LOCAL_PATH],		${exp_customdir})
 AC_SUBST([RT_LIB_PATH],			${exp_libdir})
 AC_SUBST([RT_LEXICON_PATH],			${exp_lexdir})
+AC_SUBST([RT_STATIC_PATH],			${exp_staticdir})
 AC_SUBST([RT_ETC_PATH],			${exp_sysconfdir})
 AC_SUBST([CONFIG_FILE_PATH],		${exp_sysconfdir})
 AC_SUBST([RT_BIN_PATH],			${exp_bindir})
@@ -350,6 +351,7 @@ AC_SUBST([MASON_HTML_PATH],		${exp_htmldir})
 AC_SUBST([LOCAL_ETC_PATH],		${exp_custometcdir})
 AC_SUBST([MASON_LOCAL_HTML_PATH],	${exp_customhtmldir})
 AC_SUBST([LOCAL_LEXICON_PATH],		${exp_customlexdir})
+AC_SUBST([LOCAL_STATIC_PATH],		${exp_customstaticdir})
 AC_SUBST([LOCAL_LIB_PATH],		${exp_customlibdir})
 AC_SUBST([LOCAL_PLUGIN_PATH],		${exp_customplugindir})
 AC_SUBST([RT_LOG_PATH],			${exp_logfiledir})
@@ -367,6 +369,7 @@ AC_SUBST([RT_VAR_PATH_R],			${exp_prefix}/${exp_localstatedir})
 AC_SUBST([RT_MAN_PATH_R],			${exp_prefix}/${exp_mandir})
 AC_SUBST([RT_FONT_PATH_R],			${exp_prefix}/${exp_fontdir})
 AC_SUBST([RT_LEXICON_PATH_R],			${exp_prefix}/${exp_lexdir})
+AC_SUBST([RT_STATIC_PATH_R],			${exp_prefix}/${exp_staticdir})
 AC_SUBST([RT_PLUGIN_PATH_R],		${exp_prefix}/${exp_plugindir})
 AC_SUBST([MASON_DATA_PATH_R],		${exp_prefix}/${exp_masonstatedir})
 AC_SUBST([MASON_SESSION_PATH_R],		${exp_prefix}/${exp_sessionstatedir})
@@ -374,6 +377,7 @@ AC_SUBST([MASON_HTML_PATH_R],		${exp_prefix}/${exp_htmldir})
 AC_SUBST([LOCAL_ETC_PATH_R],		${exp_prefix}/${exp_custometcdir})
 AC_SUBST([MASON_LOCAL_HTML_PATH_R],	${exp_prefix}/${exp_customhtmldir})
 AC_SUBST([LOCAL_LEXICON_PATH_R],		${exp_prefix}/${exp_customlexdir})
+AC_SUBST([LOCAL_STATIC_PATH_R],		${exp_prefix}/${exp_customstaticdir})
 AC_SUBST([LOCAL_LIB_PATH_R],		${exp_prefix}/${exp_customlibdir})
 AC_SUBST([LOCAL_PLUGIN_PATH_R],		${exp_prefix}/${exp_customplugindir})
 AC_SUBST([RT_LOG_PATH_R],			${exp_prefix}/${exp_logfiledir})
@@ -383,6 +387,7 @@ AC_SUBST([RT_DOC_PATH_R],			${exp_manualdir})
 AC_SUBST([RT_LOCAL_PATH_R],		${exp_customdir})
 AC_SUBST([RT_LIB_PATH_R],			${exp_libdir})
 AC_SUBST([RT_LEXICON_PATH_R],			${exp_lexdir})
+AC_SUBST([RT_STATIC_PATH_R],			${exp_staticdir})
 AC_SUBST([RT_ETC_PATH_R],			${exp_sysconfdir})
 AC_SUBST([RT_PLUGIN_PATH_R],		${exp_plugindir})
 AC_SUBST([CONFIG_FILE_PATH_R],		${exp_sysconfdir})
@@ -397,6 +402,7 @@ AC_SUBST([MASON_HTML_PATH_R],		${exp_htmldir})
 AC_SUBST([LOCAL_ETC_PATH_R],		${exp_custometcdir})
 AC_SUBST([MASON_LOCAL_HTML_PATH_R],	${exp_customhtmldir})
 AC_SUBST([LOCAL_LEXICON_PATH_R],		${exp_customlexdir})
+AC_SUBST([LOCAL_STATIC_PATH_R],		${exp_customstaticdir})
 AC_SUBST([LOCAL_PLUGIN_PATH_R],		${exp_customplugindir})
 AC_SUBST([LOCAL_LIB_PATH_R],		${exp_customlibdir})
 AC_SUBST([RT_LOG_PATH_R],			${exp_logfiledir})
diff --git a/lib/RT.pm b/lib/RT.pm
index 5c37d72..0db0bee 100644
--- a/lib/RT.pm
+++ b/lib/RT.pm
@@ -63,11 +63,13 @@ use vars qw($BasePath
  $SbinPath
  $VarPath
  $LexiconPath
+ $StaticPath
  $PluginPath
  $LocalPath
  $LocalEtcPath
  $LocalLibPath
  $LocalLexiconPath
+ $LocalStaticPath
  $LocalPluginPath
  $MasonComponentRoot
  $MasonLocalComponentRoot
diff --git a/lib/RT/Generated.pm.in b/lib/RT/Generated.pm.in
index ac15bde..f95fe73 100644
--- a/lib/RT/Generated.pm.in
+++ b/lib/RT/Generated.pm.in
@@ -60,11 +60,13 @@ $BinPath = '@RT_BIN_PATH@';
 $SbinPath = '@RT_SBIN_PATH@';
 $VarPath = '@RT_VAR_PATH@';
 $LexiconPath = '@RT_LEXICON_PATH@';
+$StaticPath = '@RT_STATIC_PATH@';
 $PluginPath = '@RT_PLUGIN_PATH@';
 $LocalPath = '@RT_LOCAL_PATH@';
 $LocalEtcPath = '@LOCAL_ETC_PATH@';
 $LocalLibPath        =    '@LOCAL_LIB_PATH@';
 $LocalLexiconPath = '@LOCAL_LEXICON_PATH@';
+$LocalStaticPath = '@LOCAL_STATIC_PATH@';
 $LocalPluginPath = '@LOCAL_PLUGIN_PATH@';
 # $MasonComponentRoot is where your rt instance keeps its mason html files
 $MasonComponentRoot = '@MASON_HTML_PATH@';

commit 252ae2a518382502b2690ddbdaf67c7738610a02
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Dec 19 20:48:22 2012 -0500

    Adjust closing brace location for sanity
    
    Previously, the definition of _psgi_response_cb lay _inside_ of the
    PSGIApp function, due to an extra '}' hidden in the former, and a
    missing '}' in the latter.  Because package functions aren't lexically
    scoped, this worked.

diff --git a/lib/RT/Interface/Web/Handler.pm b/lib/RT/Interface/Web/Handler.pm
index 3aa9bf2..78bb305 100644
--- a/lib/RT/Interface/Web/Handler.pm
+++ b/lib/RT/Interface/Web/Handler.pm
@@ -269,7 +269,8 @@ sub PSGIApp {
                                         sub {
                                             $self->CleanupRequest()
                                         });
-};
+    };
+}
 
 sub _psgi_response_cb {
     my $self = shift;
@@ -293,7 +294,6 @@ sub _psgi_response_cb {
                      return $_[0];
                  };
              });
-    }
 }
 
 1;

commit 90dd497f03f503d3f8594105a7b7659ff323ab28
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Dec 19 20:21:45 2012 -0500

    Add a core static handler for /static/
    
    This directory will contain files, such as images, which should not be
    run through Mason, and were previously under /NoAuth/.

diff --git a/lib/RT/Interface/Web/Handler.pm b/lib/RT/Interface/Web/Handler.pm
index 78bb305..2ba5531 100644
--- a/lib/RT/Interface/Web/Handler.pm
+++ b/lib/RT/Interface/Web/Handler.pm
@@ -215,6 +215,7 @@ sub HTML::Mason::Exception::as_rt_error {
 
 use RT::Interface::Web::Handler;
 use CGI::Emulate::PSGI;
+use Plack::Builder;
 use Plack::Request;
 use Plack::Response;
 use Plack::Util;
@@ -230,7 +231,9 @@ sub PSGIApp {
 
     $self->InitSessionDir;
 
-    return sub {
+    my $builder = Plack::Builder->new();
+
+    my $mason = sub {
         my $env = shift;
         RT::ConnectToDatabase() unless RT->InstallMode;
 
@@ -270,6 +273,17 @@ sub PSGIApp {
                                             $self->CleanupRequest()
                                         });
     };
+
+    my @system_static = ($RT::LocalStaticPath, $RT::StaticPath);
+    for my $root (grep {$_ and -d $_} @system_static) {
+        $builder->add_middleware(
+            'Plack::Middleware::Static',
+            path         => sub { s!^/static/!! },
+            root         => $root,
+            pass_through => 1,
+        );
+    }
+    return $builder->to_app($mason);
 }
 
 sub _psgi_response_cb {

commit 5ae3798bea0fee5e83bbb071a6fed5fc065f7e1e
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Dec 19 20:23:29 2012 -0500

    Static directories for plugins

diff --git a/lib/RT/Interface/Web/Handler.pm b/lib/RT/Interface/Web/Handler.pm
index 2ba5531..33bfb3d 100644
--- a/lib/RT/Interface/Web/Handler.pm
+++ b/lib/RT/Interface/Web/Handler.pm
@@ -274,7 +274,13 @@ sub PSGIApp {
                                         });
     };
 
-    my @system_static = ($RT::LocalStaticPath, $RT::StaticPath);
+
+    my @system_static;
+    for my $plugin ( RT->Config->Get('Plugins') ) {
+        next unless $plugin;
+        push @system_static, RT::Plugin->new( name => $plugin )->StaticDir;
+    }
+    push @system_static, $RT::LocalStaticPath, $RT::StaticPath;
     for my $root (grep {$_ and -d $_} @system_static) {
         $builder->add_middleware(
             'Plack::Middleware::Static',
diff --git a/lib/RT/Plugin.pm b/lib/RT/Plugin.pm
index 10eb837..d66ee81 100644
--- a/lib/RT/Plugin.pm
+++ b/lib/RT/Plugin.pm
@@ -90,7 +90,7 @@ Takes a name of sub directory and returns its full path, for example:
 
     my $plugin_etc_dir = $plugin->Path('etc');
 
-See also L</ComponentRoot>, L</PoDir> and other shortcut methods.
+See also L</ComponentRoot>, L</StaticDir>, L</PoDir> and other shortcut methods.
 
 =cut
 
@@ -120,6 +120,14 @@ Returns the directory this plugin has installed its L<HTML::Mason> templates int
 
 sub ComponentRoot { return $_[0]->Path('html') }
 
+=head2 StaticDir
+
+Returns the directory this plugin has installed its static files into
+
+=cut
+
+sub StaticDir { return $_[0]->Path('static') }
+
 =head2 PoDir
 
 Returns the directory this plugin has installed its message catalogs into.

commit e1204625879761abcee9bb77287b932039d8cdb7
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Dec 19 20:24:08 2012 -0500

    Allow for arbitrary extra static roots

diff --git a/etc/RT_Config.pm.in b/etc/RT_Config.pm.in
index 3228124..c3c8aa8 100755
--- a/etc/RT_Config.pm.in
+++ b/etc/RT_Config.pm.in
@@ -127,6 +127,27 @@ C<Set(@Plugins, (qw(Extension::QuickDelete RT::Extension::CommandByMail)));>
 
 Set(@Plugins, ());
 
+=item C<@StaticRoots>
+
+Set C<@StaticRoots> to serve some paths with static handler.
+It uses the same arguments as in C<Plack::Middleware::Static>.
+
+Example:
+
+C<<<
+Set(
+    @StaticRoots,
+    {
+        path => qr{^/static/},
+        root => '/local/path/to/static/parent',
+    },
+);
+>>>
+
+=cut
+
+Set( @StaticRoots, () );
+
 =back
 
 
diff --git a/lib/RT/Interface/Web/Handler.pm b/lib/RT/Interface/Web/Handler.pm
index 33bfb3d..847db71 100644
--- a/lib/RT/Interface/Web/Handler.pm
+++ b/lib/RT/Interface/Web/Handler.pm
@@ -275,6 +275,22 @@ sub PSGIApp {
     };
 
 
+    for my $static ( RT->Config->Get('StaticRoots') ) {
+        if ( ref $static && ref $static eq 'HASH' ) {
+            if ( ref $static eq 'HASH' ) {
+                $builder->add_middleware(
+                    'Plack::Middleware::Static',
+                    pass_through => 1,
+                    %$static
+                );
+            }
+        }
+        else {
+            $RT::Logger->error(
+                "Invalid config StaticRoots: item can only be a hashref" );
+        }
+    }
+
     my @system_static;
     for my $plugin ( RT->Config->Get('Plugins') ) {
         next unless $plugin;

commit eb02f4b84d77dcbd2ffbdbd1079be0c8a15e33dd
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Fri May 13 14:43:12 2011 +0800

    Move files to under share/static, removing now-useless dhandler and autohandlers

diff --git a/share/html/NoAuth/RichText/dhandler b/share/html/NoAuth/RichText/dhandler
deleted file mode 100644
index 97fad75..0000000
--- a/share/html/NoAuth/RichText/dhandler
+++ /dev/null
@@ -1,69 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%INIT>
-use File::Basename;
-my $arg = $m->dhandler_arg;
-my $file = dirname($m->current_comp->source_file) . '/ckeditor/' . $arg;
-return $m->decline unless -f $file && -r _;
-
-my $suffix = $1 if $file =~ /([^.]+)$/;
-
-my $type = {qw(
-    xml     text/xml
-    html    text/html
-    js      application/javascript
-    css     text/css
-    gif     image/gif
-    jpg     image/jpeg
-    png     image/png
-)}->{$suffix} || 'application/octet-stream';
-
-RT::Interface::Web->SendStaticFile( File => $file, Type => $type );
-
-$m->abort;
-</%INIT>
diff --git a/share/html/NoAuth/css/aileron/images/dhandler b/share/html/NoAuth/css/aileron/images/dhandler
deleted file mode 100644
index 834765c..0000000
--- a/share/html/NoAuth/css/aileron/images/dhandler
+++ /dev/null
@@ -1,55 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%INIT>
-use File::Basename;
-my $arg = $m->dhandler_arg;
-my $file = dirname($m->current_comp->source_file) . '/source/'. $arg;
-RT::Interface::Web->SendStaticFile( File => $file );
-
-$m->abort;
-</%INIT>
diff --git a/share/html/NoAuth/css/ballard/images/dhandler b/share/html/NoAuth/css/ballard/images/dhandler
deleted file mode 100644
index 834765c..0000000
--- a/share/html/NoAuth/css/ballard/images/dhandler
+++ /dev/null
@@ -1,55 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%INIT>
-use File::Basename;
-my $arg = $m->dhandler_arg;
-my $file = dirname($m->current_comp->source_file) . '/source/'. $arg;
-RT::Interface::Web->SendStaticFile( File => $file );
-
-$m->abort;
-</%INIT>
diff --git a/share/html/NoAuth/css/web2/images/dhandler b/share/html/NoAuth/css/web2/images/dhandler
deleted file mode 100644
index 834765c..0000000
--- a/share/html/NoAuth/css/web2/images/dhandler
+++ /dev/null
@@ -1,55 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%INIT>
-use File::Basename;
-my $arg = $m->dhandler_arg;
-my $file = dirname($m->current_comp->source_file) . '/source/'. $arg;
-RT::Interface::Web->SendStaticFile( File => $file );
-
-$m->abort;
-</%INIT>
diff --git a/share/html/NoAuth/images/autohandler b/share/html/NoAuth/images/autohandler
deleted file mode 100644
index 2a33964..0000000
--- a/share/html/NoAuth/images/autohandler
+++ /dev/null
@@ -1,55 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%INIT>
-# This autohandler will spit out RT's images if the user hasn't 
-# properly configured their webserver to stop RT from passing 
-# images through the mason handler.
-my $file = $m->base_comp->source_file;
-my $relfile = $m->base_comp->path;
-RT::Interface::Web->SendStaticFile( File => $file, RelativeFile => $relfile );
-</%INIT>
diff --git a/share/html/NoAuth/RichText/ckeditor/LICENSE.html b/share/static/RichText/LICENSE.html
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/LICENSE.html
rename to share/static/RichText/LICENSE.html
diff --git a/share/html/NoAuth/RichText/ckeditor/adapters/jquery.js b/share/static/RichText/adapters/jquery.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/adapters/jquery.js
rename to share/static/RichText/adapters/jquery.js
diff --git a/share/html/NoAuth/RichText/ckeditor/ckeditor.js b/share/static/RichText/ckeditor.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/ckeditor.js
rename to share/static/RichText/ckeditor.js
diff --git a/share/html/NoAuth/RichText/ckeditor/config.js b/share/static/RichText/config.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/config.js
rename to share/static/RichText/config.js
diff --git a/share/html/NoAuth/RichText/ckeditor/contents.css b/share/static/RichText/contents.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/contents.css
rename to share/static/RichText/contents.css
diff --git a/share/html/NoAuth/RichText/ckeditor/images/spacer.gif b/share/static/RichText/images/spacer.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/images/spacer.gif
rename to share/static/RichText/images/spacer.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/_languages.js b/share/static/RichText/lang/_languages.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/_languages.js
rename to share/static/RichText/lang/_languages.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/_translationstatus.txt b/share/static/RichText/lang/_translationstatus.txt
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/_translationstatus.txt
rename to share/static/RichText/lang/_translationstatus.txt
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/af.js b/share/static/RichText/lang/af.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/af.js
rename to share/static/RichText/lang/af.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/ar.js b/share/static/RichText/lang/ar.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/ar.js
rename to share/static/RichText/lang/ar.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/bg.js b/share/static/RichText/lang/bg.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/bg.js
rename to share/static/RichText/lang/bg.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/bn.js b/share/static/RichText/lang/bn.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/bn.js
rename to share/static/RichText/lang/bn.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/bs.js b/share/static/RichText/lang/bs.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/bs.js
rename to share/static/RichText/lang/bs.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/ca.js b/share/static/RichText/lang/ca.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/ca.js
rename to share/static/RichText/lang/ca.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/cs.js b/share/static/RichText/lang/cs.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/cs.js
rename to share/static/RichText/lang/cs.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/cy.js b/share/static/RichText/lang/cy.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/cy.js
rename to share/static/RichText/lang/cy.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/da.js b/share/static/RichText/lang/da.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/da.js
rename to share/static/RichText/lang/da.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/de.js b/share/static/RichText/lang/de.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/de.js
rename to share/static/RichText/lang/de.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/el.js b/share/static/RichText/lang/el.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/el.js
rename to share/static/RichText/lang/el.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/en-au.js b/share/static/RichText/lang/en-au.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/en-au.js
rename to share/static/RichText/lang/en-au.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/en-ca.js b/share/static/RichText/lang/en-ca.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/en-ca.js
rename to share/static/RichText/lang/en-ca.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/en-gb.js b/share/static/RichText/lang/en-gb.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/en-gb.js
rename to share/static/RichText/lang/en-gb.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/en.js b/share/static/RichText/lang/en.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/en.js
rename to share/static/RichText/lang/en.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/eo.js b/share/static/RichText/lang/eo.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/eo.js
rename to share/static/RichText/lang/eo.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/es.js b/share/static/RichText/lang/es.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/es.js
rename to share/static/RichText/lang/es.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/et.js b/share/static/RichText/lang/et.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/et.js
rename to share/static/RichText/lang/et.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/eu.js b/share/static/RichText/lang/eu.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/eu.js
rename to share/static/RichText/lang/eu.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/fa.js b/share/static/RichText/lang/fa.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/fa.js
rename to share/static/RichText/lang/fa.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/fi.js b/share/static/RichText/lang/fi.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/fi.js
rename to share/static/RichText/lang/fi.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/fo.js b/share/static/RichText/lang/fo.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/fo.js
rename to share/static/RichText/lang/fo.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/fr-ca.js b/share/static/RichText/lang/fr-ca.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/fr-ca.js
rename to share/static/RichText/lang/fr-ca.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/fr.js b/share/static/RichText/lang/fr.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/fr.js
rename to share/static/RichText/lang/fr.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/gl.js b/share/static/RichText/lang/gl.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/gl.js
rename to share/static/RichText/lang/gl.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/gu.js b/share/static/RichText/lang/gu.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/gu.js
rename to share/static/RichText/lang/gu.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/he.js b/share/static/RichText/lang/he.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/he.js
rename to share/static/RichText/lang/he.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/hi.js b/share/static/RichText/lang/hi.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/hi.js
rename to share/static/RichText/lang/hi.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/hr.js b/share/static/RichText/lang/hr.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/hr.js
rename to share/static/RichText/lang/hr.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/hu.js b/share/static/RichText/lang/hu.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/hu.js
rename to share/static/RichText/lang/hu.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/is.js b/share/static/RichText/lang/is.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/is.js
rename to share/static/RichText/lang/is.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/it.js b/share/static/RichText/lang/it.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/it.js
rename to share/static/RichText/lang/it.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/ja.js b/share/static/RichText/lang/ja.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/ja.js
rename to share/static/RichText/lang/ja.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/km.js b/share/static/RichText/lang/km.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/km.js
rename to share/static/RichText/lang/km.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/ko.js b/share/static/RichText/lang/ko.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/ko.js
rename to share/static/RichText/lang/ko.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/lt.js b/share/static/RichText/lang/lt.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/lt.js
rename to share/static/RichText/lang/lt.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/lv.js b/share/static/RichText/lang/lv.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/lv.js
rename to share/static/RichText/lang/lv.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/mn.js b/share/static/RichText/lang/mn.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/mn.js
rename to share/static/RichText/lang/mn.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/ms.js b/share/static/RichText/lang/ms.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/ms.js
rename to share/static/RichText/lang/ms.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/nb.js b/share/static/RichText/lang/nb.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/nb.js
rename to share/static/RichText/lang/nb.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/nl.js b/share/static/RichText/lang/nl.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/nl.js
rename to share/static/RichText/lang/nl.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/no.js b/share/static/RichText/lang/no.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/no.js
rename to share/static/RichText/lang/no.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/pl.js b/share/static/RichText/lang/pl.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/pl.js
rename to share/static/RichText/lang/pl.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/pt-br.js b/share/static/RichText/lang/pt-br.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/pt-br.js
rename to share/static/RichText/lang/pt-br.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/pt.js b/share/static/RichText/lang/pt.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/pt.js
rename to share/static/RichText/lang/pt.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/ro.js b/share/static/RichText/lang/ro.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/ro.js
rename to share/static/RichText/lang/ro.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/ru.js b/share/static/RichText/lang/ru.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/ru.js
rename to share/static/RichText/lang/ru.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/sk.js b/share/static/RichText/lang/sk.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/sk.js
rename to share/static/RichText/lang/sk.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/sl.js b/share/static/RichText/lang/sl.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/sl.js
rename to share/static/RichText/lang/sl.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/sr-latn.js b/share/static/RichText/lang/sr-latn.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/sr-latn.js
rename to share/static/RichText/lang/sr-latn.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/sr.js b/share/static/RichText/lang/sr.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/sr.js
rename to share/static/RichText/lang/sr.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/sv.js b/share/static/RichText/lang/sv.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/sv.js
rename to share/static/RichText/lang/sv.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/th.js b/share/static/RichText/lang/th.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/th.js
rename to share/static/RichText/lang/th.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/tr.js b/share/static/RichText/lang/tr.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/tr.js
rename to share/static/RichText/lang/tr.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/uk.js b/share/static/RichText/lang/uk.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/uk.js
rename to share/static/RichText/lang/uk.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/vi.js b/share/static/RichText/lang/vi.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/vi.js
rename to share/static/RichText/lang/vi.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/zh-cn.js b/share/static/RichText/lang/zh-cn.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/zh-cn.js
rename to share/static/RichText/lang/zh-cn.js
diff --git a/share/html/NoAuth/RichText/ckeditor/lang/zh.js b/share/static/RichText/lang/zh.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/lang/zh.js
rename to share/static/RichText/lang/zh.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js b/share/static/RichText/plugins/a11yhelp/dialogs/a11yhelp.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js
rename to share/static/RichText/plugins/a11yhelp/dialogs/a11yhelp.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/a11yhelp/lang/en.js b/share/static/RichText/plugins/a11yhelp/lang/en.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/a11yhelp/lang/en.js
rename to share/static/RichText/plugins/a11yhelp/lang/en.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/a11yhelp/lang/he.js b/share/static/RichText/plugins/a11yhelp/lang/he.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/a11yhelp/lang/he.js
rename to share/static/RichText/plugins/a11yhelp/lang/he.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/about/dialogs/about.js b/share/static/RichText/plugins/about/dialogs/about.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/about/dialogs/about.js
rename to share/static/RichText/plugins/about/dialogs/about.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/about/dialogs/logo_ckeditor.png b/share/static/RichText/plugins/about/dialogs/logo_ckeditor.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/about/dialogs/logo_ckeditor.png
rename to share/static/RichText/plugins/about/dialogs/logo_ckeditor.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/autogrow/plugin.js b/share/static/RichText/plugins/autogrow/plugin.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/autogrow/plugin.js
rename to share/static/RichText/plugins/autogrow/plugin.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/clipboard/dialogs/paste.js b/share/static/RichText/plugins/clipboard/dialogs/paste.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/clipboard/dialogs/paste.js
rename to share/static/RichText/plugins/clipboard/dialogs/paste.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/colordialog/dialogs/colordialog.js b/share/static/RichText/plugins/colordialog/dialogs/colordialog.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/colordialog/dialogs/colordialog.js
rename to share/static/RichText/plugins/colordialog/dialogs/colordialog.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/dialog/dialogDefinition.js b/share/static/RichText/plugins/dialog/dialogDefinition.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/dialog/dialogDefinition.js
rename to share/static/RichText/plugins/dialog/dialogDefinition.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/div/dialogs/div.js b/share/static/RichText/plugins/div/dialogs/div.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/div/dialogs/div.js
rename to share/static/RichText/plugins/div/dialogs/div.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/find/dialogs/find.js b/share/static/RichText/plugins/find/dialogs/find.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/find/dialogs/find.js
rename to share/static/RichText/plugins/find/dialogs/find.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/flash/dialogs/flash.js b/share/static/RichText/plugins/flash/dialogs/flash.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/flash/dialogs/flash.js
rename to share/static/RichText/plugins/flash/dialogs/flash.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/flash/images/placeholder.png b/share/static/RichText/plugins/flash/images/placeholder.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/flash/images/placeholder.png
rename to share/static/RichText/plugins/flash/images/placeholder.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/button.js b/share/static/RichText/plugins/forms/dialogs/button.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/button.js
rename to share/static/RichText/plugins/forms/dialogs/button.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/checkbox.js b/share/static/RichText/plugins/forms/dialogs/checkbox.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/checkbox.js
rename to share/static/RichText/plugins/forms/dialogs/checkbox.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/form.js b/share/static/RichText/plugins/forms/dialogs/form.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/form.js
rename to share/static/RichText/plugins/forms/dialogs/form.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/hiddenfield.js b/share/static/RichText/plugins/forms/dialogs/hiddenfield.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/hiddenfield.js
rename to share/static/RichText/plugins/forms/dialogs/hiddenfield.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/radio.js b/share/static/RichText/plugins/forms/dialogs/radio.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/radio.js
rename to share/static/RichText/plugins/forms/dialogs/radio.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/select.js b/share/static/RichText/plugins/forms/dialogs/select.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/select.js
rename to share/static/RichText/plugins/forms/dialogs/select.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/textarea.js b/share/static/RichText/plugins/forms/dialogs/textarea.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/textarea.js
rename to share/static/RichText/plugins/forms/dialogs/textarea.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/textfield.js b/share/static/RichText/plugins/forms/dialogs/textfield.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/forms/dialogs/textfield.js
rename to share/static/RichText/plugins/forms/dialogs/textfield.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/forms/images/hiddenfield.gif b/share/static/RichText/plugins/forms/images/hiddenfield.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/forms/images/hiddenfield.gif
rename to share/static/RichText/plugins/forms/images/hiddenfield.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/iframedialog/plugin.js b/share/static/RichText/plugins/iframedialog/plugin.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/iframedialog/plugin.js
rename to share/static/RichText/plugins/iframedialog/plugin.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/image/dialogs/image.js b/share/static/RichText/plugins/image/dialogs/image.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/image/dialogs/image.js
rename to share/static/RichText/plugins/image/dialogs/image.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/link/dialogs/anchor.js b/share/static/RichText/plugins/link/dialogs/anchor.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/link/dialogs/anchor.js
rename to share/static/RichText/plugins/link/dialogs/anchor.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/link/dialogs/link.js b/share/static/RichText/plugins/link/dialogs/link.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/link/dialogs/link.js
rename to share/static/RichText/plugins/link/dialogs/link.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/link/images/anchor.gif b/share/static/RichText/plugins/link/images/anchor.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/link/images/anchor.gif
rename to share/static/RichText/plugins/link/images/anchor.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/liststyle/dialogs/liststyle.js b/share/static/RichText/plugins/liststyle/dialogs/liststyle.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/liststyle/dialogs/liststyle.js
rename to share/static/RichText/plugins/liststyle/dialogs/liststyle.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/pagebreak/images/pagebreak.gif b/share/static/RichText/plugins/pagebreak/images/pagebreak.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/pagebreak/images/pagebreak.gif
rename to share/static/RichText/plugins/pagebreak/images/pagebreak.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/pastefromword/filter/default.js b/share/static/RichText/plugins/pastefromword/filter/default.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/pastefromword/filter/default.js
rename to share/static/RichText/plugins/pastefromword/filter/default.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/pastetext/dialogs/pastetext.js b/share/static/RichText/plugins/pastetext/dialogs/pastetext.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/pastetext/dialogs/pastetext.js
rename to share/static/RichText/plugins/pastetext/dialogs/pastetext.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/scayt/dialogs/options.js b/share/static/RichText/plugins/scayt/dialogs/options.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/scayt/dialogs/options.js
rename to share/static/RichText/plugins/scayt/dialogs/options.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/scayt/dialogs/toolbar.css b/share/static/RichText/plugins/scayt/dialogs/toolbar.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/scayt/dialogs/toolbar.css
rename to share/static/RichText/plugins/scayt/dialogs/toolbar.css
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_address.png b/share/static/RichText/plugins/showblocks/images/block_address.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_address.png
rename to share/static/RichText/plugins/showblocks/images/block_address.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_blockquote.png b/share/static/RichText/plugins/showblocks/images/block_blockquote.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_blockquote.png
rename to share/static/RichText/plugins/showblocks/images/block_blockquote.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_div.png b/share/static/RichText/plugins/showblocks/images/block_div.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_div.png
rename to share/static/RichText/plugins/showblocks/images/block_div.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_h1.png b/share/static/RichText/plugins/showblocks/images/block_h1.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_h1.png
rename to share/static/RichText/plugins/showblocks/images/block_h1.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_h2.png b/share/static/RichText/plugins/showblocks/images/block_h2.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_h2.png
rename to share/static/RichText/plugins/showblocks/images/block_h2.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_h3.png b/share/static/RichText/plugins/showblocks/images/block_h3.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_h3.png
rename to share/static/RichText/plugins/showblocks/images/block_h3.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_h4.png b/share/static/RichText/plugins/showblocks/images/block_h4.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_h4.png
rename to share/static/RichText/plugins/showblocks/images/block_h4.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_h5.png b/share/static/RichText/plugins/showblocks/images/block_h5.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_h5.png
rename to share/static/RichText/plugins/showblocks/images/block_h5.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_h6.png b/share/static/RichText/plugins/showblocks/images/block_h6.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_h6.png
rename to share/static/RichText/plugins/showblocks/images/block_h6.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_p.png b/share/static/RichText/plugins/showblocks/images/block_p.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_p.png
rename to share/static/RichText/plugins/showblocks/images/block_p.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_pre.png b/share/static/RichText/plugins/showblocks/images/block_pre.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/showblocks/images/block_pre.png
rename to share/static/RichText/plugins/showblocks/images/block_pre.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/dialogs/smiley.js b/share/static/RichText/plugins/smiley/dialogs/smiley.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/dialogs/smiley.js
rename to share/static/RichText/plugins/smiley/dialogs/smiley.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/angel_smile.gif b/share/static/RichText/plugins/smiley/images/angel_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/angel_smile.gif
rename to share/static/RichText/plugins/smiley/images/angel_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/angry_smile.gif b/share/static/RichText/plugins/smiley/images/angry_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/angry_smile.gif
rename to share/static/RichText/plugins/smiley/images/angry_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/broken_heart.gif b/share/static/RichText/plugins/smiley/images/broken_heart.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/broken_heart.gif
rename to share/static/RichText/plugins/smiley/images/broken_heart.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/confused_smile.gif b/share/static/RichText/plugins/smiley/images/confused_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/confused_smile.gif
rename to share/static/RichText/plugins/smiley/images/confused_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/cry_smile.gif b/share/static/RichText/plugins/smiley/images/cry_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/cry_smile.gif
rename to share/static/RichText/plugins/smiley/images/cry_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/devil_smile.gif b/share/static/RichText/plugins/smiley/images/devil_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/devil_smile.gif
rename to share/static/RichText/plugins/smiley/images/devil_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/embaressed_smile.gif b/share/static/RichText/plugins/smiley/images/embaressed_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/embaressed_smile.gif
rename to share/static/RichText/plugins/smiley/images/embaressed_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/envelope.gif b/share/static/RichText/plugins/smiley/images/envelope.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/envelope.gif
rename to share/static/RichText/plugins/smiley/images/envelope.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/heart.gif b/share/static/RichText/plugins/smiley/images/heart.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/heart.gif
rename to share/static/RichText/plugins/smiley/images/heart.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/kiss.gif b/share/static/RichText/plugins/smiley/images/kiss.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/kiss.gif
rename to share/static/RichText/plugins/smiley/images/kiss.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/lightbulb.gif b/share/static/RichText/plugins/smiley/images/lightbulb.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/lightbulb.gif
rename to share/static/RichText/plugins/smiley/images/lightbulb.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/omg_smile.gif b/share/static/RichText/plugins/smiley/images/omg_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/omg_smile.gif
rename to share/static/RichText/plugins/smiley/images/omg_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/regular_smile.gif b/share/static/RichText/plugins/smiley/images/regular_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/regular_smile.gif
rename to share/static/RichText/plugins/smiley/images/regular_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/sad_smile.gif b/share/static/RichText/plugins/smiley/images/sad_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/sad_smile.gif
rename to share/static/RichText/plugins/smiley/images/sad_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/shades_smile.gif b/share/static/RichText/plugins/smiley/images/shades_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/shades_smile.gif
rename to share/static/RichText/plugins/smiley/images/shades_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/teeth_smile.gif b/share/static/RichText/plugins/smiley/images/teeth_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/teeth_smile.gif
rename to share/static/RichText/plugins/smiley/images/teeth_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/thumbs_down.gif b/share/static/RichText/plugins/smiley/images/thumbs_down.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/thumbs_down.gif
rename to share/static/RichText/plugins/smiley/images/thumbs_down.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/thumbs_up.gif b/share/static/RichText/plugins/smiley/images/thumbs_up.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/thumbs_up.gif
rename to share/static/RichText/plugins/smiley/images/thumbs_up.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/tounge_smile.gif b/share/static/RichText/plugins/smiley/images/tounge_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/tounge_smile.gif
rename to share/static/RichText/plugins/smiley/images/tounge_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif b/share/static/RichText/plugins/smiley/images/whatchutalkingabout_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif
rename to share/static/RichText/plugins/smiley/images/whatchutalkingabout_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/wink_smile.gif b/share/static/RichText/plugins/smiley/images/wink_smile.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/smiley/images/wink_smile.gif
rename to share/static/RichText/plugins/smiley/images/wink_smile.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/specialchar/dialogs/specialchar.js b/share/static/RichText/plugins/specialchar/dialogs/specialchar.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/specialchar/dialogs/specialchar.js
rename to share/static/RichText/plugins/specialchar/dialogs/specialchar.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/styles/styles/default.js b/share/static/RichText/plugins/styles/styles/default.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/styles/styles/default.js
rename to share/static/RichText/plugins/styles/styles/default.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/table/dialogs/table.js b/share/static/RichText/plugins/table/dialogs/table.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/table/dialogs/table.js
rename to share/static/RichText/plugins/table/dialogs/table.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/tableresize/plugin.js b/share/static/RichText/plugins/tableresize/plugin.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/tableresize/plugin.js
rename to share/static/RichText/plugins/tableresize/plugin.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/tabletools/dialogs/tableCell.js b/share/static/RichText/plugins/tabletools/dialogs/tableCell.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/tabletools/dialogs/tableCell.js
rename to share/static/RichText/plugins/tabletools/dialogs/tableCell.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/templates/dialogs/templates.js b/share/static/RichText/plugins/templates/dialogs/templates.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/templates/dialogs/templates.js
rename to share/static/RichText/plugins/templates/dialogs/templates.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/templates/templates/default.js b/share/static/RichText/plugins/templates/templates/default.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/templates/templates/default.js
rename to share/static/RichText/plugins/templates/templates/default.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/templates/templates/images/template1.gif b/share/static/RichText/plugins/templates/templates/images/template1.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/templates/templates/images/template1.gif
rename to share/static/RichText/plugins/templates/templates/images/template1.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/templates/templates/images/template2.gif b/share/static/RichText/plugins/templates/templates/images/template2.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/templates/templates/images/template2.gif
rename to share/static/RichText/plugins/templates/templates/images/template2.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/templates/templates/images/template3.gif b/share/static/RichText/plugins/templates/templates/images/template3.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/templates/templates/images/template3.gif
rename to share/static/RichText/plugins/templates/templates/images/template3.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/uicolor/dialogs/uicolor.js b/share/static/RichText/plugins/uicolor/dialogs/uicolor.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/uicolor/dialogs/uicolor.js
rename to share/static/RichText/plugins/uicolor/dialogs/uicolor.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/uicolor/lang/en.js b/share/static/RichText/plugins/uicolor/lang/en.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/uicolor/lang/en.js
rename to share/static/RichText/plugins/uicolor/lang/en.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/uicolor/plugin.js b/share/static/RichText/plugins/uicolor/plugin.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/uicolor/plugin.js
rename to share/static/RichText/plugins/uicolor/plugin.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/uicolor/uicolor.gif b/share/static/RichText/plugins/uicolor/uicolor.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/uicolor/uicolor.gif
rename to share/static/RichText/plugins/uicolor/uicolor.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/uicolor/yui/assets/hue_bg.png b/share/static/RichText/plugins/uicolor/yui/assets/hue_bg.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/uicolor/yui/assets/hue_bg.png
rename to share/static/RichText/plugins/uicolor/yui/assets/hue_bg.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png b/share/static/RichText/plugins/uicolor/yui/assets/hue_thumb.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png
rename to share/static/RichText/plugins/uicolor/yui/assets/hue_thumb.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/uicolor/yui/assets/picker_mask.png b/share/static/RichText/plugins/uicolor/yui/assets/picker_mask.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/uicolor/yui/assets/picker_mask.png
rename to share/static/RichText/plugins/uicolor/yui/assets/picker_mask.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png b/share/static/RichText/plugins/uicolor/yui/assets/picker_thumb.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png
rename to share/static/RichText/plugins/uicolor/yui/assets/picker_thumb.png
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/uicolor/yui/assets/yui.css b/share/static/RichText/plugins/uicolor/yui/assets/yui.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/uicolor/yui/assets/yui.css
rename to share/static/RichText/plugins/uicolor/yui/assets/yui.css
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/uicolor/yui/yui.js b/share/static/RichText/plugins/uicolor/yui/yui.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/uicolor/yui/yui.js
rename to share/static/RichText/plugins/uicolor/yui/yui.js
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/wsc/dialogs/ciframe.html b/share/static/RichText/plugins/wsc/dialogs/ciframe.html
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/wsc/dialogs/ciframe.html
rename to share/static/RichText/plugins/wsc/dialogs/ciframe.html
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/share/static/RichText/plugins/wsc/dialogs/tmpFrameset.html
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/wsc/dialogs/tmpFrameset.html
rename to share/static/RichText/plugins/wsc/dialogs/tmpFrameset.html
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/wsc/dialogs/wsc.css b/share/static/RichText/plugins/wsc/dialogs/wsc.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/wsc/dialogs/wsc.css
rename to share/static/RichText/plugins/wsc/dialogs/wsc.css
diff --git a/share/html/NoAuth/RichText/ckeditor/plugins/wsc/dialogs/wsc.js b/share/static/RichText/plugins/wsc/dialogs/wsc.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/plugins/wsc/dialogs/wsc.js
rename to share/static/RichText/plugins/wsc/dialogs/wsc.js
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/dialog.css b/share/static/RichText/skins/kama/dialog.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/dialog.css
rename to share/static/RichText/skins/kama/dialog.css
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/editor.css b/share/static/RichText/skins/kama/editor.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/editor.css
rename to share/static/RichText/skins/kama/editor.css
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/icons.png b/share/static/RichText/skins/kama/icons.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/icons.png
rename to share/static/RichText/skins/kama/icons.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/icons_rtl.png b/share/static/RichText/skins/kama/icons_rtl.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/icons_rtl.png
rename to share/static/RichText/skins/kama/icons_rtl.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/images/dialog_sides.gif b/share/static/RichText/skins/kama/images/dialog_sides.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/images/dialog_sides.gif
rename to share/static/RichText/skins/kama/images/dialog_sides.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/images/dialog_sides.png b/share/static/RichText/skins/kama/images/dialog_sides.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/images/dialog_sides.png
rename to share/static/RichText/skins/kama/images/dialog_sides.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/images/dialog_sides_rtl.png b/share/static/RichText/skins/kama/images/dialog_sides_rtl.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/images/dialog_sides_rtl.png
rename to share/static/RichText/skins/kama/images/dialog_sides_rtl.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/images/mini.gif b/share/static/RichText/skins/kama/images/mini.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/images/mini.gif
rename to share/static/RichText/skins/kama/images/mini.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/images/noimage.png b/share/static/RichText/skins/kama/images/noimage.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/images/noimage.png
rename to share/static/RichText/skins/kama/images/noimage.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/images/sprites.png b/share/static/RichText/skins/kama/images/sprites.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/images/sprites.png
rename to share/static/RichText/skins/kama/images/sprites.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/images/sprites_ie6.png b/share/static/RichText/skins/kama/images/sprites_ie6.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/images/sprites_ie6.png
rename to share/static/RichText/skins/kama/images/sprites_ie6.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/images/toolbar_start.gif b/share/static/RichText/skins/kama/images/toolbar_start.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/images/toolbar_start.gif
rename to share/static/RichText/skins/kama/images/toolbar_start.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/skin.js b/share/static/RichText/skins/kama/skin.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/skin.js
rename to share/static/RichText/skins/kama/skin.js
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/kama/templates.css b/share/static/RichText/skins/kama/templates.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/kama/templates.css
rename to share/static/RichText/skins/kama/templates.css
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/dialog.css b/share/static/RichText/skins/office2003/dialog.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/dialog.css
rename to share/static/RichText/skins/office2003/dialog.css
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/editor.css b/share/static/RichText/skins/office2003/editor.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/editor.css
rename to share/static/RichText/skins/office2003/editor.css
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/icons.png b/share/static/RichText/skins/office2003/icons.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/icons.png
rename to share/static/RichText/skins/office2003/icons.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/icons_rtl.png b/share/static/RichText/skins/office2003/icons_rtl.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/icons_rtl.png
rename to share/static/RichText/skins/office2003/icons_rtl.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/images/dialog_sides.gif b/share/static/RichText/skins/office2003/images/dialog_sides.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/images/dialog_sides.gif
rename to share/static/RichText/skins/office2003/images/dialog_sides.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/images/dialog_sides.png b/share/static/RichText/skins/office2003/images/dialog_sides.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/images/dialog_sides.png
rename to share/static/RichText/skins/office2003/images/dialog_sides.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/images/dialog_sides_rtl.png b/share/static/RichText/skins/office2003/images/dialog_sides_rtl.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/images/dialog_sides_rtl.png
rename to share/static/RichText/skins/office2003/images/dialog_sides_rtl.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/images/mini.gif b/share/static/RichText/skins/office2003/images/mini.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/images/mini.gif
rename to share/static/RichText/skins/office2003/images/mini.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/images/noimage.png b/share/static/RichText/skins/office2003/images/noimage.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/images/noimage.png
rename to share/static/RichText/skins/office2003/images/noimage.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/images/sprites.png b/share/static/RichText/skins/office2003/images/sprites.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/images/sprites.png
rename to share/static/RichText/skins/office2003/images/sprites.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/images/sprites_ie6.png b/share/static/RichText/skins/office2003/images/sprites_ie6.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/images/sprites_ie6.png
rename to share/static/RichText/skins/office2003/images/sprites_ie6.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/skin.js b/share/static/RichText/skins/office2003/skin.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/skin.js
rename to share/static/RichText/skins/office2003/skin.js
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/office2003/templates.css b/share/static/RichText/skins/office2003/templates.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/office2003/templates.css
rename to share/static/RichText/skins/office2003/templates.css
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/dialog.css b/share/static/RichText/skins/v2/dialog.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/dialog.css
rename to share/static/RichText/skins/v2/dialog.css
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/editor.css b/share/static/RichText/skins/v2/editor.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/editor.css
rename to share/static/RichText/skins/v2/editor.css
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/icons.png b/share/static/RichText/skins/v2/icons.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/icons.png
rename to share/static/RichText/skins/v2/icons.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/icons_rtl.png b/share/static/RichText/skins/v2/icons_rtl.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/icons_rtl.png
rename to share/static/RichText/skins/v2/icons_rtl.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/images/dialog_sides.gif b/share/static/RichText/skins/v2/images/dialog_sides.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/images/dialog_sides.gif
rename to share/static/RichText/skins/v2/images/dialog_sides.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/images/dialog_sides.png b/share/static/RichText/skins/v2/images/dialog_sides.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/images/dialog_sides.png
rename to share/static/RichText/skins/v2/images/dialog_sides.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/images/dialog_sides_rtl.png b/share/static/RichText/skins/v2/images/dialog_sides_rtl.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/images/dialog_sides_rtl.png
rename to share/static/RichText/skins/v2/images/dialog_sides_rtl.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/images/mini.gif b/share/static/RichText/skins/v2/images/mini.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/images/mini.gif
rename to share/static/RichText/skins/v2/images/mini.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/images/noimage.png b/share/static/RichText/skins/v2/images/noimage.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/images/noimage.png
rename to share/static/RichText/skins/v2/images/noimage.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/images/sprites.png b/share/static/RichText/skins/v2/images/sprites.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/images/sprites.png
rename to share/static/RichText/skins/v2/images/sprites.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/images/sprites_ie6.png b/share/static/RichText/skins/v2/images/sprites_ie6.png
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/images/sprites_ie6.png
rename to share/static/RichText/skins/v2/images/sprites_ie6.png
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/images/toolbar_start.gif b/share/static/RichText/skins/v2/images/toolbar_start.gif
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/images/toolbar_start.gif
rename to share/static/RichText/skins/v2/images/toolbar_start.gif
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/skin.js b/share/static/RichText/skins/v2/skin.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/skin.js
rename to share/static/RichText/skins/v2/skin.js
diff --git a/share/html/NoAuth/RichText/ckeditor/skins/v2/templates.css b/share/static/RichText/skins/v2/templates.css
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/skins/v2/templates.css
rename to share/static/RichText/skins/v2/templates.css
diff --git a/share/html/NoAuth/RichText/ckeditor/themes/default/theme.js b/share/static/RichText/themes/default/theme.js
similarity index 100%
rename from share/html/NoAuth/RichText/ckeditor/themes/default/theme.js
rename to share/static/RichText/themes/default/theme.js
diff --git a/share/html/NoAuth/css/aileron/images/source/background-gradient.png b/share/static/css/aileron/images/background-gradient.png
similarity index 100%
rename from share/html/NoAuth/css/aileron/images/source/background-gradient.png
rename to share/static/css/aileron/images/background-gradient.png
diff --git a/share/html/NoAuth/css/ballard/images/source/background-gradient.png b/share/static/css/ballard/images/background-gradient.png
similarity index 100%
rename from share/html/NoAuth/css/ballard/images/source/background-gradient.png
rename to share/static/css/ballard/images/background-gradient.png
diff --git a/share/html/NoAuth/css/images/arrows-ffffff.gif b/share/static/css/images/arrows-ffffff.gif
similarity index 100%
rename from share/html/NoAuth/css/images/arrows-ffffff.gif
rename to share/static/css/images/arrows-ffffff.gif
diff --git a/share/html/NoAuth/css/images/arrows-ffffff.png b/share/static/css/images/arrows-ffffff.png
similarity index 100%
rename from share/html/NoAuth/css/images/arrows-ffffff.png
rename to share/static/css/images/arrows-ffffff.png
diff --git a/share/html/NoAuth/css/images/arrows-grey.gif b/share/static/css/images/arrows-grey.gif
similarity index 100%
rename from share/html/NoAuth/css/images/arrows-grey.gif
rename to share/static/css/images/arrows-grey.gif
diff --git a/share/html/NoAuth/css/images/arrows-grey.png b/share/static/css/images/arrows-grey.png
similarity index 100%
rename from share/html/NoAuth/css/images/arrows-grey.png
rename to share/static/css/images/arrows-grey.png
diff --git a/share/html/NoAuth/css/images/jquery-modal-close.png b/share/static/css/images/jquery-modal-close.png
similarity index 100%
rename from share/html/NoAuth/css/images/jquery-modal-close.png
rename to share/static/css/images/jquery-modal-close.png
diff --git a/share/html/NoAuth/css/images/shadow.gif b/share/static/css/images/shadow.gif
similarity index 100%
rename from share/html/NoAuth/css/images/shadow.gif
rename to share/static/css/images/shadow.gif
diff --git a/share/html/NoAuth/css/images/shadow.png b/share/static/css/images/shadow.png
similarity index 100%
rename from share/html/NoAuth/css/images/shadow.png
rename to share/static/css/images/shadow.png
diff --git a/share/html/NoAuth/css/web2/images/source/background-gradient.png b/share/static/css/web2/images/background-gradient.png
similarity index 100%
rename from share/html/NoAuth/css/web2/images/source/background-gradient.png
rename to share/static/css/web2/images/background-gradient.png
diff --git a/share/html/NoAuth/images/bpslogo.png b/share/static/images/bpslogo.png
similarity index 100%
rename from share/html/NoAuth/images/bpslogo.png
rename to share/static/images/bpslogo.png
diff --git a/share/html/NoAuth/images/css/cb-light.gif b/share/static/images/css/cb-light.gif
similarity index 100%
rename from share/html/NoAuth/images/css/cb-light.gif
rename to share/static/images/css/cb-light.gif
diff --git a/share/html/NoAuth/images/css/cb.gif b/share/static/images/css/cb.gif
similarity index 100%
rename from share/html/NoAuth/images/css/cb.gif
rename to share/static/images/css/cb.gif
diff --git a/share/html/NoAuth/images/css/cbr-b2g.gif b/share/static/images/css/cbr-b2g.gif
similarity index 100%
rename from share/html/NoAuth/images/css/cbr-b2g.gif
rename to share/static/images/css/cbr-b2g.gif
diff --git a/share/html/NoAuth/images/css/cbr-b2lb.gif b/share/static/images/css/cbr-b2lb.gif
similarity index 100%
rename from share/html/NoAuth/images/css/cbr-b2lb.gif
rename to share/static/images/css/cbr-b2lb.gif
diff --git a/share/html/NoAuth/images/css/cbr-gray.gif b/share/static/images/css/cbr-gray.gif
similarity index 100%
rename from share/html/NoAuth/images/css/cbr-gray.gif
rename to share/static/images/css/cbr-gray.gif
diff --git a/share/html/NoAuth/images/css/cbr-trans.gif b/share/static/images/css/cbr-trans.gif
similarity index 100%
rename from share/html/NoAuth/images/css/cbr-trans.gif
rename to share/static/images/css/cbr-trans.gif
diff --git a/share/html/NoAuth/images/css/cbr.gif b/share/static/images/css/cbr.gif
similarity index 100%
rename from share/html/NoAuth/images/css/cbr.gif
rename to share/static/images/css/cbr.gif
diff --git a/share/html/NoAuth/images/css/ct-light.gif b/share/static/images/css/ct-light.gif
similarity index 100%
rename from share/html/NoAuth/images/css/ct-light.gif
rename to share/static/images/css/ct-light.gif
diff --git a/share/html/NoAuth/images/css/ct.gif b/share/static/images/css/ct.gif
similarity index 100%
rename from share/html/NoAuth/images/css/ct.gif
rename to share/static/images/css/ct.gif
diff --git a/share/html/NoAuth/images/css/ctr-b2g.gif b/share/static/images/css/ctr-b2g.gif
similarity index 100%
rename from share/html/NoAuth/images/css/ctr-b2g.gif
rename to share/static/images/css/ctr-b2g.gif
diff --git a/share/html/NoAuth/images/css/ctr-b2lb.gif b/share/static/images/css/ctr-b2lb.gif
similarity index 100%
rename from share/html/NoAuth/images/css/ctr-b2lb.gif
rename to share/static/images/css/ctr-b2lb.gif
diff --git a/share/html/NoAuth/images/css/ctr-gray.gif b/share/static/images/css/ctr-gray.gif
similarity index 100%
rename from share/html/NoAuth/images/css/ctr-gray.gif
rename to share/static/images/css/ctr-gray.gif
diff --git a/share/html/NoAuth/images/css/ctr-trans.gif b/share/static/images/css/ctr-trans.gif
similarity index 100%
rename from share/html/NoAuth/images/css/ctr-trans.gif
rename to share/static/images/css/ctr-trans.gif
diff --git a/share/html/NoAuth/images/css/ctr.gif b/share/static/images/css/ctr.gif
similarity index 100%
rename from share/html/NoAuth/images/css/ctr.gif
rename to share/static/images/css/ctr.gif
diff --git a/share/html/NoAuth/images/css/dark-arrow-up.png b/share/static/images/css/dark-arrow-up.png
similarity index 100%
rename from share/html/NoAuth/images/css/dark-arrow-up.png
rename to share/static/images/css/dark-arrow-up.png
diff --git a/share/html/NoAuth/images/css/dark-arrow.png b/share/static/images/css/dark-arrow.png
similarity index 100%
rename from share/html/NoAuth/images/css/dark-arrow.png
rename to share/static/images/css/dark-arrow.png
diff --git a/share/html/NoAuth/images/css/fieldbg-autocomplete.gif b/share/static/images/css/fieldbg-autocomplete.gif
similarity index 100%
rename from share/html/NoAuth/images/css/fieldbg-autocomplete.gif
rename to share/static/images/css/fieldbg-autocomplete.gif
diff --git a/share/html/NoAuth/images/css/light-arrow-up.png b/share/static/images/css/light-arrow-up.png
similarity index 100%
rename from share/html/NoAuth/images/css/light-arrow-up.png
rename to share/static/images/css/light-arrow-up.png
diff --git a/share/html/NoAuth/images/css/light-arrow.png b/share/static/images/css/light-arrow.png
similarity index 100%
rename from share/html/NoAuth/images/css/light-arrow.png
rename to share/static/images/css/light-arrow.png
diff --git a/share/html/NoAuth/images/css/rolldown-arrow.gif b/share/static/images/css/rolldown-arrow.gif
similarity index 100%
rename from share/html/NoAuth/images/css/rolldown-arrow.gif
rename to share/static/images/css/rolldown-arrow.gif
diff --git a/share/html/NoAuth/images/css/rolldown-arrow.png b/share/static/images/css/rolldown-arrow.png
similarity index 100%
rename from share/html/NoAuth/images/css/rolldown-arrow.png
rename to share/static/images/css/rolldown-arrow.png
diff --git a/share/html/NoAuth/images/css/rollup-arrow.gif b/share/static/images/css/rollup-arrow.gif
similarity index 100%
rename from share/html/NoAuth/images/css/rollup-arrow.gif
rename to share/static/images/css/rollup-arrow.gif
diff --git a/share/html/NoAuth/images/empty_star.gif b/share/static/images/empty_star.gif
similarity index 100%
rename from share/html/NoAuth/images/empty_star.gif
rename to share/static/images/empty_star.gif
diff --git a/share/html/NoAuth/images/eyedropper.png b/share/static/images/eyedropper.png
similarity index 100%
rename from share/html/NoAuth/images/eyedropper.png
rename to share/static/images/eyedropper.png
diff --git a/share/html/NoAuth/images/farbtastic/marker.png b/share/static/images/farbtastic/marker.png
similarity index 100%
rename from share/html/NoAuth/images/farbtastic/marker.png
rename to share/static/images/farbtastic/marker.png
diff --git a/share/html/NoAuth/images/farbtastic/mask.png b/share/static/images/farbtastic/mask.png
similarity index 100%
rename from share/html/NoAuth/images/farbtastic/mask.png
rename to share/static/images/farbtastic/mask.png
diff --git a/share/html/NoAuth/images/farbtastic/wheel.png b/share/static/images/farbtastic/wheel.png
similarity index 100%
rename from share/html/NoAuth/images/farbtastic/wheel.png
rename to share/static/images/farbtastic/wheel.png
diff --git a/share/html/NoAuth/images/favicon.png b/share/static/images/favicon.png
similarity index 100%
rename from share/html/NoAuth/images/favicon.png
rename to share/static/images/favicon.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-anim_basic_16x16.gif b/share/static/images/jquery_ui/ui-anim_basic_16x16.gif
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-anim_basic_16x16.gif
rename to share/static/images/jquery_ui/ui-anim_basic_16x16.gif
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_diagonals-thick_18_b81900_40x40.png b/share/static/images/jquery_ui/ui-bg_diagonals-thick_18_b81900_40x40.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_diagonals-thick_18_b81900_40x40.png
rename to share/static/images/jquery_ui/ui-bg_diagonals-thick_18_b81900_40x40.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_diagonals-thick_20_666666_40x40.png b/share/static/images/jquery_ui/ui-bg_diagonals-thick_20_666666_40x40.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_diagonals-thick_20_666666_40x40.png
rename to share/static/images/jquery_ui/ui-bg_diagonals-thick_20_666666_40x40.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_flat_0_aaaaaa_40x100.png b/share/static/images/jquery_ui/ui-bg_flat_0_aaaaaa_40x100.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_flat_0_aaaaaa_40x100.png
rename to share/static/images/jquery_ui/ui-bg_flat_0_aaaaaa_40x100.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_flat_10_000000_40x100.png b/share/static/images/jquery_ui/ui-bg_flat_10_000000_40x100.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_flat_10_000000_40x100.png
rename to share/static/images/jquery_ui/ui-bg_flat_10_000000_40x100.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_flat_75_ffffff_40x100.png b/share/static/images/jquery_ui/ui-bg_flat_75_ffffff_40x100.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_flat_75_ffffff_40x100.png
rename to share/static/images/jquery_ui/ui-bg_flat_75_ffffff_40x100.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_glass_100_f6f6f6_1x400.png b/share/static/images/jquery_ui/ui-bg_glass_100_f6f6f6_1x400.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_glass_100_f6f6f6_1x400.png
rename to share/static/images/jquery_ui/ui-bg_glass_100_f6f6f6_1x400.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_glass_100_fdf5ce_1x400.png b/share/static/images/jquery_ui/ui-bg_glass_100_fdf5ce_1x400.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_glass_100_fdf5ce_1x400.png
rename to share/static/images/jquery_ui/ui-bg_glass_100_fdf5ce_1x400.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_glass_55_fbf9ee_1x400.png b/share/static/images/jquery_ui/ui-bg_glass_55_fbf9ee_1x400.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_glass_55_fbf9ee_1x400.png
rename to share/static/images/jquery_ui/ui-bg_glass_55_fbf9ee_1x400.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_glass_65_ffffff_1x400.png b/share/static/images/jquery_ui/ui-bg_glass_65_ffffff_1x400.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_glass_65_ffffff_1x400.png
rename to share/static/images/jquery_ui/ui-bg_glass_65_ffffff_1x400.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_glass_75_dadada_1x400.png b/share/static/images/jquery_ui/ui-bg_glass_75_dadada_1x400.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_glass_75_dadada_1x400.png
rename to share/static/images/jquery_ui/ui-bg_glass_75_dadada_1x400.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_glass_75_e6e6e6_1x400.png b/share/static/images/jquery_ui/ui-bg_glass_75_e6e6e6_1x400.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_glass_75_e6e6e6_1x400.png
rename to share/static/images/jquery_ui/ui-bg_glass_75_e6e6e6_1x400.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_glass_95_fef1ec_1x400.png b/share/static/images/jquery_ui/ui-bg_glass_95_fef1ec_1x400.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_glass_95_fef1ec_1x400.png
rename to share/static/images/jquery_ui/ui-bg_glass_95_fef1ec_1x400.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_gloss-wave_35_f6a828_500x100.png b/share/static/images/jquery_ui/ui-bg_gloss-wave_35_f6a828_500x100.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_gloss-wave_35_f6a828_500x100.png
rename to share/static/images/jquery_ui/ui-bg_gloss-wave_35_f6a828_500x100.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_highlight-soft_100_eeeeee_1x100.png b/share/static/images/jquery_ui/ui-bg_highlight-soft_100_eeeeee_1x100.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_highlight-soft_100_eeeeee_1x100.png
rename to share/static/images/jquery_ui/ui-bg_highlight-soft_100_eeeeee_1x100.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_highlight-soft_75_cccccc_1x100.png b/share/static/images/jquery_ui/ui-bg_highlight-soft_75_cccccc_1x100.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_highlight-soft_75_cccccc_1x100.png
rename to share/static/images/jquery_ui/ui-bg_highlight-soft_75_cccccc_1x100.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_highlight-soft_75_ffe45c_1x100.png b/share/static/images/jquery_ui/ui-bg_highlight-soft_75_ffe45c_1x100.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-bg_highlight-soft_75_ffe45c_1x100.png
rename to share/static/images/jquery_ui/ui-bg_highlight-soft_75_ffe45c_1x100.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_222222_256x240.png b/share/static/images/jquery_ui/ui-icons_222222_256x240.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-icons_222222_256x240.png
rename to share/static/images/jquery_ui/ui-icons_222222_256x240.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_228ef1_256x240.png b/share/static/images/jquery_ui/ui-icons_228ef1_256x240.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-icons_228ef1_256x240.png
rename to share/static/images/jquery_ui/ui-icons_228ef1_256x240.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_2e83ff_256x240.png b/share/static/images/jquery_ui/ui-icons_2e83ff_256x240.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-icons_2e83ff_256x240.png
rename to share/static/images/jquery_ui/ui-icons_2e83ff_256x240.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_4488cc_256x240.png b/share/static/images/jquery_ui/ui-icons_4488cc_256x240.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-icons_4488cc_256x240.png
rename to share/static/images/jquery_ui/ui-icons_4488cc_256x240.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_454545_256x240.png b/share/static/images/jquery_ui/ui-icons_454545_256x240.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-icons_454545_256x240.png
rename to share/static/images/jquery_ui/ui-icons_454545_256x240.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_888888_256x240.png b/share/static/images/jquery_ui/ui-icons_888888_256x240.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-icons_888888_256x240.png
rename to share/static/images/jquery_ui/ui-icons_888888_256x240.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_cd0a0a_256x240.png b/share/static/images/jquery_ui/ui-icons_cd0a0a_256x240.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-icons_cd0a0a_256x240.png
rename to share/static/images/jquery_ui/ui-icons_cd0a0a_256x240.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_ef8c08_256x240.png b/share/static/images/jquery_ui/ui-icons_ef8c08_256x240.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-icons_ef8c08_256x240.png
rename to share/static/images/jquery_ui/ui-icons_ef8c08_256x240.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_ffd27a_256x240.png b/share/static/images/jquery_ui/ui-icons_ffd27a_256x240.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-icons_ffd27a_256x240.png
rename to share/static/images/jquery_ui/ui-icons_ffd27a_256x240.png
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_ffffff_256x240.png b/share/static/images/jquery_ui/ui-icons_ffffff_256x240.png
similarity index 100%
rename from share/html/NoAuth/images/jquery_ui/ui-icons_ffffff_256x240.png
rename to share/static/images/jquery_ui/ui-icons_ffffff_256x240.png
diff --git a/share/html/NoAuth/images/star.gif b/share/static/images/star.gif
similarity index 100%
rename from share/html/NoAuth/images/star.gif
rename to share/static/images/star.gif
diff --git a/share/html/NoAuth/images/tablesorter/asc.gif b/share/static/images/tablesorter/asc.gif
similarity index 100%
rename from share/html/NoAuth/images/tablesorter/asc.gif
rename to share/static/images/tablesorter/asc.gif
diff --git a/share/html/NoAuth/images/tablesorter/bg.gif b/share/static/images/tablesorter/bg.gif
similarity index 100%
rename from share/html/NoAuth/images/tablesorter/bg.gif
rename to share/static/images/tablesorter/bg.gif
diff --git a/share/html/NoAuth/images/tablesorter/desc.gif b/share/static/images/tablesorter/desc.gif
similarity index 100%
rename from share/html/NoAuth/images/tablesorter/desc.gif
rename to share/static/images/tablesorter/desc.gif
diff --git a/share/html/NoAuth/images/test.png b/share/static/images/test.png
similarity index 100%
rename from share/html/NoAuth/images/test.png
rename to share/static/images/test.png

commit 22e4de54a0b40b3ebddef67e3f1a5c20a8f1a75f
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Fri May 13 14:52:18 2011 +0800

    Serve only CSS and JS below /NoAuth/css and /NoAuth/js, respectively.

diff --git a/share/html/NoAuth/css/autohandler b/share/html/NoAuth/css/autohandler
index 0e94893..3c75388 100644
--- a/share/html/NoAuth/css/autohandler
+++ b/share/html/NoAuth/css/autohandler
@@ -46,21 +46,8 @@
 %#
 %# END BPS TAGGED BLOCK }}}
 <%init>
-my $file = $m->base_comp->source_file;
-
-if ($file =~ /\.(?:gif|png|jpe?g)$/i) {
-    my $relfile = $m->base_comp->path;
-    RT::Interface::Web->SendStaticFile( File => $file, RelativeFile => $relfile );
-}
-elsif ($file =~ /\.(?:htc)$/i) {
-    RT::Interface::Web::StaticFileHeaders();
-    $r->content_type('text/x-component') ;
-    $m->call_next();
-    return();
-} else {
-    RT::Interface::Web::StaticFileHeaders();
-    $r->content_type('text/css; charset=utf-8') ;
-    $m->call_next();
-    return();
-}
+RT::Interface::Web::StaticFileHeaders();
+$r->content_type('text/css; charset=utf-8') ;
+$m->call_next();
+return();
 </%init>
diff --git a/share/html/NoAuth/js/autohandler b/share/html/NoAuth/js/autohandler
index 15cd267..d5df354 100644
--- a/share/html/NoAuth/js/autohandler
+++ b/share/html/NoAuth/js/autohandler
@@ -46,17 +46,8 @@
 %#
 %# END BPS TAGGED BLOCK }}}
 <%init>
-
-my $type;
-my $file = $m->base_comp->source_file;
-
-if ($file =~ /\.(gif|png|jpe?g)$/i) {
-    my $relfile = $m->base_comp->path;
-    RT::Interface::Web->SendStaticFile( File => $file, RelativeFile => $relfile );
-} else {
-    &RT::Interface::Web::StaticFileHeaders();
-    $r->content_type('application/x-javascript; charset=utf-8');
-    $m->call_next();
-    return();
-}
+RT::Interface::Web::StaticFileHeaders();
+$r->content_type('application/x-javascript; charset=utf-8');
+$m->call_next();
+return();
 </%init>

commit 4f59770e07fc1201c12a11a417f1e701f0daca58
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Dec 19 20:27:19 2012 -0500

    Update locations for static file moves

diff --git a/devel/third-party/README b/devel/third-party/README
index 933ba16..0d4145d 100644
--- a/devel/third-party/README
+++ b/devel/third-party/README
@@ -26,7 +26,7 @@ eyedropper.svg
 The Noun Project
 http://thenounproject.com/noun/eye-dropper/
 Creative Commons - Attribution (CC BY 3.0)
-Modified version included at share/html/NoAuth/images/eyedropper.png
+Modified version included at share/static/images/eyedropper.png
 
 jquery.modal-0.2.5.js
 https://github.com/kylefox/jquery-modal/archive/v0.2.5.tar.gz
diff --git a/etc/RT_Config.pm.in b/etc/RT_Config.pm.in
index c3c8aa8..4dedcba 100755
--- a/etc/RT_Config.pm.in
+++ b/etc/RT_Config.pm.in
@@ -1000,7 +1000,7 @@ Define the directory name to be used for images in RT web documents.
 
 =cut
 
-Set($WebImagesURL, RT->Config->Get('WebPath') . "/NoAuth/images/");
+Set($WebImagesURL, RT->Config->Get('WebPath') . "/static/images/");
 
 =item C<$LogoURL>
 
diff --git a/share/html/Elements/HeaderJavascript b/share/html/Elements/HeaderJavascript
index 7c9c4b8..5e19bef 100644
--- a/share/html/Elements/HeaderJavascript
+++ b/share/html/Elements/HeaderJavascript
@@ -56,7 +56,7 @@ $onload => undef
 % }
 
 % if ( $RichText and RT->Config->Get('MessageBoxRichText',  $session{'CurrentUser'}) ) {
-<script type="text/javascript" src="<%RT->Config->Get('WebPath')%>/NoAuth/RichText/ckeditor.js"></script>
+<script type="text/javascript" src="<%RT->Config->Get('WebPath')%>/static/RichText/ckeditor.js"></script>
 % }
 <script type="text/javascript"><!--
 	jQuery( loadTitleBoxStates );
diff --git a/share/html/NoAuth/css/aileron/boxes.css b/share/html/NoAuth/css/aileron/boxes.css
index f90ac9f..120d839 100644
--- a/share/html/NoAuth/css/aileron/boxes.css
+++ b/share/html/NoAuth/css/aileron/boxes.css
@@ -164,7 +164,7 @@
   margin: 0;
   width: 20px;
 
-  background: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/css/rollup-arrow.gif) no-repeat;
+  background: url(<%RT->Config->Get('WebPath')%>/static/images/css/rollup-arrow.gif) no-repeat;
   background-position: center 0;
   
   position: absolute;
@@ -176,5 +176,5 @@
 }
 
 .titlebox.rolled-up .titlebox-title .widget a {
-    background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/css/rolldown-arrow.gif);
+    background-image: url(<%RT->Config->Get('WebPath')%>/static/images/css/rolldown-arrow.gif);
 }
diff --git a/share/html/NoAuth/css/aileron/layout.css b/share/html/NoAuth/css/aileron/layout.css
index ff39ea3..5253fb2 100644
--- a/share/html/NoAuth/css/aileron/layout.css
+++ b/share/html/NoAuth/css/aileron/layout.css
@@ -50,7 +50,7 @@
 body {
     padding:0;
     margin:0;
-    background: #547CCC url(<%RT->Config->Get('WebPath')%>/NoAuth/css/web2/images/background-gradient.png) top left repeat-x ;
+    background: #547CCC url(<%RT->Config->Get('WebPath')%>/static/css/web2/images/background-gradient.png) top left repeat-x ;
     font-family: arial, helvetica, sans-serif;
     color: #000000;
 }
@@ -101,7 +101,7 @@ div#footer #time {
 
 div#footer #bpscredits {
  text-align: right;
- background: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/bpslogo.png) no-repeat top right;
+ background: url(<%RT->Config->Get('WebPath')%>/static/images/bpslogo.png) no-repeat top right;
  padding-top: 4em;
 }
 
diff --git a/share/html/NoAuth/css/aileron/msie6.css b/share/html/NoAuth/css/aileron/msie6.css
index cd0f293..b15ac19 100644
--- a/share/html/NoAuth/css/aileron/msie6.css
+++ b/share/html/NoAuth/css/aileron/msie6.css
@@ -78,7 +78,7 @@ div#body {
 
 
 .sf-sub-indicator {
-	background:		url(<%RT->Config->Get('WebPath')%>/NoAuth/css/images/arrows-ffffff.gif) no-repeat -10px -100px;
+	background:		url(<%RT->Config->Get('WebPath')%>/static/css/images/arrows-ffffff.gif) no-repeat -10px -100px;
 }
 
 #page-navigation ul {
diff --git a/share/html/NoAuth/css/aileron/nav.css b/share/html/NoAuth/css/aileron/nav.css
index fc670ee..3d6995c 100644
--- a/share/html/NoAuth/css/aileron/nav.css
+++ b/share/html/NoAuth/css/aileron/nav.css
@@ -59,7 +59,7 @@
 }
 
 .sf-sub-indicator {
-    background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/css/images/arrows-grey.png);
+    background-image: url(<%RT->Config->Get('WebPath')%>/static/css/images/arrows-grey.png);
 }
 
 .sf-menu li li .sf-sub-indicator {
diff --git a/share/html/NoAuth/css/ballard/boxes.css b/share/html/NoAuth/css/ballard/boxes.css
index 9610cd5..40c19c4 100644
--- a/share/html/NoAuth/css/ballard/boxes.css
+++ b/share/html/NoAuth/css/ballard/boxes.css
@@ -168,7 +168,7 @@
   margin-top: 0.6em;
   width: 20px;
 
-  background: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/css/rollup-arrow.gif) no-repeat center 0;
+  background: url(<%RT->Config->Get('WebPath')%>/static/images/css/rollup-arrow.gif) no-repeat center 0;
 
   position: absolute;
   top: -1em;
@@ -185,5 +185,5 @@
 }
 
 .titlebox.rolled-up .titlebox-title .widget a {
-    background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/css/rolldown-arrow.gif);
+    background-image: url(<%RT->Config->Get('WebPath')%>/static/images/css/rolldown-arrow.gif);
 }
diff --git a/share/html/NoAuth/css/ballard/layout.css b/share/html/NoAuth/css/ballard/layout.css
index 8b600b8..c9a768c 100644
--- a/share/html/NoAuth/css/ballard/layout.css
+++ b/share/html/NoAuth/css/ballard/layout.css
@@ -50,7 +50,7 @@
 body {
     padding:0;
     margin:0;
-    background: #547CCC url(<%RT->Config->Get('WebPath')%>/NoAuth/css/web2/images/background-gradient.png) top left repeat-x ;
+    background: #547CCC url(<%RT->Config->Get('WebPath')%>/static/css/web2/images/background-gradient.png) top left repeat-x ;
     font-family: arial, helvetica, sans-serif;
     color: #000000;
 }
@@ -103,7 +103,7 @@ div#footer #time {
 
 div#footer #bpscredits {
  text-align: right;
- background: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/bpslogo.png) no-repeat top right;
+ background: url(<%RT->Config->Get('WebPath')%>/static/images/bpslogo.png) no-repeat top right;
  padding-top: 4em;
 }
 
diff --git a/share/html/NoAuth/css/base/farbtastic.css b/share/html/NoAuth/css/base/farbtastic.css
index 8d9e8e0..d69d7c9 100644
--- a/share/html/NoAuth/css/base/farbtastic.css
+++ b/share/html/NoAuth/css/base/farbtastic.css
@@ -81,18 +81,18 @@
   height: 101px;
 }
 .farbtastic .wheel {
-  background: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/farbtastic/wheel.png) no-repeat;
+  background: url(<%RT->Config->Get('WebPath')%>/static/images/farbtastic/wheel.png) no-repeat;
   width: 195px;
   height: 195px;
 }
 .farbtastic .overlay {
-  background: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/farbtastic/mask.png) no-repeat;
+  background: url(<%RT->Config->Get('WebPath')%>/static/images/farbtastic/mask.png) no-repeat;
 }
 .farbtastic .marker {
   width: 17px;
   height: 17px;
   margin: -8px 0 0 -8px;
   overflow: hidden; 
-  background: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/farbtastic/marker.png) no-repeat;
+  background: url(<%RT->Config->Get('WebPath')%>/static/images/farbtastic/marker.png) no-repeat;
 }
 
diff --git a/share/html/NoAuth/css/base/jquery-ui.custom.modified.css b/share/html/NoAuth/css/base/jquery-ui.custom.modified.css
index 3b1e1a0..e03c1c6 100644
--- a/share/html/NoAuth/css/base/jquery-ui.custom.modified.css
+++ b/share/html/NoAuth/css/base/jquery-ui.custom.modified.css
@@ -59,26 +59,26 @@
 .ui-widget { font-family: Arial,Helvetica,sans-serif; font-size: 1em; }
 .ui-widget .ui-widget { font-size: 1em; }
 .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial,Helvetica,sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
+.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
 .ui-widget-content a { color: #222222; }
-.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
+.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
 .ui-widget-header a { color: #222222; }
 
 /* Interaction states
 ----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
 .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
 .ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
 .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
 .ui-widget :active { outline: none; }
 
 /* Interaction Cues
 ----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fcefa1; background: #fbf9ee url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fcefa1; background: #fbf9ee url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
 .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
 .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
 .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
 .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
@@ -89,14 +89,14 @@
 ----------------------------------*/
 
 /* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-icons_222222_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-icons_222222_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-icons_222222_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-icons_888888_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-icons_454545_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-icons_454545_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-icons_2e83ff_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-icons_cd0a0a_256x240.png); }
+.ui-icon { width: 16px; height: 16px; background-image: url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-icons_222222_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-icons_222222_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-icons_222222_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-icons_888888_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-icons_454545_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-icons_454545_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-icons_2e83ff_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-icons_cd0a0a_256x240.png); }
 
 /* positioning */
 .ui-icon-carat-1-n { background-position: 0 0; }
@@ -291,8 +291,8 @@
 .ui-corner-all { -moz-border-radius: 0.3em; -webkit-border-radius: 0.3em; border-radius: 0.3em; }
 
 /* Overlays */
-.ui-widget-overlay { background: #aaaaaa url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
-.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
+.ui-widget-overlay { background: #aaaaaa url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
 
 /*
  * jQuery UI Accordion 1.8.7
diff --git a/share/html/NoAuth/css/base/jquery.modal.css b/share/html/NoAuth/css/base/jquery.modal.css
index 61e4cb6..f156ab9 100644
--- a/share/html/NoAuth/css/base/jquery.modal.css
+++ b/share/html/NoAuth/css/base/jquery.modal.css
@@ -41,5 +41,5 @@
   width: 30px;
   height: 30px;
   text-indent: -9999px;
-  background: url(<% RT->Config->Get("WebPath") %>/NoAuth/css/images/jquery-modal-close.png) no-repeat 0 0;
+  background: url(<% RT->Config->Get("WebPath") %>/static/css/images/jquery-modal-close.png) no-repeat 0 0;
 }
diff --git a/share/html/NoAuth/css/base/superfish.css b/share/html/NoAuth/css/base/superfish.css
index 7cb3b56..2638d49 100644
--- a/share/html/NoAuth/css/base/superfish.css
+++ b/share/html/NoAuth/css/base/superfish.css
@@ -95,7 +95,7 @@ ul.sf-menu li li li.sfHover ul {
 	height:			10px;
 	text-indent: 	-999em;
 	overflow:		hidden;
-	background:		url(<%RT->Config->Get('WebPath')%>/NoAuth/css/images/arrows-ffffff.png) no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
+	background:		url(<%RT->Config->Get('WebPath')%>/static/css/images/arrows-ffffff.png) no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
 }
 a > .sf-sub-indicator {  /* give all except IE6 the correct values */
 	top:			.8em;
@@ -124,7 +124,7 @@ li.sfHover > a > .sf-sub-indicator {
 
 /*** shadows for all but IE6 ***/
 .sf-shadow ul {
-	background:	url(<%RT->Config->Get('WebPath')%>/NoAuth/css/images/shadow.png) no-repeat bottom right;
+	background:	url(<%RT->Config->Get('WebPath')%>/static/css/images/shadow.png) no-repeat bottom right;
 	padding: 0 8px 9px 0;
 	-moz-border-radius-bottomleft: 17px;
 	-moz-border-radius-topright: 17px;
diff --git a/share/html/NoAuth/css/base/tablesorter.css b/share/html/NoAuth/css/base/tablesorter.css
index 34d8c9c..6424568 100644
--- a/share/html/NoAuth/css/base/tablesorter.css
+++ b/share/html/NoAuth/css/base/tablesorter.css
@@ -26,7 +26,7 @@ table.tablesorter thead tr th, table.tablesorter tfoot tr th {
 	padding: 4px;
 }
 table.tablesorter thead tr .header {
-	background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/tablesorter/bg.gif);
+	background-image: url(<%RT->Config->Get('WebPath')%>/static/images/tablesorter/bg.gif);
 	background-repeat: no-repeat;
 	background-position: center right;
 	cursor: pointer;
@@ -42,10 +42,10 @@ table.tablesorter tbody tr.odd td {
 	background-color:#F0F0F6;
 }
 table.tablesorter thead tr .headerSortUp {
-	background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/tablesorter/asc.gif);
+	background-image: url(<%RT->Config->Get('WebPath')%>/static/images/tablesorter/asc.gif);
 }
 table.tablesorter thead tr .headerSortDown {
-	background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/tablesorter/desc.gif);
+	background-image: url(<%RT->Config->Get('WebPath')%>/static/images/tablesorter/desc.gif);
 }
 table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
 background-color: #8dbdd8;
diff --git a/share/html/NoAuth/css/base/ticket.css b/share/html/NoAuth/css/base/ticket.css
index 4865653..1c40229 100644
--- a/share/html/NoAuth/css/base/ticket.css
+++ b/share/html/NoAuth/css/base/ticket.css
@@ -58,7 +58,7 @@
 }
 
 #requestor-accordion h3 .ui-icon {
-    background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/jquery_ui/ui-icons_4488cc_256x240.png);
+    background-image: url(<%RT->Config->Get('WebPath')%>/static/images/jquery_ui/ui-icons_4488cc_256x240.png);
     left: 0;
 }
 
diff --git a/share/html/NoAuth/css/web2/boxes.css b/share/html/NoAuth/css/web2/boxes.css
index 3c87c8d..785bf41 100644
--- a/share/html/NoAuth/css/web2/boxes.css
+++ b/share/html/NoAuth/css/web2/boxes.css
@@ -170,7 +170,7 @@
   margin-top: 0.6em;
   width: 20px;
 
-  background: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/css/rollup-arrow.gif) no-repeat center 0;
+  background: url(<%RT->Config->Get('WebPath')%>/static/images/css/rollup-arrow.gif) no-repeat center 0;
 
   position: absolute;
   top: -1em;
@@ -187,5 +187,5 @@
 }
 
 .titlebox.rolled-up .titlebox-title .widget a {
-    background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/css/rolldown-arrow.gif);
+    background-image: url(<%RT->Config->Get('WebPath')%>/static/images/css/rolldown-arrow.gif);
 }
diff --git a/share/html/NoAuth/css/web2/layout.css b/share/html/NoAuth/css/web2/layout.css
index 72a74e9..c1d8d83 100644
--- a/share/html/NoAuth/css/web2/layout.css
+++ b/share/html/NoAuth/css/web2/layout.css
@@ -50,7 +50,7 @@
 body {
     padding:0;
     margin:0;
-    background: #547CCC url(<%RT->Config->Get('WebPath')%>/NoAuth/css/web2/images/background-gradient.png) top left repeat-x ;
+    background: #547CCC url(<%RT->Config->Get('WebPath')%>/static/css/web2/images/background-gradient.png) top left repeat-x ;
     font-family: arial, helvetica, sans-serif;
     color: #000000;
 }
@@ -106,7 +106,7 @@ div#footer #time {
 
 div#footer #bpscredits {
  text-align: right;
- background: url(<%RT->Config->Get('WebPath')%>/NoAuth/images/bpslogo.png) no-repeat top right;
+ background: url(<%RT->Config->Get('WebPath')%>/static/images/bpslogo.png) no-repeat top right;
  padding-top: 4em;
 }
 
diff --git a/share/html/NoAuth/css/web2/msie6.css b/share/html/NoAuth/css/web2/msie6.css
index a632750..2b57ac0 100644
--- a/share/html/NoAuth/css/web2/msie6.css
+++ b/share/html/NoAuth/css/web2/msie6.css
@@ -87,10 +87,10 @@ div#page-navigation {
 }
 
 #prefs-menu .sf-sub-indicator {
-    background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/css/images/arrows-grey.gif);
+    background-image: url(<%RT->Config->Get('WebPath')%>/static/css/images/arrows-grey.gif);
 }
 
 #app-nav .sf-sub-indicator {
-    background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/css/images/arrows-grey.gif);
+    background-image: url(<%RT->Config->Get('WebPath')%>/static/css/images/arrows-grey.gif);
 }
 
diff --git a/share/html/NoAuth/css/web2/nav.css b/share/html/NoAuth/css/web2/nav.css
index e404b61..caa95e4 100644
--- a/share/html/NoAuth/css/web2/nav.css
+++ b/share/html/NoAuth/css/web2/nav.css
@@ -64,7 +64,7 @@
 }
 
 .sf-sub-indicator {
-    background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/css/images/arrows-grey.png);
+    background-image: url(<%RT->Config->Get('WebPath')%>/static/css/images/arrows-grey.png);
     margin-top: -3px;
 }
 
@@ -98,7 +98,7 @@
 }
 
 #prefs-menu .sf-sub-indicator {
-    background-image: url(<%RT->Config->Get('WebPath')%>/NoAuth/css/images/arrows-grey.png);
+    background-image: url(<%RT->Config->Get('WebPath')%>/static/css/images/arrows-grey.png);
     margin-top: 0;
 }
 
diff --git a/share/html/NoAuth/js/util.js b/share/html/NoAuth/js/util.js
index 6e045a4..eef7ab6 100644
--- a/share/html/NoAuth/js/util.js
+++ b/share/html/NoAuth/js/util.js
@@ -311,7 +311,7 @@ function ReplaceAllTextareas(encoded) {
 
 
             CKEDITOR.replace(textArea.name,{width:'100%',height:<% RT->Config->Get('MessageBoxRichTextHeight') |n,j%>});
-            CKEDITOR.basePath = <%RT->Config->Get('WebPath')|n,j%>+"/NoAuth/RichText/";
+            CKEDITOR.basePath = <%RT->Config->Get('WebPath')|n,j%>+"/static/RichText/";
 
             jQuery("#" + textArea.name + "___Frame").addClass("richtext-editor");
         }
diff --git a/share/html/Ticket/Elements/Bookmark b/share/html/Ticket/Elements/Bookmark
index 21c8104..ca7d7c1 100644
--- a/share/html/Ticket/Elements/Bookmark
+++ b/share/html/Ticket/Elements/Bookmark
@@ -65,9 +65,9 @@ $Toggle => 0
 % my $url = RT->Config->Get('WebPath') ."/Helpers/Toggle/TicketBookmark?id=". $id;
 <a align="right" href="<% $url %>" onclick="jQuery('.toggle-bookmark-'+<% $id |n,j%>).load(<% $url |n,j %>); return false;" >
 % if ( $is_bookmarked ) {
-<img src="<% RT->Config->Get('WebPath') %>/NoAuth/images/star.gif" alt="<% loc('Remove Bookmark') %>" style="border-style: none" />
+<img src="<% RT->Config->Get('WebPath') %>/static/images/star.gif" alt="<% loc('Remove Bookmark') %>" style="border-style: none" />
 % } else {
-<img src="<% RT->Config->Get('WebPath') %>/NoAuth/images/empty_star.gif" alt="<% loc('Add Bookmark') %>" style="border-style: none" />
+<img src="<% RT->Config->Get('WebPath') %>/static/images/empty_star.gif" alt="<% loc('Add Bookmark') %>" style="border-style: none" />
 % }
 </a>
 </span>
diff --git a/share/html/m/_elements/raw_style b/share/html/m/_elements/raw_style
index e19e2a6..e199897 100644
--- a/share/html/m/_elements/raw_style
+++ b/share/html/m/_elements/raw_style
@@ -369,7 +369,7 @@ div#login-box input[type=text], div#login-box input[type=password] {
 
 #bpscredits #copyright {
     padding-top: 4em;
-    background: white url(<%RT->Config->Get('WebPath')%>/NoAuth/images/bpslogo.png) no-repeat top right;
+    background: white url(<%RT->Config->Get('WebPath')%>/static/images/bpslogo.png) no-repeat top right;
 }
 
 
diff --git a/t/api/attachment_filename.t b/t/api/attachment_filename.t
index 6bfc707..aa8acd2 100644
--- a/t/api/attachment_filename.t
+++ b/t/api/attachment_filename.t
@@ -10,18 +10,18 @@ my $mime   = MIME::Entity->build(
 );
 
 $mime->attach(
-    Path     => 'share/html/NoAuth/images/bpslogo.png',
+    Path     => 'share/static/images/bpslogo.png',
     Type     => 'image/png',
 );
 
 $mime->attach(
-    Path     => 'share/html/NoAuth/images/bpslogo.png',
+    Path     => 'share/static/images/bpslogo.png',
     Type     => 'image/png',
     Filename => 'bpslogo.png',
 );
 
 $mime->attach(
-    Path     => 'share/html/NoAuth/images/bpslogo.png',
+    Path     => 'share/static/images/bpslogo.png',
     Filename => 'images/bpslogo.png',
     Type     => 'image/png',
 );
diff --git a/t/articles/upload-customfields.t b/t/articles/upload-customfields.t
index e5ed5d1..c75fbcf 100644
--- a/t/articles/upload-customfields.t
+++ b/t/articles/upload-customfields.t
@@ -8,12 +8,12 @@ use RT;
 my $logo;
 BEGIN {
     $logo =
-      -e $RT::MasonComponentRoot . '/NoAuth/images/bpslogo.png'
+      -e $RT::StaticPath . '/images/bpslogo.png'
       ? 'bpslogo.png'
       : 'bplogo.gif';
 }
 
-use constant ImageFile => $RT::MasonComponentRoot . "/NoAuth/images/$logo";
+use constant ImageFile => $RT::StaticPath . "/images/$logo";
 
 use constant ImageFileContent => do {
     local $/;
diff --git a/t/data/configs/apache2.2+fastcgi.conf.in b/t/data/configs/apache2.2+fastcgi.conf.in
index 03eaa9a..31f1dd7 100644
--- a/t/data/configs/apache2.2+fastcgi.conf.in
+++ b/t/data/configs/apache2.2+fastcgi.conf.in
@@ -34,7 +34,7 @@ FastCgiServer %%RT_SBIN_PATH%%/rt-server.fcgi \
     -initial-env RT_SITE_CONFIG=%%RT_SITE_CONFIG%% \
     -initial-env RT_TESTING=1
 
-Alias /NoAuth/images/ %%DOCUMENT_ROOT%%/NoAuth/images/
+Alias /static/images/ %%DOCUMENT_ROOT%%/static/images/
 ScriptAlias / %%RT_SBIN_PATH%%/rt-server.fcgi/
 
 DocumentRoot "%%DOCUMENT_ROOT%%"
diff --git a/t/mail/gateway.t b/t/mail/gateway.t
index 7358468..faabfeb 100644
--- a/t/mail/gateway.t
+++ b/t/mail/gateway.t
@@ -420,7 +420,7 @@ EOF
 diag "Testing preservation of binary attachments";
 {
     # Get a binary blob (Best Practical logo) 
-    my $LOGO_FILE = $RT::MasonComponentRoot .'/NoAuth/images/bpslogo.png';
+    my $LOGO_FILE = $RT::StaticPath .'/images/bpslogo.png';
 
     # Create a mime entity with an attachment
     my $entity = MIME::Entity->build(
diff --git a/t/web/attachments.t b/t/web/attachments.t
index b518ec1..ba5c712 100644
--- a/t/web/attachments.t
+++ b/t/web/attachments.t
@@ -3,8 +3,8 @@ use warnings;
 
 use RT::Test tests => 33;
 
-use constant LogoFile => $RT::MasonComponentRoot .'/NoAuth/images/bpslogo.png';
-use constant FaviconFile => $RT::MasonComponentRoot .'/NoAuth/images/favicon.png';
+use constant LogoFile => $RT::StaticPath .'/images/bpslogo.png';
+use constant FaviconFile => $RT::StaticPath .'/images/favicon.png';
 use constant TextFile => $RT::MasonComponentRoot .'/NoAuth/css/print.css';
 
 my ($baseurl, $m) = RT::Test->started_ok;
diff --git a/t/web/basic.t b/t/web/basic.t
index e61e80e..a8d3fd8 100644
--- a/t/web/basic.t
+++ b/t/web/basic.t
@@ -78,10 +78,10 @@ my $url = $agent->rt_base_url;
 
 TODO: {
     todo_skip("Need to handle mason trying to compile images",1);
-$agent->get( $url."NoAuth/images/test.png" );
+$agent->get( $url."static/images/test.png" );
 my $file = RT::Test::get_relocatable_file(
   File::Spec->catfile(
-    qw(.. .. share html NoAuth images test.png)
+    qw(.. .. share static images test.png)
   )
 );
 is(
diff --git a/t/web/cf_access.t b/t/web/cf_access.t
index 675fa21..ec095c0 100644
--- a/t/web/cf_access.t
+++ b/t/web/cf_access.t
@@ -5,7 +5,7 @@ use RT::Test tests => 32;
 
 my ($baseurl, $m) = RT::Test->started_ok;
 
-use constant ImageFile => $RT::MasonComponentRoot .'/NoAuth/images/bpslogo.png';
+use constant ImageFile => $RT::StaticPath .'/images/bpslogo.png';
 use constant ImageFileContent => RT::Test->file_content(ImageFile);
 
 ok $m->login, 'logged in';
diff --git a/t/web/command_line.t b/t/web/command_line.t
index 7c444f4..8285552 100644
--- a/t/web/command_line.t
+++ b/t/web/command_line.t
@@ -124,7 +124,7 @@ ok($val,$msg);
     # text attachment
     check_attachment($test_email);
     # binary attachment
-    check_attachment($RT::MasonComponentRoot.'/NoAuth/images/bpslogo.png');
+    check_attachment($RT::StaticPath . '/images/bpslogo.png');
 
 # change a ticket's Owner
 expect_send("edit ticket/$ticket_id set owner=root", 'Changing owner...');
diff --git a/t/web/csrf.t b/t/web/csrf.t
index bdafd55..753bef5 100644
--- a/t/web/csrf.t
+++ b/t/web/csrf.t
@@ -136,7 +136,7 @@ $m->content_contains("Create a new ticket", 'ticket create page');
 $m->form_name('TicketCreate');
 $m->field('Subject', 'Attachments test');
 
-my $logofile = "$RT::MasonComponentRoot/NoAuth/images/bpslogo.png";
+my $logofile = "$RT::StaticPath/images/bpslogo.png";
 open LOGO, "<", $logofile or die "Can't open logo file: $!";
 binmode LOGO;
 my $logo_contents = do {local $/; <LOGO>};

commit 724e85655a97b15cdca7316d5e17194dcde308f1
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Dec 19 20:27:51 2012 -0500

    Adjust and remove tests which dealt with static-through-Mason work-arounds

diff --git a/t/web/basic.t b/t/web/basic.t
index a8d3fd8..cea0d07 100644
--- a/t/web/basic.t
+++ b/t/web/basic.t
@@ -76,8 +76,6 @@ my $url = $agent->rt_base_url;
 }
 
 
-TODO: {
-    todo_skip("Need to handle mason trying to compile images",1);
 $agent->get( $url."static/images/test.png" );
 my $file = RT::Test::get_relocatable_file(
   File::Spec->catfile(
@@ -89,7 +87,6 @@ is(
     -s $file,
     "got a file of the correct size ($file)",
 );
-}
 
 #
 # XXX: hey-ho, we have these tests in t/web/query-builder
diff --git a/t/web/path-traversal.t b/t/web/path-traversal.t
index 5d5c954..cb44125 100644
--- a/t/web/path-traversal.t
+++ b/t/web/path-traversal.t
@@ -1,35 +1,29 @@
 use strict;
 use warnings;
 
-use RT::Test tests => 22;
+use RT::Test tests => undef;
 
 my ($baseurl, $agent) = RT::Test->started_ok;
 
 $agent->get("$baseurl/NoAuth/../Elements/HeaderJavascript");
 is($agent->status, 400);
-$agent->warning_like(qr/Invalid request.*aborting/,);
+$agent->warning_like(qr/Invalid request.*aborting/);
 
 $agent->get("$baseurl/NoAuth/../%45lements/HeaderJavascript");
 is($agent->status, 400);
-$agent->warning_like(qr/Invalid request.*aborting/,);
+$agent->warning_like(qr/Invalid request.*aborting/);
 
 $agent->get("$baseurl/NoAuth/%2E%2E/Elements/HeaderJavascript");
 is($agent->status, 400);
-$agent->warning_like(qr/Invalid request.*aborting/,);
+$agent->warning_like(qr/Invalid request.*aborting/);
 
 $agent->get("$baseurl/NoAuth/../../../etc/RT_Config.pm");
 is($agent->status, 400);
-SKIP: {
-    skip "Apache rejects busting up above / for us", 2 if $ENV{RT_TEST_WEB_HANDLER} =~ /^apache/;
-    $agent->warning_like(qr/Invalid request.*aborting/,);
-};
+$agent->warning_like(qr/Invalid request.*aborting/) unless $ENV{RT_TEST_WEB_HANDLER} =~ /^apache/;
 
-$agent->get("$baseurl/NoAuth/css/web2/images/../../../../../../etc/RT_Config.pm");
-is($agent->status, 400);
-SKIP: {
-    skip "Apache rejects busting up above / for us", 2 if $ENV{RT_TEST_WEB_HANDLER} =~ /^apache/;
-    $agent->warning_like(qr/Invalid request.*aborting/,);
-};
+$agent->get("$baseurl/static/css/web2/images/../../../../../../etc/RT_Config.pm");
+# Apache hardcodes a 400m but the static handler returns a 403 for traversal too high
+is($agent->status, $ENV{RT_TEST_WEB_HANDLER} =~ /^apache/ ? 400 : 403);
 
 # do not reject these URLs, even though they contain /. outside the path
 $agent->get("$baseurl/index.html?ignored=%2F%2E");
@@ -44,3 +38,4 @@ is($agent->status, 200);
 $agent->get("$baseurl/index.html#/.");
 is($agent->status, 200);
 
+done_testing;
diff --git a/t/web/richtext-autohandler.t b/t/web/richtext-autohandler.t
deleted file mode 100644
index 724a7b3..0000000
--- a/t/web/richtext-autohandler.t
+++ /dev/null
@@ -1,14 +0,0 @@
-use strict;
-use warnings;
-
-use RT::Test tests => 9;
-my ($baseurl, $agent) = RT::Test->started_ok;
-
-$agent->get("$baseurl/NoAuth/RichText/ckeditor/config.js");
-is($agent->status, 403);
-$agent->content_lacks("config.disableNativeSpellChecker");
-
-$agent->get_ok("/NoAuth/RichText/config.js");
-$agent->content_contains("config.disableNativeSpellChecker");
-
-$agent->warning_like(qr/Invalid request directly to the rich text editor/,);

commit ee09f740368dce8cb30a3587ed701a1a7d430ca0
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Dec 19 20:25:34 2012 -0500

    Update deployment configurations

diff --git a/devel/tools/rt-apache b/devel/tools/rt-apache
index af87ed2..64f13f6 100755
--- a/devel/tools/rt-apache
+++ b/devel/tools/rt-apache
@@ -330,8 +330,8 @@ DocumentRoot $RTHOME/share/html
     Allow from all
 </Directory>
 
-Alias $PATH/NoAuth/images/ $RTHOME/share/html/NoAuth/images/
-<Directory $RTHOME/share/html/NoAuth/images>
+Alias $PATH/static/ /opt/rt4/share/static/
+<Directory $RTHOME/share/static>
     Order allow,deny
     Allow from all
 </Directory>
diff --git a/docs/web_deployment.pod b/docs/web_deployment.pod
index 5d2cd4c..d1baaad 100644
--- a/docs/web_deployment.pod
+++ b/docs/web_deployment.pod
@@ -52,7 +52,7 @@ spontaneously logged in as other users in the system.
 
         AddDefaultCharset UTF-8
 
-        Alias /NoAuth/images/ /opt/rt4/share/html/NoAuth/images/
+        Alias /static/ /opt/rt4/share/static/
         ScriptAlias / /opt/rt4/sbin/rt-server.fcgi/
 
         DocumentRoot "/opt/rt4/share/html"
@@ -89,7 +89,7 @@ to return to the old default.
 
         AddDefaultCharset UTF-8
 
-        Alias /NoAuth/images/ /opt/rt4/share/html/NoAuth/images/
+        Alias /static/ /opt/rt4/share/static/
         ScriptAlias / /opt/rt4/sbin/rt-server.fcgi/
 
         DocumentRoot "/opt/rt4/share/html"
@@ -121,6 +121,7 @@ one the server is configured for.
 
         AddDefaultCharset UTF-8
 
+        Alias /static/ /opt/rt4/share/static/
         DocumentRoot "/opt/rt4/share/html"
         <Location />
             Order allow,deny
@@ -183,8 +184,8 @@ With the nginx configuration:
             fastcgi_pass 127.0.0.1:9000;
         }
 
-        location /NoAuth/images {
-            root /opt/rt4/share/html;
+        location /static {
+            root /opt/rt4/share/;
         }
     }
 
@@ -194,9 +195,9 @@ With the nginx configuration:
     server.modules += ( "mod_fastcgi" )
     $HTTP["host"] =~ "^rt.example.com" {
         alias.url = (
-            "/NoAuth/images/" => "/opt/rt4/share/html/NoAuth/images/",
+            "/static/" => "/opt/rt4/share/static/",
         )
-        $HTTP["url"] !~ "^/NoAuth/images/" {
+        $HTTP["url"] !~ "^/static/" {
             fastcgi.server = (
                 "/" => (
                     "rt" => (
@@ -228,7 +229,7 @@ C</opt/rt4/share/html/>, otherwise RT's source will be served from C</>.
 For example: if you're using the sample FastCGI config above, you might change
 the relevant directives to:
 
-    Alias /rt/NoAuth/images/ /opt/rt4/share/html/NoAuth/images/
+    Alias /rt/static/ /opt/rt4/share/static/
     ScriptAlias /rt /opt/rt4/sbin/rt-server.fcgi/
 
     # Set DocumentRoot as appropriate for the other content you want to serve

commit cf145cf40812c36b194bbe379d41a2038e694afe
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Dec 19 19:03:19 2012 -0500

    Adjust policy tests to account for share/html/ having no images

diff --git a/t/99-policy.t b/t/99-policy.t
index 4413040..35b5cc6 100644
--- a/t/99-policy.t
+++ b/t/99-policy.t
@@ -99,7 +99,10 @@ check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1, bps_tag => 1 )
 check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1, bps_tag => 1 )
     for grep {m{^devel/tools/} and not m{/(localhost\.(crt|key)|mime\.types)$}} @files;
 
-check( $_, exec => -1, bps_tag => not m{\.(png|gif|jpe?g)$} )
+check( $_, exec => -1 )
+    for grep {m{^share/static/}} @files;
+
+check( $_, exec => -1, bps_tag => 1 )
     for grep {m{^share/html/}} @files;
 
 check( $_, exec => -1 )

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


More information about the Rt-commit mailing list