UNPKG

arrow-admin

Version:
66 lines (59 loc) 2.29 kB
/* global LANGUAGES */ /* global ace */ /* global APPC_SESSION */ define(['toc', 'jquery'], function (TOC, $) { var config_editor; return function (sub) { var loadingHTML = '<div id="loader"><i class="icon-spin5 animate-spin"></i> Loading...</div>'; $('#mainContent').html(loadingHTML); var user = APPC_SESSION && APPC_SESSION.valid && APPC_SESSION.user || {}, auth = 'org_id=' + user.org_id + '&user_id=' + user.user_id + '&username=' + user.username, configsURL = 'configurations?' + auth; $.get(configsURL, function (evt) { var content = $('#mainContent'), body = $('body'); body.removeClass('error-tpl'); body.addClass('has-nav-secondary'); TOC.renderMenu(false, evt.results.map(function (config) { return { title: config, url: config }; })); if (sub) { var configURL = 'configurations/' + sub + '?' + auth; $.get(configURL, function (evt) { // TODO: Handle errors. content.removeClass('panel content'); content.html('<div class="full-editor">' + '<div class="pull-left"><button id="save_config_changes" class="btn btn-primary" data-saving-text="Saving Changes..." data-saved-text="Changes saved! Server reloading...">Save Changes</button></div>' + '<textarea id="config_editor">' + evt.results + '</textarea></div>'); config_editor = ace.edit("config_editor"); config_editor.setTheme("ace/theme/monokai"); config_editor.getSession().setMode("ace/mode/javascript"); var saveButton = $('#save_config_changes'); saveButton.click(function () { var annotations = config_editor.getSession().getAnnotations(); if (annotations && annotations.length > 0) { alert('Please correct all annotations before trying to save this config file!'); return; } saveButton.button('saving'); var code = config_editor.getValue(); $.post(configURL, {code: code}, function (evt) { // TODO: Handle errors. saveButton.button('saved'); setTimeout(function () { saveButton.button('reset'); }, 2000); }); }); }); } else { content.addClass('panel content'); content.html('<div class="jumbotron"><p>Select a config file in the menu to get started</p></div>'); } }); }; });