<commit_before><!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="shortcut icon" href="favicon.ico">

        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
              integrity="<KEY>" crossorigin="anonymous">
        <style>
            body {
                min-height: 75rem;
                padding-top: 4.5rem;
            }
            input[type="text"] {
                width: 100px;
            }
            .left-margin {
                margin-left: 30px;
            }
            .clear-both {
                clear: both;
            }
            .display-none {
                display: none;
            }
            .hide-all,#otherResetZoom {
                margin-left: 30px;
            }
            #plotControls > div > label {
                margin-right: 10px;
            }
            #updateBtn {
                margin-left: 30px;
            }
            #lastObservation {
                margin-top: 20px;
                margin-bottom: 20px;
            }
            #startDate,#endDate {
                width: 140px;
            }
            #noDataError {
                width: 50%;
                margin-top: 20px;
            }
            #weatherDiv,#otherDiv {
                width: 63%;
            }
            #otherCheckboxDiv,#imageButtonDiv {
                margin-top: 10px;
                margin-bottom: 8px;
            }
            #lastObservation {
                font-size: 0.9em;
            }
        </style>

        <title>Environment log viewer - observations</title>
    </head>
    <body>
        <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
            <div class="container-fluid">
                <a class="navbar-brand" href="#">Environment logger</a>
                <ul class="navbar-nav">
                    {% if logged-in? %}
                        <li class="nav-item">
                            <a class="nav-link" href="logout">Log out</a>
                        </li>
                    {% else %}
                        <li>
                            <a class="nav-link" href="login">Log in</a>
                        </li>
                    {% endif %}
                </ul>
            </div>
        </nav>

        <div class="left-margin clear-both">
            <h4>Date interval to show</h4>
            <form method="get" action="">
                <input type="date" name="startDate" id="startDate" value="{{start-date}}"
                       {% if not obs-dates.start|empty? %}min="{{obs-dates.start}}"{% endif %}
                       {% if not obs-dates.end|empty? %}max="{{obs-dates.end}}"{% endif %}>
                &nbsp;-&nbsp;
                <input type="date" name="endDate" id="endDate" value="{{end-date}}"
                       {% if not obs-dates.start|empty? %}min="{{obs-dates.start}}"{% endif %}
                       {% if not obs-dates.end|empty? %}max="{{obs-dates.end}}"{% endif %}>
                <input type="submit" class="btn btn-primary" id="updateBtn" value="Refresh">
            </form>
        </div>

        <div class="left-margin display-none" id="lastObservation"></div>
        {% if logged-in? %}
            <div class="left-margin display-none" id="weatherInfo"></div>
        {% endif %}

        <div class="left-margin display-none alert alert-danger" id="noDataError" role="alert">
            No observations found!
        </div>
        <span id="chartData" class="display-none">{{ data }}</span>
        <span id="rtData" class="display-none">{{ rt-data }}</span>
        <span id="weatherData" class="display-none">{{ weather-data }}</span>

        {% if logged-in? %}
            <div class="left-margin" id="weatherCheckboxDiv">
                <input type="checkbox" id="showWeatherChart" checked>
                <label for="showWeatherChart">Show weather chart</label>
            </div>
        {% endif %}
        <div class="left-margin" id="weatherDiv">
            <canvas id="weatherChart"></canvas>

            <input type="button" id="weatherResetZoom" class="btn btn-light" value="Reset chart zoom" />
            <input type="button" id="weatherHideAll" class="btn btn-danger hide-all" value="Hide all series" />
        </div>

        {% if logged-in? %}
            <div class="left-margin" id="otherCheckboxDiv">
                <input type="checkbox" id="showOtherChart" checked>
                <label for="showOtherChart">Show other chart</label>
            </div>
            <div class="left-margin" id="otherDiv">
                <canvas id="otherChart"></canvas>

                <input type="button" id="ruuvitagMode" class="btn btn-secondary" value="Only show RuuviTags" />
                <input type="button" id="otherResetZoom" class="btn btn-light" value="Reset chart zoom" />
                <input type="button" id="otherHideAll" class="btn btn-danger hide-all" value="Hide all series" />
            </div>
        {% endif %}

        <div id="imageButtonDiv" class="left-margin">
            <input type="checkbox" id="showImages">
            <label for="showImages">Show Testbed image</label>
        </div>
        <div id="imageDiv" class="left-margin display-none" style="margin-bottom: 20px;">
            <img src="" id="testbedImage" alt="FMI Testbed image">
        </div>

        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
                integrity="<KEY>" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/chart.js@3.8.0/dist/chart.min.js"
                integrity="sha256-cHVO4dqZfamRhWD7s4iXyaXWVK10odD+qp4xidFzqTI=" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/luxon@2.4.0/build/global/luxon.min.js"
                integrity="sha256-DIsAGD2EF8Qq2PCH9yzX/yt9FliJfWf+aGcdgR6tKwo=" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-luxon@1.1.0/dist/chartjs-adapter-luxon.min.js"
                integrity="sha256-tOhXNe/Ue+TjR33s/CryFYOGMwNfkTjTuvM4LEOAHzc=" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/hammerjs@2.0.8/hammer.min.js"
                integrity="sha256-eVNjHw5UeU0jUqPPpZHAkU1z4U+QFBBY488WvueTm88=" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-zoom@1.2.1/dist/chartjs-plugin-zoom.min.js"
                integrity="sha256-cRtVj62HOT1M3EGc+4EBacU/38hYsYrNBB48zEVn8uU=" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/axios@0.27.2/dist/axios.min.js"
                integrity="sha256-43O3ClFnSFxzomVCG8/NH93brknJxRYF5tKRij3krg0=" crossorigin="anonymous"></script>
        <script src="js/chart.js"></script>
    </body><commit_msg>Change text in RuuviTag show button<commit_after><!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="shortcut icon" href="favicon.ico">

        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
              integrity="<KEY>" crossorigin="anonymous">
        <style>
            body {
                min-height: 75rem;
                padding-top: 4.5rem;
            }
            input[type="text"] {
                width: 100px;
            }
            .left-margin {
                margin-left: 30px;
            }
            .clear-both {
                clear: both;
            }
            .display-none {
                display: none;
            }
            .hide-all,#otherResetZoom {
                margin-left: 30px;
            }
            #plotControls > div > label {
                margin-right: 10px;
            }
            #updateBtn {
                margin-left: 30px;
            }
            #lastObservation {
                margin-top: 20px;
                margin-bottom: 20px;
            }
            #startDate,#endDate {
                width: 140px;
            }
            #noDataError {
                width: 50%;
                margin-top: 20px;
            }
            #weatherDiv,#otherDiv {
                width: 63%;
            }
            #otherCheckboxDiv,#imageButtonDiv {
                margin-top: 10px;
                margin-bottom: 8px;
            }
            #lastObservation {
                font-size: 0.9em;
            }
        </style>

        <title>Environment log viewer - observations</title>
    </head>
    <body>
        <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
            <div class="container-fluid">
                <a class="navbar-brand" href="#">Environment logger</a>
                <ul class="navbar-nav">
                    {% if logged-in? %}
                        <li class="nav-item">
                            <a class="nav-link" href="logout">Log out</a>
                        </li>
                    {% else %}
                        <li>
                            <a class="nav-link" href="login">Log in</a>
                        </li>
                    {% endif %}
                </ul>
            </div>
        </nav>

        <div class="left-margin clear-both">
            <h4>Date interval to show</h4>
            <form method="get" action="">
                <input type="date" name="startDate" id="startDate" value="{{start-date}}"
                       {% if not obs-dates.start|empty? %}min="{{obs-dates.start}}"{% endif %}
                       {% if not obs-dates.end|empty? %}max="{{obs-dates.end}}"{% endif %}>
                &nbsp;-&nbsp;
                <input type="date" name="endDate" id="endDate" value="{{end-date}}"
                       {% if not obs-dates.start|empty? %}min="{{obs-dates.start}}"{% endif %}
                       {% if not obs-dates.end|empty? %}max="{{obs-dates.end}}"{% endif %}>
                <input type="submit" class="btn btn-primary" id="updateBtn" value="Refresh">
            </form>
        </div>

        <div class="left-margin display-none" id="lastObservation"></div>
        {% if logged-in? %}
            <div class="left-margin display-none" id="weatherInfo"></div>
        {% endif %}

        <div class="left-margin display-none alert alert-danger" id="noDataError" role="alert">
            No observations found!
        </div>
        <span id="chartData" class="display-none">{{ data }}</span>
        <span id="rtData" class="display-none">{{ rt-data }}</span>
        <span id="weatherData" class="display-none">{{ weather-data }}</span>

        {% if logged-in? %}
            <div class="left-margin" id="weatherCheckboxDiv">
                <input type="checkbox" id="showWeatherChart" checked>
                <label for="showWeatherChart">Show weather chart</label>
            </div>
        {% endif %}
        <div class="left-margin" id="weatherDiv">
            <canvas id="weatherChart"></canvas>

            <input type="button" id="weatherResetZoom" class="btn btn-light" value="Reset chart zoom" />
            <input type="button" id="weatherHideAll" class="btn btn-danger hide-all" value="Hide all series" />
        </div>

        {% if logged-in? %}
            <div class="left-margin" id="otherCheckboxDiv">
                <input type="checkbox" id="showOtherChart" checked>
                <label for="showOtherChart">Show other chart</label>
            </div>
            <div class="left-margin" id="otherDiv">
                <canvas id="otherChart"></canvas>

                <input type="button" id="ruuvitagMode" class="btn btn-secondary" value="Show only RuuviTags" />
                <input type="button" id="otherResetZoom" class="btn btn-light" value="Reset chart zoom" />
                <input type="button" id="otherHideAll" class="btn btn-danger hide-all" value="Hide all series" />
            </div>
        {% endif %}

        <div id="imageButtonDiv" class="left-margin">
            <input type="checkbox" id="showImages">
            <label for="showImages">Show Testbed image</label>
        </div>
        <div id="imageDiv" class="left-margin display-none" style="margin-bottom: 20px;">
            <img src="" id="testbedImage" alt="FMI Testbed image">
        </div>

        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
                integrity="<KEY>" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/chart.js@3.8.0/dist/chart.min.js"
                integrity="sha256-cHVO4dqZfamRhWD7s4iXyaXWVK10odD+qp4xidFzqTI=" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/luxon@2.4.0/build/global/luxon.min.js"
                integrity="sha256-DIsAGD2EF8Qq2PCH9yzX/yt9FliJfWf+aGcdgR6tKwo=" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-luxon@1.1.0/dist/chartjs-adapter-luxon.min.js"
                integrity="sha256-tOhXNe/Ue+TjR33s/CryFYOGMwNfkTjTuvM4LEOAHzc=" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/hammerjs@2.0.8/hammer.min.js"
                integrity="sha256-eVNjHw5UeU0jUqPPpZHAkU1z4U+QFBBY488WvueTm88=" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-zoom@1.2.1/dist/chartjs-plugin-zoom.min.js"
                integrity="sha256-cRtVj62HOT1M3EGc+4EBacU/38hYsYrNBB48zEVn8uU=" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/axios@0.27.2/dist/axios.min.js"
                integrity="sha256-43O3ClFnSFxzomVCG8/NH93brknJxRYF5tKRij3krg0=" crossorigin="anonymous"></script>
        <script src="js/chart.js"></script>
    </body>
{'fraction_non_alphanumeric': 0.1528434321730411, 'fraction_numerical': 0.017905744162727402, 'mean_word_length': 1.7870259481037924, 'pattern_counts': {'":': 0, '<': 203, '<?xml version=': 0, '>': 207, 'https://': 16, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '206270', 'n_tokens_mistral': 4600, 'n_tokens_neox': 4179, 'n_words': 682}