Initial commit
@@ -0,0 +1,621 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Flot Edit</title>
|
||||
<link href="img/favicon.png" rel="shortcut icon" type="image/x-icon" />
|
||||
<link type="text/css" rel="stylesheet" href="../../lib/css/themes/jquery-ui/default/jquery-ui.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="../../lib/css/fancytree/ui.fancytree.min.css"/>
|
||||
<link type="text/css" rel="stylesheet" href="lib/css/jquery.colorpicker.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../../lib/css/iob/selectID.css"/>
|
||||
|
||||
<script type="text/javascript" src="../../lib/js/jquery-1.11.1.min.js"></script>
|
||||
<script type="text/javascript" src="../../lib/js/jquery-ui-1.10.3.full.min.js"></script>
|
||||
<script type="text/javascript" src="../../lib/js/jquery.fancytree-all.min.js"></script>
|
||||
<script type="text/javascript" src="../../lib/js/translate.js"></script>
|
||||
<script type="text/javascript" src="../../lib/js/selectID.js"></script>
|
||||
<script type="text/javascript" src="../../lib/js/socket.io.js"></script>
|
||||
|
||||
<script type="text/javascript" src="../../_socket/info.js"></script>
|
||||
|
||||
<style>
|
||||
.ui-resizable-s {
|
||||
cursor: s-resize;
|
||||
height: 10px;
|
||||
width: 100%;
|
||||
bottom: -6px;
|
||||
background: #a0a0a0;
|
||||
left: 0;
|
||||
}
|
||||
.save {
|
||||
/*position: absolute;
|
||||
top: 10px;
|
||||
right: 130px;*/
|
||||
margin-top: 1px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
.save[aria-disabled="false"] {
|
||||
background: #ff7474;
|
||||
color: white;
|
||||
border-color: #8e8e8e;
|
||||
}
|
||||
|
||||
.input {
|
||||
/*width: 150px;*/
|
||||
}
|
||||
|
||||
.input_time {
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.label {
|
||||
width: 130px;
|
||||
}
|
||||
|
||||
.ui-widget input {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.header {
|
||||
font-weight: bold;
|
||||
background: white;
|
||||
color: black;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Arial;
|
||||
}
|
||||
|
||||
h3 {
|
||||
line-height: 0.3!important;
|
||||
font-size: 15px!important;
|
||||
}
|
||||
|
||||
.ui-accordion-content {
|
||||
padding: 5px 10px !important;
|
||||
}
|
||||
|
||||
#accordion {
|
||||
font-size: 14px !important;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#accordion>div {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
table.fixed td { overflow: hidden; }
|
||||
table.fixed th { overflow: hidden; }
|
||||
|
||||
.no-spaces {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
/*.ui-resizable-s {
|
||||
cursor: s-resize;
|
||||
height: 10px;
|
||||
bottom: -5px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: gray;
|
||||
}*/
|
||||
.version {
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
right: 10px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.presets_table_all {
|
||||
width: 100%
|
||||
}
|
||||
.presets_table_all th {
|
||||
background: grey;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
padding: 5px;
|
||||
}
|
||||
.presets_table_all td {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.presets_table_all tr:nth-child(even) {
|
||||
background: #dcdbdb;
|
||||
}
|
||||
.presets-selected {
|
||||
background: #7598b9 !important;
|
||||
}
|
||||
.presets_table_th_load {
|
||||
width: 70px;
|
||||
}
|
||||
.presets_table_th_name {
|
||||
width: 20%;
|
||||
}
|
||||
.presets_table_th_ids {
|
||||
width: calc(80 - 150px);
|
||||
}
|
||||
.presets_table_th_buttons {
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body style="height: calc(100% - 16px); width: 100%; margin: 0; padding: 0;">
|
||||
|
||||
<div id="resizable1" style="overflow: hidden; height: 360px">
|
||||
<div style="height: calc(100% - 75px); position: relative; overflow: hidden;">
|
||||
<div id="accordion">
|
||||
<ul>
|
||||
<li><a href="#chapter_presets" class="translate">Presets</a></li>
|
||||
<li><a href="#chapter_ids" class="translate">Input data</a></li>
|
||||
<li><a href="#chapter_markline" class="translate">Markings</a></li>
|
||||
<li><a href="#chapter_time" class="translate">Time</a></li>
|
||||
<li><a href="#chapter_options" class="translate">Options</a></li>
|
||||
<li><button class="save">Save</button></li>
|
||||
</ul>
|
||||
<div id="chapter_presets" style="width: 100%; height: calc(100% - 50px); overflow: auto;">
|
||||
<table class="presets_table_all">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="presets_table_th_load"></th>
|
||||
<th class="presets_table_th_name translate">Name</th>
|
||||
<th class="presets_table_th_ids translate">IDs</th>
|
||||
<th class="presets_table_th_buttons"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="presets_table">
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!--h3><span class="translate">Input data</span><span style="float:right; font-weight: normal; color: #959595">Version: 1.5.7</span></h3-->
|
||||
<div id="chapter_ids" style="width: 100%; height: calc(100% - 50px); overflow: auto;">
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
<button style="margin-left: 1px" id="ids_add" class="translateB">Add new line</button>
|
||||
<button id="clear" title="Reset settings" class="translateT" style="float: left;">Clear</button>
|
||||
<label class="translate" style="padding-left: 20px" for="autoUpdate">Auto-update:</label><input type="checkbox" id="autoUpdate"/>
|
||||
<button id="arrangeBools" class="translateB button_arrange_bools">Arrange bools</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div style="width: 100%;">
|
||||
<table style="table-layout: fixed;" class="fixed" id="idslist_table" border="0" cellspacing="0" cellpadding="0">
|
||||
<tbody id="idslist"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!--h3 class="markline-option"><span class="translate">Markings</span></h3-->
|
||||
<div id="chapter_markline" class="markline-option" style="width: 100%; height: calc(100% - 50px); overflow: auto;">
|
||||
<table style="width: 100%">
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
<button style="margin-left: 1px" id="markline_add" class="translateB">Add new markings</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div style="width: 100%; height: 100%">
|
||||
<table style="table-layout: fixed;" class="fixed" id="markline_table" border="0" cellspacing="0" cellpadding="0">
|
||||
<thead id="markline_head">
|
||||
<tr class="header">
|
||||
<td class="translate" style="width: 30%; white-space: nowrap">Line ID</td>
|
||||
<td class="translate" style="width: 130px; white-space: nowrap">Upper value or ID</td>
|
||||
<td class="translate" style="width: 40px;"></td>
|
||||
<td class="translate" style="width: 130px; white-space: nowrap">Lower value or ID</td>
|
||||
<td class="translate" style="width: 40px;"></td>
|
||||
<td class="translate" style="width: 180px">Color</td>
|
||||
<td class="translate" style="width: 80px">Fill</td>
|
||||
<td class="translate" style="width: 80px">ØL</td>
|
||||
<td class="translate" style="width: 80px">ØS</td>
|
||||
<td class="translate" style="width: 30%">Text</td>
|
||||
<td class="translate" style="width: 150px; white-space: nowrap">Text position</td>
|
||||
<td class="translate" style="width: 100px; white-space: nowrap">Text offset</td>
|
||||
<td class="translate" style="width: 100px; white-space: nowrap">Text size</td>
|
||||
<td class="translate" style="width: 180px; white-space: nowrap">Text color</td>
|
||||
<td class="translate" style="width: 80px"></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="markline_list"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!--h3 class="chapter_time"><span class="translate">Time</span> <span id="time_span"></span></h3-->
|
||||
<div id="chapter_time" style="display: flex; height: calc(100% - 50px); overflow: auto;" class="chapter_time">
|
||||
<table >
|
||||
<tr>
|
||||
<td class="translate header" colspan="2" style="text-align: center">Time Span</td>
|
||||
</tr>
|
||||
<tr class="time_timeType">
|
||||
<td><label class="translate" for="timeType">Aggregation:</label></td>
|
||||
<td><select id="timeType" class="input value">
|
||||
<option value="relative" class="translate">relative</option>
|
||||
<option value="static" class="translate">static</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr class="relative time_relativeEnd">
|
||||
<td><label class="translate" for="relativeEnd">End:</label></td>
|
||||
<td><select id="relativeEnd" class="input value">
|
||||
<option value="now" class="translate">now</option>
|
||||
<option value="1minute" class="translate">end of minute</option>
|
||||
<option value="5minutes" class="translate">end of 5 minutes</option>
|
||||
<option value="10minutes" class="translate">end of 10 minutes</option>
|
||||
<option value="30minutes" class="translate">end of 30 minutes</option>
|
||||
<option value="1hour" class="translate">end of hour</option>
|
||||
<option value="2hours" class="translate">end of 2 hours</option>
|
||||
<option value="3hours" class="translate">end of 3 hours</option>
|
||||
<option value="4hours" class="translate">end of 4 hours</option>
|
||||
<option value="6hours" class="translate">end of 6 hours</option>
|
||||
<option value="8hours" class="translate">end of 8 hours</option>
|
||||
<option value="12hours" class="translate">end of 12 hours</option>
|
||||
<option value="today" class="translate">end of day</option>
|
||||
<option value="weekEurope" class="translate">end of sunday</option>
|
||||
<option value="weekUsa" class="translate">end of saturday</option>
|
||||
<option value="month" class="translate">this month</option>
|
||||
<option value="year" class="translate">this year</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr class="relative time_range">
|
||||
<td><label class="translate" for="range">Range:</label></td>
|
||||
<td><select id="range" class="value input">
|
||||
<option value="10" class="translate">10 minutes</option>
|
||||
<option value="30" class="translate">30 minutes</option>
|
||||
<option value="60" class="translate">1 hour</option>
|
||||
<option value="120" class="translate">2 hours</option>
|
||||
<option value="180" class="translate">3 hours</option>
|
||||
<option value="360" class="translate">6 hours</option>
|
||||
<option value="720" class="translate">12 hours</option>
|
||||
<option value="1440" class="translate">1 day</option>
|
||||
<option value="2880" class="translate">2 days</option>
|
||||
<option value="4320" class="translate">3 days</option>
|
||||
<option value="10080" class="translate">7 days</option>
|
||||
<option value="20160" class="translate">14 days</option>
|
||||
<option value="1m" class="translate">1 month</option>
|
||||
<option value="2m" class="translate">2 months</option>
|
||||
<option value="3m" class="translate">3 months</option>
|
||||
<option value="6m" class="translate">6 months</option>
|
||||
<option value="1y" class="translate">1 year</option>
|
||||
<option value="2y" class="translate">2 years</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr class="relative time_live">
|
||||
<td><label class="translate" for="live">Live update every:</label></td>
|
||||
<td><select class="value" id="live">
|
||||
<option value="" class="translate">none</option>
|
||||
<option value="5" class="translate">5 seconds</option>
|
||||
<option value="10" class="translate">10 seconds</option>
|
||||
<option value="15" class="translate">15 seconds</option>
|
||||
<option value="20" class="translate">20 seconds</option>
|
||||
<option value="30" class="translate">30 seconds</option>
|
||||
<option value="60" class="translate">1 minute</option>
|
||||
<option value="120" class="translate">2 minutes</option>
|
||||
<option value="300" class="translate">5 minutes</option>
|
||||
<option value="600" class="translate">10 minutes</option>
|
||||
<option value="900" class="translate">15 minutes</option>
|
||||
<option value="1200" class="translate">20 minutes</option>
|
||||
<option value="1800" class="translate">30 minutes</option>
|
||||
<option value="3600" class="translate">1 hour</option>
|
||||
<option value="7200" class="translate">2 hours</option>
|
||||
<option value="10800" class="translate">3 hours</option>
|
||||
<option value="21600" class="translate">6 hours</option>
|
||||
<option value="43200" class="translate">12 hours</option>
|
||||
<option value="86400" class="translate">1 day</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr class="static time_start">
|
||||
<td><label class="translate" for="start">Start:</label></td>
|
||||
<td><input type="date" id="start" class="value input"> <input type="time" id="start_time" class="value input_time"></td>
|
||||
</tr>
|
||||
<tr class="static time_end">
|
||||
<td><label class="translate" for="end">End:</label></td>
|
||||
<td><input type="date" id="end" class="value input"> <input type="time" id="end_time" class="value input_time"></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table style="margin-left: 25px">
|
||||
<tr>
|
||||
<td class="translate header" colspan="2" style="text-align: center">Aggregate</td>
|
||||
</tr>
|
||||
<tr class="time_aggregateType">
|
||||
<td><label class="translate" for="aggregateType">Step type:</label></td>
|
||||
<td><select id="aggregateType" class="value input">
|
||||
<option value="count" class="translate">counts</option>
|
||||
<option value="step" class="translate">seconds</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr class="time_aggregateSpan">
|
||||
<td><label id="spanName" class="translate" for="aggregateSpan">Step span:</label></td>
|
||||
<td><input id="aggregateSpan" value="300" class="value input"></td>
|
||||
</tr>
|
||||
<tr class="time_ticks">
|
||||
<td><label class="translate" for="ticks">Ticks from:</label></td>
|
||||
<td><table class="no-spaces"><tr><td><input id="ticks" class="value input" style="display: inline;" /></td><td><button style="display: inline; margin-right: 15px;" id="ticks_select"></button></td></tr></table></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<!--h3 class="translate chapter_options">Options</h3-->
|
||||
<div id="chapter_options" style="display: flex; height: calc(100% - 50px); overflow: auto;" class="chapter_options">
|
||||
<table style="width: 380px">
|
||||
<tr>
|
||||
<td class="translate header" colspan="2" style="text-align: center">Appearance</td>
|
||||
</tr>
|
||||
<tr class="options_width">
|
||||
<td style="width: 270px"><label class="translate" for="width">Width:</label></td>
|
||||
<td><input id="width" class="value input spinner"/></td>
|
||||
</tr>
|
||||
<tr class="options_height">
|
||||
<td><label class="translate" for="height">Height:</label></td>
|
||||
<td><input id="height" class="value input spinner"></td>
|
||||
</tr>
|
||||
<tr class="options_noborder">
|
||||
<td><label class="translate" for="noBorder">No border:</label></td>
|
||||
<td><select class="value input" id="noBorder">
|
||||
<option value="" class="translate"></option>
|
||||
<option value="noborder" class="translate">yes</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr class="options_window_bg">
|
||||
<td class="label"><label class="translate" for="window_bg">Window background:</label></td>
|
||||
<td>
|
||||
<table class="no-spaces"><tr><td><input id="window_bg" class="value input input-static-color" style="display: inline-block"></td><td><button data-clear="window_bg" class="clear-button" style="display: inline-block"></button></td></tr></table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="options_bg_custom">
|
||||
<td class="label"><label class="translate" for="bg_custom">Custom chart background:</label></td>
|
||||
<td>
|
||||
<input type="checkbox" id="bg_custom">
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="options_bg">
|
||||
<td class="label"><label class="bg_predefined" for="bg_predefined">Chart background:</label></td>
|
||||
<td>
|
||||
<select id="bg_predefined">
|
||||
<option value="" class="translate">default</option>
|
||||
<option value="0">Portrait</option>
|
||||
<option value="1">Instagram</option>
|
||||
<option value="2">ServQuick</option>
|
||||
<option value="3">Metallic Toad</option>
|
||||
<option value="4">Clouds</option>
|
||||
<option value="5">Mirage</option>
|
||||
<option value="6">Steel Gray</option>
|
||||
<option value="7">Horizon</option>
|
||||
<option value="8">Koko Caramel</option>
|
||||
<option value="9">Turquoise flow</option>
|
||||
</select>
|
||||
<input id="bg" class="value input" style="display: none"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="options_x_labels_color">
|
||||
<td class="label"><label class="translate" for="x_labels_color">X axis labels color:</label></td>
|
||||
<td>
|
||||
<table class="no-spaces"><tr><td><input class="value input input-static-color" id="x_labels_color"></td><td><button data-clear="x_labels_color" class="clear-button" style="display: inline-block"></button></td></tr></table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="options_y_labels_color">
|
||||
<td class="label">><label class="translate" for="y_labels_color">Y axis labels color:</label></td>
|
||||
<td>
|
||||
<table class="no-spaces"><tr><td><input class="value input input-static-color" id="y_labels_color"></td><td><button data-clear="y_labels_color" class="clear-button" style="display: inline-block"></button></td></tr></table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="options_border_color">
|
||||
<td><label class="translate label" for="border_color">Border color:</label></td>
|
||||
<td>
|
||||
<table class="no-spaces"><tr><td><input class="value input input-static-color" id="border_color"></td><td><button data-clear="border_color" class="clear-button" style="display: inline-block"></button></td></tr></table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="options_grid_color">
|
||||
<td class="label"><label class="translate" for="grid_color">Grid color:</label></td>
|
||||
<td>
|
||||
<table class="no-spaces"><tr><td><input class="value input input-static-color" id="grid_color"></td><td><button data-clear="grid_color" class="clear-button" style="display: inline-block"></button></td></tr></table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="options_border_width">
|
||||
<td class="label"><label class="translate" for="border_width">Border width:</label></td>
|
||||
<td>
|
||||
<input class="value input" id="border_width">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table style="width: 340px" class="options-bar">
|
||||
<tr>
|
||||
<td class="translate header" colspan="2" style="text-align: center">Bar settings</td>
|
||||
</tr>
|
||||
<tr class="options_barColor">
|
||||
<td><label class="translate" for="barColor">Fill color:</label></td>
|
||||
<td>
|
||||
<table class="no-spaces"><tr><td><input class="value input input-static-color" id="barColor"></td><td><button data-clear="barColor" class="clear-button" style="display: inline-block"></button></td></tr></table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="options_barLabels">
|
||||
<td><label class="translate" for="barLabels">Show labels:</label></td>
|
||||
<td><select id="barLabels" class="value input">
|
||||
<option value="" class="translate">none</option>
|
||||
<option value="topover" class="translate">top over</option>
|
||||
<option value="topunder" class="translate">top under</option>
|
||||
<option value="bottom" class="translate">bottom</option>
|
||||
<option value="middle" class="translate">middle</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr class="options_barWidth">
|
||||
<td><label class="translate" for="barWidth">Bars width:</label></td>
|
||||
<td><input id="barWidth" class="value input"></td>
|
||||
</tr>
|
||||
<tr class="options_barFontSize">
|
||||
<td><label class="translate" for="barFontSize">Label font size:</label></td>
|
||||
<td><input id="barFontSize" class="value input"></td>
|
||||
</tr>
|
||||
<tr class="options_barFontColor">
|
||||
<td><label class="translate" for="barFontColor">Label color:</label></td>
|
||||
<td>
|
||||
<table class="no-spaces"><tr><td><input class="value input input-static-color" id="barFontColor"></td><td><button data-clear="barFontColor" class="clear-button" style="display: inline-block"></button></td></tr></table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table style="margin-left: 25px; width: 300px">
|
||||
<tr><td class="translate header" colspan="2" style="text-align: center">Title</td></tr>
|
||||
<tr class="options_title">
|
||||
<td><label for="title" class="translate">Title:</label></td>
|
||||
<td><input id="title" class="value input"></td>
|
||||
</tr>
|
||||
<!-- Do not use values 50, 5, and -5. They are reserved for 50-middle/center, 5-inside at edge, -5 outside at edge -->
|
||||
<tr class="options_titlePos">
|
||||
<td><label for="titlePos" class="translate">Title position:</label></td>
|
||||
<td><select class="value input" id="titlePos">
|
||||
<option value="" class="translate">none</option>
|
||||
<option value="top:35;left:65" class="translate">Top, left, inside</option>
|
||||
<option value="top:35;right:5" class="translate">Top, right, inside</option>
|
||||
<option value="top:35;left:50" class="translate">Top, center, inside</option>
|
||||
<option value="top:50;left:65" class="translate">Middle, left, inside</option>
|
||||
<option value="top:50;right:5" class="translate">Middle, right, inside</option>
|
||||
<option value="bottom:5;left:65" class="translate">Bottom, left, inside</option>
|
||||
<option value="bottom:5;right:5" class="translate">Bottom, right, inside</option>
|
||||
<option value="bottom:5;left:50" class="translate">Bottom, center, inside</option>
|
||||
|
||||
<option value="top:5;right:-5" class="translate">Top, right, outside</option>
|
||||
<option value="top:50;right:-5" class="translate">Middle, right, outside</option>
|
||||
<option value="bottom:5;right:-5" class="translate">Bottom, right, outside</option>
|
||||
<option value="bottom:-5;left:50" class="translate">Bottom, center, outside</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr class="options_titleColor">
|
||||
<td><label class="translate" for="titleColor">Title color:</label></td>
|
||||
<td><table class="no-spaces"><tr><td><input id="titleColor" class="value input input-static-color"></td><td><button data-clear="titleColor" class="clear-button" style="display: inline-block"></button></td></tr></table></td>
|
||||
</tr>
|
||||
<tr class="options_titleSize">
|
||||
<td><label for="titleSize" class="translate">Title size:</label></td>
|
||||
<td><input id="titleSize" class="value input"></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<table style="margin-left: 25px; width: 400px">
|
||||
<tr><td class="translate header" colspan="2" style="text-align: center">Options</td></tr>
|
||||
<tr class="options_legend">
|
||||
<td><label class="translate" for="legend">Show legend:</label></td>
|
||||
<td><select class="value input" id="legend">
|
||||
<option value="" class="translate">none</option>
|
||||
<option value="nw" class="translate">Top, left</option>
|
||||
<option value="ne" class="translate">Top, right</option>
|
||||
<option value="sw" class="translate">Bottom, left</option>
|
||||
<option value="se" class="translate">Bottom, right</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr class="options_legColumns">
|
||||
<td><label class="translate" for="legColumns">Legend columns:</label></td>
|
||||
<td><input type="number" class="value" id="legColumns"></td>
|
||||
</tr>
|
||||
<tr class="options_legBgOpacity">
|
||||
<td><label class="translate" for="legBgOpacity">Legend opacity (from 0 to 1):</label></td>
|
||||
<td><input class="value input" id="legBgOpacity"/></td>
|
||||
</tr>
|
||||
<tr class="options_legBg">
|
||||
<td><label class="translate" for="legBg">Legend background:</label></td>
|
||||
<td><table class="no-spaces"><tr><td><input class="value input input-static-color" id="legBg" style="display: inline-block"></td><td><button data-clear="legBg" class="clear-button" style="display: inline-block"></button></td></tr></table></td>
|
||||
</tr>
|
||||
<tr class="options_hoverDetail">
|
||||
<td><label class="translate" for="hoverDetail">Hover details:</label></td>
|
||||
<td><input type="checkbox" class="value" id="hoverDetail"></td>
|
||||
</tr>
|
||||
<tr class="options_timeFormat">
|
||||
<td><label class="translate" for="timeFormat">Time format:</label></td>
|
||||
<td><select class="value input" id="timeFormat">
|
||||
<option value="" class="translate">Default</option>
|
||||
<option value="%H:%M %d.%m">HH:MM dd.mm</option>
|
||||
<option value="%H:%M %d.%m.">HH:MM dd.mm.</option>
|
||||
<option value="%H:%M <br> %d.%m">HH:MM / dd.mm</option>
|
||||
<option value="%H:%M <br> %d.%m.">HH:MM / dd.mm.</option>
|
||||
<option value="%H:%M <br> %d.%m.%y">HH:MM / dd.mm.yy</option>
|
||||
<option value="%H:%M:%S %d.%m.%y">HH:MM:SS dd.mm.yy</option>
|
||||
<option value="%H:%M %d.%m.%y">HH:MM dd.mm.yy</option>
|
||||
<option value="%I:%M:%S %x %p">HH:MM:SS mm/dd/yy am (US)</option>
|
||||
<option value="%H:%M:%S %d/%m/%y">HH:MM:SS dd/mm/yy (UK)</option>
|
||||
<option value="%H:%M:%S %m.%d.%y">HH:MM:SS mm.dd.yy</option>
|
||||
|
||||
<option value="%H:%M %a">HH:MM dow</option>
|
||||
<option value="%H:%M:%S %a">HH:MM:SS dow</option>
|
||||
|
||||
<option value="%H:%M %m.%d">HH:MM mm.dd</option>
|
||||
<option value="%H:%M:%S">HH:MM:SS</option>
|
||||
<option value="%H:%M">HH:MM</option>
|
||||
<option value="%d.%m">dd.mm</option>
|
||||
<option value="%d.%m.">dd.mm.</option>
|
||||
<option value="%m/%d">mm/dd</option>
|
||||
<option value="%d">dd</option>
|
||||
<option value="%m">mm</option>
|
||||
<option value="%y">y</option>
|
||||
<option value="%H">HH</option>
|
||||
<option value="%M">MM</option>
|
||||
<option value="%a">dow</option>
|
||||
<option value="%d.%m.%y">dd.mm.yy</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr class="options_smoothing">
|
||||
<td><label class="translate" for="smoothing">Smoothing:</label></td>
|
||||
<td><input class="value input" id="smoothing"></td>
|
||||
</tr>
|
||||
<!--tr class="options_afterComma">
|
||||
<td class="translate">After comma:</td>
|
||||
<td><input class="value input" id="afterComma"></td>
|
||||
</tr-->
|
||||
<tr class="options_useComma">
|
||||
<td><label class="translate" for="useComma">Use comma:</label></td>
|
||||
<td><input type="checkbox" class="value" id="useComma"></td>
|
||||
</tr>
|
||||
<tr class="options_zoom">
|
||||
<td><label class="translate" for="zoom">Enable zoom and pan:</label></td>
|
||||
<td><input type="checkbox" class="value" id="zoom"></td>
|
||||
</tr>
|
||||
<tr class="options_noedit">
|
||||
<td><label class="translate" for="noedit">Hide edit button:</label></td>
|
||||
<td><input type="checkbox" class="value" id="noedit"></td>
|
||||
</tr>
|
||||
<tr class="options_animation">
|
||||
<td><label class="translate" for="animation">Animation:</label></td>
|
||||
<td><select class="value input" id="animation">
|
||||
<option value="0" class="translate">no</option>
|
||||
<option value="300" class="translate">300ms</option>
|
||||
<option value="500" class="translate">500ms</option>
|
||||
<option value="1000" class="translate">1s</option>
|
||||
<option value="2000" class="translate">2s</option>
|
||||
<option value="3000" class="translate">3s</option>
|
||||
<option value="5000" class="translate">5s</option>
|
||||
<option value="10000" class="translate">10s</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="version">Version: 1.9.2</div>
|
||||
</div>
|
||||
<div style="height: 70px; display: flex; justify-content: space-around; align-items: center; margin-top: 4px; margin-bottom: 0">
|
||||
<label class="translate" for="link">Link</label>
|
||||
<textarea id="link" style="width: calc(100% - 260px); height: 55px; word-break: break-all; resize: none"></textarea>
|
||||
<button style="padding-left: 2px" id="open" class="translateB">Open</button>
|
||||
<button style="padding-left: 5px" id="updatePreview" class="translateB">update Preview</button>
|
||||
</div>
|
||||
</div>
|
||||
<iframe style="width: calc(100% - 20px); bottom: 0; height: calc(100% - 380px); border: 1px solid #afafaf; border-radius: 2px" id="chart"></iframe>
|
||||
<div id="dialog-select-member" style="display: none"></div>
|
||||
|
||||
<div id="dialog-line-options" style="display: none">
|
||||
<table>
|
||||
</table>
|
||||
</div>
|
||||
<div id="dialog-new-preset" style="display: none">
|
||||
<table>
|
||||
<tr id="dialog-new-preset-info-tr">
|
||||
<td><label for="dialog-new-preset-into" class="translate">Save into:</label></td>
|
||||
<td><select id="dialog-new-preset-into" style="width: 100%;"></select></td>
|
||||
</tr>
|
||||
<tr id="dialog-new-preset-name-tr">
|
||||
<td><label for="dialog-new-preset-name" class="translate">Name:</label></td>
|
||||
<td><input id="dialog-new-preset-name" style="width: 100%;"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="js/edit.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,324 @@
|
||||
{
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"Ok": "Ok",
|
||||
"role": "Rolle",
|
||||
"Update objects": "Objekte aktualisieren",
|
||||
"All": "Alle",
|
||||
"With": "mit",
|
||||
"Without": "ohne",
|
||||
"Update states": "States aktualisieren",
|
||||
"edit file": "Datei editieren",
|
||||
"restart script": "Skript neu starten",
|
||||
"Select": "Auswählen",
|
||||
"Select ID": "ID Auswählen",
|
||||
"add children": "Sub-enums einfügen",
|
||||
"edit enum": "Enum ändern",
|
||||
"System settings": "Systemeinstellungen",
|
||||
"reload": "Neu laden",
|
||||
"Delete object": "Object löschen",
|
||||
"no null": " kein NULL",
|
||||
"%s ago": "vor %s",
|
||||
"Y-Offset": "Y-Offset",
|
||||
"ID": "ID",
|
||||
"Role": "Rolle",
|
||||
"Room": "Raum",
|
||||
"Value": "Wert",
|
||||
"none": "nichts",
|
||||
"Save into:": "Save into:",
|
||||
"Name:": "Name:",
|
||||
"save": "Speichern",
|
||||
"load": "laden",
|
||||
"Presets": "Voreinstellung",
|
||||
"IDs": "IDs",
|
||||
"new": "unter neuen Namen",
|
||||
"Enter chart name": "Chartname eintragen",
|
||||
"save %s": "Speichern %s",
|
||||
"Input data": "Eingangsdaten",
|
||||
"Options": "Optionen",
|
||||
"Range:": "Umfang:",
|
||||
"5 seconds": "5 Sekunden",
|
||||
"10 seconds": "10 Sekunden",
|
||||
"15 seconds": "15 Sekunden",
|
||||
"20 seconds": "20 Sekunden",
|
||||
"30 seconds": "30 Sekunden",
|
||||
"1 minute": "1 Minute",
|
||||
"2 minutes": "2 Minuten",
|
||||
"5 minutes": "5 Minuten",
|
||||
"10 minutes": "10 Minuten",
|
||||
"15 minutes": "15 Minuten",
|
||||
"20 minutes": "20 Minuten",
|
||||
"30 minutes": "30 Minuten",
|
||||
"1 hour": "1 Stunde",
|
||||
"2 hours": "2 Stunden",
|
||||
"3 hours": "3 Stunden",
|
||||
"6 hours": "6 Stunden",
|
||||
"12 hours": "12 Stunden",
|
||||
"1 day": "1 Tag",
|
||||
"2 days": "2 Tage",
|
||||
"3 days": "3 Tage",
|
||||
"7 days": "7 Tage",
|
||||
"14 days": "14 Tage",
|
||||
"1 month": "1 Monat",
|
||||
"2 months": "2 Monate",
|
||||
"3 months": "3 Monate",
|
||||
"6 months": "6 Monate",
|
||||
"1 year": "1 Jahr",
|
||||
"2 years": "2 Jahren",
|
||||
"Width:": "Breite:",
|
||||
"Height:": "Höhe:",
|
||||
"line": "Linie",
|
||||
"area": "Area",
|
||||
"bar": "Bar",
|
||||
"lineplot": "Liniendiagramm",
|
||||
"scatterplot": "Streudiagramm",
|
||||
"steps": "Schritte",
|
||||
"spline": "Spline",
|
||||
"Stack": "Stack",
|
||||
"Window background:": "Fenster-Hintergrund:",
|
||||
"Custom chart background:": "Anwender-Chart-Hintergrund:",
|
||||
"Chart background:": "Chart-Hintergrund:",
|
||||
"X axis labels color:": "X Beschriftungsfarbe:",
|
||||
"Y axis labels color:": "Y Beschriftungsfarbe:",
|
||||
"Show legend:": "Zeige Legende:",
|
||||
"Title:": "Beschriftung:",
|
||||
"Title position:": "Beschriftungs-Position:",
|
||||
"Top, left, inside": "Oben, links, innen",
|
||||
"Top, right, inside": "Oben, rechts, innen",
|
||||
"Top, center, inside": "Oben, mittig, innen",
|
||||
"Middle, left, inside": "Middle, links, innen",
|
||||
"Middle, right, inside": "Middle, rechts, innen",
|
||||
"Bottom, left, inside": "Unten, links, innen",
|
||||
"Bottom, right, inside": "Unten, rechts, innen",
|
||||
"Bottom, center, inside": "Unten, mittig, innen",
|
||||
"Top, right, outside": "Oben, rechts, außen",
|
||||
"Middle, right, outside": "Middle, rechts, außen",
|
||||
"Bottom, right, outside": "Unten, rechts, außen",
|
||||
"Bottom, center, outside": "Unten, mittig, außen",
|
||||
"Min:": "Minimum:",
|
||||
"Max:": "Maximum:",
|
||||
"User defined names:": "Benutzerdefinierte Namen:",
|
||||
"Predefined background:": "Vordefinierter Hintergrund:",
|
||||
"User defined": "Anwenderdefiniert",
|
||||
"Background:": "Hintergrund:",
|
||||
"Hover details:": "Hover details:",
|
||||
"Time format:": "Zeitformat:",
|
||||
"Default": "Standard",
|
||||
"Smoothing": "Glätten",
|
||||
"After comma": "Nach Komma",
|
||||
"Open": "Zeige im Fenster",
|
||||
"Update": "Aktualisieren",
|
||||
"Reset settings": "Einstellungen löschen",
|
||||
"From": "Von",
|
||||
"Last changed": "Letze Änderung",
|
||||
"Time stamp": "Zeitstempel",
|
||||
"Acknowledged": "Bestätigt",
|
||||
"Edit": "Editieren",
|
||||
"Members": "Mitglied",
|
||||
"Loading...": "Lade...",
|
||||
"Processing...": "Bearbeite...",
|
||||
"With lines": "mit Linien",
|
||||
"Without lines": "ohne Linien",
|
||||
"Inside / With lines": "Innen / mit Linien",
|
||||
"Outside/ With lines": "Außen/ mit Linien",
|
||||
"Inside / No lines": "Innen / ohne Linien",
|
||||
"Outside / No lines": "Außen / ohne Linien",
|
||||
"Interpolate:": "Interpolieren:",
|
||||
"Steps": "Schritte",
|
||||
"Pie": "Kuchen",
|
||||
"Top, left": "Oben, links",
|
||||
"Top, right": "Oben, rechts",
|
||||
"Bottom, left": "Unten, links",
|
||||
"Bottom, right": "Unten, rechts",
|
||||
"Title color:": "Titelfarbe:",
|
||||
"Title size:": "Titelgröße:",
|
||||
"Fill range:": "Ganzer Bereich:",
|
||||
"Units:": "Einheiten:",
|
||||
"yes": "ja",
|
||||
"bottom": "unten",
|
||||
"top": "oben",
|
||||
"left": "links",
|
||||
"right": "rechts",
|
||||
"No border:": "Kein Rahmen:",
|
||||
"Time": "Zeit",
|
||||
"day": "Tag",
|
||||
"month": "Monat",
|
||||
"year": "Jahr",
|
||||
"Individual": "Individuell",
|
||||
"Aggregation:": "Art:",
|
||||
"relative": "relative",
|
||||
"static": "statik",
|
||||
"now": "jetzt",
|
||||
"today": "heute",
|
||||
"this month": "dieser Monat",
|
||||
"this year": "dieses Jahr",
|
||||
"Start:": "Start:",
|
||||
"End:": "Ende:",
|
||||
"Aggregate": "Aggregation",
|
||||
"Step type:": "Schritttyp:",
|
||||
"seconds": "Sekunden",
|
||||
"Seconds": "Sekunden",
|
||||
"Step span:": "Schrittweite:",
|
||||
"Link": "Link",
|
||||
"Counts": "Anzahl",
|
||||
"ignore 'null'": "'null' ignorieren",
|
||||
"Time Span": "Zeit Spanne",
|
||||
"Appearance": "Erscheinung",
|
||||
"Title": "Beschriftung",
|
||||
"Offset": "X-Offset",
|
||||
"Aggregation": "Art",
|
||||
"Chart Type": "Chart Type",
|
||||
"Color": "Farbe",
|
||||
"Min": "Min",
|
||||
"Max": "Max",
|
||||
"Unit": "Einheiten",
|
||||
"Y Axis": "Y Axe",
|
||||
"X Axis": "X Axe",
|
||||
"update Preview": "Vorschau aktualisieren",
|
||||
"Cancel": "Abbrechen",
|
||||
"Name": "Name",
|
||||
"Live update every:": "Autoupdate alle:",
|
||||
"counts": "Anzahl",
|
||||
"Add new line": "Linie hinzufügen",
|
||||
"Animation:": "Animation:",
|
||||
"no": "keine",
|
||||
"0s": "0s",
|
||||
"300ms": "300ms",
|
||||
"500ms": "500ms",
|
||||
"1s": "1 Sekunde",
|
||||
"2s": "2 Sekunden",
|
||||
"3s": "3 Sekunden",
|
||||
"5s": "5 Sekunden",
|
||||
"10s": "10 Sekunden",
|
||||
"30s": "30 Sekunden",
|
||||
"60s": "60 Sekunden",
|
||||
"2m": "2 Minuten",
|
||||
"3m": "3 Minuten",
|
||||
"4m": "4 Minuten",
|
||||
"5m": "5 Minuten",
|
||||
"10m": "10 Minuten",
|
||||
"15m": "15 Minuten",
|
||||
"30m": "30 Minuten",
|
||||
"45m": "45 Minuten",
|
||||
"1H": "1 Stunde",
|
||||
"2H": "2 Stunden",
|
||||
"6H": "6 Stunden",
|
||||
"12H": "12 Stunden",
|
||||
"1D": "1 Tag",
|
||||
"2D": "2 Tage",
|
||||
"3D": "3 Tage",
|
||||
"4D": "4 Tage",
|
||||
"1W": "1 Woche",
|
||||
"2W": "2 Wochen",
|
||||
"4W": "4 Wochen",
|
||||
"8W": "8 Wochen",
|
||||
"12W": "12 Wochen",
|
||||
"26W": "26 Wochen",
|
||||
"1M": "1 Monat",
|
||||
"2M": "2 Monate",
|
||||
"3M": "3 Monate",
|
||||
"6M": "6 Monate",
|
||||
"1Y": "1 Jahr",
|
||||
"2Y": "2 Jahre",
|
||||
"average": "mittel",
|
||||
"max": "max",
|
||||
"min": "min",
|
||||
"total": "total",
|
||||
"off": "nichts",
|
||||
"leftColor": "links farblich",
|
||||
"rightColor": "rechts farblich",
|
||||
"topColor": "oben farblich",
|
||||
"bottomColor": "unten farblich",
|
||||
"default": "default",
|
||||
"Auto-update:": "Auto-update:",
|
||||
"Use comma:": "Benutze Komma:",
|
||||
"Common Y Axis": "Gemeinsame Y-Achse",
|
||||
"Instance": "Instanz",
|
||||
"Line Width": "Linienstärke",
|
||||
"Shadow Size": "Schattengröße",
|
||||
"ignore 'null':": "'null' ignorieren:",
|
||||
"onchange": "bei Änderung",
|
||||
"Border color:": "Rahmenfarbe:",
|
||||
"Grid color:": "Gitterfarbe:",
|
||||
"Border width:": "Rahmenbreite:",
|
||||
"Enable zoom and pan:": "Aktiviere Zoom und Schieben:",
|
||||
"Arrange bools": "Platziere Booleans",
|
||||
"NULL as": "NULL als",
|
||||
"MinMax": "MinMax",
|
||||
"null": "null",
|
||||
"true": "letztes Wert",
|
||||
"last value": "letztes Wert",
|
||||
"Hide edit button:": "Kein 'Edit'-Knopf:",
|
||||
"minmax": "minmax",
|
||||
"ØL": "ØL",
|
||||
"ØS": "ØS",
|
||||
"Line": "Linie",
|
||||
"false": "null",
|
||||
"end of minute": "Minutenende",
|
||||
"end of 5 minutes": "Ende von 5 Minuten",
|
||||
"end of 10 minutes": "Ende von 10 Minuten",
|
||||
"end of 30 minutes": "Ende von 30 Minuten",
|
||||
"end of hour": "Stundenende",
|
||||
"end of 2 hours": "Ende von 2 Stunden",
|
||||
"end of 3 hours": "Ende von 3 Stunden",
|
||||
"end of 4 hours": "Ende von 4 Stunden",
|
||||
"end of 6 hours": "Ende von 6 Stunden",
|
||||
"end of 8 hours": "Ende von 8 Stunden",
|
||||
"end of 12 hours": "Ende von 12 Stunden",
|
||||
"end of day": "Tagesende",
|
||||
"end of sunday": "Wochenssende",
|
||||
"end of saturday": "Samstagsende",
|
||||
"1minute": "Minutenende",
|
||||
"5minutes": "Ende von 5 Minuten",
|
||||
"10minutes": "Ende von 10 Minuten",
|
||||
"30minutes": "Ende von 30 Minuten",
|
||||
"1hour": "Stundenende",
|
||||
"2hours": "Ende von 2 Stunden",
|
||||
"3hours": "Ende von 3 Stunden",
|
||||
"4hours": "Ende von 4 Stunden",
|
||||
"6hours": "Ende von 6 Stunden",
|
||||
"8hours": "Ende von 8 Stunden",
|
||||
"12hours": "Ende von 12 Stunden",
|
||||
"weekEurope": "Tagesende",
|
||||
"weekUsa": "Wochenssende",
|
||||
"Bar settings": "Bar-Einstellungen",
|
||||
"Fill color:": "Füllfarbe color:",
|
||||
"Show labels:": "Zeige Labels:",
|
||||
"top over": "oben über",
|
||||
"top under": "oben unten",
|
||||
"middle": "mittig",
|
||||
"Bars width:": "Barbreite:",
|
||||
"Label font size:": "Labelschriftgröße:",
|
||||
"Label color:": "Labelfarbe:",
|
||||
"Markings": "Markierungen",
|
||||
"Line ID": "Linie ID",
|
||||
"Fill": "Füllen",
|
||||
"ØL": "ØL",
|
||||
"ØS": "ØS",
|
||||
"Text": "Text",
|
||||
"Text position": "Textposition",
|
||||
"Text offset": "Text-Offset",
|
||||
"Text size": "Textgröße",
|
||||
"Text color": "Textfarbe",
|
||||
"Add new markings": "Neue Markierung hinzufügen",
|
||||
"Left": "Links",
|
||||
"Right": "Rechts",
|
||||
"Upper value or ID": "Oberes Wert oder ID",
|
||||
"Lower value or ID": "Unteres Wert oder ID",
|
||||
"X-Axis ticks": "X-Achse-Ticks",
|
||||
"Y-Axis ticks": "Y-Achse-Ticks",
|
||||
"ignore null values": "null-Werte ignorieren",
|
||||
"Ticks from:": "Benutze X-Ticks aus:",
|
||||
"use 0 instead of null values": "0 statt null benutzen",
|
||||
"More": "mehr",
|
||||
"Edit options for line %s": "Editieren weitere Einstellungen für Linie %s",
|
||||
"Legend columns:": "Spalten in Legende:",
|
||||
"Legend opacity (from 0 to 1):": "Legende-Opacity (von 0 bis 1):",
|
||||
"Legend background:": "Legende-Hintergrund:",
|
||||
"Fill(0to1)": "Füllen(0bis1)",
|
||||
"Points": "Punkte"
|
||||
}
|
||||
@@ -0,0 +1,324 @@
|
||||
{
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"Ok": "Ok",
|
||||
"role": "role",
|
||||
"Update objects": "Update objects",
|
||||
"All": "All",
|
||||
"With": "With",
|
||||
"Without": "Without",
|
||||
"Update states": "Update states",
|
||||
"edit file": "edit file",
|
||||
"restart script": "restart script",
|
||||
"Select": "Select",
|
||||
"Select ID": "Select ID",
|
||||
"add children": "add children",
|
||||
"edit enum": "edit enum",
|
||||
"System settings": "System settings",
|
||||
"reload": "reload",
|
||||
"Delete object": "Delete object",
|
||||
"no null": " no null",
|
||||
"%s ago": "%s ago",
|
||||
"Y-Offset": "Y-Offset",
|
||||
"ID": "ID",
|
||||
"Role": "Role",
|
||||
"Room": "Room",
|
||||
"Value": "Value",
|
||||
"none": "none",
|
||||
"Save into:": "Save into:",
|
||||
"Name:": "Name:",
|
||||
"save": "save",
|
||||
"load": "load",
|
||||
"Presets": "Presets",
|
||||
"IDs": "IDs",
|
||||
"new": "new",
|
||||
"Enter chart name": "Enter chart name",
|
||||
"save %s": "save %s",
|
||||
"Input data": "Input data",
|
||||
"Options": "Options",
|
||||
"Range:": "Range:",
|
||||
"5 seconds": "5 seconds",
|
||||
"10 seconds": "10 seconds",
|
||||
"15 seconds": "15 seconds",
|
||||
"20 seconds": "20 seconds",
|
||||
"30 seconds": "30 seconds",
|
||||
"1 minute": "1 minute",
|
||||
"2 minutes": "2 minutes",
|
||||
"5 minutes": "5 minutes",
|
||||
"10 minutes": "10 minutes",
|
||||
"15 minutes": "15 minutes",
|
||||
"20 minutes": "20 minutes",
|
||||
"30 minutes": "30 minutes",
|
||||
"1 hour": "1 hour",
|
||||
"2 hours": "2 hours",
|
||||
"3 hours": "3 hours",
|
||||
"6 hours": "6 hours",
|
||||
"12 hours": "12 hours",
|
||||
"1 day": "1 day",
|
||||
"2 days": "2 days",
|
||||
"3 days": "3 days",
|
||||
"7 days": "7 days",
|
||||
"14 days": "14 days",
|
||||
"1 month": "1 month",
|
||||
"2 months": "2 months",
|
||||
"3 months": "3 months",
|
||||
"6 months": "6 months",
|
||||
"1 year": "1 year",
|
||||
"2 years": "2 years",
|
||||
"Width:": "Width:",
|
||||
"Height:": "Height:",
|
||||
"line": "Line",
|
||||
"area": "Area",
|
||||
"bar": "Bar",
|
||||
"lineplot": "Line plot",
|
||||
"scatterplot": "Scatter plot",
|
||||
"steps": "Steps",
|
||||
"spline": "Spline",
|
||||
"Stack": "Stack",
|
||||
"Window background:": "Window background:",
|
||||
"Custom chart background:": "Custom chart background:",
|
||||
"Chart background:": "Chart background:",
|
||||
"X axis labels color:": "X labels color:",
|
||||
"Y axis labels color:": "Y labels color:",
|
||||
"Show legend:": "Show legend:",
|
||||
"Title:": "Title:",
|
||||
"Title position:": "Title position:",
|
||||
"Top, left, inside": "Top, left, inside",
|
||||
"Top, right, inside": "Top, right, inside",
|
||||
"Top, center, inside": "Top, center, inside",
|
||||
"Middle, left, inside": "Middle, left, inside",
|
||||
"Middle, right, inside": "Middle, right, inside",
|
||||
"Bottom, left, inside": "Bottom, left, inside",
|
||||
"Bottom, right, inside": "Bottom, right, inside",
|
||||
"Bottom, center, inside": "Bottom, center, inside",
|
||||
"Top, right, outside": "Top, right, outside",
|
||||
"Middle, right, outside": "Middle, right, outside",
|
||||
"Bottom, right, outside": "Bottom, right, outside",
|
||||
"Bottom, center, outside": "Bottom, center, outside",
|
||||
"Min:": "Minimum:",
|
||||
"Max:": "Maximum:",
|
||||
"User defined names:": "User defined names:",
|
||||
"Predefined background:": "Predefined background:",
|
||||
"User defined": "User defined",
|
||||
"Background:": "Background:",
|
||||
"Hover details:": "Hover details:",
|
||||
"Time format:": "Time format:",
|
||||
"Default": "Default",
|
||||
"Smoothing": "Smoothing",
|
||||
"After comma": "After comma",
|
||||
"Open": "Open",
|
||||
"Update": "Update",
|
||||
"Reset settings": "Reset settings",
|
||||
"From": "From: ",
|
||||
"Last changed": "Last changed",
|
||||
"Time stamp": "Time stamp",
|
||||
"Acknowledged": "Acknowledged",
|
||||
"Edit": "Edit",
|
||||
"Members": "Members",
|
||||
"Loading...": "Loading...",
|
||||
"Processing...": "Processing...",
|
||||
"With lines": "With lines",
|
||||
"Without lines": "Without lines",
|
||||
"Inside / With lines": "Inside / With lines",
|
||||
"Outside/ With lines": "Outside/ With lines",
|
||||
"Inside / No lines": "Inside / No lines",
|
||||
"Outside / No lines": "Outside / No lines",
|
||||
"Interpolate:": "Interpolate:",
|
||||
"Steps": "Steps",
|
||||
"Pie": "Pie",
|
||||
"Top, left": "Top, left",
|
||||
"Top, right": "Top, right",
|
||||
"Bottom, left": "Bottom, left",
|
||||
"Bottom, right": "Bottom, right",
|
||||
"Title color:": "Title color:",
|
||||
"Title size:": "Title size:",
|
||||
"Fill range:": "Fill range:",
|
||||
"Units:": "Units:",
|
||||
"yes": "yes",
|
||||
"bottom": "bottom",
|
||||
"top": "top",
|
||||
"left": "left",
|
||||
"right": "right",
|
||||
"No border:": "No border:",
|
||||
"Time": "Time",
|
||||
"day": "day",
|
||||
"month": "month",
|
||||
"year": "year",
|
||||
"Individual": "Individual",
|
||||
"Aggregation:": "Type:",
|
||||
"relative": "relative",
|
||||
"static": "static",
|
||||
"now": "now",
|
||||
"today": "today",
|
||||
"this month": "this month",
|
||||
"this year": "this year",
|
||||
"Start:": "Start:",
|
||||
"End:": "End:",
|
||||
"Aggregate": "Aggregate",
|
||||
"Step type:": "Step type:",
|
||||
"seconds": "seconds",
|
||||
"Seconds": "Seconds",
|
||||
"Step span:": "Step span:",
|
||||
"Link": "Link",
|
||||
"Counts": "Counts",
|
||||
"ignore 'null'": "ignore 'null'",
|
||||
"Time Span": "Time Span",
|
||||
"Appearance": "Appearance",
|
||||
"Title": "Title",
|
||||
"Offset": "X-Offset",
|
||||
"Aggregation": "Type",
|
||||
"Chart Type": "Chart Type",
|
||||
"Color": "Color",
|
||||
"Min": "Min",
|
||||
"Max": "Max",
|
||||
"Unit": "Unit",
|
||||
"Y Axis": "Y Axis",
|
||||
"X Axis": "X Axis",
|
||||
"update Preview": "update Preview",
|
||||
"Cancel": "Cancel",
|
||||
"Name": "Name",
|
||||
"Live update every:": "Live update every:",
|
||||
"counts": "counts",
|
||||
"Add new line": "Add new line",
|
||||
"Animation:": "Animation:",
|
||||
"no": "no",
|
||||
"0s": "0 seconds",
|
||||
"300ms": "300ms",
|
||||
"500ms": "500ms",
|
||||
"1s": "1 second",
|
||||
"2s": "2 seconds",
|
||||
"3s": "3 seconds",
|
||||
"5s": "5 seconds",
|
||||
"10s": "10 seconds",
|
||||
"30s": "30 seconds",
|
||||
"60s": "60 seconds",
|
||||
"2m": "2 minutes",
|
||||
"3m": "3 minutes",
|
||||
"4m": "4 minutes",
|
||||
"5m": "5 minutes",
|
||||
"10m": "10 minutes",
|
||||
"15m": "15 minutes",
|
||||
"30m": "30 minutes",
|
||||
"45m": "45 minutes",
|
||||
"1H": "1 hour",
|
||||
"2H": "2 hours",
|
||||
"6H": "6 hours",
|
||||
"12H": "12 hours",
|
||||
"1D": "1 day",
|
||||
"2D": "2 days",
|
||||
"3D": "3 days",
|
||||
"4D": "4 days",
|
||||
"1W": "1 week",
|
||||
"2W": "2 weeks",
|
||||
"4W": "4 weeks",
|
||||
"8W": "8 weeks",
|
||||
"12W": "12 weeks",
|
||||
"26W": "26 weeks",
|
||||
"1M": "1 month",
|
||||
"2M": "2 months",
|
||||
"3M": "3 months",
|
||||
"6M": "6 months",
|
||||
"1Y": "1 year",
|
||||
"2Y": "2 years",
|
||||
"average": "average",
|
||||
"max": "max",
|
||||
"min": "min",
|
||||
"total": "total",
|
||||
"off": "off",
|
||||
"leftColor": "left colored",
|
||||
"rightColor": "right colored",
|
||||
"topColor": "top colored",
|
||||
"bottomColor": "bottom colored",
|
||||
"default": "default",
|
||||
"Auto-update:": "Auto-update:",
|
||||
"Use comma:": "Use comma:",
|
||||
"Common Y Axis": "Common Y Axis",
|
||||
"Instance": "Instance",
|
||||
"Line Width": "Line Width",
|
||||
"Shadow Size": "Shadow Size",
|
||||
"ignore 'null':": "ignore 'null':",
|
||||
"onchange": "on change",
|
||||
"Border color:": "Border color:",
|
||||
"Grid color:": "Grid color:",
|
||||
"Border width:": "Border width:",
|
||||
"Enable zoom and pan:": "Enable zoom and pan:",
|
||||
"Arrange bools": "Arrange booleans",
|
||||
"NULL as": "NULL as",
|
||||
"MinMax": "MinMax",
|
||||
"null": "null",
|
||||
"true": "last value",
|
||||
"last value": "last value",
|
||||
"Hide edit button:": "Hide edit button:",
|
||||
"minmax": "minmax",
|
||||
"ØL": "ØL",
|
||||
"ØS": "ØS",
|
||||
"Line": "Line",
|
||||
"false": "null",
|
||||
"end of minute": "end of minute",
|
||||
"end of 5 minutes": "end of 5 minutes",
|
||||
"end of 10 minutes": "end of 10 minutes",
|
||||
"end of 30 minutes": "end of 30 minutes",
|
||||
"end of hour": "end of hour",
|
||||
"end of 2 hours": "end of 2 hours",
|
||||
"end of 3 hours": "end of 3 hours",
|
||||
"end of 4 hours": "end of 4 hours",
|
||||
"end of 6 hours": "end of 6 hours",
|
||||
"end of 8 hours": "end of 8 hours",
|
||||
"end of 12 hours": "end of 12 hours",
|
||||
"end of day": "end of day",
|
||||
"end of sunday": "end of sunday",
|
||||
"end of saturday": "end of saturday",
|
||||
"1minute": "end of minute",
|
||||
"5minutes": "end of 5 minutes",
|
||||
"10minutes": "end of 10 minutes",
|
||||
"30minutes": "end of 30 minutes",
|
||||
"1hour": "end of hour",
|
||||
"2hours": "end of 2 hours",
|
||||
"3hours": "end of 3 hours",
|
||||
"4hours": "end of 4 hours",
|
||||
"6hours": "end of 6 hours",
|
||||
"8hours": "end of 8 hours",
|
||||
"12hours": "end of 12 hours",
|
||||
"weekEurope": "end of day",
|
||||
"weekUsa": "end of sunday",
|
||||
"Bar settings": "Bar settings",
|
||||
"Fill color:": "Fill color:",
|
||||
"Show labels:": "Show labels:",
|
||||
"top over": "top over",
|
||||
"top under": "top under",
|
||||
"middle": "middle",
|
||||
"Bars width:": "Bars width:",
|
||||
"Label font size:": "Label font size:",
|
||||
"Label color:": "Label color:",
|
||||
"Markings": "Markings",
|
||||
"Line ID": "Line ID",
|
||||
"Fill": "Fill",
|
||||
"ØL": "ØL",
|
||||
"ØS": "ØS",
|
||||
"Text": "Text",
|
||||
"Text position": "Text position",
|
||||
"Text offset": "Text offset",
|
||||
"Text size": "Text size",
|
||||
"Text color": "Text color",
|
||||
"Add new markings": "Add new markings",
|
||||
"Left": "Left",
|
||||
"Right": "Right",
|
||||
"Upper value or ID": "Upper value or ID",
|
||||
"Lower value or ID": "Lower value or ID",
|
||||
"X-Axis ticks": "X-Axis ticks",
|
||||
"Y-Axis ticks": "Y-Axis ticks",
|
||||
"ignore null values": "ignore null values",
|
||||
"Ticks from:": "Use X-ticks from:",
|
||||
"use 0 instead of null values": "use 0 instead of null values",
|
||||
"More": "more",
|
||||
"Edit options for line %s": "Edit options for line %s",
|
||||
"Legend columns:": "Legend columns:",
|
||||
"Legend opacity (from 0 to 1):": "Legend opacity (from 0 to 1):",
|
||||
"Legend background:": "Legend background:",
|
||||
"Fill(0to1)": "Fill(0to1)",
|
||||
"Points": "Points"
|
||||
}
|
||||
@@ -0,0 +1,324 @@
|
||||
{
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"Ok": "De acuerdo",
|
||||
"role": "papel",
|
||||
"Update objects": "Actualizar objetos",
|
||||
"All": "Todas",
|
||||
"With": "Con",
|
||||
"Without": "Sin",
|
||||
"Update states": "Actualizar estados",
|
||||
"edit file": "editar archivo",
|
||||
"restart script": "script de reinicio",
|
||||
"Select": "Seleccionar",
|
||||
"Select ID": "Seleccionar ID",
|
||||
"add children": "agregar niños",
|
||||
"edit enum": "editar enum",
|
||||
"System settings": "Ajustes del sistema",
|
||||
"reload": "recargar",
|
||||
"Delete object": "Eliminar objeto",
|
||||
"no null": "& nbsp; no null",
|
||||
"%s ago": "hace% s",
|
||||
"Y-Offset": "Y-Offset",
|
||||
"ID": "CARNÉ DE IDENTIDAD",
|
||||
"Role": "Papel",
|
||||
"Room": "Habitación",
|
||||
"Value": "Valor",
|
||||
"none": "ninguna",
|
||||
"Save into:": "Guardar en:",
|
||||
"Name:": "Nombre:",
|
||||
"save": "salvar",
|
||||
"load": "carga",
|
||||
"Presets": "Presets",
|
||||
"IDs": "IDs",
|
||||
"new": "nuevo",
|
||||
"Enter chart name": "Ingrese el nombre del gráfico",
|
||||
"save %s": "ahorra",
|
||||
"Input data": "Datos de entrada",
|
||||
"Options": "Opciones",
|
||||
"Range:": "Distancia:",
|
||||
"5 seconds": "5 segundos",
|
||||
"10 seconds": "10 segundos",
|
||||
"15 seconds": "15 segundos",
|
||||
"20 seconds": "20 segundos",
|
||||
"30 seconds": "30 segundos",
|
||||
"1 minute": "1 minuto",
|
||||
"2 minutes": "2 minutos",
|
||||
"5 minutes": "5 minutos",
|
||||
"10 minutes": "10 minutos",
|
||||
"15 minutes": "15 minutos",
|
||||
"20 minutes": "20 minutos",
|
||||
"30 minutes": "30 minutos",
|
||||
"1 hour": "1 hora",
|
||||
"2 hours": "2 horas",
|
||||
"3 hours": "3 horas",
|
||||
"6 hours": "6 horas",
|
||||
"12 hours": "12 horas",
|
||||
"1 day": "1 día",
|
||||
"2 days": "2 días",
|
||||
"3 days": "3 días",
|
||||
"7 days": "7 días",
|
||||
"14 days": "14 dias",
|
||||
"1 month": "1 mes",
|
||||
"2 months": "2 meses",
|
||||
"3 months": "3 meses",
|
||||
"6 months": "6 meses",
|
||||
"1 year": "1 año",
|
||||
"2 years": "2 años",
|
||||
"Width:": "Anchura:",
|
||||
"Height:": "Altura:",
|
||||
"line": "Línea",
|
||||
"area": "Zona",
|
||||
"bar": "Bar",
|
||||
"lineplot": "Linear plot",
|
||||
"scatterplot": "Gráfico de dispersión",
|
||||
"steps": "Pasos",
|
||||
"spline": "Ranura",
|
||||
"Stack": "Apilar",
|
||||
"Window background:": "Fondo de la ventana:",
|
||||
"Custom chart background:": "Fondo de carta personalizada:",
|
||||
"Chart background:": "Fondo de la carta:",
|
||||
"X axis labels color:": "X etiquetas de color:",
|
||||
"Y axis labels color:": "Color de etiquetas Y:",
|
||||
"Show legend:": "Mostrar leyenda:",
|
||||
"Title:": "Título:",
|
||||
"Title position:": "Posición del título:",
|
||||
"Top, left, inside": "Arriba, izquierda, adentro",
|
||||
"Top, right, inside": "Arriba, derecha, adentro",
|
||||
"Top, center, inside": "Arriba, centro, adentro",
|
||||
"Middle, left, inside": "Medio, izquierdo, adentro",
|
||||
"Middle, right, inside": "Medio, derecho, adentro",
|
||||
"Bottom, left, inside": "Abajo, izquierda, adentro",
|
||||
"Bottom, right, inside": "Abajo, derecha, adentro",
|
||||
"Bottom, center, inside": "Abajo, centro, adentro",
|
||||
"Top, right, outside": "Arriba, a la derecha, afuera",
|
||||
"Middle, right, outside": "Medio, derecho, afuera",
|
||||
"Bottom, right, outside": "Abajo, a la derecha, afuera",
|
||||
"Bottom, center, outside": "Abajo, centro, afuera",
|
||||
"Min:": "Mínimo:",
|
||||
"Max:": "Máximo:",
|
||||
"User defined names:": "Nombres definidos por el usuario:",
|
||||
"Predefined background:": "Antecedentes predefinidos:",
|
||||
"User defined": "Usuario definido",
|
||||
"Background:": "Fondo:",
|
||||
"Hover details:": "Hover detalles:",
|
||||
"Time format:": "Formato de tiempo:",
|
||||
"Default": "Defecto",
|
||||
"Smoothing": "Suavizado",
|
||||
"After comma": "Después de la coma",
|
||||
"Open": "Abierto",
|
||||
"Update": "Actualizar",
|
||||
"Reset settings": "Reiniciar ajustes",
|
||||
"From": "De:",
|
||||
"Last changed": "Último cambio",
|
||||
"Time stamp": "Marca de tiempo",
|
||||
"Acknowledged": "Admitido",
|
||||
"Edit": "Editar",
|
||||
"Members": "Miembros",
|
||||
"Loading...": "Cargando...",
|
||||
"Processing...": "Tratamiento...",
|
||||
"With lines": "Con líneas",
|
||||
"Without lines": "Sin líneas",
|
||||
"Inside / With lines": "Dentro / Con líneas",
|
||||
"Outside/ With lines": "Fuera / Con líneas",
|
||||
"Inside / No lines": "Dentro / Sin líneas",
|
||||
"Outside / No lines": "Fuera / Sin líneas",
|
||||
"Interpolate:": "Interpolar:",
|
||||
"Steps": "Pasos",
|
||||
"Pie": "Tarta",
|
||||
"Top, left": "Arriba a la izquierda",
|
||||
"Top, right": "Parte superior derecha",
|
||||
"Bottom, left": "Abajo, izquierda",
|
||||
"Bottom, right": "Abajo a la derecha",
|
||||
"Title color:": "Color del título:",
|
||||
"Title size:": "Tamaño del título:",
|
||||
"Fill range:": "Rango de llenado:",
|
||||
"Units:": "Unidades:",
|
||||
"yes": "sí",
|
||||
"bottom": "fondo",
|
||||
"top": "parte superior",
|
||||
"left": "izquierda",
|
||||
"right": "derecho",
|
||||
"No border:": "Sin bordes:",
|
||||
"Time": "Hora",
|
||||
"day": "día",
|
||||
"month": "mes",
|
||||
"year": "año",
|
||||
"Individual": "Individual",
|
||||
"Aggregation:": "Tipo:",
|
||||
"relative": "relativo",
|
||||
"static": "estático",
|
||||
"now": "ahora",
|
||||
"today": "hoy",
|
||||
"this month": "este mes",
|
||||
"this year": "este año",
|
||||
"Start:": "Comienzo:",
|
||||
"End:": "Fin:",
|
||||
"Aggregate": "Agregar",
|
||||
"Step type:": "Tipo de paso:",
|
||||
"seconds": "segundos",
|
||||
"Seconds": "Segundos",
|
||||
"Step span:": "Lapso de paso:",
|
||||
"Link": "Enlazar",
|
||||
"Counts": "Cuenta",
|
||||
"ignore 'null'": "ignorar 'nulo'",
|
||||
"Time Span": "Espacio de tiempo",
|
||||
"Appearance": "Apariencia",
|
||||
"Title": "Título",
|
||||
"Offset": "X-Offset",
|
||||
"Aggregation": "Tipo",
|
||||
"Chart Type": "Tipo de gráfico",
|
||||
"Color": "Color",
|
||||
"Min": "Min.",
|
||||
"Max": "Max",
|
||||
"Unit": "Unidad",
|
||||
"Y Axis": "Eje Y",
|
||||
"X Axis": "Eje X",
|
||||
"update Preview": "actualización de Vista previa",
|
||||
"Cancel": "Cancelar",
|
||||
"Name": "Nombre",
|
||||
"Live update every:": "Actualización en vivo cada:",
|
||||
"counts": "conteos",
|
||||
"Add new line": "Agregar nueva línea",
|
||||
"Animation:": "Animación:",
|
||||
"no": "no",
|
||||
"0s": "0 segundos",
|
||||
"300ms": "300ms",
|
||||
"500ms": "500ms",
|
||||
"1s": "1 segundo",
|
||||
"2s": "2 segundos",
|
||||
"3s": "3 segundos",
|
||||
"5s": "5 segundos",
|
||||
"10s": "10 segundos",
|
||||
"30s": "30 segundos",
|
||||
"60s": "60 segundos",
|
||||
"2m": "2 minutos",
|
||||
"3m": "3 minutos",
|
||||
"4m": "4 minutos",
|
||||
"5m": "5 minutos",
|
||||
"10m": "10 minutos",
|
||||
"15m": "15 minutos",
|
||||
"30m": "30 minutos",
|
||||
"45m": "45 minutos",
|
||||
"1H": "1 hora",
|
||||
"2H": "2 horas",
|
||||
"6H": "6 horas",
|
||||
"12H": "12 horas",
|
||||
"1D": "1 día",
|
||||
"2D": "2 días",
|
||||
"3D": "3 días",
|
||||
"4D": "4 dias",
|
||||
"1W": "1 semana",
|
||||
"2W": "2 semanas",
|
||||
"4W": "4 semanas",
|
||||
"8W": "8 semanas",
|
||||
"12W": "12 semanas",
|
||||
"26W": "26 semanas",
|
||||
"1M": "1 mes",
|
||||
"2M": "2 meses",
|
||||
"3M": "3 meses",
|
||||
"6M": "6 meses",
|
||||
"1Y": "1 año",
|
||||
"2Y": "2 años",
|
||||
"average": "promedio",
|
||||
"max": "máximo",
|
||||
"min": "min",
|
||||
"total": "total",
|
||||
"off": "apagado",
|
||||
"leftColor": "color izquierdo",
|
||||
"rightColor": "color derecho",
|
||||
"topColor": "tapa coloreada",
|
||||
"bottomColor": "color de fondo",
|
||||
"default": "defecto",
|
||||
"Auto-update:": "Actualización automática:",
|
||||
"Use comma:": "Usa la coma",
|
||||
"Common Y Axis": "Eje Y común",
|
||||
"Instance": "Ejemplo",
|
||||
"Line Width": "Ancho de línea",
|
||||
"Shadow Size": "Tamaño de las Sombras",
|
||||
"ignore 'null':": "ignorar 'nulo':",
|
||||
"onchange": "en cambio",
|
||||
"Border color:": "Color del borde:",
|
||||
"Grid color:": "Color de cuadrícula",
|
||||
"Border width:": "Ancho del borde:",
|
||||
"Enable zoom and pan:": "Habilitar zoom y pan:",
|
||||
"Arrange bools": "Organizar booleanos",
|
||||
"NULL as": "NULL como",
|
||||
"MinMax": "Mínimo máximo",
|
||||
"null": "nulo",
|
||||
"true": "último valor",
|
||||
"last value": "último valor",
|
||||
"Hide edit button:": "Ocultar botón de edición:",
|
||||
"minmax": "mínimo máximo",
|
||||
"ØL": "& # 216L",
|
||||
"ØS": "& # 216S",
|
||||
"Line": "Línea",
|
||||
"false": "nulo",
|
||||
"end of minute": "fin del minuto",
|
||||
"end of 5 minutes": "fin de 5 minutos",
|
||||
"end of 10 minutes": "fin de 10 minutos",
|
||||
"end of 30 minutes": "fin de 30 minutos",
|
||||
"end of hour": "fin de hora",
|
||||
"end of 2 hours": "fin de 2 horas",
|
||||
"end of 3 hours": "fin de 3 horas",
|
||||
"end of 4 hours": "fin de 4 horas",
|
||||
"end of 6 hours": "fin de 6 horas",
|
||||
"end of 8 hours": "fin de 8 horas",
|
||||
"end of 12 hours": "fin de 12 horas",
|
||||
"end of day": "fin del día",
|
||||
"end of sunday": "fin del domingo",
|
||||
"end of saturday": "fin de sabado",
|
||||
"1minute": "fin del minuto",
|
||||
"5minutes": "fin de 5 minutos",
|
||||
"10minutes": "fin de 10 minutos",
|
||||
"30minutes": "fin de 30 minutos",
|
||||
"1hour": "fin de hora",
|
||||
"2hours": "fin de 2 horas",
|
||||
"3hours": "fin de 3 horas",
|
||||
"4hours": "fin de 4 horas",
|
||||
"6hours": "fin de 6 horas",
|
||||
"8hours": "fin de 8 horas",
|
||||
"12hours": "fin de 12 horas",
|
||||
"weekEurope": "fin del día",
|
||||
"weekUsa": "fin del domingo",
|
||||
"Bar settings": "Configuración de barra",
|
||||
"Fill color:": "Color de relleno:",
|
||||
"Show labels:": "Mostrar etiquetas:",
|
||||
"top over": "arriba encima",
|
||||
"top under": "arriba debajo",
|
||||
"middle": "medio",
|
||||
"Bars width:": "Ancho de barras:",
|
||||
"Label font size:": "Tamaño de letra de la etiqueta:",
|
||||
"Label color:": "Color de etiqueta:",
|
||||
"Markings": "Marcas",
|
||||
"Line ID": "Identificación de línea",
|
||||
"Fill": "Llenar",
|
||||
"ØL": "ØL",
|
||||
"ØS": "ØS",
|
||||
"Text": "Texto",
|
||||
"Text position": "Posición del texto",
|
||||
"Text offset": "Offset de texto",
|
||||
"Text size": "Tamano del texto",
|
||||
"Text color": "Color de texto",
|
||||
"Add new markings": "Agregar nuevas marcas",
|
||||
"Left": "Izquierda",
|
||||
"Right": "Derecha",
|
||||
"Upper value or ID": "Valor superior o ID",
|
||||
"Lower value or ID": "Menor valor o ID",
|
||||
"X-Axis ticks": "Garrapatas X-Axis",
|
||||
"Y-Axis ticks": "Señales del eje Y",
|
||||
"ignore null values": "ignorar valores nulos",
|
||||
"Ticks from:": "Use X-ticks desde:",
|
||||
"use 0 instead of null values": "use 0 en lugar de valores nulos",
|
||||
"More": "Más",
|
||||
"Edit options for line %s": "Editar opciones para la línea% s",
|
||||
"Legend columns:": "Columnas leyenda",
|
||||
"Legend opacity (from 0 to 1):": "Opacidad de la leyenda (de 0 a 1):",
|
||||
"Legend background:": "Antecedentes de leyenda:",
|
||||
"Fill(0to1)": "Rellenar (0to1)",
|
||||
"Points": "Puntos"
|
||||
}
|
||||
@@ -0,0 +1,324 @@
|
||||
{
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"Ok": "D'accord",
|
||||
"role": "rôle",
|
||||
"Update objects": "Mettre à jour",
|
||||
"All": "Tout",
|
||||
"With": "Avec",
|
||||
"Without": "Sans pour autant",
|
||||
"Update states": "Mettre à jour",
|
||||
"edit file": "modifier le fichier",
|
||||
"restart script": "redémarrer le script",
|
||||
"Select": "Sélectionner",
|
||||
"Select ID": "Sélectionner un identifiant",
|
||||
"add children": "ajouter des enfants",
|
||||
"edit enum": "éditer enum",
|
||||
"System settings": "Les paramètres du système",
|
||||
"reload": "recharger",
|
||||
"Delete object": "Supprimer un objet",
|
||||
"no null": "& nbsp; non nul",
|
||||
"%s ago": "il y a% s",
|
||||
"Y-Offset": "Y-Offset",
|
||||
"ID": "ID",
|
||||
"Role": "Rôle",
|
||||
"Room": "Chambre",
|
||||
"Value": "Valeur",
|
||||
"none": "aucun",
|
||||
"Save into:": "Enregistrer dans:",
|
||||
"Name:": "Prénom:",
|
||||
"save": "enregistrer",
|
||||
"load": "charge",
|
||||
"Presets": "Presets",
|
||||
"IDs": "ID",
|
||||
"new": "Nouveau",
|
||||
"Enter chart name": "Entrez le nom du diagramme",
|
||||
"save %s": "enregistrer% s",
|
||||
"Input data": "Des données d'entrée",
|
||||
"Options": "Options",
|
||||
"Range:": "Gamme:",
|
||||
"5 seconds": "5 secondes",
|
||||
"10 seconds": "10 secondes",
|
||||
"15 seconds": "15 secondes",
|
||||
"20 seconds": "20 secondes",
|
||||
"30 seconds": "30 secondes",
|
||||
"1 minute": "1 minute",
|
||||
"2 minutes": "2 minutes",
|
||||
"5 minutes": "5 minutes",
|
||||
"10 minutes": "10 minutes",
|
||||
"15 minutes": "15 minutes",
|
||||
"20 minutes": "20 minutes",
|
||||
"30 minutes": "30 minutes",
|
||||
"1 hour": "1 heure",
|
||||
"2 hours": "2 heures",
|
||||
"3 hours": "3 heures",
|
||||
"6 hours": "6 heures",
|
||||
"12 hours": "12 heures",
|
||||
"1 day": "Un jour",
|
||||
"2 days": "2 jours",
|
||||
"3 days": "3 jours",
|
||||
"7 days": "7 jours",
|
||||
"14 days": "14 jours",
|
||||
"1 month": "1 mois",
|
||||
"2 months": "2 mois",
|
||||
"3 months": "3 mois",
|
||||
"6 months": "6 mois",
|
||||
"1 year": "1 an",
|
||||
"2 years": "2 ans",
|
||||
"Width:": "Largeur:",
|
||||
"Height:": "La taille:",
|
||||
"line": "Ligne",
|
||||
"area": "Région",
|
||||
"bar": "Bar",
|
||||
"lineplot": "Graphique linéaire",
|
||||
"scatterplot": "Scatter plot",
|
||||
"steps": "Pas",
|
||||
"spline": "Spline",
|
||||
"Stack": "Empiler",
|
||||
"Window background:": "Fond de fenêtre:",
|
||||
"Custom chart background:": "Arrière-plan de graphique personnalisé:",
|
||||
"Chart background:": "Arrière-plan du graphique",
|
||||
"X axis labels color:": "X étiquettes couleur:",
|
||||
"Y axis labels color:": "Couleur des étiquettes Y:",
|
||||
"Show legend:": "Afficher la légende:",
|
||||
"Title:": "Titre:",
|
||||
"Title position:": "Titre du poste:",
|
||||
"Top, left, inside": "Haut, gauche, intérieur",
|
||||
"Top, right, inside": "En haut, à droite, à l'intérieur",
|
||||
"Top, center, inside": "Haut, centre, intérieur",
|
||||
"Middle, left, inside": "Milieu, gauche, intérieur",
|
||||
"Middle, right, inside": "Moyen, droit, intérieur",
|
||||
"Bottom, left, inside": "Bas, gauche, intérieur",
|
||||
"Bottom, right, inside": "En bas, à droite, à l'intérieur",
|
||||
"Bottom, center, inside": "Bas, centre, intérieur",
|
||||
"Top, right, outside": "Haut, droit, dehors",
|
||||
"Middle, right, outside": "Moyen, droit, dehors",
|
||||
"Bottom, right, outside": "En bas, à droite, à l'extérieur",
|
||||
"Bottom, center, outside": "Bas, centre, extérieur",
|
||||
"Min:": "Le minimum:",
|
||||
"Max:": "Maximum:",
|
||||
"User defined names:": "Noms définis par l'utilisateur:",
|
||||
"Predefined background:": "Arrière-plan prédéfini:",
|
||||
"User defined": "Défini par l'utilisateur",
|
||||
"Background:": "Contexte:",
|
||||
"Hover details:": "Hover détails:",
|
||||
"Time format:": "Format de l'heure:",
|
||||
"Default": "Défaut",
|
||||
"Smoothing": "Lissage",
|
||||
"After comma": "Après la virgule",
|
||||
"Open": "Ouvrir",
|
||||
"Update": "Mettre à jour",
|
||||
"Reset settings": "Réinitialiser les options",
|
||||
"From": "De:",
|
||||
"Last changed": "Dernière modification",
|
||||
"Time stamp": "Horodatage",
|
||||
"Acknowledged": "Reconnu",
|
||||
"Edit": "modifier",
|
||||
"Members": "Membres",
|
||||
"Loading...": "Chargement...",
|
||||
"Processing...": "En traitement...",
|
||||
"With lines": "Avec des lignes",
|
||||
"Without lines": "Sans lignes",
|
||||
"Inside / With lines": "À l'intérieur / Avec des lignes",
|
||||
"Outside/ With lines": "Extérieur / Avec lignes",
|
||||
"Inside / No lines": "À l'intérieur / Pas de lignes",
|
||||
"Outside / No lines": "Extérieur / Pas de lignes",
|
||||
"Interpolate:": "Interpoler:",
|
||||
"Steps": "Pas",
|
||||
"Pie": "Tarte",
|
||||
"Top, left": "En haut à gauche",
|
||||
"Top, right": "En haut à droite",
|
||||
"Bottom, left": "En bas à gauche",
|
||||
"Bottom, right": "En bas à droite",
|
||||
"Title color:": "Couleur du titre:",
|
||||
"Title size:": "Taille du titre:",
|
||||
"Fill range:": "Remplir gamme:",
|
||||
"Units:": "Unités:",
|
||||
"yes": "Oui",
|
||||
"bottom": "bas",
|
||||
"top": "Haut",
|
||||
"left": "la gauche",
|
||||
"right": "droite",
|
||||
"No border:": "Pas de frontière:",
|
||||
"Time": "Temps",
|
||||
"day": "journée",
|
||||
"month": "mois",
|
||||
"year": "an",
|
||||
"Individual": "Individuel",
|
||||
"Aggregation:": "Type:",
|
||||
"relative": "relatif",
|
||||
"static": "statique",
|
||||
"now": "à présent",
|
||||
"today": "aujourd'hui",
|
||||
"this month": "ce mois-ci",
|
||||
"this year": "cette année",
|
||||
"Start:": "Début:",
|
||||
"End:": "Fin:",
|
||||
"Aggregate": "Agrégat",
|
||||
"Step type:": "Type d'étape:",
|
||||
"seconds": "secondes",
|
||||
"Seconds": "Secondes",
|
||||
"Step span:": "Étape span:",
|
||||
"Link": "Lien",
|
||||
"Counts": "Compte",
|
||||
"ignore 'null'": "ignore 'null'",
|
||||
"Time Span": "Durée",
|
||||
"Appearance": "Apparence",
|
||||
"Title": "Titre",
|
||||
"Offset": "X-Offset",
|
||||
"Aggregation": "Type",
|
||||
"Chart Type": "Type de graphique",
|
||||
"Color": "Couleur",
|
||||
"Min": "Min",
|
||||
"Max": "Max",
|
||||
"Unit": "Unité",
|
||||
"Y Axis": "Axe Y",
|
||||
"X Axis": "Axe X",
|
||||
"update Preview": "aperçu de mise à jour",
|
||||
"Cancel": "Annuler",
|
||||
"Name": "prénom",
|
||||
"Live update every:": "Mise à jour en direct tous les:",
|
||||
"counts": "compte",
|
||||
"Add new line": "Ajouter une nouvelle ligne",
|
||||
"Animation:": "Animation:",
|
||||
"no": "non",
|
||||
"0s": "0 seconde",
|
||||
"300ms": "300ms",
|
||||
"500ms": "500ms",
|
||||
"1s": "1 seconde",
|
||||
"2s": "2 secondes",
|
||||
"3s": "3 secondes",
|
||||
"5s": "5 secondes",
|
||||
"10s": "10 secondes",
|
||||
"30s": "30 secondes",
|
||||
"60s": "60 secondes",
|
||||
"2m": "2 minutes",
|
||||
"3m": "3 minutes",
|
||||
"4m": "4 minutes",
|
||||
"5m": "5 minutes",
|
||||
"10m": "10 minutes",
|
||||
"15m": "15 minutes",
|
||||
"30m": "30 minutes",
|
||||
"45m": "45 minutes",
|
||||
"1H": "1 heure",
|
||||
"2H": "2 heures",
|
||||
"6H": "6 heures",
|
||||
"12H": "12 heures",
|
||||
"1D": "Un jour",
|
||||
"2D": "2 jours",
|
||||
"3D": "3 jours",
|
||||
"4D": "4 jours",
|
||||
"1W": "1 semaine",
|
||||
"2W": "2 semaines",
|
||||
"4W": "4 semaines",
|
||||
"8W": "8 semaines",
|
||||
"12W": "12 semaines",
|
||||
"26W": "26 semaines",
|
||||
"1M": "1 mois",
|
||||
"2M": "2 mois",
|
||||
"3M": "3 mois",
|
||||
"6M": "6 mois",
|
||||
"1Y": "1 an",
|
||||
"2Y": "2 ans",
|
||||
"average": "moyenne",
|
||||
"max": "max",
|
||||
"min": "min",
|
||||
"total": "total",
|
||||
"off": "de",
|
||||
"leftColor": "laissé coloré",
|
||||
"rightColor": "couleur droite",
|
||||
"topColor": "top coloré",
|
||||
"bottomColor": "fond coloré",
|
||||
"default": "défaut",
|
||||
"Auto-update:": "Mise à jour automatique:",
|
||||
"Use comma:": "Utilisez une virgule:",
|
||||
"Common Y Axis": "Axe Y commun",
|
||||
"Instance": "Exemple",
|
||||
"Line Width": "Largeur de ligne",
|
||||
"Shadow Size": "Taille de l'ombre",
|
||||
"ignore 'null':": "ignore 'null':",
|
||||
"onchange": "sur le changement",
|
||||
"Border color:": "Couleur de la bordure:",
|
||||
"Grid color:": "Couleur de la grille:",
|
||||
"Border width:": "Largeur de la bordure:",
|
||||
"Enable zoom and pan:": "Activer le zoom et le panoramique:",
|
||||
"Arrange bools": "Organiser les booléens",
|
||||
"NULL as": "NULL comme",
|
||||
"MinMax": "Min max",
|
||||
"null": "nul",
|
||||
"true": "dernière valeur",
|
||||
"last value": "dernière valeur",
|
||||
"Hide edit button:": "Masquer le bouton d'édition:",
|
||||
"minmax": "min max",
|
||||
"ØL": "& # 216L",
|
||||
"ØS": "& # 216S",
|
||||
"Line": "Ligne",
|
||||
"false": "nul",
|
||||
"end of minute": "fin de minute",
|
||||
"end of 5 minutes": "fin de 5 minutes",
|
||||
"end of 10 minutes": "fin de 10 minutes",
|
||||
"end of 30 minutes": "fin de 30 minutes",
|
||||
"end of hour": "fin de l'heure",
|
||||
"end of 2 hours": "fin de 2 heures",
|
||||
"end of 3 hours": "fin de 3 heures",
|
||||
"end of 4 hours": "fin de 4 heures",
|
||||
"end of 6 hours": "fin de 6 heures",
|
||||
"end of 8 hours": "fin de 8 heures",
|
||||
"end of 12 hours": "fin de 12 heures",
|
||||
"end of day": "fin de la journée",
|
||||
"end of sunday": "fin de dimanche",
|
||||
"end of saturday": "fin de samedi",
|
||||
"1minute": "fin de minute",
|
||||
"5minutes": "fin de 5 minutes",
|
||||
"10minutes": "fin de 10 minutes",
|
||||
"30minutes": "fin de 30 minutes",
|
||||
"1hour": "fin de l'heure",
|
||||
"2hours": "fin de 2 heures",
|
||||
"3hours": "fin de 3 heures",
|
||||
"4hours": "fin de 4 heures",
|
||||
"6hours": "fin de 6 heures",
|
||||
"8hours": "fin de 8 heures",
|
||||
"12hours": "fin de 12 heures",
|
||||
"weekEurope": "fin de la journée",
|
||||
"weekUsa": "fin de dimanche",
|
||||
"Bar settings": "Paramètres du bar",
|
||||
"Fill color:": "La couleur de remplissage:",
|
||||
"Show labels:": "Afficher les étiquettes:",
|
||||
"top over": "dessus",
|
||||
"top under": "haut sous",
|
||||
"middle": "milieu",
|
||||
"Bars width:": "Largeur des barres:",
|
||||
"Label font size:": "Étiquette taille de la police:",
|
||||
"Label color:": "Étiquette couleur:",
|
||||
"Markings": "Marquages",
|
||||
"Line ID": "Id de ligne",
|
||||
"Fill": "Remplir",
|
||||
"ØL": "ØL",
|
||||
"ØS": "ØS",
|
||||
"Text": "Texte",
|
||||
"Text position": "Position du texte",
|
||||
"Text offset": "Décalage de texte",
|
||||
"Text size": "Taille du texte",
|
||||
"Text color": "Couleur du texte",
|
||||
"Add new markings": "Ajouter de nouvelles marques",
|
||||
"Left": "La gauche",
|
||||
"Right": "Droite",
|
||||
"Upper value or ID": "Valeur supérieure ou ID",
|
||||
"Lower value or ID": "Valeur inférieure ou ID",
|
||||
"X-Axis ticks": "Tiques de l'axe des X",
|
||||
"Y-Axis ticks": "Tiques de l'axe des Y",
|
||||
"ignore null values": "ignorer les valeurs nulles",
|
||||
"Ticks from:": "Utilisez les X-ticks de:",
|
||||
"use 0 instead of null values": "utilise 0 au lieu de valeurs nulles",
|
||||
"More": "plus",
|
||||
"Edit options for line %s": "Modifier les options pour la ligne% s",
|
||||
"Legend columns:": "Colonnes de légende:",
|
||||
"Legend opacity (from 0 to 1):": "Opacité de la légende (de 0 à 1):",
|
||||
"Legend background:": "Contexte de la légende",
|
||||
"Fill(0to1)": "Remplir (0to1)",
|
||||
"Points": "Points"
|
||||
}
|
||||
@@ -0,0 +1,324 @@
|
||||
{
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"Ok": "Ok",
|
||||
"role": "ruolo",
|
||||
"Update objects": "Aggiorna oggetti",
|
||||
"All": "Tutti",
|
||||
"With": "Con",
|
||||
"Without": "Senza",
|
||||
"Update states": "Stati di aggiornamento",
|
||||
"edit file": "modifica file",
|
||||
"restart script": "riavviare lo script",
|
||||
"Select": "Selezionare",
|
||||
"Select ID": "Seleziona ID",
|
||||
"add children": "aggiungi bambini",
|
||||
"edit enum": "modifica enum",
|
||||
"System settings": "Impostazioni di sistema",
|
||||
"reload": "ricaricare",
|
||||
"Delete object": "Elimina oggetto",
|
||||
"no null": "& nbsp; non null",
|
||||
"%s ago": "% s fa",
|
||||
"Y-Offset": "Y-Offset",
|
||||
"ID": "ID",
|
||||
"Role": "Ruolo",
|
||||
"Room": "Camera",
|
||||
"Value": "Valore",
|
||||
"none": "nessuna",
|
||||
"Save into:": "Salva in:",
|
||||
"Name:": "Nome:",
|
||||
"save": "salvare",
|
||||
"load": "caricare",
|
||||
"Presets": "Presets",
|
||||
"IDs": "ID",
|
||||
"new": "nuovo",
|
||||
"Enter chart name": "Inserisci il nome del grafico",
|
||||
"save %s": "salva% s",
|
||||
"Input data": "Dati in ingresso",
|
||||
"Options": "Opzioni",
|
||||
"Range:": "Gamma:",
|
||||
"5 seconds": "5 secondi",
|
||||
"10 seconds": "10 secondi",
|
||||
"15 seconds": "15 secondi",
|
||||
"20 seconds": "20 secondi",
|
||||
"30 seconds": "30 secondi",
|
||||
"1 minute": "1 minuto",
|
||||
"2 minutes": "2 minuti",
|
||||
"5 minutes": "5 minuti",
|
||||
"10 minutes": "10 minuti",
|
||||
"15 minutes": "15 minuti",
|
||||
"20 minutes": "20 minuti",
|
||||
"30 minutes": "30 minuti",
|
||||
"1 hour": "1 ora",
|
||||
"2 hours": "2 ore",
|
||||
"3 hours": "3 ore",
|
||||
"6 hours": "6 ore",
|
||||
"12 hours": "12 ore",
|
||||
"1 day": "1 giorno",
|
||||
"2 days": "2 giorni",
|
||||
"3 days": "3 giorni",
|
||||
"7 days": "7 giorni",
|
||||
"14 days": "14 giorni",
|
||||
"1 month": "1 mese",
|
||||
"2 months": "Due mesi",
|
||||
"3 months": "3 mesi",
|
||||
"6 months": "6 mesi",
|
||||
"1 year": "1 anno",
|
||||
"2 years": "2 anni",
|
||||
"Width:": "Larghezza:",
|
||||
"Height:": "Altezza:",
|
||||
"line": "Linea",
|
||||
"area": "La zona",
|
||||
"bar": "Bar",
|
||||
"lineplot": "Trama di linea",
|
||||
"scatterplot": "Trama sparsa",
|
||||
"steps": "passi",
|
||||
"spline": "linguetta",
|
||||
"Stack": "Pila",
|
||||
"Window background:": "Sfondo della finestra:",
|
||||
"Custom chart background:": "Sfondo grafico personalizzato:",
|
||||
"Chart background:": "Sfondo del grafico:",
|
||||
"X axis labels color:": "Colore etichette X:",
|
||||
"Y axis labels color:": "Il colore delle etichette Y:",
|
||||
"Show legend:": "Mostra legenda:",
|
||||
"Title:": "Titolo:",
|
||||
"Title position:": "Posizione del titolo:",
|
||||
"Top, left, inside": "In alto, a sinistra, dentro",
|
||||
"Top, right, inside": "In alto, a destra, dentro",
|
||||
"Top, center, inside": "In alto, al centro, dentro",
|
||||
"Middle, left, inside": "Medio, a sinistra, dentro",
|
||||
"Middle, right, inside": "Medio, giusto, dentro",
|
||||
"Bottom, left, inside": "In basso, a sinistra, dentro",
|
||||
"Bottom, right, inside": "In basso, a destra, dentro",
|
||||
"Bottom, center, inside": "In basso, al centro, dentro",
|
||||
"Top, right, outside": "In alto, a destra, fuori",
|
||||
"Middle, right, outside": "Medio, giusto, esterno",
|
||||
"Bottom, right, outside": "In basso, a destra, fuori",
|
||||
"Bottom, center, outside": "In basso, al centro, fuori",
|
||||
"Min:": "Minimo:",
|
||||
"Max:": "Massimo:",
|
||||
"User defined names:": "Nomi definiti dall'utente:",
|
||||
"Predefined background:": "Sfondo predefinito:",
|
||||
"User defined": "Definito dall'utente",
|
||||
"Background:": "Sfondo:",
|
||||
"Hover details:": "Dettagli al passaggio del mouse:",
|
||||
"Time format:": "Formato orario:",
|
||||
"Default": "Predefinito",
|
||||
"Smoothing": "lisciatura",
|
||||
"After comma": "Dopo la virgola",
|
||||
"Open": "Aperto",
|
||||
"Update": "Aggiornare",
|
||||
"Reset settings": "Ripristina le impostazioni",
|
||||
"From": "A partire dal:",
|
||||
"Last changed": "Ultima modifica",
|
||||
"Time stamp": "Data e ora",
|
||||
"Acknowledged": "Riconosciuto",
|
||||
"Edit": "modificare",
|
||||
"Members": "Utenti",
|
||||
"Loading...": "Caricamento in corso...",
|
||||
"Processing...": "In lavorazione...",
|
||||
"With lines": "Con le linee",
|
||||
"Without lines": "Senza linee",
|
||||
"Inside / With lines": "Interno / Con linee",
|
||||
"Outside/ With lines": "Esterno / Con linee",
|
||||
"Inside / No lines": "Dentro / Nessuna linea",
|
||||
"Outside / No lines": "Fuori / Nessuna linea",
|
||||
"Interpolate:": "Interpolare:",
|
||||
"Steps": "passi",
|
||||
"Pie": "Torta",
|
||||
"Top, left": "A sinistra in alto",
|
||||
"Top, right": "In alto a destra",
|
||||
"Bottom, left": "In basso a sinistra",
|
||||
"Bottom, right": "In basso a destra",
|
||||
"Title color:": "Colore del titolo:",
|
||||
"Title size:": "Dimensione del titolo:",
|
||||
"Fill range:": "Gamma di riempimento:",
|
||||
"Units:": "unità:",
|
||||
"yes": "sì",
|
||||
"bottom": "parte inferiore",
|
||||
"top": "superiore",
|
||||
"left": "sinistra",
|
||||
"right": "destra",
|
||||
"No border:": "Nessun confine:",
|
||||
"Time": "Tempo",
|
||||
"day": "giorno",
|
||||
"month": "mese",
|
||||
"year": "anno",
|
||||
"Individual": "Individuale",
|
||||
"Aggregation:": "Genere:",
|
||||
"relative": "parente",
|
||||
"static": "statico",
|
||||
"now": "adesso",
|
||||
"today": "oggi",
|
||||
"this month": "questo mese",
|
||||
"this year": "quest'anno",
|
||||
"Start:": "Inizio:",
|
||||
"End:": "Fine:",
|
||||
"Aggregate": "Aggregato",
|
||||
"Step type:": "Tipo di passaggio:",
|
||||
"seconds": "secondi",
|
||||
"Seconds": "secondi",
|
||||
"Step span:": "Intervallo:",
|
||||
"Link": "collegamento",
|
||||
"Counts": "Conti",
|
||||
"ignore 'null'": "ignora 'null'",
|
||||
"Time Span": "Arco di tempo",
|
||||
"Appearance": "Aspetto",
|
||||
"Title": "Titolo",
|
||||
"Offset": "X-Offset",
|
||||
"Aggregation": "genere",
|
||||
"Chart Type": "Tipo di grafico",
|
||||
"Color": "Colore",
|
||||
"Min": "min",
|
||||
"Max": "Max",
|
||||
"Unit": "Unità",
|
||||
"Y Axis": "Asse Y.",
|
||||
"X Axis": "Asse X.",
|
||||
"update Preview": "Aggiorna anteprima",
|
||||
"Cancel": "Annulla",
|
||||
"Name": "Nome",
|
||||
"Live update every:": "Aggiornamento live ogni:",
|
||||
"counts": "conta",
|
||||
"Add new line": "Aggiungi una nuova linea",
|
||||
"Animation:": "Animazione:",
|
||||
"no": "no",
|
||||
"0s": "0 secondi",
|
||||
"300ms": "300ms",
|
||||
"500ms": "500ms",
|
||||
"1s": "1 secondo",
|
||||
"2s": "2 secondi",
|
||||
"3s": "3 secondi",
|
||||
"5s": "5 secondi",
|
||||
"10s": "10 secondi",
|
||||
"30s": "30 secondi",
|
||||
"60s": "60 secondi",
|
||||
"2m": "2 minuti",
|
||||
"3m": "3 minuti",
|
||||
"4m": "4 minuti",
|
||||
"5m": "5 minuti",
|
||||
"10m": "10 minuti",
|
||||
"15m": "15 minuti",
|
||||
"30m": "30 minuti",
|
||||
"45m": "45 minuti",
|
||||
"1H": "1 ora",
|
||||
"2H": "2 ore",
|
||||
"6H": "6 ore",
|
||||
"12H": "12 ore",
|
||||
"1D": "1 giorno",
|
||||
"2D": "2 giorni",
|
||||
"3D": "3 giorni",
|
||||
"4D": "4 giorni",
|
||||
"1W": "1 settimana",
|
||||
"2W": "2 settimane",
|
||||
"4W": "4 settimane",
|
||||
"8W": "8 settimane",
|
||||
"12W": "12 settimane",
|
||||
"26W": "26 settimane",
|
||||
"1M": "1 mese",
|
||||
"2M": "Due mesi",
|
||||
"3M": "3 mesi",
|
||||
"6M": "6 mesi",
|
||||
"1Y": "1 anno",
|
||||
"2Y": "2 anni",
|
||||
"average": "media",
|
||||
"max": "max",
|
||||
"min": "min",
|
||||
"total": "totale",
|
||||
"off": "via",
|
||||
"leftColor": "lasciato colorato",
|
||||
"rightColor": "giusto colorato",
|
||||
"topColor": "top colorato",
|
||||
"bottomColor": "fondo colorato",
|
||||
"default": "predefinito",
|
||||
"Auto-update:": "Aggiornamento automatico:",
|
||||
"Use comma:": "Usa la virgola:",
|
||||
"Common Y Axis": "Asse Y comune",
|
||||
"Instance": "Esempio",
|
||||
"Line Width": "Larghezza della linea",
|
||||
"Shadow Size": "Dimensione dell'ombra",
|
||||
"ignore 'null':": "ignora 'null':",
|
||||
"onchange": "sul cambiamento",
|
||||
"Border color:": "Colore del bordo:",
|
||||
"Grid color:": "Colore griglia:",
|
||||
"Border width:": "Larghezza del bordo:",
|
||||
"Enable zoom and pan:": "Abilita zoom e panoramica:",
|
||||
"Arrange bools": "Disporre i booleani",
|
||||
"NULL as": "NULL come",
|
||||
"MinMax": "Minimo Massimo",
|
||||
"null": "nullo",
|
||||
"true": "ultimo valore",
|
||||
"last value": "ultimo valore",
|
||||
"Hide edit button:": "Nascondi pulsante di modifica:",
|
||||
"minmax": "minimo Massimo",
|
||||
"ØL": "& # 216L",
|
||||
"ØS": "& # 216S",
|
||||
"Line": "Linea",
|
||||
"false": "nullo",
|
||||
"end of minute": "fine del minuto",
|
||||
"end of 5 minutes": "fine di 5 minuti",
|
||||
"end of 10 minutes": "fine di 10 minuti",
|
||||
"end of 30 minutes": "fine di 30 minuti",
|
||||
"end of hour": "fine dell'ora",
|
||||
"end of 2 hours": "fine di 2 ore",
|
||||
"end of 3 hours": "fine di 3 ore",
|
||||
"end of 4 hours": "fine di 4 ore",
|
||||
"end of 6 hours": "fine di 6 ore",
|
||||
"end of 8 hours": "fine di 8 ore",
|
||||
"end of 12 hours": "fine di 12 ore",
|
||||
"end of day": "fine del giorno",
|
||||
"end of sunday": "fine della domenica",
|
||||
"end of saturday": "fine di sabato",
|
||||
"1minute": "fine del minuto",
|
||||
"5minutes": "fine di 5 minuti",
|
||||
"10minutes": "fine di 10 minuti",
|
||||
"30minutes": "fine di 30 minuti",
|
||||
"1hour": "fine dell'ora",
|
||||
"2hours": "fine di 2 ore",
|
||||
"3hours": "fine di 3 ore",
|
||||
"4hours": "fine di 4 ore",
|
||||
"6hours": "fine di 6 ore",
|
||||
"8hours": "fine di 8 ore",
|
||||
"12hours": "fine di 12 ore",
|
||||
"weekEurope": "fine del giorno",
|
||||
"weekUsa": "fine della domenica",
|
||||
"Bar settings": "Impostazioni della barra",
|
||||
"Fill color:": "Colore di riempimento:",
|
||||
"Show labels:": "Mostra etichette:",
|
||||
"top over": "sopra",
|
||||
"top under": "sopra sotto",
|
||||
"middle": "mezzo",
|
||||
"Bars width:": "Larghezza delle barre:",
|
||||
"Label font size:": "Dimensione del carattere dell'etichetta:",
|
||||
"Label color:": "Colore dell'etichetta:",
|
||||
"Markings": "marcature",
|
||||
"Line ID": "ID linea",
|
||||
"Fill": "Riempire",
|
||||
"ØL": "ØL",
|
||||
"ØS": "ØS",
|
||||
"Text": "Testo",
|
||||
"Text position": "Posizione del testo",
|
||||
"Text offset": "Offset del testo",
|
||||
"Text size": "Dimensione del testo",
|
||||
"Text color": "Colore del testo",
|
||||
"Add new markings": "Aggiungi nuovi segni",
|
||||
"Left": "Sinistra",
|
||||
"Right": "Destra",
|
||||
"Upper value or ID": "Valore massimo o ID",
|
||||
"Lower value or ID": "Valore più basso o ID",
|
||||
"X-Axis ticks": "Zecche X-Axis",
|
||||
"Y-Axis ticks": "Zecche dell'asse Y.",
|
||||
"ignore null values": "ignora valori nulli",
|
||||
"Ticks from:": "Usa X-tick da:",
|
||||
"use 0 instead of null values": "usa 0 invece di valori nulli",
|
||||
"More": "Di Più",
|
||||
"Edit options for line %s": "Modifica le opzioni per la riga% s",
|
||||
"Legend columns:": "Colonne della legenda:",
|
||||
"Legend opacity (from 0 to 1):": "Opacità della legenda (da 0 a 1):",
|
||||
"Legend background:": "Sfondo leggenda:",
|
||||
"Fill(0to1)": "Fill (0to1)",
|
||||
"Points": "Punti"
|
||||
}
|
||||
@@ -0,0 +1,324 @@
|
||||
{
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"Ok": "OK",
|
||||
"role": "rol",
|
||||
"Update objects": "Objecten bijwerken",
|
||||
"All": "Alle",
|
||||
"With": "Met",
|
||||
"Without": "Zonder",
|
||||
"Update states": "Status bijwerken",
|
||||
"edit file": "bestand bewerken",
|
||||
"restart script": "herstart script",
|
||||
"Select": "kiezen",
|
||||
"Select ID": "Selecteer ID",
|
||||
"add children": "voeg kinderen toe",
|
||||
"edit enum": "edit enum",
|
||||
"System settings": "Systeem instellingen",
|
||||
"reload": "herladen",
|
||||
"Delete object": "Object verwijderen",
|
||||
"no null": "& nbsp; geen null",
|
||||
"%s ago": "% s geleden",
|
||||
"Y-Offset": "Y-offset",
|
||||
"ID": "ID kaart",
|
||||
"Role": "Rol",
|
||||
"Room": "Kamer",
|
||||
"Value": "Waarde",
|
||||
"none": "geen",
|
||||
"Save into:": "Bewaar in:",
|
||||
"Name:": "Naam:",
|
||||
"save": "opslaan",
|
||||
"load": "laden",
|
||||
"Presets": "presets",
|
||||
"IDs": "IDs",
|
||||
"new": "nieuwe",
|
||||
"Enter chart name": "Voer de diagramnaam in",
|
||||
"save %s": "bespaar% s",
|
||||
"Input data": "Invoergegevens",
|
||||
"Options": "opties",
|
||||
"Range:": "bereik:",
|
||||
"5 seconds": "5 seconden",
|
||||
"10 seconds": "10 seconden",
|
||||
"15 seconds": "15 seconden",
|
||||
"20 seconds": "20 seconden",
|
||||
"30 seconds": "30 seconden",
|
||||
"1 minute": "1 minuut",
|
||||
"2 minutes": "2 minuten",
|
||||
"5 minutes": "5 minuten",
|
||||
"10 minutes": "10 minuten",
|
||||
"15 minutes": "15 minuten",
|
||||
"20 minutes": "20 minuten",
|
||||
"30 minutes": "30 minuten",
|
||||
"1 hour": "1 uur",
|
||||
"2 hours": "twee uur",
|
||||
"3 hours": "3 uur",
|
||||
"6 hours": "6 uur",
|
||||
"12 hours": "12 uren",
|
||||
"1 day": "1 dag",
|
||||
"2 days": "2 dagen",
|
||||
"3 days": "3 dagen",
|
||||
"7 days": "7 dagen",
|
||||
"14 days": "14 dagen",
|
||||
"1 month": "1 maand",
|
||||
"2 months": "2 maanden",
|
||||
"3 months": "3 maanden",
|
||||
"6 months": "6 maanden",
|
||||
"1 year": "1 jaar",
|
||||
"2 years": "2 jaar",
|
||||
"Width:": "Breedte:",
|
||||
"Height:": "Hoogte:",
|
||||
"line": "Lijn",
|
||||
"area": "Gebied",
|
||||
"bar": "Bar",
|
||||
"lineplot": "Lijnplot",
|
||||
"scatterplot": "Scatterplot",
|
||||
"steps": "Stappen",
|
||||
"spline": "spline",
|
||||
"Stack": "stack",
|
||||
"Window background:": "Venster achtergrond:",
|
||||
"Custom chart background:": "Aangepaste grafiek achtergrond:",
|
||||
"Chart background:": "Grafiek achtergrond:",
|
||||
"X axis labels color:": "X labels kleur:",
|
||||
"Y axis labels color:": "Y-labels kleur:",
|
||||
"Show legend:": "Legenda weergeven:",
|
||||
"Title:": "Titel:",
|
||||
"Title position:": "Titel positie:",
|
||||
"Top, left, inside": "Boven, links, binnen",
|
||||
"Top, right, inside": "Boven, rechts, binnen",
|
||||
"Top, center, inside": "Boven, midden, binnenkant",
|
||||
"Middle, left, inside": "Midden, links, binnenkant",
|
||||
"Middle, right, inside": "Midden, rechts, binnenkant",
|
||||
"Bottom, left, inside": "Onder, links, binnen",
|
||||
"Bottom, right, inside": "Onder, rechts, binnen",
|
||||
"Bottom, center, inside": "Onder, midden, binnen",
|
||||
"Top, right, outside": "Boven, rechts, buiten",
|
||||
"Middle, right, outside": "Midden, rechts, buiten",
|
||||
"Bottom, right, outside": "Onder, rechts, buiten",
|
||||
"Bottom, center, outside": "Onder, midden, buiten",
|
||||
"Min:": "Minimum:",
|
||||
"Max:": "maximaal:",
|
||||
"User defined names:": "Door de gebruiker gedefinieerde namen:",
|
||||
"Predefined background:": "Voorgedefinieerde achtergrond:",
|
||||
"User defined": "Gebruiker gedefinieerde",
|
||||
"Background:": "Achtergrond:",
|
||||
"Hover details:": "Hover details:",
|
||||
"Time format:": "Tijd formaat:",
|
||||
"Default": "Standaard",
|
||||
"Smoothing": "smoothing",
|
||||
"After comma": "Na een komma",
|
||||
"Open": "Open",
|
||||
"Update": "Bijwerken",
|
||||
"Reset settings": "Reset instellingen",
|
||||
"From": "Van:",
|
||||
"Last changed": "Laatst gewijzigd",
|
||||
"Time stamp": "Tijdstempel",
|
||||
"Acknowledged": "Erkend",
|
||||
"Edit": "Bewerk",
|
||||
"Members": "leden",
|
||||
"Loading...": "Bezig met laden...",
|
||||
"Processing...": "Verwerken...",
|
||||
"With lines": "Met lijnen",
|
||||
"Without lines": "Zonder lijnen",
|
||||
"Inside / With lines": "Binnen / met lijnen",
|
||||
"Outside/ With lines": "Buiten / met lijnen",
|
||||
"Inside / No lines": "Binnenkant / Geen regels",
|
||||
"Outside / No lines": "Buiten / Geen lijnen",
|
||||
"Interpolate:": "Interpoleren:",
|
||||
"Steps": "Stappen",
|
||||
"Pie": "Taart",
|
||||
"Top, left": "Linksboven",
|
||||
"Top, right": "Rechtsboven",
|
||||
"Bottom, left": "Linksonder",
|
||||
"Bottom, right": "Rechts onder",
|
||||
"Title color:": "Titel kleur:",
|
||||
"Title size:": "Titel grootte:",
|
||||
"Fill range:": "Vulbereik:",
|
||||
"Units:": "units:",
|
||||
"yes": "Ja",
|
||||
"bottom": "bodem",
|
||||
"top": "top",
|
||||
"left": "links",
|
||||
"right": "rechts",
|
||||
"No border:": "Geen grens:",
|
||||
"Time": "Tijd",
|
||||
"day": "dag",
|
||||
"month": "maand",
|
||||
"year": "jaar",
|
||||
"Individual": "individu",
|
||||
"Aggregation:": "Type:",
|
||||
"relative": "familielid",
|
||||
"static": "statisch",
|
||||
"now": "nu",
|
||||
"today": "vandaag",
|
||||
"this month": "deze maand",
|
||||
"this year": "dit jaar",
|
||||
"Start:": "Begin:",
|
||||
"End:": "Einde:",
|
||||
"Aggregate": "Aggregaat",
|
||||
"Step type:": "Stap type:",
|
||||
"seconds": "seconden",
|
||||
"Seconds": "seconden",
|
||||
"Step span:": "Stap overspanning:",
|
||||
"Link": "Link",
|
||||
"Counts": "tellingen",
|
||||
"ignore 'null'": "negeer 'null'",
|
||||
"Time Span": "Tijdspanne",
|
||||
"Appearance": "Uiterlijk",
|
||||
"Title": "Titel",
|
||||
"Offset": "-X Offset",
|
||||
"Aggregation": "Type",
|
||||
"Chart Type": "Diagramtype",
|
||||
"Color": "Kleur",
|
||||
"Min": "min",
|
||||
"Max": "Max",
|
||||
"Unit": "Eenheid",
|
||||
"Y Axis": "Y-as",
|
||||
"X Axis": "X-as",
|
||||
"update Preview": "voorproefje van de nieuwe versie",
|
||||
"Cancel": "Annuleer",
|
||||
"Name": "Naam",
|
||||
"Live update every:": "Live update elke:",
|
||||
"counts": "tellingen",
|
||||
"Add new line": "Voeg een nieuwe regel toe",
|
||||
"Animation:": "animatie:",
|
||||
"no": "Nee",
|
||||
"0s": "0 seconden",
|
||||
"300ms": "300ms",
|
||||
"500ms": "500ms",
|
||||
"1s": "1 seconde",
|
||||
"2s": "2 seconden",
|
||||
"3s": "3 seconden",
|
||||
"5s": "5 seconden",
|
||||
"10s": "10 seconden",
|
||||
"30s": "30 seconden",
|
||||
"60s": "60 seconden",
|
||||
"2m": "2 minuten",
|
||||
"3m": "3 minuten",
|
||||
"4m": "4 minuten",
|
||||
"5m": "5 minuten",
|
||||
"10m": "10 minuten",
|
||||
"15m": "15 minuten",
|
||||
"30m": "30 minuten",
|
||||
"45m": "45 minuten",
|
||||
"1H": "1 uur",
|
||||
"2H": "twee uur",
|
||||
"6H": "6 uur",
|
||||
"12H": "12 uren",
|
||||
"1D": "1 dag",
|
||||
"2D": "2 dagen",
|
||||
"3D": "3 dagen",
|
||||
"4D": "4 dagen",
|
||||
"1W": "1 week",
|
||||
"2W": "2 weken",
|
||||
"4W": "4 weken",
|
||||
"8W": "8 weken",
|
||||
"12W": "12 weken",
|
||||
"26W": "26 weken",
|
||||
"1M": "1 maand",
|
||||
"2M": "2 maanden",
|
||||
"3M": "3 maanden",
|
||||
"6M": "6 maanden",
|
||||
"1Y": "1 jaar",
|
||||
"2Y": "2 jaar",
|
||||
"average": "gemiddelde",
|
||||
"max": "max",
|
||||
"min": "min",
|
||||
"total": "totaal",
|
||||
"off": "uit",
|
||||
"leftColor": "links gekleurd",
|
||||
"rightColor": "rechts gekleurd",
|
||||
"topColor": "bovenaan gekleurd",
|
||||
"bottomColor": "onderaan gekleurd",
|
||||
"default": "standaard",
|
||||
"Auto-update:": "Auto update:",
|
||||
"Use comma:": "Gebruik komma:",
|
||||
"Common Y Axis": "Gemeenschappelijke Y-as",
|
||||
"Instance": "Aanleg",
|
||||
"Line Width": "Lijnbreedte",
|
||||
"Shadow Size": "Schaduwgrootte",
|
||||
"ignore 'null':": "negeer 'null':",
|
||||
"onchange": "over verandering",
|
||||
"Border color:": "Rand kleur:",
|
||||
"Grid color:": "Raster kleur:",
|
||||
"Border width:": "Grensbreedte:",
|
||||
"Enable zoom and pan:": "Zoom en pan inschakelen:",
|
||||
"Arrange bools": "Booleans regelen",
|
||||
"NULL as": "NULL als",
|
||||
"MinMax": "MinMax",
|
||||
"null": "nul",
|
||||
"true": "laatste waarde",
|
||||
"last value": "laatste waarde",
|
||||
"Hide edit button:": "Verberg bewerken knop:",
|
||||
"minmax": "MinMax",
|
||||
"ØL": "& # 216L",
|
||||
"ØS": "& # 216S",
|
||||
"Line": "Lijn",
|
||||
"false": "nul",
|
||||
"end of minute": "einde van de minuut",
|
||||
"end of 5 minutes": "einde van 5 minuten",
|
||||
"end of 10 minutes": "einde van 10 minuten",
|
||||
"end of 30 minutes": "einde van 30 minuten",
|
||||
"end of hour": "einde van het uur",
|
||||
"end of 2 hours": "einde van 2 uur",
|
||||
"end of 3 hours": "einde van 3 uur",
|
||||
"end of 4 hours": "einde van 4 uur",
|
||||
"end of 6 hours": "einde van 6 uur",
|
||||
"end of 8 hours": "einde van 8 uur",
|
||||
"end of 12 hours": "einde van 12 uur",
|
||||
"end of day": "einde van de dag",
|
||||
"end of sunday": "einde van zondag",
|
||||
"end of saturday": "einde van zaterdag",
|
||||
"1minute": "einde van de minuut",
|
||||
"5minutes": "einde van 5 minuten",
|
||||
"10minutes": "einde van 10 minuten",
|
||||
"30minutes": "einde van 30 minuten",
|
||||
"1hour": "einde van het uur",
|
||||
"2hours": "einde van 2 uur",
|
||||
"3hours": "einde van 3 uur",
|
||||
"4hours": "einde van 4 uur",
|
||||
"6hours": "einde van 6 uur",
|
||||
"8hours": "einde van 8 uur",
|
||||
"12hours": "einde van 12 uur",
|
||||
"weekEurope": "einde van de dag",
|
||||
"weekUsa": "einde van zondag",
|
||||
"Bar settings": "Bar-instellingen",
|
||||
"Fill color:": "Opvulkleur:",
|
||||
"Show labels:": "Toon labels:",
|
||||
"top over": "opnieuw gedaan",
|
||||
"top under": "top onder",
|
||||
"middle": "midden-",
|
||||
"Bars width:": "Staaf breedte:",
|
||||
"Label font size:": "Label lettergrootte:",
|
||||
"Label color:": "Label kleur:",
|
||||
"Markings": "markeringen",
|
||||
"Line ID": "Lijn-ID",
|
||||
"Fill": "Vullen",
|
||||
"ØL": "ØL",
|
||||
"ØS": "Os",
|
||||
"Text": "Tekst",
|
||||
"Text position": "Tekstpositie",
|
||||
"Text offset": "Tekst offset",
|
||||
"Text size": "Lettergrootte",
|
||||
"Text color": "Tekst kleur",
|
||||
"Add new markings": "Voeg nieuwe markeringen toe",
|
||||
"Left": "Links",
|
||||
"Right": "Rechts",
|
||||
"Upper value or ID": "Hoogste waarde of ID",
|
||||
"Lower value or ID": "Lagere waarde of ID",
|
||||
"X-Axis ticks": "X-as-teken",
|
||||
"Y-Axis ticks": "Y-as tikken",
|
||||
"ignore null values": "Negeer waarden negeren",
|
||||
"Ticks from:": "Gebruik X-ticks van:",
|
||||
"use 0 instead of null values": "gebruik 0 in plaats van nulwaarden",
|
||||
"More": "meer",
|
||||
"Edit options for line %s": "Bewerk opties voor regel% s",
|
||||
"Legend columns:": "Legenda kolommen:",
|
||||
"Legend opacity (from 0 to 1):": "Legenda opaciteit (van 0 tot 1):",
|
||||
"Legend background:": "Legenda achtergrond:",
|
||||
"Fill(0to1)": "Fill (0to1)",
|
||||
"Points": "punten"
|
||||
}
|
||||
@@ -0,0 +1,324 @@
|
||||
{
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"Ok": "Ok",
|
||||
"role": "rola",
|
||||
"Update objects": "Zaktualizuj obiekty",
|
||||
"All": "Wszystko",
|
||||
"With": "Z",
|
||||
"Without": "Bez",
|
||||
"Update states": "Zaktualizuj stany",
|
||||
"edit file": "edytuj plik",
|
||||
"restart script": "zrestartuj skrypt",
|
||||
"Select": "Wybierz",
|
||||
"Select ID": "Wybierz ID",
|
||||
"add children": "dodaj dzieci",
|
||||
"edit enum": "edytuj wyliczenie",
|
||||
"System settings": "Ustawienia systemowe",
|
||||
"reload": "przeładować",
|
||||
"Delete object": "Usuń obiekt",
|
||||
"no null": "& nbsp; no null",
|
||||
"%s ago": "% s temu",
|
||||
"Y-Offset": "Przesunięcie Y",
|
||||
"ID": "ID",
|
||||
"Role": "Rola",
|
||||
"Room": "Pokój",
|
||||
"Value": "Wartość",
|
||||
"none": "Żaden",
|
||||
"Save into:": "Zapisz w:",
|
||||
"Name:": "Nazwa:",
|
||||
"save": "zapisać",
|
||||
"load": "obciążenie",
|
||||
"Presets": "Presets",
|
||||
"IDs": "ID",
|
||||
"new": "Nowy",
|
||||
"Enter chart name": "Wprowadź nazwę wykresu",
|
||||
"save %s": "zapisz% s",
|
||||
"Input data": "Dane wejściowe",
|
||||
"Options": "Opcje",
|
||||
"Range:": "Zasięg:",
|
||||
"5 seconds": "5 sekund",
|
||||
"10 seconds": "10 sekund",
|
||||
"15 seconds": "15 sekund",
|
||||
"20 seconds": "20 sekund",
|
||||
"30 seconds": "30 sekund",
|
||||
"1 minute": "1 minuta",
|
||||
"2 minutes": "2 minuty",
|
||||
"5 minutes": "5 minut",
|
||||
"10 minutes": "10 minut",
|
||||
"15 minutes": "15 minut",
|
||||
"20 minutes": "20 minut",
|
||||
"30 minutes": "30 minut",
|
||||
"1 hour": "1 godzina",
|
||||
"2 hours": "2 godziny",
|
||||
"3 hours": "3 godziny",
|
||||
"6 hours": "6 godzin",
|
||||
"12 hours": "12 godzin",
|
||||
"1 day": "1 dzień",
|
||||
"2 days": "2 dni",
|
||||
"3 days": "3 dni",
|
||||
"7 days": "7 dni",
|
||||
"14 days": "14 dni",
|
||||
"1 month": "1 miesiąc",
|
||||
"2 months": "2 miesiące",
|
||||
"3 months": "3 miesiące",
|
||||
"6 months": "6 miesięcy",
|
||||
"1 year": "1 rok",
|
||||
"2 years": "2 lata",
|
||||
"Width:": "Szerokość:",
|
||||
"Height:": "Wysokość:",
|
||||
"line": "Linia",
|
||||
"area": "Powierzchnia",
|
||||
"bar": "Bar",
|
||||
"lineplot": "Fabuła linii",
|
||||
"scatterplot": "Wykres punktowy",
|
||||
"steps": "Kroki",
|
||||
"spline": "Klin",
|
||||
"Stack": "Stos",
|
||||
"Window background:": "Tło okna:",
|
||||
"Custom chart background:": "Niestandardowe tło wykresu:",
|
||||
"Chart background:": "Tło wykresu:",
|
||||
"X axis labels color:": "Kolor etykiet X:",
|
||||
"Y axis labels color:": "Kolor etykiet Y:",
|
||||
"Show legend:": "Pokaż legendę:",
|
||||
"Title:": "Tytuł:",
|
||||
"Title position:": "Pozycja tytułu:",
|
||||
"Top, left, inside": "Góra, lewa, wewnątrz",
|
||||
"Top, right, inside": "Góra, prawo, wewnątrz",
|
||||
"Top, center, inside": "Góra, środek, wnętrze",
|
||||
"Middle, left, inside": "Środkowy, lewy, w środku",
|
||||
"Middle, right, inside": "Środkowy, prawy, wewnątrz",
|
||||
"Bottom, left, inside": "Dół, lewo, wnętrze",
|
||||
"Bottom, right, inside": "Dół, prawo, wewnątrz",
|
||||
"Bottom, center, inside": "Dół, środek, wnętrze",
|
||||
"Top, right, outside": "Góra, prawo, na zewnątrz",
|
||||
"Middle, right, outside": "Środkowy, prawy, na zewnątrz",
|
||||
"Bottom, right, outside": "Dół, prawo, na zewnątrz",
|
||||
"Bottom, center, outside": "Dół, środek, na zewnątrz",
|
||||
"Min:": "Minimum:",
|
||||
"Max:": "Maksymalny:",
|
||||
"User defined names:": "Nazwy zdefiniowane przez użytkownika:",
|
||||
"Predefined background:": "Wstępnie zdefiniowane tło:",
|
||||
"User defined": "Określony przez użytkownika",
|
||||
"Background:": "Tło:",
|
||||
"Hover details:": "Po najechaniu szczegóły:",
|
||||
"Time format:": "Format czasu:",
|
||||
"Default": "Domyślna",
|
||||
"Smoothing": "Wygładzanie",
|
||||
"After comma": "Po przecinku",
|
||||
"Open": "otwarty",
|
||||
"Update": "Aktualizacja",
|
||||
"Reset settings": "Resetowanie ustawień",
|
||||
"From": "Od:",
|
||||
"Last changed": "Ostatnia zmiana",
|
||||
"Time stamp": "Znak czasu",
|
||||
"Acknowledged": "Przyznane",
|
||||
"Edit": "Edytować",
|
||||
"Members": "Członkowie",
|
||||
"Loading...": "Ładuję...",
|
||||
"Processing...": "Przetwarzanie...",
|
||||
"With lines": "Z liniami",
|
||||
"Without lines": "Bez linii",
|
||||
"Inside / With lines": "Wewnątrz / Z liniami",
|
||||
"Outside/ With lines": "Na zewnątrz / Z liniami",
|
||||
"Inside / No lines": "Wewnątrz / Bez linii",
|
||||
"Outside / No lines": "Poza / Bez linii",
|
||||
"Interpolate:": "Interpolować:",
|
||||
"Steps": "Kroki",
|
||||
"Pie": "Ciasto",
|
||||
"Top, left": "Lewy górny",
|
||||
"Top, right": "W prawym górnym rogu",
|
||||
"Bottom, left": "Na dole po lewej",
|
||||
"Bottom, right": "Prawy dolny",
|
||||
"Title color:": "Kolor tytułu:",
|
||||
"Title size:": "Rozmiar tytułu:",
|
||||
"Fill range:": "Zakres wypełnienia:",
|
||||
"Units:": "Jednostki:",
|
||||
"yes": "tak",
|
||||
"bottom": "Dolny",
|
||||
"top": "Top",
|
||||
"left": "lewo",
|
||||
"right": "dobrze",
|
||||
"No border:": "Bez granic:",
|
||||
"Time": "Czas",
|
||||
"day": "dzień",
|
||||
"month": "miesiąc",
|
||||
"year": "rok",
|
||||
"Individual": "Indywidualny",
|
||||
"Aggregation:": "Rodzaj:",
|
||||
"relative": "krewny",
|
||||
"static": "statyczny",
|
||||
"now": "teraz",
|
||||
"today": "dzisiaj",
|
||||
"this month": "ten miesiąc",
|
||||
"this year": "W tym roku",
|
||||
"Start:": "Początek:",
|
||||
"End:": "Koniec:",
|
||||
"Aggregate": "Agregat",
|
||||
"Step type:": "Rodzaj kroku:",
|
||||
"seconds": "sekundy",
|
||||
"Seconds": "sekundy",
|
||||
"Step span:": "Zakres kroku:",
|
||||
"Link": "Połączyć",
|
||||
"Counts": "Liczy",
|
||||
"ignore 'null'": "zignoruj \"zero\"",
|
||||
"Time Span": "Okres czasu",
|
||||
"Appearance": "Wygląd",
|
||||
"Title": "Tytuł",
|
||||
"Offset": "X-Offset",
|
||||
"Aggregation": "Rodzaj",
|
||||
"Chart Type": "Typ wykresu",
|
||||
"Color": "Kolor",
|
||||
"Min": "Min",
|
||||
"Max": "Max",
|
||||
"Unit": "Jednostka",
|
||||
"Y Axis": "Oś Y.",
|
||||
"X Axis": "Oś X.",
|
||||
"update Preview": "aktualizuj podgląd",
|
||||
"Cancel": "Anuluj",
|
||||
"Name": "Nazwa",
|
||||
"Live update every:": "Aktualizacja na żywo co:",
|
||||
"counts": "liczy",
|
||||
"Add new line": "Dodaj nową linię",
|
||||
"Animation:": "Animacja:",
|
||||
"no": "Nie",
|
||||
"0s": "0 sekund",
|
||||
"300ms": "300ms",
|
||||
"500ms": "500 ms",
|
||||
"1s": "1 sekunda",
|
||||
"2s": "2 sekundy",
|
||||
"3s": "3 sekundy",
|
||||
"5s": "5 sekund",
|
||||
"10s": "10 sekund",
|
||||
"30s": "30 sekund",
|
||||
"60s": "60 sekund",
|
||||
"2m": "2 minuty",
|
||||
"3m": "3 minuty",
|
||||
"4m": "4 minuty",
|
||||
"5m": "5 minut",
|
||||
"10m": "10 minut",
|
||||
"15m": "15 minut",
|
||||
"30m": "30 minut",
|
||||
"45m": "45 minut",
|
||||
"1H": "1 godzina",
|
||||
"2H": "2 godziny",
|
||||
"6H": "6 godzin",
|
||||
"12H": "12 godzin",
|
||||
"1D": "1 dzień",
|
||||
"2D": "2 dni",
|
||||
"3D": "3 dni",
|
||||
"4D": "4 dni",
|
||||
"1W": "1 tydzień",
|
||||
"2W": "2 tygodnie",
|
||||
"4W": "4 tygodnie",
|
||||
"8W": "8 tygodni",
|
||||
"12W": "12 tygodni",
|
||||
"26W": "26 tygodni",
|
||||
"1M": "1 miesiąc",
|
||||
"2M": "2 miesiące",
|
||||
"3M": "3 miesiące",
|
||||
"6M": "6 miesięcy",
|
||||
"1Y": "1 rok",
|
||||
"2Y": "2 lata",
|
||||
"average": "średni",
|
||||
"max": "maks",
|
||||
"min": "min",
|
||||
"total": "całkowity",
|
||||
"off": "poza",
|
||||
"leftColor": "pozostawione w kolorze",
|
||||
"rightColor": "prawe kolorowe",
|
||||
"topColor": "górne kolorowe",
|
||||
"bottomColor": "u dołu w kolorze",
|
||||
"default": "domyślna",
|
||||
"Auto-update:": "Automatyczna aktualizacja:",
|
||||
"Use comma:": "Użyj przecinka:",
|
||||
"Common Y Axis": "Wspólna oś Y.",
|
||||
"Instance": "Instancja",
|
||||
"Line Width": "Szerokość linii",
|
||||
"Shadow Size": "Rozmiar cienia",
|
||||
"ignore 'null':": "zignoruj \"null\":",
|
||||
"onchange": "o zmianie",
|
||||
"Border color:": "Kolor ramki:",
|
||||
"Grid color:": "Kolor siatki:",
|
||||
"Border width:": "Szerokość granicy:",
|
||||
"Enable zoom and pan:": "Włącz powiększanie i panoramowanie:",
|
||||
"Arrange bools": "Rozmieść booleans",
|
||||
"NULL as": "NULL as",
|
||||
"MinMax": "Minimum maksimum",
|
||||
"null": "zero",
|
||||
"true": "ostatnia wartość",
|
||||
"last value": "ostatnia wartość",
|
||||
"Hide edit button:": "Ukryj przycisk edycji:",
|
||||
"minmax": "minimum maksimum",
|
||||
"ØL": "& # 216L",
|
||||
"ØS": "& # 216S",
|
||||
"Line": "Linia",
|
||||
"false": "zero",
|
||||
"end of minute": "koniec minuty",
|
||||
"end of 5 minutes": "koniec 5 minut",
|
||||
"end of 10 minutes": "koniec 10 minut",
|
||||
"end of 30 minutes": "koniec 30 minut",
|
||||
"end of hour": "koniec godziny",
|
||||
"end of 2 hours": "koniec 2 godzin",
|
||||
"end of 3 hours": "koniec 3 godzin",
|
||||
"end of 4 hours": "koniec 4 godzin",
|
||||
"end of 6 hours": "koniec 6 godzin",
|
||||
"end of 8 hours": "koniec 8 godzin",
|
||||
"end of 12 hours": "koniec 12 godzin",
|
||||
"end of day": "koniec dnia",
|
||||
"end of sunday": "koniec niedzieli",
|
||||
"end of saturday": "koniec soboty",
|
||||
"1minute": "koniec minuty",
|
||||
"5minutes": "koniec 5 minut",
|
||||
"10minutes": "koniec 10 minut",
|
||||
"30minutes": "koniec 30 minut",
|
||||
"1hour": "koniec godziny",
|
||||
"2hours": "koniec 2 godzin",
|
||||
"3hours": "koniec 3 godzin",
|
||||
"4hours": "koniec 4 godzin",
|
||||
"6hours": "koniec 6 godzin",
|
||||
"8hours": "koniec 8 godzin",
|
||||
"12hours": "koniec 12 godzin",
|
||||
"weekEurope": "koniec dnia",
|
||||
"weekUsa": "koniec niedzieli",
|
||||
"Bar settings": "Ustawienia paska",
|
||||
"Fill color:": "Kolor wypełnienia:",
|
||||
"Show labels:": "Pokaż etykiety:",
|
||||
"top over": "do góry",
|
||||
"top under": "górny pod",
|
||||
"middle": "środkowy",
|
||||
"Bars width:": "Szerokość prętów:",
|
||||
"Label font size:": "Rozmiar czcionki etykiety:",
|
||||
"Label color:": "Kolor etykiety:",
|
||||
"Markings": "Znakowania",
|
||||
"Line ID": "Identyfikator linii",
|
||||
"Fill": "Napełnić",
|
||||
"ØL": "ØL",
|
||||
"ØS": "ØS",
|
||||
"Text": "Tekst",
|
||||
"Text position": "Pozycja tekstu",
|
||||
"Text offset": "Przesunięcie tekstu",
|
||||
"Text size": "Rozmiar czcionki",
|
||||
"Text color": "Kolor tekstu",
|
||||
"Add new markings": "Dodaj nowe oznaczenia",
|
||||
"Left": "Lewo",
|
||||
"Right": "Dobrze",
|
||||
"Upper value or ID": "Górna wartość lub ID",
|
||||
"Lower value or ID": "Niższa wartość lub ID",
|
||||
"X-Axis ticks": "Tiki X-Axis",
|
||||
"Y-Axis ticks": "Tyksy Y-Axis",
|
||||
"ignore null values": "ignoruj wartości puste",
|
||||
"Ticks from:": "Użyj tyknięć X z:",
|
||||
"use 0 instead of null values": "użyj 0 zamiast wartości zerowych",
|
||||
"More": "jeszcze",
|
||||
"Edit options for line %s": "Edytuj opcje linii% s",
|
||||
"Legend columns:": "Kolumny legendy:",
|
||||
"Legend opacity (from 0 to 1):": "Krycie Legendy (od 0 do 1):",
|
||||
"Legend background:": "Tło legendy:",
|
||||
"Fill(0to1)": "Wypełnij (0to1)",
|
||||
"Points": "Zwrotnica"
|
||||
}
|
||||
@@ -0,0 +1,324 @@
|
||||
{
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"Ok": "Está bem",
|
||||
"role": "Função",
|
||||
"Update objects": "Atualizar objetos",
|
||||
"All": "Todos",
|
||||
"With": "Com",
|
||||
"Without": "Sem",
|
||||
"Update states": "Estado de atualização",
|
||||
"edit file": "editar arquivo",
|
||||
"restart script": "reiniciar o script",
|
||||
"Select": "Selecione",
|
||||
"Select ID": "Selecione ID",
|
||||
"add children": "adicionar filhos",
|
||||
"edit enum": "editar enum",
|
||||
"System settings": "Configurações de sistema",
|
||||
"reload": "recarregar",
|
||||
"Delete object": "Eliminar objeto",
|
||||
"no null": "& nbsp; nulo",
|
||||
"%s ago": "% s atrás",
|
||||
"Y-Offset": "Y-Offset",
|
||||
"ID": "identidade",
|
||||
"Role": "Função",
|
||||
"Room": "Quarto",
|
||||
"Value": "Valor",
|
||||
"none": "Nenhum",
|
||||
"Save into:": "Salvar em:",
|
||||
"Name:": "Nome:",
|
||||
"save": "Salve ",
|
||||
"load": "carga",
|
||||
"Presets": "Presets",
|
||||
"IDs": "IDs",
|
||||
"new": "Novo",
|
||||
"Enter chart name": "Digite o nome do gráfico",
|
||||
"save %s": "salvar% s",
|
||||
"Input data": "Dados de entrada",
|
||||
"Options": "Opções",
|
||||
"Range:": "Alcance:",
|
||||
"5 seconds": "5 segundos",
|
||||
"10 seconds": "10 segundos",
|
||||
"15 seconds": "15 segundos",
|
||||
"20 seconds": "20 segundos",
|
||||
"30 seconds": "30 segundos",
|
||||
"1 minute": "1 minuto",
|
||||
"2 minutes": "2 minutos",
|
||||
"5 minutes": "5 minutos",
|
||||
"10 minutes": "10 minutos",
|
||||
"15 minutes": "15 minutos",
|
||||
"20 minutes": "20 minutos",
|
||||
"30 minutes": "30 minutos",
|
||||
"1 hour": "1 hora",
|
||||
"2 hours": "2 horas",
|
||||
"3 hours": "3 horas",
|
||||
"6 hours": "6 horas",
|
||||
"12 hours": "12 horas",
|
||||
"1 day": "1 dia",
|
||||
"2 days": "2 dias",
|
||||
"3 days": "3 dias",
|
||||
"7 days": "7 dias",
|
||||
"14 days": "14 dias",
|
||||
"1 month": "1 mês",
|
||||
"2 months": "2 meses",
|
||||
"3 months": "3 meses",
|
||||
"6 months": "6 meses",
|
||||
"1 year": "1 ano",
|
||||
"2 years": "2 anos",
|
||||
"Width:": "Largura:",
|
||||
"Height:": "Altura:",
|
||||
"line": "Linha",
|
||||
"area": "Área",
|
||||
"bar": "Barra",
|
||||
"lineplot": "Trama de linha",
|
||||
"scatterplot": "Parcela de dispersão",
|
||||
"steps": "Passos",
|
||||
"spline": "Spline",
|
||||
"Stack": "Pilha",
|
||||
"Window background:": "Fundo da janela:",
|
||||
"Custom chart background:": "Fundo de gráfico personalizado:",
|
||||
"Chart background:": "Contexto do gráfico:",
|
||||
"X axis labels color:": "Cor de etiquetas X:",
|
||||
"Y axis labels color:": "Etiquetas de etiquetas Y:",
|
||||
"Show legend:": "Mostrar lenda:",
|
||||
"Title:": "Título:",
|
||||
"Title position:": "Posição do título:",
|
||||
"Top, left, inside": "Topo, esquerda, dentro",
|
||||
"Top, right, inside": "Topo, direito, dentro",
|
||||
"Top, center, inside": "Topo, centro, dentro",
|
||||
"Middle, left, inside": "Médio, esquerda, dentro",
|
||||
"Middle, right, inside": "Médio, direito, dentro",
|
||||
"Bottom, left, inside": "Parte inferior, esquerda, dentro",
|
||||
"Bottom, right, inside": "Parte inferior, direita, dentro",
|
||||
"Bottom, center, inside": "No fundo, no centro, no interior",
|
||||
"Top, right, outside": "Topo, direito, fora",
|
||||
"Middle, right, outside": "Médio, direito, fora",
|
||||
"Bottom, right, outside": "Parte inferior, direita, fora",
|
||||
"Bottom, center, outside": "Fundo, centro, fora",
|
||||
"Min:": "Mínimo:",
|
||||
"Max:": "Máximo:",
|
||||
"User defined names:": "Nomes definidos pelo usuário:",
|
||||
"Predefined background:": "Antecedentes predefinidos:",
|
||||
"User defined": "Usuário definido",
|
||||
"Background:": "Fundo:",
|
||||
"Hover details:": "Detalhes do mouse:",
|
||||
"Time format:": "Formato do tempo:",
|
||||
"Default": "Padrão",
|
||||
"Smoothing": "Suavização",
|
||||
"After comma": "Após a vírgula",
|
||||
"Open": "Aberto",
|
||||
"Update": "Atualizar",
|
||||
"Reset settings": "Redefinir configurações",
|
||||
"From": "A partir de:",
|
||||
"Last changed": "Última modificação",
|
||||
"Time stamp": "Marca de horário",
|
||||
"Acknowledged": "Reconhecido",
|
||||
"Edit": "Editar",
|
||||
"Members": "Membros",
|
||||
"Loading...": "Carregando...",
|
||||
"Processing...": "Em processamento...",
|
||||
"With lines": "Com linhas",
|
||||
"Without lines": "Sem linhas",
|
||||
"Inside / With lines": "Dentro / Com linhas",
|
||||
"Outside/ With lines": "Fora / Com linhas",
|
||||
"Inside / No lines": "Dentro / Sem linhas",
|
||||
"Outside / No lines": "Fora / Sem linhas",
|
||||
"Interpolate:": "Interpolar:",
|
||||
"Steps": "Passos",
|
||||
"Pie": "Torta",
|
||||
"Top, left": "Superior esquerdo",
|
||||
"Top, right": "Canto superior direito",
|
||||
"Bottom, left": "Inferior esquerdo",
|
||||
"Bottom, right": "Canto inferior direito",
|
||||
"Title color:": "Cor do título:",
|
||||
"Title size:": "Tamanho do título:",
|
||||
"Fill range:": "Faixa de preenchimento:",
|
||||
"Units:": "Unidades:",
|
||||
"yes": "sim",
|
||||
"bottom": "inferior",
|
||||
"top": "topo",
|
||||
"left": "esquerda",
|
||||
"right": "certo",
|
||||
"No border:": "Sem borda:",
|
||||
"Time": "Tempo",
|
||||
"day": "dia",
|
||||
"month": "mês",
|
||||
"year": "ano",
|
||||
"Individual": "Individual",
|
||||
"Aggregation:": "Tipo:",
|
||||
"relative": "relativo",
|
||||
"static": "estático",
|
||||
"now": "agora",
|
||||
"today": "hoje",
|
||||
"this month": "este mês",
|
||||
"this year": "este ano",
|
||||
"Start:": "Começar:",
|
||||
"End:": "Fim:",
|
||||
"Aggregate": "Agregar",
|
||||
"Step type:": "Tipo de etapa:",
|
||||
"seconds": "segundos",
|
||||
"Seconds": "Segundos",
|
||||
"Step span:": "Passo:",
|
||||
"Link": "Ligação",
|
||||
"Counts": "Contagens",
|
||||
"ignore 'null'": "ignore 'null'",
|
||||
"Time Span": "Intervalo de tempo",
|
||||
"Appearance": "Aparência",
|
||||
"Title": "Título",
|
||||
"Offset": "X-Offset",
|
||||
"Aggregation": "Tipo",
|
||||
"Chart Type": "Tipo de gráfico",
|
||||
"Color": "Cor",
|
||||
"Min": "Min",
|
||||
"Max": "Max",
|
||||
"Unit": "Unidade",
|
||||
"Y Axis": "Eixo Y",
|
||||
"X Axis": "X Axis",
|
||||
"update Preview": "atualização Visualização",
|
||||
"Cancel": "Cancelar",
|
||||
"Name": "Nome",
|
||||
"Live update every:": "Atualização ao vivo a cada:",
|
||||
"counts": "contagens",
|
||||
"Add new line": "Adicionar nova linha",
|
||||
"Animation:": "Animação:",
|
||||
"no": "não",
|
||||
"0s": "0 segundos",
|
||||
"300ms": "300ms",
|
||||
"500ms": "500ms",
|
||||
"1s": "1 segundo",
|
||||
"2s": "2 segundos",
|
||||
"3s": "3 segundos",
|
||||
"5s": "5 segundos",
|
||||
"10s": "10 segundos",
|
||||
"30s": "30 segundos",
|
||||
"60s": "60 segundos",
|
||||
"2m": "2 minutos",
|
||||
"3m": "3 minutos",
|
||||
"4m": "4 minutos",
|
||||
"5m": "5 minutos",
|
||||
"10m": "10 minutos",
|
||||
"15m": "15 minutos",
|
||||
"30m": "30 minutos",
|
||||
"45m": "45 minutos",
|
||||
"1H": "1 hora",
|
||||
"2H": "2 horas",
|
||||
"6H": "6 horas",
|
||||
"12H": "12 horas",
|
||||
"1D": "1 dia",
|
||||
"2D": "2 dias",
|
||||
"3D": "3 dias",
|
||||
"4D": "4 dias",
|
||||
"1W": "1 semana",
|
||||
"2W": "2 semanas",
|
||||
"4W": "4 semanas",
|
||||
"8W": "8 semanas",
|
||||
"12W": "12 semanas",
|
||||
"26W": "26 semanas",
|
||||
"1M": "1 mês",
|
||||
"2M": "2 meses",
|
||||
"3M": "3 meses",
|
||||
"6M": "6 meses",
|
||||
"1Y": "1 ano",
|
||||
"2Y": "2 anos",
|
||||
"average": "média",
|
||||
"max": "máximo",
|
||||
"min": "min",
|
||||
"total": "total",
|
||||
"off": "fora",
|
||||
"leftColor": "colorido esquerdo",
|
||||
"rightColor": "cor clara",
|
||||
"topColor": "colorido superior",
|
||||
"bottomColor": "colorido inferior",
|
||||
"default": "padrão",
|
||||
"Auto-update:": "Atualização automática:",
|
||||
"Use comma:": "Usar vírgula:",
|
||||
"Common Y Axis": "Eixo Y comum",
|
||||
"Instance": "Instância",
|
||||
"Line Width": "Espessura da linha",
|
||||
"Shadow Size": "Tamanho da sombra",
|
||||
"ignore 'null':": "ignore 'null':",
|
||||
"onchange": "em mudança",
|
||||
"Border color:": "Cor da borda:",
|
||||
"Grid color:": "Cor da grade:",
|
||||
"Border width:": "Largura da borda:",
|
||||
"Enable zoom and pan:": "Ative o zoom e pan:",
|
||||
"Arrange bools": "Organizar booleanos",
|
||||
"NULL as": "NULL como",
|
||||
"MinMax": "Mínimo máximo",
|
||||
"null": "nulo",
|
||||
"true": "último valor",
|
||||
"last value": "último valor",
|
||||
"Hide edit button:": "Ocultar botão de edição:",
|
||||
"minmax": "mínimo máximo",
|
||||
"ØL": "& # 216L",
|
||||
"ØS": "& # 216S",
|
||||
"Line": "Linha",
|
||||
"false": "nulo",
|
||||
"end of minute": "fim de minuto",
|
||||
"end of 5 minutes": "fim de 5 minutos",
|
||||
"end of 10 minutes": "fim de 10 minutos",
|
||||
"end of 30 minutes": "fim de 30 minutos",
|
||||
"end of hour": "fim de hora",
|
||||
"end of 2 hours": "fim de 2 horas",
|
||||
"end of 3 hours": "fim de 3 horas",
|
||||
"end of 4 hours": "fim de 4 horas",
|
||||
"end of 6 hours": "fim de 6 horas",
|
||||
"end of 8 hours": "fim de 8 horas",
|
||||
"end of 12 hours": "fim de 12 horas",
|
||||
"end of day": "fim do dia",
|
||||
"end of sunday": "fim de domingo",
|
||||
"end of saturday": "fim de sábado",
|
||||
"1minute": "fim de minuto",
|
||||
"5minutes": "fim de 5 minutos",
|
||||
"10minutes": "fim de 10 minutos",
|
||||
"30minutes": "fim de 30 minutos",
|
||||
"1hour": "fim de hora",
|
||||
"2hours": "fim de 2 horas",
|
||||
"3hours": "fim de 3 horas",
|
||||
"4hours": "fim de 4 horas",
|
||||
"6hours": "fim de 6 horas",
|
||||
"8hours": "fim de 8 horas",
|
||||
"12hours": "fim de 12 horas",
|
||||
"weekEurope": "fim do dia",
|
||||
"weekUsa": "fim de domingo",
|
||||
"Bar settings": "Configurações da barra",
|
||||
"Fill color:": "Cor de preenchimento:",
|
||||
"Show labels:": "Mostrar rótulos:",
|
||||
"top over": "mais alto",
|
||||
"top under": "top sob",
|
||||
"middle": "meio",
|
||||
"Bars width:": "Largura das barras:",
|
||||
"Label font size:": "Etiquetar tamanho da fonte:",
|
||||
"Label color:": "Cor do rótulo:",
|
||||
"Markings": "Marcas",
|
||||
"Line ID": "ID da linha",
|
||||
"Fill": "Preencher",
|
||||
"ØL": "ØL",
|
||||
"ØS": "ØS",
|
||||
"Text": "Texto",
|
||||
"Text position": "Posição de texto",
|
||||
"Text offset": "Deslocamento de texto",
|
||||
"Text size": "Tamanho do texto",
|
||||
"Text color": "Cor do texto",
|
||||
"Add new markings": "Adicionar novas marcações",
|
||||
"Left": "Esquerda",
|
||||
"Right": "Certo",
|
||||
"Upper value or ID": "Valor superior ou ID",
|
||||
"Lower value or ID": "Menor valor ou ID",
|
||||
"X-Axis ticks": "Carrapatos do X-Axis",
|
||||
"Y-Axis ticks": "Carrapatos do Y-Axis",
|
||||
"ignore null values": "ignore valores nulos",
|
||||
"Ticks from:": "Use X-ticks de:",
|
||||
"use 0 instead of null values": "use 0 em vez de valores nulos",
|
||||
"More": "Mais",
|
||||
"Edit options for line %s": "Editar opções para a linha% s",
|
||||
"Legend columns:": "Colunas da legenda:",
|
||||
"Legend opacity (from 0 to 1):": "Opacidade da legenda (de 0 a 1):",
|
||||
"Legend background:": "Legend background:",
|
||||
"Fill(0to1)": "Preencher (0 a 1)",
|
||||
"Points": "Pontos"
|
||||
}
|
||||
@@ -0,0 +1,324 @@
|
||||
{
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"Ok": "Ok",
|
||||
"role": "Роль",
|
||||
"Update objects": "Обновить объекты",
|
||||
"All": "все",
|
||||
"With": "с",
|
||||
"Without": "без",
|
||||
"Update states": "Обновить состояния",
|
||||
"edit file": "Редактировать",
|
||||
"restart script": "Перезапустить скрипт",
|
||||
"Select": "Выбрать",
|
||||
"Select ID": "Выбрать ID",
|
||||
"add children": "Добавить под-категории",
|
||||
"edit enum": "Изменить категорию",
|
||||
"System settings": "Системные настройки",
|
||||
"reload": "Перезагрузить",
|
||||
"Delete object": "Удалить объект",
|
||||
"no null": " без null",
|
||||
"%s ago": "%s назад",
|
||||
"Y-Offset": "Сдвиг по Y",
|
||||
"ID": "ID",
|
||||
"Role": "Роль",
|
||||
"Room": "Комната",
|
||||
"Value": "Значение",
|
||||
"none": "ничего",
|
||||
"Save into:": "Сохранить как:",
|
||||
"Name:": "Имя:",
|
||||
"save": "сохранить",
|
||||
"load": "загрузить",
|
||||
"Presets": "Пресеты",
|
||||
"IDs": "Объекты",
|
||||
"new": "новое",
|
||||
"Enter chart name": "Введите имя графика",
|
||||
"save %s": "сохранить %s",
|
||||
"Input data": "Входные данные",
|
||||
"Options": "Опции",
|
||||
"Range:": "Интервал:",
|
||||
"5 seconds": "5 секунд",
|
||||
"10 seconds": "10 секунд",
|
||||
"15 seconds": "15 секунд",
|
||||
"20 seconds": "20 секунд",
|
||||
"30 seconds": "30 секунд",
|
||||
"1 minute": "1 минуту",
|
||||
"2 minutes": "2 минуты",
|
||||
"5 minutes": "5 минут",
|
||||
"10 minutes": "10 минут",
|
||||
"15 minutes": "15 минут",
|
||||
"20 minutes": "20 минут",
|
||||
"30 minutes": "30 минут",
|
||||
"1 hour": "1 час",
|
||||
"2 hours": "2 часа",
|
||||
"3 hours": "3 часа",
|
||||
"6 hours": "6 часов",
|
||||
"12 hours": "12 часов",
|
||||
"1 day": "1 день",
|
||||
"2 days": "2 дня",
|
||||
"3 days": "3 дня",
|
||||
"7 days": "7 дней",
|
||||
"14 days": "14 дней",
|
||||
"1 month": "1 месяц",
|
||||
"2 months": "2 месяца",
|
||||
"3 months": "3 месяца",
|
||||
"6 months": "6 месяцев",
|
||||
"1 year": "1 год",
|
||||
"2 years": "2 года",
|
||||
"Width:": "Ширина:",
|
||||
"Height:": "Высота:",
|
||||
"line": "Линия",
|
||||
"area": "Область",
|
||||
"bar": "Bar",
|
||||
"lineplot": "Линия с точками",
|
||||
"scatterplot": "Точки",
|
||||
"steps": "Шаги",
|
||||
"spline": "Сллайн",
|
||||
"Stack": "Stack",
|
||||
"Window background:": "Фон окна:",
|
||||
"Custom chart background:": "Пользовательский фон графика:",
|
||||
"Chart background:": "Фон графика:",
|
||||
"X axis labels color:": "Цвет текста по оси X:",
|
||||
"Y axis labels color:": "Цвет текста по оси Y:",
|
||||
"Show legend:": "Показать легенду:",
|
||||
"Title:": "Название:",
|
||||
"Title position:": "Позиция названия:",
|
||||
"Top, left, inside": "Сверху, слева, внутри",
|
||||
"Top, right, inside": "Сверху, справа, внутри",
|
||||
"Top, center, inside": "Сверху, по центру, внутри",
|
||||
"Middle, left, inside": "Посередине, слева, внутри",
|
||||
"Middle, right, inside": "Посередине, справа, внутри",
|
||||
"Bottom, left, inside": "Снизу, слева, внутри",
|
||||
"Bottom, right, inside": "Снизу, справа, внутри",
|
||||
"Bottom, center, inside": "Снизу, по центру, внутри",
|
||||
"Top, right, outside": "Сверху, справа, снаружи",
|
||||
"Middle, right, outside": "Посередине, справа, снаружи",
|
||||
"Bottom, right, outside": "Снизу, справа, снаружи",
|
||||
"Bottom, center, outside": "Снизу, по центру, снаружи",
|
||||
"Min:": "Минимум:",
|
||||
"Max:": "Максимум:",
|
||||
"User defined names:": "Задать имена графиков:",
|
||||
"Predefined background:": "Выбрать фон:",
|
||||
"User defined": "Пользовательские",
|
||||
"Background:": "Фон:",
|
||||
"Hover details:": "Показывать подсказку:",
|
||||
"Time format:": "Формат времени:",
|
||||
"Default": "по умолчанию",
|
||||
"Smoothing": "Сглаживание",
|
||||
"After comma": "После запятой",
|
||||
"Open": "Показать",
|
||||
"Update": "Обновить",
|
||||
"Reset settings": "Сбросить настройки",
|
||||
"From": "От",
|
||||
"Last changed": "Изменён",
|
||||
"Time stamp": "Время",
|
||||
"Acknowledged": "Подтверждён",
|
||||
"Edit": "Edit",
|
||||
"Members": "Объекты",
|
||||
"Loading...": "Загрузка...",
|
||||
"Processing...": "Обработка...",
|
||||
"With lines": "С линиями",
|
||||
"Without lines": "Без линий",
|
||||
"Inside / With lines": "Внутри / С линиями",
|
||||
"Outside/ With lines": "Снаружи/ С линиями",
|
||||
"Inside / No lines": "Внутри / Без линий",
|
||||
"Outside / No lines": "Снаружи / Без линий",
|
||||
"Interpolate:": "Интерполяция:",
|
||||
"Steps": "Ступени",
|
||||
"Pie": "Круговая диаграмма",
|
||||
"Top, left": "Сверху, слева",
|
||||
"Top, right": "Сверху, справа",
|
||||
"Bottom, left": "Снизу, слева",
|
||||
"Bottom, right": "Снизу, справа",
|
||||
"Title color:": "Цвет названия:",
|
||||
"Title size:": "Размер названия:",
|
||||
"Fill range:": "Всегда весь интервал:",
|
||||
"Units:": "Единицы:",
|
||||
"yes": "да",
|
||||
"bottom": "снизу",
|
||||
"top": "сверху",
|
||||
"left": "слева",
|
||||
"right": "справа",
|
||||
"No border:": "Без рамки:",
|
||||
"Time": "Время",
|
||||
"day": "День",
|
||||
"month": "month",
|
||||
"year": "year",
|
||||
"Individual": "Индивидуально",
|
||||
"Aggregation:": "Тип:",
|
||||
"relative": "относительно",
|
||||
"static": "постоянный",
|
||||
"now": "сейчас",
|
||||
"today": "сегодня",
|
||||
"this month": "этот месяц",
|
||||
"this year": "этот год",
|
||||
"Start:": "Начало:",
|
||||
"End:": "Конец:",
|
||||
"Aggregate": "Объединение данных",
|
||||
"Step type:": "Шаги:",
|
||||
"seconds": "секунды",
|
||||
"Seconds": "Cекунды",
|
||||
"Step span:": "Интервал шага:",
|
||||
"Link": "URL",
|
||||
"Counts": "Кол-во значений",
|
||||
"ignore 'null'": "Игнорировать 'null'",
|
||||
"Time Span": "Временной интервал",
|
||||
"Appearance": "Оформление",
|
||||
"Title": "Подпись",
|
||||
"Offset": "Сдвиг по Х",
|
||||
"Aggregation": "Тип",
|
||||
"Chart Type": "Тип графика",
|
||||
"Color": "Цвет",
|
||||
"Min": "Мин",
|
||||
"Max": "Макс",
|
||||
"Unit": "Единицы",
|
||||
"Y Axis": "Ось Y",
|
||||
"X Axis": "Ось X",
|
||||
"update Preview": "Обновить",
|
||||
"Cancel": "отменить",
|
||||
"Name": "Имя",
|
||||
"Live update every:": "Обновлять каждые:",
|
||||
"counts": "кол-во",
|
||||
"Add new line": "Добавить линию",
|
||||
"Animation:": "Анимация:",
|
||||
"no": "нет",
|
||||
"0s": "0c",
|
||||
"300ms": "300мс",
|
||||
"500ms": "500мс",
|
||||
"1s": "1 секунда",
|
||||
"2s": "2 секунды",
|
||||
"3s": "3 секунды",
|
||||
"5s": "5 секунд",
|
||||
"10s": "10 секунд",
|
||||
"30s": "30 секунд",
|
||||
"60s": "60 секунд",
|
||||
"2m": "2 минуты",
|
||||
"3m": "3 минуты",
|
||||
"4m": "4 минуты",
|
||||
"5m": "5 минут",
|
||||
"10m": "10 минут",
|
||||
"15m": "15 минут",
|
||||
"30m": "30 минут",
|
||||
"45m": "45 минут",
|
||||
"1H": "1 час",
|
||||
"2H": "2 часа",
|
||||
"6H": "6 часов",
|
||||
"12H": "12 часов",
|
||||
"1D": "1 день",
|
||||
"2D": "2 дня",
|
||||
"3D": "3 дня",
|
||||
"4D": "4 дня",
|
||||
"1W": "1 неделя",
|
||||
"2W": "2 недели",
|
||||
"4W": "4 недели",
|
||||
"8W": "8 недель",
|
||||
"12W": "12 недель",
|
||||
"26W": "26 недель",
|
||||
"1M": "1 месяц",
|
||||
"2M": "2 месяца",
|
||||
"3M": "3 месяца",
|
||||
"6M": "6 месяцев",
|
||||
"1Y": "1 год",
|
||||
"2Y": "2 года",
|
||||
"average": "среднее",
|
||||
"max": "макс",
|
||||
"min": "мин",
|
||||
"total": "всего",
|
||||
"off": "скрыть",
|
||||
"leftColor": "слева цветом",
|
||||
"rightColor": "справа цветом",
|
||||
"topColor": "сверху цветом",
|
||||
"bottomColor": "снизу цветом",
|
||||
"default": "по умолчанию",
|
||||
"Auto-update:": "Обновлять сразу:",
|
||||
"Use comma:": "Запятая-разделитель:",
|
||||
"Common Y Axis": "Общая ось Y",
|
||||
"Instance": "Драйвер",
|
||||
"Line Width": "Ширина линии",
|
||||
"Shadow Size": "Ширина тени",
|
||||
"ignore 'null':": "Игнорировать 'null':",
|
||||
"onchange": "при изменении",
|
||||
"Border color:": "Цвет рамки:",
|
||||
"Grid color:": "Цвет сетки:",
|
||||
"Border width:": "Ширина рамки:",
|
||||
"Enable zoom and pan:": "Разрешить увеличение и сдвиг:",
|
||||
"Arrange bools": "Выстроить bool графики",
|
||||
"NULL as": "NULL как",
|
||||
"MinMax": "MinMax",
|
||||
"null": "null",
|
||||
"true": "пред. значение",
|
||||
"last value": "пред. значение",
|
||||
"Hide edit button:": "Скрыть кнопку 'Редактировать':",
|
||||
"minmax": "minmax",
|
||||
"ØL": "ØL",
|
||||
"ØS": "ØS",
|
||||
"Line": "Линия",
|
||||
"false": "null",
|
||||
"end of minute": "Конец минуты",
|
||||
"end of 5 minutes": "Конец 5 minutes",
|
||||
"end of 10 minutes": "Конец 10 minutes",
|
||||
"end of 30 minutes": "Конец 30 minutes",
|
||||
"end of hour": "Конец часа",
|
||||
"end of 2 hours": "Конец 2 часов",
|
||||
"end of 3 hours": "Конец 3 часов",
|
||||
"end of 4 hours": "Конец 4 часов",
|
||||
"end of 6 hours": "Конец 6 часов",
|
||||
"end of 8 hours": "Конец 8 часов",
|
||||
"end of 12 hours": "Конец 12 часов",
|
||||
"end of day": "Конец дня",
|
||||
"end of sunday": "Конец недели",
|
||||
"end of saturday": "Конец субботы",
|
||||
"1minute": "Конец минуты",
|
||||
"5minutes": "Конец 5 minutes",
|
||||
"10minutes": "Конец 10 minutes",
|
||||
"30minutes": "Конец 30 minutes",
|
||||
"1hour": "Конец часа",
|
||||
"2hours": "Конец 2 часов",
|
||||
"3hours": "Конец 3 часов",
|
||||
"4hours": "Конец 4 часов",
|
||||
"6hours": "Конец 6 часов",
|
||||
"8hours": "Конец 8 часов",
|
||||
"12hours": "Конец 12 часов",
|
||||
"weekEurope": "Конец дня",
|
||||
"weekUsa": "Конец недели",
|
||||
"Bar settings": "Настройки Bar",
|
||||
"Fill color:": "Цвет заливки:",
|
||||
"Show labels:": "Подписи:",
|
||||
"top over": "Сверху над",
|
||||
"top under": "Сверху под",
|
||||
"middle": "В середине",
|
||||
"Bars width:": "Ширина бара:",
|
||||
"Label font size:": "Шрифт подписи:",
|
||||
"Label color:": "Цвет подписи:",
|
||||
"Markings": "Разметка",
|
||||
"Line ID": "ID линии",
|
||||
"Fill": "Заливка",
|
||||
"ØL": "ØL",
|
||||
"ØS": "ØS",
|
||||
"Text": "Текст",
|
||||
"Text position": "Расположение текста",
|
||||
"Text offset": "Сдвиг текста",
|
||||
"Text size": "Размер текста",
|
||||
"Text color": "Цвет текста",
|
||||
"Add new markings": "Добавить разметку",
|
||||
"Left": "слева",
|
||||
"Right": "справа",
|
||||
"Upper value or ID": "Верхнее значение или ID",
|
||||
"Lower value or ID": "Нижнее значение или ID",
|
||||
"X-Axis ticks": "Кол-во делений на шкале X",
|
||||
"Y-Axis ticks": "Кол-во делений на шкале Y",
|
||||
"ignore null values": "игнорировать значения null",
|
||||
"Ticks from:": "Подписи X-делений из:",
|
||||
"use 0 instead of null values": "Заменять null на 0",
|
||||
"More": "ещё",
|
||||
"Edit options for line %s": "Редактировать настройки для линии %s",
|
||||
"Legend columns:": "Колонок в легенде:",
|
||||
"Legend opacity (from 0 to 1):": "Прозрачность легенды (от 0 до 1):",
|
||||
"Legend background:": "Фон легенды:",
|
||||
"Fill(0to1)": "Фон(0to1)",
|
||||
"Points": "Точки"
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,302 @@
|
||||
<head>
|
||||
<title>Flot Chart</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<link href="img/favicon.png" rel="shortcut icon" type="image/x-icon" />
|
||||
|
||||
<!--link type="text/css" rel="stylesheet" href="/lib/css/themes/jquery-ui/default/jquery-ui.min.css"-->
|
||||
|
||||
<script type="text/javascript" src="../../lib/js/jquery-1.11.2.min.js"></script>
|
||||
<!--script src="/lib/js/jquery-ui.1.11.2.slider.min.js"></script-->
|
||||
<script type="text/javascript" src="../../lib/js/socket.io.js"></script>
|
||||
|
||||
<script type="text/javascript" src="../../_socket/info.js"></script>
|
||||
<style>
|
||||
.rickshaw_graph .x_tick.invisible {
|
||||
border-left: 0 rgba(0, 0, 0, 0) !important;
|
||||
}
|
||||
|
||||
#title {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div, span, p, td {
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
|
||||
#chart {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#legend_container {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 26px;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.chart-container {
|
||||
box-sizing: border-box;
|
||||
padding: 20px 15px 15px 15px;
|
||||
/*margin: 15px auto 30px auto;*/
|
||||
border: 1px solid #ddd;
|
||||
background: #fff;
|
||||
background: linear-gradient(#f6f6f6 0, #fff 50px);
|
||||
background: -o-linear-gradient(#f6f6f6 0, #fff 50px);
|
||||
background: -ms-linear-gradient(#f6f6f6 0, #fff 50px);
|
||||
background: -moz-linear-gradient(#f6f6f6 0, #fff 50px);
|
||||
background: -webkit-linear-gradient(#f6f6f6 0, #fff 50px);
|
||||
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
|
||||
-o-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
|
||||
-ms-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
|
||||
-webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.chart-placeholder {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
font-size: 14px;
|
||||
line-height: 1.2em;
|
||||
}
|
||||
|
||||
/* ------------------ connecting -------------------------- */
|
||||
#server-disconnect {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
overflow: hidden;
|
||||
background-color: rgba(231,231,231,0.9) !important;
|
||||
background-size: 100% !important;
|
||||
background-position: center !important;
|
||||
background-repeat: no-repeat !important;
|
||||
z-index: 5000;
|
||||
}
|
||||
|
||||
#server-disconnect > * {
|
||||
/* center child divs */
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
/* x-border-box */
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
/* x-unselectable */
|
||||
user-select: none;
|
||||
-o-user-select: none;
|
||||
-ms-user-select: none;
|
||||
-moz-user-select: -moz-none;
|
||||
-webkit-user-select: none;
|
||||
cursor: default;
|
||||
}
|
||||
.splash-screen-circle-outer {
|
||||
z-index: 20000;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 100px;
|
||||
margin-top: -50px;
|
||||
margin-left: -50px;
|
||||
border: 5px solid rgba(87, 113, 145, 0.9);
|
||||
opacity: .9;
|
||||
border-right: 5px solid rgba(0, 0, 0, 0);
|
||||
border-left: 5px solid rgba(0, 0, 0, 0);
|
||||
box-shadow: 0 0 35px #577191;
|
||||
-moz-animation: spinPulse 5s infinite ease-in-out;
|
||||
-webkit-animation: spinPulse 5s infinite linear;
|
||||
}
|
||||
.splash-screen-circle-inner {
|
||||
z-index: 20001;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 80px;
|
||||
margin-top: -40px;
|
||||
margin-left: -40px;
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
border: 5px solid rgba(87, 113, 145, 0.9);
|
||||
opacity: .9;
|
||||
border-left: 5px solid rgba(0, 0, 0, 0);
|
||||
border-right: 5px solid rgba(0, 0, 0, 0);
|
||||
box-shadow: 0 0 15px #577191;
|
||||
-moz-animation: spinoffPulse 5s infinite linear;
|
||||
-webkit-animation: spinoffPulse 5s infinite linear;
|
||||
}
|
||||
.splash-screen-text {
|
||||
z-index: 20002;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
line-height: 100px;
|
||||
margin-top: -50px;
|
||||
margin-left: -50px;
|
||||
font-family: Verdana, Geneva, sans-serif;
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
text-shadow: 1px 1px #cccccc;
|
||||
vertical-align: middle;
|
||||
color: #002951;
|
||||
}
|
||||
@-moz-keyframes spinPulse {
|
||||
0% {
|
||||
-moz-transform: rotate(160deg);
|
||||
opacity: 0;
|
||||
box-shadow: 0 0 1px #577191;
|
||||
}
|
||||
50% {
|
||||
-moz-transform: rotate(145deg);
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
-moz-transform: rotate(-320deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@-moz-keyframes spinoffPulse {
|
||||
0% {
|
||||
-moz-transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-moz-transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes spinPulse {
|
||||
0% {
|
||||
-webkit-transform: rotate(160deg);
|
||||
opacity: 0;
|
||||
box-shadow: 0 0 1px #577191;
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: rotate(145deg);
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(-320deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes spinoffPulse {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.loader,
|
||||
.loader:before,
|
||||
.loader:after {
|
||||
background: #8ca6ff;
|
||||
-webkit-animation: load1 1s infinite ease-in-out;
|
||||
animation: load1 1s infinite ease-in-out;
|
||||
width: 1em;
|
||||
height: 4em;
|
||||
}
|
||||
.loader:before,
|
||||
.loader:after {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
content: '';
|
||||
}
|
||||
.loader:before {
|
||||
left: -1.5em;
|
||||
-webkit-animation-delay: -0.32s;
|
||||
animation-delay: -0.32s;
|
||||
}
|
||||
.loader {
|
||||
color: #8ca6ff;
|
||||
text-indent: -9999em;
|
||||
font-size: 11px;
|
||||
-webkit-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
-webkit-animation-delay: -0.16s;
|
||||
animation-delay: -0.16s;
|
||||
position: absolute;
|
||||
top: 5em;
|
||||
left: 13em;
|
||||
z-index: 1000;
|
||||
}
|
||||
.loader:after {
|
||||
left: 1.5em;
|
||||
}
|
||||
@-webkit-keyframes load1 {
|
||||
0%,
|
||||
80%,
|
||||
100% {
|
||||
box-shadow: 0 0;
|
||||
height: 2.5em;
|
||||
}
|
||||
40% {
|
||||
box-shadow: 0 -1em;
|
||||
height: 3em;
|
||||
}
|
||||
}
|
||||
@keyframes load1 {
|
||||
0%,
|
||||
80%,
|
||||
100% {
|
||||
box-shadow: 0 0;
|
||||
height: 2.5em;
|
||||
}
|
||||
40% {
|
||||
box-shadow: 0 -1em;
|
||||
height: 3em;
|
||||
}
|
||||
}
|
||||
|
||||
#resetZoom {
|
||||
position: absolute;
|
||||
right: 50%;
|
||||
top: 20px;
|
||||
z-index: 10;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
#edit {
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
top: 10px;
|
||||
z-index: 10;
|
||||
cursor: pointer;
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
.data-point-label {
|
||||
text-align: center;
|
||||
overflow: visible;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body style="margin: 0">
|
||||
|
||||
<div id="chart_container">
|
||||
<div id="server-disconnect">
|
||||
<div class="splash-screen-text">...</div>
|
||||
<div class="splash-screen-circle-outer"></div>
|
||||
<div class="splash-screen-circle-inner"></div>
|
||||
</div>
|
||||
<div id="no-connection"
|
||||
style="position: absolute; left: 50%; top: 50%; display: none; font-size: 3em; background: rgba(0, 0, 0, 0.1); border-radius: 10px; text-align: center">
|
||||
No connection to server
|
||||
</div>
|
||||
<div id="chart_placeholder" class="chart-placeholder"></div>
|
||||
<div id="title" style="position:absolute"></div>
|
||||
</div>
|
||||
<div id="edit" style="display: none">
|
||||
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"></path>
|
||||
<path d="M0 0h24v24H0z" fill="none"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<svg style="display: none" title="Reset zoom" id="resetZoom" height='35' width='35' fill="#000000" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="0 0 126.308 118.728" enable-background="new 0 0 126.308 118.728" xml:space="preserve">
|
||||
<path fill="#DDDDDD" d="M123.962,99.037c-0.082-0.076-0.172-0.116-0.246-0.181L100.929,76.46l-5.749-5.648c5.875-12.929,5.905-28.35-1.279-41.82 C81.632,6.015,52.957-2.707,29.979,9.555c-0.486,0.257-0.944,0.549-1.418,0.826c-7.41,4.288-13.254,10.305-17.261,17.284 c-2.663-1.367-4.591-2.553-4.868-2.73c0.261,0.17,0.083,0.008-0.245-0.225c-0.237-0.198-0.505-0.352-0.798-0.482 c-0.11-0.056-0.229-0.103-0.324-0.135c-0.253-0.079-0.514-0.11-0.767-0.118c-0.063-0.008-0.11-0.004-0.182-0.004 c-0.221,0.004-0.442,0.027-0.656,0.075c-0.024,0.008-0.047,0.008-0.071,0.016c-1.035,0.257-1.92,1.027-2.256,2.134 c-0.13,0.407-0.154,0.822-0.118,1.225c0,0-0.012,0.012-0.004,0.016c0,0,0,0,0,0.008c0.008,0.355,0.047,0.735,0.142,1.138 L5.259,46.24l1.284,5.544l1.142,4.892l0.367,1.572c0.751,3.265,3.375,4.062,5.825,1.771l5.469-5.109l1.549-1.454l3.563-3.331 l10.954-10.246l0.707-0.66c0.083-0.079,0.139-0.158,0.209-0.237l0.459-0.451l-0.032-0.008c0.285-0.324,0.53-0.695,0.664-1.13 c0.036-0.115,0.048-0.229,0.071-0.34c0.213-0.846,0.047-1.651-0.482-2.331c-0.391-0.581-0.964-1.043-1.684-1.261 c0,0-4.259,0.296-10.384-0.929c1.415-2.062,3.066-3.975,4.947-5.702c1.999-1.829,4.252-3.449,6.749-4.781 c4.687-2.497,9.705-3.746,14.676-3.872c12.131-0.312,24.001,6.069,30.094,17.485c7.713,14.462,3.564,32.133-9.033,41.802 c-0.438,0.332-0.877,0.66-1.327,0.973c-0.174,0.118-0.348,0.236-0.521,0.352c-0.11,0.079-0.229,0.15-0.348,0.225 c-0.593,0.384-1.21,0.735-1.834,1.087c-9.049,4.991-20.302,5.698-30.315,0.894c-1.304-0.629-2.545-1.344-3.73-2.118 c-0.34-0.222-0.684-0.45-1.019-0.688c-0.245-0.079-0.498-0.135-0.771-0.135c-0.447,0.008-0.857,0.139-1.209,0.355l-0.455,0.36 l-7.239,5.643l-0.829,0.644c-0.34,0.411-0.546,0.929-0.546,1.506c0.008,0.485,0.158,0.937,0.411,1.312 c0.355,0.289,0.719,0.577,1.083,0.857c2.505,1.917,5.231,3.611,8.183,5.026c10.437,5.011,21.809,5.82,32.225,3.13 c0.031,0,0.063,0.016,0.103,0.016c0.442-0.119,0.89-0.237,1.328-0.363c3.026-0.886,6.006-2.079,8.898-3.62 c1.165-0.624,2.284-1.3,3.382-2.007c0.15-0.095,0.305-0.189,0.455-0.289c0.32-0.209,0.628-0.431,0.944-0.644 c0.11-0.078,0.216-0.156,0.325-0.232l4.841,4.768l22.066,21.671c0.049,0.05,0.09,0.134,0.14,0.189 c3.776,3.76,10.697,2.926,15.472-1.867C126.878,109.723,127.713,102.788,123.962,99.037z"></path>
|
||||
</svg>
|
||||
<div class="loader" style="display: none"></div>
|
||||
|
||||
<script src="js/flot.js"></script>
|
||||
</body>
|
||||
@@ -0,0 +1,798 @@
|
||||
//options: {
|
||||
// chartId:
|
||||
// titleId:
|
||||
// tooltipId:
|
||||
// cbOnZoom:
|
||||
// }
|
||||
|
||||
function CustomChart(options, config, seriesData, markLines, ticks) {
|
||||
'use strict';
|
||||
|
||||
if (!(this instanceof CustomChart)) return new CustomChart(options, config, seriesData, markLines, ticks);
|
||||
|
||||
this.chart = null;
|
||||
this.config = config;
|
||||
this.options = options;
|
||||
|
||||
var that = this;
|
||||
var series;
|
||||
var markingsOffset = 0;
|
||||
var settings;
|
||||
var backgrounds = [
|
||||
['#8e9eab', '#eef2f3'], // Portrait
|
||||
['#517fa4', '#243949'], // Instagram
|
||||
['#485563', '#29323c'], // ServQuick
|
||||
['#abbaab', '#00ffff'], // Metallic Toad
|
||||
['#ECE9E6', '#00ffff'], // Clouds
|
||||
['#16222A', '#3A6073'], // Mirage
|
||||
['#1F1C2C', '#928DAB'], // Steel Gray
|
||||
['#003973', '#E5E5BE'], // Horizon
|
||||
['#D1913C', '#FFD194'], // Koko Caramel
|
||||
['#136a8a', '#267871'] // Turquoise flow
|
||||
];
|
||||
|
||||
function _yFormatter(y, line) {
|
||||
if (typeof y === 'boolean') return '' + y;
|
||||
var unit = that.config.l[line].unit ? ' ' + that.config.l[line].unit : '';
|
||||
if (that.config.l[line].afterComma !== undefined && that.config.l[line].afterComma !== null) {
|
||||
y = parseFloat(y);
|
||||
if (that.config.useComma) {
|
||||
return y.toFixed(that.config.l[line].afterComma).toString().replace('.', ',') + unit;
|
||||
} else {
|
||||
return y.toFixed(that.config.l[line].afterComma) + unit;
|
||||
}
|
||||
} else {
|
||||
if (that.config.useComma) {
|
||||
y = parseFloat(y);
|
||||
return y.toString().replace('.', ',') + unit;
|
||||
} else {
|
||||
return y + unit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function _tickXFormatter(number, object) {
|
||||
if (ticks) return ' ';
|
||||
var now = new Date(parseInt(number, 10));
|
||||
if (that.config.timeFormatDate && that.config.timeFormatTime) {
|
||||
if (!object.ticks.length) {
|
||||
return '<b><i>' + $.plot.formatDate(now, that.config.timeFormatDate, months[systemLang], days[systemLang]) + '</i></b>';
|
||||
}
|
||||
var d = new Date(object.ticks[object.ticks.length - 1].v);
|
||||
if (d.getDate() !== now.getDate()) {
|
||||
return '<b><i>' + $.plot.formatDate(now, that.config.timeFormatDate, months[systemLang], days[systemLang]) + '</i></b>';
|
||||
}
|
||||
return $.plot.formatDate(now, that.config.timeFormatTime, months[systemLang], days[systemLang]);
|
||||
} else {
|
||||
return $.plot.formatDate(now, that.config.timeFormat, months[systemLang], days[systemLang]);
|
||||
}
|
||||
}
|
||||
|
||||
function _tickYFormatter(number, object) {
|
||||
// If tickDecimals was specified, ensure that we have exactly that
|
||||
// much precision; otherwise default to the value's own precision.
|
||||
var afterComma = that.config.l[object.n - 1].afterComma;
|
||||
|
||||
if (afterComma !== null && afterComma !== undefined) {
|
||||
var factor = afterComma ? Math.pow(10, afterComma) : 1;
|
||||
var formatted = (Math.round(number * factor) / factor).toString();
|
||||
var decimal = formatted.indexOf('.');
|
||||
var precision = decimal === -1 ? 0 : formatted.length - decimal - 1;
|
||||
|
||||
if (precision < afterComma) {
|
||||
number = (precision ? formatted : formatted + '.') + factor.toString().substr(1, afterComma - precision);
|
||||
} else {
|
||||
number = formatted;
|
||||
}
|
||||
}
|
||||
|
||||
if (that.config.useComma) number = number.toString().replace('.', ',');
|
||||
|
||||
var unit = that.config.l[object.n - 1].unit;
|
||||
|
||||
return number + (unit ? (' ' + unit) : '');
|
||||
}
|
||||
|
||||
function showLabels (animation) {
|
||||
if (that.config.barLabels) {
|
||||
setTimeout(function () {
|
||||
var data = that.chart.getData();
|
||||
|
||||
for (var d = 0; d < data.length; d++) {
|
||||
if (!that.config.l[d] || that.config.l[d].chartType !== 'bar') continue;
|
||||
|
||||
$.each(data[d].data, function (i, el) {
|
||||
if (el[1] === null) return;
|
||||
if (!i) return;
|
||||
if (i === data[d].data.length - 1) return;
|
||||
var o;
|
||||
if (that.config.barLabels === 'topover') {
|
||||
o = that.chart.pointOffset({x: el[0], y: el[1]});
|
||||
o.top -= 20;
|
||||
} else if (that.config.barLabels === 'topunder') {
|
||||
o = that.chart.pointOffset({x: el[0], y: el[1]});
|
||||
//o.top += 10;
|
||||
} else if (that.config.barLabels === 'bottom') {
|
||||
o = that.chart.pointOffset({x: el[0], y: 0});
|
||||
o.top += 20;
|
||||
} else {//if (that.config.barLabels === 'middle') {
|
||||
o = that.chart.pointOffset({x: el[0], y: el[1] / 2});
|
||||
}
|
||||
|
||||
$('<div class="data-point-label"><div style="width: 100%; margin-left: -50%;">' + _yFormatter(el[1], d) + '</div></div>').css({
|
||||
position: 'absolute',
|
||||
left: o.left,
|
||||
top: o.top
|
||||
}).appendTo(that.chart.getPlaceholder());
|
||||
});
|
||||
}
|
||||
if (that.config.barFontSize || that.config.barFontColor) {
|
||||
$('.data-point-label').css({
|
||||
'font-size': that.config.barFontSize || undefined,
|
||||
color: that.config.barFontColor || undefined
|
||||
});
|
||||
}
|
||||
|
||||
}, animation ? parseInt(animation) + 200 : 0);
|
||||
}
|
||||
|
||||
if (markLines && markLines.length) {
|
||||
setTimeout(function () {
|
||||
var data = that.chart.getData();
|
||||
var num = 0;
|
||||
for (var m = 0; m < markLines.length; m++) {
|
||||
if (markLines[m].d && data[markLines[m].l + markingsOffset]) {
|
||||
var line = data[num].data;
|
||||
var o;
|
||||
var text;
|
||||
if (markLines[m].p === 'l') {
|
||||
o = that.chart.pointOffset({x: line[0][0], y: line[0][1], yaxis: data[markLines[m].l + markingsOffset].yaxis, xaxis: data[markLines[m].l + markingsOffset].xaxis});
|
||||
o.top -= markLines[m].py;
|
||||
text = markLines[m].d;
|
||||
} else {//if (markLines[m].p === 'r') {
|
||||
o = that.chart.pointOffset({x: line[1][0], y: line[1][1], yaxis: data[markLines[m].l + markingsOffset].yaxis, xaxis: data[markLines[m].l + markingsOffset].xaxis});
|
||||
o.top -= markLines[m].py;
|
||||
text = '<div style="width: 100%; margin-left: -100%; padding-right: 15px; white-space: nowrap">' + markLines[m].d + '</div>';
|
||||
}
|
||||
$('<div class="marklines-label" style="padding-left: 10px; white-space: nowrap">' + text + '</div>').css({
|
||||
position: 'absolute',
|
||||
left: o.left,
|
||||
top: o.top,
|
||||
'font-size': markLines[m].fs || undefined,
|
||||
color: markLines[m].fc || undefined
|
||||
}).appendTo(that.chart.getPlaceholder());
|
||||
}
|
||||
if (markLines[m].vl !== '' && markLines[m].vl !== null && markLines[m].vl !== undefined) {
|
||||
num++;
|
||||
}
|
||||
num++;
|
||||
}
|
||||
}, animation ? parseInt(animation) + 200 : 0);
|
||||
}
|
||||
}
|
||||
|
||||
(function _constructor () {
|
||||
series = [];
|
||||
var smoothing = false;
|
||||
var $title = $('#' + that.options.titleId);
|
||||
|
||||
if (that.config.title && !$title.html()) {
|
||||
$title.html(that.config.titlePos ? decodeURI(that.config.title) : '');
|
||||
if (that.config.titleColor) $title.css('color', that.config.titleColor);
|
||||
if (that.config.titleSize) $title.css('font-size', that.config.titleSize);
|
||||
if (that.config.titlePos) {
|
||||
var parts = that.config.titlePos.split(';');
|
||||
var css = {};
|
||||
for (var t = 0; t < parts.length; t++) {
|
||||
var p = parts[t].split(':');
|
||||
|
||||
// Bottom inside
|
||||
if (p[0] === 'bottom' && p[1] == '5') {
|
||||
if (that.config.height.indexOf('%') === -1) {
|
||||
css.top = parseInt(that.config.height, 10) - $title.height() - 45;
|
||||
} else {
|
||||
css.top = 'calc(' + that.config.height + ' - ' + ($title.height() + 45) + 'px)';
|
||||
}
|
||||
} else // Bottom outside
|
||||
if (p[0] === 'bottom' && p[1] == '-5') {
|
||||
if (that.config.height.indexOf('%') === -1) {
|
||||
css.top = parseInt(that.config.height, 10) + 5;
|
||||
} else {
|
||||
css.top = 'calc(' + that.config.height + ' + 5px)';
|
||||
}
|
||||
} else // Middle
|
||||
if (p[0] === 'top' && p[1] == '50') {
|
||||
if (that.config.height.indexOf('%') === -1) {
|
||||
css.top = (parseInt(that.config.height, 10) - $title.height()) / 2;
|
||||
} else {
|
||||
css.top = 'calc(50% - ' + ($title.height() / 2) + 'px)';
|
||||
}
|
||||
} else // Center
|
||||
if (p[0] === 'left' && p[1] == '50') {
|
||||
if (that.config.width.indexOf('%') === -1) {
|
||||
css.left = (parseInt(that.config.width, 10) - $title.width()) / 2;
|
||||
} else {
|
||||
css.left = 'calc(50% - ' + ($title.width() / 2) + 'px)';
|
||||
}
|
||||
} else // Right inside
|
||||
if (p[0] === 'right' && p[1] == '5') {
|
||||
if (that.config.width.indexOf('%') === -1) {
|
||||
css.left = parseInt(that.config.width, 10) - $title.width() - 45;
|
||||
} else {
|
||||
css.left = 'calc(' + that.config.width + ' - ' + ($title.width() + 45) + 'px)';
|
||||
}
|
||||
} else // Right outside
|
||||
if (p[0] === 'right' && p[1] == '-5') {
|
||||
if (that.config.width.indexOf('%') === -1) {
|
||||
css.left = parseInt(that.config.width, 10) + 25;
|
||||
} else {
|
||||
css.left = 'calc(' + that.config.width + ' + 5px)';
|
||||
}
|
||||
} else {
|
||||
css[p[0]] = p[1];
|
||||
}
|
||||
}
|
||||
|
||||
$title.css(css);
|
||||
}
|
||||
}
|
||||
|
||||
// Replace background
|
||||
if (that.config.bg && that.config.bg.length < 3 && backgrounds[that.config.bg]) that.config.bg = {colors: backgrounds[that.config.bg]};
|
||||
|
||||
markingsOffset = 0;
|
||||
// draw horizontal lines
|
||||
if (markLines && markLines.length) {
|
||||
for (var m = 0; m < markLines.length; m++) {
|
||||
markingsOffset++;
|
||||
markLines[m].v = parseFloat(markLines[m].v) || 0; // value
|
||||
markLines[m].l = parseInt(markLines[m].l) || 0; // line number
|
||||
markLines[m].s = parseFloat(markLines[m].s) || 0; // shadow size
|
||||
markLines[m].t = parseFloat(markLines[m].t) || 0; // line width
|
||||
markLines[m].py = parseFloat(markLines[m].py) || 0; // y offset of label
|
||||
series.push({
|
||||
id: 'line' + m,
|
||||
xaxis: {show: false},
|
||||
color: markLines[m].c || undefined,
|
||||
lines: {
|
||||
show: true,
|
||||
fill: markLines[m].f === '1' || markLines[m].f === 1 || markLines[m].f === 'true' || markLines[m].f === true,
|
||||
steps: true,
|
||||
lineWidth: markLines[m].t
|
||||
},
|
||||
data: [[0, markLines[m].v], [100, markLines[m].v]],
|
||||
label: '__hide_me__',
|
||||
shadowSize: markLines[m].s
|
||||
});
|
||||
// if lower value set
|
||||
if (markLines[m].vl !== '' && markLines[m].vl !== null && markLines[m].vl !== undefined) {
|
||||
markingsOffset++;
|
||||
markLines[m].vl = parseFloat(markLines[m].vl) || 0;
|
||||
series.push({
|
||||
xaxis: {show: false},
|
||||
color: markLines[m].c || undefined,
|
||||
lines: {
|
||||
show: true,
|
||||
fill: true,
|
||||
steps: true,
|
||||
lineWidth: markLines[m].t
|
||||
},
|
||||
data: [[0, markLines[m].vl], [100, markLines[m].vl]],
|
||||
fillBetween: 'line' + m,
|
||||
label: '__hide_me__',
|
||||
shadowSize: markLines[m].s
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//todo make bar working
|
||||
// if (that.config.renderer !== 'bar' || that.config._ids.length <= 1) {
|
||||
var xMin = Infinity;
|
||||
var xMax = 0;
|
||||
for (var i = 0; i < seriesData.length; i++) {
|
||||
if (seriesData[i] && that.config.l[i]) {
|
||||
|
||||
that.config.l[i].chartType = that.config.l[i].chartType || that.config.chartType || 'line';
|
||||
that.config.l[i].dashes = that.config.l[i].dashes === true || that.config.l[i].dashes === 'true';
|
||||
that.config.l[i].dashLength = parseFloat(that.config.l[i].dashLength) || 10;
|
||||
that.config.l[i].spaceLength = parseFloat(that.config.l[i].spaceLength) || 10;
|
||||
var isLine = that.config.l[i].chartType !== 'scatterplot' && that.config.l[i].chartType !== 'bar' && that.config.l[i].chartType !== 'spline';
|
||||
|
||||
var option = {
|
||||
color: that.config.l[i].color || undefined,
|
||||
lines: {
|
||||
show: (!that.config.l[i].dashes && isLine),
|
||||
fill: (that.config.l[i].fill && that.config.l[i].fill !== '0') ? parseFloat(that.config.l[i].fill) : (that.config.l[i].chartType === 'area' || that.config.l[i].chartType === 'bar'),
|
||||
steps: (that.config.l[i].chartType === 'steps'),
|
||||
lineWidth: that.config.l[i].thickness
|
||||
},
|
||||
splines: {
|
||||
show: (that.config.l[i].chartType === 'spline'),
|
||||
tension: 0.5, //(float between 0 and 1, defaults to 0.5),
|
||||
lineWidth: that.config.l[i].thickness,
|
||||
fill: (that.config.l[i].fill && that.config.l[i].fill !== '0') ? parseFloat(that.config.l[i].fill) : false //(float between 0 .. 1 or false, as in flot documentation)
|
||||
},
|
||||
bars: {
|
||||
show: (that.config.l[i].chartType === 'bar'),
|
||||
order: i + 1,
|
||||
barWidth: 0.6,
|
||||
lineWidth: that.config.l[i].thickness,
|
||||
fill: (that.config.l[i].fill && that.config.l[i].fill !== '0') ? parseFloat(that.config.l[i].fill) : false,
|
||||
fillColor: that.config.barColor || undefined,
|
||||
align: 'center'
|
||||
},
|
||||
points: {
|
||||
show: (that.config.l[i].chartType === 'lineplot' || that.config.l[i].chartType === 'scatterplot' || that.config.l[i].points === 'true' || that.config.l[i].points === true)
|
||||
},
|
||||
data: seriesData[i],
|
||||
label: that.config.l[i].name,
|
||||
shadowSize: that.config.l[i].shadowsize,
|
||||
dashes: {
|
||||
show: that.config.l[i].dashes && isLine,
|
||||
lineWidth: that.config.l[i].thickness,
|
||||
dashLength: [that.config.l[i].dashLength, that.config.l[i].spaceLength]
|
||||
}
|
||||
};
|
||||
|
||||
if ((that.config.smoothing && that.config.smoothing > 0) || (that.config.l[i].smoothing && that.config.l[i].smoothing > 0)) {
|
||||
smoothing = true;
|
||||
that.config.l[i].smoothing = parseInt(that.config.l[i].smoothing || that.config.smoothing);
|
||||
option.data = avg(option.data, that.config.l[i].smoothing);
|
||||
} else {
|
||||
that.config.l[i].smoothing = 0;
|
||||
}
|
||||
|
||||
that.config.l[i].afterComma = (that.config.l[i].afterComma === undefined || that.config.l[i].afterComma === '') ? that.config.afterComma : parseInt(that.config.l[i].afterComma, 10);
|
||||
|
||||
if (that.config.l[i].chartType === 'bar') {
|
||||
option.bars.barWidth = (option.data[option.data.length - 1][0] - option.data[0][0]) / option.data.length * (parseFloat(that.config.barWidth) || 0.5);
|
||||
}
|
||||
/*
|
||||
if (that.config.l[i].chartType === 'pie') {
|
||||
series.legend = {
|
||||
show: !!that.config.legend,
|
||||
position: that.config.legend
|
||||
};
|
||||
} else if (that.config.l[i].chartType === 'bar') {
|
||||
var series = {
|
||||
series: {
|
||||
bars: {
|
||||
show: that.config.l[i].chartType === 'bar',
|
||||
barWidth: 0.6,
|
||||
align: "center"
|
||||
},
|
||||
pie: {
|
||||
show: that.config.l[i].chartType === 'pie'
|
||||
},
|
||||
legend: {
|
||||
show: !!that.config.legend,
|
||||
position: that.config.legend
|
||||
}
|
||||
}
|
||||
};
|
||||
*/
|
||||
|
||||
series.push(option);
|
||||
|
||||
if (seriesData[i][0][0] < xMin) xMin = seriesData[i][0][0];
|
||||
if (seriesData[i][seriesData[i].length - 1][0] > xMax) xMax = seriesData[i][seriesData[i].length - 1][0];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (that.config.min === null || that.config.min === undefined || that.config.min === '' || that.config.min.toString() === 'NaN') {
|
||||
that.config.min = undefined;
|
||||
} else {
|
||||
that.config.min = parseFloat(that.config.min);
|
||||
}
|
||||
|
||||
if (that.config.noBorder) {
|
||||
if (!that.config.width) that.config.width = '100%';
|
||||
if (!that.config.height) that.config.height = '100%';
|
||||
|
||||
if (that.config.width.indexOf('%') !== -1) {
|
||||
$('#chart_container').css({width: 'calc(' + that.config.width + ' - 20px)'}); // original 20px
|
||||
} else {
|
||||
$('#chart_container').css({width: that.config.width});
|
||||
}
|
||||
if (that.config.height.indexOf('%') !== -1) {
|
||||
$('#chart_container').css({height: 'calc(' + that.config.height + ' - 20px)'});// original 20px
|
||||
} else {
|
||||
$('#chart_container').css({height: that.config.height});
|
||||
}
|
||||
|
||||
} else {
|
||||
$('#chart_container').addClass('chart-container').css({width: that.config.width, height: that.config.height});
|
||||
// $('#chart_container').css({'padding-bottom':"100px"})
|
||||
}
|
||||
|
||||
if (that.config.timeFormat === 'null') that.config.timeFormat = undefined;
|
||||
|
||||
if (that.config.timeFormat) {
|
||||
if (that.config.timeFormat.indexOf('%H:%M:%S') !== -1) {
|
||||
that.config.timeFormatTime = '%H:%M:%S';
|
||||
} else if (that.config.timeFormat.indexOf('%I:%M:%S') !== -1) {
|
||||
that.config.timeFormatTime = '%I:%M:%S';
|
||||
} else if (that.config.timeFormat.indexOf('%H:%M.') !== -1) {
|
||||
that.config.timeFormatTime = '%H:%M.';
|
||||
} else if (that.config.timeFormat.indexOf('%H:%M') !== -1) {
|
||||
that.config.timeFormatTime = '%H:%M';
|
||||
} else {
|
||||
that.config.timeFormatTime = null;
|
||||
}
|
||||
if (that.config.timeFormat.indexOf('%d.%m.%y') !== -1) {
|
||||
that.config.timeFormatDate = '%d.%m.%y';
|
||||
} else if (that.config.timeFormat.indexOf('%x %p') !== -1) {
|
||||
that.config.timeFormatDate = '%x %p';
|
||||
} else if (that.config.timeFormat.indexOf('%d/%m/%y') !== -1) {
|
||||
that.config.timeFormatDate = '%d/%m/%y';
|
||||
} else if (that.config.timeFormat.indexOf('%m.%d.%y') !== -1) {
|
||||
that.config.timeFormatDate = '%m.%d.%y';
|
||||
} else if (that.config.timeFormat.indexOf('%d.%m') !== -1) {
|
||||
that.config.timeFormatDate = '%d.%m';
|
||||
} else if (that.config.timeFormat.indexOf('%a') !== -1) {
|
||||
that.config.timeFormatDate = '%a';
|
||||
} else {
|
||||
that.config.timeFormatDate = null;
|
||||
}
|
||||
}
|
||||
|
||||
settings = {
|
||||
grid: {
|
||||
hoverable: (that.config.hoverDetail === 'true' || that.config.hoverDetail === true),
|
||||
backgroundColor: that.config.bg || undefined,
|
||||
borderWidth: (!that.config.border_width && that.config.border_width !== '0' && that.config.border_width !== 0) ? undefined : parseInt(that.config.border_width, 10),
|
||||
borderColor: that.config.border_color || undefined
|
||||
},
|
||||
yaxes: [],
|
||||
xaxes: [],
|
||||
legend: {
|
||||
show: !!that.config.legend,
|
||||
position: that.config.legend,
|
||||
hideable: true,
|
||||
noColumns: parseInt(that.config.legColumns, 10) || undefined,
|
||||
backgroundColor: that.config.legBg || undefined,
|
||||
backgroundOpacity: that.config.legBgOpacity !== undefined ? parseFloat(that.config.legBgOpacity) : 0.85,
|
||||
labelFormatter: function (label, series) {
|
||||
if (label === '__hide_me__') return null;
|
||||
return '<span class="graphlabel">' + label + '</span>';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (that.config.zoom) {
|
||||
settings.zoom = {
|
||||
interactive: true,
|
||||
trigger: 'dblclick', // or "click" for single click
|
||||
amount: 1.5 // 2 = 200% (zoom in), 0.5 = 50% (zoom out)
|
||||
};
|
||||
settings.pan = {
|
||||
interactive: true,
|
||||
cursor: 'move', // CSS mouse cursor value used when dragging, e.g. "pointer"
|
||||
frameRate: 20
|
||||
};
|
||||
}
|
||||
|
||||
var steps = that.config.animation < 1000 ? 20 : 50;
|
||||
|
||||
var ii;
|
||||
for (ii = 0; ii < that.config.l.length; ii++) {
|
||||
|
||||
that.config.l[ii].yaxe = that.config.l[ii].yaxe || '';
|
||||
that.config.l[ii].xaxe = that.config.l[ii].xaxe || '';
|
||||
that.config.l[ii].commonYAxis = that.config.l[ii].commonYAxis || '';
|
||||
|
||||
var yaxi = {
|
||||
show: that.config.l[ii].yaxe !== 'off',
|
||||
min: (that.config.l[ii].min !== '' && that.config.l[ii].min !== null && that.config.l[ii].min !== undefined) ? parseFloat(that.config.l[ii].min) : undefined,
|
||||
max: (that.config.l[ii].max !== '' && that.config.l[ii].max !== null && that.config.l[ii].max !== undefined) ? parseFloat(that.config.l[ii].max) : undefined,
|
||||
position: that.config.l[ii].yaxe.indexOf('left') > -1 ? 'left' : 'right',
|
||||
font: {
|
||||
color: that.config.l[ii].yaxe.indexOf('Color') > -1 ? that.config.l[ii].color : (that.config.y_labels_color || 'black')
|
||||
},
|
||||
zoomRange: false, // or [ number, number ] (min range, max range) or false
|
||||
panRange: false, // or [ number, number ] (min, max) or false
|
||||
// to do
|
||||
/*{
|
||||
size: 11,
|
||||
lineHeight: 13,
|
||||
style: "italic",
|
||||
weight: "bold",
|
||||
family: "sans-serif",
|
||||
variant: "small-caps",
|
||||
color: "#545454"
|
||||
}*/
|
||||
ticks: parseInt(that.config.l[ii].yticks, 10) || undefined,
|
||||
tickColor: that.config.grid_color || undefined,
|
||||
tickFormatter: _tickYFormatter
|
||||
};
|
||||
|
||||
var xaxi = {
|
||||
show: that.config.l[ii].xaxe !== 'off',
|
||||
position: that.config.l[ii].xaxe.indexOf('top') !== -1 ? 'top' : 'bottom',
|
||||
font: {
|
||||
color: that.config.l[ii].xaxe.indexOf('Color') !== -1 ? that.config.l[ii].color : (that.config.x_labels_color || 'black')
|
||||
},
|
||||
zoomRange: null, // or [ number, number ] (min range, max range) or false
|
||||
panRange: null, // or [ number, number ] (min, max) or false
|
||||
mode: 'time',
|
||||
//timeformat: that.config.timeFormat,
|
||||
//timezone: "browser",
|
||||
tickFormatter: that.config.timeFormat ? _tickXFormatter : null,
|
||||
minTickSize: (that.config.l[ii].chartType === 'bar') ? series[ii + markingsOffset].bars.barWidth : undefined,
|
||||
tickColor: that.config.grid_color || undefined,
|
||||
ticks: parseInt(that.config.l[ii].xticks, 10) || undefined,
|
||||
min: undefined,
|
||||
max: undefined
|
||||
};
|
||||
|
||||
// prepare for bar
|
||||
if (that.config.l[ii].chartType === 'bar') {
|
||||
settings.legend.hideable = false;
|
||||
|
||||
xaxi.ticks = [];
|
||||
for (var m = 0; m < seriesData[ii].length; m++) {
|
||||
xaxi.ticks.push(seriesData[ii][m][0]);
|
||||
// Normally first and last points are invalid
|
||||
}
|
||||
seriesData[ii][0][1] = null;
|
||||
seriesData[ii][seriesData[ii].length - 1][1] = null;
|
||||
} else if (ticks) {
|
||||
xaxi.ticks = ticks;
|
||||
}
|
||||
|
||||
if (that.config.zoom) {
|
||||
var now = new Date();
|
||||
xaxi.zoomRange = [null, now.getTime()]; // or [ number, number] (min range, max range) or false
|
||||
xaxi.panRange = [null, now.getTime()]; // or [ number, number] (min range, max range) or false
|
||||
}
|
||||
|
||||
settings.yaxes.push(yaxi);
|
||||
settings.xaxes.push(xaxi);
|
||||
|
||||
// Support for commonYAxis
|
||||
if (that.config.l[ii].commonYAxis !== '') {
|
||||
series[ii + markingsOffset].yaxis = parseInt(that.config.l[ii].commonYAxis);
|
||||
} else {
|
||||
series[ii + markingsOffset].yaxis = ii + 1;
|
||||
}
|
||||
series[ii + markingsOffset].xaxis = ii + 1;
|
||||
|
||||
series[ii + markingsOffset].curvedLines = {
|
||||
apply: !!that.config.l[ii].smoothing,
|
||||
active: !!that.config.l[ii].smoothing,
|
||||
monotonicFit: true
|
||||
};
|
||||
}
|
||||
|
||||
// set yaxis
|
||||
if (markLines && markLines.length) {
|
||||
var num = 0;
|
||||
for (var mm = 0; mm < markLines.length; mm++) {
|
||||
if (series[markLines[mm].l + markingsOffset]) {
|
||||
markLines[mm].l = parseInt(markLines[mm].l, 10);
|
||||
series[num].yaxis = series[markLines[mm].l + markingsOffset].yaxis;
|
||||
series[num].data[0][0] = xMin;
|
||||
series[num].data[1][0] = xMax;
|
||||
num++;
|
||||
// if lower value set
|
||||
if (markLines[mm].vl !== '' && markLines[mm].vl !== null && markLines[mm].vl !== undefined) {
|
||||
series[num].yaxis = series[markLines[mm].l + markingsOffset].yaxis;
|
||||
series[num].data[0][0] = xMin;
|
||||
series[num].data[1][0] = xMax;
|
||||
num++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (smoothing) {
|
||||
settings.series = settings.series || {};
|
||||
settings.series.curvedLines = {
|
||||
apply: true,
|
||||
active: true,
|
||||
monotonicFit: true
|
||||
};
|
||||
}
|
||||
if (that.config.animation) {
|
||||
settings.series = settings.series || {};
|
||||
settings.series.grow = {
|
||||
active: true,
|
||||
steps: steps,
|
||||
stepDelay: that.config.animation / steps
|
||||
};
|
||||
}
|
||||
|
||||
// hiddengraphs overload the labelFormatter, so we should overload the hiddengraphs
|
||||
$.plot.plugins.push({
|
||||
init: function (plot) {
|
||||
plot.hooks.processOptions.push(function checkOptions(plot, options) {
|
||||
if (!options.legend.hideable) {
|
||||
return;
|
||||
}
|
||||
|
||||
options.legend.labelFormatter = function(label, series) {
|
||||
if (label === '__hide_me__') return null;
|
||||
return '<span class="graphlabel">' + label + '</span>';
|
||||
};
|
||||
});
|
||||
},
|
||||
options: options,
|
||||
name: 'hiddenGraphsEx',
|
||||
version: '1.0'
|
||||
});
|
||||
|
||||
that.chart = $.plot('#' + that.options.chartId, series, settings);
|
||||
|
||||
showLabels(that.config.animation);
|
||||
|
||||
var $div = $('#' + that.options.chartId);
|
||||
|
||||
that.options.tooltipId = that.options.tooltipId || 'tooltip';
|
||||
|
||||
// Hoover
|
||||
if (that.config.hoverDetail === 'true' || that.config.hoverDetail === true) {
|
||||
$div.unbind('plothover').bind('plothover', function (event, pos, item) {
|
||||
if (item) {
|
||||
var x = item.datapoint[0].toFixed(2);
|
||||
var y;
|
||||
|
||||
if (that.config.l[item.seriesIndex - markingsOffset].type === 'boolean') {
|
||||
y = !!Math.round(item.datapoint[1] - that.config.l[item.seriesIndex - markingsOffset].yOffset);
|
||||
} else {
|
||||
y = (item.datapoint[1] - that.config.l[item.seriesIndex - markingsOffset].yOffset).toFixed(2);
|
||||
}
|
||||
|
||||
var text = item.series.label ? item.series.label + '<br>' : '';
|
||||
text += $.plot.formatDate(new Date(parseInt(x, 10)), that.config.timeFormat) + '<br>';
|
||||
text += '<b>' + _yFormatter(y, item.seriesIndex - markingsOffset) + '</b>';
|
||||
|
||||
var $tooltip = $('#' + that.options.tooltipId).html(text);
|
||||
if ($(this).height() - item.pageY < $tooltip.height()) {
|
||||
item.pageY -= 10 + $tooltip.height();
|
||||
}
|
||||
if ($(this).width() - item.pageX < $tooltip.width()) {
|
||||
item.pageX -= 10 + $tooltip.width();
|
||||
}
|
||||
$tooltip.css({top: item.pageY + 5, left: item.pageX + 5}).fadeIn(200);
|
||||
} else {
|
||||
$('#tooltip').hide();
|
||||
}
|
||||
});
|
||||
|
||||
if (!$('#' + that.options.tooltipId).length) {
|
||||
$('<div id="' + that.options.tooltipId + '"></div>').css({
|
||||
position: 'absolute',
|
||||
display: 'none',
|
||||
border: '1px solid #fdd',
|
||||
padding: '2px',
|
||||
'background-color': '#fee',
|
||||
opacity: 0.80
|
||||
}).appendTo('body');
|
||||
}
|
||||
}
|
||||
|
||||
if (that.config.zoom && that.options.cbOnZoom) {
|
||||
$div.unbind('plotzoom').bind('plotzoom', function (e, plot, args) {
|
||||
if (that.zoomTimeout) clearTimeout(that.zoomTimeout);
|
||||
that.zoomTimeout = setTimeout(that.options.cbOnZoom, 500);
|
||||
}).unbind('plotpan').bind('plotpan', function (e, plot, args) {
|
||||
if (that.zoomTimeout) clearTimeout(that.zoomTimeout);
|
||||
that.zoomTimeout = setTimeout(that.options.cbOnZoom, 500);
|
||||
})
|
||||
}
|
||||
})();
|
||||
|
||||
this.update = function (newSeriesData, newMarkingsData, newTicks) {
|
||||
if (newSeriesData) {
|
||||
var xMin = Infinity;
|
||||
var xMax = 0;
|
||||
|
||||
for (var index = 0; index < config.l.length; index++) {
|
||||
series[index + markingsOffset].data = newSeriesData[index];
|
||||
if (newSeriesData[index][0][0] < xMin) xMin = newSeriesData[index][0][0];
|
||||
if (newSeriesData[index][newSeriesData[index].length - 1][0] > xMax) xMax = newSeriesData[index][newSeriesData[index].length - 1][0];
|
||||
|
||||
// prepare for bar
|
||||
if (config.l[index].chartType === 'bar') {
|
||||
settings.xaxes[index].ticks = [];
|
||||
for (var m = 0; m < newSeriesData[index].length; m++) {
|
||||
settings.xaxes[index].ticks.push(newSeriesData[index][m][0]);
|
||||
}
|
||||
// Normally first and last points are invalid
|
||||
newSeriesData[index][0][1] = null;
|
||||
newSeriesData[index][newSeriesData[index].length - 1][1] = null;
|
||||
}
|
||||
}
|
||||
|
||||
// update xmin and xmax
|
||||
if (markLines && markLines.length) {
|
||||
var num_ = 0;
|
||||
for (var m = 0; m < markLines.length; m++) {
|
||||
series[num_].data[0][0] = xMin;
|
||||
series[num_].data[1][0] = xMax;
|
||||
num_++;
|
||||
// if lower value set
|
||||
if (markLines[m].vl !== '' && markLines[m].vl !== null && markLines[m].vl !== undefined) {
|
||||
series[num_].data[0][0] = xMin;
|
||||
series[num_].data[1][0] = xMax;
|
||||
num_++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('.data-point-label').remove();
|
||||
$('.marklines-label').remove();
|
||||
|
||||
if (settings.series && settings.series.grow) settings.series.grow.active = false;
|
||||
}
|
||||
if (newMarkingsData) {
|
||||
if (newMarkingsData && newMarkingsData.length) {
|
||||
var num = 0;
|
||||
for (var mm = 0; mm < newMarkingsData.length; mm++) {
|
||||
series[num].data[0][1] = newMarkingsData[mm].v;
|
||||
series[num].data[1][1] = newMarkingsData[mm].v;
|
||||
num++;
|
||||
// if lower value set
|
||||
if (newMarkingsData[mm].vl !== '' && newMarkingsData[mm].vl !== null && newMarkingsData[mm].vl !== undefined) {
|
||||
series[num].data[0][1] = newMarkingsData[mm].vl;
|
||||
series[num].data[1][1] = newMarkingsData[mm].vl;
|
||||
num++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.chart = $.plot('#' + this.options.chartId, series, settings);
|
||||
showLabels(false);
|
||||
};
|
||||
|
||||
this.getRange = function () {
|
||||
var opt = this.chart.getOptions();
|
||||
var result = [];
|
||||
for (var index = 0; index < opt.xaxes.length; index++) {
|
||||
result[index] = {
|
||||
min: Math.round(opt.xaxes[index].min),
|
||||
max: Math.round(opt.xaxes[index].max)
|
||||
};
|
||||
settings.xaxes[index].max = result[index].max;
|
||||
settings.xaxes[index].min = result[index].min;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
this.setRange = function (minMaxArr) {
|
||||
for (var index = 0; index < settings.xaxes.length; index++) {
|
||||
settings.xaxes[index].min = minMaxArr[index].min;
|
||||
settings.xaxes[index].max = minMaxArr[index].max;
|
||||
}
|
||||
};
|
||||
|
||||
this.resetZoom = function (time) {
|
||||
time = time || new Date();
|
||||
for (var index = 0; index < settings.xaxes.length; index++) {
|
||||
settings.xaxes[index].zoomRange = [null, time.getTime()];
|
||||
settings.xaxes[index].panRange = [null, time.getTime()];
|
||||
}
|
||||
};
|
||||
|
||||
this.zoom = function (positionX, amount) {
|
||||
var offset = this.chart.offset();
|
||||
this.chart.zoom({
|
||||
center: {
|
||||
left: positionX - offset.left,
|
||||
height: this.chart.height() / 2
|
||||
},
|
||||
amount: amount
|
||||
});
|
||||
};
|
||||
|
||||
this.pan = function (positionX) {
|
||||
this.chart.pan({left: positionX, top: 0});
|
||||
};
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,850 @@
|
||||
'use strict';
|
||||
|
||||
// Show "no connection" message after 5 seconds
|
||||
var disconnectTimeout = setTimeout(function () {
|
||||
disconnectTimeout = null;
|
||||
//Show disconnected message
|
||||
$('#no-connection').show();
|
||||
}, 5000);
|
||||
|
||||
var sessionId = 1;
|
||||
// Analyse query
|
||||
var path = location.href.split('?')[1];
|
||||
|
||||
var systemLang = 'en';
|
||||
if (typeof sysLang !== 'undefined') {
|
||||
systemLang = sysLang || 'en';
|
||||
}
|
||||
|
||||
|
||||
// convert old format to new one
|
||||
// OLD: http://localhost:8082/flot/index.html?range=1440&renderer=line&axeX=l&axeY=inside&_ids=system.adapter.admin.0.memRss%2Csystem.adapter.email.0.memRss&_colors=%23c05020%3B%2330c020%3B%236060c0
|
||||
// NEW: http://localhost:8082/flot/index.html?l%5B0%5D%5Bid%5D=system.adapter.admin.0.memRss&l%5B0%5D%5Boffset%5D=0&l%5B0%5D%5Baggregate%5D=average&l%5B0%5D%5Bcolor%5D=%23FF0000&l%5B0%5D%5Bthickness%5D=3&l%5B1%5D%5Bid%5D=system.adapter.email.0.memRss&l%5B1%5D%5Boffset%5D=0&l%5B1%5D%5Bart%5D=average&l%5B1%5D%5Bcolor%5D=%2300FF00&l%5B1%5D%5Bthickness%5D=3&timeType=relative&relativeEnd=now&range=10&aggregateType=step&aggregateSpan=300&legend=sw
|
||||
// OLD =>
|
||||
//{
|
||||
// _colors: "#c05020;#30c020;#6060c0"
|
||||
// _ids: "system.adapter.admin.0.memRss,system.adapter.email.0.memRss"
|
||||
// axeX: "lines"
|
||||
// axeY: "inside"
|
||||
// range: "1440"
|
||||
// renderer: "line"
|
||||
//}
|
||||
// NEW =>
|
||||
//{
|
||||
// "l" : [
|
||||
// {
|
||||
// "id" : "system.adapter.admin.0.memRss",
|
||||
// "offset" : "0",
|
||||
// "aggregate" : "minmax",
|
||||
// "color" : "#FF0000",
|
||||
// "thickness" : "3"
|
||||
// }, {
|
||||
// "id" : "system.adapter.email.0.memRss",
|
||||
// "offset" : "0",
|
||||
// "aggregate" : "minmax",
|
||||
// "color" : "#00FF00",
|
||||
// "thickness" : "3"
|
||||
// }
|
||||
// ],
|
||||
// "timeType" : "relative",
|
||||
// "relativeEnd" : "now",
|
||||
// "range" : "10",
|
||||
// "aggregateType" : "step",
|
||||
// "aggregateSpan" : "300",
|
||||
// "legend" : "sw //}
|
||||
|
||||
var config = deparam(path || '');
|
||||
|
||||
if (config.lines) {
|
||||
config.l = JSON.parse(JSON.stringify(config.lines));
|
||||
delete config.lines;
|
||||
}
|
||||
|
||||
if (config._ids) {
|
||||
var ids = config._ids ? config._ids.split(';') : [];
|
||||
var colors = config._colors ? config._colors.split(';') : [];
|
||||
var names = config._names ? config._names.split(';') : [];
|
||||
var units = config._units ? config._units.split(';') : [];
|
||||
config.l = [];
|
||||
for (var i = 0; i < ids.length; i++) {
|
||||
config.l.push({
|
||||
id: ids[i],
|
||||
offset: 0,
|
||||
name: names[i] || '',
|
||||
aggregate: 'onchange',
|
||||
color: colors[i] || 'blue',
|
||||
thickness: config.strokeWidth || 1,
|
||||
shadowsize: config.strokeWidth || 1,
|
||||
min: config.min || '',
|
||||
max: config.max || '',
|
||||
unit: units[i] || ''
|
||||
});
|
||||
}
|
||||
config.aggregateType = 'step';
|
||||
config.aggregateSpan = 300;
|
||||
config.relativeEnd = 'now';
|
||||
}
|
||||
|
||||
// convert art to aggregate
|
||||
if (config.l) {
|
||||
for (var j = 0; j < config.l.length; j++) {
|
||||
if (config.l[j].art) {
|
||||
config.l[j].aggregate = config.l[j].art;
|
||||
delete config.l[j].art;
|
||||
}
|
||||
if (config.instance && !config.l[j].instance) {
|
||||
config.l[j].instance = config.instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set default values
|
||||
config.width = config.width || '100%';
|
||||
config.height = config.height || '100%';
|
||||
config.timeFormat = config.timeFormat || '%H:%M:%S %e.%m.%y';
|
||||
config.useComma = config.useComma === 'true' || config.useComma === true;
|
||||
config.zoom = config.zoom === 'true' || config.zoom === true;
|
||||
config.animation = parseInt(config.animation) || 0;
|
||||
config.noedit = config.noedit === 'true' || config.noedit === true;
|
||||
config.afterComma = (config.afterComma === undefined) ? 2 : parseInt(config.afterComma, 10);
|
||||
config.timeType = config.timeArt || config.timeType || 'relative';
|
||||
// if ((config.max !== undefined && config.max !== '' && config.max !== null && parseFloat(config.max) != NaN)) config.max = parseFloat(config.max);
|
||||
var seriesData = [];
|
||||
var ticks = null;
|
||||
var liveInterval;
|
||||
|
||||
var navOptions = {};
|
||||
var socketURL = '';
|
||||
var socketSESSION = '';
|
||||
var now = new Date();
|
||||
var divId = 'chart_placeholder';
|
||||
|
||||
// for zoom
|
||||
var zoomTimeout = null;
|
||||
var lastX = null;
|
||||
var mouseDown = false;
|
||||
var lastWidth = null;
|
||||
var chart = null;
|
||||
|
||||
var isApp = false;
|
||||
var subscribes = [];
|
||||
var subscribed = false;
|
||||
// because of security issue
|
||||
try {
|
||||
if ((window.top !== window.self) && (typeof window.top.app !== 'undefined') && (typeof window.top.socketUrl !== 'undefined')) {
|
||||
isApp = true;
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
}
|
||||
|
||||
if (isApp) {
|
||||
socketURL = window.top.socketUrl; // if flot runs in iframe inside the app use the socketURL determined by app.js
|
||||
} else {
|
||||
if (typeof socketUrl !== 'undefined') {
|
||||
socketURL = socketUrl;
|
||||
if (socketURL && socketURL[0] === ':') {
|
||||
socketURL = location.protocol + '//' + location.hostname + socketURL;
|
||||
}
|
||||
socketSESSION = socketSession;
|
||||
}
|
||||
}
|
||||
var socket = io.connect(socketURL, {
|
||||
'query': 'key=' + socketSESSION,
|
||||
'reconnection limit': 10000,
|
||||
'max reconnection attempts': Infinity,
|
||||
upgrade: typeof socketForceWebSockets !== 'undefined' ? !socketForceWebSockets : undefined,
|
||||
rememberUpgrade: typeof socketForceWebSockets !== 'undefined' ? socketForceWebSockets : undefined,
|
||||
transports: typeof socketForceWebSockets !== 'undefined' ? (socketForceWebSockets ? ['websocket'] : undefined) : undefined
|
||||
});
|
||||
|
||||
socket.on('connect', function () {
|
||||
if (disconnectTimeout) {
|
||||
$('#no-connection').hide();
|
||||
clearTimeout(disconnectTimeout);
|
||||
disconnectTimeout = null;
|
||||
}
|
||||
setTimeout(function () {
|
||||
socket.emit('name', 'flot');
|
||||
}, 50);
|
||||
|
||||
setTimeout(function () {
|
||||
readData();
|
||||
}, 100);
|
||||
});
|
||||
|
||||
socket.on('stateChange', function (id, state) {
|
||||
if (!chart || !config || !config.m) return;
|
||||
console.log(id + ' - ' + state.val);
|
||||
for (var m = 0; m < config.m.length; m++) {
|
||||
if (config.m[m].oid === id) {
|
||||
config.m[m].v = parseFloat(state.val) || 0;
|
||||
}
|
||||
if (config.m[m].oidl === id) {
|
||||
config.m[m].vl = parseFloat(state.val) || 0;
|
||||
}
|
||||
}
|
||||
chart.update(null, config.m);
|
||||
});
|
||||
|
||||
if (config.window_bg) $('body').css('background', config.window_bg);
|
||||
|
||||
socket.on('disconnect', function () {
|
||||
if (!disconnectTimeout) {
|
||||
disconnectTimeout = setTimeout(function () {
|
||||
disconnectTimeout = null;
|
||||
//Show disconnected message
|
||||
$('#no-connection').show();
|
||||
}, 5000);
|
||||
}
|
||||
});
|
||||
|
||||
function addTime(time, offset, plusOrMinus, isOffsetInMinutes) {
|
||||
time = new Date(time);
|
||||
|
||||
if (typeof offset === 'string') {
|
||||
if (offset[1] === 'm') {
|
||||
offset = parseInt(offset, 10);
|
||||
time.setMonth(plusOrMinus ? time.getMonth() + offset : time.getMonth() - offset);
|
||||
time = time.getTime();
|
||||
} else if (offset[1] === 'y') {
|
||||
offset = parseInt(offset, 10);
|
||||
time.setFullYear(plusOrMinus ? time.getFullYear() + offset : time.getFullYear() - offset);
|
||||
time = time.getTime();
|
||||
} else {
|
||||
time = time.getTime();
|
||||
if (isOffsetInMinutes) {
|
||||
if (plusOrMinus) {
|
||||
time += (parseInt(offset, 10) || 0) * 60000;
|
||||
} else {
|
||||
time -= (parseInt(offset, 10) || 0) * 60000;
|
||||
}
|
||||
|
||||
} else {
|
||||
if (plusOrMinus) {
|
||||
time += (parseInt(offset, 10) || 0) * 1000;
|
||||
} else {
|
||||
time -= (parseInt(offset, 10) || 0) * 1000;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
time = time.getTime();
|
||||
if (isOffsetInMinutes) {
|
||||
if (plusOrMinus) {
|
||||
time += (parseInt(offset, 10) || 0) * 60000;
|
||||
} else {
|
||||
time -= (parseInt(offset, 10) || 0) * 60000;
|
||||
}
|
||||
|
||||
} else {
|
||||
if (plusOrMinus) {
|
||||
time += (parseInt(offset, 10) || 0) * 1000;
|
||||
} else {
|
||||
time -= (parseInt(offset, 10) || 0) * 1000;
|
||||
}
|
||||
}
|
||||
}
|
||||
return time;
|
||||
}
|
||||
|
||||
function getStartStop(index, step) {
|
||||
var option = {};
|
||||
var end;
|
||||
var start;
|
||||
var _now;
|
||||
config.l[index].offset = config.l[index].offset || 0;
|
||||
|
||||
var isMonthRange = (config.range.indexOf('m') === -1) ? false : true;
|
||||
// check config range
|
||||
if (isMonthRange && config.l.length > 1) {
|
||||
var monthRange = parseInt(config.range, 10) || 1;
|
||||
for (var a = 0; a < config.l.length; a++) {
|
||||
if (config.l[a].offset && config.l[a].offset !== 0) {
|
||||
// Check what the month has first index
|
||||
_now = addTime(now, config.l[0].offset);
|
||||
var minusMonth = new Date(_now);
|
||||
minusMonth.setMonth(minusMonth.getMonth() - monthRange);
|
||||
config.range = Math.floor((_now - minusMonth.getTime()) / 60000) + '';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (config.zoomed) {
|
||||
navOptions[index].end = config.l[index].zMax;
|
||||
navOptions[index].start = config.l[index].zMin;
|
||||
return navOptions[index];
|
||||
} else {
|
||||
if (!step) {
|
||||
if (config.timeType === 'static') {
|
||||
var startTime;
|
||||
var endTime;
|
||||
var y;
|
||||
var m;
|
||||
if (config.start_time !== undefined) {
|
||||
startTime = config.start_time.split(':').map(Number);
|
||||
} else {
|
||||
startTime = [0, 0];
|
||||
}
|
||||
|
||||
if (config.end_time !== undefined) {
|
||||
endTime = config.end_time.split(':').map(Number);
|
||||
} else {
|
||||
endTime = [24, 0];
|
||||
}
|
||||
|
||||
// offset is in seconds
|
||||
start = new Date(config.start).setHours(startTime[0], startTime[1]);
|
||||
end = new Date(config.end) .setHours(endTime[0], endTime[1]);
|
||||
start = addTime(start, config.l[index].offset);
|
||||
end = addTime(end, config.l[index].offset);
|
||||
} else {
|
||||
if (config.relativeEnd === 'now') {
|
||||
_now = new Date(now);
|
||||
} else if (config.relativeEnd.indexOf('minute') !== -1) {
|
||||
var minutes = parseInt(config.relativeEnd, 10) || 1;
|
||||
_now = new Date(now);
|
||||
_now.setMinutes(Math.floor(_now.getMinutes() / minutes) * minutes + minutes);
|
||||
_now.setSeconds(0);
|
||||
_now.setMilliseconds(0);
|
||||
} else if (config.relativeEnd.indexOf('hour') !== -1) {
|
||||
var hours = parseInt(config.relativeEnd, 10) || 1;
|
||||
_now = new Date(now);
|
||||
_now.setHours(Math.floor(_now.getHours() / hours) * hours + hours);
|
||||
_now.setMinutes(0);
|
||||
_now.setSeconds(0);
|
||||
_now.setMilliseconds(0);
|
||||
} else if (config.relativeEnd === 'today') {
|
||||
_now = new Date(now);
|
||||
_now.setDate(_now.getDate() + 1);
|
||||
_now.setHours(0);
|
||||
_now.setMinutes(0);
|
||||
_now.setSeconds(0);
|
||||
_now.setMilliseconds(0);
|
||||
} else if (config.relativeEnd === 'weekUsa') {
|
||||
//var week = parseInt(config.relativeEnd, 10) || 1;
|
||||
_now = new Date(now);
|
||||
_now.setDate(_now.getDate() - _now.getDay() + 7);
|
||||
_now.setHours(0);
|
||||
_now.setMinutes(0);
|
||||
_now.setSeconds(0);
|
||||
_now.setMilliseconds(0);
|
||||
} else if (config.relativeEnd === 'weekEurope') {
|
||||
//var _week = parseInt(config.relativeEnd, 10) || 1;
|
||||
_now = new Date(now);
|
||||
// If
|
||||
if (_now.getDay() === 0) {
|
||||
_now.setDate(_now.getDate() + 1);
|
||||
} else {
|
||||
_now.setDate(_now.getDate() - _now.getDay() + 8);
|
||||
}
|
||||
_now.setHours(0);
|
||||
_now.setMinutes(0);
|
||||
_now.setSeconds(0);
|
||||
_now.setMilliseconds(0);
|
||||
} else if (config.relativeEnd === 'month') {
|
||||
_now = new Date(now);
|
||||
_now.setMonth(_now.getMonth() + 1);
|
||||
_now.setDate(1);
|
||||
_now.setHours(0);
|
||||
_now.setMinutes(0);
|
||||
_now.setSeconds(0);
|
||||
_now.setMilliseconds(0);
|
||||
} else if (config.relativeEnd === 'year') {
|
||||
_now = new Date(now);
|
||||
_now.setFullYear(_now.getFullYear() + 1);
|
||||
_now.setMonth(0);
|
||||
_now.setDate(1);
|
||||
_now.setHours(0);
|
||||
_now.setMinutes(0);
|
||||
_now.setSeconds(0);
|
||||
_now.setMilliseconds(0);
|
||||
}
|
||||
|
||||
end = addTime(_now, config.l[index].offset);
|
||||
start = addTime(end, config.range, false, true);
|
||||
}
|
||||
|
||||
option = {
|
||||
start: start,
|
||||
end: end,
|
||||
ignoreNull: (config.l[index].ignoreNull === undefined) ? config.ignoreNull : config.l[index].ignoreNull,
|
||||
aggregate: config.l[index].aggregate || config.aggregate || 'minmax'
|
||||
};
|
||||
|
||||
if (config.aggregateType === 'step') {
|
||||
option.step = config.aggregateSpan * 1000;
|
||||
} else if (config.aggregateType === 'count') {
|
||||
option.count = config.aggregateSpan || (document.getElementById('chart_container').clientWidth / 10);
|
||||
}
|
||||
|
||||
navOptions[index] = option;
|
||||
return option;
|
||||
|
||||
} else {
|
||||
end = addTime(now, config.l[index].offset);
|
||||
start = end - step;
|
||||
|
||||
option = {
|
||||
start: start,
|
||||
end: end,
|
||||
ignoreNull: (config.l[index].ignoreNull === undefined) ? config.ignoreNull : config.l[index].ignoreNull,
|
||||
aggregate: config.l[index].aggregate || config.aggregate || 'minmax',
|
||||
count: 1
|
||||
};
|
||||
|
||||
navOptions[index].end = end;
|
||||
navOptions[index].start = addTime(end, config.range, false, true);
|
||||
return option;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function readOneChart(id, instance, index, callback) {
|
||||
|
||||
var option = getStartStop(index);
|
||||
option.instance = instance;
|
||||
option.sessionId = sessionId;
|
||||
config.l[index].yOffset = parseFloat(config.l[index].yOffset) || 0;
|
||||
|
||||
//console.log(JSON.stringify(option));
|
||||
console.log(new Date(option.start) + ' - ' + new Date(option.end));
|
||||
socket.emit('getHistory', id, option, function (err, res, stepIgnore, _sessionId) {
|
||||
if (err) console.error(err);
|
||||
|
||||
if (sessionId && _sessionId && _sessionId !== sessionId) {
|
||||
console.warn('Ignore request with sessionId=' + _sessionId + ', actual is ' + sessionId);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!err && res) {
|
||||
//option.ignoreNull = (config.l[index].ignoreNull === undefined) ? (config.ignoreNull === 'true' || config.ignoreNull === true) : (config.l[index].ignoreNull === 'true' || config.l[index].ignoreNull === true);
|
||||
option.yOffset = config.l[index].yOffset;
|
||||
|
||||
var _series = seriesData[index];
|
||||
|
||||
for (var i = 0; i < res.length; i++) {
|
||||
// if less 2000.01.01 00:00:00
|
||||
if (res[i].ts < 946681200000) res[i].ts = res[i].ts * 1000;
|
||||
|
||||
// Convert boolean values to numbers
|
||||
if (res[i].val === 'true' || res[i].val === true) {
|
||||
res[i].val = 1;
|
||||
} else if (res[i].val === 'false' || res[i].val === false) {
|
||||
res[i].val = 0;
|
||||
}
|
||||
if (typeof res[i].val === 'string') res[i].val = parseFloat(res[i].val);
|
||||
|
||||
_series.push([res[i].ts, res[i].val !== null ? res[i].val + option.yOffset : null]);
|
||||
}
|
||||
// add start and end
|
||||
if (_series.length) {
|
||||
if (_series[0][0] > option.start) _series.unshift([option.start, null]);
|
||||
if (_series[_series.length - 1][0] < option.end) _series.push([option.end, null]);
|
||||
} else {
|
||||
_series.push([option.start, null]);
|
||||
_series.push([option.end, null]);
|
||||
}
|
||||
// free memory
|
||||
res = null;
|
||||
}
|
||||
|
||||
if (callback) callback(id, index);
|
||||
});
|
||||
}
|
||||
|
||||
function readValue(id, index, callback) {
|
||||
socket.emit('getState', id, function (err, state) {
|
||||
if (state) {
|
||||
callback(index, parseFloat(state.val) || 0);
|
||||
} else {
|
||||
callback(index, 0);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function prepareChart() {
|
||||
chart = new CustomChart({
|
||||
chartId: divId,
|
||||
titleId: 'title',
|
||||
tooltipId: 'tooltip',
|
||||
cbOnZoom: onZoom
|
||||
}, config, seriesData, config.m, ticks);
|
||||
|
||||
if (config.zoom) {
|
||||
$('#resetZoom').unbind('click').click(function () {
|
||||
seriesData = [];
|
||||
$('#resetZoom').hide();
|
||||
config.zoomed = false;
|
||||
now = new Date();
|
||||
readData(true);
|
||||
});
|
||||
|
||||
// handlers for zoom and pan
|
||||
$('#' + divId)
|
||||
// flot can pan and zoom with mouse itself
|
||||
/*.unbind('mousedown')
|
||||
.mousedown(function (e) {
|
||||
mouseDown = true;
|
||||
lastX = e.pageX;
|
||||
})
|
||||
.unbind('mouseup').mouseup(function () {
|
||||
mouseDown = false;
|
||||
if (zoomTimeout) clearTimeout(zoomTimeout);
|
||||
zoomTimeout = setTimeout(onZoom, 500);
|
||||
})
|
||||
.unbind('mousemove')
|
||||
.mousemove(function(e) {
|
||||
if (mouseDown) {
|
||||
chart.pan(e.pageX - lastX);
|
||||
}
|
||||
lastX = e.pageX;
|
||||
})
|
||||
.unbind('mousewheel DOMMouseScroll')
|
||||
.bind('mousewheel DOMMouseScroll', function(event) {
|
||||
var amount = (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) ? 0.9 : 1.1;
|
||||
chart.zoom(event.originalEvent.pageX, amount);
|
||||
if (zoomTimeout) clearTimeout(zoomTimeout);
|
||||
zoomTimeout = setTimeout(onZoom, 500);
|
||||
})*/
|
||||
.unbind('touchstart')
|
||||
.on('touchstart', function (e) {
|
||||
e.preventDefault();
|
||||
mouseDown = true;
|
||||
var touches = e.touches || e.originalEvent.touches;
|
||||
if (touches) {
|
||||
lastX = touches[touches.length - 1].pageX;
|
||||
if (touches.length > 1) {
|
||||
lastWidth = Math.abs(touches[0].pageX - touches[1].pageX);
|
||||
} else {
|
||||
lastWidth = null;
|
||||
}
|
||||
}
|
||||
})
|
||||
.unbind('touchend')
|
||||
.on('touchend', function(e) {
|
||||
e.preventDefault();
|
||||
mouseDown = false;
|
||||
if (zoomTimeout) clearTimeout(zoomTimeout);
|
||||
zoomTimeout = setTimeout(onZoom, 500);
|
||||
})
|
||||
.unbind('touchmove')
|
||||
.on('touchmove', function (e) {
|
||||
e.preventDefault();
|
||||
var touches = e.touches || e.originalEvent.touches;
|
||||
if (!touches) return;
|
||||
if (mouseDown) {
|
||||
var pageX = touches[touches.length - 1].pageX;
|
||||
if (touches.length > 1) {
|
||||
// zoom
|
||||
var width = Math.abs(touches[0].pageX - touches[1].pageX);
|
||||
|
||||
if (lastWidth !== null && width !== lastWidth) {
|
||||
var amount = (width > lastWidth) ? 1.1 : 0.9;
|
||||
var positionX = (touches[0].pageX > touches[1].pageX) ? (touches[1].pageX + width / 2) : (touches[0].pageX + width / 2);
|
||||
|
||||
chart.zoom(positionX, amount);
|
||||
|
||||
if (zoomTimeout) clearTimeout(zoomTimeout);
|
||||
zoomTimeout = setTimeout(onZoom, 500);
|
||||
}
|
||||
lastWidth = width;
|
||||
} else {
|
||||
// swipe
|
||||
chart.pan(lastX - pageX);
|
||||
}
|
||||
}
|
||||
lastX = pageX;
|
||||
});
|
||||
}
|
||||
|
||||
if (config.live && config.timeType === 'relative') {
|
||||
if (config.live === true || config.live === 'true') config.live = 30;
|
||||
config.live = parseInt(config.live, 10) || 30;
|
||||
startLiveUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
function _readOneLine(index, cb) {
|
||||
socket.emit('getObject', config.l[index].id, function (err, res) {
|
||||
if (!err && res && res.common) {
|
||||
config.l[index].name = config.l[index].name || res.common.name;
|
||||
config.l[index].unit = config.l[index].unit || (res.common.unit ? res.common.unit.replace('�', '°') : '');
|
||||
config.l[index].type = res.common.type;
|
||||
} else {
|
||||
config.l[index].name = config.l[index].name || config.l[index].id;
|
||||
config.l[index].unit = config.l[index].unit || '';
|
||||
}
|
||||
if (typeof config.l[index].name === 'object') {
|
||||
config.l[index].name = config.l[index].name[systemLang] || config.l[index].name.en;
|
||||
}
|
||||
readOneChart(config.l[index].id, config.l[index].instance, index, cb);
|
||||
});
|
||||
}
|
||||
|
||||
function readTicks(callback) {
|
||||
if (!config.ticks) {
|
||||
callback && callback(null);
|
||||
} else {
|
||||
socket.emit('getObject', config.ticks, function (err, res) {
|
||||
var index = 0;
|
||||
var option = JSON.parse(JSON.stringify(getStartStop(index)));
|
||||
option.instance = config.l[index].instance;
|
||||
option.sessionId = sessionId;
|
||||
option.aggregate = 'onchange';
|
||||
|
||||
//console.log(JSON.stringify(option));
|
||||
console.log('Ticks: ' + new Date(option.start) + ' - ' + new Date(option.end));
|
||||
socket.emit('getHistory', config.ticks, option, function (err, res, stepIgnore, _sessionId) {
|
||||
if (err) console.error(err);
|
||||
|
||||
if (sessionId && _sessionId && _sessionId !== sessionId) {
|
||||
console.warn('Ignore request with sessionId=' + _sessionId + ', actual is ' + sessionId);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!err && res) {
|
||||
var _series = ticks || [];
|
||||
if (ticks && ticks.length) ticks.splice(0, ticks.length);
|
||||
|
||||
for (var i = 0; i < res.length; i++) {
|
||||
// if less 2000.01.01 00:00:00
|
||||
if (res[i].ts < 946681200000) res[i].ts = res[i].ts * 1000;
|
||||
|
||||
if (!res[i].val !== null) _series.push([res[i].ts, res[i].val]);
|
||||
}
|
||||
// add start and end
|
||||
if (_series.length) {
|
||||
if (_series[0][0] > option.start) _series.unshift([option.start, '']);
|
||||
if (_series[_series.length - 1][0] < option.end) _series.push([option.end, '']);
|
||||
} else {
|
||||
_series.push([option.start, '']);
|
||||
_series.push([option.end, '']);
|
||||
}
|
||||
// free memory
|
||||
res = null;
|
||||
ticks = _series;
|
||||
}
|
||||
if (callback) callback(_series);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function readMarkings(cb, m) {
|
||||
m = m || 0;
|
||||
if (!config.m || !config.m.length || m >= config.m.length) {
|
||||
return cb && cb();
|
||||
} else {
|
||||
if (!config.m[m].oid && config.m[m].v && parseFloat(config.m[m].v) != config.m[m].v && config.m[m].v.indexOf('.') !== -1) {
|
||||
if (subscribes.indexOf(config.m[m].v) === -1) subscribes.push(config.m[m].v);
|
||||
|
||||
readValue(config.m[m].v, m, function (index, val) {
|
||||
config.m[index].oid = config.m[index].v;
|
||||
config.m[index].v = val;
|
||||
|
||||
if (!config.m[m].oidl && config.m[m].vl && parseFloat(config.m[m].vl) != config.m[m].vl && config.m[m].vl.indexOf('.') !== -1) {
|
||||
if (subscribes.indexOf(config.m[m].vl) === -1) subscribes.push(config.m[m].vl);
|
||||
readValue(config.m[m].vl, m, function (index, val) {
|
||||
config.m[index].oidl = config.m[index].vl;
|
||||
config.m[index].vl = val;
|
||||
setTimeout(readMarkings, 0, cb, m + 1);
|
||||
});
|
||||
} else {
|
||||
setTimeout(readMarkings, 0, cb, m + 1);
|
||||
}
|
||||
});
|
||||
} else
|
||||
if (!config.m[m].oidl && config.m[m].vl && parseFloat(config.m[m].vl) != config.m[m].vl && config.m[m].vl.indexOf('.') !== -1) {
|
||||
if (subscribes.indexOf(config.m[m].vl) === -1) subscribes.push(config.m[m].vl);
|
||||
readValue(config.m[m].vl, m, function (index, val) {
|
||||
config.m[index].oidl = config.m[index].vl;
|
||||
config.m[index].vl = val;
|
||||
setTimeout(readMarkings, 0, cb, m + 1);
|
||||
});
|
||||
} else {
|
||||
setTimeout(readMarkings, 0, cb, m + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function _readData(callback, j) {
|
||||
j = j || 0;
|
||||
if (j >= config.l.length) {
|
||||
return callback && callback();
|
||||
} else {
|
||||
if (config.l[j] !== '' && config.l[j] !== undefined) seriesData.push([]);
|
||||
_readOneLine(j, function () {
|
||||
setTimeout(function () {
|
||||
_readData(callback, j + 1);
|
||||
}, 10);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function subscribeAll(subscribes, cb, s) {
|
||||
s = s || 0;
|
||||
if (!subscribes || !subscribes.length || s >= subscribes.length) {
|
||||
cb && cb();
|
||||
} else {
|
||||
socket.emit('subscribe', subscribes[s], function () {
|
||||
setTimeout(function () {
|
||||
subscribeAll(subscribes, cb, s + 1);
|
||||
}, 0);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function readData(hidden) {
|
||||
if (disconnectTimeout) {
|
||||
$('#no-connection').hide();
|
||||
clearTimeout(disconnectTimeout);
|
||||
disconnectTimeout = null;
|
||||
}
|
||||
sessionId++;
|
||||
|
||||
if (config.l) {
|
||||
if (!hidden) $('#server-disconnect').show();
|
||||
|
||||
// todo
|
||||
// if (config.renderer === 'pie' || (config.renderer === 'bar' && config._ids.length > 1)) {
|
||||
//
|
||||
// seriesData = [[]];
|
||||
// for (var j = 0; j < config._ids.length; j++) {
|
||||
// readOneValue(config._ids[j], j, function (_id, _index, value) {
|
||||
// if (config.renderer === 'pie') {
|
||||
// seriesData[0][_index] = {label: config.l[_index].name, data: value};
|
||||
// } else {
|
||||
// seriesData[0][_index] = [config.l[_index].name, value];
|
||||
// }
|
||||
// if (_index === config._ids.length - 1) {
|
||||
// graphCreate(divId, );
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// } else {
|
||||
_readData(function () {
|
||||
readTicks(function (_ticks) {
|
||||
readMarkings(function () {
|
||||
if (!subscribed) {
|
||||
subscribed = true;
|
||||
subscribeAll();
|
||||
}
|
||||
|
||||
$('#server-disconnect').hide();
|
||||
prepareChart();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (!config.noedit) {
|
||||
// install edit button
|
||||
$('#edit')
|
||||
.show()
|
||||
.click(function () {
|
||||
var win = window.open(location.href.replace('index.html', 'edit.html'), 'flot');
|
||||
win.focus();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function startLiveUpdate() {
|
||||
liveInterval = setInterval(function () {
|
||||
if (config.zoomed) {
|
||||
var max = 0;
|
||||
var min = null;
|
||||
|
||||
// Find min and max of all lines
|
||||
for (var index = 0; index < config.l.length; index++) {
|
||||
if (max < config.l[index].zMax) max = config.l[index].zMax;
|
||||
if (min === null || min > config.l[index].zMin) min = config.l[index].zMin;
|
||||
}
|
||||
|
||||
// if 20%
|
||||
if ((max + ((max - min) / 20)) >= new Date().getTime()) {
|
||||
max = new Date().getTime() - now.getTime();
|
||||
var result = [];
|
||||
for (var _index = 0; _index < config.l.length; _index++) {
|
||||
config.l[_index].zMax += max;
|
||||
config.l[_index].zMin += max;
|
||||
result.push({min: config.l[_index].zMin, max: config.l[_index].zMax});
|
||||
}
|
||||
chart.setRange(result);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
console.log('on time');
|
||||
updateLive();
|
||||
}, config.live * 1000);
|
||||
}
|
||||
|
||||
function updateLive() {
|
||||
var ready = 0;
|
||||
now = new Date();
|
||||
$('.loader').show();
|
||||
sessionId++;
|
||||
|
||||
if (config.zoom) chart.resetZoom(now);
|
||||
|
||||
for (var index = 0; index < config.l.length; index++) {
|
||||
ready++;
|
||||
seriesData[index] = [];
|
||||
readOneChart(config.l[index].id, config.l[index].instance, index, function () {
|
||||
if (!--ready) {
|
||||
readTicks(function (_ticks) {
|
||||
chart.update(seriesData, null, _ticks);
|
||||
$('.loader').hide();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function avg(data, range) {
|
||||
var r = [];
|
||||
var rd;
|
||||
var i1;
|
||||
var s;
|
||||
var cnt;
|
||||
for(var i = 0; i < data.length; i++) {
|
||||
if (i < range) {
|
||||
i1 = 0;
|
||||
} else {
|
||||
i1 = i - range + 1;
|
||||
}
|
||||
rd = [data[i][0], null];
|
||||
if (data[i][1] !== null) {
|
||||
s = 0;
|
||||
cnt = 0;
|
||||
for(var j = i1; j <= i; j++) {
|
||||
if (data[j][1] === null) continue;
|
||||
s += data[j][1];
|
||||
cnt++;
|
||||
}
|
||||
rd[1] = s / cnt;
|
||||
}
|
||||
r.push(rd);
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
function onZoom() {
|
||||
if (!config.zoomed) {
|
||||
$('#resetZoom').show();
|
||||
config.zoomed = true;
|
||||
}
|
||||
|
||||
var result = chart.getRange();
|
||||
|
||||
for (var r = 0; r < result.length; r++) {
|
||||
config.l[r].zMin = result[r].min;
|
||||
config.l[r].zMax = result[r].max;
|
||||
}
|
||||
|
||||
console.log('on zoom');
|
||||
updateLive();
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
var months = {
|
||||
'en': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||
'de': ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
|
||||
'ru': ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
|
||||
'es': ['Jan', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
|
||||
'fr': ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||
'it': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||
'pl': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||
'pt': ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Set', 'Out', 'Nov', 'Dez'],
|
||||
'nl': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
|
||||
};
|
||||
var days = {
|
||||
'en': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||
'de': ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
|
||||
'ru': ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'],
|
||||
'es': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||
'fr': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||
'it': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||
'pl': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||
'pt': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||
'nl': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
|
||||
};
|
||||
@@ -0,0 +1,84 @@
|
||||
var settings = {
|
||||
maxLines: 20, // maximal number of the lines
|
||||
button_arrange_bools: {enabled: true}, // if button arrange bool is visible
|
||||
line: {
|
||||
number: {enabled: true, name: ''},
|
||||
instance: {enabled: true, name: 'Instance'},
|
||||
id: {enabled: true, name: 'ID', width: '200px', style: 'padding-left: 4px', _class: 'ids', inputStyle: ''},
|
||||
idSelect: {enabled: true, name: '', style: 'padding-left: 4px'},
|
||||
aggregate: {enabled: true, name: 'Aggregation', width: '70px', style: 'padding-left: 5px', values: ['minmax', 'average', 'min', 'max', 'total', 'onchange']},
|
||||
chartType: {enabled: true, name: 'Chart Type', width: '90px', values: ['line', 'bar', 'scatterplot', 'steps', /*'pie',*/ 'spline']},
|
||||
fill: {enabled: true, name: 'Fill(0to1)', width: '70px', style: 'width: 70px; text-align: right'},
|
||||
points: {enabled: true, name: 'Points', width: '50px', type: 'checkbox'},
|
||||
color: {enabled: true, name: 'Color', width: '120px', style: 'padding-left: 5px', _class: 'input-color'},
|
||||
min: {enabled: true, name: 'Min', width: '50px', style: 'padding-left: 5px'},
|
||||
max: {enabled: true, name: 'Max', width: '50px', style: 'padding-left: 5px'},
|
||||
unit: {enabled: true, name: 'Unit', width: '70px', style: 'padding-left: 5px'},
|
||||
yaxe: {enabled: true, name: 'Y Axis', width: '140px', style: 'padding-left: 5px', values: ['', 'off', 'left', 'right', 'leftColor', 'rightColor'], defaultValueName: 'default'},
|
||||
xaxe: {enabled: true, name: 'X Axis', width: '140px', style: 'padding-left: 5px', values: ['', 'off', 'top', 'bottom', 'topColor', 'bottomColor'], defaultValueName: 'default'},
|
||||
name: {enabled: true, name: 'Name', width: '200px', style: 'padding-left: 5px'},
|
||||
extraOptions: {enabled: true, name: 'More', width: '90px', style: 'text-align: center'},
|
||||
removeButton: {enabled: true, name: '', width: '', style: 'padding-left: 5px'}
|
||||
},
|
||||
extraOptions: {
|
||||
offset: {enabled: true, name: 'Offset', width: '130px', style: '', type: 'number'}, // support of time offset
|
||||
yOffset: {enabled: true, name: 'Y-Offset', width: '70px', style: '', type: 'number'}, // support of Y offset
|
||||
xticks: {enabled: true, name: 'X-Axis ticks', width: '70px', style: '', type: 'number'},
|
||||
yticks: {enabled: true, name: 'Y-Axis ticks', width: '70px', style: '', type: 'number'},
|
||||
thickness: {enabled: true, name: 'ØL', width: '70px', style: '', type: 'number', title: 'Line Width', default: 1},
|
||||
shadowsize: {enabled: true, name: 'ØS', width: '70px', style: '', type: 'number', title: 'Shadow Size', default: 0},
|
||||
commonYAxis: {enabled: true, name: 'Common Y Axis', width: '', style: '', values: ['', '1', '2', '3', '4', '5'], default: '', names: ['default']},
|
||||
ignoreNull: {enabled: true, name: 'NULL as', width: '', style: '', values: ['false', 'true', '0'], default: 'false', names: ['default', 'ignore null values', 'use 0 instead of null values']},
|
||||
smoothing: {enabled: false, name: 'Smoothing', width: '70px', style: '', type: 'number'},
|
||||
afterComma: {enabled: true, name: 'After comma', width: '70px', style: '', type: 'number', default: 2},
|
||||
dashes: {enabled: true, name: 'Dashes', width: '', style: '', type: 'checkbox', default: false},
|
||||
dashLength: {enabled: true, name: 'Dashes length', width: '70px', style: '', type: 'number', default: 10},
|
||||
spaceLength: {enabled: true, name: 'Space length', width: '70px', style: '', type: 'number', default: 10}
|
||||
},
|
||||
chapter_time: {enabled: true},
|
||||
time_timeType: {enabled: true},
|
||||
time_relativeEnd: {enabled: true},
|
||||
time_range: {enabled: true},
|
||||
time_live: {enabled: true},
|
||||
time_start: {enabled: true},
|
||||
time_end: {enabled: true},
|
||||
time_aggregateType: {enabled: true},
|
||||
time_aggregateSpan: {enabled: true},
|
||||
time_ticks: {enabled: true},
|
||||
|
||||
chapter_options: {enabled: true},
|
||||
options_width: {enabled: true},
|
||||
options_height: {enabled: true},
|
||||
options_noborder: {enabled: true},
|
||||
options_window_bg: {enabled: true},
|
||||
options_bg_custom: {enabled: true},
|
||||
options_bg: {enabled: true},
|
||||
options_x_labels_color: {enabled: true},
|
||||
options_y_labels_color: {enabled: true},
|
||||
options_title: {enabled: true},
|
||||
options_titlePos: {enabled: true},
|
||||
options_titleColor: {enabled: true},
|
||||
options_titleSize: {enabled: true},
|
||||
options_legend: {enabled: true},
|
||||
options_legColumns: {enabled: true},
|
||||
options_legBg: {enabled: true},
|
||||
options_legBgOpacity: {enabled: true},
|
||||
|
||||
options_barColor: {enabled: true},
|
||||
options_barLabels: {enabled: true},
|
||||
options_barWidth: {enabled: true},
|
||||
options_barFontSize:{enabled: true},
|
||||
options_barFontColor:{enabled: true},
|
||||
|
||||
options_smoothing: {enabled: false},
|
||||
options_afterComma: {enabled: false},
|
||||
options_useComma: {enabled: true},
|
||||
options_zoom: {enabled: true},
|
||||
options_noedit: {enabled: true},
|
||||
options_animation: {enabled: true},
|
||||
options_border_color: {enabled: true},
|
||||
options_grid_color: {enabled: true},
|
||||
options_border_width: {enabled: true},
|
||||
|
||||
option_markline: {enabled: true} // it is extra option and not options
|
||||
};
|
||||
@@ -0,0 +1,328 @@
|
||||
// DO NOT EDIT THIS FILE!!! IT WILL BE AUTOMATICALLY GENERATED FROM src/i18n
|
||||
/*global systemDictionary:true */
|
||||
'use strict';
|
||||
|
||||
systemDictionary = {
|
||||
"0": { "en": "0", "de": "0", "ru": "0", "pt": "0", "nl": "0", "fr": "0", "it": "0", "es": "0", "pl": "0"},
|
||||
"1": { "en": "1", "de": "1", "ru": "1", "pt": "1", "nl": "1", "fr": "1", "it": "1", "es": "1", "pl": "1"},
|
||||
"2": { "en": "2", "de": "2", "ru": "2", "pt": "2", "nl": "2", "fr": "2", "it": "2", "es": "2", "pl": "2"},
|
||||
"3": { "en": "3", "de": "3", "ru": "3", "pt": "3", "nl": "3", "fr": "3", "it": "3", "es": "3", "pl": "3"},
|
||||
"4": { "en": "4", "de": "4", "ru": "4", "pt": "4", "nl": "4", "fr": "4", "it": "4", "es": "4", "pl": "4"},
|
||||
"5": { "en": "5", "de": "5", "ru": "5", "pt": "5", "nl": "5", "fr": "5", "it": "5", "es": "5", "pl": "5"},
|
||||
"Ok": { "en": "Ok", "de": "Ok", "ru": "Ok", "pt": "Está bem", "nl": "OK", "fr": "D'accord", "it": "Ok", "es": "De acuerdo", "pl": "Ok"},
|
||||
"role": { "en": "role", "de": "Rolle", "ru": "Роль", "pt": "Função", "nl": "rol", "fr": "rôle", "it": "ruolo", "es": "papel", "pl": "rola"},
|
||||
"Update objects": { "en": "Update objects", "de": "Objekte aktualisieren", "ru": "Обновить объекты", "pt": "Atualizar objetos", "nl": "Objecten bijwerken", "fr": "Mettre à jour", "it": "Aggiorna oggetti", "es": "Actualizar objetos", "pl": "Zaktualizuj obiekty"},
|
||||
"All": { "en": "All", "de": "Alle", "ru": "все", "pt": "Todos", "nl": "Alle", "fr": "Tout", "it": "Tutti", "es": "Todas", "pl": "Wszystko"},
|
||||
"With": { "en": "With", "de": "mit", "ru": "с", "pt": "Com", "nl": "Met", "fr": "Avec", "it": "Con", "es": "Con", "pl": "Z"},
|
||||
"Without": { "en": "Without", "de": "ohne", "ru": "без", "pt": "Sem", "nl": "Zonder", "fr": "Sans pour autant", "it": "Senza", "es": "Sin", "pl": "Bez"},
|
||||
"Update states": { "en": "Update states", "de": "States aktualisieren", "ru": "Обновить состояния", "pt": "Estado de atualização", "nl": "Status bijwerken", "fr": "Mettre à jour", "it": "Stati di aggiornamento", "es": "Actualizar estados", "pl": "Zaktualizuj stany"},
|
||||
"edit file": { "en": "edit file", "de": "Datei editieren", "ru": "Редактировать", "pt": "editar arquivo", "nl": "bestand bewerken", "fr": "modifier le fichier", "it": "modifica file", "es": "editar archivo", "pl": "edytuj plik"},
|
||||
"restart script": { "en": "restart script", "de": "Skript neu starten", "ru": "Перезапустить скрипт", "pt": "reiniciar o script", "nl": "herstart script", "fr": "redémarrer le script", "it": "riavviare lo script", "es": "script de reinicio", "pl": "zrestartuj skrypt"},
|
||||
"Select": { "en": "Select", "de": "Auswählen", "ru": "Выбрать", "pt": "Selecione", "nl": "kiezen", "fr": "Sélectionner", "it": "Selezionare", "es": "Seleccionar", "pl": "Wybierz"},
|
||||
"Select ID": { "en": "Select ID", "de": "ID Auswählen", "ru": "Выбрать ID", "pt": "Selecione ID", "nl": "Selecteer ID", "fr": "Sélectionner un identifiant", "it": "Seleziona ID", "es": "Seleccionar ID", "pl": "Wybierz ID"},
|
||||
"add children": { "en": "add children", "de": "Sub-enums einfügen", "ru": "Добавить под-категории", "pt": "adicionar filhos", "nl": "voeg kinderen toe", "fr": "ajouter des enfants", "it": "aggiungi bambini", "es": "agregar niños", "pl": "dodaj dzieci"},
|
||||
"edit enum": { "en": "edit enum", "de": "Enum ändern", "ru": "Изменить категорию", "pt": "editar enum", "nl": "edit enum", "fr": "éditer enum", "it": "modifica enum", "es": "editar enum", "pl": "edytuj wyliczenie"},
|
||||
"System settings": { "en": "System settings", "de": "Systemeinstellungen", "ru": "Системные настройки", "pt": "Configurações de sistema", "nl": "Systeem instellingen", "fr": "Les paramètres du système", "it": "Impostazioni di sistema", "es": "Ajustes del sistema", "pl": "Ustawienia systemowe"},
|
||||
"reload": { "en": "reload", "de": "Neu laden", "ru": "Перезагрузить", "pt": "recarregar", "nl": "herladen", "fr": "recharger", "it": "ricaricare", "es": "recargar", "pl": "przeładować"},
|
||||
"Delete object": { "en": "Delete object", "de": "Object löschen", "ru": "Удалить объект", "pt": "Eliminar objeto", "nl": "Object verwijderen", "fr": "Supprimer un objet", "it": "Elimina oggetto", "es": "Eliminar objeto", "pl": "Usuń obiekt"},
|
||||
"no null": { "en": " no null", "de": " kein NULL", "ru": " без null", "pt": "& nbsp; nulo", "nl": "& nbsp; geen null", "fr": "& nbsp; non nul", "it": "& nbsp; non null", "es": "& nbsp; no null", "pl": "& nbsp; no null"},
|
||||
"%s ago": { "en": "%s ago", "de": "vor %s", "ru": "%s назад", "pt": "% s atrás", "nl": "% s geleden", "fr": "il y a% s", "it": "% s fa", "es": "hace% s", "pl": "% s temu"},
|
||||
"Y-Offset": { "en": "Y-Offset", "de": "Y-Offset", "ru": "Сдвиг по Y", "pt": "Y-Offset", "nl": "Y-offset", "fr": "Y-Offset", "it": "Y-Offset", "es": "Y-Offset", "pl": "Przesunięcie Y"},
|
||||
"ID": { "en": "ID", "de": "ID", "ru": "ID", "pt": "identidade", "nl": "ID kaart", "fr": "ID", "it": "ID", "es": "CARNÉ DE IDENTIDAD", "pl": "ID"},
|
||||
"Role": { "en": "Role", "de": "Rolle", "ru": "Роль", "pt": "Função", "nl": "Rol", "fr": "Rôle", "it": "Ruolo", "es": "Papel", "pl": "Rola"},
|
||||
"Room": { "en": "Room", "de": "Raum", "ru": "Комната", "pt": "Quarto", "nl": "Kamer", "fr": "Chambre", "it": "Camera", "es": "Habitación", "pl": "Pokój"},
|
||||
"Value": { "en": "Value", "de": "Wert", "ru": "Значение", "pt": "Valor", "nl": "Waarde", "fr": "Valeur", "it": "Valore", "es": "Valor", "pl": "Wartość"},
|
||||
"none": { "en": "none", "de": "nichts", "ru": "ничего", "pt": "Nenhum", "nl": "geen", "fr": "aucun", "it": "nessuna", "es": "ninguna", "pl": "Żaden"},
|
||||
"Save into:": { "en": "Save into:", "de": "Save into:", "ru": "Сохранить как:", "pt": "Salvar em:", "nl": "Bewaar in:", "fr": "Enregistrer dans:", "it": "Salva in:", "es": "Guardar en:", "pl": "Zapisz w:"},
|
||||
"Name:": { "en": "Name:", "de": "Name:", "ru": "Имя:", "pt": "Nome:", "nl": "Naam:", "fr": "Prénom:", "it": "Nome:", "es": "Nombre:", "pl": "Nazwa:"},
|
||||
"save": { "en": "save", "de": "Speichern", "ru": "сохранить", "pt": "Salve ", "nl": "opslaan", "fr": "enregistrer", "it": "salvare", "es": "salvar", "pl": "zapisać"},
|
||||
"load": { "en": "load", "de": "laden", "ru": "загрузить", "pt": "carga", "nl": "laden", "fr": "charge", "it": "caricare", "es": "carga", "pl": "obciążenie"},
|
||||
"Presets": { "en": "Presets", "de": "Voreinstellung", "ru": "Пресеты", "pt": "Presets", "nl": "presets", "fr": "Presets", "it": "Presets", "es": "Presets", "pl": "Presets"},
|
||||
"IDs": { "en": "IDs", "de": "IDs", "ru": "Объекты", "pt": "IDs", "nl": "IDs", "fr": "ID", "it": "ID", "es": "IDs", "pl": "ID"},
|
||||
"new": { "en": "new", "de": "unter neuen Namen", "ru": "новое", "pt": "Novo", "nl": "nieuwe", "fr": "Nouveau", "it": "nuovo", "es": "nuevo", "pl": "Nowy"},
|
||||
"Enter chart name": { "en": "Enter chart name", "de": "Chartname eintragen", "ru": "Введите имя графика", "pt": "Digite o nome do gráfico", "nl": "Voer de diagramnaam in", "fr": "Entrez le nom du diagramme", "it": "Inserisci il nome del grafico", "es": "Ingrese el nombre del gráfico", "pl": "Wprowadź nazwę wykresu"},
|
||||
"save %s": { "en": "save %s", "de": "Speichern %s", "ru": "сохранить %s", "pt": "salvar% s", "nl": "bespaar% s", "fr": "enregistrer% s", "it": "salva% s", "es": "ahorra", "pl": "zapisz% s"},
|
||||
"Input data": { "en": "Input data", "de": "Eingangsdaten", "ru": "Входные данные", "pt": "Dados de entrada", "nl": "Invoergegevens", "fr": "Des données d'entrée", "it": "Dati in ingresso", "es": "Datos de entrada", "pl": "Dane wejściowe"},
|
||||
"Options": { "en": "Options", "de": "Optionen", "ru": "Опции", "pt": "Opções", "nl": "opties", "fr": "Options", "it": "Opzioni", "es": "Opciones", "pl": "Opcje"},
|
||||
"Range:": { "en": "Range:", "de": "Umfang:", "ru": "Интервал:", "pt": "Alcance:", "nl": "bereik:", "fr": "Gamme:", "it": "Gamma:", "es": "Distancia:", "pl": "Zasięg:"},
|
||||
"5 seconds": { "en": "5 seconds", "de": "5 Sekunden", "ru": "5 секунд", "pt": "5 segundos", "nl": "5 seconden", "fr": "5 secondes", "it": "5 secondi", "es": "5 segundos", "pl": "5 sekund"},
|
||||
"10 seconds": { "en": "10 seconds", "de": "10 Sekunden", "ru": "10 секунд", "pt": "10 segundos", "nl": "10 seconden", "fr": "10 secondes", "it": "10 secondi", "es": "10 segundos", "pl": "10 sekund"},
|
||||
"15 seconds": { "en": "15 seconds", "de": "15 Sekunden", "ru": "15 секунд", "pt": "15 segundos", "nl": "15 seconden", "fr": "15 secondes", "it": "15 secondi", "es": "15 segundos", "pl": "15 sekund"},
|
||||
"20 seconds": { "en": "20 seconds", "de": "20 Sekunden", "ru": "20 секунд", "pt": "20 segundos", "nl": "20 seconden", "fr": "20 secondes", "it": "20 secondi", "es": "20 segundos", "pl": "20 sekund"},
|
||||
"30 seconds": { "en": "30 seconds", "de": "30 Sekunden", "ru": "30 секунд", "pt": "30 segundos", "nl": "30 seconden", "fr": "30 secondes", "it": "30 secondi", "es": "30 segundos", "pl": "30 sekund"},
|
||||
"1 minute": { "en": "1 minute", "de": "1 Minute", "ru": "1 минуту", "pt": "1 minuto", "nl": "1 minuut", "fr": "1 minute", "it": "1 minuto", "es": "1 minuto", "pl": "1 minuta"},
|
||||
"2 minutes": { "en": "2 minutes", "de": "2 Minuten", "ru": "2 минуты", "pt": "2 minutos", "nl": "2 minuten", "fr": "2 minutes", "it": "2 minuti", "es": "2 minutos", "pl": "2 minuty"},
|
||||
"5 minutes": { "en": "5 minutes", "de": "5 Minuten", "ru": "5 минут", "pt": "5 minutos", "nl": "5 minuten", "fr": "5 minutes", "it": "5 minuti", "es": "5 minutos", "pl": "5 minut"},
|
||||
"10 minutes": { "en": "10 minutes", "de": "10 Minuten", "ru": "10 минут", "pt": "10 minutos", "nl": "10 minuten", "fr": "10 minutes", "it": "10 minuti", "es": "10 minutos", "pl": "10 minut"},
|
||||
"15 minutes": { "en": "15 minutes", "de": "15 Minuten", "ru": "15 минут", "pt": "15 minutos", "nl": "15 minuten", "fr": "15 minutes", "it": "15 minuti", "es": "15 minutos", "pl": "15 minut"},
|
||||
"20 minutes": { "en": "20 minutes", "de": "20 Minuten", "ru": "20 минут", "pt": "20 minutos", "nl": "20 minuten", "fr": "20 minutes", "it": "20 minuti", "es": "20 minutos", "pl": "20 minut"},
|
||||
"30 minutes": { "en": "30 minutes", "de": "30 Minuten", "ru": "30 минут", "pt": "30 minutos", "nl": "30 minuten", "fr": "30 minutes", "it": "30 minuti", "es": "30 minutos", "pl": "30 minut"},
|
||||
"1 hour": { "en": "1 hour", "de": "1 Stunde", "ru": "1 час", "pt": "1 hora", "nl": "1 uur", "fr": "1 heure", "it": "1 ora", "es": "1 hora", "pl": "1 godzina"},
|
||||
"2 hours": { "en": "2 hours", "de": "2 Stunden", "ru": "2 часа", "pt": "2 horas", "nl": "twee uur", "fr": "2 heures", "it": "2 ore", "es": "2 horas", "pl": "2 godziny"},
|
||||
"3 hours": { "en": "3 hours", "de": "3 Stunden", "ru": "3 часа", "pt": "3 horas", "nl": "3 uur", "fr": "3 heures", "it": "3 ore", "es": "3 horas", "pl": "3 godziny"},
|
||||
"6 hours": { "en": "6 hours", "de": "6 Stunden", "ru": "6 часов", "pt": "6 horas", "nl": "6 uur", "fr": "6 heures", "it": "6 ore", "es": "6 horas", "pl": "6 godzin"},
|
||||
"12 hours": { "en": "12 hours", "de": "12 Stunden", "ru": "12 часов", "pt": "12 horas", "nl": "12 uren", "fr": "12 heures", "it": "12 ore", "es": "12 horas", "pl": "12 godzin"},
|
||||
"1 day": { "en": "1 day", "de": "1 Tag", "ru": "1 день", "pt": "1 dia", "nl": "1 dag", "fr": "Un jour", "it": "1 giorno", "es": "1 día", "pl": "1 dzień"},
|
||||
"2 days": { "en": "2 days", "de": "2 Tage", "ru": "2 дня", "pt": "2 dias", "nl": "2 dagen", "fr": "2 jours", "it": "2 giorni", "es": "2 días", "pl": "2 dni"},
|
||||
"3 days": { "en": "3 days", "de": "3 Tage", "ru": "3 дня", "pt": "3 dias", "nl": "3 dagen", "fr": "3 jours", "it": "3 giorni", "es": "3 días", "pl": "3 dni"},
|
||||
"7 days": { "en": "7 days", "de": "7 Tage", "ru": "7 дней", "pt": "7 dias", "nl": "7 dagen", "fr": "7 jours", "it": "7 giorni", "es": "7 días", "pl": "7 dni"},
|
||||
"14 days": { "en": "14 days", "de": "14 Tage", "ru": "14 дней", "pt": "14 dias", "nl": "14 dagen", "fr": "14 jours", "it": "14 giorni", "es": "14 dias", "pl": "14 dni"},
|
||||
"1 month": { "en": "1 month", "de": "1 Monat", "ru": "1 месяц", "pt": "1 mês", "nl": "1 maand", "fr": "1 mois", "it": "1 mese", "es": "1 mes", "pl": "1 miesiąc"},
|
||||
"2 months": { "en": "2 months", "de": "2 Monate", "ru": "2 месяца", "pt": "2 meses", "nl": "2 maanden", "fr": "2 mois", "it": "Due mesi", "es": "2 meses", "pl": "2 miesiące"},
|
||||
"3 months": { "en": "3 months", "de": "3 Monate", "ru": "3 месяца", "pt": "3 meses", "nl": "3 maanden", "fr": "3 mois", "it": "3 mesi", "es": "3 meses", "pl": "3 miesiące"},
|
||||
"6 months": { "en": "6 months", "de": "6 Monate", "ru": "6 месяцев", "pt": "6 meses", "nl": "6 maanden", "fr": "6 mois", "it": "6 mesi", "es": "6 meses", "pl": "6 miesięcy"},
|
||||
"1 year": { "en": "1 year", "de": "1 Jahr", "ru": "1 год", "pt": "1 ano", "nl": "1 jaar", "fr": "1 an", "it": "1 anno", "es": "1 año", "pl": "1 rok"},
|
||||
"2 years": { "en": "2 years", "de": "2 Jahren", "ru": "2 года", "pt": "2 anos", "nl": "2 jaar", "fr": "2 ans", "it": "2 anni", "es": "2 años", "pl": "2 lata"},
|
||||
"Width:": { "en": "Width:", "de": "Breite:", "ru": "Ширина:", "pt": "Largura:", "nl": "Breedte:", "fr": "Largeur:", "it": "Larghezza:", "es": "Anchura:", "pl": "Szerokość:"},
|
||||
"Height:": { "en": "Height:", "de": "Höhe:", "ru": "Высота:", "pt": "Altura:", "nl": "Hoogte:", "fr": "La taille:", "it": "Altezza:", "es": "Altura:", "pl": "Wysokość:"},
|
||||
"line": { "en": "Line", "de": "Linie", "ru": "Линия", "pt": "Linha", "nl": "Lijn", "fr": "Ligne", "it": "Linea", "es": "Línea", "pl": "Linia"},
|
||||
"area": { "en": "Area", "de": "Area", "ru": "Область", "pt": "Área", "nl": "Gebied", "fr": "Région", "it": "La zona", "es": "Zona", "pl": "Powierzchnia"},
|
||||
"bar": { "en": "Bar", "de": "Bar", "ru": "Bar", "pt": "Barra", "nl": "Bar", "fr": "Bar", "it": "Bar", "es": "Bar", "pl": "Bar"},
|
||||
"lineplot": { "en": "Line plot", "de": "Liniendiagramm", "ru": "Линия с точками", "pt": "Trama de linha", "nl": "Lijnplot", "fr": "Graphique linéaire", "it": "Trama di linea", "es": "Linear plot", "pl": "Fabuła linii"},
|
||||
"scatterplot": { "en": "Scatter plot", "de": "Streudiagramm", "ru": "Точки", "pt": "Parcela de dispersão", "nl": "Scatterplot", "fr": "Scatter plot", "it": "Trama sparsa", "es": "Gráfico de dispersión", "pl": "Wykres punktowy"},
|
||||
"steps": { "en": "Steps", "de": "Schritte", "ru": "Шаги", "pt": "Passos", "nl": "Stappen", "fr": "Pas", "it": "passi", "es": "Pasos", "pl": "Kroki"},
|
||||
"spline": { "en": "Spline", "de": "Spline", "ru": "Сллайн", "pt": "Spline", "nl": "spline", "fr": "Spline", "it": "linguetta", "es": "Ranura", "pl": "Klin"},
|
||||
"Stack": { "en": "Stack", "de": "Stack", "ru": "Stack", "pt": "Pilha", "nl": "stack", "fr": "Empiler", "it": "Pila", "es": "Apilar", "pl": "Stos"},
|
||||
"Window background:": { "en": "Window background:", "de": "Fenster-Hintergrund:", "ru": "Фон окна:", "pt": "Fundo da janela:", "nl": "Venster achtergrond:", "fr": "Fond de fenêtre:", "it": "Sfondo della finestra:", "es": "Fondo de la ventana:", "pl": "Tło okna:"},
|
||||
"Custom chart background:": { "en": "Custom chart background:", "de": "Anwender-Chart-Hintergrund:", "ru": "Пользовательский фон графика:", "pt": "Fundo de gráfico personalizado:", "nl": "Aangepaste grafiek achtergrond:", "fr": "Arrière-plan de graphique personnalisé:", "it": "Sfondo grafico personalizzato:", "es": "Fondo de carta personalizada:", "pl": "Niestandardowe tło wykresu:"},
|
||||
"Chart background:": { "en": "Chart background:", "de": "Chart-Hintergrund:", "ru": "Фон графика:", "pt": "Contexto do gráfico:", "nl": "Grafiek achtergrond:", "fr": "Arrière-plan du graphique", "it": "Sfondo del grafico:", "es": "Fondo de la carta:", "pl": "Tło wykresu:"},
|
||||
"X axis labels color:": { "en": "X labels color:", "de": "X Beschriftungsfarbe:", "ru": "Цвет текста по оси X:", "pt": "Cor de etiquetas X:", "nl": "X labels kleur:", "fr": "X étiquettes couleur:", "it": "Colore etichette X:", "es": "X etiquetas de color:", "pl": "Kolor etykiet X:"},
|
||||
"Y axis labels color:": { "en": "Y labels color:", "de": "Y Beschriftungsfarbe:", "ru": "Цвет текста по оси Y:", "pt": "Etiquetas de etiquetas Y:", "nl": "Y-labels kleur:", "fr": "Couleur des étiquettes Y:", "it": "Il colore delle etichette Y:", "es": "Color de etiquetas Y:", "pl": "Kolor etykiet Y:"},
|
||||
"Show legend:": { "en": "Show legend:", "de": "Zeige Legende:", "ru": "Показать легенду:", "pt": "Mostrar lenda:", "nl": "Legenda weergeven:", "fr": "Afficher la légende:", "it": "Mostra legenda:", "es": "Mostrar leyenda:", "pl": "Pokaż legendę:"},
|
||||
"Title:": { "en": "Title:", "de": "Beschriftung:", "ru": "Название:", "pt": "Título:", "nl": "Titel:", "fr": "Titre:", "it": "Titolo:", "es": "Título:", "pl": "Tytuł:"},
|
||||
"Title position:": { "en": "Title position:", "de": "Beschriftungs-Position:", "ru": "Позиция названия:", "pt": "Posição do título:", "nl": "Titel positie:", "fr": "Titre du poste:", "it": "Posizione del titolo:", "es": "Posición del título:", "pl": "Pozycja tytułu:"},
|
||||
"Top, left, inside": { "en": "Top, left, inside", "de": "Oben, links, innen", "ru": "Сверху, слева, внутри", "pt": "Topo, esquerda, dentro", "nl": "Boven, links, binnen", "fr": "Haut, gauche, intérieur", "it": "In alto, a sinistra, dentro", "es": "Arriba, izquierda, adentro", "pl": "Góra, lewa, wewnątrz"},
|
||||
"Top, right, inside": { "en": "Top, right, inside", "de": "Oben, rechts, innen", "ru": "Сверху, справа, внутри", "pt": "Topo, direito, dentro", "nl": "Boven, rechts, binnen", "fr": "En haut, à droite, à l'intérieur", "it": "In alto, a destra, dentro", "es": "Arriba, derecha, adentro", "pl": "Góra, prawo, wewnątrz"},
|
||||
"Top, center, inside": { "en": "Top, center, inside", "de": "Oben, mittig, innen", "ru": "Сверху, по центру, внутри", "pt": "Topo, centro, dentro", "nl": "Boven, midden, binnenkant", "fr": "Haut, centre, intérieur", "it": "In alto, al centro, dentro", "es": "Arriba, centro, adentro", "pl": "Góra, środek, wnętrze"},
|
||||
"Middle, left, inside": { "en": "Middle, left, inside", "de": "Middle, links, innen", "ru": "Посередине, слева, внутри", "pt": "Médio, esquerda, dentro", "nl": "Midden, links, binnenkant", "fr": "Milieu, gauche, intérieur", "it": "Medio, a sinistra, dentro", "es": "Medio, izquierdo, adentro", "pl": "Środkowy, lewy, w środku"},
|
||||
"Middle, right, inside": { "en": "Middle, right, inside", "de": "Middle, rechts, innen", "ru": "Посередине, справа, внутри", "pt": "Médio, direito, dentro", "nl": "Midden, rechts, binnenkant", "fr": "Moyen, droit, intérieur", "it": "Medio, giusto, dentro", "es": "Medio, derecho, adentro", "pl": "Środkowy, prawy, wewnątrz"},
|
||||
"Bottom, left, inside": { "en": "Bottom, left, inside", "de": "Unten, links, innen", "ru": "Снизу, слева, внутри", "pt": "Parte inferior, esquerda, dentro", "nl": "Onder, links, binnen", "fr": "Bas, gauche, intérieur", "it": "In basso, a sinistra, dentro", "es": "Abajo, izquierda, adentro", "pl": "Dół, lewo, wnętrze"},
|
||||
"Bottom, right, inside": { "en": "Bottom, right, inside", "de": "Unten, rechts, innen", "ru": "Снизу, справа, внутри", "pt": "Parte inferior, direita, dentro", "nl": "Onder, rechts, binnen", "fr": "En bas, à droite, à l'intérieur", "it": "In basso, a destra, dentro", "es": "Abajo, derecha, adentro", "pl": "Dół, prawo, wewnątrz"},
|
||||
"Bottom, center, inside": { "en": "Bottom, center, inside", "de": "Unten, mittig, innen", "ru": "Снизу, по центру, внутри", "pt": "No fundo, no centro, no interior", "nl": "Onder, midden, binnen", "fr": "Bas, centre, intérieur", "it": "In basso, al centro, dentro", "es": "Abajo, centro, adentro", "pl": "Dół, środek, wnętrze"},
|
||||
"Top, right, outside": { "en": "Top, right, outside", "de": "Oben, rechts, außen", "ru": "Сверху, справа, снаружи", "pt": "Topo, direito, fora", "nl": "Boven, rechts, buiten", "fr": "Haut, droit, dehors", "it": "In alto, a destra, fuori", "es": "Arriba, a la derecha, afuera", "pl": "Góra, prawo, na zewnątrz"},
|
||||
"Middle, right, outside": { "en": "Middle, right, outside", "de": "Middle, rechts, außen", "ru": "Посередине, справа, снаружи", "pt": "Médio, direito, fora", "nl": "Midden, rechts, buiten", "fr": "Moyen, droit, dehors", "it": "Medio, giusto, esterno", "es": "Medio, derecho, afuera", "pl": "Środkowy, prawy, na zewnątrz"},
|
||||
"Bottom, right, outside": { "en": "Bottom, right, outside", "de": "Unten, rechts, außen", "ru": "Снизу, справа, снаружи", "pt": "Parte inferior, direita, fora", "nl": "Onder, rechts, buiten", "fr": "En bas, à droite, à l'extérieur", "it": "In basso, a destra, fuori", "es": "Abajo, a la derecha, afuera", "pl": "Dół, prawo, na zewnątrz"},
|
||||
"Bottom, center, outside": { "en": "Bottom, center, outside", "de": "Unten, mittig, außen", "ru": "Снизу, по центру, снаружи", "pt": "Fundo, centro, fora", "nl": "Onder, midden, buiten", "fr": "Bas, centre, extérieur", "it": "In basso, al centro, fuori", "es": "Abajo, centro, afuera", "pl": "Dół, środek, na zewnątrz"},
|
||||
"Min:": { "en": "Minimum:", "de": "Minimum:", "ru": "Минимум:", "pt": "Mínimo:", "nl": "Minimum:", "fr": "Le minimum:", "it": "Minimo:", "es": "Mínimo:", "pl": "Minimum:"},
|
||||
"Max:": { "en": "Maximum:", "de": "Maximum:", "ru": "Максимум:", "pt": "Máximo:", "nl": "maximaal:", "fr": "Maximum:", "it": "Massimo:", "es": "Máximo:", "pl": "Maksymalny:"},
|
||||
"User defined names:": { "en": "User defined names:", "de": "Benutzerdefinierte Namen:", "ru": "Задать имена графиков:", "pt": "Nomes definidos pelo usuário:", "nl": "Door de gebruiker gedefinieerde namen:", "fr": "Noms définis par l'utilisateur:", "it": "Nomi definiti dall'utente:", "es": "Nombres definidos por el usuario:", "pl": "Nazwy zdefiniowane przez użytkownika:"},
|
||||
"Predefined background:": { "en": "Predefined background:", "de": "Vordefinierter Hintergrund:", "ru": "Выбрать фон:", "pt": "Antecedentes predefinidos:", "nl": "Voorgedefinieerde achtergrond:", "fr": "Arrière-plan prédéfini:", "it": "Sfondo predefinito:", "es": "Antecedentes predefinidos:", "pl": "Wstępnie zdefiniowane tło:"},
|
||||
"User defined": { "en": "User defined", "de": "Anwenderdefiniert", "ru": "Пользовательские", "pt": "Usuário definido", "nl": "Gebruiker gedefinieerde", "fr": "Défini par l'utilisateur", "it": "Definito dall'utente", "es": "Usuario definido", "pl": "Określony przez użytkownika"},
|
||||
"Background:": { "en": "Background:", "de": "Hintergrund:", "ru": "Фон:", "pt": "Fundo:", "nl": "Achtergrond:", "fr": "Contexte:", "it": "Sfondo:", "es": "Fondo:", "pl": "Tło:"},
|
||||
"Hover details:": { "en": "Hover details:", "de": "Hover details:", "ru": "Показывать подсказку:", "pt": "Detalhes do mouse:", "nl": "Hover details:", "fr": "Hover détails:", "it": "Dettagli al passaggio del mouse:", "es": "Hover detalles:", "pl": "Po najechaniu szczegóły:"},
|
||||
"Time format:": { "en": "Time format:", "de": "Zeitformat:", "ru": "Формат времени:", "pt": "Formato do tempo:", "nl": "Tijd formaat:", "fr": "Format de l'heure:", "it": "Formato orario:", "es": "Formato de tiempo:", "pl": "Format czasu:"},
|
||||
"Default": { "en": "Default", "de": "Standard", "ru": "по умолчанию", "pt": "Padrão", "nl": "Standaard", "fr": "Défaut", "it": "Predefinito", "es": "Defecto", "pl": "Domyślna"},
|
||||
"Smoothing": { "en": "Smoothing", "de": "Glätten", "ru": "Сглаживание", "pt": "Suavização", "nl": "smoothing", "fr": "Lissage", "it": "lisciatura", "es": "Suavizado", "pl": "Wygładzanie"},
|
||||
"After comma": { "en": "After comma", "de": "Nach Komma", "ru": "После запятой", "pt": "Após a vírgula", "nl": "Na een komma", "fr": "Après la virgule", "it": "Dopo la virgola", "es": "Después de la coma", "pl": "Po przecinku"},
|
||||
"Open": { "en": "Open", "de": "Zeige im Fenster", "ru": "Показать", "pt": "Aberto", "nl": "Open", "fr": "Ouvrir", "it": "Aperto", "es": "Abierto", "pl": "otwarty"},
|
||||
"Update": { "en": "Update", "de": "Aktualisieren", "ru": "Обновить", "pt": "Atualizar", "nl": "Bijwerken", "fr": "Mettre à jour", "it": "Aggiornare", "es": "Actualizar", "pl": "Aktualizacja"},
|
||||
"Reset settings": { "en": "Reset settings", "de": "Einstellungen löschen", "ru": "Сбросить настройки", "pt": "Redefinir configurações", "nl": "Reset instellingen", "fr": "Réinitialiser les options", "it": "Ripristina le impostazioni", "es": "Reiniciar ajustes", "pl": "Resetowanie ustawień"},
|
||||
"From": { "en": "From: ", "de": "Von", "ru": "От", "pt": "A partir de:", "nl": "Van:", "fr": "De:", "it": "A partire dal:", "es": "De:", "pl": "Od:"},
|
||||
"Last changed": { "en": "Last changed", "de": "Letze Änderung", "ru": "Изменён", "pt": "Última modificação", "nl": "Laatst gewijzigd", "fr": "Dernière modification", "it": "Ultima modifica", "es": "Último cambio", "pl": "Ostatnia zmiana"},
|
||||
"Time stamp": { "en": "Time stamp", "de": "Zeitstempel", "ru": "Время", "pt": "Marca de horário", "nl": "Tijdstempel", "fr": "Horodatage", "it": "Data e ora", "es": "Marca de tiempo", "pl": "Znak czasu"},
|
||||
"Acknowledged": { "en": "Acknowledged", "de": "Bestätigt", "ru": "Подтверждён", "pt": "Reconhecido", "nl": "Erkend", "fr": "Reconnu", "it": "Riconosciuto", "es": "Admitido", "pl": "Przyznane"},
|
||||
"Edit": { "en": "Edit", "de": "Editieren", "ru": "Edit", "pt": "Editar", "nl": "Bewerk", "fr": "modifier", "it": "modificare", "es": "Editar", "pl": "Edytować"},
|
||||
"Members": { "en": "Members", "de": "Mitglied", "ru": "Объекты", "pt": "Membros", "nl": "leden", "fr": "Membres", "it": "Utenti", "es": "Miembros", "pl": "Członkowie"},
|
||||
"Loading...": { "en": "Loading...", "de": "Lade...", "ru": "Загрузка...", "pt": "Carregando...", "nl": "Bezig met laden...", "fr": "Chargement...", "it": "Caricamento in corso...", "es": "Cargando...", "pl": "Ładuję..."},
|
||||
"Processing...": { "en": "Processing...", "de": "Bearbeite...", "ru": "Обработка...", "pt": "Em processamento...", "nl": "Verwerken...", "fr": "En traitement...", "it": "In lavorazione...", "es": "Tratamiento...", "pl": "Przetwarzanie..."},
|
||||
"With lines": { "en": "With lines", "de": "mit Linien", "ru": "С линиями", "pt": "Com linhas", "nl": "Met lijnen", "fr": "Avec des lignes", "it": "Con le linee", "es": "Con líneas", "pl": "Z liniami"},
|
||||
"Without lines": { "en": "Without lines", "de": "ohne Linien", "ru": "Без линий", "pt": "Sem linhas", "nl": "Zonder lijnen", "fr": "Sans lignes", "it": "Senza linee", "es": "Sin líneas", "pl": "Bez linii"},
|
||||
"Inside / With lines": { "en": "Inside / With lines", "de": "Innen / mit Linien", "ru": "Внутри / С линиями", "pt": "Dentro / Com linhas", "nl": "Binnen / met lijnen", "fr": "À l'intérieur / Avec des lignes", "it": "Interno / Con linee", "es": "Dentro / Con líneas", "pl": "Wewnątrz / Z liniami"},
|
||||
"Outside/ With lines": { "en": "Outside/ With lines", "de": "Außen/ mit Linien", "ru": "Снаружи/ С линиями", "pt": "Fora / Com linhas", "nl": "Buiten / met lijnen", "fr": "Extérieur / Avec lignes", "it": "Esterno / Con linee", "es": "Fuera / Con líneas", "pl": "Na zewnątrz / Z liniami"},
|
||||
"Inside / No lines": { "en": "Inside / No lines", "de": "Innen / ohne Linien", "ru": "Внутри / Без линий", "pt": "Dentro / Sem linhas", "nl": "Binnenkant / Geen regels", "fr": "À l'intérieur / Pas de lignes", "it": "Dentro / Nessuna linea", "es": "Dentro / Sin líneas", "pl": "Wewnątrz / Bez linii"},
|
||||
"Outside / No lines": { "en": "Outside / No lines", "de": "Außen / ohne Linien", "ru": "Снаружи / Без линий", "pt": "Fora / Sem linhas", "nl": "Buiten / Geen lijnen", "fr": "Extérieur / Pas de lignes", "it": "Fuori / Nessuna linea", "es": "Fuera / Sin líneas", "pl": "Poza / Bez linii"},
|
||||
"Interpolate:": { "en": "Interpolate:", "de": "Interpolieren:", "ru": "Интерполяция:", "pt": "Interpolar:", "nl": "Interpoleren:", "fr": "Interpoler:", "it": "Interpolare:", "es": "Interpolar:", "pl": "Interpolować:"},
|
||||
"Steps": { "en": "Steps", "de": "Schritte", "ru": "Ступени", "pt": "Passos", "nl": "Stappen", "fr": "Pas", "it": "passi", "es": "Pasos", "pl": "Kroki"},
|
||||
"Pie": { "en": "Pie", "de": "Kuchen", "ru": "Круговая диаграмма", "pt": "Torta", "nl": "Taart", "fr": "Tarte", "it": "Torta", "es": "Tarta", "pl": "Ciasto"},
|
||||
"Top, left": { "en": "Top, left", "de": "Oben, links", "ru": "Сверху, слева", "pt": "Superior esquerdo", "nl": "Linksboven", "fr": "En haut à gauche", "it": "A sinistra in alto", "es": "Arriba a la izquierda", "pl": "Lewy górny"},
|
||||
"Top, right": { "en": "Top, right", "de": "Oben, rechts", "ru": "Сверху, справа", "pt": "Canto superior direito", "nl": "Rechtsboven", "fr": "En haut à droite", "it": "In alto a destra", "es": "Parte superior derecha", "pl": "W prawym górnym rogu"},
|
||||
"Bottom, left": { "en": "Bottom, left", "de": "Unten, links", "ru": "Снизу, слева", "pt": "Inferior esquerdo", "nl": "Linksonder", "fr": "En bas à gauche", "it": "In basso a sinistra", "es": "Abajo, izquierda", "pl": "Na dole po lewej"},
|
||||
"Bottom, right": { "en": "Bottom, right", "de": "Unten, rechts", "ru": "Снизу, справа", "pt": "Canto inferior direito", "nl": "Rechts onder", "fr": "En bas à droite", "it": "In basso a destra", "es": "Abajo a la derecha", "pl": "Prawy dolny"},
|
||||
"Title color:": { "en": "Title color:", "de": "Titelfarbe:", "ru": "Цвет названия:", "pt": "Cor do título:", "nl": "Titel kleur:", "fr": "Couleur du titre:", "it": "Colore del titolo:", "es": "Color del título:", "pl": "Kolor tytułu:"},
|
||||
"Title size:": { "en": "Title size:", "de": "Titelgröße:", "ru": "Размер названия:", "pt": "Tamanho do título:", "nl": "Titel grootte:", "fr": "Taille du titre:", "it": "Dimensione del titolo:", "es": "Tamaño del título:", "pl": "Rozmiar tytułu:"},
|
||||
"Fill range:": { "en": "Fill range:", "de": "Ganzer Bereich:", "ru": "Всегда весь интервал:", "pt": "Faixa de preenchimento:", "nl": "Vulbereik:", "fr": "Remplir gamme:", "it": "Gamma di riempimento:", "es": "Rango de llenado:", "pl": "Zakres wypełnienia:"},
|
||||
"Units:": { "en": "Units:", "de": "Einheiten:", "ru": "Единицы:", "pt": "Unidades:", "nl": "units:", "fr": "Unités:", "it": "unità:", "es": "Unidades:", "pl": "Jednostki:"},
|
||||
"yes": { "en": "yes", "de": "ja", "ru": "да", "pt": "sim", "nl": "Ja", "fr": "Oui", "it": "sì", "es": "sí", "pl": "tak"},
|
||||
"bottom": { "en": "bottom", "de": "unten", "ru": "снизу", "pt": "inferior", "nl": "bodem", "fr": "bas", "it": "parte inferiore", "es": "fondo", "pl": "Dolny"},
|
||||
"top": { "en": "top", "de": "oben", "ru": "сверху", "pt": "topo", "nl": "top", "fr": "Haut", "it": "superiore", "es": "parte superior", "pl": "Top"},
|
||||
"left": { "en": "left", "de": "links", "ru": "слева", "pt": "esquerda", "nl": "links", "fr": "la gauche", "it": "sinistra", "es": "izquierda", "pl": "lewo"},
|
||||
"right": { "en": "right", "de": "rechts", "ru": "справа", "pt": "certo", "nl": "rechts", "fr": "droite", "it": "destra", "es": "derecho", "pl": "dobrze"},
|
||||
"No border:": { "en": "No border:", "de": "Kein Rahmen:", "ru": "Без рамки:", "pt": "Sem borda:", "nl": "Geen grens:", "fr": "Pas de frontière:", "it": "Nessun confine:", "es": "Sin bordes:", "pl": "Bez granic:"},
|
||||
"Time": { "en": "Time", "de": "Zeit", "ru": "Время", "pt": "Tempo", "nl": "Tijd", "fr": "Temps", "it": "Tempo", "es": "Hora", "pl": "Czas"},
|
||||
"day": { "en": "day", "de": "Tag", "ru": "День", "pt": "dia", "nl": "dag", "fr": "journée", "it": "giorno", "es": "día", "pl": "dzień"},
|
||||
"month": { "en": "month", "de": "Monat", "ru": "month", "pt": "mês", "nl": "maand", "fr": "mois", "it": "mese", "es": "mes", "pl": "miesiąc"},
|
||||
"year": { "en": "year", "de": "Jahr", "ru": "year", "pt": "ano", "nl": "jaar", "fr": "an", "it": "anno", "es": "año", "pl": "rok"},
|
||||
"Individual": { "en": "Individual", "de": "Individuell", "ru": "Индивидуально", "pt": "Individual", "nl": "individu", "fr": "Individuel", "it": "Individuale", "es": "Individual", "pl": "Indywidualny"},
|
||||
"Aggregation:": { "en": "Type:", "de": "Art:", "ru": "Тип:", "pt": "Tipo:", "nl": "Type:", "fr": "Type:", "it": "Genere:", "es": "Tipo:", "pl": "Rodzaj:"},
|
||||
"relative": { "en": "relative", "de": "relative", "ru": "относительно", "pt": "relativo", "nl": "familielid", "fr": "relatif", "it": "parente", "es": "relativo", "pl": "krewny"},
|
||||
"static": { "en": "static", "de": "statik", "ru": "постоянный", "pt": "estático", "nl": "statisch", "fr": "statique", "it": "statico", "es": "estático", "pl": "statyczny"},
|
||||
"now": { "en": "now", "de": "jetzt", "ru": "сейчас", "pt": "agora", "nl": "nu", "fr": "à présent", "it": "adesso", "es": "ahora", "pl": "teraz"},
|
||||
"today": { "en": "today", "de": "heute", "ru": "сегодня", "pt": "hoje", "nl": "vandaag", "fr": "aujourd'hui", "it": "oggi", "es": "hoy", "pl": "dzisiaj"},
|
||||
"this month": { "en": "this month", "de": "dieser Monat", "ru": "этот месяц", "pt": "este mês", "nl": "deze maand", "fr": "ce mois-ci", "it": "questo mese", "es": "este mes", "pl": "ten miesiąc"},
|
||||
"this year": { "en": "this year", "de": "dieses Jahr", "ru": "этот год", "pt": "este ano", "nl": "dit jaar", "fr": "cette année", "it": "quest'anno", "es": "este año", "pl": "W tym roku"},
|
||||
"Start:": { "en": "Start:", "de": "Start:", "ru": "Начало:", "pt": "Começar:", "nl": "Begin:", "fr": "Début:", "it": "Inizio:", "es": "Comienzo:", "pl": "Początek:"},
|
||||
"End:": { "en": "End:", "de": "Ende:", "ru": "Конец:", "pt": "Fim:", "nl": "Einde:", "fr": "Fin:", "it": "Fine:", "es": "Fin:", "pl": "Koniec:"},
|
||||
"Aggregate": { "en": "Aggregate", "de": "Aggregation", "ru": "Объединение данных", "pt": "Agregar", "nl": "Aggregaat", "fr": "Agrégat", "it": "Aggregato", "es": "Agregar", "pl": "Agregat"},
|
||||
"Step type:": { "en": "Step type:", "de": "Schritttyp:", "ru": "Шаги:", "pt": "Tipo de etapa:", "nl": "Stap type:", "fr": "Type d'étape:", "it": "Tipo di passaggio:", "es": "Tipo de paso:", "pl": "Rodzaj kroku:"},
|
||||
"seconds": { "en": "seconds", "de": "Sekunden", "ru": "секунды", "pt": "segundos", "nl": "seconden", "fr": "secondes", "it": "secondi", "es": "segundos", "pl": "sekundy"},
|
||||
"Seconds": { "en": "Seconds", "de": "Sekunden", "ru": "Cекунды", "pt": "Segundos", "nl": "seconden", "fr": "Secondes", "it": "secondi", "es": "Segundos", "pl": "sekundy"},
|
||||
"Step span:": { "en": "Step span:", "de": "Schrittweite:", "ru": "Интервал шага:", "pt": "Passo:", "nl": "Stap overspanning:", "fr": "Étape span:", "it": "Intervallo:", "es": "Lapso de paso:", "pl": "Zakres kroku:"},
|
||||
"Link": { "en": "Link", "de": "Link", "ru": "URL", "pt": "Ligação", "nl": "Link", "fr": "Lien", "it": "collegamento", "es": "Enlazar", "pl": "Połączyć"},
|
||||
"Counts": { "en": "Counts", "de": "Anzahl", "ru": "Кол-во значений", "pt": "Contagens", "nl": "tellingen", "fr": "Compte", "it": "Conti", "es": "Cuenta", "pl": "Liczy"},
|
||||
"ignore 'null'": { "en": "ignore 'null'", "de": "'null' ignorieren", "ru": "Игнорировать 'null'", "pt": "ignore 'null'", "nl": "negeer 'null'", "fr": "ignore 'null'", "it": "ignora 'null'", "es": "ignorar 'nulo'", "pl": "zignoruj \"zero\""},
|
||||
"Time Span": { "en": "Time Span", "de": "Zeit Spanne", "ru": "Временной интервал", "pt": "Intervalo de tempo", "nl": "Tijdspanne", "fr": "Durée", "it": "Arco di tempo", "es": "Espacio de tiempo", "pl": "Okres czasu"},
|
||||
"Appearance": { "en": "Appearance", "de": "Erscheinung", "ru": "Оформление", "pt": "Aparência", "nl": "Uiterlijk", "fr": "Apparence", "it": "Aspetto", "es": "Apariencia", "pl": "Wygląd"},
|
||||
"Title": { "en": "Title", "de": "Beschriftung", "ru": "Подпись", "pt": "Título", "nl": "Titel", "fr": "Titre", "it": "Titolo", "es": "Título", "pl": "Tytuł"},
|
||||
"Offset": { "en": "X-Offset", "de": "X-Offset", "ru": "Сдвиг по Х", "pt": "X-Offset", "nl": "-X Offset", "fr": "X-Offset", "it": "X-Offset", "es": "X-Offset", "pl": "X-Offset"},
|
||||
"Aggregation": { "en": "Type", "de": "Art", "ru": "Тип", "pt": "Tipo", "nl": "Type", "fr": "Type", "it": "genere", "es": "Tipo", "pl": "Rodzaj"},
|
||||
"Chart Type": { "en": "Chart Type", "de": "Chart Type", "ru": "Тип графика", "pt": "Tipo de gráfico", "nl": "Diagramtype", "fr": "Type de graphique", "it": "Tipo di grafico", "es": "Tipo de gráfico", "pl": "Typ wykresu"},
|
||||
"Color": { "en": "Color", "de": "Farbe", "ru": "Цвет", "pt": "Cor", "nl": "Kleur", "fr": "Couleur", "it": "Colore", "es": "Color", "pl": "Kolor"},
|
||||
"Min": { "en": "Min", "de": "Min", "ru": "Мин", "pt": "Min", "nl": "min", "fr": "Min", "it": "min", "es": "Min.", "pl": "Min"},
|
||||
"Max": { "en": "Max", "de": "Max", "ru": "Макс", "pt": "Max", "nl": "Max", "fr": "Max", "it": "Max", "es": "Max", "pl": "Max"},
|
||||
"Unit": { "en": "Unit", "de": "Einheiten", "ru": "Единицы", "pt": "Unidade", "nl": "Eenheid", "fr": "Unité", "it": "Unità", "es": "Unidad", "pl": "Jednostka"},
|
||||
"Y Axis": { "en": "Y Axis", "de": "Y Axe", "ru": "Ось Y", "pt": "Eixo Y", "nl": "Y-as", "fr": "Axe Y", "it": "Asse Y.", "es": "Eje Y", "pl": "Oś Y."},
|
||||
"X Axis": { "en": "X Axis", "de": "X Axe", "ru": "Ось X", "pt": "X Axis", "nl": "X-as", "fr": "Axe X", "it": "Asse X.", "es": "Eje X", "pl": "Oś X."},
|
||||
"update Preview": { "en": "update Preview", "de": "Vorschau aktualisieren", "ru": "Обновить", "pt": "atualização Visualização", "nl": "voorproefje van de nieuwe versie", "fr": "aperçu de mise à jour", "it": "Aggiorna anteprima", "es": "actualización de Vista previa", "pl": "aktualizuj podgląd"},
|
||||
"Cancel": { "en": "Cancel", "de": "Abbrechen", "ru": "отменить", "pt": "Cancelar", "nl": "Annuleer", "fr": "Annuler", "it": "Annulla", "es": "Cancelar", "pl": "Anuluj"},
|
||||
"Name": { "en": "Name", "de": "Name", "ru": "Имя", "pt": "Nome", "nl": "Naam", "fr": "prénom", "it": "Nome", "es": "Nombre", "pl": "Nazwa"},
|
||||
"Live update every:": { "en": "Live update every:", "de": "Autoupdate alle:", "ru": "Обновлять каждые:", "pt": "Atualização ao vivo a cada:", "nl": "Live update elke:", "fr": "Mise à jour en direct tous les:", "it": "Aggiornamento live ogni:", "es": "Actualización en vivo cada:", "pl": "Aktualizacja na żywo co:"},
|
||||
"counts": { "en": "counts", "de": "Anzahl", "ru": "кол-во", "pt": "contagens", "nl": "tellingen", "fr": "compte", "it": "conta", "es": "conteos", "pl": "liczy"},
|
||||
"Add new line": { "en": "Add new line", "de": "Linie hinzufügen", "ru": "Добавить линию", "pt": "Adicionar nova linha", "nl": "Voeg een nieuwe regel toe", "fr": "Ajouter une nouvelle ligne", "it": "Aggiungi una nuova linea", "es": "Agregar nueva línea", "pl": "Dodaj nową linię"},
|
||||
"Animation:": { "en": "Animation:", "de": "Animation:", "ru": "Анимация:", "pt": "Animação:", "nl": "animatie:", "fr": "Animation:", "it": "Animazione:", "es": "Animación:", "pl": "Animacja:"},
|
||||
"no": { "en": "no", "de": "keine", "ru": "нет", "pt": "não", "nl": "Nee", "fr": "non", "it": "no", "es": "no", "pl": "Nie"},
|
||||
"0s": { "en": "0 seconds", "de": "0s", "ru": "0c", "pt": "0 segundos", "nl": "0 seconden", "fr": "0 seconde", "it": "0 secondi", "es": "0 segundos", "pl": "0 sekund"},
|
||||
"300ms": { "en": "300ms", "de": "300ms", "ru": "300мс", "pt": "300ms", "nl": "300ms", "fr": "300ms", "it": "300ms", "es": "300ms", "pl": "300ms"},
|
||||
"500ms": { "en": "500ms", "de": "500ms", "ru": "500мс", "pt": "500ms", "nl": "500ms", "fr": "500ms", "it": "500ms", "es": "500ms", "pl": "500 ms"},
|
||||
"1s": { "en": "1 second", "de": "1 Sekunde", "ru": "1 секунда", "pt": "1 segundo", "nl": "1 seconde", "fr": "1 seconde", "it": "1 secondo", "es": "1 segundo", "pl": "1 sekunda"},
|
||||
"2s": { "en": "2 seconds", "de": "2 Sekunden", "ru": "2 секунды", "pt": "2 segundos", "nl": "2 seconden", "fr": "2 secondes", "it": "2 secondi", "es": "2 segundos", "pl": "2 sekundy"},
|
||||
"3s": { "en": "3 seconds", "de": "3 Sekunden", "ru": "3 секунды", "pt": "3 segundos", "nl": "3 seconden", "fr": "3 secondes", "it": "3 secondi", "es": "3 segundos", "pl": "3 sekundy"},
|
||||
"5s": { "en": "5 seconds", "de": "5 Sekunden", "ru": "5 секунд", "pt": "5 segundos", "nl": "5 seconden", "fr": "5 secondes", "it": "5 secondi", "es": "5 segundos", "pl": "5 sekund"},
|
||||
"10s": { "en": "10 seconds", "de": "10 Sekunden", "ru": "10 секунд", "pt": "10 segundos", "nl": "10 seconden", "fr": "10 secondes", "it": "10 secondi", "es": "10 segundos", "pl": "10 sekund"},
|
||||
"30s": { "en": "30 seconds", "de": "30 Sekunden", "ru": "30 секунд", "pt": "30 segundos", "nl": "30 seconden", "fr": "30 secondes", "it": "30 secondi", "es": "30 segundos", "pl": "30 sekund"},
|
||||
"60s": { "en": "60 seconds", "de": "60 Sekunden", "ru": "60 секунд", "pt": "60 segundos", "nl": "60 seconden", "fr": "60 secondes", "it": "60 secondi", "es": "60 segundos", "pl": "60 sekund"},
|
||||
"2m": { "en": "2 minutes", "de": "2 Minuten", "ru": "2 минуты", "pt": "2 minutos", "nl": "2 minuten", "fr": "2 minutes", "it": "2 minuti", "es": "2 minutos", "pl": "2 minuty"},
|
||||
"3m": { "en": "3 minutes", "de": "3 Minuten", "ru": "3 минуты", "pt": "3 minutos", "nl": "3 minuten", "fr": "3 minutes", "it": "3 minuti", "es": "3 minutos", "pl": "3 minuty"},
|
||||
"4m": { "en": "4 minutes", "de": "4 Minuten", "ru": "4 минуты", "pt": "4 minutos", "nl": "4 minuten", "fr": "4 minutes", "it": "4 minuti", "es": "4 minutos", "pl": "4 minuty"},
|
||||
"5m": { "en": "5 minutes", "de": "5 Minuten", "ru": "5 минут", "pt": "5 minutos", "nl": "5 minuten", "fr": "5 minutes", "it": "5 minuti", "es": "5 minutos", "pl": "5 minut"},
|
||||
"10m": { "en": "10 minutes", "de": "10 Minuten", "ru": "10 минут", "pt": "10 minutos", "nl": "10 minuten", "fr": "10 minutes", "it": "10 minuti", "es": "10 minutos", "pl": "10 minut"},
|
||||
"15m": { "en": "15 minutes", "de": "15 Minuten", "ru": "15 минут", "pt": "15 minutos", "nl": "15 minuten", "fr": "15 minutes", "it": "15 minuti", "es": "15 minutos", "pl": "15 minut"},
|
||||
"30m": { "en": "30 minutes", "de": "30 Minuten", "ru": "30 минут", "pt": "30 minutos", "nl": "30 minuten", "fr": "30 minutes", "it": "30 minuti", "es": "30 minutos", "pl": "30 minut"},
|
||||
"45m": { "en": "45 minutes", "de": "45 Minuten", "ru": "45 минут", "pt": "45 minutos", "nl": "45 minuten", "fr": "45 minutes", "it": "45 minuti", "es": "45 minutos", "pl": "45 minut"},
|
||||
"1H": { "en": "1 hour", "de": "1 Stunde", "ru": "1 час", "pt": "1 hora", "nl": "1 uur", "fr": "1 heure", "it": "1 ora", "es": "1 hora", "pl": "1 godzina"},
|
||||
"2H": { "en": "2 hours", "de": "2 Stunden", "ru": "2 часа", "pt": "2 horas", "nl": "twee uur", "fr": "2 heures", "it": "2 ore", "es": "2 horas", "pl": "2 godziny"},
|
||||
"6H": { "en": "6 hours", "de": "6 Stunden", "ru": "6 часов", "pt": "6 horas", "nl": "6 uur", "fr": "6 heures", "it": "6 ore", "es": "6 horas", "pl": "6 godzin"},
|
||||
"12H": { "en": "12 hours", "de": "12 Stunden", "ru": "12 часов", "pt": "12 horas", "nl": "12 uren", "fr": "12 heures", "it": "12 ore", "es": "12 horas", "pl": "12 godzin"},
|
||||
"1D": { "en": "1 day", "de": "1 Tag", "ru": "1 день", "pt": "1 dia", "nl": "1 dag", "fr": "Un jour", "it": "1 giorno", "es": "1 día", "pl": "1 dzień"},
|
||||
"2D": { "en": "2 days", "de": "2 Tage", "ru": "2 дня", "pt": "2 dias", "nl": "2 dagen", "fr": "2 jours", "it": "2 giorni", "es": "2 días", "pl": "2 dni"},
|
||||
"3D": { "en": "3 days", "de": "3 Tage", "ru": "3 дня", "pt": "3 dias", "nl": "3 dagen", "fr": "3 jours", "it": "3 giorni", "es": "3 días", "pl": "3 dni"},
|
||||
"4D": { "en": "4 days", "de": "4 Tage", "ru": "4 дня", "pt": "4 dias", "nl": "4 dagen", "fr": "4 jours", "it": "4 giorni", "es": "4 dias", "pl": "4 dni"},
|
||||
"1W": { "en": "1 week", "de": "1 Woche", "ru": "1 неделя", "pt": "1 semana", "nl": "1 week", "fr": "1 semaine", "it": "1 settimana", "es": "1 semana", "pl": "1 tydzień"},
|
||||
"2W": { "en": "2 weeks", "de": "2 Wochen", "ru": "2 недели", "pt": "2 semanas", "nl": "2 weken", "fr": "2 semaines", "it": "2 settimane", "es": "2 semanas", "pl": "2 tygodnie"},
|
||||
"4W": { "en": "4 weeks", "de": "4 Wochen", "ru": "4 недели", "pt": "4 semanas", "nl": "4 weken", "fr": "4 semaines", "it": "4 settimane", "es": "4 semanas", "pl": "4 tygodnie"},
|
||||
"8W": { "en": "8 weeks", "de": "8 Wochen", "ru": "8 недель", "pt": "8 semanas", "nl": "8 weken", "fr": "8 semaines", "it": "8 settimane", "es": "8 semanas", "pl": "8 tygodni"},
|
||||
"12W": { "en": "12 weeks", "de": "12 Wochen", "ru": "12 недель", "pt": "12 semanas", "nl": "12 weken", "fr": "12 semaines", "it": "12 settimane", "es": "12 semanas", "pl": "12 tygodni"},
|
||||
"26W": { "en": "26 weeks", "de": "26 Wochen", "ru": "26 недель", "pt": "26 semanas", "nl": "26 weken", "fr": "26 semaines", "it": "26 settimane", "es": "26 semanas", "pl": "26 tygodni"},
|
||||
"1M": { "en": "1 month", "de": "1 Monat", "ru": "1 месяц", "pt": "1 mês", "nl": "1 maand", "fr": "1 mois", "it": "1 mese", "es": "1 mes", "pl": "1 miesiąc"},
|
||||
"2M": { "en": "2 months", "de": "2 Monate", "ru": "2 месяца", "pt": "2 meses", "nl": "2 maanden", "fr": "2 mois", "it": "Due mesi", "es": "2 meses", "pl": "2 miesiące"},
|
||||
"3M": { "en": "3 months", "de": "3 Monate", "ru": "3 месяца", "pt": "3 meses", "nl": "3 maanden", "fr": "3 mois", "it": "3 mesi", "es": "3 meses", "pl": "3 miesiące"},
|
||||
"6M": { "en": "6 months", "de": "6 Monate", "ru": "6 месяцев", "pt": "6 meses", "nl": "6 maanden", "fr": "6 mois", "it": "6 mesi", "es": "6 meses", "pl": "6 miesięcy"},
|
||||
"1Y": { "en": "1 year", "de": "1 Jahr", "ru": "1 год", "pt": "1 ano", "nl": "1 jaar", "fr": "1 an", "it": "1 anno", "es": "1 año", "pl": "1 rok"},
|
||||
"2Y": { "en": "2 years", "de": "2 Jahre", "ru": "2 года", "pt": "2 anos", "nl": "2 jaar", "fr": "2 ans", "it": "2 anni", "es": "2 años", "pl": "2 lata"},
|
||||
"average": { "en": "average", "de": "mittel", "ru": "среднее", "pt": "média", "nl": "gemiddelde", "fr": "moyenne", "it": "media", "es": "promedio", "pl": "średni"},
|
||||
"max": { "en": "max", "de": "max", "ru": "макс", "pt": "máximo", "nl": "max", "fr": "max", "it": "max", "es": "máximo", "pl": "maks"},
|
||||
"min": { "en": "min", "de": "min", "ru": "мин", "pt": "min", "nl": "min", "fr": "min", "it": "min", "es": "min", "pl": "min"},
|
||||
"total": { "en": "total", "de": "total", "ru": "всего", "pt": "total", "nl": "totaal", "fr": "total", "it": "totale", "es": "total", "pl": "całkowity"},
|
||||
"off": { "en": "off", "de": "nichts", "ru": "скрыть", "pt": "fora", "nl": "uit", "fr": "de", "it": "via", "es": "apagado", "pl": "poza"},
|
||||
"leftColor": { "en": "left colored", "de": "links farblich", "ru": "слева цветом", "pt": "colorido esquerdo", "nl": "links gekleurd", "fr": "laissé coloré", "it": "lasciato colorato", "es": "color izquierdo", "pl": "pozostawione w kolorze"},
|
||||
"rightColor": { "en": "right colored", "de": "rechts farblich", "ru": "справа цветом", "pt": "cor clara", "nl": "rechts gekleurd", "fr": "couleur droite", "it": "giusto colorato", "es": "color derecho", "pl": "prawe kolorowe"},
|
||||
"topColor": { "en": "top colored", "de": "oben farblich", "ru": "сверху цветом", "pt": "colorido superior", "nl": "bovenaan gekleurd", "fr": "top coloré", "it": "top colorato", "es": "tapa coloreada", "pl": "górne kolorowe"},
|
||||
"bottomColor": { "en": "bottom colored", "de": "unten farblich", "ru": "снизу цветом", "pt": "colorido inferior", "nl": "onderaan gekleurd", "fr": "fond coloré", "it": "fondo colorato", "es": "color de fondo", "pl": "u dołu w kolorze"},
|
||||
"default": { "en": "default", "de": "default", "ru": "по умолчанию", "pt": "padrão", "nl": "standaard", "fr": "défaut", "it": "predefinito", "es": "defecto", "pl": "domyślna"},
|
||||
"Auto-update:": { "en": "Auto-update:", "de": "Auto-update:", "ru": "Обновлять сразу:", "pt": "Atualização automática:", "nl": "Auto update:", "fr": "Mise à jour automatique:", "it": "Aggiornamento automatico:", "es": "Actualización automática:", "pl": "Automatyczna aktualizacja:"},
|
||||
"Use comma:": { "en": "Use comma:", "de": "Benutze Komma:", "ru": "Запятая-разделитель:", "pt": "Usar vírgula:", "nl": "Gebruik komma:", "fr": "Utilisez une virgule:", "it": "Usa la virgola:", "es": "Usa la coma", "pl": "Użyj przecinka:"},
|
||||
"Common Y Axis": { "en": "Common Y Axis", "de": "Gemeinsame Y-Achse", "ru": "Общая ось Y", "pt": "Eixo Y comum", "nl": "Gemeenschappelijke Y-as", "fr": "Axe Y commun", "it": "Asse Y comune", "es": "Eje Y común", "pl": "Wspólna oś Y."},
|
||||
"Instance": { "en": "Instance", "de": "Instanz", "ru": "Драйвер", "pt": "Instância", "nl": "Aanleg", "fr": "Exemple", "it": "Esempio", "es": "Ejemplo", "pl": "Instancja"},
|
||||
"Line Width": { "en": "Line Width", "de": "Linienstärke", "ru": "Ширина линии", "pt": "Espessura da linha", "nl": "Lijnbreedte", "fr": "Largeur de ligne", "it": "Larghezza della linea", "es": "Ancho de línea", "pl": "Szerokość linii"},
|
||||
"Shadow Size": { "en": "Shadow Size", "de": "Schattengröße", "ru": "Ширина тени", "pt": "Tamanho da sombra", "nl": "Schaduwgrootte", "fr": "Taille de l'ombre", "it": "Dimensione dell'ombra", "es": "Tamaño de las Sombras", "pl": "Rozmiar cienia"},
|
||||
"ignore 'null':": { "en": "ignore 'null':", "de": "'null' ignorieren:", "ru": "Игнорировать 'null':", "pt": "ignore 'null':", "nl": "negeer 'null':", "fr": "ignore 'null':", "it": "ignora 'null':", "es": "ignorar 'nulo':", "pl": "zignoruj \"null\":"},
|
||||
"onchange": { "en": "on change", "de": "bei Änderung", "ru": "при изменении", "pt": "em mudança", "nl": "over verandering", "fr": "sur le changement", "it": "sul cambiamento", "es": "en cambio", "pl": "o zmianie"},
|
||||
"Border color:": { "en": "Border color:", "de": "Rahmenfarbe:", "ru": "Цвет рамки:", "pt": "Cor da borda:", "nl": "Rand kleur:", "fr": "Couleur de la bordure:", "it": "Colore del bordo:", "es": "Color del borde:", "pl": "Kolor ramki:"},
|
||||
"Grid color:": { "en": "Grid color:", "de": "Gitterfarbe:", "ru": "Цвет сетки:", "pt": "Cor da grade:", "nl": "Raster kleur:", "fr": "Couleur de la grille:", "it": "Colore griglia:", "es": "Color de cuadrícula", "pl": "Kolor siatki:"},
|
||||
"Border width:": { "en": "Border width:", "de": "Rahmenbreite:", "ru": "Ширина рамки:", "pt": "Largura da borda:", "nl": "Grensbreedte:", "fr": "Largeur de la bordure:", "it": "Larghezza del bordo:", "es": "Ancho del borde:", "pl": "Szerokość granicy:"},
|
||||
"Enable zoom and pan:": { "en": "Enable zoom and pan:", "de": "Aktiviere Zoom und Schieben:", "ru": "Разрешить увеличение и сдвиг:", "pt": "Ative o zoom e pan:", "nl": "Zoom en pan inschakelen:", "fr": "Activer le zoom et le panoramique:", "it": "Abilita zoom e panoramica:", "es": "Habilitar zoom y pan:", "pl": "Włącz powiększanie i panoramowanie:"},
|
||||
"Arrange bools": { "en": "Arrange booleans", "de": "Platziere Booleans", "ru": "Выстроить bool графики", "pt": "Organizar booleanos", "nl": "Booleans regelen", "fr": "Organiser les booléens", "it": "Disporre i booleani", "es": "Organizar booleanos", "pl": "Rozmieść booleans"},
|
||||
"NULL as": { "en": "NULL as", "de": "NULL als", "ru": "NULL как", "pt": "NULL como", "nl": "NULL als", "fr": "NULL comme", "it": "NULL come", "es": "NULL como", "pl": "NULL as"},
|
||||
"MinMax": { "en": "MinMax", "de": "MinMax", "ru": "MinMax", "pt": "Mínimo máximo", "nl": "MinMax", "fr": "Min max", "it": "Minimo Massimo", "es": "Mínimo máximo", "pl": "Minimum maksimum"},
|
||||
"null": { "en": "null", "de": "null", "ru": "null", "pt": "nulo", "nl": "nul", "fr": "nul", "it": "nullo", "es": "nulo", "pl": "zero"},
|
||||
"true": { "en": "last value", "de": "letztes Wert", "ru": "пред. значение", "pt": "último valor", "nl": "laatste waarde", "fr": "dernière valeur", "it": "ultimo valore", "es": "último valor", "pl": "ostatnia wartość"},
|
||||
"last value": { "en": "last value", "de": "letztes Wert", "ru": "пред. значение", "pt": "último valor", "nl": "laatste waarde", "fr": "dernière valeur", "it": "ultimo valore", "es": "último valor", "pl": "ostatnia wartość"},
|
||||
"Hide edit button:": { "en": "Hide edit button:", "de": "Kein 'Edit'-Knopf:", "ru": "Скрыть кнопку 'Редактировать':", "pt": "Ocultar botão de edição:", "nl": "Verberg bewerken knop:", "fr": "Masquer le bouton d'édition:", "it": "Nascondi pulsante di modifica:", "es": "Ocultar botón de edición:", "pl": "Ukryj przycisk edycji:"},
|
||||
"minmax": { "en": "minmax", "de": "minmax", "ru": "minmax", "pt": "mínimo máximo", "nl": "MinMax", "fr": "min max", "it": "minimo Massimo", "es": "mínimo máximo", "pl": "minimum maksimum"},
|
||||
"ØL": { "en": "ØL", "de": "ØL", "ru": "ØL", "pt": "& # 216L", "nl": "& # 216L", "fr": "& # 216L", "it": "& # 216L", "es": "& # 216L", "pl": "& # 216L"},
|
||||
"ØS": { "en": "ØS", "de": "ØS", "ru": "ØS", "pt": "& # 216S", "nl": "& # 216S", "fr": "& # 216S", "it": "& # 216S", "es": "& # 216S", "pl": "& # 216S"},
|
||||
"Line": { "en": "Line", "de": "Linie", "ru": "Линия", "pt": "Linha", "nl": "Lijn", "fr": "Ligne", "it": "Linea", "es": "Línea", "pl": "Linia"},
|
||||
"false": { "en": "null", "de": "null", "ru": "null", "pt": "nulo", "nl": "nul", "fr": "nul", "it": "nullo", "es": "nulo", "pl": "zero"},
|
||||
"end of minute": { "en": "end of minute", "de": "Minutenende", "ru": "Конец минуты", "pt": "fim de minuto", "nl": "einde van de minuut", "fr": "fin de minute", "it": "fine del minuto", "es": "fin del minuto", "pl": "koniec minuty"},
|
||||
"end of 5 minutes": { "en": "end of 5 minutes", "de": "Ende von 5 Minuten", "ru": "Конец 5 minutes", "pt": "fim de 5 minutos", "nl": "einde van 5 minuten", "fr": "fin de 5 minutes", "it": "fine di 5 minuti", "es": "fin de 5 minutos", "pl": "koniec 5 minut"},
|
||||
"end of 10 minutes": { "en": "end of 10 minutes", "de": "Ende von 10 Minuten", "ru": "Конец 10 minutes", "pt": "fim de 10 minutos", "nl": "einde van 10 minuten", "fr": "fin de 10 minutes", "it": "fine di 10 minuti", "es": "fin de 10 minutos", "pl": "koniec 10 minut"},
|
||||
"end of 30 minutes": { "en": "end of 30 minutes", "de": "Ende von 30 Minuten", "ru": "Конец 30 minutes", "pt": "fim de 30 minutos", "nl": "einde van 30 minuten", "fr": "fin de 30 minutes", "it": "fine di 30 minuti", "es": "fin de 30 minutos", "pl": "koniec 30 minut"},
|
||||
"end of hour": { "en": "end of hour", "de": "Stundenende", "ru": "Конец часа", "pt": "fim de hora", "nl": "einde van het uur", "fr": "fin de l'heure", "it": "fine dell'ora", "es": "fin de hora", "pl": "koniec godziny"},
|
||||
"end of 2 hours": { "en": "end of 2 hours", "de": "Ende von 2 Stunden", "ru": "Конец 2 часов", "pt": "fim de 2 horas", "nl": "einde van 2 uur", "fr": "fin de 2 heures", "it": "fine di 2 ore", "es": "fin de 2 horas", "pl": "koniec 2 godzin"},
|
||||
"end of 3 hours": { "en": "end of 3 hours", "de": "Ende von 3 Stunden", "ru": "Конец 3 часов", "pt": "fim de 3 horas", "nl": "einde van 3 uur", "fr": "fin de 3 heures", "it": "fine di 3 ore", "es": "fin de 3 horas", "pl": "koniec 3 godzin"},
|
||||
"end of 4 hours": { "en": "end of 4 hours", "de": "Ende von 4 Stunden", "ru": "Конец 4 часов", "pt": "fim de 4 horas", "nl": "einde van 4 uur", "fr": "fin de 4 heures", "it": "fine di 4 ore", "es": "fin de 4 horas", "pl": "koniec 4 godzin"},
|
||||
"end of 6 hours": { "en": "end of 6 hours", "de": "Ende von 6 Stunden", "ru": "Конец 6 часов", "pt": "fim de 6 horas", "nl": "einde van 6 uur", "fr": "fin de 6 heures", "it": "fine di 6 ore", "es": "fin de 6 horas", "pl": "koniec 6 godzin"},
|
||||
"end of 8 hours": { "en": "end of 8 hours", "de": "Ende von 8 Stunden", "ru": "Конец 8 часов", "pt": "fim de 8 horas", "nl": "einde van 8 uur", "fr": "fin de 8 heures", "it": "fine di 8 ore", "es": "fin de 8 horas", "pl": "koniec 8 godzin"},
|
||||
"end of 12 hours": { "en": "end of 12 hours", "de": "Ende von 12 Stunden", "ru": "Конец 12 часов", "pt": "fim de 12 horas", "nl": "einde van 12 uur", "fr": "fin de 12 heures", "it": "fine di 12 ore", "es": "fin de 12 horas", "pl": "koniec 12 godzin"},
|
||||
"end of day": { "en": "end of day", "de": "Tagesende", "ru": "Конец дня", "pt": "fim do dia", "nl": "einde van de dag", "fr": "fin de la journée", "it": "fine del giorno", "es": "fin del día", "pl": "koniec dnia"},
|
||||
"end of sunday": { "en": "end of sunday", "de": "Wochenssende", "ru": "Конец недели", "pt": "fim de domingo", "nl": "einde van zondag", "fr": "fin de dimanche", "it": "fine della domenica", "es": "fin del domingo", "pl": "koniec niedzieli"},
|
||||
"end of saturday": { "en": "end of saturday", "de": "Samstagsende", "ru": "Конец субботы", "pt": "fim de sábado", "nl": "einde van zaterdag", "fr": "fin de samedi", "it": "fine di sabato", "es": "fin de sabado", "pl": "koniec soboty"},
|
||||
"1minute": { "en": "end of minute", "de": "Minutenende", "ru": "Конец минуты", "pt": "fim de minuto", "nl": "einde van de minuut", "fr": "fin de minute", "it": "fine del minuto", "es": "fin del minuto", "pl": "koniec minuty"},
|
||||
"5minutes": { "en": "end of 5 minutes", "de": "Ende von 5 Minuten", "ru": "Конец 5 minutes", "pt": "fim de 5 minutos", "nl": "einde van 5 minuten", "fr": "fin de 5 minutes", "it": "fine di 5 minuti", "es": "fin de 5 minutos", "pl": "koniec 5 minut"},
|
||||
"10minutes": { "en": "end of 10 minutes", "de": "Ende von 10 Minuten", "ru": "Конец 10 minutes", "pt": "fim de 10 minutos", "nl": "einde van 10 minuten", "fr": "fin de 10 minutes", "it": "fine di 10 minuti", "es": "fin de 10 minutos", "pl": "koniec 10 minut"},
|
||||
"30minutes": { "en": "end of 30 minutes", "de": "Ende von 30 Minuten", "ru": "Конец 30 minutes", "pt": "fim de 30 minutos", "nl": "einde van 30 minuten", "fr": "fin de 30 minutes", "it": "fine di 30 minuti", "es": "fin de 30 minutos", "pl": "koniec 30 minut"},
|
||||
"1hour": { "en": "end of hour", "de": "Stundenende", "ru": "Конец часа", "pt": "fim de hora", "nl": "einde van het uur", "fr": "fin de l'heure", "it": "fine dell'ora", "es": "fin de hora", "pl": "koniec godziny"},
|
||||
"2hours": { "en": "end of 2 hours", "de": "Ende von 2 Stunden", "ru": "Конец 2 часов", "pt": "fim de 2 horas", "nl": "einde van 2 uur", "fr": "fin de 2 heures", "it": "fine di 2 ore", "es": "fin de 2 horas", "pl": "koniec 2 godzin"},
|
||||
"3hours": { "en": "end of 3 hours", "de": "Ende von 3 Stunden", "ru": "Конец 3 часов", "pt": "fim de 3 horas", "nl": "einde van 3 uur", "fr": "fin de 3 heures", "it": "fine di 3 ore", "es": "fin de 3 horas", "pl": "koniec 3 godzin"},
|
||||
"4hours": { "en": "end of 4 hours", "de": "Ende von 4 Stunden", "ru": "Конец 4 часов", "pt": "fim de 4 horas", "nl": "einde van 4 uur", "fr": "fin de 4 heures", "it": "fine di 4 ore", "es": "fin de 4 horas", "pl": "koniec 4 godzin"},
|
||||
"6hours": { "en": "end of 6 hours", "de": "Ende von 6 Stunden", "ru": "Конец 6 часов", "pt": "fim de 6 horas", "nl": "einde van 6 uur", "fr": "fin de 6 heures", "it": "fine di 6 ore", "es": "fin de 6 horas", "pl": "koniec 6 godzin"},
|
||||
"8hours": { "en": "end of 8 hours", "de": "Ende von 8 Stunden", "ru": "Конец 8 часов", "pt": "fim de 8 horas", "nl": "einde van 8 uur", "fr": "fin de 8 heures", "it": "fine di 8 ore", "es": "fin de 8 horas", "pl": "koniec 8 godzin"},
|
||||
"12hours": { "en": "end of 12 hours", "de": "Ende von 12 Stunden", "ru": "Конец 12 часов", "pt": "fim de 12 horas", "nl": "einde van 12 uur", "fr": "fin de 12 heures", "it": "fine di 12 ore", "es": "fin de 12 horas", "pl": "koniec 12 godzin"},
|
||||
"weekEurope": { "en": "end of day", "de": "Tagesende", "ru": "Конец дня", "pt": "fim do dia", "nl": "einde van de dag", "fr": "fin de la journée", "it": "fine del giorno", "es": "fin del día", "pl": "koniec dnia"},
|
||||
"weekUsa": { "en": "end of sunday", "de": "Wochenssende", "ru": "Конец недели", "pt": "fim de domingo", "nl": "einde van zondag", "fr": "fin de dimanche", "it": "fine della domenica", "es": "fin del domingo", "pl": "koniec niedzieli"},
|
||||
"Bar settings": { "en": "Bar settings", "de": "Bar-Einstellungen", "ru": "Настройки Bar", "pt": "Configurações da barra", "nl": "Bar-instellingen", "fr": "Paramètres du bar", "it": "Impostazioni della barra", "es": "Configuración de barra", "pl": "Ustawienia paska"},
|
||||
"Fill color:": { "en": "Fill color:", "de": "Füllfarbe color:", "ru": "Цвет заливки:", "pt": "Cor de preenchimento:", "nl": "Opvulkleur:", "fr": "La couleur de remplissage:", "it": "Colore di riempimento:", "es": "Color de relleno:", "pl": "Kolor wypełnienia:"},
|
||||
"Show labels:": { "en": "Show labels:", "de": "Zeige Labels:", "ru": "Подписи:", "pt": "Mostrar rótulos:", "nl": "Toon labels:", "fr": "Afficher les étiquettes:", "it": "Mostra etichette:", "es": "Mostrar etiquetas:", "pl": "Pokaż etykiety:"},
|
||||
"top over": { "en": "top over", "de": "oben über", "ru": "Сверху над", "pt": "mais alto", "nl": "opnieuw gedaan", "fr": "dessus", "it": "sopra", "es": "arriba encima", "pl": "do góry"},
|
||||
"top under": { "en": "top under", "de": "oben unten", "ru": "Сверху под", "pt": "top sob", "nl": "top onder", "fr": "haut sous", "it": "sopra sotto", "es": "arriba debajo", "pl": "górny pod"},
|
||||
"middle": { "en": "middle", "de": "mittig", "ru": "В середине", "pt": "meio", "nl": "midden-", "fr": "milieu", "it": "mezzo", "es": "medio", "pl": "środkowy"},
|
||||
"Bars width:": { "en": "Bars width:", "de": "Barbreite:", "ru": "Ширина бара:", "pt": "Largura das barras:", "nl": "Staaf breedte:", "fr": "Largeur des barres:", "it": "Larghezza delle barre:", "es": "Ancho de barras:", "pl": "Szerokość prętów:"},
|
||||
"Label font size:": { "en": "Label font size:", "de": "Labelschriftgröße:", "ru": "Шрифт подписи:", "pt": "Etiquetar tamanho da fonte:", "nl": "Label lettergrootte:", "fr": "Étiquette taille de la police:", "it": "Dimensione del carattere dell'etichetta:", "es": "Tamaño de letra de la etiqueta:", "pl": "Rozmiar czcionki etykiety:"},
|
||||
"Label color:": { "en": "Label color:", "de": "Labelfarbe:", "ru": "Цвет подписи:", "pt": "Cor do rótulo:", "nl": "Label kleur:", "fr": "Étiquette couleur:", "it": "Colore dell'etichetta:", "es": "Color de etiqueta:", "pl": "Kolor etykiety:"},
|
||||
"Markings": { "en": "Markings", "de": "Markierungen", "ru": "Разметка", "pt": "Marcas", "nl": "markeringen", "fr": "Marquages", "it": "marcature", "es": "Marcas", "pl": "Znakowania"},
|
||||
"Line ID": { "en": "Line ID", "de": "Linie ID", "ru": "ID линии", "pt": "ID da linha", "nl": "Lijn-ID", "fr": "Id de ligne", "it": "ID linea", "es": "Identificación de línea", "pl": "Identyfikator linii"},
|
||||
"Fill": { "en": "Fill", "de": "Füllen", "ru": "Заливка", "pt": "Preencher", "nl": "Vullen", "fr": "Remplir", "it": "Riempire", "es": "Llenar", "pl": "Napełnić"},
|
||||
"ØL": { "en": "ØL", "de": "ØL", "ru": "ØL", "pt": "ØL", "nl": "ØL", "fr": "ØL", "it": "ØL", "es": "ØL", "pl": "ØL"},
|
||||
"ØS": { "en": "ØS", "de": "ØS", "ru": "ØS", "pt": "ØS", "nl": "Os", "fr": "ØS", "it": "ØS", "es": "ØS", "pl": "ØS"},
|
||||
"Text": { "en": "Text", "de": "Text", "ru": "Текст", "pt": "Texto", "nl": "Tekst", "fr": "Texte", "it": "Testo", "es": "Texto", "pl": "Tekst"},
|
||||
"Text position": { "en": "Text position", "de": "Textposition", "ru": "Расположение текста", "pt": "Posição de texto", "nl": "Tekstpositie", "fr": "Position du texte", "it": "Posizione del testo", "es": "Posición del texto", "pl": "Pozycja tekstu"},
|
||||
"Text offset": { "en": "Text offset", "de": "Text-Offset", "ru": "Сдвиг текста", "pt": "Deslocamento de texto", "nl": "Tekst offset", "fr": "Décalage de texte", "it": "Offset del testo", "es": "Offset de texto", "pl": "Przesunięcie tekstu"},
|
||||
"Text size": { "en": "Text size", "de": "Textgröße", "ru": "Размер текста", "pt": "Tamanho do texto", "nl": "Lettergrootte", "fr": "Taille du texte", "it": "Dimensione del testo", "es": "Tamano del texto", "pl": "Rozmiar czcionki"},
|
||||
"Text color": { "en": "Text color", "de": "Textfarbe", "ru": "Цвет текста", "pt": "Cor do texto", "nl": "Tekst kleur", "fr": "Couleur du texte", "it": "Colore del testo", "es": "Color de texto", "pl": "Kolor tekstu"},
|
||||
"Add new markings": { "en": "Add new markings", "de": "Neue Markierung hinzufügen", "ru": "Добавить разметку", "pt": "Adicionar novas marcações", "nl": "Voeg nieuwe markeringen toe", "fr": "Ajouter de nouvelles marques", "it": "Aggiungi nuovi segni", "es": "Agregar nuevas marcas", "pl": "Dodaj nowe oznaczenia"},
|
||||
"Left": { "en": "Left", "de": "Links", "ru": "слева", "pt": "Esquerda", "nl": "Links", "fr": "La gauche", "it": "Sinistra", "es": "Izquierda", "pl": "Lewo"},
|
||||
"Right": { "en": "Right", "de": "Rechts", "ru": "справа", "pt": "Certo", "nl": "Rechts", "fr": "Droite", "it": "Destra", "es": "Derecha", "pl": "Dobrze"},
|
||||
"Upper value or ID": { "en": "Upper value or ID", "de": "Oberes Wert oder ID", "ru": "Верхнее значение или ID", "pt": "Valor superior ou ID", "nl": "Hoogste waarde of ID", "fr": "Valeur supérieure ou ID", "it": "Valore massimo o ID", "es": "Valor superior o ID", "pl": "Górna wartość lub ID"},
|
||||
"Lower value or ID": { "en": "Lower value or ID", "de": "Unteres Wert oder ID", "ru": "Нижнее значение или ID", "pt": "Menor valor ou ID", "nl": "Lagere waarde of ID", "fr": "Valeur inférieure ou ID", "it": "Valore più basso o ID", "es": "Menor valor o ID", "pl": "Niższa wartość lub ID"},
|
||||
"X-Axis ticks": { "en": "X-Axis ticks", "de": "X-Achse-Ticks", "ru": "Кол-во делений на шкале X", "pt": "Carrapatos do X-Axis", "nl": "X-as-teken", "fr": "Tiques de l'axe des X", "it": "Zecche X-Axis", "es": "Garrapatas X-Axis", "pl": "Tiki X-Axis"},
|
||||
"Y-Axis ticks": { "en": "Y-Axis ticks", "de": "Y-Achse-Ticks", "ru": "Кол-во делений на шкале Y", "pt": "Carrapatos do Y-Axis", "nl": "Y-as tikken", "fr": "Tiques de l'axe des Y", "it": "Zecche dell'asse Y.", "es": "Señales del eje Y", "pl": "Tyksy Y-Axis"},
|
||||
"ignore null values": { "en": "ignore null values", "de": "null-Werte ignorieren", "ru": "игнорировать значения null", "pt": "ignore valores nulos", "nl": "Negeer waarden negeren", "fr": "ignorer les valeurs nulles", "it": "ignora valori nulli", "es": "ignorar valores nulos", "pl": "ignoruj wartości puste"},
|
||||
"Ticks from:": { "en": "Use X-ticks from:", "de": "Benutze X-Ticks aus:", "ru": "Подписи X-делений из:", "pt": "Use X-ticks de:", "nl": "Gebruik X-ticks van:", "fr": "Utilisez les X-ticks de:", "it": "Usa X-tick da:", "es": "Use X-ticks desde:", "pl": "Użyj tyknięć X z:"},
|
||||
"use 0 instead of null values": { "en": "use 0 instead of null values", "de": "0 statt null benutzen", "ru": "Заменять null на 0", "pt": "use 0 em vez de valores nulos", "nl": "gebruik 0 in plaats van nulwaarden", "fr": "utilise 0 au lieu de valeurs nulles", "it": "usa 0 invece di valori nulli", "es": "use 0 en lugar de valores nulos", "pl": "użyj 0 zamiast wartości zerowych"},
|
||||
"More": { "en": "more", "de": "mehr", "ru": "ещё", "pt": "Mais", "nl": "meer", "fr": "plus", "it": "Di Più", "es": "Más", "pl": "jeszcze"},
|
||||
"Edit options for line %s": { "en": "Edit options for line %s", "de": "Editieren weitere Einstellungen für Linie %s", "ru": "Редактировать настройки для линии %s", "pt": "Editar opções para a linha% s", "nl": "Bewerk opties voor regel% s", "fr": "Modifier les options pour la ligne% s", "it": "Modifica le opzioni per la riga% s", "es": "Editar opciones para la línea% s", "pl": "Edytuj opcje linii% s"},
|
||||
"Legend columns:": { "en": "Legend columns:", "de": "Spalten in Legende:", "ru": "Колонок в легенде:", "pt": "Colunas da legenda:", "nl": "Legenda kolommen:", "fr": "Colonnes de légende:", "it": "Colonne della legenda:", "es": "Columnas leyenda", "pl": "Kolumny legendy:"},
|
||||
"Legend opacity (from 0 to 1):": { "en": "Legend opacity (from 0 to 1):", "de": "Legende-Opacity (von 0 bis 1):", "ru": "Прозрачность легенды (от 0 до 1):", "pt": "Opacidade da legenda (de 0 a 1):", "nl": "Legenda opaciteit (van 0 tot 1):", "fr": "Opacité de la légende (de 0 à 1):", "it": "Opacità della legenda (da 0 a 1):", "es": "Opacidad de la leyenda (de 0 a 1):", "pl": "Krycie Legendy (od 0 do 1):"},
|
||||
"Legend background:": { "en": "Legend background:", "de": "Legende-Hintergrund:", "ru": "Фон легенды:", "pt": "Legend background:", "nl": "Legenda achtergrond:", "fr": "Contexte de la légende", "it": "Sfondo leggenda:", "es": "Antecedentes de leyenda:", "pl": "Tło legendy:"},
|
||||
"Fill(0to1)": { "en": "Fill(0to1)", "de": "Füllen(0bis1)", "ru": "Фон(0to1)", "pt": "Preencher (0 a 1)", "nl": "Fill (0to1)", "fr": "Remplir (0to1)", "it": "Fill (0to1)", "es": "Rellenar (0to1)", "pl": "Wypełnij (0to1)"},
|
||||
"Points": { "en": "Points", "de": "Punkte", "ru": "Точки", "pt": "Pontos", "nl": "punten", "fr": "Points", "it": "Punti", "es": "Puntos", "pl": "Zwrotnica"},
|
||||
};
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 134 B |
|
After Width: | Height: | Size: 198 B |
|
After Width: | Height: | Size: 382 B |
|
After Width: | Height: | Size: 139 B |
|
After Width: | Height: | Size: 344 B |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 135 B |
|
After Width: | Height: | Size: 494 B |
@@ -0,0 +1,239 @@
|
||||
.ui-colorpicker,
|
||||
.ui-dialog.ui-colorpicker {
|
||||
width: auto;
|
||||
white-space: nowrap;
|
||||
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.ui-colorpicker-inline {
|
||||
position: static;
|
||||
}
|
||||
|
||||
.ui-colorpicker-buttonset {
|
||||
float: left;
|
||||
margin-left: .4em;
|
||||
}
|
||||
|
||||
.ui-colorpicker-buttonset .ui-button {
|
||||
margin: .5em 0 .5em 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.ui-colorpicker-buttonpane {
|
||||
background-image: none;
|
||||
margin: .7em 0 0 0;
|
||||
padding: 0 .2em;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.ui-colorpicker-buttonpane button {
|
||||
float: right;
|
||||
margin: .5em .2em .4em;
|
||||
cursor: pointer;
|
||||
padding: .2em .6em .3em .6em;
|
||||
width: auto;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.ui-colorpicker-buttonpane button.ui-colorpicker-current {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.ui-colorpicker table {
|
||||
width: 100%;
|
||||
font-size: 100%; /* Reset browser table font-size */
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.ui-colorpicker table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.ui-colorpicker-padding-left {
|
||||
padding-left: 10px;
|
||||
}
|
||||
.ui-colorpicker-padding-top {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.ui-colorpicker-border {
|
||||
border: 1px inset;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* Bar & map */
|
||||
.ui-colorpicker-map > *,
|
||||
.ui-colorpicker-bar > * {
|
||||
position: absolute;
|
||||
cursor: crosshair;
|
||||
}
|
||||
|
||||
.ui-colorpicker-map-pointer,
|
||||
.ui-colorpicker-bar-pointer {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
/* Map */
|
||||
.ui-colorpicker-map,
|
||||
.ui-colorpicker-map > * {
|
||||
display: block;
|
||||
width: 256px;
|
||||
height: 256px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ui-colorpicker-map-layer-1,
|
||||
.ui-colorpicker-map-layer-2 {
|
||||
background: url(images/map.png) no-repeat;
|
||||
}
|
||||
|
||||
.ui-colorpicker-map-128,
|
||||
.ui-colorpicker-map-128 > * {
|
||||
width: 128px;
|
||||
height: 128px;
|
||||
}
|
||||
|
||||
.ui-colorpicker-map-128 .ui-colorpicker-map-layer-1,
|
||||
.ui-colorpicker-map-128 .ui-colorpicker-map-layer-2 {
|
||||
background: url(images/128/map.png) no-repeat;
|
||||
}
|
||||
|
||||
.ui-colorpicker-map-layer-alpha {
|
||||
background: url(images/map-opacity.png);
|
||||
}
|
||||
|
||||
.ui-colorpicker-map-pointer {
|
||||
display: inline-block;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
background: url(images/map-pointer.png) no-repeat;
|
||||
}
|
||||
|
||||
/* Bar */
|
||||
.ui-colorpicker-bar,
|
||||
.ui-colorpicker-bar > * {
|
||||
display: block;
|
||||
width: 20px;
|
||||
height: 256px;
|
||||
overflow: hidden;
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
.ui-colorpicker-bar-128,
|
||||
.ui-colorpicker-bar-128 > * {
|
||||
height: 128px;
|
||||
}
|
||||
|
||||
.ui-colorpicker-bar-layer-1,
|
||||
.ui-colorpicker-bar-layer-2,
|
||||
.ui-colorpicker-bar-layer-3,
|
||||
.ui-colorpicker-bar-layer-4 {
|
||||
background: url(images/bar.png) repeat-x;
|
||||
}
|
||||
|
||||
.ui-colorpicker-bar-128 .ui-colorpicker-bar-layer-1,
|
||||
.ui-colorpicker-bar-128 .ui-colorpicker-bar-layer-2,
|
||||
.ui-colorpicker-bar-128 .ui-colorpicker-bar-layer-3,
|
||||
.ui-colorpicker-bar-128 .ui-colorpicker-bar-layer-4 {
|
||||
background: url(images/128/bar.png) repeat-x;
|
||||
}
|
||||
|
||||
.ui-colorpicker-bar-layer-alpha {
|
||||
background: url(images/bar-opacity.png);
|
||||
}
|
||||
|
||||
.ui-colorpicker-bar-layer-alphabar {
|
||||
background: url(images/bar-alpha.png);
|
||||
}
|
||||
|
||||
.ui-colorpicker-bar-128 .ui-colorpicker-bar-layer-alphabar {
|
||||
background: url(images/128/bar-alpha.png);
|
||||
}
|
||||
|
||||
.ui-colorpicker-bar-pointer {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 7px;
|
||||
background: url(images/bar-pointer.png) no-repeat;
|
||||
}
|
||||
|
||||
/* Preview */
|
||||
.ui-colorpicker-preview {
|
||||
text-align: center;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.ui-colorpicker-preview-initial {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.ui-colorpicker-preview-initial,
|
||||
.ui-colorpicker-preview-current {
|
||||
width: 50px;
|
||||
height: 20px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.ui-colorpicker-preview-initial-alpha,
|
||||
.ui-colorpicker-preview-current-alpha {
|
||||
width: 50px;
|
||||
height: 20px;
|
||||
display: inline-block;
|
||||
background: url(images/preview-opacity.png) repeat;
|
||||
}
|
||||
|
||||
/* Inputs */
|
||||
.ui-colorpicker-rgb label,
|
||||
.ui-colorpicker-hsv label,
|
||||
.ui-colorpicker-hsl label,
|
||||
.ui-colorpicker-lab label,
|
||||
.ui-colorpicker-cmyk label,
|
||||
.ui-colorpicker-alpha label {
|
||||
width: 1.5em;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.ui-colorpicker-number {
|
||||
margin: .1em;
|
||||
width: 4em;
|
||||
}
|
||||
|
||||
/* Hex */
|
||||
.ui-colorpicker-hex {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Swatches */
|
||||
.ui-colorpicker-swatches {
|
||||
height: 256px;
|
||||
overflow: auto;
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
.ui-colorpicker-swatch {
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
width: 11px;
|
||||
height: 11px;
|
||||
border-right: 1px solid black;
|
||||
border-bottom: 1px solid black;
|
||||
}
|
||||
|
||||
.ui-colorpicker-disabled {
|
||||
opacity: .5;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
||||
filter: alpha(opacity=50);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.ui-colorpicker-disabled * {
|
||||
cursor: default !important;
|
||||
}
|
||||
@@ -0,0 +1,483 @@
|
||||
/* The MIT License
|
||||
|
||||
Copyright (c) 2011 by Michael Zinsmaier and nergal.dev
|
||||
Copyright (c) 2012 by Thomas Ritou
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
____________________________________________________
|
||||
|
||||
what it is:
|
||||
____________________________________________________
|
||||
|
||||
curvedLines is a plugin for flot, that tries to display lines in a smoother way.
|
||||
This is achieved through adding of more data points. The plugin is a data processor and can thus be used
|
||||
in combination with standard line / point rendering options.
|
||||
|
||||
=> 1) with large data sets you may get trouble
|
||||
=> 2) if you want to display the points too, you have to plot them as 2nd data series over the lines
|
||||
=> 3) consecutive x data points are not allowed to have the same value
|
||||
|
||||
Feel free to further improve the code
|
||||
|
||||
____________________________________________________
|
||||
|
||||
how to use it:
|
||||
____________________________________________________
|
||||
|
||||
var d1 = [[5,5],[7,3],[9,12]];
|
||||
|
||||
var options = { series: { curvedLines: { active: true }}};
|
||||
|
||||
$.plot($("#placeholder"), [{data: d1, lines: { show: true}, curvedLines: {apply: true}}], options);
|
||||
|
||||
_____________________________________________________
|
||||
|
||||
options:
|
||||
_____________________________________________________
|
||||
|
||||
active: bool true => plugin can be used
|
||||
apply: bool true => series will be drawn as curved line
|
||||
monotonicFit: bool true => uses monotone cubic interpolation (preserve monotonicity)
|
||||
tension: int defines the tension parameter of the hermite spline interpolation (no effect if monotonicFit is set)
|
||||
nrSplinePoints: int defines the number of sample points (of the spline) in between two consecutive points
|
||||
|
||||
deprecated options from flot prior to 1.0.0:
|
||||
------------------------------------------------
|
||||
legacyOverride bool true => use old default
|
||||
OR
|
||||
legacyOverride optionArray
|
||||
{
|
||||
fit: bool true => forces the max,mins of the curve to be on the datapoints
|
||||
curvePointFactor int defines how many "virtual" points are used per "real" data point to
|
||||
emulate the curvedLines (points total = real points * curvePointFactor)
|
||||
fitPointDist: int defines the x axis distance of the additional two points that are used
|
||||
} to enforce the min max condition.
|
||||
*/
|
||||
|
||||
/*
|
||||
* v0.1 initial commit
|
||||
* v0.15 negative values should work now (outcommented a negative -> 0 hook hope it does no harm)
|
||||
* v0.2 added fill option (thanks to monemihir) and multi axis support (thanks to soewono effendi)
|
||||
* v0.3 improved saddle handling and added basic handling of Dates
|
||||
* v0.4 rewritten fill option (thomas ritou) mostly from original flot code (now fill between points rather than to graph bottom), corrected fill Opacity bug
|
||||
* v0.5 rewritten instead of implementing a own draw function CurvedLines is now based on the processDatapoints flot hook (credits go to thomas ritou).
|
||||
* This change breakes existing code however CurvedLines are now just many tiny straight lines to flot and therefore all flot lines options (like gradient fill,
|
||||
* shadow) are now supported out of the box
|
||||
* v0.6 flot 0.8 compatibility and some bug fixes
|
||||
* v0.6.x changed versioning schema
|
||||
*
|
||||
* v1.0.0 API Break marked existing implementation/options as deprecated
|
||||
* v1.1.0 added the new curved line calculations based on hermite splines
|
||||
* v1.1.1 added a rough parameter check to make sure the new options are used
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
|
||||
var options = {
|
||||
series : {
|
||||
curvedLines : {
|
||||
active : false,
|
||||
apply : false,
|
||||
monotonicFit : false,
|
||||
tension : 0.5,
|
||||
nrSplinePoints : 20,
|
||||
legacyOverride : undefined
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function init(plot) {
|
||||
|
||||
plot.hooks.processOptions.push(processOptions);
|
||||
|
||||
//if the plugin is active register processDatapoints method
|
||||
function processOptions(plot, options) {
|
||||
if (options.series.curvedLines.active) {
|
||||
plot.hooks.processDatapoints.unshift(processDatapoints);
|
||||
}
|
||||
}
|
||||
|
||||
//only if the plugin is active
|
||||
function processDatapoints(plot, series, datapoints) {
|
||||
var nrPoints = datapoints.points.length / datapoints.pointsize;
|
||||
var EPSILON = 0.005;
|
||||
|
||||
//detects missplaced legacy parameters (prior v1.x.x) in the options object
|
||||
//this can happen if somebody upgrades to v1.x.x without adjusting the parameters or uses old examples
|
||||
var invalidLegacyOptions = hasInvalidParameters(series.curvedLines);
|
||||
|
||||
if (!invalidLegacyOptions && series.curvedLines.apply == true && series.originSeries === undefined && nrPoints > (1 + EPSILON)) {
|
||||
if (series.lines.fill) {
|
||||
|
||||
var pointsTop = calculateCurvePoints(datapoints, series.curvedLines, 1);
|
||||
var pointsBottom = calculateCurvePoints(datapoints, series.curvedLines, 2);
|
||||
//flot makes sure for us that we've got a second y point if fill is true !
|
||||
|
||||
//Merge top and bottom curve
|
||||
datapoints.pointsize = 3;
|
||||
datapoints.points = [];
|
||||
var j = 0;
|
||||
var k = 0;
|
||||
var i = 0;
|
||||
var ps = 2;
|
||||
while (i < pointsTop.length || j < pointsBottom.length) {
|
||||
if (pointsTop[i] == pointsBottom[j]) {
|
||||
datapoints.points[k] = pointsTop[i];
|
||||
datapoints.points[k + 1] = pointsTop[i + 1];
|
||||
datapoints.points[k + 2] = pointsBottom[j + 1];
|
||||
j += ps;
|
||||
i += ps;
|
||||
|
||||
} else if (pointsTop[i] < pointsBottom[j]) {
|
||||
datapoints.points[k] = pointsTop[i];
|
||||
datapoints.points[k + 1] = pointsTop[i + 1];
|
||||
datapoints.points[k + 2] = k > 0 ? datapoints.points[k - 1] : null;
|
||||
i += ps;
|
||||
} else {
|
||||
datapoints.points[k] = pointsBottom[j];
|
||||
datapoints.points[k + 1] = k > 1 ? datapoints.points[k - 2] : null;
|
||||
datapoints.points[k + 2] = pointsBottom[j + 1];
|
||||
j += ps;
|
||||
}
|
||||
k += 3;
|
||||
}
|
||||
} else if (series.lines.lineWidth > 0) {
|
||||
datapoints.points = calculateCurvePoints(datapoints, series.curvedLines, 1);
|
||||
datapoints.pointsize = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function calculateCurvePoints(datapoints, curvedLinesOptions, yPos) {
|
||||
if ( typeof curvedLinesOptions.legacyOverride != 'undefined' && curvedLinesOptions.legacyOverride != false) {
|
||||
var defaultOptions = {
|
||||
fit : false,
|
||||
curvePointFactor : 20,
|
||||
fitPointDist : undefined
|
||||
};
|
||||
var legacyOptions = jQuery.extend(defaultOptions, curvedLinesOptions.legacyOverride);
|
||||
return calculateLegacyCurvePoints(datapoints, legacyOptions, yPos);
|
||||
}
|
||||
|
||||
return calculateSplineCurvePoints(datapoints, curvedLinesOptions, yPos);
|
||||
}
|
||||
|
||||
function calculateSplineCurvePoints(datapoints, curvedLinesOptions, yPos) {
|
||||
var points = datapoints.points;
|
||||
var ps = datapoints.pointsize;
|
||||
|
||||
//create interpolant fuction
|
||||
var splines = createHermiteSplines(datapoints, curvedLinesOptions, yPos);
|
||||
var result = [];
|
||||
|
||||
//sample the function
|
||||
// (the result is intependent from the input data =>
|
||||
// it is ok to alter the input after this method)
|
||||
var j = 0;
|
||||
for (var i = 0; i < points.length - ps; i += ps) {
|
||||
var curX = i;
|
||||
var curY = i + yPos;
|
||||
|
||||
var xStart = points[curX];
|
||||
var xEnd = points[curX + ps];
|
||||
var xStep = (xEnd - xStart) / Number(curvedLinesOptions.nrSplinePoints);
|
||||
|
||||
//add point
|
||||
result.push(points[curX]);
|
||||
result.push(points[curY]);
|
||||
|
||||
//add curve point
|
||||
for (var x = (xStart += xStep); x < xEnd; x += xStep) {
|
||||
result.push(x);
|
||||
result.push(splines[j](x));
|
||||
}
|
||||
|
||||
j++;
|
||||
}
|
||||
|
||||
//add last point
|
||||
result.push(points[points.length - ps]);
|
||||
result.push(points[points.length - ps + yPos]);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Creates an array of splines, one for each segment of the original curve. Algorithm based on the wikipedia articles:
|
||||
//
|
||||
// http://de.wikipedia.org/w/index.php?title=Kubisch_Hermitescher_Spline&oldid=130168003 and
|
||||
// http://en.wikipedia.org/w/index.php?title=Monotone_cubic_interpolation&oldid=622341725 and the description of Fritsch-Carlson from
|
||||
// http://math.stackexchange.com/questions/45218/implementation-of-monotone-cubic-interpolation
|
||||
// for a detailed description see https://github.com/MichaelZinsmaier/CurvedLines/docu
|
||||
function createHermiteSplines(datapoints, curvedLinesOptions, yPos) {
|
||||
var points = datapoints.points;
|
||||
var ps = datapoints.pointsize;
|
||||
|
||||
// preparation get length (x_{k+1} - x_k) and slope s=(p_{k+1} - p_k) / (x_{k+1} - x_k) of the segments
|
||||
var segmentLengths = [];
|
||||
var segmentSlopes = [];
|
||||
|
||||
for (var i = 0; i < points.length - ps; i += ps) {
|
||||
var curX = i;
|
||||
var curY = i + yPos;
|
||||
var dx = points[curX + ps] - points[curX];
|
||||
var dy = points[curY + ps] - points[curY];
|
||||
|
||||
segmentLengths.push(dx);
|
||||
segmentSlopes.push(dy / dx);
|
||||
}
|
||||
|
||||
//get the values for the desired gradients m_k for all points k
|
||||
//depending on the used method the formula is different
|
||||
var gradients = [segmentSlopes[0]];
|
||||
if (curvedLinesOptions.monotonicFit) {
|
||||
// Fritsch Carlson
|
||||
for (var i = 1; i < segmentLengths.length; i++) {
|
||||
var slope = segmentSlopes[i];
|
||||
var prev_slope = segmentSlopes[i - 1];
|
||||
if (slope * prev_slope <= 0) { // sign(prev_slope) != sign(slpe)
|
||||
gradients.push(0);
|
||||
} else {
|
||||
var length = segmentLengths[i];
|
||||
var prev_length = segmentLengths[i - 1];
|
||||
var common = length + prev_length;
|
||||
//m = 3 (prev_length + length) / ((2 length + prev_length) / prev_slope + (length + 2 prev_length) / slope)
|
||||
gradients.push(3 * common / ((common + length) / prev_slope + (common + prev_length) / slope));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Cardinal spline with t € [0,1]
|
||||
// Catmull-Rom for t = 0
|
||||
for (var i = ps; i < points.length - ps; i += ps) {
|
||||
var curX = i;
|
||||
var curY = i + yPos;
|
||||
gradients.push(Number(curvedLinesOptions.tension) * (points[curY + ps] - points[curY - ps]) / (points[curX + ps] - points[curX - ps]));
|
||||
}
|
||||
}
|
||||
gradients.push(segmentSlopes[segmentSlopes.length - 1]);
|
||||
|
||||
//get the two major coefficients (c'_{oef1} and c'_{oef2}) for each segment spline
|
||||
var coefs1 = [];
|
||||
var coefs2 = [];
|
||||
for (i = 0; i < segmentLengths.length; i++) {
|
||||
var m_k = gradients[i];
|
||||
var m_k_plus = gradients[i + 1];
|
||||
var slope = segmentSlopes[i];
|
||||
var invLength = 1 / segmentLengths[i];
|
||||
var common = m_k + m_k_plus - slope - slope;
|
||||
|
||||
coefs1.push(common * invLength * invLength);
|
||||
coefs2.push((slope - common - m_k) * invLength);
|
||||
}
|
||||
|
||||
//create functions with from the coefficients and capture the parameters
|
||||
var ret = [];
|
||||
for (var i = 0; i < segmentLengths.length; i ++) {
|
||||
var spline = function (x_k, coef1, coef2, coef3, coef4) {
|
||||
// spline for a segment
|
||||
return function (x) {
|
||||
var diff = x - x_k;
|
||||
var diffSq = diff * diff;
|
||||
return coef1 * diff * diffSq + coef2 * diffSq + coef3 * diff + coef4;
|
||||
};
|
||||
};
|
||||
|
||||
ret.push(spline(points[i * ps], coefs1[i], coefs2[i], gradients[i], points[i * ps + yPos]));
|
||||
}
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
//no real idea whats going on here code mainly from https://code.google.com/p/flot/issues/detail?id=226
|
||||
//if fit option is selected additional datapoints get inserted before the curve calculations in nergal.dev s code.
|
||||
function calculateLegacyCurvePoints(datapoints, curvedLinesOptions, yPos) {
|
||||
|
||||
var points = datapoints.points;
|
||||
var ps = datapoints.pointsize;
|
||||
var num = Number(curvedLinesOptions.curvePointFactor) * (points.length / ps);
|
||||
|
||||
var xdata = new Array;
|
||||
var ydata = new Array;
|
||||
|
||||
var curX = -1;
|
||||
var curY = -1;
|
||||
var j = 0;
|
||||
|
||||
if (curvedLinesOptions.fit) {
|
||||
//insert a point before and after the "real" data point to force the line
|
||||
//to have a max,min at the data point.
|
||||
|
||||
var fpDist;
|
||||
if ( typeof curvedLinesOptions.fitPointDist == 'undefined') {
|
||||
//estimate it
|
||||
var minX = points[0];
|
||||
var maxX = points[points.length - ps];
|
||||
fpDist = (maxX - minX) / (500 * 100);
|
||||
//x range / (estimated pixel length of placeholder * factor)
|
||||
} else {
|
||||
//use user defined value
|
||||
fpDist = Number(curvedLinesOptions.fitPointDist);
|
||||
}
|
||||
|
||||
for (var i = 0; i < points.length; i += ps) {
|
||||
|
||||
var frontX;
|
||||
var backX;
|
||||
curX = i;
|
||||
curY = i + yPos;
|
||||
|
||||
//add point X s
|
||||
frontX = points[curX] - fpDist;
|
||||
backX = points[curX] + fpDist;
|
||||
|
||||
var factor = 2;
|
||||
while (frontX == points[curX] || backX == points[curX]) {
|
||||
//inside the ulp
|
||||
frontX = points[curX] - (fpDist * factor);
|
||||
backX = points[curX] + (fpDist * factor);
|
||||
factor++;
|
||||
}
|
||||
|
||||
//add curve points
|
||||
xdata[j] = frontX;
|
||||
ydata[j] = points[curY];
|
||||
j++;
|
||||
|
||||
xdata[j] = points[curX];
|
||||
ydata[j] = points[curY];
|
||||
j++;
|
||||
|
||||
xdata[j] = backX;
|
||||
ydata[j] = points[curY];
|
||||
j++;
|
||||
}
|
||||
} else {
|
||||
//just use the datapoints
|
||||
for (var i = 0; i < points.length; i += ps) {
|
||||
curX = i;
|
||||
curY = i + yPos;
|
||||
|
||||
xdata[j] = points[curX];
|
||||
ydata[j] = points[curY];
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
var n = xdata.length;
|
||||
|
||||
var y2 = new Array();
|
||||
var delta = new Array();
|
||||
y2[0] = 0;
|
||||
y2[n - 1] = 0;
|
||||
delta[0] = 0;
|
||||
|
||||
for (var i = 1; i < n - 1; ++i) {
|
||||
var d = (xdata[i + 1] - xdata[i - 1]);
|
||||
if (d == 0) {
|
||||
//point before current point and after current point need some space in between
|
||||
return [];
|
||||
}
|
||||
|
||||
var s = (xdata[i] - xdata[i - 1]) / d;
|
||||
var p = s * y2[i - 1] + 2;
|
||||
y2[i] = (s - 1) / p;
|
||||
delta[i] = (ydata[i + 1] - ydata[i]) / (xdata[i + 1] - xdata[i]) - (ydata[i] - ydata[i - 1]) / (xdata[i] - xdata[i - 1]);
|
||||
delta[i] = (6 * delta[i] / (xdata[i + 1] - xdata[i - 1]) - s * delta[i - 1]) / p;
|
||||
}
|
||||
|
||||
for (var j = n - 2; j >= 0; --j) {
|
||||
y2[j] = y2[j] * y2[j + 1] + delta[j];
|
||||
}
|
||||
|
||||
// xmax - xmin / #points
|
||||
var step = (xdata[n - 1] - xdata[0]) / (num - 1);
|
||||
|
||||
var xnew = new Array;
|
||||
var ynew = new Array;
|
||||
var result = new Array;
|
||||
|
||||
xnew[0] = xdata[0];
|
||||
ynew[0] = ydata[0];
|
||||
|
||||
result.push(xnew[0]);
|
||||
result.push(ynew[0]);
|
||||
|
||||
for ( j = 1; j < num; ++j) {
|
||||
//new x point (sampling point for the created curve)
|
||||
xnew[j] = xnew[0] + j * step;
|
||||
|
||||
var max = n - 1;
|
||||
var min = 0;
|
||||
|
||||
while (max - min > 1) {
|
||||
var k = Math.round((max + min) / 2);
|
||||
if (xdata[k] > xnew[j]) {
|
||||
max = k;
|
||||
} else {
|
||||
min = k;
|
||||
}
|
||||
}
|
||||
|
||||
//found point one to the left and one to the right of generated new point
|
||||
var h = (xdata[max] - xdata[min]);
|
||||
|
||||
if (h == 0) {
|
||||
//similar to above two points from original x data need some space between them
|
||||
return [];
|
||||
}
|
||||
|
||||
var a = (xdata[max] - xnew[j]) / h;
|
||||
var b = (xnew[j] - xdata[min]) / h;
|
||||
|
||||
ynew[j] = a * ydata[min] + b * ydata[max] + ((a * a * a - a) * y2[min] + (b * b * b - b) * y2[max]) * (h * h) / 6;
|
||||
|
||||
result.push(xnew[j]);
|
||||
result.push(ynew[j]);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function hasInvalidParameters(curvedLinesOptions) {
|
||||
if (typeof curvedLinesOptions.fit != 'undefined' ||
|
||||
typeof curvedLinesOptions.curvePointFactor != 'undefined' ||
|
||||
typeof curvedLinesOptions.fitPointDist != 'undefined') {
|
||||
throw new Error("CurvedLines detected illegal parameters. The CurvedLines API changed with version 1.0.0 please check the options object.");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}//end init
|
||||
|
||||
|
||||
$.plot.plugins.push({
|
||||
init : init,
|
||||
options : options,
|
||||
name : 'curvedLines',
|
||||
version : '1.1.1'
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
(function(deparam){
|
||||
if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') {
|
||||
var jquery = require('jquery');
|
||||
module.exports = deparam(jquery);
|
||||
} else if (typeof define === 'function' && define.amd){
|
||||
define(['jquery'], function(jquery){
|
||||
return deparam(jquery);
|
||||
});
|
||||
} else {
|
||||
var global
|
||||
try {
|
||||
global = (false || eval)('this'); // best cross-browser way to determine global for < ES5
|
||||
} catch (e) {
|
||||
global = window; // fails only if browser (https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives)
|
||||
}
|
||||
global.deparam = deparam(jQuery); // assume jQuery is in global namespace
|
||||
}
|
||||
})(function ($) {
|
||||
var deparam = function( params, coerce ) {
|
||||
var obj = {},
|
||||
coerce_types = { 'true': !0, 'false': !1, 'null': null };
|
||||
|
||||
// Iterate over all name=value pairs.
|
||||
params.replace(/\+/g, ' ').split('&').forEach(function(v){
|
||||
var param = v.split( '=' ),
|
||||
key = decodeURIComponent( param[0] ),
|
||||
val,
|
||||
cur = obj,
|
||||
i = 0,
|
||||
|
||||
// If key is more complex than 'foo', like 'a[]' or 'a[b][c]', split it
|
||||
// into its component parts.
|
||||
keys = key.split( '][' ),
|
||||
keys_last = keys.length - 1;
|
||||
|
||||
// If the first keys part contains [ and the last ends with ], then []
|
||||
// are correctly balanced.
|
||||
if ( /\[/.test( keys[0] ) && /\]$/.test( keys[ keys_last ] ) ) {
|
||||
// Remove the trailing ] from the last keys part.
|
||||
keys[ keys_last ] = keys[ keys_last ].replace( /\]$/, '' );
|
||||
|
||||
// Split first keys part into two parts on the [ and add them back onto
|
||||
// the beginning of the keys array.
|
||||
keys = keys.shift().split('[').concat( keys );
|
||||
|
||||
keys_last = keys.length - 1;
|
||||
} else {
|
||||
// Basic 'foo' style key.
|
||||
keys_last = 0;
|
||||
}
|
||||
|
||||
// Are we dealing with a name=value pair, or just a name?
|
||||
if ( param.length === 2 ) {
|
||||
val = decodeURIComponent( param[1] );
|
||||
|
||||
// Coerce values.
|
||||
if ( coerce ) {
|
||||
val = val && !isNaN(val) && ((+val + '') === val) ? +val // number
|
||||
: val === 'undefined' ? undefined // undefined
|
||||
: coerce_types[val] !== undefined ? coerce_types[val] // true, false, null
|
||||
: val; // string
|
||||
}
|
||||
|
||||
if ( keys_last ) {
|
||||
// Complex key, build deep object structure based on a few rules:
|
||||
// * The 'cur' pointer starts at the object top-level.
|
||||
// * [] = array push (n is set to array length), [n] = array if n is
|
||||
// numeric, otherwise object.
|
||||
// * If at the last keys part, set the value.
|
||||
// * For each keys part, if the current level is undefined create an
|
||||
// object or array based on the type of the next keys part.
|
||||
// * Move the 'cur' pointer to the next level.
|
||||
// * Rinse & repeat.
|
||||
for ( ; i <= keys_last; i++ ) {
|
||||
key = keys[i] === '' ? cur.length : keys[i];
|
||||
cur = cur[key] = i < keys_last
|
||||
? cur[key] || ( keys[i+1] && isNaN( keys[i+1] ) ? {} : [] )
|
||||
: val;
|
||||
}
|
||||
|
||||
} else {
|
||||
// Simple key, even simpler rules, since only scalars and shallow
|
||||
// arrays are allowed.
|
||||
|
||||
if ( Object.prototype.toString.call( obj[key] ) === '[object Array]' ) {
|
||||
// val is already an array, so push on the next value.
|
||||
obj[key].push( val );
|
||||
|
||||
} else if ( {}.hasOwnProperty.call(obj, key) ) {
|
||||
// val isn't an array, but since a second value has been specified,
|
||||
// convert val into an array.
|
||||
obj[key] = [ obj[key], val ];
|
||||
|
||||
} else {
|
||||
// val is a scalar.
|
||||
obj[key] = val;
|
||||
}
|
||||
}
|
||||
|
||||
} else if ( key ) {
|
||||
// No value was defined, so set something meaningful.
|
||||
obj[key] = coerce
|
||||
? undefined
|
||||
: '';
|
||||
}
|
||||
});
|
||||
|
||||
return obj;
|
||||
};
|
||||
$.prototype.deparam = $.deparam = deparam;
|
||||
return deparam;
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
/* Javascript plotting library for jQuery, version 0.8.3.
|
||||
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
*/
|
||||
(function($){var options={xaxis:{categories:null},yaxis:{categories:null}};function processRawData(plot,series,data,datapoints){var xCategories=series.xaxis.options.mode=="categories",yCategories=series.yaxis.options.mode=="categories";if(!(xCategories||yCategories))return;var format=datapoints.format;if(!format){var s=series;format=[];format.push({x:true,number:true,required:true});format.push({y:true,number:true,required:true});if(s.bars.show||s.lines.show&&s.lines.fill){var autoscale=!!(s.bars.show&&s.bars.zero||s.lines.show&&s.lines.zero);format.push({y:true,number:true,required:false,defaultValue:0,autoscale:autoscale});if(s.bars.horizontal){delete format[format.length-1].y;format[format.length-1].x=true}}datapoints.format=format}for(var m=0;m<format.length;++m){if(format[m].x&&xCategories)format[m].number=false;if(format[m].y&&yCategories)format[m].number=false}}function getNextIndex(categories){var index=-1;for(var v in categories)if(categories[v]>index)index=categories[v];return index+1}function categoriesTickGenerator(axis){var res=[];for(var label in axis.categories){var v=axis.categories[label];if(v>=axis.min&&v<=axis.max)res.push([v,label])}res.sort(function(a,b){return a[0]-b[0]});return res}function setupCategoriesForAxis(series,axis,datapoints){if(series[axis].options.mode!="categories")return;if(!series[axis].categories){var c={},o=series[axis].options.categories||{};if($.isArray(o)){for(var i=0;i<o.length;++i)c[o[i]]=i}else{for(var v in o)c[v]=o[v]}series[axis].categories=c}if(!series[axis].options.ticks)series[axis].options.ticks=categoriesTickGenerator;transformPointsOnAxis(datapoints,axis,series[axis].categories)}function transformPointsOnAxis(datapoints,axis,categories){var points=datapoints.points,ps=datapoints.pointsize,format=datapoints.format,formatColumn=axis.charAt(0),index=getNextIndex(categories);for(var i=0;i<points.length;i+=ps){if(points[i]==null)continue;for(var m=0;m<ps;++m){var val=points[i+m];if(val==null||!format[m][formatColumn])continue;if(!(val in categories)){categories[val]=index;++index}points[i+m]=categories[val]}}}function processDatapoints(plot,series,datapoints){setupCategoriesForAxis(series,"xaxis",datapoints);setupCategoriesForAxis(series,"yaxis",datapoints)}function init(plot){plot.hooks.processRawData.push(processRawData);plot.hooks.processDatapoints.push(processDatapoints)}$.plot.plugins.push({init:init,options:options,name:"categories",version:"1.0"})})(jQuery);
|
||||
@@ -0,0 +1,228 @@
|
||||
/*
|
||||
* jQuery.flot.dashes
|
||||
*
|
||||
* options = {
|
||||
* series: {
|
||||
* dashes: {
|
||||
*
|
||||
* // show
|
||||
* // default: false
|
||||
* // Whether to show dashes for the series.
|
||||
* show: <boolean>,
|
||||
*
|
||||
* // lineWidth
|
||||
* // default: 2
|
||||
* // The width of the dashed line in pixels.
|
||||
* lineWidth: <number>,
|
||||
*
|
||||
* // dashLength
|
||||
* // default: 10
|
||||
* // Controls the length of the individual dashes and the amount of
|
||||
* // space between them.
|
||||
* // If this is a number, the dashes and spaces will have that length.
|
||||
* // If this is an array, it is read as [ dashLength, spaceLength ]
|
||||
* dashLength: <number> or <array[2]>
|
||||
* }
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
(function($){
|
||||
var options = {
|
||||
series: {
|
||||
dashes: {
|
||||
show: false,
|
||||
lineWidth: 2,
|
||||
dashLength: 10
|
||||
}
|
||||
}
|
||||
};
|
||||
function init(plot) {
|
||||
plot.hooks.drawSeries.push(function(plot, ctx, series) {
|
||||
if (!series.dashes.show) return;
|
||||
|
||||
var plotOffset = plot.getPlotOffset(),
|
||||
axisx = series.xaxis,
|
||||
axisy = series.yaxis;
|
||||
|
||||
function plotDashes(xoffset, yoffset) {
|
||||
|
||||
var points = series.datapoints.points,
|
||||
ps = series.datapoints.pointsize,
|
||||
prevx = null,
|
||||
prevy = null,
|
||||
dashRemainder = 0,
|
||||
dashOn = true,
|
||||
dashOnLength,
|
||||
dashOffLength;
|
||||
|
||||
if (series.dashes.dashLength[0]) {
|
||||
dashOnLength = series.dashes.dashLength[0];
|
||||
if (series.dashes.dashLength[1]) {
|
||||
dashOffLength = series.dashes.dashLength[1];
|
||||
} else {
|
||||
dashOffLength = dashOnLength;
|
||||
}
|
||||
} else {
|
||||
dashOffLength = dashOnLength = series.dashes.dashLength;
|
||||
}
|
||||
|
||||
ctx.beginPath();
|
||||
|
||||
for (var i = ps; i < points.length; i += ps) {
|
||||
|
||||
var x1 = points[i - ps],
|
||||
y1 = points[i - ps + 1],
|
||||
x2 = points[i],
|
||||
y2 = points[i + 1];
|
||||
|
||||
if (x1 == null || x2 == null) continue;
|
||||
|
||||
// clip with ymin
|
||||
if (y1 <= y2 && y1 < axisy.min) {
|
||||
if (y2 < axisy.min) continue; // line segment is outside
|
||||
// compute new intersection point
|
||||
x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
|
||||
y1 = axisy.min;
|
||||
} else if (y2 <= y1 && y2 < axisy.min) {
|
||||
if (y1 < axisy.min) continue;
|
||||
x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
|
||||
y2 = axisy.min;
|
||||
}
|
||||
|
||||
// clip with ymax
|
||||
if (y1 >= y2 && y1 > axisy.max) {
|
||||
if (y2 > axisy.max) continue;
|
||||
x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
|
||||
y1 = axisy.max;
|
||||
} else if (y2 >= y1 && y2 > axisy.max) {
|
||||
if (y1 > axisy.max) continue;
|
||||
x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
|
||||
y2 = axisy.max;
|
||||
}
|
||||
|
||||
// clip with xmin
|
||||
if (x1 <= x2 && x1 < axisx.min) {
|
||||
if (x2 < axisx.min) continue;
|
||||
y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
|
||||
x1 = axisx.min;
|
||||
} else if (x2 <= x1 && x2 < axisx.min) {
|
||||
if (x1 < axisx.min) continue;
|
||||
y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
|
||||
x2 = axisx.min;
|
||||
}
|
||||
|
||||
// clip with xmax
|
||||
if (x1 >= x2 && x1 > axisx.max) {
|
||||
if (x2 > axisx.max) continue;
|
||||
y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
|
||||
x1 = axisx.max;
|
||||
} else if (x2 >= x1 && x2 > axisx.max) {
|
||||
if (x1 > axisx.max) continue;
|
||||
y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
|
||||
x2 = axisx.max;
|
||||
}
|
||||
|
||||
if (x1 != prevx || y1 != prevy) {
|
||||
ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset);
|
||||
}
|
||||
|
||||
var ax1 = axisx.p2c(x1) + xoffset,
|
||||
ay1 = axisy.p2c(y1) + yoffset,
|
||||
ax2 = axisx.p2c(x2) + xoffset,
|
||||
ay2 = axisy.p2c(y2) + yoffset,
|
||||
dashOffset;
|
||||
|
||||
function lineSegmentOffset(segmentLength) {
|
||||
|
||||
var c = Math.sqrt(Math.pow(ax2 - ax1, 2) + Math.pow(ay2 - ay1, 2));
|
||||
|
||||
if (c <= segmentLength) {
|
||||
return {
|
||||
deltaX: ax2 - ax1,
|
||||
deltaY: ay2 - ay1,
|
||||
distance: c,
|
||||
remainder: segmentLength - c
|
||||
}
|
||||
} else {
|
||||
var xsign = ax2 > ax1 ? 1 : -1,
|
||||
ysign = ay2 > ay1 ? 1 : -1;
|
||||
return {
|
||||
deltaX: xsign * Math.sqrt(Math.pow(segmentLength, 2) / (1 + Math.pow((ay2 - ay1)/(ax2 - ax1), 2))),
|
||||
deltaY: ysign * Math.sqrt(Math.pow(segmentLength, 2) - Math.pow(segmentLength, 2) / (1 + Math.pow((ay2 - ay1)/(ax2 - ax1), 2))),
|
||||
distance: segmentLength,
|
||||
remainder: 0
|
||||
};
|
||||
}
|
||||
}
|
||||
//-end lineSegmentOffset
|
||||
|
||||
do {
|
||||
|
||||
dashOffset = lineSegmentOffset(
|
||||
dashRemainder > 0 ? dashRemainder :
|
||||
dashOn ? dashOnLength : dashOffLength);
|
||||
|
||||
if (dashOffset.deltaX != 0 || dashOffset.deltaY != 0) {
|
||||
if (dashOn) {
|
||||
ctx.lineTo(ax1 + dashOffset.deltaX, ay1 + dashOffset.deltaY);
|
||||
} else {
|
||||
ctx.moveTo(ax1 + dashOffset.deltaX, ay1 + dashOffset.deltaY);
|
||||
}
|
||||
}
|
||||
|
||||
dashOn = !dashOn;
|
||||
dashRemainder = dashOffset.remainder;
|
||||
ax1 += dashOffset.deltaX;
|
||||
ay1 += dashOffset.deltaY;
|
||||
|
||||
} while (dashOffset.distance > 0);
|
||||
|
||||
prevx = x2;
|
||||
prevy = y2;
|
||||
}
|
||||
|
||||
ctx.stroke();
|
||||
}
|
||||
//-end plotDashes
|
||||
|
||||
ctx.save();
|
||||
ctx.translate(plotOffset.left, plotOffset.top);
|
||||
ctx.lineJoin = 'round';
|
||||
|
||||
var lw = series.dashes.lineWidth,
|
||||
sw = series.shadowSize;
|
||||
|
||||
// FIXME: consider another form of shadow when filling is turned on
|
||||
if (lw > 0 && sw > 0) {
|
||||
// draw shadow as a thick and thin line with transparency
|
||||
ctx.lineWidth = sw;
|
||||
ctx.strokeStyle = "rgba(0,0,0,0.1)";
|
||||
// position shadow at angle from the mid of line
|
||||
var angle = Math.PI/18;
|
||||
plotDashes(Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2));
|
||||
ctx.lineWidth = sw/2;
|
||||
plotDashes(Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4));
|
||||
}
|
||||
|
||||
ctx.lineWidth = lw;
|
||||
ctx.strokeStyle = series.color;
|
||||
|
||||
if (lw > 0) {
|
||||
plotDashes(0, 0);
|
||||
}
|
||||
|
||||
ctx.restore();
|
||||
|
||||
});
|
||||
//-end draw hook
|
||||
}
|
||||
//-end init
|
||||
|
||||
$.plot.plugins.push({
|
||||
init: init,
|
||||
options: options,
|
||||
name: 'dashes',
|
||||
version: '0.1'
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,183 @@
|
||||
/*
|
||||
Flot plugin for computing bottoms for filled line and bar charts.
|
||||
|
||||
The case: you've got two series that you want to fill the area
|
||||
between. In Flot terms, you need to use one as the fill bottom of the
|
||||
other. You can specify the bottom of each data point as the third
|
||||
coordinate manually, or you can use this plugin to compute it for you.
|
||||
|
||||
In order to name the other series, you need to give it an id, like this
|
||||
|
||||
var dataset = [
|
||||
{ data: [ ... ], id: "foo" } , // use default bottom
|
||||
{ data: [ ... ], fillBetween: "foo" }, // use first dataset as bottom
|
||||
];
|
||||
|
||||
$.plot($("#placeholder"), dataset, { line: { show: true, fill: true }});
|
||||
|
||||
As a convenience, if the id given is a number that doesn't appear as
|
||||
an id in the series, it is interpreted as the index in the array
|
||||
instead (so fillBetween: 0 can also mean the first series).
|
||||
|
||||
Internally, the plugin modifies the datapoints in each series. For
|
||||
line series, extra data points might be inserted through
|
||||
interpolation. Note that at points where the bottom line is not
|
||||
defined (due to a null point or start/end of line), the current line
|
||||
will show a gap too. The algorithm comes from the jquery.flot.stack.js
|
||||
plugin, possibly some code could be shared.
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
var options = {
|
||||
series: { fillBetween: null } // or number
|
||||
};
|
||||
|
||||
function init(plot) {
|
||||
function findBottomSeries(s, allseries) {
|
||||
var i;
|
||||
for (i = 0; i < allseries.length; ++i) {
|
||||
if (allseries[i].id == s.fillBetween)
|
||||
return allseries[i];
|
||||
}
|
||||
|
||||
if (typeof s.fillBetween == "number") {
|
||||
i = s.fillBetween;
|
||||
|
||||
if (i < 0 || i >= allseries.length)
|
||||
return null;
|
||||
|
||||
return allseries[i];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function computeFillBottoms(plot, s, datapoints) {
|
||||
if (s.fillBetween == null)
|
||||
return;
|
||||
|
||||
var other = findBottomSeries(s, plot.getData());
|
||||
if (!other)
|
||||
return;
|
||||
|
||||
var ps = datapoints.pointsize,
|
||||
points = datapoints.points,
|
||||
otherps = other.datapoints.pointsize,
|
||||
otherpoints = other.datapoints.points,
|
||||
newpoints = [],
|
||||
px, py, intery, qx, qy, bottom,
|
||||
withlines = s.lines.show,
|
||||
withbottom = ps > 2 && datapoints.format[2].y,
|
||||
withsteps = withlines && s.lines.steps,
|
||||
fromgap = true,
|
||||
i = 0, j = 0, l;
|
||||
|
||||
while (true) {
|
||||
if (i >= points.length)
|
||||
break;
|
||||
|
||||
l = newpoints.length;
|
||||
|
||||
if (points[i] == null) {
|
||||
// copy gaps
|
||||
for (m = 0; m < ps; ++m)
|
||||
newpoints.push(points[i + m]);
|
||||
i += ps;
|
||||
}
|
||||
else if (j >= otherpoints.length) {
|
||||
// for lines, we can't use the rest of the points
|
||||
if (!withlines) {
|
||||
for (m = 0; m < ps; ++m)
|
||||
newpoints.push(points[i + m]);
|
||||
}
|
||||
i += ps;
|
||||
}
|
||||
else if (otherpoints[j] == null) {
|
||||
// oops, got a gap
|
||||
for (m = 0; m < ps; ++m)
|
||||
newpoints.push(null);
|
||||
fromgap = true;
|
||||
j += otherps;
|
||||
}
|
||||
else {
|
||||
// cases where we actually got two points
|
||||
px = points[i];
|
||||
py = points[i + 1];
|
||||
qx = otherpoints[j];
|
||||
qy = otherpoints[j + 1];
|
||||
bottom = 0;
|
||||
|
||||
if (px == qx) {
|
||||
for (m = 0; m < ps; ++m)
|
||||
newpoints.push(points[i + m]);
|
||||
|
||||
//newpoints[l + 1] += qy;
|
||||
bottom = qy;
|
||||
|
||||
i += ps;
|
||||
j += otherps;
|
||||
}
|
||||
else if (px > qx) {
|
||||
// we got past point below, might need to
|
||||
// insert interpolated extra point
|
||||
if (withlines && i > 0 && points[i - ps] != null) {
|
||||
intery = py + (points[i - ps + 1] - py) * (qx - px) / (points[i - ps] - px);
|
||||
newpoints.push(qx);
|
||||
newpoints.push(intery)
|
||||
for (m = 2; m < ps; ++m)
|
||||
newpoints.push(points[i + m]);
|
||||
bottom = qy;
|
||||
}
|
||||
|
||||
j += otherps;
|
||||
}
|
||||
else { // px < qx
|
||||
if (fromgap && withlines) {
|
||||
// if we come from a gap, we just skip this point
|
||||
i += ps;
|
||||
continue;
|
||||
}
|
||||
|
||||
for (m = 0; m < ps; ++m)
|
||||
newpoints.push(points[i + m]);
|
||||
|
||||
// we might be able to interpolate a point below,
|
||||
// this can give us a better y
|
||||
if (withlines && j > 0 && otherpoints[j - otherps] != null)
|
||||
bottom = qy + (otherpoints[j - otherps + 1] - qy) * (px - qx) / (otherpoints[j - otherps] - qx);
|
||||
|
||||
//newpoints[l + 1] += bottom;
|
||||
|
||||
i += ps;
|
||||
}
|
||||
|
||||
fromgap = false;
|
||||
|
||||
if (l != newpoints.length && withbottom)
|
||||
newpoints[l + 2] = bottom;
|
||||
}
|
||||
|
||||
// maintain the line steps invariant
|
||||
if (withsteps && l != newpoints.length && l > 0
|
||||
&& newpoints[l] != null
|
||||
&& newpoints[l] != newpoints[l - ps]
|
||||
&& newpoints[l + 1] != newpoints[l - ps + 1]) {
|
||||
for (m = 0; m < ps; ++m)
|
||||
newpoints[l + ps + m] = newpoints[l + m];
|
||||
newpoints[l + 1] = newpoints[l - ps + 1];
|
||||
}
|
||||
}
|
||||
|
||||
datapoints.points = newpoints;
|
||||
}
|
||||
|
||||
plot.hooks.processDatapoints.push(computeFillBottoms);
|
||||
}
|
||||
|
||||
$.plot.plugins.push({
|
||||
init: init,
|
||||
options: options,
|
||||
name: 'fillbetween',
|
||||
version: '1.0'
|
||||
});
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,181 @@
|
||||
/*
|
||||
* The MIT License
|
||||
|
||||
Copyright (c) 2010,2011,2012, 2013 by Juergen Marsch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
/*
|
||||
* Added changerequest from Thodoris Greasidis
|
||||
* It makes growing more
|
||||
*/
|
||||
(function ($){
|
||||
"use strict";
|
||||
var pluginName = "grow", pluginVersion = "0.4";
|
||||
var options = {
|
||||
series: {
|
||||
grow: {
|
||||
active: false,
|
||||
stepDelay: 20,
|
||||
steps:100,
|
||||
growings:[
|
||||
{
|
||||
valueIndex: 1,
|
||||
stepMode: "linear",
|
||||
stepDirection: "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
};
|
||||
function init(plot) {
|
||||
var done = false;
|
||||
var growfunc;
|
||||
var plt = plot;
|
||||
var data = null;
|
||||
var opt = null;
|
||||
var serie = null;
|
||||
var valueIndex;
|
||||
plot.hooks.bindEvents.push(processbindEvents);
|
||||
plot.hooks.drawSeries.push(processSeries);
|
||||
plot.hooks.shutdown.push(shutdown);
|
||||
function processSeries(plot, canvascontext, series){
|
||||
opt = plot.getOptions();
|
||||
valueIndex = opt.series.grow.valueIndex;
|
||||
if(opt.series.grow.active === true){
|
||||
if (done === false){
|
||||
data = plot.getData();
|
||||
data.actualStep = 0;
|
||||
data.growingIndex = 0;
|
||||
for (var j = 0; j < data.length; j++){
|
||||
data[j].dataOrg = clone(data[j].data);
|
||||
for (var i = 0; i < data[j].data.length; i++){ data[j].data[i][valueIndex] = 0;}
|
||||
}
|
||||
plot.setData(data);
|
||||
done = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
function processbindEvents(plot,eventHolder){
|
||||
opt = plot.getOptions();
|
||||
if (opt.series.grow.active === true){
|
||||
var d = plot.getData();
|
||||
for (var j = 0; j < data.length; j++) {
|
||||
opt.series.grow.steps = Math.max(opt.series.grow.steps, d[j].grow.steps);
|
||||
}
|
||||
if(opt.series.grow.stepDelay === 0){ opt.series.grow.stepDelay++;}
|
||||
growingLoop();
|
||||
if (isPluginRegistered("resize")) {
|
||||
plot.getPlaceholder().bind("resize", onResize);
|
||||
}
|
||||
}
|
||||
}
|
||||
function growingLoop(){
|
||||
var growing, startTime = new Date(), timeDiff;
|
||||
if (data.actualStep < opt.series.grow.steps){
|
||||
data.actualStep++;
|
||||
for(var j = 0; j < data.length; j++){
|
||||
for(var g = 0; g < data[j].grow.growings.length; g++){
|
||||
growing = data[j].grow.growings[g];
|
||||
if (typeof growing.stepMode === "function"){
|
||||
growing.stepMode(data[j],data.actualStep,growing);
|
||||
}
|
||||
else{
|
||||
if (growing.stepMode === "linear"){ growLinear();}
|
||||
else if (growing.stepMode === "maximum"){ growMaximum();}
|
||||
else if (growing.stepMode === "delay"){ growDelay();}
|
||||
else{growNone();}
|
||||
}
|
||||
}
|
||||
}
|
||||
plt.setData(data);
|
||||
plt.draw();
|
||||
timeDiff = new Date() - startTime;
|
||||
growfunc = window.setTimeout(growingLoop, Math.max(0,opt.series.grow.stepDelay - timeDiff));
|
||||
}
|
||||
else{ window.clearTimeout(growfunc); growfunc = null; }
|
||||
function growNone(){
|
||||
if (data.actualStep === 1){
|
||||
for (var i = 0; i < data[j].data.length; i++){
|
||||
data[j].data[i][valueIndex] = data[j].dataOrg[i][growing.valueIndex];
|
||||
}
|
||||
}
|
||||
}
|
||||
function growLinear(){
|
||||
if (data.actualStep <= data[j].grow.steps){
|
||||
for (var i = 0; i < data[j].data.length; i++){
|
||||
if (growing.stepDirection === "up"){
|
||||
data[j].data[i][growing.valueIndex] = data[j].dataOrg[i][growing.valueIndex] / data[j].grow.steps * data.actualStep;
|
||||
}
|
||||
else if(growing.stepDirection === "down"){
|
||||
data[j].data[i][growing.valueIndex] = data[j].dataOrg[i][growing.valueIndex] + (data[j].yaxis.max - data[j].dataOrg[i][growing.valueIndex]) / data[j].grow.steps * (data[j].grow.steps - data.actualStep);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function growMaximum(){
|
||||
if (data.actualStep <= data[j].grow.steps){
|
||||
for (var i = 0; i < data[j].data.length; i++){
|
||||
if (growing.stepDirection === "up"){
|
||||
data[j].data[i][growing.valueIndex] = Math.min(data[j].dataOrg[i][growing.valueIndex], data[j].yaxis.max / data[j].grow.steps * data.actualStep);
|
||||
}
|
||||
else if (growing.stepDirection === "down"){
|
||||
data[j].data[i][growing.valueIndex] = Math.max(data[j].dataOrg[i][growing.valueIndex], data[j].yaxis.max / data[j].grow.steps * (data[j].grow.steps - data.actualStep) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function growDelay(){
|
||||
if (data.actualStep == data[j].grow.steps){
|
||||
for (var i = 0; i < data[j].data.length; i++){
|
||||
data[j].data[i][growing.valueIndex] = data[j].dataOrg[i][growing.valueIndex];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function onResize() {
|
||||
if (growfunc) { window.clearTimeout(growfunc); growfunc = null; }
|
||||
}
|
||||
function shutdown(plot, eventHolder) {
|
||||
plot.getPlaceholder().unbind("resize", onResize);
|
||||
}
|
||||
function isPluginRegistered(pluginName) {
|
||||
var plugins = $.plot.plugins;
|
||||
for (var i = 0, len = plugins.length; i < len; i++) {
|
||||
var plug = plugins[i];
|
||||
if (plug.name === pluginName) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function clone(obj){
|
||||
if(obj === null || typeof(obj) !== 'object'){ return obj;}
|
||||
var temp = new obj.constructor();
|
||||
for(var key in obj){temp[key] = clone(obj[key]); }
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
$.plot.plugins.push({
|
||||
init: init,
|
||||
options: options,
|
||||
name: pluginName,
|
||||
version: pluginVersion
|
||||
});
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,229 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/*
|
||||
* Plugin to hide series in flot graphs.
|
||||
*
|
||||
* To activate, set legend.hideable to true in the flot options object.
|
||||
* To hide one or more series by default, set legend.hidden to an array of
|
||||
* label strings.
|
||||
*
|
||||
* At the moment, this only works with line and point graphs.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* var plotdata = [
|
||||
* {
|
||||
* data: [[1, 1], [2, 1], [3, 3], [4, 2], [5, 5]],
|
||||
* label: "graph 1"
|
||||
* },
|
||||
* {
|
||||
* data: [[1, 0], [2, 1], [3, 0], [4, 4], [5, 3]],
|
||||
* label: "graph 2"
|
||||
* }
|
||||
* ];
|
||||
*
|
||||
* plot = $.plot($("#placeholder"), plotdata, {
|
||||
* series: {
|
||||
* points: { show: true },
|
||||
* lines: { show: true }
|
||||
* },
|
||||
* legend: {
|
||||
* hideable: true,
|
||||
* hidden: ["graph 1", "graph 2"]
|
||||
* }
|
||||
* });
|
||||
*
|
||||
*/
|
||||
(function ($) {
|
||||
var options = { };
|
||||
|
||||
function init(plot) {
|
||||
var drawnOnce = false;
|
||||
|
||||
function findPlotSeries(label) {
|
||||
var plotdata = plot.getData();
|
||||
for (var i = 0; i < plotdata.length; i++) {
|
||||
if (plotdata[i].label == label) {
|
||||
return plotdata[i];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function plotLabelClicked(label, mouseOut) {
|
||||
var series = findPlotSeries(label);
|
||||
if (!series) {
|
||||
return;
|
||||
}
|
||||
|
||||
var options = plot.getOptions();
|
||||
var switchedOff = false;
|
||||
|
||||
if (typeof series.points.oldShow === "undefined") {
|
||||
series.points.oldShow = false;
|
||||
}
|
||||
if (typeof series.lines.oldShow === "undefined") {
|
||||
series.lines.oldShow = false;
|
||||
}
|
||||
|
||||
if (series.points.show && !series.points.oldShow) {
|
||||
series.points.show = false;
|
||||
series.points.oldShow = true;
|
||||
switchedOff = true;
|
||||
}
|
||||
if (series.lines.show && !series.lines.oldShow) {
|
||||
series.lines.show = false;
|
||||
series.lines.oldShow = true;
|
||||
switchedOff = true;
|
||||
}
|
||||
|
||||
if (switchedOff) {
|
||||
series.oldColor = series.color;
|
||||
series.color = "#fff";
|
||||
setHidden(options, label, true);
|
||||
} else {
|
||||
var switchedOn = false;
|
||||
|
||||
if (!series.points.show && series.points.oldShow) {
|
||||
series.points.show = true;
|
||||
series.points.oldShow = false;
|
||||
switchedOn = true;
|
||||
}
|
||||
if (!series.lines.show && series.lines.oldShow) {
|
||||
series.lines.show = true;
|
||||
series.lines.oldShow = false;
|
||||
switchedOn = true;
|
||||
}
|
||||
|
||||
if (switchedOn) {
|
||||
series.color = series.oldColor;
|
||||
setHidden(options, label, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setSetupRedraw () {
|
||||
// HACK: Reset the data, triggering recalculation of graph bounds
|
||||
plot.setData(plot.getData());
|
||||
|
||||
plot.setupGrid();
|
||||
plot.draw();
|
||||
}
|
||||
|
||||
function setHidden(options, label, hide) {
|
||||
// Record state to a new variable in the legend option object.
|
||||
if (!options.legend.hidden) {
|
||||
options.legend.hidden = [];
|
||||
}
|
||||
|
||||
var pos = options.legend.hidden.indexOf(label);
|
||||
|
||||
if (hide) {
|
||||
if (pos < 0) {
|
||||
options.legend.hidden.push(label);
|
||||
}
|
||||
} else {
|
||||
if (pos > -1) {
|
||||
options.legend.hidden.splice(pos, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setHideAction(elem) {
|
||||
elem.mouseenter(function() { $(this).css("cursor", "pointer"); })
|
||||
.mouseleave(function() { $(this).css("cursor", "default"); })
|
||||
.unbind("click").click(function() {
|
||||
if ($(this).is(".legendColorBox")) {
|
||||
plotLabelClicked($(this).next('.legendLabel').text());
|
||||
} else {
|
||||
plotLabelClicked($(this).parent().text());
|
||||
}
|
||||
setSetupRedraw();
|
||||
});
|
||||
}
|
||||
|
||||
function plotLabelHandlers(plot) {
|
||||
var options = plot.getOptions();
|
||||
|
||||
if (!options.legend.hideable) {
|
||||
return;
|
||||
}
|
||||
|
||||
var p = plot.getPlaceholder();
|
||||
|
||||
setHideAction(p.find(".graphlabel"));
|
||||
setHideAction(p.find(".legendColorBox"));
|
||||
|
||||
if (!drawnOnce) {
|
||||
drawnOnce = true;
|
||||
if (options.legend.hidden) {
|
||||
for (var i = 0; i < options.legend.hidden.length; i++) {
|
||||
plotLabelClicked(options.legend.hidden[i], true);
|
||||
}
|
||||
setSetupRedraw();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function checkOptions(plot, options) {
|
||||
if (!options.legend.hideable) {
|
||||
return;
|
||||
}
|
||||
|
||||
options.legend.labelFormatter = function(label, series) {
|
||||
return '<span class="graphlabel">' + label + '</span>';
|
||||
};
|
||||
}
|
||||
|
||||
function hideDatapointsIfNecessary(plot, s, datapoints) {
|
||||
var options = plot.getOptions();
|
||||
|
||||
if (!options.legend.hideable) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (options.legend.hidden &&
|
||||
options.legend.hidden.indexOf(s.label) > -1) {
|
||||
var off = false;
|
||||
|
||||
if (s.points.show) {
|
||||
s.points.show = false;
|
||||
s.points.oldShow = true;
|
||||
off = true;
|
||||
}
|
||||
if (s.lines.show) {
|
||||
s.lines.show = false;
|
||||
s.lines.oldShow = true;
|
||||
off = true;
|
||||
}
|
||||
|
||||
if (off) {
|
||||
s.oldColor = s.color;
|
||||
s.color = "#fff";
|
||||
}
|
||||
}
|
||||
|
||||
if (!s.points.show && !s.lines.show) {
|
||||
s.datapoints.format = [ null, null ];
|
||||
}
|
||||
}
|
||||
|
||||
plot.hooks.processOptions.push(checkOptions);
|
||||
|
||||
plot.hooks.draw.push(function (plot, ctx) {
|
||||
plotLabelHandlers(plot);
|
||||
});
|
||||
|
||||
plot.hooks.processDatapoints.push(hideDatapointsIfNecessary);
|
||||
}
|
||||
|
||||
$.plot.plugins.push({
|
||||
init: init,
|
||||
options: options,
|
||||
name: 'hiddenGraphs',
|
||||
version: '1.1'
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,7 @@
|
||||
/* Javascript plotting library for jQuery, version 0.8.3.
|
||||
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
*/
|
||||
(function($,e,t){"$:nomunge";var i=[],n=$.resize=$.extend($.resize,{}),a,r=false,s="setTimeout",u="resize",m=u+"-special-event",o="pendingDelay",l="activeDelay",f="throttleWindow";n[o]=200;n[l]=20;n[f]=true;$.event.special[u]={setup:function(){if(!n[f]&&this[s]){return false}var e=$(this);i.push(this);e.data(m,{w:e.width(),h:e.height()});if(i.length===1){a=t;h()}},teardown:function(){if(!n[f]&&this[s]){return false}var e=$(this);for(var t=i.length-1;t>=0;t--){if(i[t]==this){i.splice(t,1);break}}e.removeData(m);if(!i.length){if(r){cancelAnimationFrame(a)}else{clearTimeout(a)}a=null}},add:function(e){if(!n[f]&&this[s]){return false}var i;function a(e,n,a){var r=$(this),s=r.data(m)||{};s.w=n!==t?n:r.width();s.h=a!==t?a:r.height();i.apply(this,arguments)}if($.isFunction(e)){i=e;return a}else{i=e.handler;e.handler=a}}};function h(t){if(r===true){r=t||1}for(var s=i.length-1;s>=0;s--){var l=$(i[s]);if(l[0]==e||l.is(":visible")){var f=l.width(),c=l.height(),d=l.data(m);if(d&&(f!==d.w||c!==d.h)){l.trigger(u,[d.w=f,d.h=c]);r=t||true}}else{d=l.data(m);d.w=0;d.h=0}}if(a!==null){if(r&&(t==null||t-r<1e3)){a=e.requestAnimationFrame(h)}else{a=setTimeout(h,n[o]);r=false}}}if(!e.requestAnimationFrame){e.requestAnimationFrame=function(){return e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t,i){return e.setTimeout(function(){t((new Date).getTime())},n[l])}}()}if(!e.cancelAnimationFrame){e.cancelAnimationFrame=function(){return e.webkitCancelRequestAnimationFrame||e.mozCancelRequestAnimationFrame||e.oCancelRequestAnimationFrame||e.msCancelRequestAnimationFrame||clearTimeout}()}})(jQuery,this);(function($){var options={};function init(plot){function onResize(){var placeholder=plot.getPlaceholder();if(placeholder.width()==0||placeholder.height()==0)return;plot.resize();plot.setupGrid();plot.draw()}function bindEvents(plot,eventHolder){plot.getPlaceholder().resize(onResize)}function shutdown(plot,eventHolder){plot.getPlaceholder().unbind("resize",onResize)}plot.hooks.bindEvents.push(bindEvents);plot.hooks.shutdown.push(shutdown)}$.plot.plugins.push({init:init,options:options,name:"resize",version:"1.0"})})(jQuery);
|
||||
@@ -0,0 +1,217 @@
|
||||
/**
|
||||
* Flot plugin that provides spline interpolation for line graphs
|
||||
* author: Alex Bardas < alex.bardas@gmail.com >
|
||||
* modified by: Avi Kohn https://github.com/AMKohn
|
||||
* based on the spline interpolation described at:
|
||||
* http://scaledinnovation.com/analytics/splines/aboutSplines.html
|
||||
*
|
||||
* Example usage: (add in plot options series object)
|
||||
* for linespline:
|
||||
* series: {
|
||||
* ...
|
||||
* lines: {
|
||||
* show: false
|
||||
* },
|
||||
* splines: {
|
||||
* show: true,
|
||||
* tension: x, (float between 0 and 1, defaults to 0.5),
|
||||
* lineWidth: y (number, defaults to 2),
|
||||
* fill: z (float between 0 .. 1 or false, as in flot documentation)
|
||||
* },
|
||||
* ...
|
||||
* }
|
||||
* areaspline:
|
||||
* series: {
|
||||
* ...
|
||||
* lines: {
|
||||
* show: true,
|
||||
* lineWidth: 0, (line drawing will not execute)
|
||||
* fill: x, (float between 0 .. 1, as in flot documentation)
|
||||
* ...
|
||||
* },
|
||||
* splines: {
|
||||
* show: true,
|
||||
* tension: 0.5 (float between 0 and 1)
|
||||
* },
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
'use strict'
|
||||
|
||||
/**
|
||||
* @param {Number} x0, y0, x1, y1: coordinates of the end (knot) points of the segment
|
||||
* @param {Number} x2, y2: the next knot (not connected, but needed to calculate p2)
|
||||
* @param {Number} tension: control how far the control points spread
|
||||
* @return {Array}: p1 -> control point, from x1 back toward x0
|
||||
* p2 -> the next control point, returned to become the next segment's p1
|
||||
*
|
||||
* @api private
|
||||
*/
|
||||
function getControlPoints(x0, y0, x1, y1, x2, y2, tension) {
|
||||
|
||||
var pow = Math.pow,
|
||||
sqrt = Math.sqrt,
|
||||
d01, d12, fa, fb, p1x, p1y, p2x, p2y;
|
||||
|
||||
// Scaling factors: distances from this knot to the previous and following knots.
|
||||
d01 = sqrt(pow(x1 - x0, 2) + pow(y1 - y0, 2));
|
||||
d12 = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
|
||||
|
||||
fa = tension * d01 / (d01 + d12);
|
||||
fb = tension - fa;
|
||||
|
||||
p1x = x1 + fa * (x0 - x2);
|
||||
p1y = y1 + fa * (y0 - y2);
|
||||
|
||||
p2x = x1 - fb * (x0 - x2);
|
||||
p2y = y1 - fb * (y0 - y2);
|
||||
|
||||
return [p1x, p1y, p2x, p2y];
|
||||
}
|
||||
|
||||
var line = [];
|
||||
|
||||
function drawLine(points, ctx, height, fill, seriesColor) {
|
||||
var c = $.color.parse(seriesColor);
|
||||
|
||||
c.a = typeof fill == "number" ? fill : .3;
|
||||
c.normalize();
|
||||
c = c.toString();
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(points[0][0], points[0][1]);
|
||||
|
||||
var plength = points.length;
|
||||
|
||||
for (var i = 0; i < plength; i++) {
|
||||
try {
|
||||
ctx[points[i][3]].apply(ctx, points[i][2]);
|
||||
} catch(e) {
|
||||
console.log(e);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ctx.stroke();
|
||||
|
||||
ctx.lineWidth = 0;
|
||||
ctx.lineTo(points[plength - 1][0], height);
|
||||
ctx.lineTo(points[0][0], height);
|
||||
|
||||
ctx.closePath();
|
||||
|
||||
if (fill !== false) {
|
||||
ctx.fillStyle = c;
|
||||
ctx.fill();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Object} ctx: canvas context
|
||||
* @param {String} type: accepted strings: 'bezier' or 'quadratic' (defaults to quadratic)
|
||||
* @param {Array} points: 2 points for which to draw the interpolation
|
||||
* @param {Array} cpoints: control points for those segment points
|
||||
*
|
||||
* @api private
|
||||
*/
|
||||
function queue(ctx, type, points, cpoints) {
|
||||
if (type === void 0 || (type !== 'bezier' && type !== 'quadratic')) {
|
||||
type = 'quadratic';
|
||||
}
|
||||
type = type + 'CurveTo';
|
||||
|
||||
if (line.length == 0) line.push([points[0], points[1], cpoints.concat(points.slice(2)), type]);
|
||||
else if (type == "quadraticCurveTo" && points.length == 2) {
|
||||
cpoints = cpoints.slice(0, 2).concat(points);
|
||||
|
||||
line.push([points[0], points[1], cpoints, type]);
|
||||
}
|
||||
else line.push([points[2], points[3], cpoints.concat(points.slice(2)), type]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Object} plot
|
||||
* @param {Object} ctx: canvas context
|
||||
* @param {Object} series
|
||||
*
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function drawSpline(plot, ctx, series) {
|
||||
// Not interested if spline is not requested
|
||||
if (series.splines.show !== true) {
|
||||
return;
|
||||
}
|
||||
|
||||
var cp = [],
|
||||
// array of control points
|
||||
tension = series.splines.tension || 0.5,
|
||||
idx, x, y, points = series.datapoints.points,
|
||||
ps = series.datapoints.pointsize,
|
||||
plotOffset = plot.getPlotOffset(),
|
||||
len = points.length,
|
||||
pts = [];
|
||||
|
||||
line = [];
|
||||
|
||||
// Cannot display a linespline/areaspline if there are less than 3 points
|
||||
if (len / ps < 4) {
|
||||
$.extend(series.lines, series.splines);
|
||||
return;
|
||||
}
|
||||
|
||||
for (idx = 0; idx < len; idx += ps) {
|
||||
x = points[idx];
|
||||
y = points[idx + 1];
|
||||
if (x == null || x < series.xaxis.min || x > series.xaxis.max || y < series.yaxis.min || y > series.yaxis.max) {
|
||||
continue;
|
||||
}
|
||||
|
||||
pts.push(series.xaxis.p2c(x) + plotOffset.left, series.yaxis.p2c(y) + plotOffset.top);
|
||||
}
|
||||
|
||||
len = pts.length;
|
||||
|
||||
// Draw an open curve, not connected at the ends
|
||||
for (idx = 0; idx < len - 2; idx += 2) {
|
||||
cp = cp.concat(getControlPoints.apply(this, pts.slice(idx, idx + 6).concat([tension])));
|
||||
}
|
||||
|
||||
ctx.save();
|
||||
ctx.strokeStyle = series.color;
|
||||
ctx.lineWidth = series.splines.lineWidth;
|
||||
|
||||
queue(ctx, 'quadratic', pts.slice(0, 4), cp.slice(0, 2));
|
||||
|
||||
for (idx = 2; idx < len - 3; idx += 2) {
|
||||
queue(ctx, 'bezier', pts.slice(idx, idx + 4), cp.slice(2 * idx - 2, 2 * idx + 2));
|
||||
}
|
||||
|
||||
queue(ctx, 'quadratic', pts.slice(len - 2, len), [cp[2 * len - 10], cp[2 * len - 9], pts[len - 4], pts[len - 3]]);
|
||||
|
||||
drawLine(line, ctx, plot.height() + 10, series.splines.fill, series.color);
|
||||
|
||||
ctx.restore();
|
||||
}
|
||||
|
||||
$.plot.plugins.push({
|
||||
init: function(plot) {
|
||||
plot.hooks.drawSeries.push(drawSpline);
|
||||
},
|
||||
options: {
|
||||
series: {
|
||||
splines: {
|
||||
show: false,
|
||||
lineWidth: 2,
|
||||
tension: 0.5,
|
||||
fill: false
|
||||
}
|
||||
}
|
||||
},
|
||||
name: 'spline',
|
||||
version: '0.8.2'
|
||||
});
|
||||
})(jQuery);
|
||||