From f94f18227d86f20787dc94f838c9914689a3cc96 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Fri, 30 Dec 2016 11:15:10 +0000 Subject: [PATCH] push --- _embed/public/js/application.js | 1009 ----------------- _embed/public/js/common.js | 269 +++++ _embed/public/js/editor.js | 258 +++++ _embed/public/js/listing.js | 465 ++++++++ _embed/public/js/{ => vendor}/ace/ace.js | 0 .../js/{ => vendor}/ace/ext-beautify.js | 0 .../js/{ => vendor}/ace/ext-chromevox.js | 0 .../ace/ext-elastic_tabstops_lite.js | 0 .../public/js/{ => vendor}/ace/ext-emmet.js | 0 .../js/{ => vendor}/ace/ext-error_marker.js | 0 .../{ => vendor}/ace/ext-keybinding_menu.js | 0 .../js/{ => vendor}/ace/ext-language_tools.js | 0 .../public/js/{ => vendor}/ace/ext-linking.js | 0 .../js/{ => vendor}/ace/ext-modelist.js | 0 .../public/js/{ => vendor}/ace/ext-old_ie.js | 0 .../js/{ => vendor}/ace/ext-searchbox.js | 0 .../js/{ => vendor}/ace/ext-settings_menu.js | 0 .../js/{ => vendor}/ace/ext-spellcheck.js | 0 .../public/js/{ => vendor}/ace/ext-split.js | 0 .../{ => vendor}/ace/ext-static_highlight.js | 0 .../js/{ => vendor}/ace/ext-statusbar.js | 0 .../js/{ => vendor}/ace/ext-textarea.js | 0 .../js/{ => vendor}/ace/ext-themelist.js | 0 .../js/{ => vendor}/ace/ext-whitespace.js | 0 .../js/{ => vendor}/ace/keybinding-emacs.js | 0 .../js/{ => vendor}/ace/keybinding-vim.js | 0 .../public/js/{ => vendor}/ace/mode-abap.js | 0 _embed/public/js/{ => vendor}/ace/mode-abc.js | 0 .../js/{ => vendor}/ace/mode-actionscript.js | 0 _embed/public/js/{ => vendor}/ace/mode-ada.js | 0 .../js/{ => vendor}/ace/mode-apache_conf.js | 0 .../js/{ => vendor}/ace/mode-applescript.js | 0 .../js/{ => vendor}/ace/mode-asciidoc.js | 0 .../js/{ => vendor}/ace/mode-assembly_x86.js | 0 .../js/{ => vendor}/ace/mode-autohotkey.js | 0 .../js/{ => vendor}/ace/mode-batchfile.js | 0 _embed/public/js/{ => vendor}/ace/mode-bro.js | 0 .../js/{ => vendor}/ace/mode-c9search.js | 0 .../public/js/{ => vendor}/ace/mode-c_cpp.js | 0 .../public/js/{ => vendor}/ace/mode-cirru.js | 0 .../js/{ => vendor}/ace/mode-clojure.js | 0 .../public/js/{ => vendor}/ace/mode-cobol.js | 0 .../public/js/{ => vendor}/ace/mode-coffee.js | 0 .../js/{ => vendor}/ace/mode-coldfusion.js | 0 .../public/js/{ => vendor}/ace/mode-csharp.js | 0 _embed/public/js/{ => vendor}/ace/mode-css.js | 0 .../public/js/{ => vendor}/ace/mode-curly.js | 0 _embed/public/js/{ => vendor}/ace/mode-d.js | 0 .../public/js/{ => vendor}/ace/mode-dart.js | 0 .../public/js/{ => vendor}/ace/mode-diff.js | 0 .../public/js/{ => vendor}/ace/mode-django.js | 0 .../js/{ => vendor}/ace/mode-dockerfile.js | 0 _embed/public/js/{ => vendor}/ace/mode-dot.js | 0 .../public/js/{ => vendor}/ace/mode-drools.js | 0 .../public/js/{ => vendor}/ace/mode-eiffel.js | 0 _embed/public/js/{ => vendor}/ace/mode-ejs.js | 0 .../public/js/{ => vendor}/ace/mode-elixir.js | 0 _embed/public/js/{ => vendor}/ace/mode-elm.js | 0 .../public/js/{ => vendor}/ace/mode-erlang.js | 0 .../public/js/{ => vendor}/ace/mode-forth.js | 0 .../js/{ => vendor}/ace/mode-fortran.js | 0 _embed/public/js/{ => vendor}/ace/mode-ftl.js | 0 .../public/js/{ => vendor}/ace/mode-gcode.js | 0 .../js/{ => vendor}/ace/mode-gherkin.js | 0 .../js/{ => vendor}/ace/mode-gitignore.js | 0 .../public/js/{ => vendor}/ace/mode-glsl.js | 0 .../js/{ => vendor}/ace/mode-gobstones.js | 0 .../public/js/{ => vendor}/ace/mode-golang.js | 0 .../public/js/{ => vendor}/ace/mode-groovy.js | 0 .../public/js/{ => vendor}/ace/mode-haml.js | 0 .../js/{ => vendor}/ace/mode-handlebars.js | 0 .../js/{ => vendor}/ace/mode-haskell.js | 0 .../js/{ => vendor}/ace/mode-haskell_cabal.js | 0 .../public/js/{ => vendor}/ace/mode-haxe.js | 0 .../public/js/{ => vendor}/ace/mode-hjson.js | 0 .../public/js/{ => vendor}/ace/mode-html.js | 0 .../js/{ => vendor}/ace/mode-html_elixir.js | 0 .../js/{ => vendor}/ace/mode-html_ruby.js | 0 _embed/public/js/{ => vendor}/ace/mode-ini.js | 0 _embed/public/js/{ => vendor}/ace/mode-io.js | 0 .../public/js/{ => vendor}/ace/mode-jack.js | 0 .../public/js/{ => vendor}/ace/mode-jade.js | 0 .../public/js/{ => vendor}/ace/mode-java.js | 0 .../js/{ => vendor}/ace/mode-javascript.js | 0 .../public/js/{ => vendor}/ace/mode-json.js | 0 .../public/js/{ => vendor}/ace/mode-jsoniq.js | 0 _embed/public/js/{ => vendor}/ace/mode-jsp.js | 0 _embed/public/js/{ => vendor}/ace/mode-jsx.js | 0 .../public/js/{ => vendor}/ace/mode-julia.js | 0 .../public/js/{ => vendor}/ace/mode-kotlin.js | 0 .../public/js/{ => vendor}/ace/mode-latex.js | 0 .../public/js/{ => vendor}/ace/mode-lean.js | 0 .../public/js/{ => vendor}/ace/mode-less.js | 0 .../public/js/{ => vendor}/ace/mode-liquid.js | 0 .../public/js/{ => vendor}/ace/mode-lisp.js | 0 .../js/{ => vendor}/ace/mode-live_script.js | 0 .../js/{ => vendor}/ace/mode-livescript.js | 0 .../public/js/{ => vendor}/ace/mode-logiql.js | 0 _embed/public/js/{ => vendor}/ace/mode-lsl.js | 0 _embed/public/js/{ => vendor}/ace/mode-lua.js | 0 .../js/{ => vendor}/ace/mode-luapage.js | 0 .../public/js/{ => vendor}/ace/mode-lucene.js | 0 .../js/{ => vendor}/ace/mode-makefile.js | 0 .../js/{ => vendor}/ace/mode-markdown.js | 0 .../public/js/{ => vendor}/ace/mode-mask.js | 0 .../public/js/{ => vendor}/ace/mode-matlab.js | 0 .../public/js/{ => vendor}/ace/mode-maze.js | 0 _embed/public/js/{ => vendor}/ace/mode-mel.js | 0 .../{ => vendor}/ace/mode-mips_assembler.js | 0 .../js/{ => vendor}/ace/mode-mipsassembler.js | 0 .../js/{ => vendor}/ace/mode-mushcode.js | 0 .../public/js/{ => vendor}/ace/mode-mysql.js | 0 _embed/public/js/{ => vendor}/ace/mode-nix.js | 0 .../public/js/{ => vendor}/ace/mode-nsis.js | 0 .../js/{ => vendor}/ace/mode-objectivec.js | 0 .../public/js/{ => vendor}/ace/mode-ocaml.js | 0 .../public/js/{ => vendor}/ace/mode-pascal.js | 0 .../public/js/{ => vendor}/ace/mode-perl.js | 0 .../public/js/{ => vendor}/ace/mode-pgsql.js | 0 _embed/public/js/{ => vendor}/ace/mode-php.js | 0 .../js/{ => vendor}/ace/mode-plain_text.js | 0 .../js/{ => vendor}/ace/mode-powershell.js | 0 .../public/js/{ => vendor}/ace/mode-praat.js | 0 .../public/js/{ => vendor}/ace/mode-prolog.js | 0 .../js/{ => vendor}/ace/mode-properties.js | 0 .../js/{ => vendor}/ace/mode-protobuf.js | 0 .../public/js/{ => vendor}/ace/mode-python.js | 0 _embed/public/js/{ => vendor}/ace/mode-r.js | 0 .../public/js/{ => vendor}/ace/mode-razor.js | 0 .../public/js/{ => vendor}/ace/mode-rdoc.js | 0 .../public/js/{ => vendor}/ace/mode-rhtml.js | 0 _embed/public/js/{ => vendor}/ace/mode-rst.js | 0 .../public/js/{ => vendor}/ace/mode-ruby.js | 0 .../public/js/{ => vendor}/ace/mode-rust.js | 0 .../public/js/{ => vendor}/ace/mode-sass.js | 0 .../public/js/{ => vendor}/ace/mode-scad.js | 0 .../public/js/{ => vendor}/ace/mode-scala.js | 0 .../public/js/{ => vendor}/ace/mode-scheme.js | 0 .../public/js/{ => vendor}/ace/mode-scss.js | 0 _embed/public/js/{ => vendor}/ace/mode-sh.js | 0 _embed/public/js/{ => vendor}/ace/mode-sjs.js | 0 .../public/js/{ => vendor}/ace/mode-smarty.js | 0 .../js/{ => vendor}/ace/mode-snippets.js | 0 .../js/{ => vendor}/ace/mode-soy_template.js | 0 .../public/js/{ => vendor}/ace/mode-space.js | 0 _embed/public/js/{ => vendor}/ace/mode-sql.js | 0 .../js/{ => vendor}/ace/mode-sqlserver.js | 0 .../public/js/{ => vendor}/ace/mode-stylus.js | 0 _embed/public/js/{ => vendor}/ace/mode-svg.js | 0 .../public/js/{ => vendor}/ace/mode-swift.js | 0 .../public/js/{ => vendor}/ace/mode-swig.js | 0 _embed/public/js/{ => vendor}/ace/mode-tcl.js | 0 _embed/public/js/{ => vendor}/ace/mode-tex.js | 0 .../public/js/{ => vendor}/ace/mode-text.js | 0 .../js/{ => vendor}/ace/mode-textile.js | 0 .../public/js/{ => vendor}/ace/mode-toml.js | 0 _embed/public/js/{ => vendor}/ace/mode-tsx.js | 0 .../public/js/{ => vendor}/ace/mode-twig.js | 0 .../js/{ => vendor}/ace/mode-typescript.js | 0 .../public/js/{ => vendor}/ace/mode-vala.js | 0 .../js/{ => vendor}/ace/mode-vbscript.js | 0 .../js/{ => vendor}/ace/mode-velocity.js | 0 .../js/{ => vendor}/ace/mode-verilog.js | 0 .../public/js/{ => vendor}/ace/mode-vhdl.js | 0 .../public/js/{ => vendor}/ace/mode-wollok.js | 0 _embed/public/js/{ => vendor}/ace/mode-xml.js | 0 .../public/js/{ => vendor}/ace/mode-xquery.js | 0 .../public/js/{ => vendor}/ace/mode-yaml.js | 0 .../js/{ => vendor}/ace/snippets/abap.js | 0 .../js/{ => vendor}/ace/snippets/abc.js | 0 .../{ => vendor}/ace/snippets/actionscript.js | 0 .../js/{ => vendor}/ace/snippets/ada.js | 0 .../{ => vendor}/ace/snippets/apache_conf.js | 0 .../{ => vendor}/ace/snippets/applescript.js | 0 .../js/{ => vendor}/ace/snippets/asciidoc.js | 0 .../{ => vendor}/ace/snippets/assembly_x86.js | 0 .../{ => vendor}/ace/snippets/autohotkey.js | 0 .../js/{ => vendor}/ace/snippets/batchfile.js | 0 .../js/{ => vendor}/ace/snippets/bro.js | 0 .../js/{ => vendor}/ace/snippets/c9search.js | 0 .../js/{ => vendor}/ace/snippets/c_cpp.js | 0 .../js/{ => vendor}/ace/snippets/cirru.js | 0 .../js/{ => vendor}/ace/snippets/clojure.js | 0 .../js/{ => vendor}/ace/snippets/cobol.js | 0 .../js/{ => vendor}/ace/snippets/coffee.js | 0 .../{ => vendor}/ace/snippets/coldfusion.js | 0 .../js/{ => vendor}/ace/snippets/csharp.js | 0 .../js/{ => vendor}/ace/snippets/css.js | 0 .../js/{ => vendor}/ace/snippets/curly.js | 0 .../public/js/{ => vendor}/ace/snippets/d.js | 0 .../js/{ => vendor}/ace/snippets/dart.js | 0 .../js/{ => vendor}/ace/snippets/diff.js | 0 .../js/{ => vendor}/ace/snippets/django.js | 0 .../{ => vendor}/ace/snippets/dockerfile.js | 0 .../js/{ => vendor}/ace/snippets/dot.js | 0 .../js/{ => vendor}/ace/snippets/drools.js | 0 .../js/{ => vendor}/ace/snippets/eiffel.js | 0 .../js/{ => vendor}/ace/snippets/ejs.js | 0 .../js/{ => vendor}/ace/snippets/elixir.js | 0 .../js/{ => vendor}/ace/snippets/elm.js | 0 .../js/{ => vendor}/ace/snippets/erlang.js | 0 .../js/{ => vendor}/ace/snippets/forth.js | 0 .../js/{ => vendor}/ace/snippets/fortran.js | 0 .../js/{ => vendor}/ace/snippets/ftl.js | 0 .../js/{ => vendor}/ace/snippets/gcode.js | 0 .../js/{ => vendor}/ace/snippets/gherkin.js | 0 .../js/{ => vendor}/ace/snippets/gitignore.js | 0 .../js/{ => vendor}/ace/snippets/glsl.js | 0 .../js/{ => vendor}/ace/snippets/gobstones.js | 0 .../js/{ => vendor}/ace/snippets/golang.js | 0 .../js/{ => vendor}/ace/snippets/groovy.js | 0 .../js/{ => vendor}/ace/snippets/haml.js | 0 .../{ => vendor}/ace/snippets/handlebars.js | 0 .../js/{ => vendor}/ace/snippets/haskell.js | 0 .../ace/snippets/haskell_cabal.js | 0 .../js/{ => vendor}/ace/snippets/haxe.js | 0 .../js/{ => vendor}/ace/snippets/hjson.js | 0 .../js/{ => vendor}/ace/snippets/html.js | 0 .../{ => vendor}/ace/snippets/html_elixir.js | 0 .../js/{ => vendor}/ace/snippets/html_ruby.js | 0 .../js/{ => vendor}/ace/snippets/ini.js | 0 .../public/js/{ => vendor}/ace/snippets/io.js | 0 .../js/{ => vendor}/ace/snippets/jack.js | 0 .../js/{ => vendor}/ace/snippets/jade.js | 0 .../js/{ => vendor}/ace/snippets/java.js | 0 .../{ => vendor}/ace/snippets/javascript.js | 0 .../js/{ => vendor}/ace/snippets/json.js | 0 .../js/{ => vendor}/ace/snippets/jsoniq.js | 0 .../js/{ => vendor}/ace/snippets/jsp.js | 0 .../js/{ => vendor}/ace/snippets/jsx.js | 0 .../js/{ => vendor}/ace/snippets/julia.js | 0 .../js/{ => vendor}/ace/snippets/kotlin.js | 0 .../js/{ => vendor}/ace/snippets/latex.js | 0 .../js/{ => vendor}/ace/snippets/lean.js | 0 .../js/{ => vendor}/ace/snippets/less.js | 0 .../js/{ => vendor}/ace/snippets/liquid.js | 0 .../js/{ => vendor}/ace/snippets/lisp.js | 0 .../{ => vendor}/ace/snippets/live_script.js | 0 .../{ => vendor}/ace/snippets/livescript.js | 0 .../js/{ => vendor}/ace/snippets/logiql.js | 0 .../js/{ => vendor}/ace/snippets/lsl.js | 0 .../js/{ => vendor}/ace/snippets/lua.js | 0 .../js/{ => vendor}/ace/snippets/luapage.js | 0 .../js/{ => vendor}/ace/snippets/lucene.js | 0 .../js/{ => vendor}/ace/snippets/makefile.js | 0 .../js/{ => vendor}/ace/snippets/markdown.js | 0 .../js/{ => vendor}/ace/snippets/mask.js | 0 .../js/{ => vendor}/ace/snippets/matlab.js | 0 .../js/{ => vendor}/ace/snippets/maze.js | 0 .../js/{ => vendor}/ace/snippets/mel.js | 0 .../ace/snippets/mips_assembler.js | 0 .../ace/snippets/mipsassembler.js | 0 .../js/{ => vendor}/ace/snippets/mushcode.js | 0 .../js/{ => vendor}/ace/snippets/mysql.js | 0 .../js/{ => vendor}/ace/snippets/nix.js | 0 .../js/{ => vendor}/ace/snippets/nsis.js | 0 .../{ => vendor}/ace/snippets/objectivec.js | 0 .../js/{ => vendor}/ace/snippets/ocaml.js | 0 .../js/{ => vendor}/ace/snippets/pascal.js | 0 .../js/{ => vendor}/ace/snippets/perl.js | 0 .../js/{ => vendor}/ace/snippets/pgsql.js | 0 .../js/{ => vendor}/ace/snippets/php.js | 0 .../{ => vendor}/ace/snippets/plain_text.js | 0 .../{ => vendor}/ace/snippets/powershell.js | 0 .../js/{ => vendor}/ace/snippets/praat.js | 0 .../js/{ => vendor}/ace/snippets/prolog.js | 0 .../{ => vendor}/ace/snippets/properties.js | 0 .../js/{ => vendor}/ace/snippets/protobuf.js | 0 .../js/{ => vendor}/ace/snippets/python.js | 0 .../public/js/{ => vendor}/ace/snippets/r.js | 0 .../js/{ => vendor}/ace/snippets/razor.js | 0 .../js/{ => vendor}/ace/snippets/rdoc.js | 0 .../js/{ => vendor}/ace/snippets/rhtml.js | 0 .../js/{ => vendor}/ace/snippets/rst.js | 0 .../js/{ => vendor}/ace/snippets/ruby.js | 0 .../js/{ => vendor}/ace/snippets/rust.js | 0 .../js/{ => vendor}/ace/snippets/sass.js | 0 .../js/{ => vendor}/ace/snippets/scad.js | 0 .../js/{ => vendor}/ace/snippets/scala.js | 0 .../js/{ => vendor}/ace/snippets/scheme.js | 0 .../js/{ => vendor}/ace/snippets/scss.js | 0 .../public/js/{ => vendor}/ace/snippets/sh.js | 0 .../js/{ => vendor}/ace/snippets/sjs.js | 0 .../js/{ => vendor}/ace/snippets/smarty.js | 0 .../js/{ => vendor}/ace/snippets/snippets.js | 0 .../{ => vendor}/ace/snippets/soy_template.js | 0 .../js/{ => vendor}/ace/snippets/space.js | 0 .../js/{ => vendor}/ace/snippets/sql.js | 0 .../js/{ => vendor}/ace/snippets/sqlserver.js | 0 .../js/{ => vendor}/ace/snippets/stylus.js | 0 .../js/{ => vendor}/ace/snippets/svg.js | 0 .../js/{ => vendor}/ace/snippets/swift.js | 0 .../js/{ => vendor}/ace/snippets/swig.js | 0 .../js/{ => vendor}/ace/snippets/tcl.js | 0 .../js/{ => vendor}/ace/snippets/tex.js | 0 .../js/{ => vendor}/ace/snippets/text.js | 0 .../js/{ => vendor}/ace/snippets/textile.js | 0 .../js/{ => vendor}/ace/snippets/toml.js | 0 .../js/{ => vendor}/ace/snippets/tsx.js | 0 .../js/{ => vendor}/ace/snippets/twig.js | 0 .../{ => vendor}/ace/snippets/typescript.js | 0 .../js/{ => vendor}/ace/snippets/vala.js | 0 .../js/{ => vendor}/ace/snippets/vbscript.js | 0 .../js/{ => vendor}/ace/snippets/velocity.js | 0 .../js/{ => vendor}/ace/snippets/verilog.js | 0 .../js/{ => vendor}/ace/snippets/vhdl.js | 0 .../js/{ => vendor}/ace/snippets/wollok.js | 0 .../js/{ => vendor}/ace/snippets/xml.js | 0 .../js/{ => vendor}/ace/snippets/xquery.js | 0 .../js/{ => vendor}/ace/snippets/yaml.js | 0 .../js/{ => vendor}/ace/theme-ambiance.js | 0 .../public/js/{ => vendor}/ace/theme-chaos.js | 0 .../js/{ => vendor}/ace/theme-chrome.js | 0 .../js/{ => vendor}/ace/theme-clouds.js | 0 .../{ => vendor}/ace/theme-clouds_midnight.js | 0 .../js/{ => vendor}/ace/theme-cobalt.js | 0 .../{ => vendor}/ace/theme-crimson_editor.js | 0 .../public/js/{ => vendor}/ace/theme-dawn.js | 0 .../js/{ => vendor}/ace/theme-dreamweaver.js | 0 .../js/{ => vendor}/ace/theme-eclipse.js | 0 .../js/{ => vendor}/ace/theme-github.js | 0 .../js/{ => vendor}/ace/theme-idle_fingers.js | 0 .../js/{ => vendor}/ace/theme-iplastic.js | 0 .../js/{ => vendor}/ace/theme-katzenmilch.js | 0 .../js/{ => vendor}/ace/theme-kr_theme.js | 0 .../js/{ => vendor}/ace/theme-kuroir.js | 0 .../js/{ => vendor}/ace/theme-merbivore.js | 0 .../{ => vendor}/ace/theme-merbivore_soft.js | 0 .../{ => vendor}/ace/theme-mono_industrial.js | 0 .../js/{ => vendor}/ace/theme-monokai.js | 0 .../{ => vendor}/ace/theme-pastel_on_dark.js | 0 .../{ => vendor}/ace/theme-solarized_dark.js | 0 .../{ => vendor}/ace/theme-solarized_light.js | 0 .../js/{ => vendor}/ace/theme-sqlserver.js | 0 .../js/{ => vendor}/ace/theme-terminal.js | 0 .../js/{ => vendor}/ace/theme-textmate.js | 0 .../js/{ => vendor}/ace/theme-tomorrow.js | 0 .../{ => vendor}/ace/theme-tomorrow_night.js | 0 .../ace/theme-tomorrow_night_blue.js | 0 .../ace/theme-tomorrow_night_bright.js | 0 .../ace/theme-tomorrow_night_eighties.js | 0 .../js/{ => vendor}/ace/theme-twilight.js | 0 .../js/{ => vendor}/ace/theme-vibrant_ink.js | 0 .../public/js/{ => vendor}/ace/theme-xcode.js | 0 .../js/{ => vendor}/ace/worker-coffee.js | 0 .../public/js/{ => vendor}/ace/worker-css.js | 0 .../public/js/{ => vendor}/ace/worker-html.js | 0 .../js/{ => vendor}/ace/worker-javascript.js | 0 .../public/js/{ => vendor}/ace/worker-json.js | 0 .../public/js/{ => vendor}/ace/worker-lua.js | 0 .../public/js/{ => vendor}/ace/worker-php.js | 0 .../public/js/{ => vendor}/ace/worker-xml.js | 0 .../js/{ => vendor}/ace/worker-xquery.js | 0 _embed/public/js/{ => vendor}/form2js.js | 0 _embed/templates/base.tmpl | 17 +- 355 files changed, 1005 insertions(+), 1013 deletions(-) delete mode 100644 _embed/public/js/application.js create mode 100644 _embed/public/js/common.js create mode 100644 _embed/public/js/editor.js create mode 100644 _embed/public/js/listing.js rename _embed/public/js/{ => vendor}/ace/ace.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-beautify.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-chromevox.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-elastic_tabstops_lite.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-emmet.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-error_marker.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-keybinding_menu.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-language_tools.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-linking.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-modelist.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-old_ie.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-searchbox.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-settings_menu.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-spellcheck.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-split.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-static_highlight.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-statusbar.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-textarea.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-themelist.js (100%) rename _embed/public/js/{ => vendor}/ace/ext-whitespace.js (100%) rename _embed/public/js/{ => vendor}/ace/keybinding-emacs.js (100%) rename _embed/public/js/{ => vendor}/ace/keybinding-vim.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-abap.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-abc.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-actionscript.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-ada.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-apache_conf.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-applescript.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-asciidoc.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-assembly_x86.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-autohotkey.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-batchfile.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-bro.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-c9search.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-c_cpp.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-cirru.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-clojure.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-cobol.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-coffee.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-coldfusion.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-csharp.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-css.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-curly.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-d.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-dart.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-diff.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-django.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-dockerfile.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-dot.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-drools.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-eiffel.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-ejs.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-elixir.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-elm.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-erlang.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-forth.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-fortran.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-ftl.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-gcode.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-gherkin.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-gitignore.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-glsl.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-gobstones.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-golang.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-groovy.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-haml.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-handlebars.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-haskell.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-haskell_cabal.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-haxe.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-hjson.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-html.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-html_elixir.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-html_ruby.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-ini.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-io.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-jack.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-jade.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-java.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-javascript.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-json.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-jsoniq.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-jsp.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-jsx.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-julia.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-kotlin.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-latex.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-lean.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-less.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-liquid.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-lisp.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-live_script.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-livescript.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-logiql.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-lsl.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-lua.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-luapage.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-lucene.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-makefile.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-markdown.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-mask.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-matlab.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-maze.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-mel.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-mips_assembler.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-mipsassembler.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-mushcode.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-mysql.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-nix.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-nsis.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-objectivec.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-ocaml.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-pascal.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-perl.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-pgsql.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-php.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-plain_text.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-powershell.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-praat.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-prolog.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-properties.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-protobuf.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-python.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-r.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-razor.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-rdoc.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-rhtml.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-rst.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-ruby.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-rust.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-sass.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-scad.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-scala.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-scheme.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-scss.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-sh.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-sjs.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-smarty.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-snippets.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-soy_template.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-space.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-sql.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-sqlserver.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-stylus.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-svg.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-swift.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-swig.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-tcl.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-tex.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-text.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-textile.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-toml.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-tsx.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-twig.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-typescript.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-vala.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-vbscript.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-velocity.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-verilog.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-vhdl.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-wollok.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-xml.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-xquery.js (100%) rename _embed/public/js/{ => vendor}/ace/mode-yaml.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/abap.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/abc.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/actionscript.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/ada.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/apache_conf.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/applescript.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/asciidoc.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/assembly_x86.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/autohotkey.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/batchfile.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/bro.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/c9search.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/c_cpp.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/cirru.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/clojure.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/cobol.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/coffee.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/coldfusion.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/csharp.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/css.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/curly.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/d.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/dart.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/diff.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/django.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/dockerfile.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/dot.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/drools.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/eiffel.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/ejs.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/elixir.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/elm.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/erlang.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/forth.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/fortran.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/ftl.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/gcode.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/gherkin.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/gitignore.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/glsl.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/gobstones.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/golang.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/groovy.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/haml.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/handlebars.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/haskell.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/haskell_cabal.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/haxe.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/hjson.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/html.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/html_elixir.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/html_ruby.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/ini.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/io.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/jack.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/jade.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/java.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/javascript.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/json.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/jsoniq.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/jsp.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/jsx.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/julia.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/kotlin.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/latex.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/lean.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/less.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/liquid.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/lisp.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/live_script.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/livescript.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/logiql.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/lsl.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/lua.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/luapage.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/lucene.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/makefile.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/markdown.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/mask.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/matlab.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/maze.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/mel.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/mips_assembler.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/mipsassembler.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/mushcode.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/mysql.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/nix.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/nsis.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/objectivec.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/ocaml.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/pascal.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/perl.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/pgsql.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/php.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/plain_text.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/powershell.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/praat.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/prolog.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/properties.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/protobuf.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/python.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/r.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/razor.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/rdoc.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/rhtml.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/rst.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/ruby.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/rust.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/sass.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/scad.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/scala.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/scheme.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/scss.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/sh.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/sjs.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/smarty.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/snippets.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/soy_template.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/space.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/sql.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/sqlserver.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/stylus.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/svg.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/swift.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/swig.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/tcl.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/tex.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/text.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/textile.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/toml.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/tsx.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/twig.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/typescript.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/vala.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/vbscript.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/velocity.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/verilog.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/vhdl.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/wollok.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/xml.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/xquery.js (100%) rename _embed/public/js/{ => vendor}/ace/snippets/yaml.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-ambiance.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-chaos.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-chrome.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-clouds.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-clouds_midnight.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-cobalt.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-crimson_editor.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-dawn.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-dreamweaver.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-eclipse.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-github.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-idle_fingers.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-iplastic.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-katzenmilch.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-kr_theme.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-kuroir.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-merbivore.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-merbivore_soft.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-mono_industrial.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-monokai.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-pastel_on_dark.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-solarized_dark.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-solarized_light.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-sqlserver.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-terminal.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-textmate.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-tomorrow.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-tomorrow_night.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-tomorrow_night_blue.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-tomorrow_night_bright.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-tomorrow_night_eighties.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-twilight.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-vibrant_ink.js (100%) rename _embed/public/js/{ => vendor}/ace/theme-xcode.js (100%) rename _embed/public/js/{ => vendor}/ace/worker-coffee.js (100%) rename _embed/public/js/{ => vendor}/ace/worker-css.js (100%) rename _embed/public/js/{ => vendor}/ace/worker-html.js (100%) rename _embed/public/js/{ => vendor}/ace/worker-javascript.js (100%) rename _embed/public/js/{ => vendor}/ace/worker-json.js (100%) rename _embed/public/js/{ => vendor}/ace/worker-lua.js (100%) rename _embed/public/js/{ => vendor}/ace/worker-php.js (100%) rename _embed/public/js/{ => vendor}/ace/worker-xml.js (100%) rename _embed/public/js/{ => vendor}/ace/worker-xquery.js (100%) rename _embed/public/js/{ => vendor}/form2js.js (100%) diff --git a/_embed/public/js/application.js b/_embed/public/js/application.js deleted file mode 100644 index b75f20e4..00000000 --- a/_embed/public/js/application.js +++ /dev/null @@ -1,1009 +0,0 @@ -'use strict'; - -var tempID = "_fm_internal_temporary_id" -var selectedItems = []; - -/* * * * * * * * * * * * * * * * - * * - * GENERAL FUNCTIONS * - * * - * * * * * * * * * * * * * * * */ - -// Removes an element, if exists, from an array -Array.prototype.removeElement = function(element) { - var i = this.indexOf(element); - if (i != -1) { - this.splice(i, 1); - } -} - -// Replaces an element inside an array by another -Array.prototype.replaceElement = function(begin, end) { - var i = this.indexOf(begin); - if (i != -1) { - this[i] = end; - } -} - -// Sends a costum event to itself -Document.prototype.sendCostumEvent = function(text) { - this.dispatchEvent(new CustomEvent(text)); -} - -// Gets the content of a cookie -Document.prototype.getCookie = function(name) { - var re = new RegExp("(?:(?:^|.*;\\s*)" + name + "\\s*\\=\\s*([^;]*).*$)|^.*$"); - return document.cookie.replace(re, "$1"); -} - -// Changes a button to the loading animation -Element.prototype.changeToLoading = function() { - let element = this; - let originalText = element.innerHTML; - - element.style.opacity = 0; - - setTimeout(function() { - element.innerHTML = 'autorenew'; - element.style.opacity = 1; - }, 200); - - return originalText; -} - -// Changes an element to done animation -Element.prototype.changeToDone = function(error, html) { - this.style.opacity = 0; - - let thirdStep = () => { - this.innerHTML = html; - this.style.opacity = null; - - if (selectedItems.length == 0 && document.getElementById('listing')) { - document.sendCostumEvent('changed-selected'); - } - } - - let secondStep = () => { - this.style.opacity = 0; - setTimeout(thirdStep, 200); - } - - let firstStep = () => { - if (error) { - this.innerHTML = 'close'; - } else { - this.innerHTML = 'done'; - } - - this.style.opacity = 1; - - setTimeout(secondStep, 1000); - } - - setTimeout(firstStep, 200); - return false; -} - -function getCSSRule(ruleName) { - ruleName = ruleName.toLowerCase(); - var result = null; - var find = Array.prototype.find; - - find.call(document.styleSheets, styleSheet => { - result = find.call(styleSheet.cssRules, cssRule => { - return cssRule instanceof CSSStyleRule && - cssRule.selectorText.toLowerCase() == ruleName; - }); - return result != null; - }); - return result; -} - -var toWebDavURL = function(url) { - url = url.replace(baseURL + "/", webdavURL + "/"); - return window.location.origin + url -} - -// Handles the open file button event -var openEvent = function(event) { - if (this.classList.contains('disabled')) { - return false; - } - - if (selectedItems.length) { - window.open(document.getElementById(selectedItems[0]).dataset.url + '?raw=true'); - return false; - } - - window.open(window.location + '?raw=true'); - return false; -} - -// Handles the delete button event -var deleteEvent = function(event) { - let single = false; - - if (!selectedItems.length) { - selectedItems = [window.location.pathname]; - single = true; - } - - if (selectedItems.length) { - Array.from(selectedItems).forEach(link => { - let html = document.getElementById("delete").changeToLoading(); - let request = new XMLHttpRequest(); - - request.open('DELETE', toWebDavURL(link)); - - request.send(); - request.onreadystatechange = function() { - if (request.readyState == 4) { - if (request.status == 204) { - if (single) { - window.location.pathname = RemoveLastDirectoryPartOf(window.location.pathname); - } else { - document.getElementById(link).remove(); - selectedItems.removeElement(link); - } - } - document.getElementById('delete').changeToDone((request.status != 204), html); - } - } - }); - - return false; - } - - return false; -} - -// Prevent Default event -var preventDefault = function(event) { - event.preventDefault(); -} - -// Remove the last directory of an url -var RemoveLastDirectoryPartOf = function(url) { - var arr = url.split('/'); - arr.pop(); - return (arr.join('/')); -} - -/* * * * * * * * * * * * * * * * - * * - * LISTING SPECIFIC FUNCTIONS * - * * - * * * * * * * * * * * * * * * */ - -var reloadListing = function(callback) { - let request = new XMLHttpRequest(); - request.open('GET', window.location); - request.setRequestHeader('Minimal', 'true'); - request.send(); - request.onreadystatechange = function() { - if (request.readyState == 4) { - if (request.status == 200) { - document.querySelector('body main').innerHTML = request.responseText; - addNewDirEvents(); - - if (typeof callback == 'function') { - callback(); - } - } - } - } -} - -// Rename file event -var renameEvent = function(event) { - if (this.classList.contains('disabled') || !selectedItems.length) { - return false; - } - - // This mustn't happen - if (selectedItems.length > 1) { - alert("Something went wrong. Please refresh the page."); - location.refresh(); - } - - let item = document.getElementById(selectedItems[0]), - link = item.dataset.url, - span = item.getElementsByTagName('span')[0], - name = span.innerHTML; - - span.setAttribute('contenteditable', 'true'); - span.focus(); - - let keyDownEvent = (event) => { - if (event.keyCode == 13) { - let newName = span.innerHTML, - newLink = RemoveLastDirectoryPartOf(toWebDavURL(link)) + newName, - html = document.getElementById('rename').changeToLoading(), - request = new XMLHttpRequest(); - - request.open('MOVE', toWebDavURL(link)); - request.setRequestHeader('Destination', newLink); - request.setRequestHeader('Content-type', 'text/plain; charset=utf-8'); - request.send(); - request.onreadystatechange = function() { - // TODO: redirect if it's moved to another folder - - if (request.readyState == 4) { - if (request.status != 201 && request.status != 204) { - span.innerHTML = name; - } else { - let newLink = encodeURI(link.replace(name, newName)); - console.log(request.body) - reloadListing(() => { - newName = btoa(newName); - selectedItems = [newName]; - document.getElementById(newName).setAttribute("aria-selected", true); - document.sendCostumEvent('changed-selected'); - }); - } - - document.getElementById('rename').changeToDone((request.status != 201 && request.status != 204), html); - } - } - } - - if (event.KeyCode == 27) { - span.innerHTML = name; - } - - if (event.keyCode == 13 || event.keyCode == 27) { - span.setAttribute('contenteditable', 'false'); - span.removeEventListener('keydown', keyDownEvent); - event.preventDefault(); - } - - return false; - } - - span.addEventListener('keydown', keyDownEvent); - span.addEventListener('blur', (event) => { - span.innerHTML = name; - span.setAttribute('contenteditable', 'false'); - span.removeEventListener('keydown', keyDownEvent); - item.removeEventListener('click', preventDefault); - }); - - return false; -} - -// Upload files -var handleFiles = function(files, base) { - let button = document.getElementById("upload"); - let html = button.changeToLoading(); - - for (let i = 0; i < files.length; i++) { - let request = new XMLHttpRequest(); - request.open('PUT', toWebDavURL(window.location.pathname + base + files[i].name)); - - request.send(files[i]); - request.onreadystatechange = function() { - if (request.readyState == 4) { - if (request.status == 201) { - reloadListing(); - } - - button.changeToDone((request.status != 201), html); - } - } - } - - return false; -} - -// Handles the back button event -var backEvent = function(event) { - var items = document.getElementsByClassName('item'); - Array.from(items).forEach(link => { - link.setAttribute("aria-selected", false); - }); - selectedItems = []; - - var event = new CustomEvent('changed-selected'); - document.dispatchEvent(event); - return false; -} - -// Toggles the view mode -var viewEvent = function(event) { - let cookie = document.getCookie('view-list'); - let listing = document.getElementById('listing'); - - if (cookie != 'true') { - document.cookie = 'view-list=true'; - } else { - document.cookie = 'view-list=false'; - } - - handleViewType(document.getCookie('view-list')); - return false; -} - -// Handles the view mode change -var handleViewType = function(viewList) { - let listing = document.getElementById('listing'); - let button = document.getElementById('view'); - - if (viewList == "true") { - listing.classList.add('list'); - button.innerHTML = 'view_module Switch view'; - return false; - } - - button.innerHTML = 'view_list Switch view'; - listing.classList.remove('list'); - return false; -} - -var addNewDirEvents = function() { - document.getElementById('new').addEventListener('click', event => { - let newdir = document.getElementById('newdir'); - newdir.classList.add('enabled'); - newdir.focus(); - }); - - document.getElementById('newdir').addEventListener('blur', event => { - document.getElementById('newdir').classList.remove('enabled'); - }); - - document.getElementById('newdir').addEventListener('keydown', newDirEvent); -} - -// Handles the new directory event -var newDirEvent = function(event) { - // TODO: create new dir button and new file button - if (event.keyCode == 27) { - document.getElementById('newdir').classList.toggle('enabled'); - setTimeout(() => { - document.getElementById('newdir').value = ''; - }, 200); - } - - if (event.keyCode == 13) { - event.preventDefault(); - - let button = document.getElementById('new'); - let html = button.changeToLoading(); - let request = new XMLHttpRequest(); - let name = document.getElementById('newdir').value; - - request.open((name.endsWith("/") ? "MKCOL" : "PUT"), toWebDavURL(window.location.pathname + name)); - - request.send(); - request.onreadystatechange = function() { - if (request.readyState == 4) { - button.changeToDone((request.status != 201), html); - reloadListing(() => { - addNewDirEvents(); - }); - } - } - } - - return false; -} - -// Handles the event when there is change on selected elements -document.addEventListener("changed-selected", function(event) { - redefineDownloadURLs(); - - let selectedNumber = selectedItems.length, - fileAction = document.getElementById("file-only"); - - if (selectedNumber) { - fileAction.classList.remove("disabled"); - - if (selectedNumber > 1) { - document.getElementById("open").classList.add("disabled"); - document.getElementById("rename").classList.add("disabled"); - } - - if (selectedNumber == 1) { - document.getElementById("open").classList.remove("disabled"); - document.getElementById("rename").classList.remove("disabled"); - } - - return false; - } - - fileAction.classList.add("disabled"); - return false; -}); - -var redefineDownloadURLs = function() { - let files = ""; - - for (let i = 0; i < selectedItems.length; i++) { - let url = document.getElementById(selectedItems[i]).dataset.url; - files += url.replace(window.location.pathname, "") + ","; - } - - files = files.substring(0, files.length - 1); - files = encodeURIComponent(files); - - let links = document.querySelectorAll("#download ul a"); - Array.from(links).forEach(link => { - link.href = "?download=" + link.dataset.format + "&files=" + files; - }); -} - -var searchEvent = function(event) { - let value = this.value; - let search = document.getElementById('search'); - let scrollable = document.querySelector('#search > div'); - let box = document.querySelector('#search > div div'); - - if (value.length == 0) { - box.innerHTML = "Search or use one of your supported commands: " + user.Commands.join(", ") + "."; - return; - } - - let pieces = value.split(' '); - let supported = false; - - user.Commands.forEach(function(cmd) { - if (cmd == pieces[0]) { - supported = true; - } - }); - - if (!supported) { - box.innerHTML = "Press enter to search." - } else { - box.innerHTML = "Press enter to execute." - } - - if (event.keyCode == 13) { - box.innerHTML = ''; - search.classList.add('ongoing'); - - if (supported) { - var conn = new WebSocket('ws://' + window.location.host + window.location.pathname + '?command=true'); - conn.onopen = function() { - conn.send(value); - }; - - conn.onmessage = function(event) { - box.innerHTML = event.data; - scrollable.scrollTop = scrollable.scrollHeight; - } - - conn.onclose = function(event) { - search.classList.remove('ongoing'); - reloadListing(); - } - } else { - box.innerHTML = ''; - let ul = box.querySelector('ul'); - - var conn = new WebSocket('ws://' + window.location.host + window.location.pathname + '?search=true'); - conn.onopen = function() { - conn.send(value); - }; - - conn.onmessage = function(event) { - ul.innerHTML += '
  • ' + event.data + '
  • '; - scrollable.scrollTop = scrollable.scrollHeight; - } - - conn.onclose = function(event) { - search.classList.remove('ongoing'); - } - } - } -} - - - -document.addEventListener('listing', event => { - // Handles the current view mode and adds the event to the button - handleViewType(document.getCookie("view-list")); - document.getElementById("view").addEventListener("click", viewEvent); - - let updateColumns = () => { - let columns = Math.floor(document.getElementById('listing').offsetWidth / 300), - itens = getCSSRule('#listing .item'); - - itens.style.width = `calc(${100/columns}% - 1em)`; - } - - updateColumns(); - window.addEventListener("resize", () => { - updateColumns(); - }); - - // Add event to back button and executes back event on ESC - document.addEventListener('keydown', (event) => { - if (event.keyCode == 27) { - backEvent(event); - } - }); - - if (user.AllowCommands) { - let search = document.getElementById("search"), - searchInput = search.querySelector("input"), - searchDiv = search.querySelector("div"), - hover = false, - focus = false; - - searchInput.addEventListener('focus', event => { - focus = true; - search.classList.add('active'); - }); - - searchDiv.addEventListener('mouseover', event => { - hover = true; - search.classList.add('active'); - }); - - searchInput.addEventListener('blur', event => { - focus = false; - if (hover) return; - search.classList.remove('active'); - }); - - search.addEventListener('mouseleave', event => { - hover = false; - if (focus) return; - search.classList.remove('active'); - }); - - search.addEventListener("click", event => { - search.classList.add("active"); - search.querySelector("input").focus(); - }); - - document.querySelector('#search > div div').innerHTML = "Search or use one of your supported commands: " + user.Commands.join(", ") + "."; - document.querySelector('#search input').addEventListener('keyup', searchEvent); - } - - if (user.AllowEdit) { - // Enables rename button - document.getElementById("rename").addEventListener("click", renameEvent); - } - - if (user.AllowNew) { - // Enables upload button - document.getElementById("upload").addEventListener("click", (event) => { - document.getElementById("upload-input").click(); - }); - - addNewDirEvents(); - - // Drag and Drop - let items = document.getElementsByClassName('item'); - document.addEventListener("dragover", function(event) { - event.preventDefault(); - }, false); - - document.addEventListener("dragenter", (event) => { - Array.from(items).forEach(file => { - file.style.opacity = 0.5; - }); - }, false); - - document.addEventListener("dragend", (event) => { - Array.from(items).forEach(file => { - file.style.opacity = 1; - }); - }, false); - - document.addEventListener("drop", function(event) { - event.preventDefault(); - var dt = event.dataTransfer; - var files = dt.files; - - let el = event.target; - - for (let i = 0; i < 5; i++) { - if (el != null && !el.classList.contains('item')) { - el = el.parentElement; - } - } - - if (files.length > 0) { - if (el != null && el.classList.contains('item') && el.dataset.dir == "true") { - handleFiles(files, el.querySelector('.name').innerHTML + "/"); - return; - } - - handleFiles(files, ""); - } else { - Array.from(items).forEach(file => { - file.style.opacity = 1; - }); - } - - }, false); - } -}); - -function itemDragStart(event) { - let el = event.target; - - for (let i = 0; i < 5; i++) { - if (!el.classList.contains('item')) { - el = el.parentElement; - } - } - - event.dataTransfer.setData("id", el.id); - event.dataTransfer.setData("name", el.querySelector('.name').innerHTML); -} - -function itemDragOver(event) { - event.preventDefault(); - let el = event.target; - - for (let i = 0; i < 5; i++) { - if (!el.classList.contains('item')) { - el = el.parentElement; - } - } - - el.style.opacity = 1; -} - -function itemDrop(e) { - e.preventDefault(); - - let el = e.target, - id = e.dataTransfer.getData("id"), - name = e.dataTransfer.getData("name"); - - if (id == "" || name == "") return; - - for (let i = 0; i < 5; i++) { - if (!el.classList.contains('item')) { - el = el.parentElement; - } - } - - if (el.id === id) return; - - let oldLink = toWebDavURL(document.getElementById(id).dataset.url), - newLink = toWebDavURL(el.dataset.url + name), - request = new XMLHttpRequest(); - - request.open('MOVE', oldLink); - request.setRequestHeader('Destination', newLink); - request.send(); - request.onreadystatechange = function() { - if (request.readyState == 4) { - if (request.status == 201 || request.status == 204) { - reloadListing(); - } - } - } -} - - -function openItem(event) { - window.location = event.currentTarget.dataset.url; -} - -function selectItem(event) { - let el = event.currentTarget; - - if (selectedItems.length != 0) event.preventDefault(); - if (selectedItems.indexOf(el.id) == -1) { - if (!event.ctrlKey) backEvent(event); - - el.setAttribute("aria-selected", true); - selectedItems.push(el.id); - } else { - el.setAttribute("aria-selected", false); - selectedItems.removeElement(el.id); - } - - document.sendCostumEvent("changed-selected"); - return false; -} - - -/* * * * * * * * * * * * * * * * - * * - * EDITOR SPECIFIC FUNCTIONS * - * * - * * * * * * * * * * * * * * * */ - -// auto grow textareas -var textareaAutoGrow = function() { - let autogrow = function() { - this.style.height = '5px'; - this.style.height = this.scrollHeight + 'px'; - } - - let textareas = document.getElementsByTagName('textarea'); - - let addAutoGrow = () => { - Array.from(textareas).forEach(textarea => { - autogrow.bind(textarea)(); - textarea.addEventListener('keyup', autogrow); - }); - } - - addAutoGrow(); - window.addEventListener('resize', addAutoGrow) -} - -var deleteFrontMatterItem = function(event) { - event.preventDefault(); - document.getElementById(this.dataset.delete).remove(); -} - -var addFrontMatterItem = function(event) { - event.preventDefault(); - - let temp = document.getElementById(tempID) - if (temp) { - temp.remove(); - } - - let block = this.parentNode; - let type = block.dataset.type; - let id = block.id; - - // If the block is an array - if (type === "array") { - let fieldID = id + "[]" - let input = fieldID - let count = block.querySelectorAll('.group > div').length - input = input.replace(/\[/, '\\['); - input = input.replace(/\]/, '\\]'); - - let fieldsets = block.getElementsByTagName("fieldset"); - - if (fieldsets.length > 0) { - let newtype = fieldsets[0].dataset.type; - let bid = id + "[" + fieldsets.length + "]"; - let name = fieldsets.length; - - let template = `
    -

    ${name}

    -
    - add -
    -
    - close -
    -
    -
    -
    `; - - block.insertAdjacentHTML('beforeend', template); - - document.querySelector(`div[data-delete="${bid}"]`).addEventListener('click', deleteFrontMatterItem); - document.getElementById(bid).querySelector('.action.add').addEventListener('click', addFrontMatterItem); - } else { - block.querySelector('.group').insertAdjacentHTML('beforeend', `
    - -
    - close -
    -
    `); - - document.getElementById(`${fieldID}-${count}`).querySelector('input').focus(); - document.querySelector(`div[data-delete="${fieldID}-${count}"]`).addEventListener('click', deleteFrontMatterItem); - } - - - } - - if (type == "object" || type == "parent") { - let template = `
    -
    - - -
    `; - - if (type == "parent") { - document.querySelector('div.button.add').insertAdjacentHTML('beforebegin', template); - } else { - block.querySelector('.delete').insertAdjacentHTML('afterend', template); - } - - let temp = document.getElementById(tempID); - let input = temp.querySelector('input'); - input.focus(); - input.addEventListener('keydown', (event) => { - if (event.keyCode == 27) { - event.preventDefault(); - temp.remove(); - } - - if (event.keyCode == 13) { - event.preventDefault(); - - let value = input.value; - if (value === '') { - temp.remove(); - return true; - } - - let name = value.substring(0, value.lastIndexOf(':')); - let newtype = value.substring(value.lastIndexOf(':') + 1, value.length); - if (newtype !== "" && newtype !== "array" && newtype !== "object") { - name = value; - } - - name = name.replace(' ', '_'); - - let bid = name; - if (id != '') { - bid = id + "." + bid; - } - - temp.remove(); - - switch (newtype) { - case "array": - case "object": - let template = `
    -

    ${name}

    -
    - add -
    -
    - close -
    -
    -
    -
    `; - - if (type == "parent") { - document.querySelector('div.button.add').insertAdjacentHTML('beforebegin', template); - } else { - block.insertAdjacentHTML('beforeend', template); - } - - document.querySelector(`div[data-delete="${bid}"]`).addEventListener('click', deleteFrontMatterItem); - document.getElementById(bid).querySelector('.action.add').addEventListener('click', addFrontMatterItem); - break; - default: - let group = block.querySelector('.group'); - - if (group == null) { - block.insertAdjacentHTML('afterbegin', '
    '); - group = block.querySelector('.group'); - } - - group.insertAdjacentHTML('beforeend', `
    - - -
    - close -
    -
    `); - - document.getElementById(bid).focus(); - document.querySelector(`div[data-delete="block-${bid}"]`).addEventListener('click', deleteFrontMatterItem); - } - } - }); - } - - return false; -} - -document.addEventListener("editor", (event) => { - textareaAutoGrow(); - - let container = document.getElementById('editor'); - let button = document.querySelector('#submit span:first-child'); - let kind = container.dataset.kind; - - if (kind != 'frontmatter-only') { - let editor = document.getElementById('editor-source'); - let mode = editor.dataset.mode; - let textarea = document.querySelector('textarea[name="content"]'); - let aceEditor = ace.edit('editor-source'); - aceEditor.getSession().setMode("ace/mode/" + mode); - aceEditor.getSession().setValue(textarea.value); - aceEditor.getSession().on('change', function() { - textarea.value = aceEditor.getSession().getValue(); - }); - aceEditor.setOptions({ - wrap: true, - maxLines: Infinity, - theme: "ace/theme/github", - showPrintMargin: false, - fontSize: "1em", - minLines: 20 - }); - } - - let deleteFrontMatterItemButtons = document.getElementsByClassName('delete'); - Array.from(deleteFrontMatterItemButtons).forEach(button => { - button.addEventListener('click', deleteFrontMatterItem); - }); - - let addFrontMatterItemButtons = document.getElementsByClassName('add'); - Array.from(addFrontMatterItemButtons).forEach(button => { - button.addEventListener('click', addFrontMatterItem); - }); - - let saveContent = function() { - let data = form2js(document.querySelector('form')); - - if (typeof data.content === "undefined" && kind != 'frontmatter-only') { - data.content = ""; - } - - if (typeof data.content === "number") { - data.content = data.content.toString(); - } - - let html = button.changeToLoading(); - let request = new XMLHttpRequest(); - request.open("PUT", toWebDavURL(window.location.pathname)); - request.setRequestHeader('Kind', kind); - - request.send(JSON.stringify(data)); - request.onreadystatechange = function() { - if (request.readyState == 4) { - button.changeToDone((request.status != 201), html); - } - } - } - - document.querySelector('form').addEventListener('submit', (event) => { - event.preventDefault(); - saveContent(); - }); - - window.addEventListener('keydown', (event) => { - if (event.ctrlKey || event.metaKey) { - switch (String.fromCharCode(event.which).toLowerCase()) { - case 's': - event.preventDefault(); - saveContent(); - break; - } - } - }); - - return false; -}); - -/* * * * * * * * * * * * * * * * - * * - * BOOTSTRAP * - * * - * * * * * * * * * * * * * * * */ - -document.addEventListener("DOMContentLoaded", function(event) { - // Add event to logout button - document.getElementById("logout").addEventListener("click", event => { - let request = new XMLHttpRequest(); - request.open('GET', window.location.pathname, true, "username", "password"); - request.send(); - request.onreadystatechange = function() { - if (request.readyState == 4) { - window.location = "/"; - } - } - }); - - // Enables open, delete and download buttons - document.getElementById("open").addEventListener("click", openEvent); - - if (user.AllowEdit) { - document.getElementById("delete").addEventListener("click", deleteEvent); - } - - if (document.getElementById('listing')) { - document.sendCostumEvent('listing'); - } - - if (document.getElementById('editor')) { - document.sendCostumEvent('editor'); - } - - return false; -}); \ No newline at end of file diff --git a/_embed/public/js/common.js b/_embed/public/js/common.js new file mode 100644 index 00000000..f3dd8a57 --- /dev/null +++ b/_embed/public/js/common.js @@ -0,0 +1,269 @@ +'use strict'; + +var tempID = "_fm_internal_temporary_id", + buttons = {}; + +// Removes an element, if exists, from an array +Array.prototype.removeElement = function(element) { + var i = this.indexOf(element); + if (i != -1) { + this.splice(i, 1); + } +} + +// Replaces an element inside an array by another +Array.prototype.replaceElement = function(begin, end) { + var i = this.indexOf(begin); + if (i != -1) { + this[i] = end; + } +} + +// Sends a costum event to itself +Document.prototype.sendCostumEvent = function(text) { + this.dispatchEvent(new CustomEvent(text)); +} + +// Gets the content of a cookie +Document.prototype.getCookie = function(name) { + var re = new RegExp("(?:(?:^|.*;\\s*)" + name + "\\s*\\=\\s*([^;]*).*$)|^.*$"); + return document.cookie.replace(re, "$1"); +} + +// Changes a button to the loading animation +Element.prototype.changeToLoading = function() { + let element = this; + let originalText = element.innerHTML; + + element.style.opacity = 0; + + setTimeout(function() { + element.innerHTML = 'autorenew'; + element.style.opacity = 1; + }, 200); + + return originalText; +} + +// Changes an element to done animation +Element.prototype.changeToDone = function(error, html) { + this.style.opacity = 0; + + let thirdStep = () => { + this.innerHTML = html; + this.style.opacity = null; + + if (selectedItems.length == 0 && document.getElementById('listing')) { + document.sendCostumEvent('changed-selected'); + } + } + + let secondStep = () => { + this.style.opacity = 0; + setTimeout(thirdStep, 200); + } + + let firstStep = () => { + if (error) { + this.innerHTML = 'close'; + } else { + this.innerHTML = 'done'; + } + + this.style.opacity = 1; + + setTimeout(secondStep, 1000); + } + + setTimeout(firstStep, 200); + return false; +} + +function getCSSRule(ruleName) { + ruleName = ruleName.toLowerCase(); + var result = null; + var find = Array.prototype.find; + + find.call(document.styleSheets, styleSheet => { + result = find.call(styleSheet.cssRules, cssRule => { + return cssRule instanceof CSSStyleRule && + cssRule.selectorText.toLowerCase() == ruleName; + }); + return result != null; + }); + return result; +} + +function toWebDavURL(url) { + return window.location.origin + url.replace(baseURL + "/", webdavURL + "/"); +} + +// Remove the last directory of an url +var removeLastDirectoryPartOf = function(url) { + var arr = url.split('/'); + arr.pop(); + return (arr.join('/')); +} + +/* * * * * * * * * * * * * * * * + * * + * EVENTS * + * * + * * * * * * * * * * * * * * * */ + +// Prevent Default event +var preventDefault = function(event) { + event.preventDefault(); +} + +function logoutEvent(event) { + let request = new XMLHttpRequest(); + request.open('GET', window.location.pathname, true, "username", "password"); + request.send(); + request.onreadystatechange = function() { + if (request.readyState == 4) { + window.location = "/"; + } + } +} + +function openEvent(event) { + if (event.currentTarget.classList.contains('disabled')) { + return false; + } + + let link = '?raw=true'; + + if (selectedItems.length) { + link = document.getElementById(selectedItems[0]).dataset.url + link; + } else { + link = window.location + link; + } + + window.open(link); + return false; +} + +// Handles the delete button event +function deleteEvent(event) { + let single = false; + + if (!selectedItems.length) { + selectedItems = [window.location.pathname]; + single = true; + } + + Array.from(selectedItems).forEach(id => { + let request = new XMLHttpRequest(), + html = buttons.delete.changeToLoading(), + el = document.getElementById(id), + url = el.dataset.url; + + request.open('DELETE', toWebDavURL(url)); + request.onreadystatechange = function() { + if (request.readyState == 4) { + if (request.status == 204) { + if (single) { + window.location.pathname = removeLastDirectoryPartOf(window.location.pathname); + } else { + el.remove(); + selectedItems.removeElement(id); + } + } + + buttons.delete.changeToDone(request.status != 204, html); + } + } + r.send(); + }); + + return false; +} + +var searchEvent = function(event) { + let value = this.value, + search = document.getElementById('search'), + scrollable = document.querySelector('#search > div'), + box = document.querySelector('#search > div div'); + + if (value.length == 0) { + box.innerHTML = "Search or use one of your supported commands: " + user.Commands.join(", ") + "."; + return; + } + + let pieces = value.split(' '); + let supported = false; + + user.Commands.forEach(function(cmd) { + if (cmd == pieces[0]) { + supported = true; + } + }); + + if (!supported) { + box.innerHTML = "Press enter to search." + } else { + box.innerHTML = "Press enter to execute." + } + + if (event.keyCode == 13) { + box.innerHTML = ''; + search.classList.add('ongoing'); + + if (supported) { + var conn = new WebSocket('ws://' + window.location.host + window.location.pathname + '?command=true'); + conn.onopen = function() { + conn.send(value); + }; + + conn.onmessage = function(event) { + box.innerHTML = event.data; + scrollable.scrollTop = scrollable.scrollHeight; + } + + conn.onclose = function(event) { + search.classList.remove('ongoing'); + reloadListing(); + } + } else { + box.innerHTML = ''; + let ul = box.querySelector('ul'); + + var conn = new WebSocket('ws://' + window.location.host + window.location.pathname + '?search=true'); + conn.onopen = function() { + conn.send(value); + }; + + conn.onmessage = function(event) { + ul.innerHTML += '
  • ' + event.data + '
  • '; + scrollable.scrollTop = scrollable.scrollHeight; + } + + conn.onclose = function(event) { + search.classList.remove('ongoing'); + } + } + } +} + +/* * * * * * * * * * * * * * * * + * * + * BOOTSTRAP * + * * + * * * * * * * * * * * * * * * */ + +document.addEventListener("DOMContentLoaded", function(event) { + buttons.logout = document.getElementById("logout"); + buttons.open = document.getElementById("open"); + buttons.delete = document.getElementById("delete"); + + // Attach event listeners + buttons.logout.addEventListener("click", logoutEvent); + buttons.open.addEventListener("click", openEvent); + + if (user.AllowEdit) { + buttons.delete.addEventListener("click", deleteEvent); + } + + return false; +}); \ No newline at end of file diff --git a/_embed/public/js/editor.js b/_embed/public/js/editor.js new file mode 100644 index 00000000..f4b52df5 --- /dev/null +++ b/_embed/public/js/editor.js @@ -0,0 +1,258 @@ +'use strict'; + +function textareaAutoGrow() { + let autogrow = function() { + this.style.height = '5px'; + this.style.height = this.scrollHeight + 'px'; + } + + let textareas = document.getElementsByTagName('textarea'); + + let addAutoGrow = () => { + Array.from(textareas).forEach(textarea => { + autogrow.bind(textarea)(); + textarea.addEventListener('keyup', autogrow); + }); + } + + addAutoGrow(); + window.addEventListener('resize', addAutoGrow) +} + +function deleteFrontMatterItem(event) { + event.preventDefault(); + document.getElementById(this.dataset.delete).remove(); +} + +function addFrontMatterItem(event) { + event.preventDefault(); + + let temp = document.getElementById(tempID) + if (temp) { + temp.remove(); + } + + let block = this.parentNode, + type = block.dataset.type, + id = block.id; + + // If the block is an array + if (type === "array") { + let fieldID = id + "[]", + input = fieldID, + count = block.querySelectorAll('.group > div').length; + + input = input.replace(/\[/, '\\['); + input = input.replace(/\]/, '\\]'); + + let fieldsets = block.getElementsByTagName("fieldset"); + + if (fieldsets.length > 0) { + let newtype = fieldsets[0].dataset.type; + let bid = id + "[" + fieldsets.length + "]"; + let name = fieldsets.length; + + let template = `
    +

    ${name}

    +
    + add +
    +
    + close +
    +
    +
    +
    `; + + block.insertAdjacentHTML('beforeend', template); + + document.querySelector(`div[data-delete="${bid}"]`).addEventListener('click', deleteFrontMatterItem); + document.getElementById(bid).querySelector('.action.add').addEventListener('click', addFrontMatterItem); + } else { + block.querySelector('.group').insertAdjacentHTML('beforeend', `
    + +
    + close +
    +
    `); + + document.getElementById(`${fieldID}-${count}`).querySelector('input').focus(); + document.querySelector(`div[data-delete="${fieldID}-${count}"]`).addEventListener('click', deleteFrontMatterItem); + } + } + + if (type == "object" || type == "parent") { + let template = `
    +
    + + +
    `; + + if (type == "parent") { + document.querySelector('div.button.add').insertAdjacentHTML('beforebegin', template); + } else { + block.querySelector('.delete').insertAdjacentHTML('afterend', template); + } + + let temp = document.getElementById(tempID); + let input = temp.querySelector('input'); + input.focus(); + input.addEventListener('keydown', (event) => { + if (event.keyCode == 27) { + event.preventDefault(); + temp.remove(); + } + + if (event.keyCode == 13) { + event.preventDefault(); + + let value = input.value; + if (value === '') { + temp.remove(); + return true; + } + + let name = value.substring(0, value.lastIndexOf(':')); + let newtype = value.substring(value.lastIndexOf(':') + 1, value.length); + if (newtype !== "" && newtype !== "array" && newtype !== "object") { + name = value; + } + + name = name.replace(' ', '_'); + + let bid = name; + if (id != '') { + bid = id + "." + bid; + } + + temp.remove(); + + switch (newtype) { + case "array": + case "object": + let template = `
    +

    ${name}

    +
    + add +
    +
    + close +
    +
    +
    +
    `; + + if (type == "parent") { + document.querySelector('div.button.add').insertAdjacentHTML('beforebegin', template); + } else { + block.insertAdjacentHTML('beforeend', template); + } + + document.querySelector(`div[data-delete="${bid}"]`).addEventListener('click', deleteFrontMatterItem); + document.getElementById(bid).querySelector('.action.add').addEventListener('click', addFrontMatterItem); + break; + default: + let group = block.querySelector('.group'); + + if (group == null) { + block.insertAdjacentHTML('afterbegin', '
    '); + group = block.querySelector('.group'); + } + + group.insertAdjacentHTML('beforeend', `
    + + +
    + close +
    +
    `); + + document.getElementById(bid).focus(); + document.querySelector(`div[data-delete="block-${bid}"]`).addEventListener('click', deleteFrontMatterItem); + } + } + }); + } + + return false; +} + +document.addEventListener("DOMContentLoaded", (event) => { + textareaAutoGrow(); + + let container = document.getElementById('editor'); + let button = document.querySelector('#submit span:first-child'); + let kind = container.dataset.kind; + + if (kind != 'frontmatter-only') { + let editor = document.getElementById('editor-source'); + let mode = editor.dataset.mode; + let textarea = document.querySelector('textarea[name="content"]'); + let aceEditor = ace.edit('editor-source'); + aceEditor.getSession().setMode("ace/mode/" + mode); + aceEditor.getSession().setValue(textarea.value); + aceEditor.getSession().on('change', function() { + textarea.value = aceEditor.getSession().getValue(); + }); + aceEditor.setOptions({ + wrap: true, + maxLines: Infinity, + theme: "ace/theme/github", + showPrintMargin: false, + fontSize: "1em", + minLines: 20 + }); + } + + let deleteFrontMatterItemButtons = document.getElementsByClassName('delete'); + Array.from(deleteFrontMatterItemButtons).forEach(button => { + button.addEventListener('click', deleteFrontMatterItem); + }); + + let addFrontMatterItemButtons = document.getElementsByClassName('add'); + Array.from(addFrontMatterItemButtons).forEach(button => { + button.addEventListener('click', addFrontMatterItem); + }); + + let saveContent = function() { + let data = form2js(document.querySelector('form')); + + if (typeof data.content === "undefined" && kind != 'frontmatter-only') { + data.content = ""; + } + + if (typeof data.content === "number") { + data.content = data.content.toString(); + } + + let html = button.changeToLoading(); + let request = new XMLHttpRequest(); + request.open("PUT", toWebDavURL(window.location.pathname)); + request.setRequestHeader('Kind', kind); + + request.send(JSON.stringify(data)); + request.onreadystatechange = function() { + if (request.readyState == 4) { + button.changeToDone((request.status != 201), html); + } + } + } + + document.querySelector('form').addEventListener('submit', (event) => { + event.preventDefault(); + saveContent(); + }); + + window.addEventListener('keydown', (event) => { + if (event.ctrlKey || event.metaKey) { + switch (String.fromCharCode(event.which).toLowerCase()) { + case 's': + event.preventDefault(); + saveContent(); + break; + } + } + }); + + return false; +}); \ No newline at end of file diff --git a/_embed/public/js/listing.js b/_embed/public/js/listing.js new file mode 100644 index 00000000..985e13ac --- /dev/null +++ b/_embed/public/js/listing.js @@ -0,0 +1,465 @@ +'use strict'; + +var selectedItems = []; + +var reloadListing = function(callback) { + let request = new XMLHttpRequest(); + request.open('GET', window.location); + request.setRequestHeader('Minimal', 'true'); + request.send(); + request.onreadystatechange = function() { + if (request.readyState == 4) { + if (request.status == 200) { + document.querySelector('body main').innerHTML = request.responseText; + addNewDirEvents(); + + if (typeof callback == 'function') { + callback(); + } + } + } + } +} + +// Rename file event +var renameEvent = function(event) { + if (this.classList.contains('disabled') || !selectedItems.length) { + return false; + } + + // This mustn't happen + if (selectedItems.length > 1) { + alert("Something went wrong. Please refresh the page."); + location.refresh(); + } + + let item = document.getElementById(selectedItems[0]), + link = item.dataset.url, + span = item.getElementsByTagName('span')[0], + name = span.innerHTML; + + span.setAttribute('contenteditable', 'true'); + span.focus(); + + let keyDownEvent = (event) => { + if (event.keyCode == 13) { + let newName = span.innerHTML, + newLink = removeLastDirectoryPartOf(toWebDavURL(link)) + newName, + html = document.getElementById('rename').changeToLoading(), + request = new XMLHttpRequest(); + + request.open('MOVE', toWebDavURL(link)); + request.setRequestHeader('Destination', newLink); + request.setRequestHeader('Content-type', 'text/plain; charset=utf-8'); + request.send(); + request.onreadystatechange = function() { + // TODO: redirect if it's moved to another folder + + if (request.readyState == 4) { + if (request.status != 201 && request.status != 204) { + span.innerHTML = name; + } else { + let newLink = encodeURI(link.replace(name, newName)); + console.log(request.body) + reloadListing(() => { + newName = btoa(newName); + selectedItems = [newName]; + document.getElementById(newName).setAttribute("aria-selected", true); + document.sendCostumEvent('changed-selected'); + }); + } + + document.getElementById('rename').changeToDone((request.status != 201 && request.status != 204), html); + } + } + } + + if (event.KeyCode == 27) { + span.innerHTML = name; + } + + if (event.keyCode == 13 || event.keyCode == 27) { + span.setAttribute('contenteditable', 'false'); + span.removeEventListener('keydown', keyDownEvent); + event.preventDefault(); + } + + return false; + } + + span.addEventListener('keydown', keyDownEvent); + span.addEventListener('blur', (event) => { + span.innerHTML = name; + span.setAttribute('contenteditable', 'false'); + span.removeEventListener('keydown', keyDownEvent); + item.removeEventListener('click', preventDefault); + }); + + return false; +} + +// Upload files +var handleFiles = function(files, base) { + let button = document.getElementById("upload"); + let html = button.changeToLoading(); + + for (let i = 0; i < files.length; i++) { + let request = new XMLHttpRequest(); + request.open('PUT', toWebDavURL(window.location.pathname + base + files[i].name)); + + request.send(files[i]); + request.onreadystatechange = function() { + if (request.readyState == 4) { + if (request.status == 201) { + reloadListing(); + } + + button.changeToDone((request.status != 201), html); + } + } + } + + return false; +} + +// Handles the back button event +var backEvent = function(event) { + var items = document.getElementsByClassName('item'); + Array.from(items).forEach(link => { + link.setAttribute("aria-selected", false); + }); + selectedItems = []; + + var event = new CustomEvent('changed-selected'); + document.dispatchEvent(event); + return false; +} + +// Toggles the view mode +var viewEvent = function(event) { + let cookie = document.getCookie('view-list'); + let listing = document.getElementById('listing'); + + if (cookie != 'true') { + document.cookie = 'view-list=true'; + } else { + document.cookie = 'view-list=false'; + } + + handleViewType(document.getCookie('view-list')); + return false; +} + +// Handles the view mode change +var handleViewType = function(viewList) { + let listing = document.getElementById('listing'); + let button = document.getElementById('view'); + + if (viewList == "true") { + listing.classList.add('list'); + button.innerHTML = 'view_module Switch view'; + return false; + } + + button.innerHTML = 'view_list Switch view'; + listing.classList.remove('list'); + return false; +} + +var addNewDirEvents = function() { + document.getElementById('new').addEventListener('click', event => { + let newdir = document.getElementById('newdir'); + newdir.classList.add('enabled'); + newdir.focus(); + }); + + document.getElementById('newdir').addEventListener('blur', event => { + document.getElementById('newdir').classList.remove('enabled'); + }); + + document.getElementById('newdir').addEventListener('keydown', newDirEvent); +} + +// Handles the new directory event +var newDirEvent = function(event) { + // TODO: create new dir button and new file button + if (event.keyCode == 27) { + document.getElementById('newdir').classList.toggle('enabled'); + setTimeout(() => { + document.getElementById('newdir').value = ''; + }, 200); + } + + if (event.keyCode == 13) { + event.preventDefault(); + + let button = document.getElementById('new'); + let html = button.changeToLoading(); + let request = new XMLHttpRequest(); + let name = document.getElementById('newdir').value; + + request.open((name.endsWith("/") ? "MKCOL" : "PUT"), toWebDavURL(window.location.pathname + name)); + + request.send(); + request.onreadystatechange = function() { + if (request.readyState == 4) { + button.changeToDone((request.status != 201), html); + reloadListing(() => { + addNewDirEvents(); + }); + } + } + } + + return false; +} + +// Handles the event when there is change on selected elements +document.addEventListener("changed-selected", function(event) { + redefineDownloadURLs(); + + let selectedNumber = selectedItems.length, + fileAction = document.getElementById("file-only"); + + if (selectedNumber) { + fileAction.classList.remove("disabled"); + + if (selectedNumber > 1) { + document.getElementById("open").classList.add("disabled"); + document.getElementById("rename").classList.add("disabled"); + } + + if (selectedNumber == 1) { + document.getElementById("open").classList.remove("disabled"); + document.getElementById("rename").classList.remove("disabled"); + } + + return false; + } + + fileAction.classList.add("disabled"); + return false; +}); + +var redefineDownloadURLs = function() { + let files = ""; + + for (let i = 0; i < selectedItems.length; i++) { + let url = document.getElementById(selectedItems[i]).dataset.url; + files += url.replace(window.location.pathname, "") + ","; + } + + files = files.substring(0, files.length - 1); + files = encodeURIComponent(files); + + let links = document.querySelectorAll("#download ul a"); + Array.from(links).forEach(link => { + link.href = "?download=" + link.dataset.format + "&files=" + files; + }); +} + + +document.addEventListener('listing', event => { + // Handles the current view mode and adds the event to the button + handleViewType(document.getCookie("view-list")); + document.getElementById("view").addEventListener("click", viewEvent); + + let updateColumns = () => { + let columns = Math.floor(document.getElementById('listing').offsetWidth / 300), + itens = getCSSRule('#listing .item'); + + itens.style.width = `calc(${100/columns}% - 1em)`; + } + + updateColumns(); + window.addEventListener("resize", () => { + updateColumns(); + }); + + // Add event to back button and executes back event on ESC + document.addEventListener('keydown', (event) => { + if (event.keyCode == 27) { + backEvent(event); + } + }); + + if (user.AllowCommands) { + let search = document.getElementById("search"), + searchInput = search.querySelector("input"), + searchDiv = search.querySelector("div"), + hover = false, + focus = false; + + searchInput.addEventListener('focus', event => { + focus = true; + search.classList.add('active'); + }); + + searchDiv.addEventListener('mouseover', event => { + hover = true; + search.classList.add('active'); + }); + + searchInput.addEventListener('blur', event => { + focus = false; + if (hover) return; + search.classList.remove('active'); + }); + + search.addEventListener('mouseleave', event => { + hover = false; + if (focus) return; + search.classList.remove('active'); + }); + + search.addEventListener("click", event => { + search.classList.add("active"); + search.querySelector("input").focus(); + }); + + document.querySelector('#search > div div').innerHTML = "Search or use one of your supported commands: " + user.Commands.join(", ") + "."; + document.querySelector('#search input').addEventListener('keyup', searchEvent); + } + + if (user.AllowEdit) { + // Enables rename button + document.getElementById("rename").addEventListener("click", renameEvent); + } + + if (user.AllowNew) { + // Enables upload button + document.getElementById("upload").addEventListener("click", (event) => { + document.getElementById("upload-input").click(); + }); + + addNewDirEvents(); + + // Drag and Drop + let items = document.getElementsByClassName('item'); + document.addEventListener("dragover", function(event) { + event.preventDefault(); + }, false); + + document.addEventListener("dragenter", (event) => { + Array.from(items).forEach(file => { + file.style.opacity = 0.5; + }); + }, false); + + document.addEventListener("dragend", (event) => { + Array.from(items).forEach(file => { + file.style.opacity = 1; + }); + }, false); + + document.addEventListener("drop", function(event) { + event.preventDefault(); + var dt = event.dataTransfer; + var files = dt.files; + + let el = event.target; + + for (let i = 0; i < 5; i++) { + if (el != null && !el.classList.contains('item')) { + el = el.parentElement; + } + } + + if (files.length > 0) { + if (el != null && el.classList.contains('item') && el.dataset.dir == "true") { + handleFiles(files, el.querySelector('.name').innerHTML + "/"); + return; + } + + handleFiles(files, ""); + } else { + Array.from(items).forEach(file => { + file.style.opacity = 1; + }); + } + + }, false); + } +}); + +function itemDragStart(event) { + let el = event.target; + + for (let i = 0; i < 5; i++) { + if (!el.classList.contains('item')) { + el = el.parentElement; + } + } + + event.dataTransfer.setData("id", el.id); + event.dataTransfer.setData("name", el.querySelector('.name').innerHTML); +} + +function itemDragOver(event) { + event.preventDefault(); + let el = event.target; + + for (let i = 0; i < 5; i++) { + if (!el.classList.contains('item')) { + el = el.parentElement; + } + } + + el.style.opacity = 1; +} + +function itemDrop(e) { + e.preventDefault(); + + let el = e.target, + id = e.dataTransfer.getData("id"), + name = e.dataTransfer.getData("name"); + + if (id == "" || name == "") return; + + for (let i = 0; i < 5; i++) { + if (!el.classList.contains('item')) { + el = el.parentElement; + } + } + + if (el.id === id) return; + + let oldLink = toWebDavURL(document.getElementById(id).dataset.url), + newLink = toWebDavURL(el.dataset.url + name), + request = new XMLHttpRequest(); + + request.open('MOVE', oldLink); + request.setRequestHeader('Destination', newLink); + request.send(); + request.onreadystatechange = function() { + if (request.readyState == 4) { + if (request.status == 201 || request.status == 204) { + reloadListing(); + } + } + } +} + + +function openItem(event) { + window.location = event.currentTarget.dataset.url; +} + +function selectItem(event) { + let el = event.currentTarget; + + if (selectedItems.length != 0) event.preventDefault(); + if (selectedItems.indexOf(el.id) == -1) { + if (!event.ctrlKey) backEvent(event); + + el.setAttribute("aria-selected", true); + selectedItems.push(el.id); + } else { + el.setAttribute("aria-selected", false); + selectedItems.removeElement(el.id); + } + + document.sendCostumEvent("changed-selected"); + return false; +} \ No newline at end of file diff --git a/_embed/public/js/ace/ace.js b/_embed/public/js/vendor/ace/ace.js similarity index 100% rename from _embed/public/js/ace/ace.js rename to _embed/public/js/vendor/ace/ace.js diff --git a/_embed/public/js/ace/ext-beautify.js b/_embed/public/js/vendor/ace/ext-beautify.js similarity index 100% rename from _embed/public/js/ace/ext-beautify.js rename to _embed/public/js/vendor/ace/ext-beautify.js diff --git a/_embed/public/js/ace/ext-chromevox.js b/_embed/public/js/vendor/ace/ext-chromevox.js similarity index 100% rename from _embed/public/js/ace/ext-chromevox.js rename to _embed/public/js/vendor/ace/ext-chromevox.js diff --git a/_embed/public/js/ace/ext-elastic_tabstops_lite.js b/_embed/public/js/vendor/ace/ext-elastic_tabstops_lite.js similarity index 100% rename from _embed/public/js/ace/ext-elastic_tabstops_lite.js rename to _embed/public/js/vendor/ace/ext-elastic_tabstops_lite.js diff --git a/_embed/public/js/ace/ext-emmet.js b/_embed/public/js/vendor/ace/ext-emmet.js similarity index 100% rename from _embed/public/js/ace/ext-emmet.js rename to _embed/public/js/vendor/ace/ext-emmet.js diff --git a/_embed/public/js/ace/ext-error_marker.js b/_embed/public/js/vendor/ace/ext-error_marker.js similarity index 100% rename from _embed/public/js/ace/ext-error_marker.js rename to _embed/public/js/vendor/ace/ext-error_marker.js diff --git a/_embed/public/js/ace/ext-keybinding_menu.js b/_embed/public/js/vendor/ace/ext-keybinding_menu.js similarity index 100% rename from _embed/public/js/ace/ext-keybinding_menu.js rename to _embed/public/js/vendor/ace/ext-keybinding_menu.js diff --git a/_embed/public/js/ace/ext-language_tools.js b/_embed/public/js/vendor/ace/ext-language_tools.js similarity index 100% rename from _embed/public/js/ace/ext-language_tools.js rename to _embed/public/js/vendor/ace/ext-language_tools.js diff --git a/_embed/public/js/ace/ext-linking.js b/_embed/public/js/vendor/ace/ext-linking.js similarity index 100% rename from _embed/public/js/ace/ext-linking.js rename to _embed/public/js/vendor/ace/ext-linking.js diff --git a/_embed/public/js/ace/ext-modelist.js b/_embed/public/js/vendor/ace/ext-modelist.js similarity index 100% rename from _embed/public/js/ace/ext-modelist.js rename to _embed/public/js/vendor/ace/ext-modelist.js diff --git a/_embed/public/js/ace/ext-old_ie.js b/_embed/public/js/vendor/ace/ext-old_ie.js similarity index 100% rename from _embed/public/js/ace/ext-old_ie.js rename to _embed/public/js/vendor/ace/ext-old_ie.js diff --git a/_embed/public/js/ace/ext-searchbox.js b/_embed/public/js/vendor/ace/ext-searchbox.js similarity index 100% rename from _embed/public/js/ace/ext-searchbox.js rename to _embed/public/js/vendor/ace/ext-searchbox.js diff --git a/_embed/public/js/ace/ext-settings_menu.js b/_embed/public/js/vendor/ace/ext-settings_menu.js similarity index 100% rename from _embed/public/js/ace/ext-settings_menu.js rename to _embed/public/js/vendor/ace/ext-settings_menu.js diff --git a/_embed/public/js/ace/ext-spellcheck.js b/_embed/public/js/vendor/ace/ext-spellcheck.js similarity index 100% rename from _embed/public/js/ace/ext-spellcheck.js rename to _embed/public/js/vendor/ace/ext-spellcheck.js diff --git a/_embed/public/js/ace/ext-split.js b/_embed/public/js/vendor/ace/ext-split.js similarity index 100% rename from _embed/public/js/ace/ext-split.js rename to _embed/public/js/vendor/ace/ext-split.js diff --git a/_embed/public/js/ace/ext-static_highlight.js b/_embed/public/js/vendor/ace/ext-static_highlight.js similarity index 100% rename from _embed/public/js/ace/ext-static_highlight.js rename to _embed/public/js/vendor/ace/ext-static_highlight.js diff --git a/_embed/public/js/ace/ext-statusbar.js b/_embed/public/js/vendor/ace/ext-statusbar.js similarity index 100% rename from _embed/public/js/ace/ext-statusbar.js rename to _embed/public/js/vendor/ace/ext-statusbar.js diff --git a/_embed/public/js/ace/ext-textarea.js b/_embed/public/js/vendor/ace/ext-textarea.js similarity index 100% rename from _embed/public/js/ace/ext-textarea.js rename to _embed/public/js/vendor/ace/ext-textarea.js diff --git a/_embed/public/js/ace/ext-themelist.js b/_embed/public/js/vendor/ace/ext-themelist.js similarity index 100% rename from _embed/public/js/ace/ext-themelist.js rename to _embed/public/js/vendor/ace/ext-themelist.js diff --git a/_embed/public/js/ace/ext-whitespace.js b/_embed/public/js/vendor/ace/ext-whitespace.js similarity index 100% rename from _embed/public/js/ace/ext-whitespace.js rename to _embed/public/js/vendor/ace/ext-whitespace.js diff --git a/_embed/public/js/ace/keybinding-emacs.js b/_embed/public/js/vendor/ace/keybinding-emacs.js similarity index 100% rename from _embed/public/js/ace/keybinding-emacs.js rename to _embed/public/js/vendor/ace/keybinding-emacs.js diff --git a/_embed/public/js/ace/keybinding-vim.js b/_embed/public/js/vendor/ace/keybinding-vim.js similarity index 100% rename from _embed/public/js/ace/keybinding-vim.js rename to _embed/public/js/vendor/ace/keybinding-vim.js diff --git a/_embed/public/js/ace/mode-abap.js b/_embed/public/js/vendor/ace/mode-abap.js similarity index 100% rename from _embed/public/js/ace/mode-abap.js rename to _embed/public/js/vendor/ace/mode-abap.js diff --git a/_embed/public/js/ace/mode-abc.js b/_embed/public/js/vendor/ace/mode-abc.js similarity index 100% rename from _embed/public/js/ace/mode-abc.js rename to _embed/public/js/vendor/ace/mode-abc.js diff --git a/_embed/public/js/ace/mode-actionscript.js b/_embed/public/js/vendor/ace/mode-actionscript.js similarity index 100% rename from _embed/public/js/ace/mode-actionscript.js rename to _embed/public/js/vendor/ace/mode-actionscript.js diff --git a/_embed/public/js/ace/mode-ada.js b/_embed/public/js/vendor/ace/mode-ada.js similarity index 100% rename from _embed/public/js/ace/mode-ada.js rename to _embed/public/js/vendor/ace/mode-ada.js diff --git a/_embed/public/js/ace/mode-apache_conf.js b/_embed/public/js/vendor/ace/mode-apache_conf.js similarity index 100% rename from _embed/public/js/ace/mode-apache_conf.js rename to _embed/public/js/vendor/ace/mode-apache_conf.js diff --git a/_embed/public/js/ace/mode-applescript.js b/_embed/public/js/vendor/ace/mode-applescript.js similarity index 100% rename from _embed/public/js/ace/mode-applescript.js rename to _embed/public/js/vendor/ace/mode-applescript.js diff --git a/_embed/public/js/ace/mode-asciidoc.js b/_embed/public/js/vendor/ace/mode-asciidoc.js similarity index 100% rename from _embed/public/js/ace/mode-asciidoc.js rename to _embed/public/js/vendor/ace/mode-asciidoc.js diff --git a/_embed/public/js/ace/mode-assembly_x86.js b/_embed/public/js/vendor/ace/mode-assembly_x86.js similarity index 100% rename from _embed/public/js/ace/mode-assembly_x86.js rename to _embed/public/js/vendor/ace/mode-assembly_x86.js diff --git a/_embed/public/js/ace/mode-autohotkey.js b/_embed/public/js/vendor/ace/mode-autohotkey.js similarity index 100% rename from _embed/public/js/ace/mode-autohotkey.js rename to _embed/public/js/vendor/ace/mode-autohotkey.js diff --git a/_embed/public/js/ace/mode-batchfile.js b/_embed/public/js/vendor/ace/mode-batchfile.js similarity index 100% rename from _embed/public/js/ace/mode-batchfile.js rename to _embed/public/js/vendor/ace/mode-batchfile.js diff --git a/_embed/public/js/ace/mode-bro.js b/_embed/public/js/vendor/ace/mode-bro.js similarity index 100% rename from _embed/public/js/ace/mode-bro.js rename to _embed/public/js/vendor/ace/mode-bro.js diff --git a/_embed/public/js/ace/mode-c9search.js b/_embed/public/js/vendor/ace/mode-c9search.js similarity index 100% rename from _embed/public/js/ace/mode-c9search.js rename to _embed/public/js/vendor/ace/mode-c9search.js diff --git a/_embed/public/js/ace/mode-c_cpp.js b/_embed/public/js/vendor/ace/mode-c_cpp.js similarity index 100% rename from _embed/public/js/ace/mode-c_cpp.js rename to _embed/public/js/vendor/ace/mode-c_cpp.js diff --git a/_embed/public/js/ace/mode-cirru.js b/_embed/public/js/vendor/ace/mode-cirru.js similarity index 100% rename from _embed/public/js/ace/mode-cirru.js rename to _embed/public/js/vendor/ace/mode-cirru.js diff --git a/_embed/public/js/ace/mode-clojure.js b/_embed/public/js/vendor/ace/mode-clojure.js similarity index 100% rename from _embed/public/js/ace/mode-clojure.js rename to _embed/public/js/vendor/ace/mode-clojure.js diff --git a/_embed/public/js/ace/mode-cobol.js b/_embed/public/js/vendor/ace/mode-cobol.js similarity index 100% rename from _embed/public/js/ace/mode-cobol.js rename to _embed/public/js/vendor/ace/mode-cobol.js diff --git a/_embed/public/js/ace/mode-coffee.js b/_embed/public/js/vendor/ace/mode-coffee.js similarity index 100% rename from _embed/public/js/ace/mode-coffee.js rename to _embed/public/js/vendor/ace/mode-coffee.js diff --git a/_embed/public/js/ace/mode-coldfusion.js b/_embed/public/js/vendor/ace/mode-coldfusion.js similarity index 100% rename from _embed/public/js/ace/mode-coldfusion.js rename to _embed/public/js/vendor/ace/mode-coldfusion.js diff --git a/_embed/public/js/ace/mode-csharp.js b/_embed/public/js/vendor/ace/mode-csharp.js similarity index 100% rename from _embed/public/js/ace/mode-csharp.js rename to _embed/public/js/vendor/ace/mode-csharp.js diff --git a/_embed/public/js/ace/mode-css.js b/_embed/public/js/vendor/ace/mode-css.js similarity index 100% rename from _embed/public/js/ace/mode-css.js rename to _embed/public/js/vendor/ace/mode-css.js diff --git a/_embed/public/js/ace/mode-curly.js b/_embed/public/js/vendor/ace/mode-curly.js similarity index 100% rename from _embed/public/js/ace/mode-curly.js rename to _embed/public/js/vendor/ace/mode-curly.js diff --git a/_embed/public/js/ace/mode-d.js b/_embed/public/js/vendor/ace/mode-d.js similarity index 100% rename from _embed/public/js/ace/mode-d.js rename to _embed/public/js/vendor/ace/mode-d.js diff --git a/_embed/public/js/ace/mode-dart.js b/_embed/public/js/vendor/ace/mode-dart.js similarity index 100% rename from _embed/public/js/ace/mode-dart.js rename to _embed/public/js/vendor/ace/mode-dart.js diff --git a/_embed/public/js/ace/mode-diff.js b/_embed/public/js/vendor/ace/mode-diff.js similarity index 100% rename from _embed/public/js/ace/mode-diff.js rename to _embed/public/js/vendor/ace/mode-diff.js diff --git a/_embed/public/js/ace/mode-django.js b/_embed/public/js/vendor/ace/mode-django.js similarity index 100% rename from _embed/public/js/ace/mode-django.js rename to _embed/public/js/vendor/ace/mode-django.js diff --git a/_embed/public/js/ace/mode-dockerfile.js b/_embed/public/js/vendor/ace/mode-dockerfile.js similarity index 100% rename from _embed/public/js/ace/mode-dockerfile.js rename to _embed/public/js/vendor/ace/mode-dockerfile.js diff --git a/_embed/public/js/ace/mode-dot.js b/_embed/public/js/vendor/ace/mode-dot.js similarity index 100% rename from _embed/public/js/ace/mode-dot.js rename to _embed/public/js/vendor/ace/mode-dot.js diff --git a/_embed/public/js/ace/mode-drools.js b/_embed/public/js/vendor/ace/mode-drools.js similarity index 100% rename from _embed/public/js/ace/mode-drools.js rename to _embed/public/js/vendor/ace/mode-drools.js diff --git a/_embed/public/js/ace/mode-eiffel.js b/_embed/public/js/vendor/ace/mode-eiffel.js similarity index 100% rename from _embed/public/js/ace/mode-eiffel.js rename to _embed/public/js/vendor/ace/mode-eiffel.js diff --git a/_embed/public/js/ace/mode-ejs.js b/_embed/public/js/vendor/ace/mode-ejs.js similarity index 100% rename from _embed/public/js/ace/mode-ejs.js rename to _embed/public/js/vendor/ace/mode-ejs.js diff --git a/_embed/public/js/ace/mode-elixir.js b/_embed/public/js/vendor/ace/mode-elixir.js similarity index 100% rename from _embed/public/js/ace/mode-elixir.js rename to _embed/public/js/vendor/ace/mode-elixir.js diff --git a/_embed/public/js/ace/mode-elm.js b/_embed/public/js/vendor/ace/mode-elm.js similarity index 100% rename from _embed/public/js/ace/mode-elm.js rename to _embed/public/js/vendor/ace/mode-elm.js diff --git a/_embed/public/js/ace/mode-erlang.js b/_embed/public/js/vendor/ace/mode-erlang.js similarity index 100% rename from _embed/public/js/ace/mode-erlang.js rename to _embed/public/js/vendor/ace/mode-erlang.js diff --git a/_embed/public/js/ace/mode-forth.js b/_embed/public/js/vendor/ace/mode-forth.js similarity index 100% rename from _embed/public/js/ace/mode-forth.js rename to _embed/public/js/vendor/ace/mode-forth.js diff --git a/_embed/public/js/ace/mode-fortran.js b/_embed/public/js/vendor/ace/mode-fortran.js similarity index 100% rename from _embed/public/js/ace/mode-fortran.js rename to _embed/public/js/vendor/ace/mode-fortran.js diff --git a/_embed/public/js/ace/mode-ftl.js b/_embed/public/js/vendor/ace/mode-ftl.js similarity index 100% rename from _embed/public/js/ace/mode-ftl.js rename to _embed/public/js/vendor/ace/mode-ftl.js diff --git a/_embed/public/js/ace/mode-gcode.js b/_embed/public/js/vendor/ace/mode-gcode.js similarity index 100% rename from _embed/public/js/ace/mode-gcode.js rename to _embed/public/js/vendor/ace/mode-gcode.js diff --git a/_embed/public/js/ace/mode-gherkin.js b/_embed/public/js/vendor/ace/mode-gherkin.js similarity index 100% rename from _embed/public/js/ace/mode-gherkin.js rename to _embed/public/js/vendor/ace/mode-gherkin.js diff --git a/_embed/public/js/ace/mode-gitignore.js b/_embed/public/js/vendor/ace/mode-gitignore.js similarity index 100% rename from _embed/public/js/ace/mode-gitignore.js rename to _embed/public/js/vendor/ace/mode-gitignore.js diff --git a/_embed/public/js/ace/mode-glsl.js b/_embed/public/js/vendor/ace/mode-glsl.js similarity index 100% rename from _embed/public/js/ace/mode-glsl.js rename to _embed/public/js/vendor/ace/mode-glsl.js diff --git a/_embed/public/js/ace/mode-gobstones.js b/_embed/public/js/vendor/ace/mode-gobstones.js similarity index 100% rename from _embed/public/js/ace/mode-gobstones.js rename to _embed/public/js/vendor/ace/mode-gobstones.js diff --git a/_embed/public/js/ace/mode-golang.js b/_embed/public/js/vendor/ace/mode-golang.js similarity index 100% rename from _embed/public/js/ace/mode-golang.js rename to _embed/public/js/vendor/ace/mode-golang.js diff --git a/_embed/public/js/ace/mode-groovy.js b/_embed/public/js/vendor/ace/mode-groovy.js similarity index 100% rename from _embed/public/js/ace/mode-groovy.js rename to _embed/public/js/vendor/ace/mode-groovy.js diff --git a/_embed/public/js/ace/mode-haml.js b/_embed/public/js/vendor/ace/mode-haml.js similarity index 100% rename from _embed/public/js/ace/mode-haml.js rename to _embed/public/js/vendor/ace/mode-haml.js diff --git a/_embed/public/js/ace/mode-handlebars.js b/_embed/public/js/vendor/ace/mode-handlebars.js similarity index 100% rename from _embed/public/js/ace/mode-handlebars.js rename to _embed/public/js/vendor/ace/mode-handlebars.js diff --git a/_embed/public/js/ace/mode-haskell.js b/_embed/public/js/vendor/ace/mode-haskell.js similarity index 100% rename from _embed/public/js/ace/mode-haskell.js rename to _embed/public/js/vendor/ace/mode-haskell.js diff --git a/_embed/public/js/ace/mode-haskell_cabal.js b/_embed/public/js/vendor/ace/mode-haskell_cabal.js similarity index 100% rename from _embed/public/js/ace/mode-haskell_cabal.js rename to _embed/public/js/vendor/ace/mode-haskell_cabal.js diff --git a/_embed/public/js/ace/mode-haxe.js b/_embed/public/js/vendor/ace/mode-haxe.js similarity index 100% rename from _embed/public/js/ace/mode-haxe.js rename to _embed/public/js/vendor/ace/mode-haxe.js diff --git a/_embed/public/js/ace/mode-hjson.js b/_embed/public/js/vendor/ace/mode-hjson.js similarity index 100% rename from _embed/public/js/ace/mode-hjson.js rename to _embed/public/js/vendor/ace/mode-hjson.js diff --git a/_embed/public/js/ace/mode-html.js b/_embed/public/js/vendor/ace/mode-html.js similarity index 100% rename from _embed/public/js/ace/mode-html.js rename to _embed/public/js/vendor/ace/mode-html.js diff --git a/_embed/public/js/ace/mode-html_elixir.js b/_embed/public/js/vendor/ace/mode-html_elixir.js similarity index 100% rename from _embed/public/js/ace/mode-html_elixir.js rename to _embed/public/js/vendor/ace/mode-html_elixir.js diff --git a/_embed/public/js/ace/mode-html_ruby.js b/_embed/public/js/vendor/ace/mode-html_ruby.js similarity index 100% rename from _embed/public/js/ace/mode-html_ruby.js rename to _embed/public/js/vendor/ace/mode-html_ruby.js diff --git a/_embed/public/js/ace/mode-ini.js b/_embed/public/js/vendor/ace/mode-ini.js similarity index 100% rename from _embed/public/js/ace/mode-ini.js rename to _embed/public/js/vendor/ace/mode-ini.js diff --git a/_embed/public/js/ace/mode-io.js b/_embed/public/js/vendor/ace/mode-io.js similarity index 100% rename from _embed/public/js/ace/mode-io.js rename to _embed/public/js/vendor/ace/mode-io.js diff --git a/_embed/public/js/ace/mode-jack.js b/_embed/public/js/vendor/ace/mode-jack.js similarity index 100% rename from _embed/public/js/ace/mode-jack.js rename to _embed/public/js/vendor/ace/mode-jack.js diff --git a/_embed/public/js/ace/mode-jade.js b/_embed/public/js/vendor/ace/mode-jade.js similarity index 100% rename from _embed/public/js/ace/mode-jade.js rename to _embed/public/js/vendor/ace/mode-jade.js diff --git a/_embed/public/js/ace/mode-java.js b/_embed/public/js/vendor/ace/mode-java.js similarity index 100% rename from _embed/public/js/ace/mode-java.js rename to _embed/public/js/vendor/ace/mode-java.js diff --git a/_embed/public/js/ace/mode-javascript.js b/_embed/public/js/vendor/ace/mode-javascript.js similarity index 100% rename from _embed/public/js/ace/mode-javascript.js rename to _embed/public/js/vendor/ace/mode-javascript.js diff --git a/_embed/public/js/ace/mode-json.js b/_embed/public/js/vendor/ace/mode-json.js similarity index 100% rename from _embed/public/js/ace/mode-json.js rename to _embed/public/js/vendor/ace/mode-json.js diff --git a/_embed/public/js/ace/mode-jsoniq.js b/_embed/public/js/vendor/ace/mode-jsoniq.js similarity index 100% rename from _embed/public/js/ace/mode-jsoniq.js rename to _embed/public/js/vendor/ace/mode-jsoniq.js diff --git a/_embed/public/js/ace/mode-jsp.js b/_embed/public/js/vendor/ace/mode-jsp.js similarity index 100% rename from _embed/public/js/ace/mode-jsp.js rename to _embed/public/js/vendor/ace/mode-jsp.js diff --git a/_embed/public/js/ace/mode-jsx.js b/_embed/public/js/vendor/ace/mode-jsx.js similarity index 100% rename from _embed/public/js/ace/mode-jsx.js rename to _embed/public/js/vendor/ace/mode-jsx.js diff --git a/_embed/public/js/ace/mode-julia.js b/_embed/public/js/vendor/ace/mode-julia.js similarity index 100% rename from _embed/public/js/ace/mode-julia.js rename to _embed/public/js/vendor/ace/mode-julia.js diff --git a/_embed/public/js/ace/mode-kotlin.js b/_embed/public/js/vendor/ace/mode-kotlin.js similarity index 100% rename from _embed/public/js/ace/mode-kotlin.js rename to _embed/public/js/vendor/ace/mode-kotlin.js diff --git a/_embed/public/js/ace/mode-latex.js b/_embed/public/js/vendor/ace/mode-latex.js similarity index 100% rename from _embed/public/js/ace/mode-latex.js rename to _embed/public/js/vendor/ace/mode-latex.js diff --git a/_embed/public/js/ace/mode-lean.js b/_embed/public/js/vendor/ace/mode-lean.js similarity index 100% rename from _embed/public/js/ace/mode-lean.js rename to _embed/public/js/vendor/ace/mode-lean.js diff --git a/_embed/public/js/ace/mode-less.js b/_embed/public/js/vendor/ace/mode-less.js similarity index 100% rename from _embed/public/js/ace/mode-less.js rename to _embed/public/js/vendor/ace/mode-less.js diff --git a/_embed/public/js/ace/mode-liquid.js b/_embed/public/js/vendor/ace/mode-liquid.js similarity index 100% rename from _embed/public/js/ace/mode-liquid.js rename to _embed/public/js/vendor/ace/mode-liquid.js diff --git a/_embed/public/js/ace/mode-lisp.js b/_embed/public/js/vendor/ace/mode-lisp.js similarity index 100% rename from _embed/public/js/ace/mode-lisp.js rename to _embed/public/js/vendor/ace/mode-lisp.js diff --git a/_embed/public/js/ace/mode-live_script.js b/_embed/public/js/vendor/ace/mode-live_script.js similarity index 100% rename from _embed/public/js/ace/mode-live_script.js rename to _embed/public/js/vendor/ace/mode-live_script.js diff --git a/_embed/public/js/ace/mode-livescript.js b/_embed/public/js/vendor/ace/mode-livescript.js similarity index 100% rename from _embed/public/js/ace/mode-livescript.js rename to _embed/public/js/vendor/ace/mode-livescript.js diff --git a/_embed/public/js/ace/mode-logiql.js b/_embed/public/js/vendor/ace/mode-logiql.js similarity index 100% rename from _embed/public/js/ace/mode-logiql.js rename to _embed/public/js/vendor/ace/mode-logiql.js diff --git a/_embed/public/js/ace/mode-lsl.js b/_embed/public/js/vendor/ace/mode-lsl.js similarity index 100% rename from _embed/public/js/ace/mode-lsl.js rename to _embed/public/js/vendor/ace/mode-lsl.js diff --git a/_embed/public/js/ace/mode-lua.js b/_embed/public/js/vendor/ace/mode-lua.js similarity index 100% rename from _embed/public/js/ace/mode-lua.js rename to _embed/public/js/vendor/ace/mode-lua.js diff --git a/_embed/public/js/ace/mode-luapage.js b/_embed/public/js/vendor/ace/mode-luapage.js similarity index 100% rename from _embed/public/js/ace/mode-luapage.js rename to _embed/public/js/vendor/ace/mode-luapage.js diff --git a/_embed/public/js/ace/mode-lucene.js b/_embed/public/js/vendor/ace/mode-lucene.js similarity index 100% rename from _embed/public/js/ace/mode-lucene.js rename to _embed/public/js/vendor/ace/mode-lucene.js diff --git a/_embed/public/js/ace/mode-makefile.js b/_embed/public/js/vendor/ace/mode-makefile.js similarity index 100% rename from _embed/public/js/ace/mode-makefile.js rename to _embed/public/js/vendor/ace/mode-makefile.js diff --git a/_embed/public/js/ace/mode-markdown.js b/_embed/public/js/vendor/ace/mode-markdown.js similarity index 100% rename from _embed/public/js/ace/mode-markdown.js rename to _embed/public/js/vendor/ace/mode-markdown.js diff --git a/_embed/public/js/ace/mode-mask.js b/_embed/public/js/vendor/ace/mode-mask.js similarity index 100% rename from _embed/public/js/ace/mode-mask.js rename to _embed/public/js/vendor/ace/mode-mask.js diff --git a/_embed/public/js/ace/mode-matlab.js b/_embed/public/js/vendor/ace/mode-matlab.js similarity index 100% rename from _embed/public/js/ace/mode-matlab.js rename to _embed/public/js/vendor/ace/mode-matlab.js diff --git a/_embed/public/js/ace/mode-maze.js b/_embed/public/js/vendor/ace/mode-maze.js similarity index 100% rename from _embed/public/js/ace/mode-maze.js rename to _embed/public/js/vendor/ace/mode-maze.js diff --git a/_embed/public/js/ace/mode-mel.js b/_embed/public/js/vendor/ace/mode-mel.js similarity index 100% rename from _embed/public/js/ace/mode-mel.js rename to _embed/public/js/vendor/ace/mode-mel.js diff --git a/_embed/public/js/ace/mode-mips_assembler.js b/_embed/public/js/vendor/ace/mode-mips_assembler.js similarity index 100% rename from _embed/public/js/ace/mode-mips_assembler.js rename to _embed/public/js/vendor/ace/mode-mips_assembler.js diff --git a/_embed/public/js/ace/mode-mipsassembler.js b/_embed/public/js/vendor/ace/mode-mipsassembler.js similarity index 100% rename from _embed/public/js/ace/mode-mipsassembler.js rename to _embed/public/js/vendor/ace/mode-mipsassembler.js diff --git a/_embed/public/js/ace/mode-mushcode.js b/_embed/public/js/vendor/ace/mode-mushcode.js similarity index 100% rename from _embed/public/js/ace/mode-mushcode.js rename to _embed/public/js/vendor/ace/mode-mushcode.js diff --git a/_embed/public/js/ace/mode-mysql.js b/_embed/public/js/vendor/ace/mode-mysql.js similarity index 100% rename from _embed/public/js/ace/mode-mysql.js rename to _embed/public/js/vendor/ace/mode-mysql.js diff --git a/_embed/public/js/ace/mode-nix.js b/_embed/public/js/vendor/ace/mode-nix.js similarity index 100% rename from _embed/public/js/ace/mode-nix.js rename to _embed/public/js/vendor/ace/mode-nix.js diff --git a/_embed/public/js/ace/mode-nsis.js b/_embed/public/js/vendor/ace/mode-nsis.js similarity index 100% rename from _embed/public/js/ace/mode-nsis.js rename to _embed/public/js/vendor/ace/mode-nsis.js diff --git a/_embed/public/js/ace/mode-objectivec.js b/_embed/public/js/vendor/ace/mode-objectivec.js similarity index 100% rename from _embed/public/js/ace/mode-objectivec.js rename to _embed/public/js/vendor/ace/mode-objectivec.js diff --git a/_embed/public/js/ace/mode-ocaml.js b/_embed/public/js/vendor/ace/mode-ocaml.js similarity index 100% rename from _embed/public/js/ace/mode-ocaml.js rename to _embed/public/js/vendor/ace/mode-ocaml.js diff --git a/_embed/public/js/ace/mode-pascal.js b/_embed/public/js/vendor/ace/mode-pascal.js similarity index 100% rename from _embed/public/js/ace/mode-pascal.js rename to _embed/public/js/vendor/ace/mode-pascal.js diff --git a/_embed/public/js/ace/mode-perl.js b/_embed/public/js/vendor/ace/mode-perl.js similarity index 100% rename from _embed/public/js/ace/mode-perl.js rename to _embed/public/js/vendor/ace/mode-perl.js diff --git a/_embed/public/js/ace/mode-pgsql.js b/_embed/public/js/vendor/ace/mode-pgsql.js similarity index 100% rename from _embed/public/js/ace/mode-pgsql.js rename to _embed/public/js/vendor/ace/mode-pgsql.js diff --git a/_embed/public/js/ace/mode-php.js b/_embed/public/js/vendor/ace/mode-php.js similarity index 100% rename from _embed/public/js/ace/mode-php.js rename to _embed/public/js/vendor/ace/mode-php.js diff --git a/_embed/public/js/ace/mode-plain_text.js b/_embed/public/js/vendor/ace/mode-plain_text.js similarity index 100% rename from _embed/public/js/ace/mode-plain_text.js rename to _embed/public/js/vendor/ace/mode-plain_text.js diff --git a/_embed/public/js/ace/mode-powershell.js b/_embed/public/js/vendor/ace/mode-powershell.js similarity index 100% rename from _embed/public/js/ace/mode-powershell.js rename to _embed/public/js/vendor/ace/mode-powershell.js diff --git a/_embed/public/js/ace/mode-praat.js b/_embed/public/js/vendor/ace/mode-praat.js similarity index 100% rename from _embed/public/js/ace/mode-praat.js rename to _embed/public/js/vendor/ace/mode-praat.js diff --git a/_embed/public/js/ace/mode-prolog.js b/_embed/public/js/vendor/ace/mode-prolog.js similarity index 100% rename from _embed/public/js/ace/mode-prolog.js rename to _embed/public/js/vendor/ace/mode-prolog.js diff --git a/_embed/public/js/ace/mode-properties.js b/_embed/public/js/vendor/ace/mode-properties.js similarity index 100% rename from _embed/public/js/ace/mode-properties.js rename to _embed/public/js/vendor/ace/mode-properties.js diff --git a/_embed/public/js/ace/mode-protobuf.js b/_embed/public/js/vendor/ace/mode-protobuf.js similarity index 100% rename from _embed/public/js/ace/mode-protobuf.js rename to _embed/public/js/vendor/ace/mode-protobuf.js diff --git a/_embed/public/js/ace/mode-python.js b/_embed/public/js/vendor/ace/mode-python.js similarity index 100% rename from _embed/public/js/ace/mode-python.js rename to _embed/public/js/vendor/ace/mode-python.js diff --git a/_embed/public/js/ace/mode-r.js b/_embed/public/js/vendor/ace/mode-r.js similarity index 100% rename from _embed/public/js/ace/mode-r.js rename to _embed/public/js/vendor/ace/mode-r.js diff --git a/_embed/public/js/ace/mode-razor.js b/_embed/public/js/vendor/ace/mode-razor.js similarity index 100% rename from _embed/public/js/ace/mode-razor.js rename to _embed/public/js/vendor/ace/mode-razor.js diff --git a/_embed/public/js/ace/mode-rdoc.js b/_embed/public/js/vendor/ace/mode-rdoc.js similarity index 100% rename from _embed/public/js/ace/mode-rdoc.js rename to _embed/public/js/vendor/ace/mode-rdoc.js diff --git a/_embed/public/js/ace/mode-rhtml.js b/_embed/public/js/vendor/ace/mode-rhtml.js similarity index 100% rename from _embed/public/js/ace/mode-rhtml.js rename to _embed/public/js/vendor/ace/mode-rhtml.js diff --git a/_embed/public/js/ace/mode-rst.js b/_embed/public/js/vendor/ace/mode-rst.js similarity index 100% rename from _embed/public/js/ace/mode-rst.js rename to _embed/public/js/vendor/ace/mode-rst.js diff --git a/_embed/public/js/ace/mode-ruby.js b/_embed/public/js/vendor/ace/mode-ruby.js similarity index 100% rename from _embed/public/js/ace/mode-ruby.js rename to _embed/public/js/vendor/ace/mode-ruby.js diff --git a/_embed/public/js/ace/mode-rust.js b/_embed/public/js/vendor/ace/mode-rust.js similarity index 100% rename from _embed/public/js/ace/mode-rust.js rename to _embed/public/js/vendor/ace/mode-rust.js diff --git a/_embed/public/js/ace/mode-sass.js b/_embed/public/js/vendor/ace/mode-sass.js similarity index 100% rename from _embed/public/js/ace/mode-sass.js rename to _embed/public/js/vendor/ace/mode-sass.js diff --git a/_embed/public/js/ace/mode-scad.js b/_embed/public/js/vendor/ace/mode-scad.js similarity index 100% rename from _embed/public/js/ace/mode-scad.js rename to _embed/public/js/vendor/ace/mode-scad.js diff --git a/_embed/public/js/ace/mode-scala.js b/_embed/public/js/vendor/ace/mode-scala.js similarity index 100% rename from _embed/public/js/ace/mode-scala.js rename to _embed/public/js/vendor/ace/mode-scala.js diff --git a/_embed/public/js/ace/mode-scheme.js b/_embed/public/js/vendor/ace/mode-scheme.js similarity index 100% rename from _embed/public/js/ace/mode-scheme.js rename to _embed/public/js/vendor/ace/mode-scheme.js diff --git a/_embed/public/js/ace/mode-scss.js b/_embed/public/js/vendor/ace/mode-scss.js similarity index 100% rename from _embed/public/js/ace/mode-scss.js rename to _embed/public/js/vendor/ace/mode-scss.js diff --git a/_embed/public/js/ace/mode-sh.js b/_embed/public/js/vendor/ace/mode-sh.js similarity index 100% rename from _embed/public/js/ace/mode-sh.js rename to _embed/public/js/vendor/ace/mode-sh.js diff --git a/_embed/public/js/ace/mode-sjs.js b/_embed/public/js/vendor/ace/mode-sjs.js similarity index 100% rename from _embed/public/js/ace/mode-sjs.js rename to _embed/public/js/vendor/ace/mode-sjs.js diff --git a/_embed/public/js/ace/mode-smarty.js b/_embed/public/js/vendor/ace/mode-smarty.js similarity index 100% rename from _embed/public/js/ace/mode-smarty.js rename to _embed/public/js/vendor/ace/mode-smarty.js diff --git a/_embed/public/js/ace/mode-snippets.js b/_embed/public/js/vendor/ace/mode-snippets.js similarity index 100% rename from _embed/public/js/ace/mode-snippets.js rename to _embed/public/js/vendor/ace/mode-snippets.js diff --git a/_embed/public/js/ace/mode-soy_template.js b/_embed/public/js/vendor/ace/mode-soy_template.js similarity index 100% rename from _embed/public/js/ace/mode-soy_template.js rename to _embed/public/js/vendor/ace/mode-soy_template.js diff --git a/_embed/public/js/ace/mode-space.js b/_embed/public/js/vendor/ace/mode-space.js similarity index 100% rename from _embed/public/js/ace/mode-space.js rename to _embed/public/js/vendor/ace/mode-space.js diff --git a/_embed/public/js/ace/mode-sql.js b/_embed/public/js/vendor/ace/mode-sql.js similarity index 100% rename from _embed/public/js/ace/mode-sql.js rename to _embed/public/js/vendor/ace/mode-sql.js diff --git a/_embed/public/js/ace/mode-sqlserver.js b/_embed/public/js/vendor/ace/mode-sqlserver.js similarity index 100% rename from _embed/public/js/ace/mode-sqlserver.js rename to _embed/public/js/vendor/ace/mode-sqlserver.js diff --git a/_embed/public/js/ace/mode-stylus.js b/_embed/public/js/vendor/ace/mode-stylus.js similarity index 100% rename from _embed/public/js/ace/mode-stylus.js rename to _embed/public/js/vendor/ace/mode-stylus.js diff --git a/_embed/public/js/ace/mode-svg.js b/_embed/public/js/vendor/ace/mode-svg.js similarity index 100% rename from _embed/public/js/ace/mode-svg.js rename to _embed/public/js/vendor/ace/mode-svg.js diff --git a/_embed/public/js/ace/mode-swift.js b/_embed/public/js/vendor/ace/mode-swift.js similarity index 100% rename from _embed/public/js/ace/mode-swift.js rename to _embed/public/js/vendor/ace/mode-swift.js diff --git a/_embed/public/js/ace/mode-swig.js b/_embed/public/js/vendor/ace/mode-swig.js similarity index 100% rename from _embed/public/js/ace/mode-swig.js rename to _embed/public/js/vendor/ace/mode-swig.js diff --git a/_embed/public/js/ace/mode-tcl.js b/_embed/public/js/vendor/ace/mode-tcl.js similarity index 100% rename from _embed/public/js/ace/mode-tcl.js rename to _embed/public/js/vendor/ace/mode-tcl.js diff --git a/_embed/public/js/ace/mode-tex.js b/_embed/public/js/vendor/ace/mode-tex.js similarity index 100% rename from _embed/public/js/ace/mode-tex.js rename to _embed/public/js/vendor/ace/mode-tex.js diff --git a/_embed/public/js/ace/mode-text.js b/_embed/public/js/vendor/ace/mode-text.js similarity index 100% rename from _embed/public/js/ace/mode-text.js rename to _embed/public/js/vendor/ace/mode-text.js diff --git a/_embed/public/js/ace/mode-textile.js b/_embed/public/js/vendor/ace/mode-textile.js similarity index 100% rename from _embed/public/js/ace/mode-textile.js rename to _embed/public/js/vendor/ace/mode-textile.js diff --git a/_embed/public/js/ace/mode-toml.js b/_embed/public/js/vendor/ace/mode-toml.js similarity index 100% rename from _embed/public/js/ace/mode-toml.js rename to _embed/public/js/vendor/ace/mode-toml.js diff --git a/_embed/public/js/ace/mode-tsx.js b/_embed/public/js/vendor/ace/mode-tsx.js similarity index 100% rename from _embed/public/js/ace/mode-tsx.js rename to _embed/public/js/vendor/ace/mode-tsx.js diff --git a/_embed/public/js/ace/mode-twig.js b/_embed/public/js/vendor/ace/mode-twig.js similarity index 100% rename from _embed/public/js/ace/mode-twig.js rename to _embed/public/js/vendor/ace/mode-twig.js diff --git a/_embed/public/js/ace/mode-typescript.js b/_embed/public/js/vendor/ace/mode-typescript.js similarity index 100% rename from _embed/public/js/ace/mode-typescript.js rename to _embed/public/js/vendor/ace/mode-typescript.js diff --git a/_embed/public/js/ace/mode-vala.js b/_embed/public/js/vendor/ace/mode-vala.js similarity index 100% rename from _embed/public/js/ace/mode-vala.js rename to _embed/public/js/vendor/ace/mode-vala.js diff --git a/_embed/public/js/ace/mode-vbscript.js b/_embed/public/js/vendor/ace/mode-vbscript.js similarity index 100% rename from _embed/public/js/ace/mode-vbscript.js rename to _embed/public/js/vendor/ace/mode-vbscript.js diff --git a/_embed/public/js/ace/mode-velocity.js b/_embed/public/js/vendor/ace/mode-velocity.js similarity index 100% rename from _embed/public/js/ace/mode-velocity.js rename to _embed/public/js/vendor/ace/mode-velocity.js diff --git a/_embed/public/js/ace/mode-verilog.js b/_embed/public/js/vendor/ace/mode-verilog.js similarity index 100% rename from _embed/public/js/ace/mode-verilog.js rename to _embed/public/js/vendor/ace/mode-verilog.js diff --git a/_embed/public/js/ace/mode-vhdl.js b/_embed/public/js/vendor/ace/mode-vhdl.js similarity index 100% rename from _embed/public/js/ace/mode-vhdl.js rename to _embed/public/js/vendor/ace/mode-vhdl.js diff --git a/_embed/public/js/ace/mode-wollok.js b/_embed/public/js/vendor/ace/mode-wollok.js similarity index 100% rename from _embed/public/js/ace/mode-wollok.js rename to _embed/public/js/vendor/ace/mode-wollok.js diff --git a/_embed/public/js/ace/mode-xml.js b/_embed/public/js/vendor/ace/mode-xml.js similarity index 100% rename from _embed/public/js/ace/mode-xml.js rename to _embed/public/js/vendor/ace/mode-xml.js diff --git a/_embed/public/js/ace/mode-xquery.js b/_embed/public/js/vendor/ace/mode-xquery.js similarity index 100% rename from _embed/public/js/ace/mode-xquery.js rename to _embed/public/js/vendor/ace/mode-xquery.js diff --git a/_embed/public/js/ace/mode-yaml.js b/_embed/public/js/vendor/ace/mode-yaml.js similarity index 100% rename from _embed/public/js/ace/mode-yaml.js rename to _embed/public/js/vendor/ace/mode-yaml.js diff --git a/_embed/public/js/ace/snippets/abap.js b/_embed/public/js/vendor/ace/snippets/abap.js similarity index 100% rename from _embed/public/js/ace/snippets/abap.js rename to _embed/public/js/vendor/ace/snippets/abap.js diff --git a/_embed/public/js/ace/snippets/abc.js b/_embed/public/js/vendor/ace/snippets/abc.js similarity index 100% rename from _embed/public/js/ace/snippets/abc.js rename to _embed/public/js/vendor/ace/snippets/abc.js diff --git a/_embed/public/js/ace/snippets/actionscript.js b/_embed/public/js/vendor/ace/snippets/actionscript.js similarity index 100% rename from _embed/public/js/ace/snippets/actionscript.js rename to _embed/public/js/vendor/ace/snippets/actionscript.js diff --git a/_embed/public/js/ace/snippets/ada.js b/_embed/public/js/vendor/ace/snippets/ada.js similarity index 100% rename from _embed/public/js/ace/snippets/ada.js rename to _embed/public/js/vendor/ace/snippets/ada.js diff --git a/_embed/public/js/ace/snippets/apache_conf.js b/_embed/public/js/vendor/ace/snippets/apache_conf.js similarity index 100% rename from _embed/public/js/ace/snippets/apache_conf.js rename to _embed/public/js/vendor/ace/snippets/apache_conf.js diff --git a/_embed/public/js/ace/snippets/applescript.js b/_embed/public/js/vendor/ace/snippets/applescript.js similarity index 100% rename from _embed/public/js/ace/snippets/applescript.js rename to _embed/public/js/vendor/ace/snippets/applescript.js diff --git a/_embed/public/js/ace/snippets/asciidoc.js b/_embed/public/js/vendor/ace/snippets/asciidoc.js similarity index 100% rename from _embed/public/js/ace/snippets/asciidoc.js rename to _embed/public/js/vendor/ace/snippets/asciidoc.js diff --git a/_embed/public/js/ace/snippets/assembly_x86.js b/_embed/public/js/vendor/ace/snippets/assembly_x86.js similarity index 100% rename from _embed/public/js/ace/snippets/assembly_x86.js rename to _embed/public/js/vendor/ace/snippets/assembly_x86.js diff --git a/_embed/public/js/ace/snippets/autohotkey.js b/_embed/public/js/vendor/ace/snippets/autohotkey.js similarity index 100% rename from _embed/public/js/ace/snippets/autohotkey.js rename to _embed/public/js/vendor/ace/snippets/autohotkey.js diff --git a/_embed/public/js/ace/snippets/batchfile.js b/_embed/public/js/vendor/ace/snippets/batchfile.js similarity index 100% rename from _embed/public/js/ace/snippets/batchfile.js rename to _embed/public/js/vendor/ace/snippets/batchfile.js diff --git a/_embed/public/js/ace/snippets/bro.js b/_embed/public/js/vendor/ace/snippets/bro.js similarity index 100% rename from _embed/public/js/ace/snippets/bro.js rename to _embed/public/js/vendor/ace/snippets/bro.js diff --git a/_embed/public/js/ace/snippets/c9search.js b/_embed/public/js/vendor/ace/snippets/c9search.js similarity index 100% rename from _embed/public/js/ace/snippets/c9search.js rename to _embed/public/js/vendor/ace/snippets/c9search.js diff --git a/_embed/public/js/ace/snippets/c_cpp.js b/_embed/public/js/vendor/ace/snippets/c_cpp.js similarity index 100% rename from _embed/public/js/ace/snippets/c_cpp.js rename to _embed/public/js/vendor/ace/snippets/c_cpp.js diff --git a/_embed/public/js/ace/snippets/cirru.js b/_embed/public/js/vendor/ace/snippets/cirru.js similarity index 100% rename from _embed/public/js/ace/snippets/cirru.js rename to _embed/public/js/vendor/ace/snippets/cirru.js diff --git a/_embed/public/js/ace/snippets/clojure.js b/_embed/public/js/vendor/ace/snippets/clojure.js similarity index 100% rename from _embed/public/js/ace/snippets/clojure.js rename to _embed/public/js/vendor/ace/snippets/clojure.js diff --git a/_embed/public/js/ace/snippets/cobol.js b/_embed/public/js/vendor/ace/snippets/cobol.js similarity index 100% rename from _embed/public/js/ace/snippets/cobol.js rename to _embed/public/js/vendor/ace/snippets/cobol.js diff --git a/_embed/public/js/ace/snippets/coffee.js b/_embed/public/js/vendor/ace/snippets/coffee.js similarity index 100% rename from _embed/public/js/ace/snippets/coffee.js rename to _embed/public/js/vendor/ace/snippets/coffee.js diff --git a/_embed/public/js/ace/snippets/coldfusion.js b/_embed/public/js/vendor/ace/snippets/coldfusion.js similarity index 100% rename from _embed/public/js/ace/snippets/coldfusion.js rename to _embed/public/js/vendor/ace/snippets/coldfusion.js diff --git a/_embed/public/js/ace/snippets/csharp.js b/_embed/public/js/vendor/ace/snippets/csharp.js similarity index 100% rename from _embed/public/js/ace/snippets/csharp.js rename to _embed/public/js/vendor/ace/snippets/csharp.js diff --git a/_embed/public/js/ace/snippets/css.js b/_embed/public/js/vendor/ace/snippets/css.js similarity index 100% rename from _embed/public/js/ace/snippets/css.js rename to _embed/public/js/vendor/ace/snippets/css.js diff --git a/_embed/public/js/ace/snippets/curly.js b/_embed/public/js/vendor/ace/snippets/curly.js similarity index 100% rename from _embed/public/js/ace/snippets/curly.js rename to _embed/public/js/vendor/ace/snippets/curly.js diff --git a/_embed/public/js/ace/snippets/d.js b/_embed/public/js/vendor/ace/snippets/d.js similarity index 100% rename from _embed/public/js/ace/snippets/d.js rename to _embed/public/js/vendor/ace/snippets/d.js diff --git a/_embed/public/js/ace/snippets/dart.js b/_embed/public/js/vendor/ace/snippets/dart.js similarity index 100% rename from _embed/public/js/ace/snippets/dart.js rename to _embed/public/js/vendor/ace/snippets/dart.js diff --git a/_embed/public/js/ace/snippets/diff.js b/_embed/public/js/vendor/ace/snippets/diff.js similarity index 100% rename from _embed/public/js/ace/snippets/diff.js rename to _embed/public/js/vendor/ace/snippets/diff.js diff --git a/_embed/public/js/ace/snippets/django.js b/_embed/public/js/vendor/ace/snippets/django.js similarity index 100% rename from _embed/public/js/ace/snippets/django.js rename to _embed/public/js/vendor/ace/snippets/django.js diff --git a/_embed/public/js/ace/snippets/dockerfile.js b/_embed/public/js/vendor/ace/snippets/dockerfile.js similarity index 100% rename from _embed/public/js/ace/snippets/dockerfile.js rename to _embed/public/js/vendor/ace/snippets/dockerfile.js diff --git a/_embed/public/js/ace/snippets/dot.js b/_embed/public/js/vendor/ace/snippets/dot.js similarity index 100% rename from _embed/public/js/ace/snippets/dot.js rename to _embed/public/js/vendor/ace/snippets/dot.js diff --git a/_embed/public/js/ace/snippets/drools.js b/_embed/public/js/vendor/ace/snippets/drools.js similarity index 100% rename from _embed/public/js/ace/snippets/drools.js rename to _embed/public/js/vendor/ace/snippets/drools.js diff --git a/_embed/public/js/ace/snippets/eiffel.js b/_embed/public/js/vendor/ace/snippets/eiffel.js similarity index 100% rename from _embed/public/js/ace/snippets/eiffel.js rename to _embed/public/js/vendor/ace/snippets/eiffel.js diff --git a/_embed/public/js/ace/snippets/ejs.js b/_embed/public/js/vendor/ace/snippets/ejs.js similarity index 100% rename from _embed/public/js/ace/snippets/ejs.js rename to _embed/public/js/vendor/ace/snippets/ejs.js diff --git a/_embed/public/js/ace/snippets/elixir.js b/_embed/public/js/vendor/ace/snippets/elixir.js similarity index 100% rename from _embed/public/js/ace/snippets/elixir.js rename to _embed/public/js/vendor/ace/snippets/elixir.js diff --git a/_embed/public/js/ace/snippets/elm.js b/_embed/public/js/vendor/ace/snippets/elm.js similarity index 100% rename from _embed/public/js/ace/snippets/elm.js rename to _embed/public/js/vendor/ace/snippets/elm.js diff --git a/_embed/public/js/ace/snippets/erlang.js b/_embed/public/js/vendor/ace/snippets/erlang.js similarity index 100% rename from _embed/public/js/ace/snippets/erlang.js rename to _embed/public/js/vendor/ace/snippets/erlang.js diff --git a/_embed/public/js/ace/snippets/forth.js b/_embed/public/js/vendor/ace/snippets/forth.js similarity index 100% rename from _embed/public/js/ace/snippets/forth.js rename to _embed/public/js/vendor/ace/snippets/forth.js diff --git a/_embed/public/js/ace/snippets/fortran.js b/_embed/public/js/vendor/ace/snippets/fortran.js similarity index 100% rename from _embed/public/js/ace/snippets/fortran.js rename to _embed/public/js/vendor/ace/snippets/fortran.js diff --git a/_embed/public/js/ace/snippets/ftl.js b/_embed/public/js/vendor/ace/snippets/ftl.js similarity index 100% rename from _embed/public/js/ace/snippets/ftl.js rename to _embed/public/js/vendor/ace/snippets/ftl.js diff --git a/_embed/public/js/ace/snippets/gcode.js b/_embed/public/js/vendor/ace/snippets/gcode.js similarity index 100% rename from _embed/public/js/ace/snippets/gcode.js rename to _embed/public/js/vendor/ace/snippets/gcode.js diff --git a/_embed/public/js/ace/snippets/gherkin.js b/_embed/public/js/vendor/ace/snippets/gherkin.js similarity index 100% rename from _embed/public/js/ace/snippets/gherkin.js rename to _embed/public/js/vendor/ace/snippets/gherkin.js diff --git a/_embed/public/js/ace/snippets/gitignore.js b/_embed/public/js/vendor/ace/snippets/gitignore.js similarity index 100% rename from _embed/public/js/ace/snippets/gitignore.js rename to _embed/public/js/vendor/ace/snippets/gitignore.js diff --git a/_embed/public/js/ace/snippets/glsl.js b/_embed/public/js/vendor/ace/snippets/glsl.js similarity index 100% rename from _embed/public/js/ace/snippets/glsl.js rename to _embed/public/js/vendor/ace/snippets/glsl.js diff --git a/_embed/public/js/ace/snippets/gobstones.js b/_embed/public/js/vendor/ace/snippets/gobstones.js similarity index 100% rename from _embed/public/js/ace/snippets/gobstones.js rename to _embed/public/js/vendor/ace/snippets/gobstones.js diff --git a/_embed/public/js/ace/snippets/golang.js b/_embed/public/js/vendor/ace/snippets/golang.js similarity index 100% rename from _embed/public/js/ace/snippets/golang.js rename to _embed/public/js/vendor/ace/snippets/golang.js diff --git a/_embed/public/js/ace/snippets/groovy.js b/_embed/public/js/vendor/ace/snippets/groovy.js similarity index 100% rename from _embed/public/js/ace/snippets/groovy.js rename to _embed/public/js/vendor/ace/snippets/groovy.js diff --git a/_embed/public/js/ace/snippets/haml.js b/_embed/public/js/vendor/ace/snippets/haml.js similarity index 100% rename from _embed/public/js/ace/snippets/haml.js rename to _embed/public/js/vendor/ace/snippets/haml.js diff --git a/_embed/public/js/ace/snippets/handlebars.js b/_embed/public/js/vendor/ace/snippets/handlebars.js similarity index 100% rename from _embed/public/js/ace/snippets/handlebars.js rename to _embed/public/js/vendor/ace/snippets/handlebars.js diff --git a/_embed/public/js/ace/snippets/haskell.js b/_embed/public/js/vendor/ace/snippets/haskell.js similarity index 100% rename from _embed/public/js/ace/snippets/haskell.js rename to _embed/public/js/vendor/ace/snippets/haskell.js diff --git a/_embed/public/js/ace/snippets/haskell_cabal.js b/_embed/public/js/vendor/ace/snippets/haskell_cabal.js similarity index 100% rename from _embed/public/js/ace/snippets/haskell_cabal.js rename to _embed/public/js/vendor/ace/snippets/haskell_cabal.js diff --git a/_embed/public/js/ace/snippets/haxe.js b/_embed/public/js/vendor/ace/snippets/haxe.js similarity index 100% rename from _embed/public/js/ace/snippets/haxe.js rename to _embed/public/js/vendor/ace/snippets/haxe.js diff --git a/_embed/public/js/ace/snippets/hjson.js b/_embed/public/js/vendor/ace/snippets/hjson.js similarity index 100% rename from _embed/public/js/ace/snippets/hjson.js rename to _embed/public/js/vendor/ace/snippets/hjson.js diff --git a/_embed/public/js/ace/snippets/html.js b/_embed/public/js/vendor/ace/snippets/html.js similarity index 100% rename from _embed/public/js/ace/snippets/html.js rename to _embed/public/js/vendor/ace/snippets/html.js diff --git a/_embed/public/js/ace/snippets/html_elixir.js b/_embed/public/js/vendor/ace/snippets/html_elixir.js similarity index 100% rename from _embed/public/js/ace/snippets/html_elixir.js rename to _embed/public/js/vendor/ace/snippets/html_elixir.js diff --git a/_embed/public/js/ace/snippets/html_ruby.js b/_embed/public/js/vendor/ace/snippets/html_ruby.js similarity index 100% rename from _embed/public/js/ace/snippets/html_ruby.js rename to _embed/public/js/vendor/ace/snippets/html_ruby.js diff --git a/_embed/public/js/ace/snippets/ini.js b/_embed/public/js/vendor/ace/snippets/ini.js similarity index 100% rename from _embed/public/js/ace/snippets/ini.js rename to _embed/public/js/vendor/ace/snippets/ini.js diff --git a/_embed/public/js/ace/snippets/io.js b/_embed/public/js/vendor/ace/snippets/io.js similarity index 100% rename from _embed/public/js/ace/snippets/io.js rename to _embed/public/js/vendor/ace/snippets/io.js diff --git a/_embed/public/js/ace/snippets/jack.js b/_embed/public/js/vendor/ace/snippets/jack.js similarity index 100% rename from _embed/public/js/ace/snippets/jack.js rename to _embed/public/js/vendor/ace/snippets/jack.js diff --git a/_embed/public/js/ace/snippets/jade.js b/_embed/public/js/vendor/ace/snippets/jade.js similarity index 100% rename from _embed/public/js/ace/snippets/jade.js rename to _embed/public/js/vendor/ace/snippets/jade.js diff --git a/_embed/public/js/ace/snippets/java.js b/_embed/public/js/vendor/ace/snippets/java.js similarity index 100% rename from _embed/public/js/ace/snippets/java.js rename to _embed/public/js/vendor/ace/snippets/java.js diff --git a/_embed/public/js/ace/snippets/javascript.js b/_embed/public/js/vendor/ace/snippets/javascript.js similarity index 100% rename from _embed/public/js/ace/snippets/javascript.js rename to _embed/public/js/vendor/ace/snippets/javascript.js diff --git a/_embed/public/js/ace/snippets/json.js b/_embed/public/js/vendor/ace/snippets/json.js similarity index 100% rename from _embed/public/js/ace/snippets/json.js rename to _embed/public/js/vendor/ace/snippets/json.js diff --git a/_embed/public/js/ace/snippets/jsoniq.js b/_embed/public/js/vendor/ace/snippets/jsoniq.js similarity index 100% rename from _embed/public/js/ace/snippets/jsoniq.js rename to _embed/public/js/vendor/ace/snippets/jsoniq.js diff --git a/_embed/public/js/ace/snippets/jsp.js b/_embed/public/js/vendor/ace/snippets/jsp.js similarity index 100% rename from _embed/public/js/ace/snippets/jsp.js rename to _embed/public/js/vendor/ace/snippets/jsp.js diff --git a/_embed/public/js/ace/snippets/jsx.js b/_embed/public/js/vendor/ace/snippets/jsx.js similarity index 100% rename from _embed/public/js/ace/snippets/jsx.js rename to _embed/public/js/vendor/ace/snippets/jsx.js diff --git a/_embed/public/js/ace/snippets/julia.js b/_embed/public/js/vendor/ace/snippets/julia.js similarity index 100% rename from _embed/public/js/ace/snippets/julia.js rename to _embed/public/js/vendor/ace/snippets/julia.js diff --git a/_embed/public/js/ace/snippets/kotlin.js b/_embed/public/js/vendor/ace/snippets/kotlin.js similarity index 100% rename from _embed/public/js/ace/snippets/kotlin.js rename to _embed/public/js/vendor/ace/snippets/kotlin.js diff --git a/_embed/public/js/ace/snippets/latex.js b/_embed/public/js/vendor/ace/snippets/latex.js similarity index 100% rename from _embed/public/js/ace/snippets/latex.js rename to _embed/public/js/vendor/ace/snippets/latex.js diff --git a/_embed/public/js/ace/snippets/lean.js b/_embed/public/js/vendor/ace/snippets/lean.js similarity index 100% rename from _embed/public/js/ace/snippets/lean.js rename to _embed/public/js/vendor/ace/snippets/lean.js diff --git a/_embed/public/js/ace/snippets/less.js b/_embed/public/js/vendor/ace/snippets/less.js similarity index 100% rename from _embed/public/js/ace/snippets/less.js rename to _embed/public/js/vendor/ace/snippets/less.js diff --git a/_embed/public/js/ace/snippets/liquid.js b/_embed/public/js/vendor/ace/snippets/liquid.js similarity index 100% rename from _embed/public/js/ace/snippets/liquid.js rename to _embed/public/js/vendor/ace/snippets/liquid.js diff --git a/_embed/public/js/ace/snippets/lisp.js b/_embed/public/js/vendor/ace/snippets/lisp.js similarity index 100% rename from _embed/public/js/ace/snippets/lisp.js rename to _embed/public/js/vendor/ace/snippets/lisp.js diff --git a/_embed/public/js/ace/snippets/live_script.js b/_embed/public/js/vendor/ace/snippets/live_script.js similarity index 100% rename from _embed/public/js/ace/snippets/live_script.js rename to _embed/public/js/vendor/ace/snippets/live_script.js diff --git a/_embed/public/js/ace/snippets/livescript.js b/_embed/public/js/vendor/ace/snippets/livescript.js similarity index 100% rename from _embed/public/js/ace/snippets/livescript.js rename to _embed/public/js/vendor/ace/snippets/livescript.js diff --git a/_embed/public/js/ace/snippets/logiql.js b/_embed/public/js/vendor/ace/snippets/logiql.js similarity index 100% rename from _embed/public/js/ace/snippets/logiql.js rename to _embed/public/js/vendor/ace/snippets/logiql.js diff --git a/_embed/public/js/ace/snippets/lsl.js b/_embed/public/js/vendor/ace/snippets/lsl.js similarity index 100% rename from _embed/public/js/ace/snippets/lsl.js rename to _embed/public/js/vendor/ace/snippets/lsl.js diff --git a/_embed/public/js/ace/snippets/lua.js b/_embed/public/js/vendor/ace/snippets/lua.js similarity index 100% rename from _embed/public/js/ace/snippets/lua.js rename to _embed/public/js/vendor/ace/snippets/lua.js diff --git a/_embed/public/js/ace/snippets/luapage.js b/_embed/public/js/vendor/ace/snippets/luapage.js similarity index 100% rename from _embed/public/js/ace/snippets/luapage.js rename to _embed/public/js/vendor/ace/snippets/luapage.js diff --git a/_embed/public/js/ace/snippets/lucene.js b/_embed/public/js/vendor/ace/snippets/lucene.js similarity index 100% rename from _embed/public/js/ace/snippets/lucene.js rename to _embed/public/js/vendor/ace/snippets/lucene.js diff --git a/_embed/public/js/ace/snippets/makefile.js b/_embed/public/js/vendor/ace/snippets/makefile.js similarity index 100% rename from _embed/public/js/ace/snippets/makefile.js rename to _embed/public/js/vendor/ace/snippets/makefile.js diff --git a/_embed/public/js/ace/snippets/markdown.js b/_embed/public/js/vendor/ace/snippets/markdown.js similarity index 100% rename from _embed/public/js/ace/snippets/markdown.js rename to _embed/public/js/vendor/ace/snippets/markdown.js diff --git a/_embed/public/js/ace/snippets/mask.js b/_embed/public/js/vendor/ace/snippets/mask.js similarity index 100% rename from _embed/public/js/ace/snippets/mask.js rename to _embed/public/js/vendor/ace/snippets/mask.js diff --git a/_embed/public/js/ace/snippets/matlab.js b/_embed/public/js/vendor/ace/snippets/matlab.js similarity index 100% rename from _embed/public/js/ace/snippets/matlab.js rename to _embed/public/js/vendor/ace/snippets/matlab.js diff --git a/_embed/public/js/ace/snippets/maze.js b/_embed/public/js/vendor/ace/snippets/maze.js similarity index 100% rename from _embed/public/js/ace/snippets/maze.js rename to _embed/public/js/vendor/ace/snippets/maze.js diff --git a/_embed/public/js/ace/snippets/mel.js b/_embed/public/js/vendor/ace/snippets/mel.js similarity index 100% rename from _embed/public/js/ace/snippets/mel.js rename to _embed/public/js/vendor/ace/snippets/mel.js diff --git a/_embed/public/js/ace/snippets/mips_assembler.js b/_embed/public/js/vendor/ace/snippets/mips_assembler.js similarity index 100% rename from _embed/public/js/ace/snippets/mips_assembler.js rename to _embed/public/js/vendor/ace/snippets/mips_assembler.js diff --git a/_embed/public/js/ace/snippets/mipsassembler.js b/_embed/public/js/vendor/ace/snippets/mipsassembler.js similarity index 100% rename from _embed/public/js/ace/snippets/mipsassembler.js rename to _embed/public/js/vendor/ace/snippets/mipsassembler.js diff --git a/_embed/public/js/ace/snippets/mushcode.js b/_embed/public/js/vendor/ace/snippets/mushcode.js similarity index 100% rename from _embed/public/js/ace/snippets/mushcode.js rename to _embed/public/js/vendor/ace/snippets/mushcode.js diff --git a/_embed/public/js/ace/snippets/mysql.js b/_embed/public/js/vendor/ace/snippets/mysql.js similarity index 100% rename from _embed/public/js/ace/snippets/mysql.js rename to _embed/public/js/vendor/ace/snippets/mysql.js diff --git a/_embed/public/js/ace/snippets/nix.js b/_embed/public/js/vendor/ace/snippets/nix.js similarity index 100% rename from _embed/public/js/ace/snippets/nix.js rename to _embed/public/js/vendor/ace/snippets/nix.js diff --git a/_embed/public/js/ace/snippets/nsis.js b/_embed/public/js/vendor/ace/snippets/nsis.js similarity index 100% rename from _embed/public/js/ace/snippets/nsis.js rename to _embed/public/js/vendor/ace/snippets/nsis.js diff --git a/_embed/public/js/ace/snippets/objectivec.js b/_embed/public/js/vendor/ace/snippets/objectivec.js similarity index 100% rename from _embed/public/js/ace/snippets/objectivec.js rename to _embed/public/js/vendor/ace/snippets/objectivec.js diff --git a/_embed/public/js/ace/snippets/ocaml.js b/_embed/public/js/vendor/ace/snippets/ocaml.js similarity index 100% rename from _embed/public/js/ace/snippets/ocaml.js rename to _embed/public/js/vendor/ace/snippets/ocaml.js diff --git a/_embed/public/js/ace/snippets/pascal.js b/_embed/public/js/vendor/ace/snippets/pascal.js similarity index 100% rename from _embed/public/js/ace/snippets/pascal.js rename to _embed/public/js/vendor/ace/snippets/pascal.js diff --git a/_embed/public/js/ace/snippets/perl.js b/_embed/public/js/vendor/ace/snippets/perl.js similarity index 100% rename from _embed/public/js/ace/snippets/perl.js rename to _embed/public/js/vendor/ace/snippets/perl.js diff --git a/_embed/public/js/ace/snippets/pgsql.js b/_embed/public/js/vendor/ace/snippets/pgsql.js similarity index 100% rename from _embed/public/js/ace/snippets/pgsql.js rename to _embed/public/js/vendor/ace/snippets/pgsql.js diff --git a/_embed/public/js/ace/snippets/php.js b/_embed/public/js/vendor/ace/snippets/php.js similarity index 100% rename from _embed/public/js/ace/snippets/php.js rename to _embed/public/js/vendor/ace/snippets/php.js diff --git a/_embed/public/js/ace/snippets/plain_text.js b/_embed/public/js/vendor/ace/snippets/plain_text.js similarity index 100% rename from _embed/public/js/ace/snippets/plain_text.js rename to _embed/public/js/vendor/ace/snippets/plain_text.js diff --git a/_embed/public/js/ace/snippets/powershell.js b/_embed/public/js/vendor/ace/snippets/powershell.js similarity index 100% rename from _embed/public/js/ace/snippets/powershell.js rename to _embed/public/js/vendor/ace/snippets/powershell.js diff --git a/_embed/public/js/ace/snippets/praat.js b/_embed/public/js/vendor/ace/snippets/praat.js similarity index 100% rename from _embed/public/js/ace/snippets/praat.js rename to _embed/public/js/vendor/ace/snippets/praat.js diff --git a/_embed/public/js/ace/snippets/prolog.js b/_embed/public/js/vendor/ace/snippets/prolog.js similarity index 100% rename from _embed/public/js/ace/snippets/prolog.js rename to _embed/public/js/vendor/ace/snippets/prolog.js diff --git a/_embed/public/js/ace/snippets/properties.js b/_embed/public/js/vendor/ace/snippets/properties.js similarity index 100% rename from _embed/public/js/ace/snippets/properties.js rename to _embed/public/js/vendor/ace/snippets/properties.js diff --git a/_embed/public/js/ace/snippets/protobuf.js b/_embed/public/js/vendor/ace/snippets/protobuf.js similarity index 100% rename from _embed/public/js/ace/snippets/protobuf.js rename to _embed/public/js/vendor/ace/snippets/protobuf.js diff --git a/_embed/public/js/ace/snippets/python.js b/_embed/public/js/vendor/ace/snippets/python.js similarity index 100% rename from _embed/public/js/ace/snippets/python.js rename to _embed/public/js/vendor/ace/snippets/python.js diff --git a/_embed/public/js/ace/snippets/r.js b/_embed/public/js/vendor/ace/snippets/r.js similarity index 100% rename from _embed/public/js/ace/snippets/r.js rename to _embed/public/js/vendor/ace/snippets/r.js diff --git a/_embed/public/js/ace/snippets/razor.js b/_embed/public/js/vendor/ace/snippets/razor.js similarity index 100% rename from _embed/public/js/ace/snippets/razor.js rename to _embed/public/js/vendor/ace/snippets/razor.js diff --git a/_embed/public/js/ace/snippets/rdoc.js b/_embed/public/js/vendor/ace/snippets/rdoc.js similarity index 100% rename from _embed/public/js/ace/snippets/rdoc.js rename to _embed/public/js/vendor/ace/snippets/rdoc.js diff --git a/_embed/public/js/ace/snippets/rhtml.js b/_embed/public/js/vendor/ace/snippets/rhtml.js similarity index 100% rename from _embed/public/js/ace/snippets/rhtml.js rename to _embed/public/js/vendor/ace/snippets/rhtml.js diff --git a/_embed/public/js/ace/snippets/rst.js b/_embed/public/js/vendor/ace/snippets/rst.js similarity index 100% rename from _embed/public/js/ace/snippets/rst.js rename to _embed/public/js/vendor/ace/snippets/rst.js diff --git a/_embed/public/js/ace/snippets/ruby.js b/_embed/public/js/vendor/ace/snippets/ruby.js similarity index 100% rename from _embed/public/js/ace/snippets/ruby.js rename to _embed/public/js/vendor/ace/snippets/ruby.js diff --git a/_embed/public/js/ace/snippets/rust.js b/_embed/public/js/vendor/ace/snippets/rust.js similarity index 100% rename from _embed/public/js/ace/snippets/rust.js rename to _embed/public/js/vendor/ace/snippets/rust.js diff --git a/_embed/public/js/ace/snippets/sass.js b/_embed/public/js/vendor/ace/snippets/sass.js similarity index 100% rename from _embed/public/js/ace/snippets/sass.js rename to _embed/public/js/vendor/ace/snippets/sass.js diff --git a/_embed/public/js/ace/snippets/scad.js b/_embed/public/js/vendor/ace/snippets/scad.js similarity index 100% rename from _embed/public/js/ace/snippets/scad.js rename to _embed/public/js/vendor/ace/snippets/scad.js diff --git a/_embed/public/js/ace/snippets/scala.js b/_embed/public/js/vendor/ace/snippets/scala.js similarity index 100% rename from _embed/public/js/ace/snippets/scala.js rename to _embed/public/js/vendor/ace/snippets/scala.js diff --git a/_embed/public/js/ace/snippets/scheme.js b/_embed/public/js/vendor/ace/snippets/scheme.js similarity index 100% rename from _embed/public/js/ace/snippets/scheme.js rename to _embed/public/js/vendor/ace/snippets/scheme.js diff --git a/_embed/public/js/ace/snippets/scss.js b/_embed/public/js/vendor/ace/snippets/scss.js similarity index 100% rename from _embed/public/js/ace/snippets/scss.js rename to _embed/public/js/vendor/ace/snippets/scss.js diff --git a/_embed/public/js/ace/snippets/sh.js b/_embed/public/js/vendor/ace/snippets/sh.js similarity index 100% rename from _embed/public/js/ace/snippets/sh.js rename to _embed/public/js/vendor/ace/snippets/sh.js diff --git a/_embed/public/js/ace/snippets/sjs.js b/_embed/public/js/vendor/ace/snippets/sjs.js similarity index 100% rename from _embed/public/js/ace/snippets/sjs.js rename to _embed/public/js/vendor/ace/snippets/sjs.js diff --git a/_embed/public/js/ace/snippets/smarty.js b/_embed/public/js/vendor/ace/snippets/smarty.js similarity index 100% rename from _embed/public/js/ace/snippets/smarty.js rename to _embed/public/js/vendor/ace/snippets/smarty.js diff --git a/_embed/public/js/ace/snippets/snippets.js b/_embed/public/js/vendor/ace/snippets/snippets.js similarity index 100% rename from _embed/public/js/ace/snippets/snippets.js rename to _embed/public/js/vendor/ace/snippets/snippets.js diff --git a/_embed/public/js/ace/snippets/soy_template.js b/_embed/public/js/vendor/ace/snippets/soy_template.js similarity index 100% rename from _embed/public/js/ace/snippets/soy_template.js rename to _embed/public/js/vendor/ace/snippets/soy_template.js diff --git a/_embed/public/js/ace/snippets/space.js b/_embed/public/js/vendor/ace/snippets/space.js similarity index 100% rename from _embed/public/js/ace/snippets/space.js rename to _embed/public/js/vendor/ace/snippets/space.js diff --git a/_embed/public/js/ace/snippets/sql.js b/_embed/public/js/vendor/ace/snippets/sql.js similarity index 100% rename from _embed/public/js/ace/snippets/sql.js rename to _embed/public/js/vendor/ace/snippets/sql.js diff --git a/_embed/public/js/ace/snippets/sqlserver.js b/_embed/public/js/vendor/ace/snippets/sqlserver.js similarity index 100% rename from _embed/public/js/ace/snippets/sqlserver.js rename to _embed/public/js/vendor/ace/snippets/sqlserver.js diff --git a/_embed/public/js/ace/snippets/stylus.js b/_embed/public/js/vendor/ace/snippets/stylus.js similarity index 100% rename from _embed/public/js/ace/snippets/stylus.js rename to _embed/public/js/vendor/ace/snippets/stylus.js diff --git a/_embed/public/js/ace/snippets/svg.js b/_embed/public/js/vendor/ace/snippets/svg.js similarity index 100% rename from _embed/public/js/ace/snippets/svg.js rename to _embed/public/js/vendor/ace/snippets/svg.js diff --git a/_embed/public/js/ace/snippets/swift.js b/_embed/public/js/vendor/ace/snippets/swift.js similarity index 100% rename from _embed/public/js/ace/snippets/swift.js rename to _embed/public/js/vendor/ace/snippets/swift.js diff --git a/_embed/public/js/ace/snippets/swig.js b/_embed/public/js/vendor/ace/snippets/swig.js similarity index 100% rename from _embed/public/js/ace/snippets/swig.js rename to _embed/public/js/vendor/ace/snippets/swig.js diff --git a/_embed/public/js/ace/snippets/tcl.js b/_embed/public/js/vendor/ace/snippets/tcl.js similarity index 100% rename from _embed/public/js/ace/snippets/tcl.js rename to _embed/public/js/vendor/ace/snippets/tcl.js diff --git a/_embed/public/js/ace/snippets/tex.js b/_embed/public/js/vendor/ace/snippets/tex.js similarity index 100% rename from _embed/public/js/ace/snippets/tex.js rename to _embed/public/js/vendor/ace/snippets/tex.js diff --git a/_embed/public/js/ace/snippets/text.js b/_embed/public/js/vendor/ace/snippets/text.js similarity index 100% rename from _embed/public/js/ace/snippets/text.js rename to _embed/public/js/vendor/ace/snippets/text.js diff --git a/_embed/public/js/ace/snippets/textile.js b/_embed/public/js/vendor/ace/snippets/textile.js similarity index 100% rename from _embed/public/js/ace/snippets/textile.js rename to _embed/public/js/vendor/ace/snippets/textile.js diff --git a/_embed/public/js/ace/snippets/toml.js b/_embed/public/js/vendor/ace/snippets/toml.js similarity index 100% rename from _embed/public/js/ace/snippets/toml.js rename to _embed/public/js/vendor/ace/snippets/toml.js diff --git a/_embed/public/js/ace/snippets/tsx.js b/_embed/public/js/vendor/ace/snippets/tsx.js similarity index 100% rename from _embed/public/js/ace/snippets/tsx.js rename to _embed/public/js/vendor/ace/snippets/tsx.js diff --git a/_embed/public/js/ace/snippets/twig.js b/_embed/public/js/vendor/ace/snippets/twig.js similarity index 100% rename from _embed/public/js/ace/snippets/twig.js rename to _embed/public/js/vendor/ace/snippets/twig.js diff --git a/_embed/public/js/ace/snippets/typescript.js b/_embed/public/js/vendor/ace/snippets/typescript.js similarity index 100% rename from _embed/public/js/ace/snippets/typescript.js rename to _embed/public/js/vendor/ace/snippets/typescript.js diff --git a/_embed/public/js/ace/snippets/vala.js b/_embed/public/js/vendor/ace/snippets/vala.js similarity index 100% rename from _embed/public/js/ace/snippets/vala.js rename to _embed/public/js/vendor/ace/snippets/vala.js diff --git a/_embed/public/js/ace/snippets/vbscript.js b/_embed/public/js/vendor/ace/snippets/vbscript.js similarity index 100% rename from _embed/public/js/ace/snippets/vbscript.js rename to _embed/public/js/vendor/ace/snippets/vbscript.js diff --git a/_embed/public/js/ace/snippets/velocity.js b/_embed/public/js/vendor/ace/snippets/velocity.js similarity index 100% rename from _embed/public/js/ace/snippets/velocity.js rename to _embed/public/js/vendor/ace/snippets/velocity.js diff --git a/_embed/public/js/ace/snippets/verilog.js b/_embed/public/js/vendor/ace/snippets/verilog.js similarity index 100% rename from _embed/public/js/ace/snippets/verilog.js rename to _embed/public/js/vendor/ace/snippets/verilog.js diff --git a/_embed/public/js/ace/snippets/vhdl.js b/_embed/public/js/vendor/ace/snippets/vhdl.js similarity index 100% rename from _embed/public/js/ace/snippets/vhdl.js rename to _embed/public/js/vendor/ace/snippets/vhdl.js diff --git a/_embed/public/js/ace/snippets/wollok.js b/_embed/public/js/vendor/ace/snippets/wollok.js similarity index 100% rename from _embed/public/js/ace/snippets/wollok.js rename to _embed/public/js/vendor/ace/snippets/wollok.js diff --git a/_embed/public/js/ace/snippets/xml.js b/_embed/public/js/vendor/ace/snippets/xml.js similarity index 100% rename from _embed/public/js/ace/snippets/xml.js rename to _embed/public/js/vendor/ace/snippets/xml.js diff --git a/_embed/public/js/ace/snippets/xquery.js b/_embed/public/js/vendor/ace/snippets/xquery.js similarity index 100% rename from _embed/public/js/ace/snippets/xquery.js rename to _embed/public/js/vendor/ace/snippets/xquery.js diff --git a/_embed/public/js/ace/snippets/yaml.js b/_embed/public/js/vendor/ace/snippets/yaml.js similarity index 100% rename from _embed/public/js/ace/snippets/yaml.js rename to _embed/public/js/vendor/ace/snippets/yaml.js diff --git a/_embed/public/js/ace/theme-ambiance.js b/_embed/public/js/vendor/ace/theme-ambiance.js similarity index 100% rename from _embed/public/js/ace/theme-ambiance.js rename to _embed/public/js/vendor/ace/theme-ambiance.js diff --git a/_embed/public/js/ace/theme-chaos.js b/_embed/public/js/vendor/ace/theme-chaos.js similarity index 100% rename from _embed/public/js/ace/theme-chaos.js rename to _embed/public/js/vendor/ace/theme-chaos.js diff --git a/_embed/public/js/ace/theme-chrome.js b/_embed/public/js/vendor/ace/theme-chrome.js similarity index 100% rename from _embed/public/js/ace/theme-chrome.js rename to _embed/public/js/vendor/ace/theme-chrome.js diff --git a/_embed/public/js/ace/theme-clouds.js b/_embed/public/js/vendor/ace/theme-clouds.js similarity index 100% rename from _embed/public/js/ace/theme-clouds.js rename to _embed/public/js/vendor/ace/theme-clouds.js diff --git a/_embed/public/js/ace/theme-clouds_midnight.js b/_embed/public/js/vendor/ace/theme-clouds_midnight.js similarity index 100% rename from _embed/public/js/ace/theme-clouds_midnight.js rename to _embed/public/js/vendor/ace/theme-clouds_midnight.js diff --git a/_embed/public/js/ace/theme-cobalt.js b/_embed/public/js/vendor/ace/theme-cobalt.js similarity index 100% rename from _embed/public/js/ace/theme-cobalt.js rename to _embed/public/js/vendor/ace/theme-cobalt.js diff --git a/_embed/public/js/ace/theme-crimson_editor.js b/_embed/public/js/vendor/ace/theme-crimson_editor.js similarity index 100% rename from _embed/public/js/ace/theme-crimson_editor.js rename to _embed/public/js/vendor/ace/theme-crimson_editor.js diff --git a/_embed/public/js/ace/theme-dawn.js b/_embed/public/js/vendor/ace/theme-dawn.js similarity index 100% rename from _embed/public/js/ace/theme-dawn.js rename to _embed/public/js/vendor/ace/theme-dawn.js diff --git a/_embed/public/js/ace/theme-dreamweaver.js b/_embed/public/js/vendor/ace/theme-dreamweaver.js similarity index 100% rename from _embed/public/js/ace/theme-dreamweaver.js rename to _embed/public/js/vendor/ace/theme-dreamweaver.js diff --git a/_embed/public/js/ace/theme-eclipse.js b/_embed/public/js/vendor/ace/theme-eclipse.js similarity index 100% rename from _embed/public/js/ace/theme-eclipse.js rename to _embed/public/js/vendor/ace/theme-eclipse.js diff --git a/_embed/public/js/ace/theme-github.js b/_embed/public/js/vendor/ace/theme-github.js similarity index 100% rename from _embed/public/js/ace/theme-github.js rename to _embed/public/js/vendor/ace/theme-github.js diff --git a/_embed/public/js/ace/theme-idle_fingers.js b/_embed/public/js/vendor/ace/theme-idle_fingers.js similarity index 100% rename from _embed/public/js/ace/theme-idle_fingers.js rename to _embed/public/js/vendor/ace/theme-idle_fingers.js diff --git a/_embed/public/js/ace/theme-iplastic.js b/_embed/public/js/vendor/ace/theme-iplastic.js similarity index 100% rename from _embed/public/js/ace/theme-iplastic.js rename to _embed/public/js/vendor/ace/theme-iplastic.js diff --git a/_embed/public/js/ace/theme-katzenmilch.js b/_embed/public/js/vendor/ace/theme-katzenmilch.js similarity index 100% rename from _embed/public/js/ace/theme-katzenmilch.js rename to _embed/public/js/vendor/ace/theme-katzenmilch.js diff --git a/_embed/public/js/ace/theme-kr_theme.js b/_embed/public/js/vendor/ace/theme-kr_theme.js similarity index 100% rename from _embed/public/js/ace/theme-kr_theme.js rename to _embed/public/js/vendor/ace/theme-kr_theme.js diff --git a/_embed/public/js/ace/theme-kuroir.js b/_embed/public/js/vendor/ace/theme-kuroir.js similarity index 100% rename from _embed/public/js/ace/theme-kuroir.js rename to _embed/public/js/vendor/ace/theme-kuroir.js diff --git a/_embed/public/js/ace/theme-merbivore.js b/_embed/public/js/vendor/ace/theme-merbivore.js similarity index 100% rename from _embed/public/js/ace/theme-merbivore.js rename to _embed/public/js/vendor/ace/theme-merbivore.js diff --git a/_embed/public/js/ace/theme-merbivore_soft.js b/_embed/public/js/vendor/ace/theme-merbivore_soft.js similarity index 100% rename from _embed/public/js/ace/theme-merbivore_soft.js rename to _embed/public/js/vendor/ace/theme-merbivore_soft.js diff --git a/_embed/public/js/ace/theme-mono_industrial.js b/_embed/public/js/vendor/ace/theme-mono_industrial.js similarity index 100% rename from _embed/public/js/ace/theme-mono_industrial.js rename to _embed/public/js/vendor/ace/theme-mono_industrial.js diff --git a/_embed/public/js/ace/theme-monokai.js b/_embed/public/js/vendor/ace/theme-monokai.js similarity index 100% rename from _embed/public/js/ace/theme-monokai.js rename to _embed/public/js/vendor/ace/theme-monokai.js diff --git a/_embed/public/js/ace/theme-pastel_on_dark.js b/_embed/public/js/vendor/ace/theme-pastel_on_dark.js similarity index 100% rename from _embed/public/js/ace/theme-pastel_on_dark.js rename to _embed/public/js/vendor/ace/theme-pastel_on_dark.js diff --git a/_embed/public/js/ace/theme-solarized_dark.js b/_embed/public/js/vendor/ace/theme-solarized_dark.js similarity index 100% rename from _embed/public/js/ace/theme-solarized_dark.js rename to _embed/public/js/vendor/ace/theme-solarized_dark.js diff --git a/_embed/public/js/ace/theme-solarized_light.js b/_embed/public/js/vendor/ace/theme-solarized_light.js similarity index 100% rename from _embed/public/js/ace/theme-solarized_light.js rename to _embed/public/js/vendor/ace/theme-solarized_light.js diff --git a/_embed/public/js/ace/theme-sqlserver.js b/_embed/public/js/vendor/ace/theme-sqlserver.js similarity index 100% rename from _embed/public/js/ace/theme-sqlserver.js rename to _embed/public/js/vendor/ace/theme-sqlserver.js diff --git a/_embed/public/js/ace/theme-terminal.js b/_embed/public/js/vendor/ace/theme-terminal.js similarity index 100% rename from _embed/public/js/ace/theme-terminal.js rename to _embed/public/js/vendor/ace/theme-terminal.js diff --git a/_embed/public/js/ace/theme-textmate.js b/_embed/public/js/vendor/ace/theme-textmate.js similarity index 100% rename from _embed/public/js/ace/theme-textmate.js rename to _embed/public/js/vendor/ace/theme-textmate.js diff --git a/_embed/public/js/ace/theme-tomorrow.js b/_embed/public/js/vendor/ace/theme-tomorrow.js similarity index 100% rename from _embed/public/js/ace/theme-tomorrow.js rename to _embed/public/js/vendor/ace/theme-tomorrow.js diff --git a/_embed/public/js/ace/theme-tomorrow_night.js b/_embed/public/js/vendor/ace/theme-tomorrow_night.js similarity index 100% rename from _embed/public/js/ace/theme-tomorrow_night.js rename to _embed/public/js/vendor/ace/theme-tomorrow_night.js diff --git a/_embed/public/js/ace/theme-tomorrow_night_blue.js b/_embed/public/js/vendor/ace/theme-tomorrow_night_blue.js similarity index 100% rename from _embed/public/js/ace/theme-tomorrow_night_blue.js rename to _embed/public/js/vendor/ace/theme-tomorrow_night_blue.js diff --git a/_embed/public/js/ace/theme-tomorrow_night_bright.js b/_embed/public/js/vendor/ace/theme-tomorrow_night_bright.js similarity index 100% rename from _embed/public/js/ace/theme-tomorrow_night_bright.js rename to _embed/public/js/vendor/ace/theme-tomorrow_night_bright.js diff --git a/_embed/public/js/ace/theme-tomorrow_night_eighties.js b/_embed/public/js/vendor/ace/theme-tomorrow_night_eighties.js similarity index 100% rename from _embed/public/js/ace/theme-tomorrow_night_eighties.js rename to _embed/public/js/vendor/ace/theme-tomorrow_night_eighties.js diff --git a/_embed/public/js/ace/theme-twilight.js b/_embed/public/js/vendor/ace/theme-twilight.js similarity index 100% rename from _embed/public/js/ace/theme-twilight.js rename to _embed/public/js/vendor/ace/theme-twilight.js diff --git a/_embed/public/js/ace/theme-vibrant_ink.js b/_embed/public/js/vendor/ace/theme-vibrant_ink.js similarity index 100% rename from _embed/public/js/ace/theme-vibrant_ink.js rename to _embed/public/js/vendor/ace/theme-vibrant_ink.js diff --git a/_embed/public/js/ace/theme-xcode.js b/_embed/public/js/vendor/ace/theme-xcode.js similarity index 100% rename from _embed/public/js/ace/theme-xcode.js rename to _embed/public/js/vendor/ace/theme-xcode.js diff --git a/_embed/public/js/ace/worker-coffee.js b/_embed/public/js/vendor/ace/worker-coffee.js similarity index 100% rename from _embed/public/js/ace/worker-coffee.js rename to _embed/public/js/vendor/ace/worker-coffee.js diff --git a/_embed/public/js/ace/worker-css.js b/_embed/public/js/vendor/ace/worker-css.js similarity index 100% rename from _embed/public/js/ace/worker-css.js rename to _embed/public/js/vendor/ace/worker-css.js diff --git a/_embed/public/js/ace/worker-html.js b/_embed/public/js/vendor/ace/worker-html.js similarity index 100% rename from _embed/public/js/ace/worker-html.js rename to _embed/public/js/vendor/ace/worker-html.js diff --git a/_embed/public/js/ace/worker-javascript.js b/_embed/public/js/vendor/ace/worker-javascript.js similarity index 100% rename from _embed/public/js/ace/worker-javascript.js rename to _embed/public/js/vendor/ace/worker-javascript.js diff --git a/_embed/public/js/ace/worker-json.js b/_embed/public/js/vendor/ace/worker-json.js similarity index 100% rename from _embed/public/js/ace/worker-json.js rename to _embed/public/js/vendor/ace/worker-json.js diff --git a/_embed/public/js/ace/worker-lua.js b/_embed/public/js/vendor/ace/worker-lua.js similarity index 100% rename from _embed/public/js/ace/worker-lua.js rename to _embed/public/js/vendor/ace/worker-lua.js diff --git a/_embed/public/js/ace/worker-php.js b/_embed/public/js/vendor/ace/worker-php.js similarity index 100% rename from _embed/public/js/ace/worker-php.js rename to _embed/public/js/vendor/ace/worker-php.js diff --git a/_embed/public/js/ace/worker-xml.js b/_embed/public/js/vendor/ace/worker-xml.js similarity index 100% rename from _embed/public/js/ace/worker-xml.js rename to _embed/public/js/vendor/ace/worker-xml.js diff --git a/_embed/public/js/ace/worker-xquery.js b/_embed/public/js/vendor/ace/worker-xquery.js similarity index 100% rename from _embed/public/js/ace/worker-xquery.js rename to _embed/public/js/vendor/ace/worker-xquery.js diff --git a/_embed/public/js/form2js.js b/_embed/public/js/vendor/form2js.js similarity index 100% rename from _embed/public/js/form2js.js rename to _embed/public/js/vendor/form2js.js diff --git a/_embed/templates/base.tmpl b/_embed/templates/base.tmpl index b2f39ea0..86892bc0 100644 --- a/_embed/templates/base.tmpl +++ b/_embed/templates/base.tmpl @@ -13,10 +13,19 @@ - - - - + + + {{ if .IsDir }} + + {{ else }} + + + + {{ end }}