This is the primary platform for managing the Choice Server. The browser-based window manager is written in Scala.js, and displays "windows" within a browser window. The windows typically run one of the tools supplied with the choice-desktop.
The tools currently included are:
-
File Browser
The server uses its own "filesystem" for its content. This tool provides a modest GUI for browsing that filesystem.
-
File Upload
This tool provides a GUI for uploading content to the server. Individual files or zipped content can be uploaded, with various options for replacement of existing content.
-
Text Editor
This is the Ace editor, which can used to edit files directly on the server.
-
Terminal
This is a terminal emulator window, which accepts commands to manage the server. The command language features filename completion and command parameter prompt strings.
Currently the tool configuration of the window manager is hard-coded. The intent is that it will be dynamically configurable someday.
The Choice desktop assumes that it is served by a Choice server. The individual desktop tools are written in ES2015 (ES6), which is transpiled for deployment. The build requires sbt for the window manager, and jspm to build the tools.
If you have node.js installed, then you probably have
the npm
command. From there you get jspm
with:
cd webstuff
npm install jspm
export PATH="`pwd`/node_modules/.bin:$PATH"
The build goes like this, once you have sbt
and jspm
:
cd scalajs
sbt clean fastOptJS fullOptJS
cd ../webstuff
jspm install
./bundle.sh
cd ..
./mkjar
Note that running bundle.sh
and mkjar
file assumes these are executable in your
environment.
This should produce fsdesktop.jar
which can be uploaded to a Choice server
using either its boot.html
page or the file upload tool of a previously
install Choice desktop.