getting to object modeled forms

This commit is contained in:
Dominic Bosch 2013-12-11 12:49:36 +01:00
parent 8aa6d1245a
commit 55ea70348c
2 changed files with 46 additions and 29 deletions

View file

@ -62,7 +62,8 @@ exports.getAllActionModules = function ( objUser, obj, answHandler ) {
}; };
exports.storeRule = function (objUser, obj, answHandler) { exports.storeRule = function (objUser, obj, answHandler) {
var cbEventModule = function (lst) { //TODO fix, twice same logic
var cbEventModule = function (lstParams) {
return function(err, data) { return function(err, data) {
if(err) { if(err) {
err.addInfo = 'fetching event module'; err.addInfo = 'fetching event module';
@ -70,10 +71,10 @@ exports.storeRule = function (objUser, obj, answHandler) {
} }
if(!err && data) { if(!err && data) {
if(data.params) { if(data.params) {
lst.eventmodule = data.params; lstParams.eventmodules[data.id] = data.params;
} }
} }
if(--semaphore === 0) answHandler.answerSuccess(lst); if(--semaphore === 0) answHandler.answerSuccess(lstParams);
}; };
}; };
var cbActionModule = function (lstParams) { var cbActionModule = function (lstParams) {
@ -93,7 +94,7 @@ exports.storeRule = function (objUser, obj, answHandler) {
var semaphore = 1; var semaphore = 1;
var lst = { var lst = {
eventmodule: null, eventmodules: {},
actionmodules: {} actionmodules: {}
}; };
try { try {

View file

@ -25,28 +25,38 @@
<div id="mainbody"> <div id="mainbody">
<div id="pagetitle">Hi {{user.username}}, forge your own rules!</div> <div id="pagetitle">Hi {{user.username}}, forge your own rules!</div>
<p> <p>
<div id="div_left"> <form id="form_rule">
<input type="hidden" id="command" value="store_rule" /> <div id="div_left">
<textarea id="textarea_rule" rows="20" cols="60"> </textarea> <input type="hidden" id="command" value="store_rule" />
<p id="required_params"> <textarea id="textarea_rule" rows="20" cols="60"> </textarea>
<p id="required_params">
</p> </p>
<p> <p>
<button id="but_submit">save</button> <button id="but_submit">save</button>
</p> </p>
</div> </div>
<div id="div_middle"> <div id="div_middle">
<p><b>Available Event Modules:</b></p> <p><b>Available Event Modules:</b></p>
<ul> </ul> <ul> </ul>
</div> </div>
<div id="div_right"> <div id="div_right">
<p><b>Available Action Modules:</b></p> <p><b>Available Action Modules:</b></p>
<ul> </ul> <ul> </ul>
</div> </div>
</form>
</p> </p>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$( "#form_rule" ).submit(function( event ) {
var arrInputs = $( "#form_rule .inp_param" );
console.log(arrInputs);
for( var i = 0; i < arrInputs.length; i++) {
console.log(arrInputs[i]);
}
event.preventDefault();
});
$('#but_submit').click(function() { $('#but_submit').click(function() {
// var req_fields = // var req_fields =
var obj = { var obj = {
@ -60,19 +70,24 @@
if(data.success) { if(data.success) {
alert(data.info); alert(data.info);
} else { } else {
if(data.eventmodule) { // TODO fix, same logic twice
var oEM = JSON.parse(data.eventmodule); console.log(data.actionmodules);
$('#required_params').append($('<p>').html($('<b>Required Event Module Parameters</b>'))); console.log(data.eventmodules);
for(var el in oEM){ for(var el in data.eventmodules) {
var inp = '<b>' + el + ': </b><input type="password" id="em_'+oEM[el]+'" />('+oEM[el].description+')'; var oEM = JSON.parse(data.eventmodules[el]);
console.log(oEM);
$('#required_params').append($('<p>').html($('<b>Event Module "'+el+'" requires parameters:</b>')));
for(var eel in oEM){
var inp = '<b>' + eel + ': </b><input type="password" id="em_'+el+'_'+eel+'" class="inp_param" />('+oEM[eel].description+')';
$('#required_params').append($('<p>').html(inp)); $('#required_params').append($('<p>').html(inp));
} }
} }
for(var el in data.actionmodules) { for(var el in data.actionmodules) {
$('#required_params').append($('<p>').html($('<b>Required Action Module "'+el+'" Parameters</b>'))); $('#required_params').append($('<p>').html($('<b>Action Module "'+el+'" requires parameters:</b>')));
var oAM = JSON.parse(data.actionmodules[el]); var oAM = JSON.parse(data.actionmodules[el]);
console.log(oAM);
for(var ael in oAM){ for(var ael in oAM){
var inp = '<b>' + ael + ': </b><input type="password" id="am_'+ael+'_'+oAM[ael]+'" />('+oAM[ael].description+')'; var inp = '<b>' + ael + ': </b><input type="password" id="am_'+el+'_'+ael+'" class="inp_param" />('+oAM[ael].description+')';
$('#required_params').append($('<p>').html(inp)); $('#required_params').append($('<p>').html(inp));
} }
} }
@ -83,6 +98,7 @@
alert('Posting of rule failed: ' + err.responseText); alert('Posting of rule failed: ' + err.responseText);
}); });
}); });
// TODO fix, same logic twice
$.post('/usercommand', { command: 'get_eventmodules' }) $.post('/usercommand', { command: 'get_eventmodules' })
.done(function(data) { .done(function(data) {
for(var mod in data) { for(var mod in data) {