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:
@@ -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, '<');
|
||||
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);
|
||||
|
@@ -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, '<');
|
||||
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);
|
||||
|
@@ -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>
|
||||
|
Reference in New Issue
Block a user