<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Performance Dashboard is Loading...</title>

    <link rel="prefetch" href="../data/manifest.json">
    <script type="application/json" src="../data/manifest.json"></script>
    <script>

        function redirectToV3IfNeeded()
        {
            var hash = window.location.hash;
            if (hash.startsWith('#/analysis') || hash.startsWith('#/dashboard'))
                window.location.pathname = '/v3/';
        }

        window.onhashchange = redirectToV3IfNeeded;
        redirectToV3IfNeeded();

    </script>

    <link rel="stylesheet" href="app.css">
    <link rel="stylesheet" href="chart-pane.css">

    <script src="js/jquery.min.js" defer></script>
    <script src="js/jquery.min.js" defer></script>
    <script src="js/handlebars.js" defer></script>
    <script src="js/ember.js" defer></script>
    <script src="js/ember-data.js" defer></script>
    <script src="js/d3/d3.min.js" defer></script>
    <script src="../shared/statistics.js" defer></script>
    <script src="statistics-strategies.js" defer></script>
    <script src="data.js" defer></script>
    <script src="app.js" defer></script>
    <script src="manifest.js" defer></script>
    <script src="analysis.js" defer></script>
    <script src="popup.js" defer></script>
    <script src="interactive-chart.js" defer></script>
    <script src="commits-viewer.js" defer></script>

    <script type="text/x-handlebars" data-template-name="dashboard">
        <header id="header">
            {{partial "navbar"}}
            {{view App.NumberOfDaysControlView tagName="ul" numberOfDays=numberOfDays}}
            <ul class="controls">
                <li>
                    <a href="javascript:false" class="control-button" {{action toggleEditMode}}>
                        {{#if controller.editMode}}
                            Finish editing
                        {{else}}
                            Edit
                        {{/if}}
                    </a>
                </li>
            </ul>
        </header>

        <table {{bind-attr class=":dashboard editMode:editMode:readonly"}}>
        <thead>
            <tr>
                <td></td>
                {{#each headerColumns}}
                    {{#if controller.editMode}}
                        <th>
                            <a href="javascript:false" title="Remove column" {{action "removeColumn" index}}>
                                {{partial "close-button"}}
                            </a>
                            {{input value=label}}
                        </th>
                    {{else}}
                        <th>{{label}}</th>
                    {{/if}}
                {{/each}}
                {{#if controller.editMode}}
                    <td>{{input value=newColumnHeader action="addColumn" placeholder="Add a column"}}</td>
                {{/if}}
            </tr>
        </thead>
        <tbody>
            {{#each rows}}
                <tr>
                    {{#if controller.editMode}}
                        <th>
                            <a href="javascript:false" title="Remove row" {{action "removeRow" this}}>
                                {{partial "close-button"}}
                            </a>
                            {{input value=header}}
                        </th>
                    {{else}}
                        <th><span class="label">{{header}}</span></th>
                    {{/if}}
                    {{#each cells}}
                        <td>
                            {{#if empty}}
                                {{#if controller.editMode}}
                                    {{view App.PopupView list=pickerData label='Choose'}}
                                {{/if}}
                            {{else}}
                                {{#if chartData}}
                                    <div class="dashboard-status">
                                        {{#if latestStatus}}
                                            {{latestStatus.currentValue}}{{chartData.unit}}
                                            {{#if latestStatus.label}}
                                                <span {{bind-attr class=":status-label latestStatus.className"}}>{{latestStatus.label}}</span>
                                            {{/if}}
                                        {{/if}}
                                    </div>
                                    {{#link-to 'charts' (query-params paneList=paneList since=controller.since)}}
                                        {{interactive-chart
                                            chartData=chartData
                                            domain=controller.sharedDomain
                                            enableSelection=false}}
                                    {{/link-to}}
                                {{else}}
                                    {{#if failure}}
                                        <div class="failure">{{failure}}</div>
                                    {{else}}
                                        <div class="progress">{{partial "spinner"}}</div>
                                    {{/if}}
                                {{/if}}
                                {{#if controller.editMode}}
                                    <a href="javascript:false" title="Reset pane" class="reset" {{action "resetPane" this}}>
                                        {{partial "close-button"}}
                                    </a>
                                {{/if}}
                            {{/if}}
                        </td>
                    {{/each}}
                    {{#if controller.editMode}}
                        <td></td>
                    {{/if}}
                </tr>
            {{/each}}
            {{#if controller.editMode}}
                <tr>
                    <td>{{input value=newRowHeader action="addRow" placeholder="Add a row"}}</td>
                    {{#each emptyRow}}
                        <td></td>
                    {{/each}}
                    <td></td>
                </tr>
            {{/if}}
        </tbody>
        </table>
    </script>

    <script type="text/x-handlebars" data-template-name="charts">
        <header id="header">
            {{partial "navbar"}}
            <ul class="controls">
                <li>{{view App.PopupView list=platforms label='Add pane'}}</li>
            </ul>
            <ul class="controls">
                <li>{{view App.StartTimeSliderView startTime=startTime oldestStartTime=oldestStartTime}}</li>
            </ul>
        </header>

        {{#each panes itemController="pane"}}
            <section class="chart-pane in-charts" tabindex="0">
                <header>
                    <h1 {{action "toggleDetails"}}>{{metric.fullName}} - {{platform.name}}</h1>
                    <a href="javascript:false" title="Close" class="close-button" {{action "close"}}>{{partial "close-button"}}</a>
                    {{#if movingAverageStrategies}}
                        <a href="javascript:false" title="Statistical Tools" class="stat-button" {{action "toggleStatPane"}}>{{partial "stat-button"}}</a>
                    {{/if}}
                    <a href="javascript:false" {{bind-attr title=showOutlierTitle class=":outlier-button showOutlier:show:hide"}}
                        {{action "toggleShowOutlier"}}>
                        {{partial "outlier-button"}}
                    </a>
                    <a href="javascript:false" title="Analyze the selected range" class="analysis-button" {{action "toggleBugsPane"}}>
                        {{partial "analysis-button"}}
                    </a>
                    {{#if App.Manifest.repositoriesWithReportedCommits}}
                        <a href="javascript:false" title="Search commits by a keyword" class="search-button" {{action "toggleSearchPane"}}>{{partial "search-button"}}</a>
                    {{/if}}
                </header>

                <div class="body">
                    <div class="svg-container">
                    {{#if chartData}}
                        {{interactive-chart
                            chartData=chartData
                            ranges=ranges
                            domain=mainPlotDomain
                            interactive=true
                            currentItem=hoveredOrSelectedItem
                            currentTime=sharedTime
                            selectedItem=selectedItem
                            highlightedItems=highlightedItems
                            rangeRoute="analysisTask"
                            selection=timeRange
                            selectedPoints=selectedPoints
                            showFullYAxis=showFullYAxis
                            zoomable=true
                            zoom="zoomed"}}
                    {{else}}
                        {{#if failure}}
                            <div class="failure">{{failure}}</div>
                        {{else}}
                            <div class="progress">{{partial "spinner"}}</div>
                        {{/if}}
                    {{/if}}
                    </div>
                    <div class="details">
                        <div class="overview">
                        {{#if chartData}}
                            {{interactive-chart
                                chartData=chartData
                                showYAxis=false
                                domain=overviewDomain
                                selection=overviewSelection}}
                        {{/if}}
                        </div>
                        <div class="details-table-container">
                            {{partial "chart-details"}}
                        </div>
                    </div>
                </div>

                <div {{bind-attr class=":popup-pane :analysis-pane showingAnalysisPane::hidden"}}>
                    <section class="analysis-option-option">
                        <h1>Start A/B testing or associate bugs</h1>
                        <label>Name: {{input type=text value=newAnalysisTaskName}} <button {{action "createAnalysisTask"}} {{bind-attr disabled=cannotAnalyze}}>Analyze</button></label>
                    </section>
                    <section class="analysis-option-option">
                        <h1>Marking outliers</h1>
                        <label>{{input type=checkbox checked=selectedItemIsMarkedOutlier disabled=cannotMarkOutlier}} Mark as an outlier and hide it.</label>
                    </section>
                </div>

                <form {{bind-attr class=":popup-pane :search-pane showingSearchPane::hidden"}}>
                    <span class="repositories">
                        {{view Ember.Select
                            content=App.Manifest.repositoriesWithReportedCommits
                            optionValuePath='content.id'
                            optionLabelPath='content.name'
                            selection=commitSearchRepository}}
                    </span>
                    {{input action="searchCommit" placeholder="Name or email" value=commitSearchKeyword}}
                </form>

                {{partial "stat-pane"}}

                <nav class="alternative-pane-actions">
                    <ul>
                        {{#each alternativePanes}}
                            <li><a href="javascript:false" {{action "addAlternativePanes" pane platform metrics}}>{{label}}</a></li>
                        {{/each}}
                    </ul>
                </nav>
            </section>
        {{/each}}
    </script>

    <script type="text/x-handlebars" data-template-name="components/interactive-chart">
        {{#if interactive}}
            <div class="selection-toolbar" style="display: none;">
                <a href="javascript:false" class="button" {{action "zoom"}}>
                    <svg class="zoom" viewBox="0 0 100 100">
                        <g stroke-width="0" stroke="none">
                            <polygon points="25,25 5,50 25,75"/>
                            <polygon points="75,25 95,50 75,75"/>
                        </g>
                        <line x1="20" y1="50" x2="80" y2="50" stroke-width="10"></line>
                    </svg>
                </a>
            </div>
        {{/if}}
        <div class="rangeBarsContainerInlineStyle">
            {{#each rangeBars}}
                {{#link-to linkRoute linkId title=label}}
                    <span {{bind-attr class=":rangeBar status" style=inlineStyle}}></span>
                {{/link-to}}
            {{/each}}
        </div>
    </script>

    <script type="text/x-handlebars" data-template-name="chart-details">
    {{#if details}}
        <table class="details-table">
            <tbody class="bugs">
            {{#each details.bugTrackers}}
                {{#if bugs}}
                    <tr>
                        <th>{{label}}</th>
                        <td>
                        [{{bugUrl}}]
                        <a {{bind-attr href=bugUrl}} target="_blank">{{bugNumber}}</a>
                        </td>
                    </tr>
                {{/if}}
            {{/each}}
            </tbody>
            <tbody class="status">
                <tr>
                    <th>Current</th>
                    <td>
                        {{details.status.currentValue}} {{chartData.unit}}
                        {{#if details.status.valueDelta}}
                            ({{details.status.valueDelta}} {{chartData.unit}} / {{details.status.relativeDelta}})
                        {{/if}}
                        {{#if details.status.label}}
                            <br>
                            <span {{bind-attr class=details.status.className}}>{{details.status.label}}</span>
                        {{/if}}
                    </td>
                </tr>
            </tbody>
            <tbody>
            {{#if details.buildNumber}}
                <tr>
                    <th>Build</th>
                    <td>
                        {{#if details.buildURL}}
                            <a {{bind-attr href=details.buildURL}} target="_blank">{{details.buildNumber}}</a>
                        {{else}}
                            {{details.buildNumber}}
                        {{/if}}
                        ({{details.buildTime}})
                    </td>
                </tr>
            {{/if}}
            {{#each details.revisions}}
                <tr>
                    <th>{{name}}</th>
                    <td>
                        {{#if url}}
                            <a {{bind-attr href=url}} target="_blank">{{label}}</a>
                        {{else}}
                            {{label}}
                        {{/if}}
                    </td>
                </tr>
            {{/each}}
            </tbody>
        </table>
        <div class="commits">
            {{#each details.revisions}}
                {{commits-viewer repository=repository revisionInfo=this caption=name}}
            {{/each}}
        </div>
    {{/if}}
    </script>

    <script type="text/x-handlebars" data-template-name="components/commits-viewer">
    {{#if commits}}
        <table {{bind-attr class=":commits-viewer visible::hidden"}}>
            {{#if caption}}
                <caption {{action toggleVisibility}}>{{caption}} commits</caption>
            {{/if}}
            {{#if visible}}
                <tbody>
                    {{#each commits}}
                        <tr>
                            <th>
                                {{#if url}}
                                    <a {{bind-attr href=url}} target="_blank">{{revision}}</a>
                                {{else}}
                                    {{revision}}
                                {{/if}}
                            </th>
                            <th>{{author}}</th>
                            <td>{{message}}</td>
                        </tr>
                    {{/each}}
                </tbody>
            {{/if}}
        </table>
    {{/if}}
    </script>

    <script type="text/x-handlebars" data-template-name="close-button">
        <svg class="close-button icon-button" viewBox="0 0 100 100">
            <g stroke="black" stroke-width="10">
                <circle cx="50" cy="50" r="45" fill="transparent"/>
                <polygon points="30,30 70,70" />
                <polygon points="30,70 70,30" />
            </g>
        </svg>
    </script>

    <script type="text/x-handlebars" data-template-name="stat-button">
        <svg class="stat-button icon-button" viewBox="10 0 110 100">
            <g stroke="none" stroke-width="0" fill="black">
                <path id="upper-sigma" d="M 5 5 H 95 V 40 h -10 c -5 -20 -5 -20 -25 -20 H 35 L 60 50 l -20 0" />
                <use xlink:href="#upper-sigma" transform="translate(0, 100) scale(1, -1)" />
            </g>
        </svg>
    </script>

    <script type="text/x-handlebars" data-template-name="stat-pane">
        <section {{bind-attr class=":popup-pane :stat-pane showingStatPane::hidden"}}>
            <section class="stat-option">
                <h1>Moving average</h1>
                <label>Type: {{view Ember.Select
                    content=movingAverageStrategies
                    optionValuePath='content'
                    optionLabelPath='content.label'
                    selection=chosenMovingAverageStrategy}}</label>
                    {{#if chosenMovingAverageStrategy.description}}
                        <p class="description">{{chosenMovingAverageStrategy.description}}</p>
                    {{/if}}
                {{#each chosenMovingAverageStrategy.parameterList}}
                    <label>{{label}}: {{input type="number" value=value min=min max=max step=step}}</label>
                {{/each}}
            </section>
            {{#if chosenMovingAverageStrategy.execute}}
                <section class="stat-option">
                    <h1>Envelope</h1>
                    <label>Type: {{view Ember.Select
                        content=envelopingStrategies
                        optionValuePath='content'
                        optionLabelPath='content.label'
                        selection=chosenEnvelopingStrategy}}</label>
                    {{#if chosenEnvelopingStrategy.description}}
                        <p class="description">{{chosenEnvelopingStrategy.description}}</p>
                    {{/if}}
                    {{#each chosenEnvelopingStrategy.parameterList}}
                        <label>{{label}}: <input type="number" {{bind-attr value=value min=min max=max step=step}}></label>
                    {{/each}}
                </section>
            {{/if}}
            {{#if chosenMovingAverageStrategy.isSegmentation}}
                <section class="stat-option">
                    <h1>A/B Test Range Selection</h1>
                    <label>Type: {{view Ember.Select
                        content=testRangeSelectionStrategies
                        optionValuePath='content'
                        optionLabelPath='content.label'
                        selection=chosenTestRangeSelectionStrategy}}</label>
                    {{#if chosenTestRangeSelectionStrategy.description}}
                        <p class="description">{{chosenTestRangeSelectionStrategy.description}}</p>
                    {{/if}}
                </section>
            {{/if}}
            {{#if chosenEnvelopingStrategy.execute}}
                <section class="stat-option">
                    <h1>Anomaly Detection</h1>
                    {{#each anomalyDetectionStrategies}}
                        <label {{bind-attr title=description}}>{{input type="checkbox" name=id checked=enabled}}{{label}}</label>
                    {{/each}}
                </section>
            {{/if}}
        </section>
    </script>

    <script type="text/x-handlebars" data-template-name="outlier-button">
        <svg class="outlier-button icon-button" viewBox="0 0 100 100">
            <g stroke="black" fill="black" stroke-width="15">
                <line x1="0" y1="70" x2="40" y2="70"/>
                <circle cx="15" cy="70" r="8"/>
                <circle cx="45" cy="70" r="8"/>
                <circle cx="85" cy="70" r="8"/>
                <line x1="85" y1="70" x2="100" y2="70"/>
                <g class="show-outlier-icon">
                    <line x1="45" y1="70" x2="65" y2="20"/>
                    <line x1="65" y1="20" x2="85" y2="70"/>
                    <circle cx="65" cy="20" r="8"/>
                </g>
                <g class="hide-outlier-icon">
                    <line x1="45" y1="70" x2="85" y2="70"/>
                </g>
            </g>
        </svg>
    </script>

    <script type="text/x-handlebars" data-template-name="analysis-button">
        <svg class="analysis-button icon-button" viewBox="0 0 100 100">
            <g stroke="black" fill="black" stroke-width="15">
                <circle cx="50" cy="50" r="40" fill="transparent"/>
                <line x1="50" y1="25" x2="50" y2="55"/>
                <circle cx="50" cy="67.5" r="10" stroke="none"/>
            </g>
        </svg>
    </script>

    <script type="text/x-handlebars" data-template-name="search-button">
        <svg class="search-button icon-button" viewBox="0 0 100 100">
            <g stroke="black" stroke-width="15">
                <circle cx="60" cy="40" r="30" fill="transparent"/>
                <line x1="10" y1="90" x2="40" y2="60"/>
            </g>
        </svg>
    </script>

    <script type="text/x-handlebars" data-template-name="spinner">
        <svg class="spinner" viewBox="0 0 100 100">
            <line x1="10" y1="50" x2="30" y2="50" stroke="black" stroke-width="10" stroke-linecap="round"/>
            <line x1="21.72" y1="21.72" x2="35.86" y2="35.86" stroke="black" stroke-width="10" stroke-linecap="round"/>
            <line x1="50" y1="10" x2="50" y2="30" stroke="black" stroke-width="10" stroke-linecap="round"/>
            <line x1="78.28" y1="21.72" x2="64.14" y2="35.86" stroke="black" stroke-width="10" stroke-linecap="round"/>
            <line x1="70" y1="50" x2="90" y2="50" stroke="black" stroke-width="10" stroke-linecap="round"/>
            <line x1="65.86" y1="65.86" x2="78.28" y2="78.28" stroke="black" stroke-width="10" stroke-linecap="round"/>
            <line x1="50" y1="70" x2="50" y2="90" stroke="black" stroke-width="10" stroke-linecap="round"/>
            <line x1="21.72" y1="78.28" x2="35.86" y2="65.86" stroke="black" stroke-width="10" stroke-linecap="round"/>
        </svg>
    </script>

    <script type="text/x-handlebars" data-template-name="navbar">
        <nav id="navigation" role="navigation">
            <h1><a href="#">{{App.Manifest.siteTitle}}</a></h1>
            <ul>
                {{#each App.Manifest.dashboards}}
                    {{#if name}}
                        {{#link-to 'dashboard' name tagName='li'}}
                            {{#link-to 'dashboard' name}}{{label}}{{/link-to}}
                        {{/link-to}}
                    {{/if}}
                {{/each}}
                {{#link-to 'charts' tagName='li'}}
                    {{#link-to 'charts'}}Charts{{/link-to}}
                {{/link-to}}
                {{#link-to 'analysis' tagName='li'}}
                    {{#link-to 'analysis'}}Analysis{{/link-to}}
                {{/link-to}}
            </ul>
        </nav>
    </script>

    <script type="text/x-handlebars" data-template-name="number-of-days-controls">
        <li class="numberOfDaysIs1">
            <a href="javascript:false" class="control-button" {{action "setNumberOfDays" 1}}>1D</a>
        </li>
        <li class="numberOfDaysIs7">
            <a href="javascript:false" class="control-button" {{action "setNumberOfDays" 7}}>1W</a>
        </li>
        <li class="numberOfDaysIs30">
            <a href="javascript:false" class="control-button" {{action "setNumberOfDays" 30}}>1M</a>
        </li>
        <li class="numberOfDaysIs90">
            <a href="javascript:false" class="control-button" {{action "setNumberOfDays" 90}}>3M</a>
        </li>
        <li class="numberOfDaysIs183">
            <a href="javascript:false" class="control-button" {{action "setNumberOfDays" 183}}>6M</a>
        </li>
        <li class="numberOfDaysIs365">
            <a href="javascript:false" class="control-button" {{action "setNumberOfDays" 365}}>1Y</a>
        </li>
    </script>

    <script type="text/x-handlebars" data-template-name="start-time-slider">
        <label><input type="range"> <span class="numberOfDays">X</span> days</label>
    </script>

    <script type="text/x-handlebars" data-template-name="popup">
        <span class="label">{{view App.PopupButtonView tagName="a" label=view.label }}</span>
        {{view view.popupListContainerView viewName="popupListContainerViewInstance"}}
    </script>

    <script type="text/x-handlebars" data-template-name="popup-list">
        {{#each view.list}}
            {{#if isSeparator}}
                <li><hr></li>
            {{else }} {{#if children}}
                <li>{{view App.PopupView list=children label=label}}</li>
            {{else}}
                <li>
                    {{#if actionName}}
                        <a href="javascript:false" class="label" {{action actionName actionArgument}}>{{label}}</a>
                    {{else}}
                        <a class="label">{{label}}</a>
                    {{/if}}
                </li>
            {{/if}} {{/if}}
        {{/each}}
    </script>

    <script type="text/x-handlebars" data-template-name="analysis">
        <header id="header">
            {{partial "navbar"}}
        </header>

        <table id="analysis-tasks">
            <thead>
                <tr>
                    <td>Name</td>
                    <td>Status</td>
                    <td>Author</td>
                    <td>Created at</td>
                    <td>Platform</td>
                    <td>Test</td>
                </tr>
            </thead>
            <tbody>
                {{#each model.tasks}}
                    <tr>
                        <td class="task-name">{{#link-to 'analysisTask' id}}{{name}}{{/link-to}}</td>
                        <td class="status">{{statusLabel}}</td>
                        <td class="author">{{author}}</td>
                        <td class="created-at">{{formattedCreatedAt}}</td>
                        <td class="platform-name">{{platform.label}}</td>
                        <td class="test-name">{{metric.fullName}}</td>
                    </tr>
                {{/each}}
            </tbody>
        </table>
    </script>

    <script type="text/x-handlebars" data-template-name="analysisTask">
        <header id="header">
            {{partial "navbar"}}
        </header>

        <h2 id="analysis-task-title">{{label}}</h2>
        {{#if platform.label}}
            <h3 id="analysis-task-testname">{{metric.fullName}} - {{platform.label}}</h3>
        {{/if}}

        {{#if pane}}
            <section class="analysis-chart-pane chart-pane" tabindex="0">
                <div class="svg-container">
                    {{interactive-chart
                        chartData=pane.chartData
                        ranges=pane.ranges
                        domain=overviewDomain
                        interactive=true
                        currentItem=pane.hoveredOrSelectedItem
                        selectedPoints=pane.selectedPoints
                        selection=timeRange
                        highlightedItems=highlightedItems
                        rangeRoute="analysisTask"}}
                </div>
                <div class="details">
                    <div class="details-table-container">
                        {{#if details}}
                            {{partial "chart-details"}}
                        {{else}}
                            {{partial "analysisStatusForm"}}
                        {{/if}}
                    </div>
                </div>
            </section>
        {{/if}}

        {{partial "testGroupForm"}}

        {{#each testGroupPanes}}
            {{partial "testGroup"}}
        {{/each}}
    </script>

    <script type="text/x-handlebars" data-template-name="testGroup">
        <section class="analysis-group">
            <h1>{{name}}</h1>
            <div class="table-container">
                <table class="results">
                    <thead>
                        <tr>
                            <td colspan="2">Configuration</td>
                            <td>Results</td>
                            <td>Status</td>
                            {{#each repositories}}
                                <td>{{name}}</td>
                            {{/each}}
                        </tr>
                    </thead>
                    {{#each configurations}}
                        <tbody {{bind-attr class="showRequestList::hideRequests"}}>
                            <tr class="summary" {{action toggleShowRequestList this}}>
                                <td class="config-letter" colspan="2">{{summary.configLetter}}</td>
                                {{#with summary}}
                                    {{partial "testGroupRow"}}
                                {{/with}}
                            </tr>
                            {{#each requests}}
                                <tr class="request">
                                    {{#with ../this}}
                                        <td class="config-letter" {{action toggleShowRequestList this}}></td>
                                    {{/with}}
                                    <td>Run {{orderLabel}}</td>
                                    {{partial "testGroupRow"}}
                                </tr>
                            {{/each}}
                        </tbody>
                    {{/each}}
                    {{#each comparisons}}
                        <tbody>
                            <tr>
                                <td colspan="2">{{label}}</td>
                                <td>{{difference}}</td>
                                <td>{{result}}</td>
                                {{#with ../this}}
                                    {{#each repositories}}
                                        <td></td>
                                    {{/each}}
                                {{/with}}
                            </tr>
                        </tbody>
                    {{/each}}
                </table>
            </div>
            <div class="reference-chart">
                {{#if referenceChart}}
                    {{interactive-chart
                        chartData=referenceChart.data
                        domain=overviewDomain
                        showYAxis=false
                        enableSelection=false
                        highlightedItems=referenceChart.highlightedItems}}
                {{/if}}
            </div>
        </section>
    </script>

    <script type="text/x-handlebars" data-template-name="testGroupRow">
        <td>
            {{#if value}}
                {{box-plot range=valueRange value=value delta=delta}}
            {{/if}}
            {{formattedValue}}
        </td>
        <td>
            <a {{bind-attr href=url title=buildLabel}}>{{statusLabel}}</a>
        </td>
        {{#each revisionList}}
            <td>{{this}}</td>
        {{/each}}
    </script>

    <script type="text/x-handlebars" data-template-name="testGroupForm">
    {{#if rootConfigurations}}
        <form method="POST" {{action "createTestGroup" newTestGroupName repetitionCount on="submit"}}>
            <section class="analysis-group">
                <h1>{{input name="name" value=newTestGroupName placeholder="Test group name" required=true type="text"}}</h1>
                <table>
                    <thead>
                        <tr>
                            <th>Configuration</th>
                            {{#each configurations}}
                                <th>{{this}}</th>
                            {{/each}}
                        </tr>
                    </thead>
                    <tbody>
                        {{#each rootConfigurations}}
                            <tr>
                                <th>{{name}}</th>
                                {{#each sets}}
                                    <td>
                                        {{view Ember.Select name=name content=options
                                            optionValuePath="content.value" optionLabelPath="content.label"
                                            selection=selection}}
                                        {{#if selection.isCustom}}
                                            {{input name="customValue" type=text value=customValue}}
                                        {{/if}}
                                        </td>
                                {{/each}}
                            </tr>
                        {{/each}}
                    </tbody>
                </table>
                <label>Number of runs {{view Ember.Select content=possibleRepetitionCounts value=repetitionCount}}</label>
                <button type="submit">Start A/B testing</button>
            </section>
        </form>
    {{/if}}
    </script>

    <script type="text/x-handlebars" data-template-name="analysisStatusForm">
        <table class="analysis-bugs">
            <tbody>
                {{#each model.bugs}}
                    <tr>
                        <th>{{bugTracker.name}}</th>
                        <td>
                            <a {{bind-attr href=url}} target="_blank">{{number}}</a>
                            <a href="javascript:false" {{action "deleteBug" this}}>{{partial "close-button"}}</a>
                        </td>
                    </tr>
                {{/each}}
                {{#if bugTrackers}}
                    <tr>
                        <td>
                            {{view Ember.Select content=bugTrackers optionValuePath="content" optionLabelPath="content.name" value=chosenBugTracker}}
                        </td>
                        <td>
                            {{input id=elementId type=text value=editedBugNumber}}
                            <button {{action "addBug" chosenBugTracker editedBugNumber}}>Add</button>
                        </td>
                    </tr>
                {{/if}}
            </tbody>
            <tbody>
                <tr>
                    <th><label for="analysis-status">Status<label></th>
                    <td>
                        <form class="analysis-bugs" {{action "saveStatus" on="submit"}}>
                            {{view Ember.Select id="analysis-status" content=analysisResultOptions optionValuePath="content"
                                optionLabelPath="content.label" selection=chosenAnalysisResult}}
                            <input type="submit" value="Save"><br>
                            <label {{bind-attr class="needsFeedback::hidden"}}>{{input type=checkbox checked=notNeeded}} This should not have been created</label>
                        </form>
                    </td>
                </tr>
            </tbody>
        </table>
    </script>

</head>
<body>
</body>
</html>
