Loading data/admin.html +15 −4 Changes for data/admin.html: 15 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -282,10 +282,13 @@ function submitEditUser(uid) { } /* ---- Domains ---- */ var g_backendType = 0; function loadDomains() { currentView = loadDomains; ajaxGet("/settings/" + currentDomain + "/api/checkpermissions", function(perr, pdata) { var isSuperAdmin = (!perr && pdata && pdata.superadmin); if (!perr && pdata && pdata.backendtype !== undefined) g_backendType = pdata.backendtype; ajaxGet("/settings/" + currentDomain + "/api/listdomains", function(err, data) { if (err) { showError(err); return; } var html = '<p>DomainList:</p><table class="admin-table domainlist">'; Loading Loading @@ -323,22 +326,30 @@ function loadDomains() { } function createDomainForm() { var isCluster = (g_backendType === 2); var html = '<h3>Create Domain</h3>'; html += '<form id="createdomainform" class="admin-form">'; html += '<table>'; html += '<tr><td><label>Domain Name:</label></td><td><input type="text" id="cd_name" class="domaintext" value="tuxist.de"></td></tr>'; html += '<tr><td><label>Domain Storage:</label></td><td><select id="cd_storage" onchange="var o=document.getElementById(\'cd_options\');if(this.value==\'2\'){o.disabled=true;o.value=\'\';}else{o.disabled=false;}"><option value="0">File</option><option value="2">Cluster</option></select></td></tr>'; html += '<tr><td><label>Domain Options:</label></td><td><input type="text" id="cd_options" class="domaintext" value="tuxist.de.db"></td></tr>'; html += '<tr><td><label>Domain Name:</label></td><td><input type="text" id="cd_name" class="domaintext" value=""></td></tr>'; if (isCluster) { html += '<input type="hidden" id="cd_storage" value="2">'; html += '<tr><td><label>Domain Storage:</label></td><td>Cluster</td></tr>'; } else { html += '<input type="hidden" id="cd_storage" value="0">'; html += '<tr><td><label>Domain Storage:</label></td><td>File</td></tr>'; html += '<tr><td><label>Domain Options:</label></td><td><input type="text" id="cd_options" class="domaintext" value=""></td></tr>'; } html += '<tr><td></td><td><input type="button" value="Save" onclick="submitCreateDomain()"></td></tr>'; html += '</table></form>'; setContent(html); } function submitCreateDomain() { var optEl = document.getElementById("cd_options"); var obj = { domainname: document.getElementById("cd_name").value, domainstorage: parseInt(document.getElementById("cd_storage").value), domainoptions: document.getElementById("cd_options").value domainoptions: optEl ? optEl.value : "" }; ajaxPost("/settings/" + currentDomain + "/api/createdomain", obj, function(err, data) { if (err) { showError(err); return; } Loading src/admin.cpp +4 −0 Changes for src/admin.cpp: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -557,6 +557,10 @@ namespace authdb { json_object_object_add(jobj, "sessiondomain", json_object_new_string(sessionDid.c_str())); } // Expose backend type so frontend can restrict domain storage options // 0 = File, 2 = ClusterStore json_object_object_add(jobj, "backendtype", json_object_new_int(_AdminBackend.getType())); sendJson(curreq, jobj); json_object_put(jobj); } Loading src/backend.h +1 −0 Changes for src/backend.h: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ namespace authdb{ void read(char unsigned *src,size_t srcsize); const std::string &getDomain() const { return _Domain; } int getType() const { return _Type; } private: int _Type; Loading Loading
data/admin.html +15 −4 Changes for data/admin.html: 15 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -282,10 +282,13 @@ function submitEditUser(uid) { } /* ---- Domains ---- */ var g_backendType = 0; function loadDomains() { currentView = loadDomains; ajaxGet("/settings/" + currentDomain + "/api/checkpermissions", function(perr, pdata) { var isSuperAdmin = (!perr && pdata && pdata.superadmin); if (!perr && pdata && pdata.backendtype !== undefined) g_backendType = pdata.backendtype; ajaxGet("/settings/" + currentDomain + "/api/listdomains", function(err, data) { if (err) { showError(err); return; } var html = '<p>DomainList:</p><table class="admin-table domainlist">'; Loading Loading @@ -323,22 +326,30 @@ function loadDomains() { } function createDomainForm() { var isCluster = (g_backendType === 2); var html = '<h3>Create Domain</h3>'; html += '<form id="createdomainform" class="admin-form">'; html += '<table>'; html += '<tr><td><label>Domain Name:</label></td><td><input type="text" id="cd_name" class="domaintext" value="tuxist.de"></td></tr>'; html += '<tr><td><label>Domain Storage:</label></td><td><select id="cd_storage" onchange="var o=document.getElementById(\'cd_options\');if(this.value==\'2\'){o.disabled=true;o.value=\'\';}else{o.disabled=false;}"><option value="0">File</option><option value="2">Cluster</option></select></td></tr>'; html += '<tr><td><label>Domain Options:</label></td><td><input type="text" id="cd_options" class="domaintext" value="tuxist.de.db"></td></tr>'; html += '<tr><td><label>Domain Name:</label></td><td><input type="text" id="cd_name" class="domaintext" value=""></td></tr>'; if (isCluster) { html += '<input type="hidden" id="cd_storage" value="2">'; html += '<tr><td><label>Domain Storage:</label></td><td>Cluster</td></tr>'; } else { html += '<input type="hidden" id="cd_storage" value="0">'; html += '<tr><td><label>Domain Storage:</label></td><td>File</td></tr>'; html += '<tr><td><label>Domain Options:</label></td><td><input type="text" id="cd_options" class="domaintext" value=""></td></tr>'; } html += '<tr><td></td><td><input type="button" value="Save" onclick="submitCreateDomain()"></td></tr>'; html += '</table></form>'; setContent(html); } function submitCreateDomain() { var optEl = document.getElementById("cd_options"); var obj = { domainname: document.getElementById("cd_name").value, domainstorage: parseInt(document.getElementById("cd_storage").value), domainoptions: document.getElementById("cd_options").value domainoptions: optEl ? optEl.value : "" }; ajaxPost("/settings/" + currentDomain + "/api/createdomain", obj, function(err, data) { if (err) { showError(err); return; } Loading
src/admin.cpp +4 −0 Changes for src/admin.cpp: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -557,6 +557,10 @@ namespace authdb { json_object_object_add(jobj, "sessiondomain", json_object_new_string(sessionDid.c_str())); } // Expose backend type so frontend can restrict domain storage options // 0 = File, 2 = ClusterStore json_object_object_add(jobj, "backendtype", json_object_new_int(_AdminBackend.getType())); sendJson(curreq, jobj); json_object_put(jobj); } Loading
src/backend.h +1 −0 Changes for src/backend.h: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ namespace authdb{ void read(char unsigned *src,size_t srcsize); const std::string &getDomain() const { return _Domain; } int getType() const { return _Type; } private: int _Type; Loading