<html>
<head>
  <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
  <meta content="utf-8" http-equiv="encoding">
  <script src="static/jquery-2.1.4.min.js"></script>
  <script src="static/dygraph-combined.js"></script>
  <link rel="stylesheet" type="text/css" href="static/craft.css">
  <link rel=icon href=static/favicon.ico>
  <link rel=stylesheet href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;lang=en">
  <link rel=stylesheet href=static/default.css>
</head>
<body>
  <header>
    <section>
      <h1><img src=static/logo.png alt="Google Fiber"></h1>
      <nav>
        <ul>
          <li ><a href=/{{peer_arg_on_peer}}>Welcome</a></li>
          <li ><a href=/status{{peer_arg_on_peer}}>Status</a></li>
          <li class=active><a href=/config{{peer_arg_on_peer}}>Configuration</a></li>
          <li ><a {{hidden_on_peer}} href="/{{peer_arg}}" target=_blank>Peer</a></li>
        </ul>
      </nav>
    </section>
  </header>
  <div hidden>
    <input id=hidden_on_https value="{{hidden_on_https}}">
    <input id=hidden_on_peer value="{{hidden_on_peer}}">
    <input id=shown_on_peer value="{{shown_on_peer}}">
    <input id=peer_arg value="{{peer_arg}}">
    <input id=peer_arg_on_peer value="{{peer_arg_on_peer}}">
  </div>
  <div {{shown_on_peer}}><font color="red"><b>This is the Peer</b></font></div>
  <div>
    <table class="leds">
      <tr>
        <td width=50 align=center>Craft<br>
          <img id="leds/Craft" width=20 height=20 src=/static/grey.gif></td>
        <td width=50 align=center>ACS<br>
          <img id="leds/ACS" width=20 height=20 src=/static/grey.gif></td>
        <td width=50 align=center>Switch<br>
          <img id="leds/Switch" width=20 height=20 src=/static/grey.gif></td>
        <td width=50 align=center>Modem<br>
          <img id="leds/Modem" width=20 height=20 src=/static/grey.gif></td>
        <td width=50 align=center>Radio<br>
          <img id="leds/Radio" width=20 height=20 src=/static/grey.gif></td>
        <td width=50 align=center>RSSI<br>
          <img id="leds/RSSI" width=20 height=20 src=/static/grey.gif></td>
        <td width=50 align=center>MSE<br>
          <img id="leds/MSE" width=20 height=20 src=/static/grey.gif></td>
        <td width=50 align=center>Peer<br>
          <img id="leds/Peer" width=20 height=20 src=/static/grey.gif></td>
    </table>
  </div>
  <div class="tabs">
    <div class="tab">
      <input type="radio" id="tab-1" name="tab-group-1" checked>
      <label for="tab-1">Running Configuration</label>
      <div class="content">
        <b>Running Configuration:</b><br>
        <textarea id=configuration cols=60 rows=30>...</textarea><br>
        <input type=submit value=Apply onclick="craftUI.config('password_admin', 0, 1)">
      </div>
    </div>

    <div class="tab">
      <input type="radio" id="tab-2" name="tab-group-1">
      <label for="tab-2">Passwords</label>
      <div class="content">
        <b>Passwords:</b>
        <table>
          <tr>
            <td align=center><b>Account
            <td align=center><b>Old, New and Confirmed Password
            <td align=center><b>Status

          <tr>
            <td>
              Admin
            <td align=right>
              Current <b>Admin</b> Password: <input id=password_admin_admin type=password value=""><br>
              New Admin Password: <input id=password_admin_new type=password value=""><br>
              Confirm: <input id=password_admin_confirm type=password value=""><br>
              <input type=submit value="Apply Now" onclick="craftUI.config('password_admin', 0, 1)">
            <td>
              <span id=password_admin_result>...</span>

          <tr>
            <td>
              Guest
            <td align=right>
              Current <b>Admin</b> Password: <input id=password_guest_admin type=password value=""><br>
              New Guest Password: <input id=password_guest_new type=password value=""><br>
              Confirm: <input id=password_guest_confirm type=password value=""><br>
              <input type=submit value="Apply Now" onclick="craftUI.config('password_guest', 0, 1)">
            <td>
              <span id=password_guest_result>...</span>

        </table>
      </div>
    </div>

    <div class="tab">
      <input type="radio" id="tab-3" name="tab-group-1">
      <label for="tab-3">Addresses</label>
      <div class="content">
        <b>Platform Parameters:</b>
        <table>
          <tr>
            <td align=center><b>Parameter
            <td align=center><b>Active Value
            <td align=center><b>Last Configured
            <td align=center><b>Configure
            <td align=center><b>Status

          <tr>
            <td><b>Craft IP Address
            <td align=right><span id="platform/active_craft_inet">...</span>
            <td align=right>
              <span id="platform/craft_ipaddr">...</span>
              <input type=submit value="Apply Now" onclick="craftUI.config('craft_ipaddr', 1)">
            <td>
              <input id=craft_ipaddr type=text value="">
              <input type=submit value=Configure onclick="craftUI.config('craft_ipaddr')">
            <td>
              <span id=craft_ipaddr_result>...</span>

          <tr>
            <td><b>Link IP Address
            <td align=right><span id="platform/active_link_inet">...</span>
            <td align=right>
              <span id="platform/link_ipaddr">...</span>
              <input type=submit value="Apply Now" onclick="craftUI.config('link_ipaddr', 1)">
            <td>
              <input id=link_ipaddr type=text value="">
              <input type=submit value=Configure onclick="craftUI.config('link_ipaddr')">
            <td>
              <span id=link_ipaddr_result>...</span>

          <tr>
            <td><b>Peer IP Address
            <td align=right>See Peer
            <td align=right>
              <span id="platform/peer_ipaddr">...</span>
              <input type=submit value="Apply Now" onclick="craftUI.config('peer_ipaddr', 1)">
            <td>
              <input id=peer_ipaddr type=text value="">
              <input type=submit value=Configure onclick="craftUI.config('peer_ipaddr')">
            <td>
              <span id=peer_ipaddr_result>...</span>

          <tr>
            <td><b>In-band Management VLAN
            <td align=right><span id="platform/active_inband_vlan">...</span>
            <td align=right>
              <span id="platform/vlan_inband">...</span>
              <input type=submit value="Apply Now" onclick="craftUI.config('vlan_inband', 1)">
            <td>
              <input id=vlan_inband type=text value="">
              <input type=submit value=Configure onclick="craftUI.config('vlan_inband')">
            <td>
              <span id=vlan_inband_result>...</span>

          <tr>
            <td><b>Out-of-band Management VLAN
            <td align=right><span id="platform/active_ooband_vlan">...</span>
            <td align=right>
              <span id="platform/vlan_ooband">...</span>
              <input type=submit value="Apply Now" onclick="craftUI.config('vlan_ooband', 1)">
            <td>
              <input id=vlan_ooband type=text value="">
              <input type=submit value=Configure onclick="craftUI.config('vlan_ooband')">
            <td>
              <span id=vlan_ooband_result>...</span>

          <tr>
            <td><b>Link VLAN (to peer)
            <td align=right><span id="platform/active_link_vlan">...</span>
            <td align=right>
              <span id="platform/vlan_link">...</span>
              <input type=submit value="Apply Now" onclick="craftUI.config('vlan_peer', 1)">
            <td>
              <input id=vlan_peer type=text value="">
              <input type=submit value=Configure onclick="craftUI.config('vlan_peer')">
            <td>
              <span id=vlan_peer_result>...</span>

        </table>
      </div>
    </div>

    <div class="tab">
      <input type="radio" id="tab-4" name="tab-group-1">
      <label for="tab-4">Radio</label>
      <div class="content">
        <b>Radio Parameters:</b>
        <table>
          <tr>
            <td align=center><b>Parameter
            <td align=center><b>Active Value
            <td align=center><b>Configure and Apply
            <td align=center><b>Status

          <tr>
            <td><b>High Frequency
            <td align=right><span id="radio/hiTransceiver/pll/frequency">...</span>
            <td>
              <input id=freq_hi type=text value="">
              <input type=submit value=Apply onclick="craftUI.config('freq_hi')">
            <td>
              <span id=freq_hi_result>...</span>

          <tr>
            <td><b>Low Frequency
            <td align=right><span id="radio/loTransceiver/pll/frequency">...</span>
            <td>
              <input id=freq_lo type=text value="">
              <input type=submit value=Apply onclick="craftUI.config('freq_lo')">
            <td>
              <span id=freq_lo_result>...</span>

          <tr>
            <td><b>High Frequency Mode
            <td align=right><span id="radio/hiTransceiver/mode">...</span>
            <td>
              <input id=mode_hi type=text value="">
              <input type=submit value=Apply onclick="craftUI.config('mode_hi')">
            <td>
              <span id=mode_hi_result>...</span>

          <tr>
            <td><b>ACM enabled
            <td align=right><span id="modem/status/acmEngineRxSensorsEnabled">...</span>
            <td>
              <input id=acm_on type=text value="">
              <input type=submit value=Apply onclick="craftUI.config('acm_on')">
            <td>
              <span id=acm_on_result>...</span>

          <tr>
            <td><b>Transmit Power (dB x 100)
            <td align=right><span id="radio/tx/paPowerSet">...</span>
            <td>
              <input id=tx_powerlevel type=text value="">
              <input type=submit value=Apply onclick="craftUI.config('tx_powerlevel')">
            <td>
              <span id=tx_powerlevel_result>...</span>

          <tr hidden>
            <td><b>Transmit VGA Gain
            <td align=right><span id="radio/tx/vgaGain">...</span>
            <td>
              <input id=tx_gain type=text value="">
              <input type=submit value=Apply onclick="craftUI.config('tx_gain')">
            <td>
              <span id=tx_gain_result>...</span>

          <tr hidden>
            <td><b>Receiver AGC Digital Gain Index
            <td align=right><span id="radio/rx/agcDigitalGainIndex">...</span>
            <td>
              <input id=rx_gainindex type=text value="">
              <input type=submit value=Apply onclick="craftUI.config('rx_gainindex')">
            <td>
              <span id=rx_gainindex_result>...</span>

          <tr>
            <td><b>PA & LNA Enabled
            <td align=right><span id="radio/paLnaPowerEnabled">...</span>
            <td>
              <input id=palna_on type=text value="">
              <input type=submit value=Apply onclick="craftUI.config('palna_on')">
            <td>
              <span id=palna_on_result>...</span>

        </table>
        <div id="rsl-graph">...</div>
      </div>
    </div>

    <div class="tab">
      <input type="radio" id="tab-5" name="tab-group-1">
      <label for="tab-5">Reboot</label>
      <div class="content">
        <input hidden id=reboot type=text value="true">
        <input type=submit value=Reboot onclick="craftUI.config('reboot')">
        <span class="values">
          <span id=reboot_result>...</span>
        </span>
        <br>
        Note: Allow 60 seconds for UI to return after reboot, and 200 seconds for link to come up.
        <br>
        <br>
        <input hidden id=factory_reset type=text value="true">
        <input type=submit value="Factory Reset" onclick="craftUI.config('factory_reset')">
        <span class="values">
          <span id=factory_reset_result>...</span>
        </span>
        <br>
        Warning: This will restore all defaults, including the craft port address to <a href=http://192.168.1.1/>192.168.1.1</a>.
      </div>
    </div>

    <div class="tab">
      <input type="radio" id="tab-6" name="tab-group-1">
      <label for="tab-6">Debug</label>
      <div class="content">
        <b>Constellation:</b><span class="values"><a href="/rxslicer.png" target=_blank>rxslicer.png</a></li></span><br>
        <b>refreshCount:</b><span class="values" id="platform/refreshCount">...</span><br>
        <b>unhandled xml:</b><span class="values">
          <textarea id=unhandled cols=60 rows=30>...</textarea></span><br>
      </div>
    </div>

  </div>
  <script src="static/craft.js"></script>
</body>
</html>
<!-- end of config.thtml (used by unit test) -->
