44 lines
1.3 KiB
CoffeeScript
44 lines
1.3 KiB
CoffeeScript
class @EditBlob
|
|
constructor: (assets_path, mode)->
|
|
ace.config.set "modePath", assets_path + '/ace'
|
|
ace.config.loadModule "ace/ext/searchbox"
|
|
if mode
|
|
ace_mode = mode
|
|
editor = ace.edit("editor")
|
|
editor.focus()
|
|
@editor = editor
|
|
|
|
if ace_mode
|
|
editor.getSession().setMode "ace/mode/" + ace_mode
|
|
|
|
# Before a form submission, move the content from the Ace editor into the
|
|
# submitted textarea
|
|
$('form').submit ->
|
|
$("#file-content").val(editor.getValue())
|
|
|
|
editModePanes = $(".js-edit-mode-pane")
|
|
editModeLinks = $(".js-edit-mode a")
|
|
editModeLinks.click (event) ->
|
|
event.preventDefault()
|
|
currentLink = $(this)
|
|
paneId = currentLink.attr("href")
|
|
currentPane = editModePanes.filter(paneId)
|
|
editModeLinks.parent().removeClass "active hover"
|
|
currentLink.parent().addClass "active hover"
|
|
editModePanes.hide()
|
|
if paneId is "#preview"
|
|
currentPane.fadeIn 200
|
|
$.post currentLink.data("preview-url"),
|
|
content: editor.getValue()
|
|
, (response) ->
|
|
currentPane.empty().append response
|
|
currentPane.syntaxHighlight()
|
|
return
|
|
|
|
else
|
|
currentPane.fadeIn 200
|
|
editor.focus()
|
|
return
|
|
|
|
editor: ->
|
|
return @editor
|