diff --git a/coffee/components-manager.coffee b/coffee/components-manager.coffee
index c7185d9..f6817a6 100644
--- a/coffee/components-manager.coffee
+++ b/coffee/components-manager.coffee
@@ -240,11 +240,11 @@ storeRule = ( user, oPayload, callback ) =>
oParams = oPayload.action_params
for id, params of oParams
db.actionInvokers.storeUserParams id, user.username, JSON.stringify params
- oParams = oPayload.action_functions
+ oFuncArgs = oPayload.action_functions
# if action function arguments were send, store them
- for id, params of oParams
+ for id, args of oFuncArgs
arr = id.split ' -> '
- db.actionInvokers.storeUserArguments user.username, rule.id, arr[ 0 ], arr[ 1 ], JSON.stringify params
+ db.actionInvokers.storeUserArguments user.username, rule.id, arr[ 0 ], arr[ 1 ], JSON.stringify args
# Initialize the rule log
db.resetLog user.username, rule.id
diff --git a/coffee/dynamic-modules.coffee b/coffee/dynamic-modules.coffee
index 23fbce3..290a266 100644
--- a/coffee/dynamic-modules.coffee
+++ b/coffee/dynamic-modules.coffee
@@ -141,15 +141,17 @@ fTryToLoadModule = ( userId, ruleId, modId, src, dbMod, params, cb ) =>
if dbMod
oFuncArgs = {}
- for func of oFuncParams
- dbMod.getUserArguments userId, ruleId, modId, func, ( err, obj ) =>
+ fRegisterArguments = ( fName ) =>
+ ( err, obj ) =>
if obj
try
- oFuncArgs[ func ] = JSON.parse encryption.decrypt obj
- @log.info "DM | Found and attached user-specific arguments to #{ userId }, #{ ruleId }, #{ modId }"
+ oFuncArgs[ fName ] = JSON.parse obj
+ @log.info "DM | Found and attached user-specific arguments to #{ userId }, #{ ruleId }, #{ modId }: #{ obj }"
catch err
@log.warn "DM | Error during parsing of user-specific arguments for #{ userId }, #{ ruleId }, #{ modId }"
@log.warn err
+ for func of oFuncParams
+ dbMod.getUserArguments userId, ruleId, modId, func, fRegisterArguments func
cb
answ: answ
module: sandbox.exports
diff --git a/coffee/engine.coffee b/coffee/engine.coffee
index 288d4a8..9342284 100644
--- a/coffee/engine.coffee
+++ b/coffee/engine.coffee
@@ -160,7 +160,7 @@ updateActionModules = ( updatedRuleId ) =>
else
@log.error "EN | Compilation of code failed! #{ userName },
#{ oMyRule.rule.id }, #{ moduleName }: #{ result.answ.message }"
- oMyRule.actions[moduleName] = result.module
+ oMyRule.actions[moduleName] = result
else
@log.warn "EN | #{ moduleName } not found for #{ oMyRule.rule.id }!"
@@ -209,7 +209,16 @@ processEvent = ( evt ) =>
try
numExecutingFunctions++
@log.info "EN | #{ funcName } executes..."
- node[funcName] evt.payload
+ arrArgs = []
+ if node.funcArgs[ funcName ]
+ for oArg in node.funcArgs[ funcName ]
+ if oArg.jsselector
+ arrArgs.push jsonQuery( evt.payload, oArg.value ).nodes()[ 0 ]
+ else
+ arrArgs.push oArg.value
+ else
+ @log.warn "EN | Weird! arguments not loaded for function '#{ funcName }'!"
+ node.module[ funcName ].apply null, arrArgs
@log.info "EN | #{ funcName } finished execution"
catch err
@log.info "EN | ERROR IN ACTION INVOKER: " + err.message
diff --git a/coffee/event-poller.coffee b/coffee/event-poller.coffee
index 32b98df..00cd60c 100644
--- a/coffee/event-poller.coffee
+++ b/coffee/event-poller.coffee
@@ -93,33 +93,40 @@ fLoadModule = ( msg ) ->
if not listUserModules[msg.user]
listUserModules[msg.user] = {}
- iv = msg.rule.event_interval * 60 * 1000
+ ts = new Date()
# We open up a new object for the rule it
listUserModules[msg.user][msg.rule.id] =
id: msg.rule.event
pollfunc: arrName[1]
- event_interval: iv
+ event_interval: msg.rule.event_interval * 60 * 1000
module: result.module
logger: result.logger
+ timestamp: ts
log.info "EP | New event module '#{ arrName[0] }' loaded for user #{ msg.user },
- in rule #{ msg.rule.id }, polling every #{ msg.rule.event_interval } minutes"
- setTimeout fCheckAndRun( msg.user, msg.rule.id ), iv
+ in rule #{ msg.rule.id }, starting at #{ ts.toISOString() }
+ and polling every #{ msg.rule.event_interval } minutes"
+ fCheckAndRun( msg.user, msg.rule.id, ts )()
if msg.event is 'new' or
not listUserModules[msg.user] or
not listUserModules[msg.user][msg.rule.id]
fAnonymous()
-fCheckAndRun = ( userId, ruleId ) ->
+fCheckAndRun = ( userId, ruleId, timestamp ) ->
() ->
log.info "EP | Check and run user #{ userId }, rule #{ ruleId }"
if isRunning and
listUserModules[userId] and
listUserModules[userId][ruleId]
- oRule = listUserModules[userId][ruleId]
- fCallFunction userId, ruleId, oRule
- setTimeout fCheckAndRun( userId, ruleId ), oRule.event_interval
+ # If there was a rule update we only continue the latest setTimeout execution
+ if listUserModules[userId][ruleId].timestamp is timestamp
+ oRule = listUserModules[userId][ruleId]
+ fCallFunction userId, ruleId, oRule
+ setTimeout fCheckAndRun( userId, ruleId, timestamp ), oRule.event_interval
+ else
+ log.info "EP | We found a newer polling interval and discontinue this one which
+ was created at #{ timestamp.toISOString() }"
# We have to register the poll function in belows anonymous function
# because we're fast iterating through the listUserModules and references will
@@ -129,7 +136,7 @@ fCallFunction = ( userId, ruleId, oRule ) ->
oRule.module[oRule.pollfunc] ( obj ) ->
db.pushEvent
event: oRule.id
- eventid: "polled #{ oRule.id } #{ userId }_#{ ( new Date ).toISOString() }"
+ eventid: "polled #{ oRule.id } #{ userId }_#{ ( new Date() ).toISOString() }"
payload: obj
catch err
log.info "EP | ERROR in module when polled: #{ oRule.id } #{ userId }: #{err.message}"
diff --git a/coffee/http-listener.coffee b/coffee/http-listener.coffee
index 4cd5933..45bff7e 100644
--- a/coffee/http-listener.coffee
+++ b/coffee/http-listener.coffee
@@ -43,7 +43,7 @@ exports = module.exports = ( args ) =>
indexEvent = ( event, body, resp ) ->
try
obj = JSON.parse body
- timestamp = ( new Date ).toISOString()
+ timestamp = ( new Date() ).toISOString()
rand = ( Math.floor Math.random() * 10e9 ).toString( 16 ).toUpperCase()
obj.event = event
obj.eventid = "#{ obj.event }_#{ timestamp }_#{ rand }"
diff --git a/coffee/persistence.coffee b/coffee/persistence.coffee
index 2d0e36b..defd3c3 100644
--- a/coffee/persistence.coffee
+++ b/coffee/persistence.coffee
@@ -349,8 +349,6 @@ class IndexedModules
@log.info "DB | (IdxedMods) #{ @setname }.getAllModuleUserArguments( #{ userId }, #{ ruleId }, #{ mId } )"
@db.smembers "#{ @setname }:#{ userId }:#{ ruleId }:#{ mId }:functions", ( err, obj ) =>
sem = obj.length
- console.log 'getAllModuleUserArguments'
- console.log obj
oAnswer = {}
for func in obj
fRegisterFunction = ( func ) =>
@@ -388,7 +386,7 @@ Appends a log entry.
###
exports.appendLog = ( userId, ruleId, moduleId, message ) =>
@db.append "#{ userId }:#{ ruleId }:log",
- "[#{ ( new Date ).toISOString() }] {#{ moduleId }} #{ message }\n"
+ "[#{ ( new Date() ).toISOString() }] {#{ moduleId }} #{ message }\n"
###
Retrieves a log entry.
diff --git a/coffee/request-handler.coffee b/coffee/request-handler.coffee
index 5f3d373..545a04d 100644
--- a/coffee/request-handler.coffee
+++ b/coffee/request-handler.coffee
@@ -77,7 +77,7 @@ exports.handleEvent = ( req, resp ) ->
resp.send 400, 'Badly formed event!'
# If required event properties are present we process the event #
if obj and obj.event and not err
- timestamp = ( new Date ).toISOString()
+ timestamp = ( new Date() ).toISOString()
rand = ( Math.floor Math.random() * 10e9 ).toString( 16 ).toUpperCase()
obj.eventid = "#{ obj.event }_#{ timestamp }_#{ rand }"
answ =
diff --git a/examples/action-invokers/aiThree.coffee b/examples/action-invokers/aiThree.coffee
deleted file mode 100644
index d17bc8c..0000000
--- a/examples/action-invokers/aiThree.coffee
+++ /dev/null
@@ -1,2 +0,0 @@
-exports.printUserParamToLog = ( evt ) ->
- log params.password
\ No newline at end of file
diff --git a/examples/event-pollers/importio.coffee b/examples/event-pollers/importio.coffee
new file mode 100644
index 0000000..4626335
--- /dev/null
+++ b/examples/event-pollers/importio.coffee
@@ -0,0 +1,31 @@
+###
+Import.io allows to capture data from the web
+required module params:
+
+- apikey
+- queryGuid
+###
+
+params.apikey = "Cc8AX35d4B89ozzmn5bpm7k70HRon5rrfUxZvOwkVRj31/oBGHzVfQSRp5mEvlOgxyh7xi+tFSL66iAFo1W/sQ=="
+params.userGuid = "d19f0d08-bf73-4115-90a8-ac045ad4f225"
+params.queryGuid = "caff10dc-3bf8-402e-b1b8-c799a77c3e8c"
+
+exports.queryData = ( pushEvent ) ->
+ debug params.apikey
+ debug params.queryGuid
+ debug params.userGuid
+ io = new importio params.userGuid, params.apikey, "query.import.io"
+
+ io.connect ( connected ) ->
+ if not connected
+ log "ERROR: Unable to connect"
+ else
+ log "Connected!"
+ data = []
+ io.query "input": "input": "query", "connectorGuids": [ params.queryGuid ], ( finished, msg ) ->
+ if msg.type is "MESSAGE"
+ log "Adding #{ msg.data.results.length } results"
+ data = data.concat msg.data.results
+ if finished
+ log "Done"
+ log JSON.stringify data
diff --git a/js/components-manager.js b/js/components-manager.js
index 544908e..0686ff7 100644
--- a/js/components-manager.js
+++ b/js/components-manager.js
@@ -311,7 +311,7 @@ Components Manager
storeRule = (function(_this) {
return function(user, oPayload, callback) {
- var arr, epModId, id, oParams, params, rule, strRule;
+ var args, arr, epModId, id, oFuncArgs, oParams, params, rule, strRule;
rule = {
id: oPayload.id,
event: oPayload.event,
@@ -332,11 +332,11 @@ Components Manager
params = oParams[id];
db.actionInvokers.storeUserParams(id, user.username, JSON.stringify(params));
}
- oParams = oPayload.action_functions;
- for (id in oParams) {
- params = oParams[id];
+ oFuncArgs = oPayload.action_functions;
+ for (id in oFuncArgs) {
+ args = oFuncArgs[id];
arr = id.split(' -> ');
- db.actionInvokers.storeUserArguments(user.username, rule.id, arr[0], arr[1], JSON.stringify(params));
+ db.actionInvokers.storeUserArguments(user.username, rule.id, arr[0], arr[1], JSON.stringify(args));
}
db.resetLog(user.username, rule.id);
db.appendLog(user.username, rule.id, "INIT", "Rule '" + rule.id + "' initialized");
diff --git a/js/dynamic-modules.js b/js/dynamic-modules.js
index 264ec10..79cf400 100644
--- a/js/dynamic-modules.js
+++ b/js/dynamic-modules.js
@@ -120,7 +120,7 @@ Dynamic Modules
fTryToLoadModule = (function(_this) {
return function(userId, ruleId, modId, src, dbMod, params, cb) {
- var answ, err, fName, func, logFunc, msg, oFuncArgs, oFuncParams, sandbox, _ref;
+ var answ, err, fName, fRegisterArguments, func, logFunc, msg, oFuncArgs, oFuncParams, sandbox, _ref;
if (!params) {
params = {};
}
@@ -162,19 +162,22 @@ Dynamic Modules
}
if (dbMod) {
oFuncArgs = {};
- for (func in oFuncParams) {
- dbMod.getUserArguments(userId, ruleId, modId, func, function(err, obj) {
+ fRegisterArguments = function(fName) {
+ return function(err, obj) {
if (obj) {
try {
- oFuncArgs[func] = JSON.parse(encryption.decrypt(obj));
- return _this.log.info("DM | Found and attached user-specific arguments to " + userId + ", " + ruleId + ", " + modId);
+ oFuncArgs[fName] = JSON.parse(obj);
+ return _this.log.info("DM | Found and attached user-specific arguments to " + userId + ", " + ruleId + ", " + modId + ": " + obj);
} catch (_error) {
err = _error;
_this.log.warn("DM | Error during parsing of user-specific arguments for " + userId + ", " + ruleId + ", " + modId);
return _this.log.warn(err);
}
}
- });
+ };
+ };
+ for (func in oFuncParams) {
+ dbMod.getUserArguments(userId, ruleId, modId, func, fRegisterArguments(func));
}
}
return cb({
diff --git a/js/engine.js b/js/engine.js
index ecbb94f..4366ed1 100644
--- a/js/engine.js
+++ b/js/engine.js
@@ -172,7 +172,7 @@ Engine
} else {
_this.log.error("EN | Compilation of code failed! " + userName + ", " + oMyRule.rule.id + ", " + moduleName + ": " + result.answ.message);
}
- return oMyRule.actions[moduleName] = result.module;
+ return oMyRule.actions[moduleName] = result;
});
} else {
return _this.log.warn("EN | " + moduleName + " not found for " + oMyRule.rule.id + "!");
@@ -253,7 +253,7 @@ Engine
return function(evt) {
var action, arr, fSearchAndInvokeAction, oMyRule, oUser, ruleName, userName, _results;
fSearchAndInvokeAction = function(node, arrPath, funcName, evt, depth) {
- var err;
+ var arrArgs, err, oArg, _i, _len, _ref;
if (!node) {
_this.log.error("EN | Didn't find property in user rule list: " + arrPath.join(', ') + " at depth " + depth);
return;
@@ -262,7 +262,21 @@ Engine
try {
numExecutingFunctions++;
_this.log.info("EN | " + funcName + " executes...");
- node[funcName](evt.payload);
+ arrArgs = [];
+ if (node.funcArgs[funcName]) {
+ _ref = node.funcArgs[funcName];
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ oArg = _ref[_i];
+ if (oArg.jsselector) {
+ arrArgs.push(jsonQuery(evt.payload, oArg.value).nodes()[0]);
+ } else {
+ arrArgs.push(oArg.value);
+ }
+ }
+ } else {
+ _this.log.warn("EN | Weird! arguments not loaded for function '" + funcName + "'!");
+ }
+ node.module[funcName].apply(null, arrArgs);
_this.log.info("EN | " + funcName + " finished execution");
} catch (_error) {
err = _error;
diff --git a/js/event-poller.js b/js/event-poller.js
index eb36613..5aef363 100644
--- a/js/event-poller.js
+++ b/js/event-poller.js
@@ -84,23 +84,24 @@ Dynamic Modules
return log.warn("EP | Strange... no module retrieved: " + arrName[0]);
} else {
return dynmod.compileString(obj.data, msg.user, msg.rule.id, arrName[0], obj.lang, db.eventPollers, function(result) {
- var iv;
+ var ts;
if (!result.answ === 200) {
log.error("EP | Compilation of code failed! " + msg.user + ", " + msg.rule.id + ", " + arrName[0]);
}
if (!listUserModules[msg.user]) {
listUserModules[msg.user] = {};
}
- iv = msg.rule.event_interval * 60 * 1000;
+ ts = new Date();
listUserModules[msg.user][msg.rule.id] = {
id: msg.rule.event,
pollfunc: arrName[1],
- event_interval: iv,
+ event_interval: msg.rule.event_interval * 60 * 1000,
module: result.module,
- logger: result.logger
+ logger: result.logger,
+ timestamp: ts
};
- log.info("EP | New event module '" + arrName[0] + "' loaded for user " + msg.user + ", in rule " + msg.rule.id + ", polling every " + msg.rule.event_interval + " minutes");
- return setTimeout(fCheckAndRun(msg.user, msg.rule.id), iv);
+ log.info("EP | New event module '" + arrName[0] + "' loaded for user " + msg.user + ", in rule " + msg.rule.id + ", starting at " + (ts.toISOString()) + " and polling every " + msg.rule.event_interval + " minutes");
+ return fCheckAndRun(msg.user, msg.rule.id, ts)();
});
}
});
@@ -110,14 +111,18 @@ Dynamic Modules
}
};
- fCheckAndRun = function(userId, ruleId) {
+ fCheckAndRun = function(userId, ruleId, timestamp) {
return function() {
var oRule;
log.info("EP | Check and run user " + userId + ", rule " + ruleId);
if (isRunning && listUserModules[userId] && listUserModules[userId][ruleId]) {
- oRule = listUserModules[userId][ruleId];
- fCallFunction(userId, ruleId, oRule);
- return setTimeout(fCheckAndRun(userId, ruleId), oRule.event_interval);
+ if (listUserModules[userId][ruleId].timestamp === timestamp) {
+ oRule = listUserModules[userId][ruleId];
+ fCallFunction(userId, ruleId, oRule);
+ return setTimeout(fCheckAndRun(userId, ruleId, timestamp), oRule.event_interval);
+ } else {
+ return log.info("EP | We found a newer polling interval and discontinue this one which was created at " + (timestamp.toISOString()));
+ }
}
};
};
@@ -128,7 +133,7 @@ Dynamic Modules
return oRule.module[oRule.pollfunc](function(obj) {
return db.pushEvent({
event: oRule.id,
- eventid: "polled " + oRule.id + " " + userId + "_" + ((new Date).toISOString()),
+ eventid: "polled " + oRule.id + " " + userId + "_" + ((new Date()).toISOString()),
payload: obj
});
});
diff --git a/js/http-listener.js b/js/http-listener.js
index 15690d2..3e5400d 100644
--- a/js/http-listener.js
+++ b/js/http-listener.js
@@ -46,7 +46,7 @@ HTTP Listener
var err, obj, rand, timestamp;
try {
obj = JSON.parse(body);
- timestamp = (new Date).toISOString();
+ timestamp = (new Date()).toISOString();
rand = (Math.floor(Math.random() * 10e9)).toString(16).toUpperCase();
obj.event = event;
obj.eventid = "" + obj.event + "_" + timestamp + "_" + rand;
diff --git a/js/persistence.js b/js/persistence.js
index b618715..718cfa2 100644
--- a/js/persistence.js
+++ b/js/persistence.js
@@ -445,8 +445,6 @@ Persistence
return function(err, obj) {
var fRegisterFunction, func, oAnswer, sem, _i, _len, _results;
sem = obj.length;
- console.log('getAllModuleUserArguments');
- console.log(obj);
oAnswer = {};
_results = [];
for (_i = 0, _len = obj.length; _i < _len; _i++) {
@@ -509,7 +507,7 @@ Persistence
exports.appendLog = (function(_this) {
return function(userId, ruleId, moduleId, message) {
- return _this.db.append("" + userId + ":" + ruleId + ":log", "[" + ((new Date).toISOString()) + "] {" + moduleId + "} " + message + "\n");
+ return _this.db.append("" + userId + ":" + ruleId + ":log", "[" + ((new Date()).toISOString()) + "] {" + moduleId + "} " + message + "\n");
};
})(this);
diff --git a/js/request-handler.js b/js/request-handler.js
index e73d07a..5762ffc 100644
--- a/js/request-handler.js
+++ b/js/request-handler.js
@@ -85,7 +85,7 @@ Request Handler
resp.send(400, 'Badly formed event!');
}
if (obj && obj.event && !err) {
- timestamp = (new Date).toISOString();
+ timestamp = (new Date()).toISOString();
rand = (Math.floor(Math.random() * 10e9)).toString(16).toUpperCase();
obj.eventid = "" + obj.event + "_" + timestamp + "_" + rand;
answ = {
diff --git a/testing/files/testObjects.json b/testing/files/testObjects.json
index 163ce7d..5bb808f 100644
--- a/testing/files/testObjects.json
+++ b/testing/files/testObjects.json
@@ -80,18 +80,30 @@
"ruleOne": {
"id": "ruleReal",
"event": "test_1",
+ "event_interval": 1,
"conditions": [".more:val(\"really nested\")"],
- "actions": ["aiOne -> printToLog"]
+ "actions": ["aiOne -> printToLog"],
+ "action_functions": {
+ "aiOne -> printToLog": [
+ {
+ "argument": "evt",
+ "value": "*",
+ "jsselector": true
+ }
+ ]
+ }
},
"ruleTwo": {
"id": "ruleRealTwo",
"event": "test_2",
+ "event_interval": 1,
"conditions": [],
"actions": ["aiTwo -> otherEvent"]
},
"ruleThree": {
"id": "ruleRealThree",
"event": "epOne -> newMail",
+ "event_interval": 1,
"conditions": [],
"actions": ["aiThree -> printUserParamToLog"]
}
diff --git a/testing/test_components-manager.coffee b/testing/test_components-manager.coffee
index 4880942..600973f 100644
--- a/testing/test_components-manager.coffee
+++ b/testing/test_components-manager.coffee
@@ -35,6 +35,9 @@ cm.addRuleListener engine.internalEvent
db = require path.join '..', 'js', 'persistence'
db opts
+encryption = require path.join '..', 'js', 'encryption'
+encryption opts
+
oUser = objects.users.userOne
oRuleOne = objects.rules.ruleOne
oRuleTwo = objects.rules.ruleTwo
@@ -196,10 +199,12 @@ exports.ruleForge =
db.actionInvokers.storeModule oUser.username, oAiThree
pw = 'This password should come out cleartext'
- userparams = JSON.stringify password: pw
- oEncrypted = cryptico.encrypt userparams, strPublicKey
+ oEncrypted = cryptico.encrypt pw, strPublicKey
+ userparams = JSON.stringify password:
+ shielded: false
+ value: oEncrypted.cipher
- db.actionInvokers.storeUserParams oAiThree.id, oUser.username, oEncrypted.cipher
+ db.actionInvokers.storeUserParams oAiThree.id, oUser.username, userparams
request =
command: 'forge_rule'
@@ -230,7 +235,7 @@ exports.ruleForge =
test.strictEqual 200, answ.code, "Deleting Rule returned #{ answ.code }: #{ answ.message }"
setTimeout test.done, 200
- setTimeout fWaitAgain, 200
+ setTimeout fWaitAgain, 500
setTimeout fWaitForPersistence, 200
diff --git a/webpages/handlers/coffee/forge_rule.coffee b/webpages/handlers/coffee/forge_rule.coffee
index 2d6a1bf..2d94b31 100644
--- a/webpages/handlers/coffee/forge_rule.coffee
+++ b/webpages/handlers/coffee/forge_rule.coffee
@@ -42,35 +42,7 @@ fOnLoad = () ->
editor.setShowPrintMargin false
# editor.session.setUseSoftTabs false
- # Fetch Event Poller user-specific parameters
- fFetchEventParams = ( name ) ->
- $( '#event_poller_params *' ).remove()
- if name
- arr = name.split ' -> '
- obj =
- command: 'get_event_poller_params'
- payload: JSON.stringify
- id: arr[ 0 ]
- $.post( '/usercommand', obj )
- .done ( data ) ->
- if data.message
- oParams = JSON.parse data.message
- $( '#event_poller_params' ).html '
Required Parameters:'
- table = $ '
| ' ).css 'width', '20px' - tr.append $( ' | ' ).attr( 'class', 'key' ).text name - inp = $( '' ) - if shielded - inp.attr( 'type', 'password' ) - tr.append $( ' | ' ).text( ' : ' ).append inp
- table.append tr
- fAppendParam name, shielded for name, shielded of oParams
- .fail fFailedRequest 'Error fetching event poller params'
-
- # Init Event Pollers
+# EVENT
$.post( '/usercommand', command: 'get_event_pollers' )
.done ( data ) ->
try
@@ -89,12 +61,13 @@ fOnLoad = () ->
.fail fFailedRequest 'Error fetching event poller'
$( '#select_event' ).change () ->
- if $( this ).val() is ''
+ evtFunc = $( this ).val()
+ if evtFunc is ''
$( '#input_interval' ).html ''
else
fPlaceAndPaintInterval()
- $( '#input_event' ).val $( this ).val()
- fFetchEventParams $( this ).val()
+ $( '#input_event' ).val evtFunc
+ fFetchEventParams evtFunc
$( '#input_event' ).change () ->
$( '#select_event' ).val ''
@@ -105,8 +78,54 @@ fOnLoad = () ->
else
fPlaceAndPaintInterval()
+ fFetchEventParams = ( name ) ->
+ $( '#event_poller_params *' ).remove()
+ if name
+ arr = name.split ' -> '
+ obj =
+ command: 'get_event_poller_params'
+ payload: JSON.stringify
+ id: arr[ 0 ]
+ $.post( '/usercommand', obj )
+ .done fAddEventParams arr[ 0 ]
+ .fail fFailedRequest 'Error fetching event poller params'
- # Init Action Invoker
+ fAddEventParams = ( id ) ->
+ ( data ) ->
+ if data.message
+ oParams = JSON.parse data.message
+ $( '#event_poller_params' ).html ' Required Parameters:' + table = $ '
|