From 0643e26f022b43cbd850a62ffbbcb8447fe62e14 Mon Sep 17 00:00:00 2001 From: darode Date: Tue, 11 Sep 2012 16:09:43 +0000 Subject: [PATCH] 2012-09-11 Dario Rodriguez * chrome_extension/manifest.json, chrome_extension/options.html, chrome_extension/background.html, chrome_extension/popup.html, chrome_extension/css/popup.css, chrome_extension/notification.html, chrome_extension/js/notification.js, chrome_extension/js/options.js, chrome_extension/js/background.js, chrome_extension/js/popup.js: Fixed extension to work with Chrome 2.x git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6954 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- extras/ChangeLog | 14 ++ extras/chrome_extension/background.html | 251 +-------------------- extras/chrome_extension/css/popup.css | 12 +- extras/chrome_extension/js/background.js | 248 ++++++++++++++++++++ extras/chrome_extension/js/notification.js | 17 ++ extras/chrome_extension/js/options.js | 175 ++++++++++++++ extras/chrome_extension/js/popup.js | 205 +++++++++++++++++ extras/chrome_extension/manifest.json | 5 +- extras/chrome_extension/notification.html | 16 +- extras/chrome_extension/options.html | 150 +++--------- extras/chrome_extension/popup.html | 211 +---------------- 11 files changed, 701 insertions(+), 603 deletions(-) create mode 100644 extras/chrome_extension/js/background.js create mode 100644 extras/chrome_extension/js/notification.js create mode 100644 extras/chrome_extension/js/options.js create mode 100644 extras/chrome_extension/js/popup.js diff --git a/extras/ChangeLog b/extras/ChangeLog index 9c66a64bd4..1fe5252e65 100644 --- a/extras/ChangeLog +++ b/extras/ChangeLog @@ -1,3 +1,17 @@ +2012-09-11 Dario Rodriguez + + * chrome_extension/manifest.json, + chrome_extension/options.html, + chrome_extension/background.html, + chrome_extension/popup.html, + chrome_extension/css/popup.css, + chrome_extension/notification.html, + chrome_extension/js/notification.js, + chrome_extension/js/options.js, + chrome_extension/js/background.js, + chrome_extension/js/popup.js: Fixed extension to + work with Chrome 2.x + 2012-06-20 Ramon Novoa * pandora_update_version.sh: Update version in agent configuration diff --git a/extras/chrome_extension/background.html b/extras/chrome_extension/background.html index 217b1e27ad..d2feaa05ba 100644 --- a/extras/chrome_extension/background.html +++ b/extras/chrome_extension/background.html @@ -2,256 +2,7 @@ - + diff --git a/extras/chrome_extension/css/popup.css b/extras/chrome_extension/css/popup.css index cb38b3b9d6..8f8d6f2c79 100644 --- a/extras/chrome_extension/css/popup.css +++ b/extras/chrome_extension/css/popup.css @@ -58,11 +58,19 @@ div.optionsG_textarea{ margin : 5px, 10px; } div.options_textarea{ - background-color : #E1EDE5; - width : 450px; + background-color : #ebebeb; + width : 550px; margin : 10px 10px; + padding: 10px; + -webkit-border-radius:10px; + border: 2px solid #c8c8c8; } +div.options_footer{ + width : 550px; + margin : 10px 10px; + padding: 10px; +} .tooltip { display:none; diff --git a/extras/chrome_extension/js/background.js b/extras/chrome_extension/js/background.js new file mode 100644 index 0000000000..3de478b61b --- /dev/null +++ b/extras/chrome_extension/js/background.js @@ -0,0 +1,248 @@ +var timer = null; +var allEvents=new Array(); +var newEvents=new Array(); +var oldEvents=new Array(); +var api_div_numbers=21; + + +$(window).load(function() { + initilise(); + if(timer) { + clearTimeout(timer); + } + timer =setTimeout(main , 100 ); +}); + + + +function fetchEvents(){ + return oldEvents; +} + + +function main() { + var url=localStorage["ip_address"]+'/include/api.php?op=get&op2=events&return_type=csv&apipass='+localStorage["api_pass"]+'&user='+localStorage["user_name"]+'&pass='+localStorage["pass"]; + var feedUrl = url; + localStorage["data_check"]="true"; + req = new XMLHttpRequest(); + req.onload = handleResponse; + req.onerror = handleError; + req.open("GET", feedUrl, true); + req.send(null); +} + +function handleError() { + localStorage["data_check"]="false"; + if(timer) { + clearTimeout(timer); + } + timer =setTimeout(main , 1000); +} + +function handleResponse() { + var doc = req.responseText; + if (doc=="auth error") { + localStorage["data_check"]="false"; + if(timer) { + clearTimeout(timer); + } + timer =setTimeout(main , 1000); + } + else{ + var n=doc.search("404 Not Found"); + if(n>0){ + localStorage["data_check"]="false"; + if(timer) { + clearTimeout(timer); + } + timer =setTimeout(main , 1000); + } + + else{ + localStorage["data_check"]="true" + getEvents(doc); + } + } +} + +function getEvents(reply){ + if(check()){ + all_event_array=reply.split("\n"); + allEvents=divideArray(all_event_array); + if(oldEvents.length==0){ + oldEvents=allEvents; + } + newEvents=fetchNewEvents(allEvents,oldEvents); + if(newEvents.length!=0){ + for(var k=0;k' + title + '
' + event + ''; + +} + +function check(){ + if (localStorage["data_check"]=="true" && localStorage["ip_address"] != null && localStorage["api_pass"] != null &&localStorage["user_name"]!=null &&localStorage["pass"]!=null && localStorage["ip_address"] != "" && localStorage["api_pass"] != "" &&localStorage["user_name"]!="" &&localStorage["pass"]!=""){ + return true; + } + else + return false; +} + +function initilise(){ + + if(localStorage["ip_address"]==undefined){ + localStorage["ip_address"]="http://firefly.artica.es/pandora_demo"; + + } + + if(localStorage["api_pass"]==undefined){ + localStorage["api_pass"]="doreik0"; + } + + if(localStorage["user_name"]==undefined){ + localStorage["user_name"]="demo"; + } + + if(localStorage["pass"]==undefined){ + localStorage["pass"]="demo"; + } + if(localStorage["critical"]==null){ + localStorage["critical"]="11"; + } + if(localStorage["informational"]==null){ + localStorage["informational"]="1"; + } + if(localStorage["maintenance"]==null){ + localStorage["maintenance"]="10"; + } + if(localStorage["normal"]==null){ + localStorage["normal"]="6"; + } + if(localStorage["warning"]==null){ + localStorage["warning"]="2"; + } + if(localStorage["events"]==null){ + localStorage["events"]=20; + } + if(localStorage["refresh"]==null){ + localStorage["refresh"]="10"; + } + if(localStorage["ip_address"]==null){ + localStorage["ip_address"]="http://firefly.artica.es/pandora_demo"; + } + + if(localStorage["api_pass"]==null){ + localStorage["api_pass"]="doreik0"; + } + + if(localStorage["user_name"]==null){ + localStorage["user_name"]="demo"; + } + + if(localStorage["pass"]==null){ + localStorage["pass"]="demo"; + } + if(localStorage["sound_alert"]==null){ + localStorage["sound_alert"]="on"; + } + if(localStorage["changed"]==null){ + localStorage["changed"]="false"; + } + if(localStorage["new_events"]==null){ + localStorage["new_events"]=parseInt(localStorage["events"]); + } +} diff --git a/extras/chrome_extension/js/notification.js b/extras/chrome_extension/js/notification.js new file mode 100644 index 0000000000..0cf483cae1 --- /dev/null +++ b/extras/chrome_extension/js/notification.js @@ -0,0 +1,17 @@ +console.log("hola"); +var url = window.location.href; +var re = /\?event=(\d+)/; +console.log("hola"); +if(re.exec(url)) { + if(!isNaN(RegExp.$1)) { + var eventId = RegExp.$1; + document.write(chrome.extension.getBackgroundPage().getNotification(eventId)); + } +} +console.log("hola"); +window.onload = function () { + setTimeout(function() { + window.close(); + }, 10000); +} +console.log("hola"); diff --git a/extras/chrome_extension/js/options.js b/extras/chrome_extension/js/options.js new file mode 100644 index 0000000000..c8ff5cd6c1 --- /dev/null +++ b/extras/chrome_extension/js/options.js @@ -0,0 +1,175 @@ +function initialise(){ + + document.getElementById('ip_address').value = localStorage["ip_address"]; + document.getElementById('api_pass').value = localStorage["api_pass"]; + document.getElementById('user_name').value = localStorage["user_name"]; + + document.getElementById('pass').value = localStorage["pass"]; + document.getElementById('critical').value = localStorage["critical"]; + document.getElementById('informational').value = localStorage["informational"]; + document.getElementById('maintenance').value = localStorage["maintenance"]; + document.getElementById('normal').value = localStorage["normal"]; + document.getElementById('warning').value = localStorage["warning"]; + document.getElementById('refresh').value = localStorage["refresh"]; + document.getElementById('events').value = localStorage["events"]; + if(localStorage["sound_alert"]=="on"){ + disable(false); + document.getElementById('sound_alert_o').checked=true; + } + if(localStorage["sound_alert"]=="off"){ + disable(true); + document.getElementById('sound_alert_f').checked=true; + } + +} + +function change(value, id){ + playSound(value); + if(id=="critical"){ + localStorage["critical"]=value; + } + if(id=="informational"){ + localStorage["informational"]=value; + } + if(id=="maintenance"){ + localStorage["maintenance"]=value; + } + if(id=="normal"){ + localStorage["normal"]=value; + } + if(id=="warning"){ + localStorage["warning"]=value; + } +} + +function change_o(value, id){ + if(id=="refresh"){ + localStorage["refresh"]=value; + } + if(id=="events"){ + localStorage["events"]=value; + } +} + +function change_global(value,id){ + console.log("value => "+value); + console.log("id => "+id); + bg=chrome.extension.getBackgroundPage(); + bg.location.reload(); + if(id=="ip_address"){ + localStorage["ip_address"]=value; + } + if(id=="api_pass"){ + localStorage["api_pass"]=value; + } + if(id=="user_name"){ + localStorage["user_name"]=value; + } + if(id=="pass"){ + localStorage["pass"]=value; + } + if(id=="sound_alert"){ + localStorage["sound_alert"]=value; + if(localStorage["sound_alert"]=="off"){ + disable(true); + } + if(localStorage["sound_alert"]=="on"){ + disable(false); + } + } +} + +function disable(state){ + if(state){ + document.getElementById("critical").disabled=true; + document.getElementById("informational").disabled=true; + document.getElementById("maintenance").disabled=true; + document.getElementById("normal").disabled=true; + document.getElementById("warning").disabled=true; + } + if(!state){ + document.getElementById("critical").disabled=false; + document.getElementById("informational").disabled=false; + document.getElementById("maintenance").disabled=false; + document.getElementById("normal").disabled=false; + document.getElementById("warning").disabled=false; + } +} + +function windowClose() { + //window.close(); + console.log("close"); +} + + +//Add callbacks to elements +$(document).ready (function () { + + //Initialise all form fields + initialise(); + + //IP address field + $("#ip_address").change(function () { + change_global($(this).val(), "ip_address"); + }); + + //API password field + $("#api_pass").change(function () { + change_global($(this).val(), "api_pass"); + }); + + //User name field + $("#user_name").change(function () { + change_global($(this).val(), "user_name"); + }); + + //Password field + $("#pass").change(function () { + change_global($(this).val(), "pass"); + }); + + //Sound alerts on/off + $("#sound_alert_o").change(function () { + change_global($(this).val(), "sound_alert"); + }); + + $("#sound_alert_f").change(function () { + change_global($(this).val(), "sound_alert"); + }); + + //Alert sounds fields + $("#critical").change(function () { + change($(this).val(), "critical"); + }); + + $("#informational").change(function () { + change($(this).val(), "informational"); + }); + + $("#maintenance").change(function () { + change($(this).val(), "maintenance"); + }); + + $("#normal").change(function () { + change($(this).val(), "normal"); + }); + + $("#warning").change(function () { + change($(this).val(), "warning"); + }); + + //Auto refresh field + $("#refresh").change(function () { + change_o($(this).val(), "refresh"); + }); + + $("#events").change(function () { + change_o($(this).val(), "events"); + }); + + //Close button + $("#close").click (function () { + window.close(); + }); + +}); diff --git a/extras/chrome_extension/js/popup.js b/extras/chrome_extension/js/popup.js new file mode 100644 index 0000000000..c6213cbf4e --- /dev/null +++ b/extras/chrome_extension/js/popup.js @@ -0,0 +1,205 @@ +var timer = null; +var event_array; +var max_events; +var bg; +$(document).ready(function(){ + max_events=localStorage["events"]; + if(localStorage["events"]==undefined){ + localStorage["events"]="20"; + } + bg=chrome.extension.getBackgroundPage(); + if(timer) { + clearTimeout(timer); + } + timer =setTimeout(mainPoP , 2000 ); +}); + +function mainPoP(){ + if(bg.check()){ + showEvents(); + } + else + { + showUrlError(); + } +} +function showUrlError(){ + var res=document.createDocumentFragment(); + var r = document.getElementById('e'); + var eve=document.createElement('div'); + eve.id="event_temp"; + eve.setAttribute("class","b"); + + var p = document.createElement('a'); + p.href="options.html"; + p.target="_blank"; + p.innerText="Configure ip address,API password, user name and password with correct values"; + eve.appendChild(p); + res.appendChild(eve); + r.parentNode.insertBefore(res,r); + $('.loader').hide(); + $('div.b').show(); + + if(timer) { + clearTimeout(timer); + } + timer =setTimeout(refresh , 1000 ); +} + +function showDataError(){ + var res=document.createDocumentFragment(); + var r = document.getElementById('e'); + var eve=document.createElement('div'); + eve.id="event_temp"; + eve.setAttribute("class","b"); + + var p = document.createElement('a'); + p.innerText="Error in fetching data!! Check your internet connection"; + eve.appendChild(p); + res.appendChild(eve); + r.parentNode.insertBefore(res,r); + $('.loader').hide(); + $('div.b').show(); + + if(timer) { + clearTimeout(timer); + } + timer =setTimeout(refresh , 1000 ); +} + +function showEvents(){ + var allEvents=bg.fetchEvents(); + var r = document.getElementById('e'); + var res=document.createDocumentFragment(); + var eve=document.createElement('div'); + eve.id="event_temp"; + eve.setAttribute("class","b"); + + var i=0; + if(allEvents.length>0){ + while(i

Event Alert

- +
diff --git a/extras/chrome_extension/options.html b/extras/chrome_extension/options.html index 085d9073f1..7678782265 100644 --- a/extras/chrome_extension/options.html +++ b/extras/chrome_extension/options.html @@ -1,110 +1,14 @@ - + Pandora FMS extension - - + + + +
@@ -112,34 +16,34 @@

Options Menu

- +
- - + + - + - + - +

Global Parameters

IP Address Console URL
API Password
User name
Password
- - +
+
@@ -150,7 +54,7 @@

Event Alert Sounds Configuration

Sound Alerts - On - Off + On + Off
Critical - @@ -168,7 +72,7 @@
Informational - @@ -186,7 +90,7 @@
Maintenance - @@ -204,7 +108,7 @@
Normal - @@ -222,7 +126,7 @@
Warning - @@ -240,7 +144,7 @@
Auto Refresh Time - @@ -257,7 +161,7 @@
Number of events - @@ -269,12 +173,10 @@
- -

Author Information : R.Hareesan (rharishan@gmail.com)

- - - - + diff --git a/extras/chrome_extension/popup.html b/extras/chrome_extension/popup.html index d8dfcb6784..e616020f50 100644 --- a/extras/chrome_extension/popup.html +++ b/extras/chrome_extension/popup.html @@ -2,216 +2,7 @@ - - +