Static Resources#
When Structr is started in the typical setup by running the structr-ui
module, a Servlet container (Jetty) is started.
Structr comes with an integrated administrative user interface (referred to as “Structr UI” or “the UI”) which is a Single-Page Application built with plain HTML, CSS and JavaScript/jQuery. The HTML page and the resource files needed to run the UI are what we call Static Resources in contrast to the resource files dynamically served by the integrated Content Management System of Structr.
Installation location
There are two different locations where the static resources are installed, depending on whether you installed Structr from one of the distribution packages (*-dist.zip
or .deb
) or cloned and build the sources yourself.
When installed with a distribution, the files are in the structr
relative to the Structr main directory.
In the source tree, the static resources can be found in src/main/resources
.
Important note: The configuration parameter StructrUiHandler.resourceBase
in structr.conf
has to reflect the correct location of the static resources relative to the main Structr directory in order to make the UI work.
Files and folders
Here’s a list of all the static resources that come with a typical Structr installation:
├── assemblies
│ └── dist.xml
├── bin
│ ├── add_grants.sh
│ ├── add_mail_templates.sh
│ ├── config
│ ├── cypher
│ ├── delete
│ ├── env
│ ├── get
│ ├── make_key.sh
│ ├── post
│ ├── put
│ ├── rebuld_index.sh
│ ├── seed2.sh
│ ├── seed.sh
│ ├── seed-ssh.sh
│ ├── start
│ ├── stop
│ └── su
├── context.xml
├── fetcher.properties
├── mime.types
├── repository.properties
├── stopwords
│ └── stop-words.zip
├── structr
│ ├── agplv3.html
│ ├── codemirror
│ │ ├── addon
│ │ │ ├── comment
│ │ │ │ ├── comment.js
│ │ │ │ └── continuecomment.js
│ │ │ ├── dialog
│ │ │ │ ├── dialog.css
│ │ │ │ └── dialog.js
│ │ │ ├── display
│ │ │ │ ├── fullscreen.css
│ │ │ │ ├── fullscreen.js
│ │ │ │ ├── placeholder.js
│ │ │ │ └── rulers.js
│ │ │ ├── edit
│ │ │ │ ├── closebrackets.js
│ │ │ │ ├── closetag.js
│ │ │ │ ├── continuelist.js
│ │ │ │ ├── matchbrackets.js
│ │ │ │ ├── matchtags.js
│ │ │ │ └── trailingspace.js
│ │ │ ├── fold
│ │ │ │ ├── brace-fold.js
│ │ │ │ ├── comment-fold.js
│ │ │ │ ├── foldcode.js
│ │ │ │ ├── foldgutter.css
│ │ │ │ ├── foldgutter.js
│ │ │ │ ├── indent-fold.js
│ │ │ │ ├── markdown-fold.js
│ │ │ │ └── xml-fold.js
│ │ │ ├── hint
│ │ │ │ ├── anyword-hint.js
│ │ │ │ ├── css-hint.js
│ │ │ │ ├── html-hint.js
│ │ │ │ ├── javascript-hint.js
│ │ │ │ ├── python-hint.js
│ │ │ │ ├── show-hint.css
│ │ │ │ ├── show-hint.js
│ │ │ │ ├── sql-hint.js
│ │ │ │ └── xml-hint.js
│ │ │ ├── lint
│ │ │ │ ├── coffeescript-lint.js
│ │ │ │ ├── css-lint.js
│ │ │ │ ├── javascript-lint.js
│ │ │ │ ├── json-lint.js
│ │ │ │ ├── lint.css
│ │ │ │ ├── lint.js
│ │ │ │ └── yaml-lint.js
│ │ │ ├── merge
│ │ │ │ ├── merge.css
│ │ │ │ └── merge.js
│ │ │ ├── mode
│ │ │ │ ├── loadmode.js
│ │ │ │ ├── multiplex.js
│ │ │ │ ├── multiplex_test.js
│ │ │ │ ├── overlay.js
│ │ │ │ └── simple.js
│ │ │ ├── runmode
│ │ │ │ ├── colorize.js
│ │ │ │ ├── runmode.js
│ │ │ │ ├── runmode.node.js
│ │ │ │ └── runmode-standalone.js
│ │ │ ├── scroll
│ │ │ │ ├── annotatescrollbar.js
│ │ │ │ └── scrollpastend.js
│ │ │ ├── search
│ │ │ │ ├── matchesonscrollbar.css
│ │ │ │ ├── matchesonscrollbar.js
│ │ │ │ ├── match-highlighter.js
│ │ │ │ ├── searchcursor.js
│ │ │ │ └── search.js
│ │ │ ├── selection
│ │ │ │ ├── active-line.js
│ │ │ │ └── mark-selection.js
│ │ │ ├── tern
│ │ │ │ ├── tern.css
│ │ │ │ ├── tern.js
│ │ │ │ └── worker.js
│ │ │ └── wrap
│ │ │ └── hardwrap.js
│ │ ├── codemirror-compressed.js
│ │ ├── keymap
│ │ │ ├── emacs.js
│ │ │ ├── sublime.js
│ │ │ └── vim.js
│ │ ├── lib
│ │ │ ├── codemirror.css
│ │ │ └── codemirror.js
│ │ ├── mode
│ │ │ ├── apl
│ │ │ │ └── apl.js
│ │ │ ├── asterisk
│ │ │ │ └── asterisk.js
│ │ │ ├── clike
│ │ │ │ ├── clike.js
│ │ │ │ └── scala.html
│ │ │ ├── clojure
│ │ │ │ └── clojure.js
│ │ │ ├── cobol
│ │ │ │ └── cobol.js
│ │ │ ├── coffeescript
│ │ │ │ └── coffeescript.js
│ │ │ ├── commonlisp
│ │ │ │ └── commonlisp.js
│ │ │ ├── css
│ │ │ │ ├── css.js
│ │ │ │ ├── less.html
│ │ │ │ ├── less_test.js
│ │ │ │ ├── scss.html
│ │ │ │ ├── scss_test.js
│ │ │ │ └── test.js
│ │ │ ├── cypher
│ │ │ │ └── cypher.js
│ │ │ ├── d
│ │ │ │ └── d.js
│ │ │ ├── diff
│ │ │ │ └── diff.js
│ │ │ ├── django
│ │ │ │ └── django.js
│ │ │ ├── dockerfile
│ │ │ │ └── dockerfile.js
│ │ │ ├── dtd
│ │ │ │ └── dtd.js
│ │ │ ├── dylan
│ │ │ │ └── dylan.js
│ │ │ ├── ecl
│ │ │ │ └── ecl.js
│ │ │ ├── eiffel
│ │ │ │ └── eiffel.js
│ │ │ ├── erlang
│ │ │ │ └── erlang.js
│ │ │ ├── fortran
│ │ │ │ └── fortran.js
│ │ │ ├── gas
│ │ │ │ └── gas.js
│ │ │ ├── gfm
│ │ │ │ ├── gfm.js
│ │ │ │ └── test.js
│ │ │ ├── gherkin
│ │ │ │ └── gherkin.js
│ │ │ ├── go
│ │ │ │ └── go.js
│ │ │ ├── groovy
│ │ │ │ └── groovy.js
│ │ │ ├── haml
│ │ │ │ ├── haml.js
│ │ │ │ └── test.js
│ │ │ ├── haskell
│ │ │ │ └── haskell.js
│ │ │ ├── haxe
│ │ │ │ └── haxe.js
│ │ │ ├── htmlembedded
│ │ │ │ └── htmlembedded.js
│ │ │ ├── htmlmixed
│ │ │ │ └── htmlmixed.js
│ │ │ ├── http
│ │ │ │ └── http.js
│ │ │ ├── idl
│ │ │ │ └── idl.js
│ │ │ ├── index.html
│ │ │ ├── jade
│ │ │ │ └── jade.js
│ │ │ ├── javascript
│ │ │ │ ├── javascript.js
│ │ │ │ ├── json-ld.html
│ │ │ │ ├── test.js
│ │ │ │ └── typescript.html
│ │ │ ├── jinja2
│ │ │ │ └── jinja2.js
│ │ │ ├── julia
│ │ │ │ └── julia.js
│ │ │ ├── kotlin
│ │ │ │ └── kotlin.js
│ │ │ ├── livescript
│ │ │ │ └── livescript.js
│ │ │ ├── lua
│ │ │ │ └── lua.js
│ │ │ ├── markdown
│ │ │ │ ├── markdown.js
│ │ │ │ └── test.js
│ │ │ ├── meta.js
│ │ │ ├── mirc
│ │ │ │ └── mirc.js
│ │ │ ├── mllike
│ │ │ │ └── mllike.js
│ │ │ ├── modelica
│ │ │ │ └── modelica.js
│ │ │ ├── nginx
│ │ │ │ └── nginx.js
│ │ │ ├── ntriples
│ │ │ │ └── ntriples.js
│ │ │ ├── octave
│ │ │ │ └── octave.js
│ │ │ ├── pascal
│ │ │ │ └── pascal.js
│ │ │ ├── pegjs
│ │ │ │ └── pegjs.js
│ │ │ ├── perl
│ │ │ │ └── perl.js
│ │ │ ├── php
│ │ │ │ ├── php.js
│ │ │ │ └── test.js
│ │ │ ├── pig
│ │ │ │ └── pig.js
│ │ │ ├── properties
│ │ │ │ └── properties.js
│ │ │ ├── puppet
│ │ │ │ └── puppet.js
│ │ │ ├── python
│ │ │ │ └── python.js
│ │ │ ├── q
│ │ │ │ └── q.js
│ │ │ ├── r
│ │ │ │ └── r.js
│ │ │ ├── rpm
│ │ │ │ ├── changes
│ │ │ │ │ └── index.html
│ │ │ │ └── rpm.js
│ │ │ ├── rst
│ │ │ │ └── rst.js
│ │ │ ├── ruby
│ │ │ │ ├── ruby.js
│ │ │ │ └── test.js
│ │ │ ├── rust
│ │ │ │ └── rust.js
│ │ │ ├── sass
│ │ │ │ └── sass.js
│ │ │ ├── scheme
│ │ │ │ └── scheme.js
│ │ │ ├── shell
│ │ │ │ ├── shell.js
│ │ │ │ └── test.js
│ │ │ ├── sieve
│ │ │ │ └── sieve.js
│ │ │ ├── slim
│ │ │ │ ├── slim.js
│ │ │ │ └── test.js
│ │ │ ├── smalltalk
│ │ │ │ └── smalltalk.js
│ │ │ ├── smarty
│ │ │ │ └── smarty.js
│ │ │ ├── smartymixed
│ │ │ │ └── smartymixed.js
│ │ │ ├── solr
│ │ │ │ └── solr.js
│ │ │ ├── sparql
│ │ │ │ └── sparql.js
│ │ │ ├── sql
│ │ │ │ └── sql.js
│ │ │ ├── stex
│ │ │ │ ├── stex.js
│ │ │ │ └── test.js
│ │ │ ├── tcl
│ │ │ │ └── tcl.js
│ │ │ ├── textile
│ │ │ │ ├── test.js
│ │ │ │ └── textile.js
│ │ │ ├── tiddlywiki
│ │ │ │ ├── tiddlywiki.css
│ │ │ │ └── tiddlywiki.js
│ │ │ ├── tiki
│ │ │ │ ├── tiki.css
│ │ │ │ └── tiki.js
│ │ │ ├── toml
│ │ │ │ └── toml.js
│ │ │ ├── tornado
│ │ │ │ └── tornado.js
│ │ │ ├── turtle
│ │ │ │ └── turtle.js
│ │ │ ├── vb
│ │ │ │ └── vb.js
│ │ │ ├── vbscript
│ │ │ │ └── vbscript.js
│ │ │ ├── velocity
│ │ │ │ └── velocity.js
│ │ │ ├── verilog
│ │ │ │ ├── test.js
│ │ │ │ └── verilog.js
│ │ │ ├── xml
│ │ │ │ ├── test.js
│ │ │ │ └── xml.js
│ │ │ ├── xquery
│ │ │ │ ├── test.js
│ │ │ │ └── xquery.js
│ │ │ ├── yaml
│ │ │ │ └── yaml.js
│ │ │ └── z80
│ │ │ └── z80.js
│ │ └── theme
│ │ ├── 3024-day.css
│ │ ├── 3024-night.css
│ │ ├── ambiance.css
│ │ ├── ambiance-mobile.css
│ │ ├── base16-dark.css
│ │ ├── base16-light.css
│ │ ├── blackboard.css
│ │ ├── cobalt.css
│ │ ├── eclipse.css
│ │ ├── elegant.css
│ │ ├── erlang-dark.css
│ │ ├── lesser-dark.css
│ │ ├── mbo.css
│ │ ├── mdn-like.css
│ │ ├── midnight.css
│ │ ├── monokai.css
│ │ ├── neat.css
│ │ ├── neo.css
│ │ ├── night.css
│ │ ├── paraiso-dark.css
│ │ ├── paraiso-light.css
│ │ ├── pastel-on-dark.css
│ │ ├── rubyblue.css
│ │ ├── solarized.css
│ │ ├── the-matrix.css
│ │ ├── tomorrow-night-eighties.css
│ │ ├── twilight.css
│ │ ├── vibrant-ink.css
│ │ ├── xq-dark.css
│ │ └── xq-light.css
│ ├── css
│ │ ├── crud.css
│ │ ├── edit.css
│ │ ├── fonts
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ │ ├── graph_editor.css
│ │ ├── images
│ │ │ ├── sort_asc_disabled.png
│ │ │ ├── sort_asc.png
│ │ │ ├── sort_both.png
│ │ │ ├── sort_desc_disabled.png
│ │ │ └── sort_desc.png
│ │ ├── lib
│ │ │ ├── 32px.png
│ │ │ ├── chosen.min.css
│ │ │ ├── chosen-sprite@2x.png
│ │ │ ├── chosen-sprite.png
│ │ │ ├── fixedHeader.jqueryui.min.css
│ │ │ ├── font-awesome.min.css
│ │ │ ├── images
│ │ │ │ ├── animated-overlay.gif
│ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png
│ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│ │ │ │ ├── ui-icons_222222_256x240.png
│ │ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ │ ├── ui-icons_454545_256x240.png
│ │ │ │ ├── ui-icons_888888_256x240.png
│ │ │ │ └── ui-icons_cd0a0a_256x240.png
│ │ │ ├── jquery.dataTables.min.css
│ │ │ ├── jquery-ui-1.10.3.custom.css
│ │ │ ├── jquery-ui-1.10.3.custom.min.css
│ │ │ ├── jquery-ui-1.11.0.custom.min.css
│ │ │ ├── jstree-3.2.1.min.css
│ │ │ └── throbber.gif
│ │ └── main.css
│ ├── favicon.ico
│ ├── fonts
│ │ ├── OpenSans-BoldItalic.ttf
│ │ ├── OpenSans-Bold.ttf
│ │ ├── OpenSans-ExtraBoldItalic.ttf
│ │ ├── OpenSans-ExtraBold.ttf
│ │ ├── OpenSans-Italic.ttf
│ │ ├── OpenSans-LightItalic.ttf
│ │ ├── OpenSans-Light.ttf
│ │ ├── OpenSans-Regular.ttf
│ │ ├── OpenSans-SemiboldItalic.ttf
│ │ └── OpenSans-Semibold.ttf
│ ├── icon
│ │ ├── accept.png
│ │ ├── add_grey.png
│ │ ├── add.png
│ │ ├── add_small_grey.png
│ │ ├── application_cascade.png
│ │ ├── application_form_add.png
│ │ ├── application_view_detail.png
│ │ ├── arrow_in.png
│ │ ├── arrow_move.png
│ │ ├── arrow_out.png
│ │ ├── arrow_refresh.png
│ │ ├── arrow_switch.png
│ │ ├── arrow_undo.png
│ │ ├── arrow_up_down.png
│ │ ├── book_open.png
│ │ ├── brick_add.png
│ │ ├── brick_delete.png
│ │ ├── brick.png
│ │ ├── bricks.png
│ │ ├── brick_yellow.png
│ │ ├── button.png
│ │ ├── calendar.png
│ │ ├── comment.png
│ │ ├── compress.png
│ │ ├── control_play_blue.png
│ │ ├── control_play.png
│ │ ├── cross.png
│ │ ├── cross_small_grey.png
│ │ ├── cursor2.png
│ │ ├── cursor.png
│ │ ├── database_add.png
│ │ ├── database_gear.png
│ │ ├── database.png
│ │ ├── database_table.png
│ │ ├── delete_gray.png
│ │ ├── delete.png
│ │ ├── error.png
│ │ ├── exclamation.png
│ │ ├── eye.png
│ │ ├── folder_add.png
│ │ ├── folder_database.png
│ │ ├── folder_delete.png
│ │ ├── folder_page_white.png
│ │ ├── folder.png
│ │ ├── folder_upload.png
│ │ ├── group_add.png
│ │ ├── group_delete.png
│ │ ├── group.png
│ │ ├── image.png
│ │ ├── information.png
│ │ ├── key_add.png
│ │ ├── key.png
│ │ ├── layout_add.png
│ │ ├── layout_content.png
│ │ ├── layout_delete.png
│ │ ├── layout_edit.png
│ │ ├── layout.png
│ │ ├── layout_yellow.png
│ │ ├── link.png
│ │ ├── package_add.png
│ │ ├── package_delete.png
│ │ ├── package_green.png
│ │ ├── package.png
│ │ ├── page_add.png
│ │ ├── page_copy.png
│ │ ├── page_delete.png
│ │ ├── page.png
│ │ ├── page_white_acrobat.png
│ │ ├── page_white_add.png
│ │ ├── page_white_code.png
│ │ ├── page_white_delete.png
│ │ ├── page_white_get.png
│ │ ├── page_white.png
│ │ ├── page_white_put.png
│ │ ├── page_white_stack.png
│ │ ├── page_white_text.png
│ │ ├── page_yellow.png
│ │ ├── pencil.png
│ │ ├── pencil_small_grey.png
│ │ ├── pull_page.png
│ │ ├── structr_icon_16x16.png
│ │ ├── tab_add.png
│ │ ├── tab_go.png
│ │ ├── table_go.png
│ │ ├── table_multiple.png
│ │ ├── textfield_add.png
│ │ ├── text_horizontalrule.png
│ │ ├── text_indent_remove.png
│ │ ├── tick.png
│ │ ├── tree_arrow_down.png
│ │ ├── tree_arrow_right.png
│ │ ├── user_add.png
│ │ ├── user_delete.png
│ │ ├── user.png
│ │ ├── wand.png
│ │ ├── wrench.png
│ │ └── xhtml_add.png
│ ├── img
│ │ ├── ajax-loader.gif
│ │ ├── al.gif
│ │ ├── go.gif
│ │ ├── icon_microphone.svg
│ │ ├── structr_gray_200x54.png
│ │ ├── structr-logo_92x60.png
│ │ └── structr-logo.png
│ ├── index.html
│ └── js
│ ├── command.js
│ ├── contents.js
│ ├── crud.js
│ ├── dashboard.js
│ ├── dialogs.js
│ ├── dragndrop.js
│ ├── elements.js
│ ├── entities.js
│ ├── filesystem.js
│ ├── ge
│ │ ├── engine.js
│ │ ├── ge_lib.js
│ │ ├── ge_obj.js
│ │ └── graph_editor.js
│ ├── graph-browser.js
│ ├── graph.js
│ ├── helper.js
│ ├── images.js
│ ├── init.js
│ ├── layout.js
│ ├── lib
│ │ ├── chosen.jquery.min.js
│ │ ├── clipboard.min.js
│ │ ├── dataTables.fixedHeader.min.js
│ │ ├── dateformatconverter.js
│ │ ├── diff_match_patch.js
│ │ ├── dom.jsPlumb-1.7.3-min.js
│ │ ├── jquery-1.11.1.min.js
│ │ ├── jquery.blockUI.js
│ │ ├── jquery.caret.min.js
│ │ ├── jquery.cookie.js
│ │ ├── jquery.dataTables.min.js
│ │ ├── jquery.hoverIntent.min.js
│ │ ├── jquery.json-2.3.min.js
│ │ ├── jquery.mousewheel.js
│ │ ├── jquery.tooltip.pack.js
│ │ ├── jquery-ui-1.11.0.custom.min.js
│ │ ├── jquery-ui-idrop.js
│ │ ├── jquery-ui-modules.txt
│ │ ├── jquery-ui-timepicker-addon.js
│ │ ├── jquery-ui-timepicker-addon.min.js
│ │ ├── jstree-3.2.1.min.js
│ │ ├── moment-jdateformatparser.min.js
│ │ ├── moment.min.js
│ │ ├── moment-with-locales.min.js
│ │ ├── sigma
│ │ │ ├── plugins
│ │ │ │ ├── sigma.exporters.svg.min.js
│ │ │ │ ├── sigma.layout.forceAtlas2.min.js
│ │ │ │ ├── sigma.layout.fruchterman.min.js
│ │ │ │ ├── sigma.parsers.gexf.min.js
│ │ │ │ ├── sigma.parsers.json.min.js
│ │ │ │ ├── sigma.pathfinding.astar.min.js
│ │ │ │ ├── sigma.plugins.animate.min.js
│ │ │ │ ├── sigma.plugins.dragNodes.min.js
│ │ │ │ ├── sigma.plugins.filter.min.js
│ │ │ │ ├── sigma.plugins.neighborhoods.min.js
│ │ │ │ ├── sigma.plugins.relativeSize.min.js
│ │ │ │ ├── sigma.renderers.customEdgeShapes.min.js
│ │ │ │ ├── sigma.renderers.customShapes.min.js
│ │ │ │ ├── sigma.renderers.edgeLabels.min.js
│ │ │ │ ├── sigma.renderers.parallelEdges
│ │ │ │ │ ├── sigma.canvas.edgehovers.curvedArrow.js
│ │ │ │ │ ├── sigma.canvas.edgehovers.curve.js
│ │ │ │ │ ├── sigma.canvas.edges.curvedArrow.js
│ │ │ │ │ ├── sigma.canvas.edges.curve.js
│ │ │ │ │ ├── sigma.canvas.edges.labels.curve.js
│ │ │ │ │ └── utils.js
│ │ │ │ ├── sigma.renderers.snapshot.min.js
│ │ │ │ └── sigma.statistics.HITS.min.js
│ │ │ └── sigma.min.js
│ │ ├── test
│ │ │ ├── jquery.simulate.drag-n-drop.js
│ │ │ ├── jquery.simulate.ext.js
│ │ │ └── jquery.simulate.js
│ │ ├── themes
│ │ │ ├── default
│ │ │ │ ├── 40px.png
│ │ │ │ ├── style.css
│ │ │ │ ├── style.min.css
│ │ │ │ └── throbber.gif
│ │ │ └── default-dark
│ │ │ ├── 32px.png
│ │ │ ├── 40px.png
│ │ │ ├── style.css
│ │ │ ├── style.min.css
│ │ │ └── throbber.gif
│ │ ├── typeahead-jquery-0.11.min.js
│ │ └── uuid.js
│ ├── model.js
│ ├── pager.js
│ ├── pages.js
│ ├── schema.js
│ ├── security.js
│ ├── speech.js
│ ├── structr-app.js
│ ├── types.js
│ ├── upload-worker.js
│ ├── websocket.js
│ └── widgets.js
├── test
│ ├── test.bmp
│ ├── test.gif
│ ├── test.ico
│ ├── test.jpg
│ ├── test.png
│ ├── test.tiff
│ └── test.zip
├── urlrewrite.xml
└── xslfo
└── test.xslfo