From 87379e35840e1feb1e51d3c480f8f8627adfed89 Mon Sep 17 00:00:00 2001 From: Dominic Bosch Date: Sun, 20 Apr 2014 15:06:36 +0200 Subject: [PATCH] interval calculation and info update --- coffee/components-manager.coffee | 6 ++++-- js/components-manager.js | 4 ++-- webpages/handlers/coffee/forge_rule.coffee | 13 ++++++++++--- webpages/handlers/js/forge_rule.js | 17 +++++++++++++---- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/coffee/components-manager.coffee b/coffee/components-manager.coffee index f6817a6..b3e4867 100644 --- a/coffee/components-manager.coffee +++ b/coffee/components-manager.coffee @@ -62,7 +62,8 @@ exports.addRuleListener = ( eh ) => try oRule = JSON.parse strRule db.resetLog userName, oRule.id - db.appendLog userName, oRule.id, "INIT", "Rule '#{ oRule.id }' initialized" + db.appendLog userName, oRule.id, "INIT", "Rule '#{ oRule.id }' initialized. + Interval set to #{ oRule.event_interval } minutes" eventEmitter.emit 'rule', event: 'init' @@ -248,7 +249,8 @@ storeRule = ( user, oPayload, callback ) => # Initialize the rule log db.resetLog user.username, rule.id - db.appendLog user.username, rule.id, "INIT", "Rule '#{ rule.id }' initialized" + db.appendLog user.username, rule.id, "INIT", + "Rule '#{ rule.id }' initialized. Interval set to #{ rule.event_interval } minutes" # Inform everbody about the new rule eventEmitter.emit 'rule', diff --git a/js/components-manager.js b/js/components-manager.js index 0686ff7..e076caf 100644 --- a/js/components-manager.js +++ b/js/components-manager.js @@ -67,7 +67,7 @@ Components Manager try { oRule = JSON.parse(strRule); db.resetLog(userName, oRule.id); - db.appendLog(userName, oRule.id, "INIT", "Rule '" + oRule.id + "' initialized"); + db.appendLog(userName, oRule.id, "INIT", "Rule '" + oRule.id + "' initialized. Interval set to " + oRule.event_interval + " minutes"); return eventEmitter.emit('rule', { event: 'init', user: userName, @@ -339,7 +339,7 @@ Components Manager 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"); + db.appendLog(user.username, rule.id, "INIT", "Rule '" + rule.id + "' initialized. Interval set to " + rule.event_interval + " minutes"); eventEmitter.emit('rule', { event: 'new', user: user.username, diff --git a/webpages/handlers/coffee/forge_rule.coffee b/webpages/handlers/coffee/forge_rule.coffee index 2d94b31..31f58c2 100644 --- a/webpages/handlers/coffee/forge_rule.coffee +++ b/webpages/handlers/coffee/forge_rule.coffee @@ -368,20 +368,26 @@ fOnLoad = () -> fParseTime = ( str, hasDay ) -> arrTime = str.split ':' # If there's only one entry, this is the amount of minutes + if hasDay + def = 0 + else + def = 10 if arrTime.length is 1 - time = parseInt( str ) || 10 + time = parseInt( str ) || def if hasDay time * 60 else time else h = parseInt( arrTime[ 0 ] ) || 0 - h * 60 + ( parseInt( arrTime[ 1 ] ) || 10 ) + if h > 0 + def = 0 + h * 60 + ( parseInt( arrTime[ 1 ] ) || def ) txtInterval = $( '#event_interval' ).val() if not txtInterval - mins = 1 + mins = 10 else arrInp = txtInterval.split ' ' # There's only one string entered, either day or hour @@ -394,6 +400,7 @@ fOnLoad = () -> # We have to limit this to 24 days because setTimeout only takes integer values # until we implement a scheduler that deals with larger intervals mins = Math.min mins, 35700 + mins = Math.max 1, mins fCheckOverwrite = ( obj ) -> ( err ) -> if err.status is 409 diff --git a/webpages/handlers/js/forge_rule.js b/webpages/handlers/js/forge_rule.js index fdf0154..17798eb 100644 --- a/webpages/handlers/js/forge_rule.js +++ b/webpages/handlers/js/forge_rule.js @@ -485,10 +485,15 @@ throw new Error("Conditions Invalid! Needs to be an Array of Strings!"); } fParseTime = function(str, hasDay) { - var arrTime, h, time; + var arrTime, def, h, time; arrTime = str.split(':'); + if (hasDay) { + def = 0; + } else { + def = 10; + } if (arrTime.length === 1) { - time = parseInt(str) || 10; + time = parseInt(str) || def; if (hasDay) { return time * 60; } else { @@ -496,12 +501,15 @@ } } else { h = parseInt(arrTime[0]) || 0; - return h * 60 + (parseInt(arrTime[1]) || 10); + if (h > 0) { + def = 0; + } + return h * 60 + (parseInt(arrTime[1]) || def); } }; txtInterval = $('#event_interval').val(); if (!txtInterval) { - mins = 1; + mins = 10; } else { arrInp = txtInterval.split(' '); if (arrInp.length === 1) { @@ -512,6 +520,7 @@ } } mins = Math.min(mins, 35700); + mins = Math.max(1, mins); fCheckOverwrite = function(obj) { return function(err) { var payl;