From 8ec247e6844da627f05da213d5efecd0e88bdf84 Mon Sep 17 00:00:00 2001 From: Durgesh1988 Date: Wed, 8 Feb 2017 18:29:46 +0530 Subject: [PATCH] Implement Saved Time per bots and remove decimal saved time --- .../sections/dashboard/bots/bots.scss | 6 +- .../dashboard/bots/controller/libraryCtrl.js | 2 +- .../sections/dashboard/bots/tabs/param.html | 2 +- server/app/cronjobs/task-sync/taskSync.js | 76 ++++++++++++++++++- server/app/model/bots/1.0/bots.js | 10 ++- server/app/services/botsService.js | 61 ++------------- 6 files changed, 96 insertions(+), 61 deletions(-) diff --git a/client/cat3/src/partials/sections/dashboard/bots/bots.scss b/client/cat3/src/partials/sections/dashboard/bots/bots.scss index 72fe60c95..688370f1e 100644 --- a/client/cat3/src/partials/sections/dashboard/bots/bots.scss +++ b/client/cat3/src/partials/sections/dashboard/bots/bots.scss @@ -48,9 +48,6 @@ margin-top: 6px; } -.margintop20 { - margin-top: -20px; -} .boxWidth { width:17%!important; @@ -731,6 +728,9 @@ body .botDescriptionPage { .firefoxForm { margin-top: -20px; } + .margintop20 { + margin-top: -20px; + } } diff --git a/client/cat3/src/partials/sections/dashboard/bots/controller/libraryCtrl.js b/client/cat3/src/partials/sections/dashboard/bots/controller/libraryCtrl.js index 2404e8069..c9212cc2b 100644 --- a/client/cat3/src/partials/sections/dashboard/bots/controller/libraryCtrl.js +++ b/client/cat3/src/partials/sections/dashboard/bots/controller/libraryCtrl.js @@ -49,7 +49,7 @@ //{ name: 'BOT Created From',displayName: 'BOT Created From',field:'botLinkedCategory',cellTooltip: true}, { name: 'Organization',field:'masterDetails.orgName',cellTooltip: true}, { name: 'Last Run',field:'lastRunTime ',cellTemplate:'{{row.entity.lastRunTime | timestampToLocaleTime}}', cellTooltip: true}, - { name: 'Saved Time(Mins)',field:'savedTime', cellTooltip: true}, + { name: 'Saved Time',field:'savedTime', cellTemplate:'{{row.entity.savedTime.hours ? row.entity.savedTime.hours : 0}}h {{row.entity.savedTime.minutes ? row.entity.savedTime.minutes : 0}}m', cellTooltip: true}, { name: 'Total Runs',field:'executionCount'}, { name: 'BOT Action',width:200,displayName: 'BOT Action',cellTemplate: ''+ diff --git a/client/cat3/src/partials/sections/dashboard/bots/tabs/param.html b/client/cat3/src/partials/sections/dashboard/bots/tabs/param.html index c41641298..bebd7eb44 100644 --- a/client/cat3/src/partials/sections/dashboard/bots/tabs/param.html +++ b/client/cat3/src/partials/sections/dashboard/bots/tabs/param.html @@ -88,7 +88,7 @@ Runlist - {{botInfo.botConfig.runlist}} + {{botInfo.botConfig.runlist.join(",")}} diff --git a/server/app/cronjobs/task-sync/taskSync.js b/server/app/cronjobs/task-sync/taskSync.js index 098ef79d9..c31c2d3fe 100644 --- a/server/app/cronjobs/task-sync/taskSync.js +++ b/server/app/cronjobs/task-sync/taskSync.js @@ -4,8 +4,9 @@ var CatalystCronJob = require('_pr/cronjobs/CatalystCronJob'); var async = require('async'); var auditTrail = require('_pr/model/audit-trail/audit-trail.js'); var taskHistory = require('_pr/model/classes/tasks/taskHistory.js'); +var botsDao = require('_pr/model/bots/1.0/bots.js'); var TaskSync = Object.create(CatalystCronJob); -TaskSync.interval = '*/5 * * * *'; +TaskSync.interval = '*/2 * * * *'; TaskSync.execute = taskSync; module.exports = TaskSync; @@ -26,6 +27,9 @@ function taskSync(){ status:'running' }; executeTaskSyncForTaskHistory(query,callback); + }, + savedTimeSync : function(callback){ + addSavedTimePerBots(callback); } },function(err,results){ @@ -153,4 +157,74 @@ function getMinutesDiff(date1,date2){ return Math.abs(Math.round(diff)); } +function getExecutionTime(endTime, startTime) { + var executionTimeInMS = endTime - startTime; + var totalSeconds = Math.floor(executionTimeInMS / 1000); + return totalSeconds; +} + +function addSavedTimePerBots(callback) { + var query = { + isDeleted:false + } + botsDao.getAllBots(query,function(err,botList){ + if(err){ + callback(err,null); + return; + }else if(botList.length > 0){ + var count = 0; + for(var i = 0; i 0) { + var totalTimeInSeconds = 0; + for (var m = 0; m < botAuditTrail.length; m++) { + if (botAuditTrail[m].endedOn && botAuditTrail[m].endedOn !== null + && botAuditTrail[m].auditTrailConfig.manualExecutionTime && botAuditTrail[m].auditTrailConfig.manualExecutionTime !== null) { + var executionTime = getExecutionTime(botAuditTrail[m].endedOn, botAuditTrail[m].startedOn); + totalTimeInSeconds = totalTimeInSeconds + ((botAuditTrail[m].auditTrailConfig.manualExecutionTime * 60) - executionTime); + } + } + var totalTimeInMinutes = Math.round(totalTimeInSeconds/60); + var result = { + hours:Math.floor(totalTimeInMinutes / 60), + minutes:totalTimeInMinutes % 60 + } + botsDao.updateBotsDetail(bots.botId,{savedTime:result},function(err,data){ + if(err){ + logger.error(err); + } + count++; + if(count === botList.length){ + callback(null,botList); + return; + } + }) + } else { + count++; + if(count === botList.length){ + callback(null,botList); + return; + } + } + }); + })(botList[i]); + } + }else{ + logger.debug("There is no BOTs for Saved Time Implementation."); + callback(null,botList); + } + }) +} + diff --git a/server/app/model/bots/1.0/bots.js b/server/app/model/bots/1.0/bots.js index ae8078436..e43e7af3c 100644 --- a/server/app/model/bots/1.0/bots.js +++ b/server/app/model/bots/1.0/bots.js @@ -47,8 +47,14 @@ var BotsSchema = new Schema ({ required: true }, savedTime: { - type: Number, - default:0 + hours:{ + type: Number, + default:0 + }, + minutes:{ + type: Number, + default:0 + } }, botConfig:Schema.Types.Mixed, runTimeParams:Schema.Types.Mixed, diff --git a/server/app/services/botsService.js b/server/app/services/botsService.js index 64a5a30c6..bd90062ef 100644 --- a/server/app/services/botsService.js +++ b/server/app/services/botsService.js @@ -511,32 +511,20 @@ function filterScriptBotsData(data,callback){ })(bots.botConfig.scriptDetails[j]); } if (scriptCount === bots.botConfig.scriptDetails.length) { - addSavedTimePerBots(bots.botId,function(err,savedTime) { - if (err) { - logger.error("Error in fetching Saved Time per bots ", err); - } - bots.savedTime = savedTime; - botsList.push(bots); - if (botsList.length === data.docs.length) { - data.docs = botsList; - callback(null, data); - return; - } - }); - } - } else { - addSavedTimePerBots(bots.botId,function(err,savedTime) { - if (err) { - logger.error("Error in fetching Saved Time per bots ", err); - } - bots.savedTime = savedTime; botsList.push(bots); if (botsList.length === data.docs.length) { data.docs = botsList; callback(null, data); return; } - }); + } + } else { + botsList.push(bots); + if (botsList.length === data.docs.length) { + data.docs = botsList; + callback(null, data); + return; + } } })(data.docs[i]); } @@ -559,39 +547,6 @@ function encryptedParam(paramDetails, callback) { return; } -function getExecutionTime(endTime, startTime) { - var executionTimeInMS = endTime - startTime; - var totalSeconds = Math.floor(executionTimeInMS / 1000); - return totalSeconds; -} - -function addSavedTimePerBots(botId, callback) { - var query = { - auditType: 'BOTs', - actionStatus: 'success', - isDeleted: false, - auditId: botId - }; - auditTrail.getAuditTrails(query, function (err, botAuditTrail) { - if (err) { - logger.error("Error in Fetching Audit Trail.", err); - callback(err, null); - } - if (botAuditTrail.length > 0) { - var totalTimeInSeconds = 0; - for (var m = 0; m < botAuditTrail.length; m++) { - if (botAuditTrail[m].endedOn && botAuditTrail[m].endedOn !== null - && botAuditTrail[m].auditTrailConfig.manualExecutionTime && botAuditTrail[m].auditTrailConfig.manualExecutionTime !== null) { - var executionTime = getExecutionTime(botAuditTrail[m].endedOn, botAuditTrail[m].startedOn); - totalTimeInSeconds = totalTimeInSeconds + ((botAuditTrail[m].auditTrailConfig.manualExecutionTime * 60) - executionTime); - } - } - callback(null, (totalTimeInSeconds / 60).toFixed(2)); - } else { - callback(null, 0); - } - }); -}