diff --git a/src/client/js/app-edit.js b/src/client/js/app-edit.js
index 83e544b..2da0619 100644
--- a/src/client/js/app-edit.js
+++ b/src/client/js/app-edit.js
@@ -1,7 +1,6 @@
-(function(window, document, console, CodeMirror) {
+(function(window, document, slimwiki, console, CodeMirror) {
- var slimwiki = window.slimwiki,
- editor,
+ var editor,
updatePreviewDelay = 1000,
updatePreviewTimeout = null,
updatePreviewRunning = false,
@@ -31,7 +30,7 @@
updatePreviewRunning = true;
var start = new Date().getTime(),
articleFilename = slimwiki.settings.articleFilename;
- callRpc('editor', 'saveArticle', [ articleFilename, editor.getValue() ], function(result, error) {
+ slimwiki.Util.callRpc('editor', 'saveArticle', [ articleFilename, editor.getValue() ], function(result, error) {
updatePreviewRunning = false;
if (error) {
@@ -59,34 +58,6 @@
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 {
- try {
- var responseJson = JSON.parse(request.responseText);
- if (responseJson.error) {
- done(null, 'Request failed on server-side: ' + responseJson.error.message);
- } else {
- done(responseJson.result);
- }
- } catch (err) {
- done(null, 'Request failed: ' + err);
- }
- }
- }
- };
-
- requestJson = { jsonrpc: '2.0', method: methodName, params: paramArray || [], id: 1 };
- request.send(JSON.stringify(requestJson));
- }
-
init();
-})(window, document, console, CodeMirror);
+})(window, document, slimwiki, console, CodeMirror);
diff --git a/src/client/js/app-view.js b/src/client/js/app-view.js
index 4d71352..05edf32 100644
--- a/src/client/js/app-view.js
+++ b/src/client/js/app-view.js
@@ -1,17 +1,81 @@
-(function(window, document, hljs) {
+(function(window, document, slimwiki, hljs) {
- window.slimwiki = window.slimwiki || {};
-
- window.slimwiki.View = {
+ slimwiki.Util = {
+ callRpc: callRpc
+ };
+ slimwiki.View = {
updateSyntaxHighlighting: updateSyntaxHighlighting
};
- updateSyntaxHighlighting();
+ init();
- function updateSyntaxHighlighting() {
- var blocks = document.getElementById('content').querySelectorAll('pre code');
+ function init() {
+ var mode = slimwiki.settings.mode;
+
+ if (mode == 'view' || mode == 'edit') {
+ updateSyntaxHighlighting();
+ } else if (mode == 'createUser') {
+ initCreateUserForm();
+ }
+ }
+
+ function initCreateUserForm() {
+ 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(/ 'Benutzername',
+ 'createUser.password' => 'Passwort',
+ 'createUser.showConfig' => 'Konfiguration anzeigen',
+ 'createUser.addToConfig' => 'Fügen Sie die folgende Zeile zu Ihrer config.php
hinzu:'
+);
diff --git a/src/server/i18n/en.php b/src/server/i18n/en.php
new file mode 100644
index 0000000..71c2362
--- /dev/null
+++ b/src/server/i18n/en.php
@@ -0,0 +1,8 @@
+ 'User name',
+ 'createUser.password' => 'Password',
+ 'createUser.showConfig' => 'Show config',
+ 'createUser.addToConfig' => 'Add the following line to your config.php
:'
+);
diff --git a/src/server/layout/page.php b/src/server/layout/page.php
index 4b932db..f2aa859 100644
--- a/src/server/layout/page.php
+++ b/src/server/layout/page.php
@@ -1,4 +1,8 @@
-
+