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 @authenticated
@bind_config @bind_config
def get(self, configuration=None): def get(self, configuration=None):
# pylint: disable=no-value-for-parameter filename = settings.rel_path(configuration)
with open(settings.rel_path(configuration), 'r') as f: content = ''
content = f.read() if os.path.isfile(filename):
# pylint: disable=no-value-for-parameter
with open(filename, 'r') as f:
content = f.read()
self.write(content) self.write(content)
@authenticated @authenticated

View file

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

View file

@ -38,8 +38,8 @@
</div> </div>
<ul id="dropdown-nav-actions" class="select-action dropdown-content card-dropdown-action"> <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" <li><a id="update-all-button" data-node="{{ escape(config_dir) }}">Update All</a></li>
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> </ul>
</nav> </nav>