From 0581e6420da160b9ea61b332db4b112aa3091774 Mon Sep 17 00:00:00 2001 From: enriquecd Date: Tue, 21 Nov 2017 17:58:24 +0100 Subject: [PATCH 01/83] Fix history data dialog for base 64 images on modules view - #1525 --- pandora_console/include/ajax/module.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php index 32de285b11..63946f4c2d 100755 --- a/pandora_console/include/ajax/module.php +++ b/pandora_console/include/ajax/module.php @@ -269,7 +269,7 @@ if ($get_module_detail) { if ($attr[1] != "modules_format_data") { $data[] = date('d F Y h:i:s A', $row['utimestamp']); } - elseif (($config['command_snapshot']) && (preg_match ("/[\n]+/i", $row[$attr[0]]))) { + elseif (($config['command_snapshot'] == '0') && (preg_match ("/[\n]+/i", $row[$attr[0]]))) { // Its a single-data, multiline data (data snapshot) ? // Detect string data with \n and convert to
's From e55610f0355f21d27914b63fbccaa7103683e052 Mon Sep 17 00:00:00 2001 From: enriquecd Date: Tue, 21 Nov 2017 19:20:29 +0100 Subject: [PATCH 02/83] Inprove visual styles for alerts system window - #1633 --- pandora_console/operation/system_alert.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/operation/system_alert.php b/pandora_console/operation/system_alert.php index b8b85553c6..d805095c31 100644 --- a/pandora_console/operation/system_alert.php +++ b/pandora_console/operation/system_alert.php @@ -18,7 +18,7 @@ echo " "; -echo "
"; +echo "
"; echo get_pandora_error_for_header(); echo "
"; From 0b728375db44480defdf9540501ea233a389e3f0 Mon Sep 17 00:00:00 2001 From: danielmaya Date: Fri, 24 Nov 2017 11:55:25 +0100 Subject: [PATCH 03/83] Fixed interval when the period is less than resolution in custom graph --- pandora_console/include/functions_graph.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pandora_console/include/functions_graph.php b/pandora_console/include/functions_graph.php index ccad237208..f0262a1684 100644 --- a/pandora_console/include/functions_graph.php +++ b/pandora_console/include/functions_graph.php @@ -1162,6 +1162,9 @@ function graphic_combined_module ($module_list, $weight_list, $period, $datelimit = $date - $period; $resolution = $config['graph_res'] * 50; //Number of points of the graph + if($resolution > $period){ + $resolution = $period; + } $interval = (int) ($period / $resolution); // If projection graph, fill with zero previous data to projection interval From b431f4afd3b93464bc8b9dda9c148517fb1b1df9 Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Mon, 27 Nov 2017 11:56:52 +0100 Subject: [PATCH 04/83] [Console > Module area graph] Now the Y legend values are rounded properly to 2 dec when 'Shortened module graph data' is enabled --- pandora_console/include/graphs/flot/pandora.flot.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/pandora_console/include/graphs/flot/pandora.flot.js b/pandora_console/include/graphs/flot/pandora.flot.js index 6fe97ae606..28edc2f224 100644 --- a/pandora_console/include/graphs/flot/pandora.flot.js +++ b/pandora_console/include/graphs/flot/pandora.flot.js @@ -2158,9 +2158,8 @@ function number_format(number, force_integer, unit) { } } else { - var decimals = 2; - var factor = 10 * decimals; - number = Math.round(number*factor)/factor; + // Round to 2 decimals + number = Math.round(number * 100) / 100; } var shorts = ["", "K", "M", "G", "T", "P", "E", "Z", "Y"]; @@ -2174,10 +2173,6 @@ function number_format(number, force_integer, unit) { pos++; number = number / 1000; } - else if (number <= -1000) { - pos++; - number = number / 1000; - } else { break; } From b26c46a7c6efb8758dfad8efbcbc883e3dad02af Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Mon, 27 Nov 2017 12:31:40 +0100 Subject: [PATCH 05/83] [Console > Module area graph] Now the value shown into the legend has 2 decimals instead of 1 --- pandora_console/include/graphs/flot/pandora.flot.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/graphs/flot/pandora.flot.js b/pandora_console/include/graphs/flot/pandora.flot.js index 28edc2f224..5d3a2e4222 100644 --- a/pandora_console/include/graphs/flot/pandora.flot.js +++ b/pandora_console/include/graphs/flot/pandora.flot.js @@ -1781,7 +1781,7 @@ function pandoraFlotArea(graph_id, values, labels, labels_long, legend, // The graphs of points type and unknown graphs will dont be updated if (serie_types[i] != 'points' && series.label != $('#hidden-unknown_text').val()) { $('#legend_' + graph_id + ' .legendLabel') - .eq(i).html(label_aux + '= ' + parseFloat(y).toFixed(precision_graph) + how_bigger + ' ' + unit); + .eq(i).html(label_aux + '= ' + parseFloat(y).toFixed(2) + how_bigger + ' ' + unit); } $('#legend_' + graph_id + ' .legendLabel') From 82012959afcbb0790d61f6b53161477c6b1a9b05 Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Mon, 27 Nov 2017 12:41:10 +0100 Subject: [PATCH 06/83] [Console > Module area graph] Now the value shown into the legend uses the config value to show shortened of full data --- pandora_console/include/graphs/flot/pandora.flot.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandora_console/include/graphs/flot/pandora.flot.js b/pandora_console/include/graphs/flot/pandora.flot.js index 5d3a2e4222..77e81a1b0c 100644 --- a/pandora_console/include/graphs/flot/pandora.flot.js +++ b/pandora_console/include/graphs/flot/pandora.flot.js @@ -1747,7 +1747,7 @@ function pandoraFlotArea(graph_id, values, labels, labels_long, legend, $('#timestamp_'+graph_id).show(); // If no legend, the timestamp labels are short and with value if (legend.length == 0) { - $('#timestamp_'+graph_id).text(labels[j] + ' (' + parseFloat(y).toFixed(2) + ')'); + $('#timestamp_'+graph_id).text(labels[j] + ' (' + (short_data ? parseFloat(y).toFixed(2) : parseFloat(y)) + ')'); } else { $('#timestamp_'+graph_id).text(labels_long[j]); @@ -1781,7 +1781,7 @@ function pandoraFlotArea(graph_id, values, labels, labels_long, legend, // The graphs of points type and unknown graphs will dont be updated if (serie_types[i] != 'points' && series.label != $('#hidden-unknown_text').val()) { $('#legend_' + graph_id + ' .legendLabel') - .eq(i).html(label_aux + '= ' + parseFloat(y).toFixed(2) + how_bigger + ' ' + unit); + .eq(i).html(label_aux + '= ' + (short_data ? parseFloat(y).toFixed(2) : parseFloat(y)) + how_bigger + ' ' + unit); } $('#legend_' + graph_id + ' .legendLabel') From 5ea9edf13249b6b2277856257cd0f57ed7e925c6 Mon Sep 17 00:00:00 2001 From: fermin831 Date: Mon, 27 Nov 2017 16:29:32 +0100 Subject: [PATCH 07/83] Fixed several issues on chrome extension --- extras/chrome_extension/js/background.js | 401 +++++++++++++---------- extras/chrome_extension/js/popup.js | 206 +++++------- extras/chrome_extension/manifest.json | 8 +- extras/chrome_extension/popup.html | 20 +- 4 files changed, 324 insertions(+), 311 deletions(-) diff --git a/extras/chrome_extension/js/background.js b/extras/chrome_extension/js/background.js index 3de478b61b..15360f1c18 100644 --- a/extras/chrome_extension/js/background.js +++ b/extras/chrome_extension/js/background.js @@ -1,29 +1,27 @@ -var timer = null; -var allEvents=new Array(); -var newEvents=new Array(); -var oldEvents=new Array(); -var api_div_numbers=21; - +var refreshTimer = null; +var isFetching = null; +var storedEvents=new Array(); $(window).load(function() { initilise(); - if(timer) { - clearTimeout(timer); - } - timer =setTimeout(main , 100 ); + // Wait some ms to throw main function + var delay = setTimeout(main, 100); + resetInterval(); }); - - -function fetchEvents(){ - return oldEvents; +function fetchEvents() { + return storedEvents; } 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"; + + chrome.runtime.sendMessage({text: "FETCH_EVENTS"}); + // Do not fetch if is fetching now + if (isFetching) return; + isFetching = true; + + var feedUrl = localStorage["ip_address"]+'/include/api.php?op=get&op2=events&return_type=csv&apipass='+localStorage["api_pass"]+'&user='+localStorage["user_name"]+'&pass='+localStorage["pass"]; req = new XMLHttpRequest(); req.onload = handleResponse; req.onerror = handleError; @@ -32,96 +30,68 @@ function main() { } function handleError() { - localStorage["data_check"]="false"; - if(timer) { - clearTimeout(timer); - } - timer =setTimeout(main , 1000); + chrome.runtime.sendMessage({text: "FETCH_EVENTS_URL_ERROR"}); + isFetching = false; } 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" + chrome.runtime.sendMessage({text: "FETCH_EVENTS_URL_ERROR"}); + } else { + var n = doc.search("404 Not Found"); + if (n>0) { + chrome.runtime.sendMessage({text: "FETCH_EVENTS_DATA_ERROR"}); + } else { getEvents(doc); + chrome.runtime.sendMessage({text: "FETCH_EVENTS_SUCCESS"}); } } + isFetching = false; } function getEvents(reply){ - if(check()){ - all_event_array=reply.split("\n"); - allEvents=divideArray(all_event_array); - if(oldEvents.length==0){ - oldEvents=allEvents; + var fetchedEvents = parseReplyEvents(reply); + + // If there is no events requested, mark all as visited + if (storedEvents.length == 0) { + for(var k=0;k' + title + '
' + event + ''; + // Otherwise, we need to ask the user for permission + // Note, Chrome does not implement the permission static property + // So we have to check for NOT 'denied' instead of 'default' + else if (Notification.permission !== 'denied') { + Notification.requestPermission(function (permission) { + // Whatever the user answers, we make sure we store the information + if(!('permission' in Notification)) { + Notification.permission = permission; + } + + // If the user is okay, let's create a notification + if (permission === "granted") getNotification(pEvent); + }); + } } -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; +function getNotification(pEvent){ + + // Build the event text + var even = pEvent['type']; + if (pEvent['source'] != '') even += " : " + pEvent['source']; + even += ". Event occured at " + pEvent['date']; + if(pEvent['module'] != 0) even += " in the module with Id "+ pEvent['module']; + even += "."; + + var url = (pEvent['agent']=="") + ? localStorage["ip_address"]+"/index.php?sec=eventos&sec2=operation/events/events" + : localStorage["ip_address"]+"/index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=" + pEvent['agent']; + + var notification = new Notification( + pEvent['title'], + { + body: even, + icon: "images/icon.png" + } + ); + + // Add the link + notification.onclick = function (event) { + event.preventDefault(); + window.open(url, '_blank'); } - else - return false; + + // Close notification after 10 secs + setTimeout(function() {notification.close()}, 10000); +} + +function resetInterval () { + if (refreshTimer) clearInterval(refreshTimer); + refreshTimer = setInterval(main, localStorage["refresh"]*1000); } 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"]); - } + if (isFetching == null) isFetching = false; + 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"]); + } + if(localStorage["error"]==null) { + localStorage["error"] = true; + } } diff --git a/extras/chrome_extension/js/popup.js b/extras/chrome_extension/js/popup.js index c6213cbf4e..29bfa6b7b3 100644 --- a/extras/chrome_extension/js/popup.js +++ b/extras/chrome_extension/js/popup.js @@ -1,5 +1,3 @@ -var timer = null; -var event_array; var max_events; var bg; $(document).ready(function(){ @@ -8,66 +6,68 @@ $(document).ready(function(){ localStorage["events"]="20"; } bg=chrome.extension.getBackgroundPage(); - if(timer) { - clearTimeout(timer); - } - timer =setTimeout(mainPoP , 2000 ); -}); -function mainPoP(){ - if(bg.check()){ + // Display the information + if (bg.fetchEvents().length == 0) { + showError("Error in fetching data!! Check your internet connection"); + } else { 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 ); + + // Adding buttons listeners + document.getElementById("m_refresh").addEventListener("click", mrefresh); + + // Added listener to background messages + chrome.runtime.onMessage.addListener(function(message,sender,sendResponse){ + switch (message.text) { + case "FETCH_EVENTS": + setSpinner(); + //$('div.b').hide(); + break; + case "FETCH_EVENTS_SUCCESS": + unsetSpinner(); + showEvents(); + break; + case "FETCH_EVENTS_DATA_ERROR": + unsetSpinner(); + showError("Error in fetching data!! Check your internet connection"); + break; + case "FETCH_EVENTS_URL_ERROR": + unsetSpinner(); + showError("Configure ip address,API password, user name and password with correct values"); + break; + default: + console.log("Unrecognized message: ", message.text); + break; + } + }); +}); + +function setSpinner () { + $('#refr_img_id').attr("src", "images/spinny.gif"); } -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 unsetSpinner() { + $('#refr_img_id').attr("src", "images/refresh.png"); +} + +function clearError() { + $('.error').hide(); + $('.error a').text(""); +} + +function showError(text){ + $('.error a').text(text); + $('.error').show(); } function showEvents(){ + clearError(); + var wrapper = document.getElementById('event'); + var e_refr = document.getElementById('event_temp'); + if(e_refr){ + wrapper.removeChild(e_refr); + } var allEvents=bg.fetchEvents(); var r = document.getElementById('e'); var res=document.createDocumentFragment(); @@ -77,7 +77,7 @@ function showEvents(){ var i=0; if(allEvents.length>0){ - while(i
+ + + + + + + +
-
Loading...
+
+

Error

+ +

Events

-
- -
+
From 1840d08f7acb74fec27c880e70842e18c0ead32e Mon Sep 17 00:00:00 2001 From: danielmaya Date: Mon, 27 Nov 2017 16:55:42 +0100 Subject: [PATCH 08/83] Added help_tip in public url --- pandora_console/godmode/setup/setup_general.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandora_console/godmode/setup/setup_general.php b/pandora_console/godmode/setup/setup_general.php index 24955f0d17..7873e049b3 100644 --- a/pandora_console/godmode/setup/setup_general.php +++ b/pandora_console/godmode/setup/setup_general.php @@ -159,7 +159,8 @@ $table->data[26][1] .= '
' . ht $table->data[26][1] .= '
'; $table->data[28][0] = __('Public URL'); -$table->data[28][0] .= ui_print_help_tip(__('Set this value when your PandoraFMS across inverse proxy or for example with mod_proxy of Apache.'), true); +$table->data[28][0] .= ui_print_help_tip(__('Set this value when your PandoraFMS across inverse proxy or for example with mod_proxy of Apache.') . + ' '.__('Without the index.php such as http://domain/pandora_url/'), true); $table->data[28][1] = html_print_input_text ('public_url', $config['public_url'], '', 40, 255, true); $table->data[29][0] = __('Referer security'); From c951999a81235b3f678d54c4bfdea629c97d1a0c Mon Sep 17 00:00:00 2001 From: fermin831 Date: Mon, 27 Nov 2017 17:52:11 +0100 Subject: [PATCH 09/83] Fixed chrome extension severity --- extras/chrome_extension/js/background.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/extras/chrome_extension/js/background.js b/extras/chrome_extension/js/background.js index 15360f1c18..fafb53c5ca 100644 --- a/extras/chrome_extension/js/background.js +++ b/extras/chrome_extension/js/background.js @@ -106,7 +106,7 @@ function fetchNewEvents(A,B){ function parseReplyEvents (reply) { - // Split the API request + // Split the API response var e_array = reply.split("\n"); // Form a properly object @@ -117,14 +117,14 @@ function parseReplyEvents (reply) { var event=e_array[i].split(";"); fetchedEvents.push({ 'id' : event[0], - 'title' : event[6], - 'date' : event[5], - 'agent' : event[2], 'agent_name' : event[1], + 'agent' : event[2], + 'date' : event[5], + 'title' : event[6], 'module' : event[9], 'type' : event[14], 'source' : event[17], - 'severity' : event[19], + 'severity' : event[28], 'visited' : false }); } @@ -142,7 +142,7 @@ function alertsSound(pEvent){ playSound(localStorage["critical"]); break; case "Informational": - playSound(localStorage["critical"]); + playSound(localStorage["informational"]); break; case "Maintenance": playSound(localStorage["maintenance"]); From 0b3c42bb03acb1b4c71502576a3640f519143b2e Mon Sep 17 00:00:00 2001 From: fermin831 Date: Mon, 27 Nov 2017 17:54:17 +0100 Subject: [PATCH 10/83] Added historical events on fail in chrome extension --- extras/chrome_extension/js/options.js | 4 ---- extras/chrome_extension/js/popup.js | 15 +++++++-------- extras/chrome_extension/popup.html | 8 ++++---- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/extras/chrome_extension/js/options.js b/extras/chrome_extension/js/options.js index c8ff5cd6c1..20084c46ff 100644 --- a/extras/chrome_extension/js/options.js +++ b/extras/chrome_extension/js/options.js @@ -20,7 +20,6 @@ function initialise(){ disable(true); document.getElementById('sound_alert_f').checked=true; } - } function change(value, id){ @@ -52,10 +51,7 @@ function change_o(value, id){ } 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; } diff --git a/extras/chrome_extension/js/popup.js b/extras/chrome_extension/js/popup.js index 29bfa6b7b3..5bdbe966bd 100644 --- a/extras/chrome_extension/js/popup.js +++ b/extras/chrome_extension/js/popup.js @@ -62,22 +62,22 @@ function showError(text){ } function showEvents(){ + clearError(); - var wrapper = document.getElementById('event'); + console.log("showEvents!!"); + $('#events').empty(); var e_refr = document.getElementById('event_temp'); if(e_refr){ wrapper.removeChild(e_refr); } - var allEvents=bg.fetchEvents(); - var r = document.getElementById('e'); - var res=document.createDocumentFragment(); + var allEvents=bg.fetchEvents(); var eve=document.createElement('div'); eve.id="event_temp"; eve.setAttribute("class","b"); var i=0; if(allEvents.length>0){ - while(i

Error

-
+
-
-
-

Events

+
+

Events

+
From 5c9822111d538175ee8728f61a9fbfb530f4ac83 Mon Sep 17 00:00:00 2001 From: fermin831 Date: Mon, 27 Nov 2017 19:14:31 +0100 Subject: [PATCH 11/83] Do not display notifications when popup is open (and remove traces) --- extras/chrome_extension/js/background.js | 16 +++++++++++----- extras/chrome_extension/js/options.js | 7 ------- extras/chrome_extension/js/popup.js | 1 - 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/extras/chrome_extension/js/background.js b/extras/chrome_extension/js/background.js index fafb53c5ca..2a1ce80656 100644 --- a/extras/chrome_extension/js/background.js +++ b/extras/chrome_extension/js/background.js @@ -65,11 +65,16 @@ function getEvents(reply){ // Discriminate the new events newEvents=fetchNewEvents(fetchedEvents,storedEvents); - // Display the notifications - for(var k=0;k Date: Tue, 28 Nov 2017 10:36:38 +0100 Subject: [PATCH 12/83] Display not visited events bold on chrome extension --- extras/chrome_extension/js/background.js | 42 +++++++++++++++++------- extras/chrome_extension/js/popup.js | 22 ++++++++++--- 2 files changed, 49 insertions(+), 15 deletions(-) diff --git a/extras/chrome_extension/js/background.js b/extras/chrome_extension/js/background.js index 2a1ce80656..8f3b80e866 100644 --- a/extras/chrome_extension/js/background.js +++ b/extras/chrome_extension/js/background.js @@ -1,6 +1,7 @@ var refreshTimer = null; var isFetching = null; -var storedEvents=new Array(); +var storedEvents = new Array(); +var notVisited = {}; $(window).load(function() { initilise(); @@ -13,6 +14,13 @@ function fetchEvents() { return storedEvents; } +function fetchNotVisited() { + return notVisited; +} + +function removeNotVisited(eventId) { + if (notVisited[eventId] === true) delete notVisited[eventId]; +} function main() { @@ -55,31 +63,43 @@ function getEvents(reply){ // If there is no events requested, mark all as visited if (storedEvents.length == 0) { - for(var k=0;k_ + var nums = id.split('_'); + var pid = "p_" + nums[1]; + + // Mark as visited if visited + if($(this).parent().css('font-weight') == '600') { + bg.removeNotVisited(nums[2]); + $(this).parent().css('font-weight', ''); + } + + // Toggle information if($('#' + pid).css('display') == 'none') { $('#' + pid).slideDown("fast"); $(this).attr({src: 'images/minus.gif'}); From caa3539c4ffee232e20f9fa3d4f738375321283f Mon Sep 17 00:00:00 2001 From: danielmaya Date: Wed, 29 Nov 2017 15:54:00 +0100 Subject: [PATCH 13/83] Fixed group recursion in bulk operation --- pandora_console/godmode/massive/massive_edit_agents.php | 4 ++-- pandora_console/include/functions_users.php | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pandora_console/godmode/massive/massive_edit_agents.php b/pandora_console/godmode/massive/massive_edit_agents.php index 1b77093025..ebcb7e557f 100755 --- a/pandora_console/godmode/massive/massive_edit_agents.php +++ b/pandora_console/godmode/massive/massive_edit_agents.php @@ -259,7 +259,7 @@ $table->data[0][0] = __('Group'); $table->data[0][1] = html_print_select_groups(false, "AW", true, 'id_group', $id_group, false, '', '', true); $table->data[0][2] = __('Group recursion'); -$table->data[0][3] = html_print_checkbox ("recursion", 1, $recursion, +$table->data[0][3] = html_print_checkbox ("recursion2", 1, $recursion, true, false); @@ -625,7 +625,7 @@ $(document).ready (function () { $("select#id_os").pandoraSelectOS (); var recursion; - $("#checkbox-recursion").click(function () { + $("#checkbox-recursion2").click(function () { recursion = this.checked ? 1 : 0; $("#id_group").trigger("change"); }); diff --git a/pandora_console/include/functions_users.php b/pandora_console/include/functions_users.php index 957c8c569e..85819ead10 100755 --- a/pandora_console/include/functions_users.php +++ b/pandora_console/include/functions_users.php @@ -254,7 +254,11 @@ function users_get_groups ($id_user = false, $privilege = "AR", $returnAllGroup $user_groups[$group[$keys_field]] = $group['nombre']; } } - + + if (!empty($id_groups)) { + $user_groups = array_intersect_key($user_groups,array_flip($id_groups)); + } + return $user_groups; } From 2b62700fb6a02803453aa3fc68965f0ecb2b243d Mon Sep 17 00:00:00 2001 From: fermin831 Date: Thu, 30 Nov 2017 13:51:56 +0100 Subject: [PATCH 14/83] Fixed some in chrome events extension --- extras/chrome_extension/css/popup.css | 186 +++++++++++++++------ extras/chrome_extension/images/error.png | Bin 0 -> 1488 bytes extras/chrome_extension/images/gear.png | Bin 507 -> 457 bytes extras/chrome_extension/images/icon.png | Bin 2479 -> 1799 bytes extras/chrome_extension/images/icon128.png | Bin 7951 -> 4540 bytes extras/chrome_extension/images/icon16.png | Bin 839 -> 636 bytes extras/chrome_extension/images/icon19.png | Bin 1029 -> 703 bytes extras/chrome_extension/images/icon32.png | Bin 2056 -> 1214 bytes extras/chrome_extension/images/icon48.png | Bin 3500 -> 1799 bytes extras/chrome_extension/images/icon64.png | Bin 3250 -> 2344 bytes extras/chrome_extension/images/logo.png | Bin 5026 -> 3715 bytes extras/chrome_extension/images/refresh.png | Bin 501 -> 423 bytes extras/chrome_extension/images/spinny.gif | Bin 1548 -> 3322 bytes extras/chrome_extension/js/popup.js | 44 ++--- extras/chrome_extension/popup.html | 10 +- 15 files changed, 153 insertions(+), 87 deletions(-) create mode 100644 extras/chrome_extension/images/error.png diff --git a/extras/chrome_extension/css/popup.css b/extras/chrome_extension/css/popup.css index 8f8d6f2c79..a3e880e04f 100644 --- a/extras/chrome_extension/css/popup.css +++ b/extras/chrome_extension/css/popup.css @@ -1,84 +1,124 @@ -body { - min-width:425px; - min-height:540px; - margin:5px; - font-family:Tahoma, Geneva, Arial; - font-size:10pt; +* { + font-family: "Open Sans", "Noto Sans", sans-serif } -h1 { font-weight: bold; font-size:16px; margin:2px 0px 2px 0px; color:#237948; font-family:arial } -h2{ + +body { + min-width: 425px; + min-height: 540px; + margin: 5px; + font-family: Tahoma, Geneva, Arial; + font-size: 10pt; +} +h1 { + font-weight: bold; + font-size: 14px; + margin: 12px 0px 2px 0px; +} +h2 { color : black; } -p -{ - font-family:"Times New Roman"; - font-size:20px; +p { + font-size: 20px; +} +a { + color: #254533; + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +a:visited { + color: #254533; text-decoration:none; +} +a:visited:hover { + text-decoration: underline; } -a { color: #254533; text-decoration:none; } -a:hover { text-decoration:underline; } -a:visited { color: #254533; text-decoration:none; } -a:visited:hover { text-decoration:underline; } +span.res { + font-size: 80%; + color: #555; +} -span.res { font-size:80%; color:#555; } - -img.pm { margin-right:3px;cursor:pointer; margin-top:0px; } -div.main{ - background-color : white; +img.pm { + margin-right: 3px; + cursor: pointer; + margin-top: 0px; +} +div.main { + background-color: white; height: 500px; width: 400px; } -div.textarea{ - background-color : #D5DED5; - width :100% +div.textarea { + background-color: #D5DED5; + width: 100% +} +div.e { + text-align: right; + font-size:8pt; +} +div.b { + background-color:white; + display: none; +} +div.b p a { + font-size: 10pt; +} +div.b p { + margin: 0 0 0 12px; + padding-top: 2px; + display: none; + color: #333; + font-size: 8pt; } -div.e{ text-align:right; font-size:8pt; } -div.b { background-color:white; border:1px solid #BABABA; margin:5px; padding:4px; display:none; } -div.b p a { font-size: 10pt; } -div.b p { margin:2px 0px 4px 0px; display:none; color:#333; font-size:9pt; } div.b div.items p { - margin:2px 0px 8px 0px; color:#333; width:355px;float:left;display:block; + margin: 2px 0px 8px 0px; + color: #333; + width: 355px; + float: left; + display: block; } div.b div.items p img { - float:left;margin:0px 3px 0px 0px; + float: left; + margin: 0px 3px 0px 0px; } -div.options_header{ - margin : 10px 10px; +div.options_header { + margin: 10px 10px; } -div.options_divider{ - width : 100%; - background-color : #C8C8C8; +div.options_divider { + width: 100%; + background-color: #C8C8C8; } -div.optionsG_textarea{ - background-color : green; - width : 450px; - margin : 5px, 10px; +div.optionsG_textarea { + background-color: green; + width: 450px; + margin: 5px, 10px; } -div.options_textarea{ - background-color : #ebebeb; - width : 550px; - margin : 10px 10px; +div.options_textarea { + background-color: #ebebeb; + width: 550px; + margin: 10px 10px; padding: 10px; - -webkit-border-radius:10px; + -webkit-border-radius: 10px; border: 2px solid #c8c8c8; } -div.options_footer{ - width : 550px; - margin : 10px 10px; +div.options_footer { + width: 550px; + margin: 10px 10px; padding: 10px; } .tooltip { - display:none; - font-size:12px; - height:70px; - width:160px; - padding:25px; - color:#eee; + display: none; + font-size: 12px; + height: 70px; + width: 160px; + padding: 25px; + color: #eee; } .spinner { @@ -87,11 +127,47 @@ div.options_footer{ left: 50%; margin-left: -50px; margin-top: -50px; - text-align:center; - z-index:1234; + text-align: center; + z-index: 1234; overflow: auto; width: 100px; height: 102px; } +.error { + display: flex; + border: solid #e4e4e4 1px; + border-radius: 2px; + background: #f6f6f6; + padding: 10px; + margin: 10px; +} +.error_text { + margin: 0 10px; +} + +.result { + margin: 10px; + height: 520; + overflow-y: auto; +} + +#events_title { + border: 1px solid #e5e5e5; + text-align: center; + padding: 5px 0; + margin: 0; +} + +.event { + border: solid 1px #e5e5e5; + border-top: 0; + padding: 3px 0; +} + +.sev-Warning { background: #FCED7E;} +.sev-Critical { background: #FA7A7A;} +.sev-Informational { background: #7FB9FA;} +.sev-Normal { background: #A8D96C;} +.sev-Maintenance { background: #BABDB6;} diff --git a/extras/chrome_extension/images/error.png b/extras/chrome_extension/images/error.png new file mode 100644 index 0000000000000000000000000000000000000000..d8dcc880f18139ad81918f3dac9ca3ecd3f7dbb6 GIT binary patch literal 1488 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 delta 2477 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 FV1muLbfN$N diff --git a/extras/chrome_extension/images/icon16.png b/extras/chrome_extension/images/icon16.png index 3bc0ff4040ee6512d8605a0d62763612f9750ee4..59788e3458a19fccfdc4a55b6de621efa713a7ca 100644 GIT binary patch delta 619 zcmV-x0+jv72K)q&9Df05^w0MI000?uMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ zami&o0006WNkl{#!Cc$z43iIg0-bgfZr8*2XTUTgl2hM#;U<9Wf`2KL7cyb^@f#EpHx~dEB{D&cX7JN#20IJ{G{l@hR01d*SwQxtS*`+m z4HgCh98zE(0Zp0D1Y&@2_dXlA>n=Xq#9%HT16Iof@)}408glSZ+;yW1#N5aTb$vff zLILQ=lMk1I6@o&N5y^}FNMY~+C@BbH00bB#k|0cBJ%3t&Ap=m@G=c&UCVIC%jQ-&8n+dy8E7c>QX1*i^e z2rSVdr$%_LAOe6BB1SYq4HAGFWRDb`AlnW?HGV)=4*(x}`ML)oS8f0R002ovPDHLk FV1lVP_ay)T delta 824 zcmV-81IPUQ1jh!D9De{G^Z#K00004VQb$4nuFf3k00006VoOIv0RI600RN!9r;`8x z010qNS#tmY3ljhU3ljkVnw%H_000McNliru+zAU26(tgEXpjH^0>?>2K~y-)eUeXT zTy+$Mzw_Q}(?snbv~dxrpq)uUL24a!Q*D!(vFb|P)P-PdoPQA)f}txRtBQjEf+Ec{ zwO9-af*>fGW~Q~pVnu3&U}-XMtYSc8Y=cH@O_<5=xR?my!n3^aT`uRlD%Y|@Ko4-E z@kXFqXcqf(BAr$UizvFua2?_|q1j5l{v$y7cqUS*nlT8;*aq~eqz2{>IRf0$zD5YoVV<#+BJamM3M2@G-tJw) zzM);I$idbr1V*Dk6Phl_w{Cc^TEg{CS&q$h=;$~o_6LY(R2W;<^^t~cIeDJ}UrAX3y z0At0*QP92EzYu)bP_>x|VP(?66SgOTy}%KPJ1hD6+>?`;NTpil9iiW49jFxRmjFtW znK3(v)FPi0000ervE?yWUpsx-lY!~ z1qdLxy6?X~{lD;Z<9`sF1*BG9$b_MLpAB3QKmfrFf!PPw3V*^NaPZD_uysrvEW8YU zI?W6qOZYjZz%FF6Q_f_#_-rFsmjtgmh?>ZV?#ep%ON;;k#E8}TNC2b=M1!3P@{Ksq zxHQXE3@0BhW!QDIiy_Ql0s}~lVW%g^fIt=?kzea}5v&{8=c_IhfN7B8m!EIuW4Om$ zKAJ&Y%!%RQyMHqb2k%bDbR#TKKsG?R6M+ggz~le|2wh6eZoUGir9k3>fSAAp2rx!;t{X VAQO6`&}RSu002ovPDHLkV1hQ37)$^F delta 1015 zcmVQ)Vh9? zR}q;ILER`dv*tyVh!;YoJF{v;xk-|W<)0nrJ5Lug8!LHk4(FWbectyx@B64+%dY_q zfNwEcVw?jIWQts|s8))NF96o>D-6U)pMw6`v0`clpj0hTDb^`Z4x&;uZ`_UsV}m4s zNnjkYL@?s$VSl8B9b^mmThb?KQhx=Yw0{tdRtGZ>fa*QBF2^XFEA=E>9Mg2O*FJ4j?4%-~QN(it@0Z^{xm)h(H7D*hk`BY*W^cT=;ycl>A zv(`3}&IRed9ZCI{(P{yWelxiEqgB&$!*IvzKi{ddGtC#UKeW_4e?Uyfm-eiror>AU zboKFUY;uU0wa7`@U8?2pkTsGP>-#SK-sj5dpLPN}OSQs7!o!aAgF^`63^2VeS-0002ovPDHLkV1hlY+^hfq diff --git a/extras/chrome_extension/images/icon32.png b/extras/chrome_extension/images/icon32.png index a27ee9dc3ffa59752849a883dd045a922c2dab35..33c63fbb56c66d8488b10cc255acea76cbcda26f 100644 GIT binary patch delta 1202 zcmV;j1Wo&h5WWeJ9De}>eM({g000?uMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ zami&o000DFNklEx01!Zo$W}9;fqy#pON?L(VD5VH=?2(l zWOuRvRXqT*8DdEfhH_q z0!q#Y@dP-f7(fBwr_;<}E*}jN0*f<(bn8p`fhAyJ0OEtd#b=usm_Q6|m@fi=)Ow6y1_FQpVnjC@>Z=3> z+&~bh`2#%u@kJ)g_s9SkUGEuohJl!YK!Y}51T?ayAAdeGfcysv<5bI4V86k{prDZv znw;xFlBG^ZP&8r#ai((_U8x0o!(F2c92I~5{bGP6m0Y{+3?kf$46~1i!SpL4C)Wg6`XL73j7Fqv zUXLdH0Eity839E*|G zLFodNcz-~lj|^ai2TCBKC*w4rMsZ$sl&l9TWqtw^7_78`c?VP$_9JTsmy57Ob0(SL z;kz>oZt7*gk`P=>fD;)gr9v}YA|tZx$eNK9Vi=B8dMLt63|LZz`4e3;vPPtENnnDN zB%nY8frszUpp>xKfWDMJqO=DQ{2bCaGYd9wL?cn^$s0c5{}0t)0B zP~icJ`$Ko9qZkM)8}U|fcmTLw!Iqgo8A*VEW^iGOGdn}8?EOHjfF{)l)YyQo9w0#N zWq+&FKoCXYT~d-7Qi7;}gdYVCLvRp^Ai)qGfP^PN@CbbZ1P&BW04O8^i9(`w5m*8a z$$pc$+q=Wv-RTmJsc1WMf6qCS#>DFnWpq!CgA;>zZkjkGmXMA;J6zLT~q+m zax<*4G2C~b{n@#SM|t~r4kxE^~j)3julVo%0sQev-1U1xf3qj-(KxPe>B?grqIHI4Cq(T$ohE z;Hcc$C$D~wVP8>&U(-}vcwIxab?rh7Bq@K2pQMuIhd0GfS1i^iRL QfB*mh07*qoM6N<$f?wtc9smFU delta 2050 zcmV+d2>tiI35XDo9De|FdV2H#0004VQb$4nuFf3k00006VoOIv0RI600RN!9r;`8x z010qNS#tmY3ljhU3ljkVnw%H_000McNliru+zAU26$-h%RmlJV2Z%{TK~z}7rI&k* zTy+)4Ki}U>w`I4sG(uVfq(#%YOA}2&m{%W2NEI|zAdH$Xt4mDbAb0A;?0tqIN-%zesa{QL0LCIq;G5GfS`s2LQ z)l4JFb}}+ftA87j)U)Z&s=Z!yGk6(h5Ljqye({m#9Abp5{@rJR?^nc=>sLQcvpc*3 ze5~M5o5g?-Z(^PbcK60O+qtjc)acYaji(tn5SYBY7lbB^??zmPd0oI`uza;kj*s{LBFzj+4fns7m;I(4FM_a7Jz|J{#5{M zlbh98e{bGj8%XNo*ie-Vg%!nhUeXOx+>Xb(&F=7Rve&raxmN;763E5xY|Ujs01ty7 z!hQki5P!+bvF2MmqbXH^34kh~ehpP1Kh%!1;~Hu0gk~CTbDj?tWl;_UmvyyWXr#VJ~kn?3j9e?FiliRKcHULX+JncD}X*9z?2|n&TUkKzy>eJ#hMwS#X3i@JF&wg6eF;cre zLuYeSw2&TG*#11Qs1$8KksPQ5>9Grr`q)g%$%lqAm9 zH`6GDK;Fv%tI`>)u`Tt@2| z7q*KZ1xXIlF-d*wkwzNPjgp04H5bA9Yl=ZCKC-N6C%L`Ek z2_H5+4a?L+`S$GV;-{usort79w%_3W>u*o)d2cj+`c2@08GRYVf}mO1mw#jKu4H8V zUVvoee*@m@I@XP7b*8oR;w+~GsaKuV_eknNIIrB}0BFbme-N|ALp~#Lz&u;koCU%^ zNaCm8Zl%#X(q3IqWoqZteu1~^bIv(@*6XdnKl?r%Bt3t8{jP79T!ey!;puM=00Rdv z0AOn86!Q)lBrKfwPMh#Fi+=#kPHidp6SMZjf3)LlOX!by!3}>&&pN%84xf?4WBKmn z^$r|h;>*8nJHUD%x>|ZMEYuH-FRN;|)Ku=^+K7 zmy>!n+DvPqSRBpGrCD5P8{^BH-RQwq_lQ+}69QPfA>uPvufSWUdQ<=2O1^b+kBoDH z*j2RN$haGw+KJ!?OOvUTlXeZjjvl$1X*6N^L!8Mskjf9S9V!ihpgs9gn*hO0{LcSAmO4rh4T*aBdQ3x32B1ZYl>3Nt_{Y<4>z-c55N2XFn$}Ea@A9>E}BeY#(g2ZCm2n2ILoc^>Uq zcHBs#Q-MZi7sppxWv goRLrU_Ntlx0@@SFbFV$BteW1-=8r|KJ3YWVh6}fG>`}oKn!>RvVYl=4te~C3x5Co=|9W? zFdFP!4i;XxJusRH-ExqBK!6e1=P*#`eu)tvfEdvofx~?hfQk#Tnj|k|!VqUN7tDV6 z{tUyS)5*vh6XTkmx(|;Gkm5skXJ89Wu$a7%DVWU+ zA{=AI1sE9^Eq@N)oetNWX1R*NUOAINfKwVAt00Wc(+WW9KDrGcg)lZi0O5)<1zd8B zNQwl2)O&1-kZph^%>W>^9$8VY?RKF1r5HfzjA5tef0!nWcz{JU2*45~SQFGHCZOW? z=!!uKK|!f6$4VO47iS7f>RP ziHP)a09g(ofEWp+DFYw{@{|A`Web1?CK610NQPo0D-ys5pk;z2CvNl{j|=R&*~M`3 z;ZhLu0)NmVL*%rLHD7`^IXdgw8X&0uUr520iP1dWWy zt_K+kG8`E!I+M)s@ZA}Lfe-Qx$XB4O1j>Ifzy$Qh16VbHZaBy_#25|>BA7YI0G_VV zGcm|;P~Ax^fH@8=h#WC;8d6chfF5k1YT&{9(|<_8;t!8#XuW}+;T+LR`S%1e6|uk& zX!r%3IT>itc_3v#iNQn_6-X8~0I7U5-yHxYL!f~N@aY8zz>3-9G!Vp4SXoifMRX_) ziYPb&T@+EIr>2394jO3T1}G;W1qa{|^x+8H0B!*Omhs^A&g{&JSdk*-$A9B_?|DbP zkbgo$oL7ZK&f&AXT@GPSXv@c_0OI&b-fl-$cp!nkYS8pQlXNaYUb6v8tdm1k5ELX$ z1)0>0CK3YyP%?8tW4rbYb0wYMoxSz&#okG?oxuOpN^nI6b;ZQebs}K&_TyLE0w3 zZf}-{`kt~Jy%J#kdsr{=L#WYDQpp%?ZBr+J;)ZPr8x>0(hh9>1jI|DjTLd=|Dt|(o zmSiy9pT#-nkf{WK<2$O<%XKIjFJ$fs;I&Zb|CI;3Z!I-}E$yb@`;23qEP~)5MSqasiYEj@_zPG(1{yShe?UQEfJ%ZWf~2ylK^|a` z+-&zX+wFeemhcRsr8ny(E}>5aw%i&?c{bfW-LC07yuv%b9Nq$nD@ zz-X^AU;7LX-(S0O&NKi6fPcdo9Tfvz)UiP@6bIqPnRsHZ(E(rpcU4^Hq=f|eSZWt9 zJ3FRg@KGW*qy>-phR(5pC$d-uJQV=HLzX%fPfbb+j+qHA@~Bq*xL~?yu`R&u>4iqh zPzAX~Uhxj}b-LIE9`iX3@Q4@XCbCRGpRCecK0L151+8{{uT0EJ)qlrG8J?BP?nKK+ zv^ow|GO8i(miu?(*=nhKVC0?Iyc<-6?0764ET>cnsrDJh)KdLO0@!hi>PMbz(s9rL2$i&<1f5fgy ze)@>+rVusNKL(u(G1E?>iN$E0X5p_8LgOMEzNN{hBI=a`kA#{fx&x4H0k|LY18iDl h6baU7<;Mba#V-s0gRunzkJkVI002ovPDHLkV1g$|EGhs1 literal 3500 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 LNkvXXu0mjf?Q1yM literal 3250 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 diff --git a/extras/chrome_extension/images/logo.png b/extras/chrome_extension/images/logo.png index 16bf2033228761ca6b055f093529cdb3226dc8de..3305749f7a36769de4c11107bd7943f79d1cb23c 100644 GIT binary patch literal 3715 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 diff --git a/extras/chrome_extension/images/refresh.png b/extras/chrome_extension/images/refresh.png index d4c16a67a0d8df5fe7039ed6fa27bd4134055585..38fff50ea6b6d50585d0138311f4984fb06b56b0 100644 GIT binary patch delta 362 zcmV-w0hRvs1E&L!B#}8Ke@RJ1K~#9!Vqm}qns(|H00a;U&jCaO1Q3k#9!mcQ(M(VY z0Vpj9A^-x20hg%=tw3TwlEiwDIf+P$0{{XDU8@6(2IBibY=A7805cm&>^!;?(7IX z1=$b84?tD|#TT+bHG?Dtfp&g?@+U&Wcs~Pj=wq?+KNBH$!4!Nzjb=!o0jUMZVF9xS z6c(T;_yBa1AV7eT6a*-7g#;L}Cxk?U1*AYD2Ebh9fNaP{C|ys4D-57176c|R zV#&(=FiEJ_KA`0+kh}pj+!R6bj5us^fV#*5i}V6e217O+0QlsEhw_Kc>;M1&07*qo IM6N<$f= z1`y2%B47X@fZ!Y^5RtWCQvo1=KfVR1bXh(VI^ zuy8{5Cdga-P=ybHk_sROK!Bkn6sXZ4pXB3k(?^hhJW%rlWI<3+C;$Z?UAa_F9 zAj1=oTmg16EY*Px0n+!8B<}%nF)Yfk1O&2WV1qzu_yLgP2#O_8Bmnu!xD0>-2PAer zJOKeU9YBsa0suK452B<(XrO{zU=MXw0W6Wh^CLtaIouMkrP2df5+gPMPM{dsA4@7S hK=c0^0jRez007?K+5Chf?6?2`002ovPDHLkV1lk;p3?vT diff --git a/extras/chrome_extension/images/spinny.gif b/extras/chrome_extension/images/spinny.gif index bb6d8f7ca8ded0f9a208e807614cc3004b64614f..6bf2309a0bc72cc04f146a81a590c710fbefa1a6 100644 GIT binary patch literal 3322 zcmaJ@30zY77RIzJTP6?@1oVpg!oCP7Ac|Y5nOWH~HKS@WuC zn>MXx9Lp9b+xLCn_kG{jc^8|?H}CZ>{C?c~=bZ05=R4o;KuTINUm)*`>WjJsP%Bof zSiE@g{Q2{hO68O(QzlKCB$vyZo13*-?Scgh%FD|Y3dN{Vqq4KJv$C?%)6=C=>4y&= zo;-Q-^5x67Z{Oa$dGq}F^S5u`e)#a=yLa#Q@8AFN~gh3C(oU%q_#=+UDmPo8}6;KBR%@9*5XbLh~abLY-oyLRo~y?dumpT2nU z;@PujpFVwhdKWXckkZa zw{PF_<;!>N+6BY#{rmTqEnBvB?b=P7Hf`Is&15pQx3{;nv@|s}?cTk6>(;FsH*Q?L zdiBDE3)ih%S65f3*Xy@z*-}*tlcIj{5p~r_;G}=gz9Cs`2B;uUWHZ z<;s=Yw{NeltzEQe(cZm#*RNlH`0(MSOP98`wzjpkZP>73^XAQa_UxH6XU@EN^Oh`G z($LVL)9Fe}OQ%hnW-u7?^771Pvsf&a$z-{?xo_UQxpCvhr%#{$>bL^`>Y168GbmA- zmBgYk+}%(p6mpcCkp;=*8aeVACn+tK=TA^*pghIc!Xgpn@uoHkR9GOQ4CQ7pGKv!w z;|f!!s}+N$XXfNjpO7yoph(0}T&b{BS*%oOG(GD$NrKFe2i|I@n!`0H4z>JLl zAF5P-jV{q-E56nHKY>efrWGsb*@_a?WOcp*2@i5n6$=y93b{t5&QYl*eo--NoJylA z8K)|S5(n|1@CbTLzMJbZgR&T5mMPSQQxpZsYLyb| zXj)kK{aX0n#rr$A;QO@*zMD%&ilMtk+iBEaju8L2Zoe8AdH8C5MG@k6HDYYHzdn8Z z@c!M~H?Lp4eDVC*(gZG*Va^5IUTbq?G@!VtHoSqGQu-w0E1qqoj$E}>XgZv67{5FRgrSy zgz<&r#*R@Gnc^Icye_L8nopqaq{1!$L!XgD8PefIpc;^dsPXaXwgY47%?ReR}um>D8mVXSc2% z?p=`e5ct-kYgZINMI)O6S>b(AD9_dz27?}kwWKm*nO;wX(1ws`7!zT)=|gn}D$Wot zAk@Q9AlfHD&yIvm27D~pzzo6Dd^iUG{vvZwU;vq48!V8fY%kN|ylpY@R+vPkL}J!7 zvWF$Rg?Q7Wnc-*P%*5QBP#fjooQUi7_|Q;qER4m{*|ajepO4{9?GtF`;qDR|XXJ*K z-2=MyCTBf78s9G8p2UfJI`eAEZm-me4->B#yYK2LLBFx8m;UPX?7R4bN0)EybVa$L zdZKzE?ZnRjFb*y=TdZbZ8yp9;VHH+gAkW*1rt0k=DD}sbYBME0s|Uj(>Ed4&W5)OT zL9VR<$$h2PcmfEonE4H~2dW#&6M3OLBWC~*poPt}=;&As92^zjPXhSaWHZ4(t?OVc zOa=W$r2a#v{`%<{xc0JGr z;KEpy5g9d3d~lYE9bu0cng&FJqU`vfJ{;h^EEX2R1E<&91K=1pjPp=sCz>t@P45nx zVKaapm_njWR%@td-x52Jk@xy&gn>at@G`W3eJY0lA4jJX#Q-0pHTGf}e^&;^W2Lgtii;$U-FYM&$!HNcyttKdfhLOwM-Kx@_~c>7P zKw|FPrSWG!4?(I#$CF^B%5DXK8)UO8dP{(!js;qhXm~&*#{gK47*54+ z#$Z5^U>w`Rx9!-uYuBHzn^*Cboz`c*|Ccp3~e3*d6J>t3z}V0t_&C zBMhOzfGjwJjQm)DiNh+U@c|^LEyVUg8JUq|c_VrQEC?Xa1sS67`M}#^z*#o3I?L~Y zAol369~VK4A;V@kE*|E@uq*t4(%l~f>P2A$j}$YND*34dXe}T%gtm0$%Gy5W1 zHg>AbrEZ@NbqBke){=}Cpf`$fuvlviMfNV>jfkD!;JU_R(rc)zcqk&2-7eV75i_tE5tzn literal 1548 zcmaLXdrVVT00!{Wa%pc%DQzjN47#+!urY%vY8@=p^}ZaBU@sh zw7?+6Mxx@Q7UpoeOx)Z|KrA9)K?_)obz2a+PMkah#>Q}2SW(=TBf#5rDtb%X)j20qbpDU_|EghJ+plH>cShxX3ATKZMT1# zSzO6JJiWTQ%3k%8OJ2`SO;JctiUSAn277|FTwFCi$vSs?Ej}HJ9KXvktMj_$tes?knGG{&!zCMq&*Y zZCnmELl(|ckZJxh2(7Aj=Vw)Kb*(CmY&D_14RzW{`4r(liN$+XXvS=8zjK~Y{!=US97)eZGWCoJDkxstGoL81=`s$B$KJwKl zQ&>E1t3M7=Trhl+-Yo@2R%OUYog25S+Fr_xiO0*M>jbetw{CF-^9hH+&( z6$z`?4qiZlVZZbN6S9fuyZ51q;ZYoh(a`6k+~wMML87sm5h@wCq9R*`Y5eYOj8T<& zR2O>{n=xI*`EC1WmM50mu%D(#++ks2+pFa@gY&Xvk}m(<8^zpHqaBs&AbP?r^Y#P(Ovqp& zYY811nV4VdTu77}D$N6Pc+u3w^Y^Y8hhwa$$3 vKziySQhUXjaZD0nHZIqT+&qi?9>nxT`SxffD-PF>x&cD8d0ZD%X?TQW5 diff --git a/extras/chrome_extension/js/popup.js b/extras/chrome_extension/js/popup.js index d306521e64..a543a7dce9 100644 --- a/extras/chrome_extension/js/popup.js +++ b/extras/chrome_extension/js/popup.js @@ -10,6 +10,7 @@ $(document).ready(function(){ // Display the information if (bg.fetchEvents().length == 0) { showError("Error in fetching data!! Check your internet connection"); + $('#events_title').hide(); } else { showEvents(); } @@ -54,11 +55,13 @@ function unsetSpinner() { function clearError() { $('.error').hide(); $('.error a').text(""); + $('.result').css('height', null); } function showError(text){ $('.error a').text(text); $('.error').show(); + $('.result').height(420); } function showEvents(){ @@ -77,6 +80,7 @@ function showEvents(){ var i=0; if(allEvents.length>0){ + $('#events_title').show(); while(i + @@ -17,11 +18,14 @@
-

Error

- + +
+

ERROR

+ +
-

Events

+

Events

From 14db564be7c2192127d99e866176f8d8ba45fd92 Mon Sep 17 00:00:00 2001 From: fermin831 Date: Thu, 30 Nov 2017 18:15:59 +0100 Subject: [PATCH 15/83] Second style fixing in chrome events extension --- extras/chrome_extension/css/popup.css | 63 ++++++++++++++++------- extras/chrome_extension/images/error.png | Bin 1488 -> 1194 bytes extras/chrome_extension/images/minus.gif | Bin 91 -> 0 bytes extras/chrome_extension/images/minus.png | Bin 0 -> 353 bytes extras/chrome_extension/images/plus.gif | Bin 95 -> 0 bytes extras/chrome_extension/images/plus.png | Bin 0 -> 353 bytes extras/chrome_extension/js/popup.js | 17 +++--- extras/chrome_extension/popup.html | 23 +++++---- 8 files changed, 64 insertions(+), 39 deletions(-) delete mode 100644 extras/chrome_extension/images/minus.gif create mode 100644 extras/chrome_extension/images/minus.png delete mode 100644 extras/chrome_extension/images/plus.gif create mode 100644 extras/chrome_extension/images/plus.png diff --git a/extras/chrome_extension/css/popup.css b/extras/chrome_extension/css/popup.css index a3e880e04f..53acbeed37 100644 --- a/extras/chrome_extension/css/popup.css +++ b/extras/chrome_extension/css/popup.css @@ -12,7 +12,7 @@ body { h1 { font-weight: bold; font-size: 14px; - margin: 12px 0px 2px 0px; + margin: 2px 0px 2px 0px; } h2 { color : black; @@ -42,7 +42,8 @@ span.res { img.pm { margin-right: 3px; cursor: pointer; - margin-top: 0px; + margin-top: 2px; + float: right; } div.main { background-color: white; @@ -64,16 +65,8 @@ div.b { div.b p a { font-size: 10pt; } -div.b p { - margin: 0 0 0 12px; - padding-top: 2px; - display: none; - color: #333; - font-size: 8pt; -} div.b div.items p { margin: 2px 0px 8px 0px; - color: #333; width: 355px; float: left; display: block; @@ -141,6 +134,7 @@ div.options_footer { background: #f6f6f6; padding: 10px; margin: 10px; + margin-top: 35px; } .error_text { @@ -149,25 +143,56 @@ div.options_footer { .result { margin: 10px; - height: 520; + height: 500; overflow-y: auto; } #events_title { - border: 1px solid #e5e5e5; - text-align: center; padding: 5px 0; margin: 0; + padding-bottom: 10px; + border-bottom: 1px solid #e5e5e5; } .event { border: solid 1px #e5e5e5; border-top: 0; - padding: 3px 0; + padding: 5px 6px; + color: white; } -.sev-Warning { background: #FCED7E;} -.sev-Critical { background: #FA7A7A;} -.sev-Informational { background: #7FB9FA;} -.sev-Normal { background: #A8D96C;} -.sev-Maintenance { background: #BABDB6;} +.event a { + margin-left: 5px; + color: white; + font-size: 9pt; +} + +.sev-Warning a { + margin-left: 5px; + color: #333; +} + + +.event p { + margin: 0 0 0 6px; + padding-top: 2px; + display: none; + font-size: 8pt; +} + +.sev-Warning { + background: #FDDD30; + color: #333; +} +.sev-Critical { + background: #F84348; +} +.sev-Informational { + background: #4CA8E0; +} +.sev-Normal { + background: #84B839; +} +.sev-Maintenance { + background: #A8A8A8; +} \ No newline at end of file diff --git a/extras/chrome_extension/images/error.png b/extras/chrome_extension/images/error.png index d8dcc880f18139ad81918f3dac9ca3ecd3f7dbb6..af676eb8f15d1924139eed0ebb1c150d5bcb3e2b 100644 GIT binary patch delta 1172 zcmV;F1Z(@y3#thriBL{Q4GJ0x0000DNk~Le0000o0000o2nGNE0ckk6Cy^m1e*{cP zL_t(|+G1e90~le9KNc4MktJA8oM2=^mta1A9Ik)~Sv5%Fucam2BqnqTB%OwgP*vxF zlmWV(D6Ru4+KpAE=9$R|)k54hyqyg2~0Ho}Jcp-8Q1Ob2mq*mJvfG`Mj zH8*etH*kn9E}f-#C0=vF?T?TWj=FY~w*6jmS3{u2xamj( zYFu_K>V}DLgdXDJy`D1);o#4Z(Mx_}c9S+6umK~K5!wwHp+oSk+8B|_1lt&bf2f6o;K3#K@~695aGgv$XL!PFx)W^{mCXWm62&PT9a!?8;Rv;+X+vQ_cK1ErJ-gd1#32FAF4_SUwrhQ)@r(&n$+VLPbG?5D|vlYKcW}cCNM>a)`fuM%ooQaCS!@ z2$7)l+d&?`e0G)EWmf3;n?2Gq6s+x$)@En5*WhFtfS7IdK~tRJT9jxPdu2T_5JJOm moz)}%qY$0b>{EA9oQVez=|x%eaG6>F0000IzoyH!u*l zBA5c^_3JSmj>|nTH{o?S%y&cqfB+&sAn^tw!2m?|HUke21EZT8+*C$n-LQ}a1tN05 z1)>{`90kO=0Y|_D5)}>r0faY5e}Pu-2T~3&6M;5uASP8N0IB)J*pBRUf~l4OPy`zG zfCb6fID-|Qpg{@w%NJy!`yhwFV%7nx26TXG0BWwl7B!4kR$zlbDFHb(keuBK0C;RM z;)q%WsDBxV$!P!qMBPk>#Wevy3RYws0J^}DXhR5v3)V;=Ghh>ehAqG-fA~m@nfVy$ z1R5J80c1;=kdiOLkHE4BIoX5Q*s=lEavTQ!@7hI_W>}tM!leK`spClc4tNd0=K`X< zgKPlI1vm^1#9IP`>p3JZfC3v9RwUQQ#H3y(l8bhHWh|CVM|A#SB$OJl70fg#PXGci zUu`D&S`Kj+R%ZxLckW8Q3~!e{f*W*=ShTs(MQ} zq&uwn$G8AP?41LU=>4q_a*IqIE1CRGVasR>u93KHACCa+n7s|cFc5`D-g0TZ_q-HEi8KuAOoK^MC;qR z)9xAbJh3`U0N@hybCjO{sU!a7c;|1TE01v#m!sT-tjw@lt>pg4;b7e_q4UuoqCn z^RPBnBgl69)`bcM@CryGNC1F$N=w-K*98zhskfMK#o}<4FpJand5h2U>AY-UsXK?Xx9vK5{iK^{N7u$ z&?9&Q-Lmrv>`6ERChV0xiQGU4cVUY+@ZEqD812+zw6t&LwKK)~`iF!Kgx8PGbo$Sf zR}oX7_6+Em3FupnMx!tPh%h!l)Xc1lzBAMp;P&&(0>Lu3!0ti4CV;S7otbD|CTmYU zs2#FKe_@!)@yHFqmJ^Bxf-NQ}*LEfA3X^&4ufT(14|^H|)6h&fz}OE40u08F{hniY z%qctL%`yj~1dHW}dF`?;7D2;U9<^#`++Z+7Y`#z^0ua814hM@`(J%qG+nu$zoKlN_ zpH4*}_+T_u3jN3lBoHTX>hmGZr{LY|iX{mMe^_E9C0bs!6d2o-5PS`|1W>jV80+X_ zYdj`H(0w?S7oc{4z8eJ!Q$>mwUE&oe@pN#VKFKRksk=!%nFJk?aHr9Q77v8Z%UZd$ zQjb>i#pOQ%vBY|NLvgz9C=Pn@Kto|<1V!E*_k_=|`z9VRaP1#%M-73KU9YvM$gNM^ X6T`e-&lM#i00000NkvXXu0mjf9dVHW diff --git a/extras/chrome_extension/images/minus.gif b/extras/chrome_extension/images/minus.gif deleted file mode 100644 index 2e74ca7bb9834cec544986e980acfac6f5439f1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91 zcmZ?wbhEHbpV(UdO)VtycYIC$`&Axxql-Eg4Td?qN{0E>GC z00IcFZ(t4p>0A%BGaiTofp%Vi84GfNB1j#S4uDzQfaHk(NbCY81_r{xI3L**7$2sy z5h(B;DgmMkL2Q5kW5i)n0Gi(~03Esk!<$H61w~jRP|*Y|hJl=u55$h3Ab{I|9EI3? zjU@ISWC;sWlq^I_CJtCMgIof#bs{KiQDOud;3zf%#gM%t0Hi=JGej0t08;0n39S&Q z;RBk6eyGbpe*AzdR287k1L33d7#EB00000NkvXXu0mjf&5(ID literal 0 HcmV?d00001 diff --git a/extras/chrome_extension/images/plus.gif b/extras/chrome_extension/images/plus.gif deleted file mode 100644 index 47db223eb02371d90b9dffb37bbb22889fed142e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmZ?wbhEHb vGBB%X2uaB-mT>MXc`6XNpV(UdO)VtycYIC$`&Axxql-Eg4Td?qN{0E>GC z00IcFZ(t4p>0A%BGaiTofp%Vi84GfNB1j#S4uDzQfaHk(NbCY81_r{xI3L**7$2sy z5h(B;DgmMkL2Q5kW5i)n0Gi(~03Esk!<$H61w~jRP|*Y|hJl=u55$h3Ab{I|9EI3? zjU@ISWC;sWlq^I_CJtCMgIof#bs{KiQDOud;3zf%#gM%t0Hi=JGej0t08;0n39S&Q z;RBk6eyGbpe*AzdR287k1L33d7#EB00000NkvXXu0mjf&5(ID literal 0 HcmV?d00001 diff --git a/extras/chrome_extension/js/popup.js b/extras/chrome_extension/js/popup.js index a543a7dce9..e9f41c328f 100644 --- a/extras/chrome_extension/js/popup.js +++ b/extras/chrome_extension/js/popup.js @@ -10,7 +10,6 @@ $(document).ready(function(){ // Display the information if (bg.fetchEvents().length == 0) { showError("Error in fetching data!! Check your internet connection"); - $('#events_title').hide(); } else { showEvents(); } @@ -80,16 +79,15 @@ function showEvents(){ var i=0; if(allEvents.length>0){ - $('#events_title').show(); while(i
-
- -
-

ERROR

- +
+
+
+ +
+
+

ERROR

+ +
-
-
-

Events

-
-
+
+
+
+
From ea03a485c1963c8d97eff91438688477523df535 Mon Sep 17 00:00:00 2001 From: daniel Date: Fri, 1 Dec 2017 12:26:13 +0100 Subject: [PATCH 16/83] fixed error server WUX --- pandora_server/conf/pandora_server.conf.new | 3 +++ pandora_server/lib/PandoraFMS/Config.pm | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/pandora_server/conf/pandora_server.conf.new b/pandora_server/conf/pandora_server.conf.new index c50235daa7..63ca6281d1 100644 --- a/pandora_server/conf/pandora_server.conf.new +++ b/pandora_server/conf/pandora_server.conf.new @@ -569,6 +569,9 @@ wuxserver 0 # Port of the Selenium Grid Server. #wux_port 4444 +# Maximum timeout to connect to a target web site, also for communications with a Selenium Grid server. +#wux_webagent_timeout 15 + # Enable (1) or disable (0) the Pandora FMS Syslog Server (PANDORA FMS ENTERPRISE ONLY). syslogserver 1 diff --git a/pandora_server/lib/PandoraFMS/Config.pm b/pandora_server/lib/PandoraFMS/Config.pm index 3c916a461c..0a87efe40f 100644 --- a/pandora_server/lib/PandoraFMS/Config.pm +++ b/pandora_server/lib/PandoraFMS/Config.pm @@ -453,6 +453,7 @@ sub pandora_load_config { $pa_config->{"wux_host"} = undef; # 7.0 $pa_config->{"wux_port"} = 4444; # 7.0 $pa_config->{"wux_browser"} = "*firefox"; # 7.0 + $pa_config->{"wux_webagent_timeout"} = 15; # 7.0 # Syslog Server $pa_config->{"syslogserver"} = 1; # 7.0.716 @@ -1064,6 +1065,9 @@ sub pandora_load_config { elsif ($parametro =~ m/^wux_browser\s+(.*)/i) { $pa_config->{'wux_browser'}= clean_blank($1); } + elsif ($parametro =~ m/^wux_webagent_timeout\s+([0-9]*)/i) { + $pa_config->{'wux_webagent_timeout'}= clean_blank($1); + } elsif ($parametro =~ m/^syslogserver\s+([0-1])/i) { $pa_config->{'syslogserver'}= clean_blank($1); } From 9a976ae8c80e4efe60922f7b7f94d658ebc95d03 Mon Sep 17 00:00:00 2001 From: daniel Date: Fri, 1 Dec 2017 12:44:35 +0100 Subject: [PATCH 17/83] fixed minor error pandora_server.conf --- pandora_server/conf/pandora_server.conf.new | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pandora_server/conf/pandora_server.conf.new b/pandora_server/conf/pandora_server.conf.new index c50235daa7..5ff07a62ab 100644 --- a/pandora_server/conf/pandora_server.conf.new +++ b/pandora_server/conf/pandora_server.conf.new @@ -581,3 +581,7 @@ syslog_threads 2 # Maximum number of lines queued by the Syslog Server's producer on each run (PANDORA FMS ENTERPRISE ONLY). syslog_max 65535 +# Target LogStash server, to allow Dataserver and SyslogServer store log information in ElasticSearch +#logstash_host ip +#logstash_port 10514 + From dab2525355bbc15bd295a6d559b8ac3d938b3b43 Mon Sep 17 00:00:00 2001 From: danielmaya Date: Fri, 1 Dec 2017 13:32:50 +0100 Subject: [PATCH 18/83] Fixed jquery error --- pandora_console/include/graphs/flot/pandora.flot.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pandora_console/include/graphs/flot/pandora.flot.js b/pandora_console/include/graphs/flot/pandora.flot.js index 6fe97ae606..879197d6d1 100644 --- a/pandora_console/include/graphs/flot/pandora.flot.js +++ b/pandora_console/include/graphs/flot/pandora.flot.js @@ -213,21 +213,19 @@ function pandoraFlotPieCustom(graph_id, values, labels, width, } //$('.legend>table').css('border',"1px solid #E2E2E2"); - if(background_color == 'transparent'){ + if(background_color == 'transparent') { $('.legend>table').css('background-color',""); $('.legend>div').css('background-color',""); $('.legend>table').css('color',"#aaa"); - } - else if (background_color == 'white') { + } else if (background_color == 'white') { $('.legend>table').css('background-color',"white"); $('.legend>table').css('color',"black"); - } - else if (background_color == 'black') { + } else if (background_color == 'black') { $('.legend>table').css('background-color',"black"); $('.legend>table').css('color',"#aaa"); } - $('.legend').over(function(){ + $('.legend').hover(function() { return false; }); From 1e5eec6e3128174c646b1f9b4c7a7845bb691ed6 Mon Sep 17 00:00:00 2001 From: fermin831 Date: Fri, 1 Dec 2017 14:36:11 +0100 Subject: [PATCH 19/83] End to change chrome extension styles --- extras/chrome_extension/css/popup.css | 78 +++++++++++++++++---- extras/chrome_extension/images/gear.png | Bin 457 -> 468 bytes extras/chrome_extension/images/minus.png | Bin 353 -> 350 bytes extras/chrome_extension/images/refresh.png | Bin 423 -> 428 bytes extras/chrome_extension/js/options.js | 8 +-- extras/chrome_extension/options.html | 33 ++++----- 6 files changed, 84 insertions(+), 35 deletions(-) diff --git a/extras/chrome_extension/css/popup.css b/extras/chrome_extension/css/popup.css index 53acbeed37..a736abea57 100644 --- a/extras/chrome_extension/css/popup.css +++ b/extras/chrome_extension/css/popup.css @@ -15,7 +15,7 @@ h1 { margin: 2px 0px 2px 0px; } h2 { - color : black; + color : #333; } p { font-size: 20px; @@ -81,22 +81,33 @@ div.options_header { } div.options_divider { - width: 100%; - background-color: #C8C8C8; + width: 627px; + margin-top: 30px; } -div.optionsG_textarea { - background-color: green; - width: 450px; - margin: 5px, 10px; +div.options_divider h2{ + margin: 20px 20px 0; + padding: 5px; + font-weight: 500; + border: 2px solid #82b92e; + border-top-left-radius: 2px; + border-top-right-radius: 2px; + color: white; + text-align: center; + background: #82b92e; + font-size: 14px; + font-weight: 600; } + div.options_textarea { - background-color: #ebebeb; + background-color: #f6f6f6; width: 550px; - margin: 10px 10px; - padding: 10px; - -webkit-border-radius: 10px; - border: 2px solid #c8c8c8; + margin: 0 20px; + padding: 10px 10px 25px 25px; + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; + border: 1px solid #e4e4e4; + border-top: 0; } div.options_footer { @@ -105,6 +116,48 @@ div.options_footer { padding: 10px; } +select { + background: white; + border: 1px solid #888; + font-size: smaller; + padding: 2px 1px; + width: 250px; +} + +.sound_selector td:first-child { + padding-left: 25px; + width: 39%; +} + +.options_textarea button { + background-color: #82b92e; + border: 1px solid #82b92e; + color: white; + padding: 6px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 12px; + border-radius: 2px; + margin: 25px 0px 0px 422px; +} + +.options_textarea button:hover { + background-color: transparent; + color: #82b92e; + cursor: pointer; +} + +.options_textarea h3 { + text-align: left; + font-size: 11.4pt; +} + +button h3 { + margin: 0; + font-size: 10pt !important; +} + .tooltip { display: none; font-size: 12px; @@ -172,7 +225,6 @@ div.options_footer { color: #333; } - .event p { margin: 0 0 0 6px; padding-top: 2px; diff --git a/extras/chrome_extension/images/gear.png b/extras/chrome_extension/images/gear.png index 428b2942e0b73595dd60d5189e5f1aa25a0f43ab..bc064777f9bc25abc2110b70a6a128ccb166734c 100644 GIT binary patch delta 405 zcmV;G0c!rq1JnbMNq=@pL_t(|+G1b;0(*OV0S0sc5I}Im2$cR0VgLjXBUJ5wn9RY0 z2N{{5Y(Xf!0Ym@<5Cc@D09*P|OA2oOMw$Zmj2d;sDHKx_cA z8QDo7=f8*P1mb=mhFRXo0%g2MGH^YbCnq3V9K0AfIMQvtddGcrd( zLE$(M3jpyBAintU;lmpkVTc3@f%pI{JTE}$2T&g|Kz(%{rU2$WM_^cNK#mbcsEhaG zh|dpK+&kcf+PU4-w=ocfOtO8cu*8v00=Nf9N~c+4UIs>4N$TBAfEwoBGdo| zc-%oX8h|1dntyr{pgzS4U=feakn>PONCk>aNTwU2q+vu5GeT{4L=R1ap0850ryNYCaZ2K;gr{1a$?-5JRYq3y>5BKm+(al#PyxFJU`2mklVwjh+=03rYahykin0ojcGK-vMO8l-I@l%oj5>(LDl1PCBTWH&%1J^=9pAT|Km zjO-+k^WVdC0&zbO!z^!Pfim7B8Mq$JlM|4wascA@Fl#}4n138V05PDssQ@Faus9lI zG)Q3}(9s((!Vn1*0`UP@cwT_g51>9`fcok@OaaV$jv!-^V}udv;{7<{^8+KA1CaqJ z8WmWO1VHv10&xHk&j%V0ih>IO0mg_UJdmTI5vaHUDs~^_Gaycc8h{#BKt%?iNQI`J z1gKB30$9XjGk@ef)DTjEA`_D7hA3$m5yXs8n;p?Z6Y8x8EKpZ80I7N`w&VllV3C@S z#Sl>VFfc(~0W!o8YU2VVg#pk2eh+0M0|i)|Gh&GuP@v97iqZ$ru!7}#MUWS8rew4z o7C=@E6ayK25EO36(F+0qSh|1zjH@*e00000NkvXXt^-0~g2=>|JOBUy diff --git a/extras/chrome_extension/images/minus.png b/extras/chrome_extension/images/minus.png index 2666d189e37dd6e8fe501d852e28fbd6598d47d7..380d9112b863b9ac14af7ff961bdc0be53eed15b 100644 GIT binary patch delta 286 zcmV+(0pb4P0^S0UNq+!IL_t(|+G1cp2LJ(titO#}3jhKLUEn<`3^Ksz_U%wLaYp95F}h=C)3)-y3M5PuHF^XT3H8H?C)y1;%o111X)Kp1-N!`Mtf zyaC2xL^cs1fEdw~F9c$KAa*!-@Sq_~q95IGpxAsSDBA#wdj$Xj2(NEo4gl#~54AHM zhy#IkUVs@3a)2U89h44$S=@l+i2q3J0wx9q!ofHn*%TNbrhl^$DDWOC0ip{*Y=8h` z#9>kZn%^$~9l8O-n@C;-MOY(H(F81pft-^M#EzgKfZKo^h1h(JB=#O;2@6t`EJR8s z4p=mUTmrInA}DN8VgwrCC^iDcki8=Sq(Ck+L>5#4QsL33d7#EB00000NkvXXu0mjf>MU$7 diff --git a/extras/chrome_extension/images/refresh.png b/extras/chrome_extension/images/refresh.png index 38fff50ea6b6d50585d0138311f4984fb06b56b0..3f81fdde0d29f12be4b6eb425c0e68a7fd210621 100644 GIT binary patch delta 364 zcmV-y0h9ix1FQp(NqqGgaDLY z03rYahyjhofn{{Z2;m#CV!ZNffTZXKLBw6Q1J&A zr~oLW1VI8&ej>;;aL8c|AS8z~;c^^MQUN(U8qos{2tdXwBKx8rNEIL{2n4!m13-W= zG7t%%!2t5@1tia4hB#8N?1!eN13(RqNbbImro0g--@t@sz~cA z2qFLihyj3 z`z1plbpfa_fDuV&KaeT_;sZde0L6wt#TNhqh=C*kG)VyFUw^2n3@lIqkn7Kbj0M>b z#1BAL0>u}yKsAFT1%Y;cfbu6o!+1Xfa_D2R@;?(Hcfk~VK#gWdpaH1`$YBAq1{4;c zDEI($lORBVkrV_dafJjJu_y*9Tn`QLMxad%Na6S%P5B0(d>|7R_k-{UXz(>4#WhH5 z1DYWRQCtEvU|>FwN Pandora FMS extension + @@ -35,23 +36,18 @@ -
-
+
- - + - - - - - + - + - + - + - + - - +

Event Alert Sounds Configuration

Sound Alerts + Sound Alerts On Off
SeveritySound Type
Critical
Informational
Maintenance
Normal
Warning
Auto Refresh Time + Auto Refresh Time
Number of events - @@ -173,10 +169,11 @@
+ +
From 767087aaee6107e59106f1dde42da6dff7b7b5a9 Mon Sep 17 00:00:00 2001 From: enriquecd Date: Tue, 5 Dec 2017 17:14:52 +0100 Subject: [PATCH 20/83] Redirect to desktop version pandora when scan agent view QR with a mobilephone in desktop mode web browser - #1678 --- pandora_console/mobile/operation/agent.php | 31 +++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/pandora_console/mobile/operation/agent.php b/pandora_console/mobile/operation/agent.php index c104857683..7de8fc96fc 100644 --- a/pandora_console/mobile/operation/agent.php +++ b/pandora_console/mobile/operation/agent.php @@ -11,7 +11,6 @@ // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. - include_once("../include/functions_users.php"); class Agent { @@ -24,6 +23,28 @@ class Agent { $this->id = $system->getRequest('id', 0); + global $config; + + echo ""; + if (!$system->getConfig('metaconsole')) { $this->agent = agents_get_agents(array( 'disabled' => 0, @@ -95,6 +116,9 @@ class Agent { $ui = Ui::getInstance(); $system = System::getInstance(); + + + $ui->createPage(); if ($this->id != 0) { @@ -352,4 +376,9 @@ class Agent { $ui->endContent(); $ui->showPage(); } + } + + + +?> \ No newline at end of file From a5fe4d58a53a1054a1c097a8036d1028d72e6ec4 Mon Sep 17 00:00:00 2001 From: enriquecd Date: Tue, 5 Dec 2017 19:39:26 +0100 Subject: [PATCH 21/83] Show real case in login page titles - #1672 --- pandora_console/general/login_page.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandora_console/general/login_page.php b/pandora_console/general/login_page.php index 5e9278a854..644334edc3 100755 --- a/pandora_console/general/login_page.php +++ b/pandora_console/general/login_page.php @@ -236,7 +236,7 @@ echo '