1
0
mirror of https://github.com/til-schneider/slim-wiki.git synced 2025-08-05 16:17:29 +02:00

Moved JavaScript code for createUser to edit.js

This commit is contained in:
til-schneider
2015-12-24 13:34:35 +01:00
parent 2ae55dd150
commit 0dca0f2247
3 changed files with 66 additions and 61 deletions

View File

@@ -12,6 +12,16 @@
function init() {
var mode = slimwiki.settings.mode;
if (mode == 'edit') {
initEditMode();
} else if (mode == 'createUser') {
initCreateUserForm();
}
}
function initEditMode() {
document.getElementById('close-edit-mode').style.display = 'block';
editor = CodeMirror.fromTextArea(document.getElementById('editor'), {
@@ -26,6 +36,27 @@
editor.on('scroll', onEditorScroll)
}
function initCreateUserForm() {
document.getElementById('create-user-box').style.display = 'block';
document.getElementById('showConfigBtn').addEventListener('click', function() {
var user = document.getElementById('user').value,
pass = document.getElementById('password').value;
callRpc('editor', 'createUserConfig', [ user, pass ], function(result, error) {
if (error) {
console.error('Creating user config failed:', error);
} else {
var resultBoxElem = document.getElementById('result-box');
resultBoxElem.style.display = 'block';
document.getElementById('result').innerHTML = result.replace(/</g, '&lt;');
slimwiki.View.updateSyntaxHighlighting(resultBoxElem);
}
});
}, false);
}
function onEditorChange() {
previewIsDirty = true;
if (! updatePreviewRunning) {
@@ -36,7 +67,7 @@
updatePreviewRunning = true;
var start = new Date().getTime(),
articleFilename = slimwiki.settings.articleFilename;
slimwiki.Util.callRpc('editor', 'saveArticle', [ articleFilename, editor.getValue() ], function(result, error) {
callRpc('editor', 'saveArticle', [ articleFilename, editor.getValue() ], function(result, error) {
updatePreviewRunning = false;
if (error) {
@@ -64,4 +95,34 @@
window.scrollTo(0, scrollFactor * (bodyElem.scrollHeight - bodyElem.clientHeight));
}
function callRpc(objectName, methodName, paramArray, done) {
var request = new XMLHttpRequest(),
requestJson;
request.open('POST', 'rpc/' + objectName, true);
request.onreadystatechange = function () {
if (request.readyState == 4) {
if (request.status != 200) {
done(null, 'Request failed with status ' + request.status);
} else {
var responseJson;
try {
responseJson = JSON.parse(request.responseText);
} catch (err) {
done(null, 'Parsing response failed: ' + err);
}
if (responseJson.error) {
done(null, 'Request failed on server-side: ' + responseJson.error.message);
} else {
done(responseJson.result);
}
}
}
};
requestJson = { jsonrpc: '2.0', method: methodName, params: paramArray || [], id: 1 };
request.send(JSON.stringify(requestJson));
}
})(window, document, slimwiki, console, CodeMirror);

View File

@@ -1,8 +1,5 @@
(function(window, document, slimwiki, hljs) {
(function(document, slimwiki, hljs) {
slimwiki.Util = {
callRpc: callRpc
};
slimwiki.View = {
updateSyntaxHighlighting: updateSyntaxHighlighting
};
@@ -17,32 +14,9 @@
if (mode == 'view' || mode == 'edit') {
updateSyntaxHighlighting();
} else if (mode == 'createUser') {
initCreateUserForm();
}
}
function initCreateUserForm() {
document.getElementById('create-user-box').style.display = 'block';
document.getElementById('showConfigBtn').addEventListener('click', function() {
var user = document.getElementById('user').value,
pass = document.getElementById('password').value;
callRpc('editor', 'createUserConfig', [ user, pass ], function(result, error) {
if (error) {
console.error('Creating user config failed:', error);
} else {
var resultBoxElem = document.getElementById('result-box');
resultBoxElem.style.display = 'block';
document.getElementById('result').innerHTML = result.replace(/</g, '&lt;');
updateSyntaxHighlighting(resultBoxElem);
}
});
}, false);
}
function updateSyntaxHighlighting(parentElem) {
if (! parentElem) {
parentElem = document.getElementById('content');
@@ -52,34 +26,4 @@
Array.prototype.forEach.call(blocks, hljs.highlightBlock);
}
function callRpc(objectName, methodName, paramArray, done) {
var request = new XMLHttpRequest(),
requestJson;
request.open('POST', 'rpc/' + objectName, true);
request.onreadystatechange = function () {
if (request.readyState == 4) {
if (request.status != 200) {
done(null, 'Request failed with status ' + request.status);
} else {
var responseJson;
try {
responseJson = JSON.parse(request.responseText);
} catch (err) {
done(null, 'Parsing response failed: ' + err);
}
if (responseJson.error) {
done(null, 'Request failed on server-side: ' + responseJson.error.message);
} else {
done(responseJson.result);
}
}
}
};
requestJson = { jsonrpc: '2.0', method: methodName, params: paramArray || [], id: 1 };
request.send(JSON.stringify(requestJson));
}
})(window, document, slimwiki, hljs);
})(document, slimwiki, hljs);

View File

@@ -150,7 +150,7 @@ if ($mode == 'edit') {
?></div><?php // id="main-wrapper" ?>
<?php if ($mode == 'edit') { ?>
<?php if ($mode != 'view') { ?>
<!-- build:js client/edit.js -->
<script src="client/libs/CodeMirror/lib/codemirror.js"></script>
<script src="client/libs/CodeMirror/addon/mode/overlay.js"></script> <!-- Allow language-in-language -->
@@ -168,7 +168,7 @@ if ($mode == 'edit') {
<script src="client/js/app-edit.js"></script>
<!-- endbuild -->
<?php } // if ($mode == 'edit') ?>
<?php } // if ($mode != 'view') ?>
<!-- build:js client/view.js -->
<script src="client/libs/highlightjs/highlight.pack.js"></script>