diff --git a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.mysql.sql b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.mysql.sql index 61ec1bc8ff..b5a8ca7aa3 100755 --- a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.mysql.sql +++ b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.mysql.sql @@ -10,7 +10,7 @@ ALTER TABLE tlayout DROP COLUMN fullscreen; ALTER TABLE tlayout_data DROP COLUMN no_link_color; ALTER TABLE tlayout_data DROP COLUMN label_color; - - - +ALTER TABLE tlayout_data ADD COLUMN `border_width` INTEGER UNSIGNED NOT NULL default 0; +ALTER TABLE tlayout_data ADD COLUMN `border_color` varchar(200) DEFAULT ""; +ALTER TABLE tlayout_data ADD COLUMN `fill_color` varchar(200) DEFAULT ""; diff --git a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.oracle.sql b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.oracle.sql index 615dfb4db2..182394c445 100755 --- a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.oracle.sql +++ b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.oracle.sql @@ -9,4 +9,7 @@ ALTER TABLE tlayout DROP COLUMN fullscreen; -- --------------------------------------------------------------------- ALTER TABLE tlayout_data DROP COLUMN no_link_color; -ALTER TABLE tlayout_data DROP COLUMN label_color; \ No newline at end of file +ALTER TABLE tlayout_data DROP COLUMN label_color; +ALTER TABLE tlayout_data ADD COLUMN border_width INTEGER NOT NULL default 0; +ALTER TABLE tlayout_data ADD COLUMN border_color varchar(200) DEFAULT ""; +ALTER TABLE tlayout_data ADD COLUMN fill_color varchar(200) DEFAULT ""; \ No newline at end of file diff --git a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.postgreSQL.sql b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.postgreSQL.sql index 46d9a47fdd..81ae7e6c05 100755 --- a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.postgreSQL.sql +++ b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.postgreSQL.sql @@ -9,4 +9,7 @@ ALTER TABLE "tlayout" DROP COLUMN "fullscreen"; -- --------------------------------------------------------------------- ALTER TABLE "tlayout_data" DROP COLUMN "no_link_color"; -ALTER TABLE "tlayout_data" DROP COLUMN "label_color"; \ No newline at end of file +ALTER TABLE "tlayout_data" DROP COLUMN "label_color"; +ALTER TABLE "tlayout_data" ADD COLUMN "border_width" INTEGER NOT NULL default 0; +ALTER TABLE "tlayout_data" ADD COLUMN "border_color" varchar(200) DEFAULT ""; +ALTER TABLE "tlayout_data" ADD COLUMN "fill_color" varchar(200) DEFAULT ""; \ No newline at end of file diff --git a/pandora_console/godmode/reporting/visual_console_builder.editor.js b/pandora_console/godmode/reporting/visual_console_builder.editor.js index 47f37587d8..6bccd80797 100755 --- a/pandora_console/godmode/reporting/visual_console_builder.editor.js +++ b/pandora_console/godmode/reporting/visual_console_builder.editor.js @@ -129,6 +129,8 @@ function update_button_palette_callback() { idElement = 0; break; + case 'box_item': + break; case 'group_item': case 'static_graph': $("#text_" + idItem).html(values['label']); @@ -245,6 +247,14 @@ function readFields() { values['id_group'] = $("select[name=group]").val(); values['id_custom_graph'] = parseInt( $("#custom_graph option:selected").val()); + values['width_box'] = parseInt( + $("input[name='width_box']").val()); + values['height_box'] = parseInt( + $("input[name='height_box']").val()); + values['border_color'] = $("input[name='border_color']").val(); + values['border_width'] = parseInt( + $("input[name='border_width']").val()); + values['fill_color'] = $("input[name='fill_color']").val(); if (metaconsole != 0) { values['metaconsole'] = 1; @@ -271,6 +281,8 @@ function create_button_palette_callback() { //VALIDATE DATA var validate = true; switch (creationItem) { + case 'box_item': + break; case 'group_item': case 'static_graph': if ((values['label'] == '') && (values['image'] == '')) { @@ -362,6 +374,7 @@ function toggle_item_palette() { activeToolboxButton('icon', true); activeToolboxButton('percentile_item', true); activeToolboxButton('group_item', true); + activeToolboxButton('box_item', true); if (typeof(enterprise_activeToolboxButton) == 'function') { enterprise_activeToolboxButton(true); @@ -386,6 +399,7 @@ function toggle_item_palette() { activeToolboxButton('icon', false); activeToolboxButton('percentile_item', false); activeToolboxButton('group_item', false); + activeToolboxButton('box_item', false); activeToolboxButton('copy_item', false); activeToolboxButton('edit_item', false); @@ -553,14 +567,22 @@ function loadFieldsFromDB(item) { $('#' + periodId + '_manual').show(); } } - if (key == 'width') $("input[name=width]").val(val); - if (key == 'height') $("input[name=height]").val(val); - if (key == 'parent_item') $("select[name=parent]").val(val); - if (key == 'id_layout_linked') $("select[name=map_linked]").val(val); - if (key == 'width_percentile') $("input[name=width_percentile]").val(val); - if (key == 'max_percentile') $("input[name=max_percentile]").val(val); - if (key == 'width_module_graph') $("input[name=width_module_graph]").val(val); - if (key == 'height_module_graph') $("input[name=height_module_graph]").val(val); + if (key == 'width') + $("input[name=width]").val(val); + if (key == 'height') + $("input[name=height]").val(val); + if (key == 'parent_item') + $("select[name=parent]").val(val); + if (key == 'id_layout_linked') + $("select[name=map_linked]").val(val); + if (key == 'width_percentile') + $("input[name=width_percentile]").val(val); + if (key == 'max_percentile') + $("input[name=max_percentile]").val(val); + if (key == 'width_module_graph') + $("input[name=width_module_graph]").val(val); + if (key == 'height_module_graph') + $("input[name=height_module_graph]").val(val); if (key == 'type_percentile') { if (val == 'percentile') { @@ -597,8 +619,19 @@ function loadFieldsFromDB(item) { $("#id_server_name").val(val); } } + + if (key == 'width_box') + $("input[name='width_box']").val(val); + if (key == 'height_box') + $("input[name='height_box']").val(val); + if (key == 'border_color') + $("input[name='border_color']").val(val); + if (key == 'border_width') + $("input[name='border_width']").val(val); + if (key == 'fill_color') + $("input[name='fill_color']").val(val); }); - + if (data.type == 1) { if (data.id_custom_graph > 0) { $("input[name='radio_choice'][value='custom_graph']") @@ -757,6 +790,18 @@ function hiddenFields(item) { $("#custom_graph_row").css('display', 'none'); $("#custom_graph_row." + item).css('display', ''); + $("#box_size_row").css('display', 'none'); + $("#box_size_row." + item).css('display', ''); + + $("#border_color_row").css('display', 'none'); + $("#border_color_row." + item).css('display', ''); + + $("#border_width_row").css('display', 'none'); + $("#border_width_row." + item).css('display', ''); + + $("#fill_color_row").css('display', 'none'); + $("#fill_color_row." + item).css('display', ''); + $("input[name='radio_choice']").trigger('change'); if (typeof(enterprise_hiddenFields) == 'function') { @@ -791,6 +836,13 @@ function cleanFields(item) { $("select[name=map_linked]").val(''); $("input[name=width_module_graph]").val(300); $("input[name=height_module_graph]").val(180); + $("input[name='width_box']").val(300); + $("input[name='height_box']").val(180); + $("input[name='border_color']").val('#000000'); + $("input[name='border_width']").val(3); + $("input[name='fill_color']").val('#ffffff'); + + $("#preview").empty(); @@ -1138,6 +1190,8 @@ function createItem(type, values, id_data) { } switch (type) { + case 'box_item': + break; case 'group_item': case 'static_graph': if ((values['width'] == 0) && (values['height'] == 0)) { @@ -1694,10 +1748,12 @@ function activeToolboxButton(id, active) { } if (active) { - $("input." + id + "[name=button_toolbox2]").removeAttr('disabled'); + $("input." + id + "[name=button_toolbox2]") + .removeAttr('disabled'); } else { - $("input." + id + "[name=button_toolbox2]").attr('disabled', true); + $("input." + id + "[name=button_toolbox2]") + .attr('disabled', true); } } @@ -1734,6 +1790,15 @@ function eventsItems(drag) { unselectAll(); $(divParent).css('border', '2px blue dotted'); + if ($(divParent).hasClass('box_item')) { + creationItem = null; + selectedItem = 'box_item'; + idItem = $(divParent).attr('id'); + activeToolboxButton('copy_item', true); + activeToolboxButton('edit_item', true); + activeToolboxButton('delete_item', true); + activeToolboxButton('show_grid', false); + } if ($(divParent).hasClass('static_graph')) { creationItem = null; selectedItem = 'static_graph'; @@ -1824,6 +1889,9 @@ function eventsItems(drag) { $(event.target).css('border', '2px blue dotted'); selectedItem = null; + if ($(event.target).hasClass('box_item')) { + selectedItem = 'box_item'; + } if ($(event.target).hasClass('static_graph')) { selectedItem = 'static_graph'; } @@ -1996,6 +2064,10 @@ function click_button_toolbox(id) { toolbuttonActive = creationItem = 'group_item'; toggle_item_palette(); break; + case 'box_item': + toolbuttonActive = creationItem = 'box_item'; + toggle_item_palette(); + break; diff --git a/pandora_console/include/ajax/visual_console_builder.ajax.php b/pandora_console/include/ajax/visual_console_builder.ajax.php index 651fb8b93d..50e8adfddd 100755 --- a/pandora_console/include/ajax/visual_console_builder.ajax.php +++ b/pandora_console/include/ajax/visual_console_builder.ajax.php @@ -71,6 +71,13 @@ $id_agent = get_parameter('id_agent', null); $id_metaconsole = get_parameter('id_metaconsole', null); $id_group = (int)get_parameter('id_group', 0); $id_custom_graph = get_parameter('id_custom_graph', null); +$height_module_graph = get_parameter('id_custom_graph', null); +$width_module_graph = get_parameter('id_custom_graph', null); +$border_width = get_parameter('border_width', 0); +$border_color = get_parameter('border_color', ''); +$fill_color = get_parameter('fill_color', ''); +$width_box = get_parameter('width_box', 0); +$height_box = get_parameter('height_box', 0); $get_element_status = get_parameter('get_element_status', 0); $get_image_path_status = get_parameter('get_image_path_status', 0); @@ -612,6 +619,15 @@ switch ($action) { $values['id_custom_graph'] = $id_custom_graph; switch ($type) { + case 'box_item': + $values['type'] = BOX_ITEM; + $values['border_width'] = $border_width; + $values['border_color'] = $border_color; + $values['fill_color'] = $fill_color; + $values['period'] = $period; + $values['width'] = $width_box; + $values['height'] = $height_box; + break; case 'module_graph': $values['type'] = MODULE_GRAPH; $values['height'] = $height_module_graph; diff --git a/pandora_console/include/constants.php b/pandora_console/include/constants.php index a59d22d874..16772c968e 100644 --- a/pandora_console/include/constants.php +++ b/pandora_console/include/constants.php @@ -61,38 +61,38 @@ define ('ERR_ACL', -110000); define ('ERR_AUTH', -120000); /* Event status code */ -define ('EVENT_STATUS_NEW',0); -define ('EVENT_STATUS_INPROCESS',2); -define ('EVENT_STATUS_VALIDATED',1); +define ('EVENT_STATUS_NEW', 0); +define ('EVENT_STATUS_INPROCESS', 2); +define ('EVENT_STATUS_VALIDATED', 1); /* Seconds in a time unit constants */ -define('SECONDS_1MINUTE', 60); -define('SECONDS_2MINUTES', 120); -define('SECONDS_5MINUTES', 300); -define('SECONDS_10MINUTES', 600); -define('SECONDS_15MINUTES', 900); -define('SECONDS_30MINUTES', 1800); -define('SECONDS_1HOUR', 3600); -define('SECONDS_2HOUR', 7200); -define('SECONDS_3HOUR', 10800); -define('SECONDS_5HOUR', 18000); -define('SECONDS_6HOURS', 21600); -define('SECONDS_12HOURS', 43200); -define('SECONDS_1DAY', 86400); -define('SECONDS_2DAY', 172800); -define('SECONDS_4DAY', 345600); -define('SECONDS_5DAY', 432000); -define('SECONDS_1WEEK', 604800); -define('SECONDS_10DAY', 864000); -define('SECONDS_2WEEK', 1209600); -define('SECONDS_15DAYS', 1296000); -define('SECONDS_1MONTH', 2592000); -define('SECONDS_2MONTHS', 5184000); -define('SECONDS_3MONTHS', 7776000); -define('SECONDS_6MONTHS', 15552000); -define('SECONDS_1YEAR', 31104000); -define('SECONDS_2YEARS', 62208000); -define('SECONDS_3YEARS', 93312000); +define('SECONDS_1MINUTE', 60); +define('SECONDS_2MINUTES', 120); +define('SECONDS_5MINUTES', 300); +define('SECONDS_10MINUTES', 600); +define('SECONDS_15MINUTES', 900); +define('SECONDS_30MINUTES', 1800); +define('SECONDS_1HOUR', 3600); +define('SECONDS_2HOUR', 7200); +define('SECONDS_3HOUR', 10800); +define('SECONDS_5HOUR', 18000); +define('SECONDS_6HOURS', 21600); +define('SECONDS_12HOURS', 43200); +define('SECONDS_1DAY', 86400); +define('SECONDS_2DAY', 172800); +define('SECONDS_4DAY', 345600); +define('SECONDS_5DAY', 432000); +define('SECONDS_1WEEK', 604800); +define('SECONDS_10DAY', 864000); +define('SECONDS_2WEEK', 1209600); +define('SECONDS_15DAYS', 1296000); +define('SECONDS_1MONTH', 2592000); +define('SECONDS_2MONTHS', 5184000); +define('SECONDS_3MONTHS', 7776000); +define('SECONDS_6MONTHS', 15552000); +define('SECONDS_1YEAR', 31104000); +define('SECONDS_2YEARS', 62208000); +define('SECONDS_3YEARS', 93312000); @@ -178,38 +178,39 @@ define('AGENT_STATUS_WARNING', 2); /* Visual maps contants */ //The items kind -define('STATIC_GRAPH', 0); -define('PERCENTILE_BAR', 3); -define('MODULE_GRAPH', 1); -define('SIMPLE_VALUE', 2); -define('LABEL', 4); -define('ICON', 5); -define('SIMPLE_VALUE_MAX', 6); -define('SIMPLE_VALUE_MIN', 7); -define('SIMPLE_VALUE_AVG', 8); -define('PERCENTILE_BUBBLE', 9); -define('SERVICE', 10); //Enterprise Item. -define('GROUP_ITEM', 11); +define('STATIC_GRAPH', 0); +define('PERCENTILE_BAR', 3); +define('MODULE_GRAPH', 1); +define('SIMPLE_VALUE', 2); +define('LABEL', 4); +define('ICON', 5); +define('SIMPLE_VALUE_MAX', 6); +define('SIMPLE_VALUE_MIN', 7); +define('SIMPLE_VALUE_AVG', 8); +define('PERCENTILE_BUBBLE', 9); +define('SERVICE', 10); //Enterprise Item. +define('GROUP_ITEM', 11); +define('BOX_ITEM', 12); //Some styles -define('MIN_WIDTH',300); -define('MIN_HEIGHT',120); -define('MIN_WIDTH_CAPTION',420); +define('MIN_WIDTH', 300); +define('MIN_HEIGHT', 120); +define('MIN_WIDTH_CAPTION', 420); //The process for simple value -define('PROCESS_VALUE_NONE', 0); -define('PROCESS_VALUE_MIN', 1); -define('PROCESS_VALUE_MAX', 2); -define('PROCESS_VALUE_AVG', 3); +define('PROCESS_VALUE_NONE', 0); +define('PROCESS_VALUE_MIN', 1); +define('PROCESS_VALUE_MAX', 2); +define('PROCESS_VALUE_AVG', 3); //Status -define('VISUAL_MAP_STATUS_CRITICAL_BAD', 1); -define('VISUAL_MAP_STATUS_CRITICAL_ALERT', 4); -define('VISUAL_MAP_STATUS_NORMAL', 0); -define('VISUAL_MAP_STATUS_WARNING', 2); -define('VISUAL_MAP_STATUS_UNKNOWN', 3); -define('VISUAL_MAP_STATUS_WARNING_ALERT', 10); +define('VISUAL_MAP_STATUS_CRITICAL_BAD', 1); +define('VISUAL_MAP_STATUS_CRITICAL_ALERT', 4); +define('VISUAL_MAP_STATUS_NORMAL', 0); +define('VISUAL_MAP_STATUS_WARNING', 2); +define('VISUAL_MAP_STATUS_UNKNOWN', 3); +define('VISUAL_MAP_STATUS_WARNING_ALERT', 10); //Wizard -define('VISUAL_MAP_WIZARD_PARENTS_NONE', 0); -define('VISUAL_MAP_WIZARD_PARENTS_ITEM_MAP', 1); -define('VISUAL_MAP_WIZARD_PARENTS_AGENT_RELANTIONSHIP', 2); +define('VISUAL_MAP_WIZARD_PARENTS_NONE', 0); +define('VISUAL_MAP_WIZARD_PARENTS_ITEM_MAP', 1); +define('VISUAL_MAP_WIZARD_PARENTS_AGENT_RELANTIONSHIP', 2); diff --git a/pandora_console/include/functions_visual_map.php b/pandora_console/include/functions_visual_map.php index f72a8cb578..26b5163074 100755 --- a/pandora_console/include/functions_visual_map.php +++ b/pandora_console/include/functions_visual_map.php @@ -65,6 +65,9 @@ function visual_map_print_item($mode = "read", $layoutData, $id_module = $layoutData['id_agente_modulo']; $type = $layoutData['type']; $period = $layoutData['period']; + $border_width = $layoutData['border_width']; + $border_color = $layoutData['border_color']; + $fill_color = $layoutData['fill_color']; $sizeStyle = ''; $borderStyle = ''; @@ -553,7 +556,9 @@ function visual_map_print_item($mode = "read", $layoutData, } } - $z_index = 1; + // + 1 for to avoid the box and lines items are on the top of + // others + $z_index = 1 + 1; switch ($type) { case STATIC_GRAPH: @@ -573,13 +578,13 @@ function visual_map_print_item($mode = "read", $layoutData, } if ($status == VISUAL_MAP_STATUS_CRITICAL_BAD) - $z_index = 3; + $z_index = 3 + 1; elseif ($status == VISUAL_MAP_STATUS_WARNING) - $z_index = 2; + $z_index = 2 + 1; elseif ($status == VISUAL_MAP_STATUS_CRITICAL_ALERT) - $z_index = 4; + $z_index = 4 + 1; else - $z_index = 1; + $z_index = 1 + 1; break; case ICON: if ($layoutData['image'] != null) { @@ -592,7 +597,7 @@ function visual_map_print_item($mode = "read", $layoutData, $imageSize = 'width="' . $width . '" height="' . $height . '"'; } - $z_index = 4; + $z_index = 4 + 1; break; case PERCENTILE_BAR: case PERCENTILE_BUBBLE: @@ -669,7 +674,10 @@ function visual_map_print_item($mode = "read", $layoutData, $img = str_replace('>', 'class="image" id="image_' . $id . '" />', $img); break; case LABEL: - $z_index = 4; + $z_index = 4 + 1; + break; + case BOX_ITEM: + $z_index = 1; break; } @@ -701,6 +709,9 @@ function visual_map_print_item($mode = "read", $layoutData, case ICON: $class .= "icon"; break; + case BOX_ITEM: + $class .= "box_item"; + break; default: if (!empty($element_enterprise)) { $class .= $element_enterprise['class']; @@ -723,6 +734,16 @@ function visual_map_print_item($mode = "read", $layoutData, } switch ($type) { + case BOX_ITEM: + $style = ""; + $style .= "width: " . $width . "px; "; + $style .= "height: " . $height . "px; "; + $style .= "border-style: solid; "; + $style .= "border-width: " . $border_width . "px; "; + $style .= "border-color: " . $border_color . "; "; + $style .= "background-color: " . $fill_color . "; "; + echo "
"; + break; case STATIC_GRAPH: case GROUP_ITEM: if ($layoutData['image'] != null) { diff --git a/pandora_console/include/functions_visual_map_editor.php b/pandora_console/include/functions_visual_map_editor.php index 22bcb0f682..93ea97646d 100755 --- a/pandora_console/include/functions_visual_map_editor.php +++ b/pandora_console/include/functions_visual_map_editor.php @@ -57,7 +57,8 @@ function visual_map_editor_print_item_palette($visualConsole_id, $background) { 'simple_value' => __('Simple value'), 'label' => __('Label'), 'icon' => __('Icon'), - 'group_item' => __('Group')); + 'group_item' => __('Group'), + 'box_item' => __('Box')); if (enterprise_installed()) { enterprise_visual_map_editor_add_title_palette($titles); @@ -75,6 +76,52 @@ function visual_map_editor_print_item_palette($visualConsole_id, $background) { ' . __('Size') . ' + ' . + html_print_input_text('width_box', 300, '', 3, 5, true) . + ' X ' . + html_print_input_text('height_box', 180, '', 3, 5, true) . + ''; + + $form_items['border_color_row'] = array(); + $form_items['border_color_row']['items'] = array('box_item'); + $form_items['border_color_row']['html'] = + '' . __('Border color') . '' . + '' . + html_print_input_text_extended ('border_color', + '#000000', 'text-border_color', '', 7, 7, false, '', + 'class="border_color"', true) . + ''; + + $form_items['border_width_row'] = array(); + $form_items['border_width_row']['items'] = array('box_item'); + $form_items['border_width_row']['html'] = '' . __('Border width') . ' + ' . + html_print_input_text('border_width', 3, '', 3, 5, true) . + ''; + + + $form_items['fill_color_row'] = array(); + $form_items['fill_color_row']['items'] = array('box_item'); + $form_items['fill_color_row']['html'] = + '' . __('Fill color') . '' . + '' . + html_print_input_text_extended ('fill_color', '#ffffff', + 'text-fill_color', '', 7, 7, false, '', + 'class="fill_color"', true) . + ''; + + $form_items['module_graph_size_row'] = array(); + $form_items['module_graph_size_row']['items'] = array('module_graph', 'datos'); + $form_items['module_graph_size_row']['html'] = '' . __('Size') . ' + ' . + html_print_input_text('width_module_graph', 300, '', 3, 5, true) . + ' X ' . + html_print_input_text('height_module_graph', 180, '', 3, 5, true) . + ''; + $form_items['label_row'] = array(); $form_items['label_row']['items'] = array('label', @@ -358,7 +405,7 @@ function visual_map_editor_print_item_palette($visualConsole_id, $background) { $form_items_advance['position_row'] = array(); $form_items_advance['position_row']['items'] = array('static_graph', 'percentile_bar', 'percentile_item', 'module_graph', - 'simple_value', 'label', 'icon', 'datos'); + 'simple_value', 'label', 'icon', 'datos', 'box_item'); $form_items_advance['position_row']['html'] = ' ' . __('Position') . ' (' . html_print_input_text('left', '0', '', 3, 5, true) . @@ -420,6 +467,18 @@ function visual_map_editor_print_item_palette($visualConsole_id, $background) { '; + + ui_require_css_file ('color-picker'); + + ui_require_jquery_file ('colorpicker'); + ?> + + '; echo ''; echo '
'; diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 3758b3eb40..742cc6732e 100755 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -758,6 +758,12 @@ input.icon_min { input.icon_min[disabled] { background: #fefefe url(../../images/photo.disabled.png) no-repeat center !important; } +input.box_item { + background: #fefefe url(../../images/photo.png) no-repeat center !important; +} +input.box_item[disabled] { + background: #fefefe url(../../images/photo.disabled.png) no-repeat center !important; +} input.copy_item { background: #fefefe url(../../images/copy_visualmap.png) no-repeat center !important; }