Secrets editor (#672)

* Secrets editor

* Check file exists
This commit is contained in:
Nikolay Vasilchuk 2019-10-13 13:57:28 +03:00 committed by Otto Winter
parent 57bee74225
commit 7c31592850
3 changed files with 14 additions and 6 deletions

View File

@ -530,9 +530,12 @@ class EditRequestHandler(BaseHandler):
@authenticated
@bind_config
def get(self, configuration=None):
# pylint: disable=no-value-for-parameter
with open(settings.rel_path(configuration), 'r') as f:
content = f.read()
filename = settings.rel_path(configuration)
content = ''
if os.path.isfile(filename):
# pylint: disable=no-value-for-parameter
with open(filename, 'r') as f:
content = f.read()
self.write(content)
@authenticated

View File

@ -574,6 +574,7 @@ const editModalElem = document.getElementById("modal-editor");
const editorElem = editModalElem.querySelector("#editor");
const editor = ace.edit(editorElem);
let activeEditorConfig = null;
let activeEditorSecrets = false;
let aceWs = null;
let aceValidationScheduled = false;
let aceValidationRunning = false;
@ -685,7 +686,7 @@ editor.commands.addCommand({
});
editor.session.on('change', debounce(() => {
aceValidationScheduled = true;
aceValidationScheduled = !activeEditorSecrets;
}, 250));
setInterval(() => {
@ -708,9 +709,13 @@ editorUploadButton.addEventListener('click', saveEditor);
document.querySelectorAll(".action-edit").forEach((btn) => {
btn.addEventListener('click', (e) => {
activeEditorConfig = e.target.getAttribute('data-node');
activeEditorSecrets = activeEditorConfig === 'secrets.yaml';
const modalInstance = M.Modal.getInstance(editModalElem);
const filenameField = editModalElem.querySelector('.filename');
editorUploadButton.setAttribute('data-node', activeEditorConfig);
if (activeEditorSecrets) {
editorUploadButton.classList.add('disabled');
}
filenameField.innerHTML = activeEditorConfig;
editor.setValue("Loading configuration yaml...");

View File

@ -38,8 +38,8 @@
</div>
<ul id="dropdown-nav-actions" class="select-action dropdown-content card-dropdown-action">
<li><a id="update-all-button" class="modal-close waves-effect waves-green btn-flat"
data-node="{{ escape(config_dir) }}">Update All</a></li>
<li><a id="update-all-button" data-node="{{ escape(config_dir) }}">Update All</a></li>
<li><a id="secrets-button" class="action-edit" data-node="secrets.yaml">Secrets</a></li>
</ul>
</nav>