summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2011-10-12 17:03:54 +0000
committerhallgren <hallgren@chalmers.se>2011-10-12 17:03:54 +0000
commit44d1a5a9f71b03d9aceeccd760a63fcdc45f8bad (patch)
treed51076a708997d6f1af6ac0deefd535bbc25f804
parent0aba45560d2033c37c3d2e876e6f3ef89e1554d6 (diff)
Improvements of "gf -server" mode and related setup
"gf -server" mode now contains everything needed to run the minibar and the grammar editor (including example-based grammar writing). The Setup.hs script installs the required files where gf -server can find them. These files have been moved to a new directory: src/www. The separate server program pgf-http is now obsolete.
-rw-r--r--Setup.hs17
-rw-r--r--WebSetup.hs62
-rw-r--r--gf.cabal13
-rw-r--r--src/compiler/GFServer.hs20
-rw-r--r--src/www/gfse/Makefile (renamed from src/editor/simple/Makefile)0
-rw-r--r--src/www/gfse/P/1306856253_weather_06.png (renamed from src/editor/simple/P/1306856253_weather_06.png)bin2311 -> 2311 bytes
-rw-r--r--src/www/gfse/P/1307545089_weather_04.png (renamed from src/editor/simple/P/1307545089_weather_04.png)bin2376 -> 2376 bytes
-rw-r--r--src/www/gfse/P/w1s.jpg (renamed from src/editor/simple/P/w1s.jpg)bin26163 -> 26163 bytes
-rw-r--r--src/www/gfse/P/w2s.jpg (renamed from src/editor/simple/P/w2s.jpg)bin25953 -> 25953 bytes
-rw-r--r--src/www/gfse/P/w3s.jpg (renamed from src/editor/simple/P/w3s.jpg)bin29664 -> 29664 bytes
-rw-r--r--src/www/gfse/P/w4s.jpg (renamed from src/editor/simple/P/w4s.jpg)bin22005 -> 22005 bytes
-rw-r--r--src/www/gfse/TODO (renamed from src/editor/simple/TODO)0
-rw-r--r--src/www/gfse/about.html (renamed from src/editor/simple/about.html)0
-rw-r--r--src/www/gfse/cloud.js (renamed from src/editor/simple/cloud.js)0
-rw-r--r--src/www/gfse/cloud2.js (renamed from src/editor/simple/cloud2.js)0
-rw-r--r--src/www/gfse/editor.css (renamed from src/editor/simple/editor.css)0
-rw-r--r--src/www/gfse/editor.js (renamed from src/editor/simple/editor.js)0
-rw-r--r--src/www/gfse/example_based.js (renamed from src/editor/simple/example_based.js)0
-rw-r--r--src/www/gfse/gf_abs.js (renamed from src/editor/simple/gf_abs.js)0
-rw-r--r--src/www/gfse/gfse.manifest (renamed from src/editor/simple/gfse.manifest)0
-rw-r--r--src/www/gfse/grammars.cgi (renamed from src/editor/simple/grammars.cgi)0
-rw-r--r--src/www/gfse/index.html (renamed from src/editor/simple/index.html)4
-rw-r--r--src/www/gfse/localstorage.js (renamed from src/editor/simple/localstorage.js)0
-rw-r--r--src/www/gfse/molto.css (renamed from src/editor/simple/molto.css)0
-rw-r--r--src/www/gfse/save.hs (renamed from src/editor/simple/save.hs)0
-rw-r--r--src/www/gfse/share.html (renamed from src/editor/simple/share.html)4
-rw-r--r--src/www/gfse/slideshow.js (renamed from src/editor/simple/slideshow.js)0
-rw-r--r--src/www/gfse/upload.cgi (renamed from src/editor/simple/upload.cgi)0
-rw-r--r--src/www/index.html18
-rw-r--r--src/www/minibar/about.html (renamed from src/runtime/javascript/minibar/about.html)0
-rw-r--r--src/www/minibar/align-btn.png (renamed from src/runtime/javascript/minibar/align-btn.png)bin138 -> 138 bytes
-rw-r--r--src/www/minibar/brushed-metal.png (renamed from src/runtime/javascript/minibar/brushed-metal.png)bin36233 -> 36233 bytes
-rw-r--r--src/www/minibar/example.html (renamed from src/runtime/javascript/minibar/example.html)0
-rw-r--r--src/www/minibar/feedback.cgi (renamed from src/runtime/javascript/minibar/feedback.cgi)0
-rw-r--r--src/www/minibar/feedback.html (renamed from src/runtime/javascript/minibar/feedback.html)0
-rw-r--r--src/www/minibar/gf-web-api-examples.html (renamed from src/runtime/javascript/minibar/gf-web-api-examples.html)0
-rw-r--r--src/www/minibar/minibar-api.html (renamed from src/runtime/javascript/minibar/minibar-api.html)0
-rw-r--r--src/www/minibar/minibar.css (renamed from src/runtime/javascript/minibar/minibar.css)0
-rw-r--r--src/www/minibar/minibar.html (renamed from src/runtime/javascript/minibar/minibar.html)0
-rw-r--r--src/www/minibar/minibar.js (renamed from src/runtime/javascript/minibar/minibar.js)0
-rw-r--r--src/www/minibar/minibar_input.js (renamed from src/runtime/javascript/minibar/minibar_input.js)0
-rw-r--r--src/www/minibar/minibar_online.js (renamed from src/runtime/javascript/minibar/minibar_online.js)0
-rw-r--r--src/www/minibar/minibar_support.js (renamed from src/runtime/javascript/minibar/minibar_support.js)0
-rw-r--r--src/www/minibar/minibar_translations.js (renamed from src/runtime/javascript/minibar/minibar_translations.js)0
-rw-r--r--src/www/minibar/pgf_offline.js (renamed from src/runtime/javascript/minibar/pgf_offline.js)0
-rw-r--r--src/www/minibar/pgf_online.js (renamed from src/runtime/javascript/minibar/pgf_online.js)0
-rw-r--r--src/www/minibar/phrasebook.html (renamed from src/runtime/javascript/minibar/phrasebook.html)0
-rw-r--r--src/www/minibar/saldotest.html (renamed from src/runtime/javascript/minibar/saldotest.html)0
-rw-r--r--src/www/minibar/saldotest.js (renamed from src/runtime/javascript/minibar/saldotest.js)0
-rw-r--r--src/www/minibar/support.js (renamed from src/runtime/javascript/minibar/support.js)0
-rw-r--r--src/www/minibar/tree-btn.png (renamed from src/runtime/javascript/minibar/tree-btn.png)bin149 -> 149 bytes
51 files changed, 118 insertions, 20 deletions
diff --git a/Setup.hs b/Setup.hs
index d136c943c..68d4035a4 100644
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,4 +1,3 @@
-module Main where
import Distribution.Simple
import Distribution.Simple.LocalBuildInfo
@@ -7,26 +6,34 @@ import Distribution.Simple.Utils
import Distribution.Simple.Setup
import Distribution.PackageDescription hiding (Flag)
import Control.Monad
-import Data.Maybe
import Data.List(isPrefixOf)
import System.IO
import System.Cmd
import System.FilePath
import System.Directory
-import System.Environment
import System.Process
import System.Exit
+import WebSetup
+
main :: IO ()
main = defaultMainWithHooks simpleUserHooks{ preBuild =checkRGLArgs
, postBuild=buildRGL
, preInst =checkRGLArgs
- , postInst =installRGL
+ , postInst =gfPostInst
, preCopy =checkRGLArgs
- , postCopy =copyRGL
+ , postCopy =gfPostCopy
, sDistHook=sdistRGL
, runTests =testRGL
}
+ where
+ gfPostInst args flags pkg lbi =
+ do installWeb args flags pkg lbi
+ installRGL args flags pkg lbi
+
+ gfPostCopy args flags pkg lbi =
+ do copyWeb args flags pkg lbi
+ copyRGL args flags pkg lbi
--------------------------------------------------------
-- Commands for building the Resource Grammar Library
diff --git a/WebSetup.hs b/WebSetup.hs
new file mode 100644
index 000000000..c0ac0a66c
--- /dev/null
+++ b/WebSetup.hs
@@ -0,0 +1,62 @@
+module WebSetup(installWeb,copyWeb) where
+
+import System.Directory(createDirectoryIfMissing,copyFile,removeFile)
+import System.FilePath((</>))
+import System.Cmd(system)
+import System.Exit(ExitCode(..))
+import Distribution.Simple.Setup(Flag(..),CopyDest(..),copyDest)
+import Distribution.Simple.LocalBuildInfo(datadir,buildDir,absoluteInstallDirs)
+
+{-
+ To test the GF web services, the minibar and the grammar editor, use
+ "cabal install" (or "runhaskell Setup.hs install") to install gf as usual.
+ Then start the server with the command "gf -server" and
+ open http://localhost:41296/minibar/minibar.html in your web browser
+ (Firefox, Safari, Opera or Chrome). The example grammars listed below will
+ be available in the minibar.
+-}
+
+example_grammars = -- :: [(pgf, tmp, src)]
+ [("Foods.pgf","foods","contrib"</>"summerschool"</>"foods"</>"Foods???.gf"),
+ ("Letter.pgf","letter","examples"</>"letter"</>"Letter???.gf")]
+
+
+installWeb args flags pki lbi = setupWeb args dest pki lbi
+ where
+ dest = NoCopyDest
+
+copyWeb args flags pki lbi = setupWeb args dest pki lbi
+ where
+ dest = case copyDest flags of
+ NoFlag -> NoCopyDest
+ Flag d -> d
+
+setupWeb args dest pkg lbi =
+ do putStrLn "setupWeb"
+ mapM_ (createDirectoryIfMissing True) [grammars_dir,cloud_dir]
+ mapM_ build_pgf example_grammars
+ where
+ grammars_dir = www_dir </> "grammars"
+ cloud_dir = www_dir </> "tmp" -- hmm
+ www_dir = datadir (absoluteInstallDirs pkg lbi dest) </> "www"
+ gfo_dir = buildDir lbi </> "gfo"
+
+ build_pgf (pgf,tmp,src) =
+ do createDirectoryIfMissing True tmp_dir
+ execute cmd
+ copyFile pgf (grammars_dir</>pgf)
+ putStrLn (grammars_dir</>pgf)
+ removeFile pgf
+ where
+ tmp_dir = gfo_dir</>tmp
+ cmd = "gf -make -s -optimize-pgf --gfo-dir="++tmp_dir++
+ -- " --output-dir="++grammars_dir++ -- has no effect?!
+ " "++src
+
+execute command =
+ do putStrLn command
+ e <- system command
+ case e of
+ ExitSuccess -> return ()
+ _ -> fail "Command failed"
+ return ()
diff --git a/gf.cabal b/gf.cabal
index 748066d31..105415964 100644
--- a/gf.cabal
+++ b/gf.cabal
@@ -12,10 +12,23 @@ homepage: http://www.grammaticalframework.org/
bug-reports: http://code.google.com/p/grammatical-framework/issues/list
tested-with: GHC==6.12.3, GHC==7.0.3
+data-dir: src
+data-files: www/index.html
+ www/gfse/*.html
+ www/gfse/*.css
+ www/gfse/*.js
+ www/gfse/P/*.png
+ www/gfse/P/*.jpg
+ www/minibar/*.html
+ www/minibar/*.css
+ www/minibar/*.js
+ www/minibar/*.png
+
source-repository head
type: darcs
location: http://www.grammaticalframework.org/
+
flag interrupt
Description: Enable Ctrl+Break in the shell
Default: True
diff --git a/src/compiler/GFServer.hs b/src/compiler/GFServer.hs
index 6e9b26a8d..bc5bdbdaf 100644
--- a/src/compiler/GFServer.hs
+++ b/src/compiler/GFServer.hs
@@ -27,21 +27,19 @@ import qualified ExampleService as ES
import Paths_gf(getDataDir)
import RunHTTP(Options(..),cgiHandler)
--- * Configuraiton
-
-options = Options { documentRoot = "." {-datadir</>"www"-}, port = gfport }
-gfport = 41296
-
-- * HTTP server
server execute1 state0 =
do state <- newMVar M.empty
cache <- PS.newPGFCache
- --datadir <- getDataDir
- putStrLn $ "Starting server on port "++show gfport
- initServer gfport (modifyMVar state . handle state0 cache execute1)
+ datadir <- getDataDir
+ let options = Options { documentRoot = datadir</>"www", port = 41296 }
+ putStrLn $ "Starting HTTP server, open http://localhost:"
+ ++show (port options)++"/ in your web browser."
+ initServer (port options)
+ (modifyMVar state . handle options state0 cache execute1)
-- * HTTP request handler
-handle state0 cache execute1
+handle options state0 cache execute1
rq@(Request method URI{uriPath=upath,uriQuery=q} hdrs body) state =
do let qs = decodeQ $
case method of
@@ -67,6 +65,8 @@ handle state0 cache execute1
where
root = documentRoot options
+ translatePath rpath = root</>rpath -- hmm, check for ".."
+
wrapCGI cgi =
do resp <- cgiHandler root (handleErrors . handleCGIErrors $ cgi) rq
return (state,resp)
@@ -191,8 +191,6 @@ escape1 c = [c]
-- * Static content
-translatePath path = documentRoot options</>path -- hmm, check for ".."
-
serveStaticFile path =
do b <- doesDirectoryExist path
let path' = if b then path </> "index.html" else path
diff --git a/src/editor/simple/Makefile b/src/www/gfse/Makefile
index 00a97b337..00a97b337 100644
--- a/src/editor/simple/Makefile
+++ b/src/www/gfse/Makefile
diff --git a/src/editor/simple/P/1306856253_weather_06.png b/src/www/gfse/P/1306856253_weather_06.png
index 3f01afcaa..3f01afcaa 100644
--- a/src/editor/simple/P/1306856253_weather_06.png
+++ b/src/www/gfse/P/1306856253_weather_06.png
Binary files differ
diff --git a/src/editor/simple/P/1307545089_weather_04.png b/src/www/gfse/P/1307545089_weather_04.png
index 8a7f1e3ae..8a7f1e3ae 100644
--- a/src/editor/simple/P/1307545089_weather_04.png
+++ b/src/www/gfse/P/1307545089_weather_04.png
Binary files differ
diff --git a/src/editor/simple/P/w1s.jpg b/src/www/gfse/P/w1s.jpg
index 199fcb7ba..199fcb7ba 100644
--- a/src/editor/simple/P/w1s.jpg
+++ b/src/www/gfse/P/w1s.jpg
Binary files differ
diff --git a/src/editor/simple/P/w2s.jpg b/src/www/gfse/P/w2s.jpg
index 9673758c0..9673758c0 100644
--- a/src/editor/simple/P/w2s.jpg
+++ b/src/www/gfse/P/w2s.jpg
Binary files differ
diff --git a/src/editor/simple/P/w3s.jpg b/src/www/gfse/P/w3s.jpg
index 1a8680ec7..1a8680ec7 100644
--- a/src/editor/simple/P/w3s.jpg
+++ b/src/www/gfse/P/w3s.jpg
Binary files differ
diff --git a/src/editor/simple/P/w4s.jpg b/src/www/gfse/P/w4s.jpg
index 5c685c134..5c685c134 100644
--- a/src/editor/simple/P/w4s.jpg
+++ b/src/www/gfse/P/w4s.jpg
Binary files differ
diff --git a/src/editor/simple/TODO b/src/www/gfse/TODO
index 22974ebe0..22974ebe0 100644
--- a/src/editor/simple/TODO
+++ b/src/www/gfse/TODO
diff --git a/src/editor/simple/about.html b/src/www/gfse/about.html
index 8660621a3..8660621a3 100644
--- a/src/editor/simple/about.html
+++ b/src/www/gfse/about.html
diff --git a/src/editor/simple/cloud.js b/src/www/gfse/cloud.js
index f19b6ee37..f19b6ee37 100644
--- a/src/editor/simple/cloud.js
+++ b/src/www/gfse/cloud.js
diff --git a/src/editor/simple/cloud2.js b/src/www/gfse/cloud2.js
index e32749dc1..e32749dc1 100644
--- a/src/editor/simple/cloud2.js
+++ b/src/www/gfse/cloud2.js
diff --git a/src/editor/simple/editor.css b/src/www/gfse/editor.css
index ef12fe8f5..ef12fe8f5 100644
--- a/src/editor/simple/editor.css
+++ b/src/www/gfse/editor.css
diff --git a/src/editor/simple/editor.js b/src/www/gfse/editor.js
index 859f33a04..859f33a04 100644
--- a/src/editor/simple/editor.js
+++ b/src/www/gfse/editor.js
diff --git a/src/editor/simple/example_based.js b/src/www/gfse/example_based.js
index 5922b60ea..5922b60ea 100644
--- a/src/editor/simple/example_based.js
+++ b/src/www/gfse/example_based.js
diff --git a/src/editor/simple/gf_abs.js b/src/www/gfse/gf_abs.js
index 4efaab89a..4efaab89a 100644
--- a/src/editor/simple/gf_abs.js
+++ b/src/www/gfse/gf_abs.js
diff --git a/src/editor/simple/gfse.manifest b/src/www/gfse/gfse.manifest
index 60c6f3757..60c6f3757 100644
--- a/src/editor/simple/gfse.manifest
+++ b/src/www/gfse/gfse.manifest
diff --git a/src/editor/simple/grammars.cgi b/src/www/gfse/grammars.cgi
index 9f1aa22a6..9f1aa22a6 100644
--- a/src/editor/simple/grammars.cgi
+++ b/src/www/gfse/grammars.cgi
diff --git a/src/editor/simple/index.html b/src/www/gfse/index.html
index 27b053300..c683a1ebf 100644
--- a/src/editor/simple/index.html
+++ b/src/www/gfse/index.html
@@ -32,7 +32,7 @@ This page does not work without JavaScript.
<hr>
<div class=modtime><small>
HTML
-<!-- hhmts start --> Last modified: Mon Oct 10 17:54:37 CEST 2011 <!-- hhmts end -->
+<!-- hhmts start --> Last modified: Mon Oct 10 19:24:05 CEST 2011 <!-- hhmts end -->
</small></div>
<a href="about.html">About</a>
<pre id=debug></pre>
@@ -42,7 +42,7 @@ HTML
<script type="text/javascript" src="gf_abs.js"></script>
<script type="text/javascript" src="example_based.js"></script>
<script type="text/javascript" src="editor.js"></script>
-<script type="text/javascript" src="cloud.js"></script>
+<script type="text/javascript" src="cloud2.js"></script>
<script type="text/javascript" src="sort.js"></script>
</body>
</html>
diff --git a/src/editor/simple/localstorage.js b/src/www/gfse/localstorage.js
index 31201998c..31201998c 100644
--- a/src/editor/simple/localstorage.js
+++ b/src/www/gfse/localstorage.js
diff --git a/src/editor/simple/molto.css b/src/www/gfse/molto.css
index 052dda431..052dda431 100644
--- a/src/editor/simple/molto.css
+++ b/src/www/gfse/molto.css
diff --git a/src/editor/simple/save.hs b/src/www/gfse/save.hs
index 0472ff5e8..0472ff5e8 100644
--- a/src/editor/simple/save.hs
+++ b/src/www/gfse/save.hs
diff --git a/src/editor/simple/share.html b/src/www/gfse/share.html
index 643d298ba..260a7b066 100644
--- a/src/editor/simple/share.html
+++ b/src/www/gfse/share.html
@@ -13,12 +13,12 @@
<hr>
<address></address>
-<!-- hhmts start --> Last modified: Mon Aug 1 16:24:44 CEST 2011 <!-- hhmts end -->
+<!-- hhmts start --> Last modified: Mon Oct 10 20:29:01 CEST 2011 <!-- hhmts end -->
<script type="text/javascript" src="support.js"></script>
<script type="text/javascript" src="localstorage.js"></script>
<script type="text/javascript" src="gf_abs.js"></script>
<script type="text/javascript" src="editor.js"></script>
-<script type="text/javascript" src="cloud.js"></script>
+<script type="text/javascript" src="cloud2.js"></script>
<script type="text/javascript" src="sort.js"></script>
<script type="text/javascript">
download_from_cloud();
diff --git a/src/editor/simple/slideshow.js b/src/www/gfse/slideshow.js
index 307bcd98f..307bcd98f 100644
--- a/src/editor/simple/slideshow.js
+++ b/src/www/gfse/slideshow.js
diff --git a/src/editor/simple/upload.cgi b/src/www/gfse/upload.cgi
index 87b868f53..87b868f53 100644
--- a/src/editor/simple/upload.cgi
+++ b/src/www/gfse/upload.cgi
diff --git a/src/www/index.html b/src/www/index.html
new file mode 100644
index 000000000..b1aa24028
--- /dev/null
+++ b/src/www/index.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+
+<!-- This is the start page served by "gf -server" -->
+
+<title>GF web service</title>
+<h1>GF web service</h1>
+
+<h2>Available web services</h2>
+
+<ul>
+ <li><a href="minibar/minibar.html">Minibar</a>
+ <li><a href="gfse/">GF online editor for simple multilingual grammars</a>
+</ul>
+
+
+<hr>
+
+<a href="http://www.grammaticalframework.org/">Grammatical Framework</a>
diff --git a/src/runtime/javascript/minibar/about.html b/src/www/minibar/about.html
index 69fba5a9d..69fba5a9d 100644
--- a/src/runtime/javascript/minibar/about.html
+++ b/src/www/minibar/about.html
diff --git a/src/runtime/javascript/minibar/align-btn.png b/src/www/minibar/align-btn.png
index ca6a391c1..ca6a391c1 100644
--- a/src/runtime/javascript/minibar/align-btn.png
+++ b/src/www/minibar/align-btn.png
Binary files differ
diff --git a/src/runtime/javascript/minibar/brushed-metal.png b/src/www/minibar/brushed-metal.png
index c2f03fe7d..c2f03fe7d 100644
--- a/src/runtime/javascript/minibar/brushed-metal.png
+++ b/src/www/minibar/brushed-metal.png
Binary files differ
diff --git a/src/runtime/javascript/minibar/example.html b/src/www/minibar/example.html
index 7d78a7ef6..7d78a7ef6 100644
--- a/src/runtime/javascript/minibar/example.html
+++ b/src/www/minibar/example.html
diff --git a/src/runtime/javascript/minibar/feedback.cgi b/src/www/minibar/feedback.cgi
index 0d382f22d..0d382f22d 100644
--- a/src/runtime/javascript/minibar/feedback.cgi
+++ b/src/www/minibar/feedback.cgi
diff --git a/src/runtime/javascript/minibar/feedback.html b/src/www/minibar/feedback.html
index 94b15a482..94b15a482 100644
--- a/src/runtime/javascript/minibar/feedback.html
+++ b/src/www/minibar/feedback.html
diff --git a/src/runtime/javascript/minibar/gf-web-api-examples.html b/src/www/minibar/gf-web-api-examples.html
index 194967de0..194967de0 100644
--- a/src/runtime/javascript/minibar/gf-web-api-examples.html
+++ b/src/www/minibar/gf-web-api-examples.html
diff --git a/src/runtime/javascript/minibar/minibar-api.html b/src/www/minibar/minibar-api.html
index 2c5a8ecc0..2c5a8ecc0 100644
--- a/src/runtime/javascript/minibar/minibar-api.html
+++ b/src/www/minibar/minibar-api.html
diff --git a/src/runtime/javascript/minibar/minibar.css b/src/www/minibar/minibar.css
index 4d2094066..4d2094066 100644
--- a/src/runtime/javascript/minibar/minibar.css
+++ b/src/www/minibar/minibar.css
diff --git a/src/runtime/javascript/minibar/minibar.html b/src/www/minibar/minibar.html
index 086b8fad6..086b8fad6 100644
--- a/src/runtime/javascript/minibar/minibar.html
+++ b/src/www/minibar/minibar.html
diff --git a/src/runtime/javascript/minibar/minibar.js b/src/www/minibar/minibar.js
index 778a3957b..778a3957b 100644
--- a/src/runtime/javascript/minibar/minibar.js
+++ b/src/www/minibar/minibar.js
diff --git a/src/runtime/javascript/minibar/minibar_input.js b/src/www/minibar/minibar_input.js
index 8075eb8ea..8075eb8ea 100644
--- a/src/runtime/javascript/minibar/minibar_input.js
+++ b/src/www/minibar/minibar_input.js
diff --git a/src/runtime/javascript/minibar/minibar_online.js b/src/www/minibar/minibar_online.js
index 1c15e87bf..1c15e87bf 100644
--- a/src/runtime/javascript/minibar/minibar_online.js
+++ b/src/www/minibar/minibar_online.js
diff --git a/src/runtime/javascript/minibar/minibar_support.js b/src/www/minibar/minibar_support.js
index a3fc078f7..a3fc078f7 100644
--- a/src/runtime/javascript/minibar/minibar_support.js
+++ b/src/www/minibar/minibar_support.js
diff --git a/src/runtime/javascript/minibar/minibar_translations.js b/src/www/minibar/minibar_translations.js
index ef6fbd701..ef6fbd701 100644
--- a/src/runtime/javascript/minibar/minibar_translations.js
+++ b/src/www/minibar/minibar_translations.js
diff --git a/src/runtime/javascript/minibar/pgf_offline.js b/src/www/minibar/pgf_offline.js
index cd2d40b1c..cd2d40b1c 100644
--- a/src/runtime/javascript/minibar/pgf_offline.js
+++ b/src/www/minibar/pgf_offline.js
diff --git a/src/runtime/javascript/minibar/pgf_online.js b/src/www/minibar/pgf_online.js
index ac6620ee5..ac6620ee5 100644
--- a/src/runtime/javascript/minibar/pgf_online.js
+++ b/src/www/minibar/pgf_online.js
diff --git a/src/runtime/javascript/minibar/phrasebook.html b/src/www/minibar/phrasebook.html
index 78f5c353f..78f5c353f 100644
--- a/src/runtime/javascript/minibar/phrasebook.html
+++ b/src/www/minibar/phrasebook.html
diff --git a/src/runtime/javascript/minibar/saldotest.html b/src/www/minibar/saldotest.html
index 179c42e4d..179c42e4d 100644
--- a/src/runtime/javascript/minibar/saldotest.html
+++ b/src/www/minibar/saldotest.html
diff --git a/src/runtime/javascript/minibar/saldotest.js b/src/www/minibar/saldotest.js
index 47cb95047..47cb95047 100644
--- a/src/runtime/javascript/minibar/saldotest.js
+++ b/src/www/minibar/saldotest.js
diff --git a/src/runtime/javascript/minibar/support.js b/src/www/minibar/support.js
index c65c1a389..c65c1a389 100644
--- a/src/runtime/javascript/minibar/support.js
+++ b/src/www/minibar/support.js
diff --git a/src/runtime/javascript/minibar/tree-btn.png b/src/www/minibar/tree-btn.png
index ebd243617..ebd243617 100644
--- a/src/runtime/javascript/minibar/tree-btn.png
+++ b/src/www/minibar/tree-btn.png
Binary files differ