Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
layout.html 3.28 KiB
{% extends "!layout.html" %}

{% block extrahead %}

<link rel="stylesheet" href="_static/gracedb-nav-style.css" />
<script src="/static/dojo/dojo.js" data-dojo-config="async: true"></script>
<script>

var getKeys = function(obj){
   var keys = [];
   for(var key in obj){
      keys.push(key);
   }
   return keys;
}

require([
    'dojo/_base/declare',
    'dojo/query',
    'dojo/parser',
    'put-selector/put',
    'dojo/dom',
    'dojo/dom-construct',
    'dojo/dom-style',
    'dojo/request',
    'dojo/NodeList-dom',
    'dojo/NodeList-traverse',
    'dojo/domReady!',
], function(declare, query, parser, put, dom, domConstruct, domStyle, request) {

    parser.parse();

    // The url will look like: base + /admin_docs/...
    var loc = window.location.href;
    var ind = loc.indexOf('admin_docs');
    var url = loc.substring(0,ind);
    url += 'navbar_only';
    
    var header_div = dom.byId("gracedb-nav-header");

    request.get(url).then(
        function(text) {
            var node = domConstruct.toDom(text);
            var nl = query('*', node);
            var header_content = "";
            // XXX this should not be necessary. Why can't I just query directly for the node with
            // id == 'content'?
            nl.forEach(function(n) {
                if (n.tagName == 'DIV' && n.id == 'content') {
                    header_content = n.innerHTML;
                }
            });
            header_div.innerHTML = header_content;
        },
        function(error) {
            console.log("failed to get navbar content.")
        }
    );

    // All the rest of this is to get the silly subclass information table in place.
    {% if pagename == 'models' %}
        var tableNode = dom.byId("subclasses_table");

        var SubclassInfo = new Object();

        // You know, there is probably a better way of getting at this information.
        SubclassInfo['CoincInspiralEvent'] = ["ifos","end_time","mass","mchirp","minimum_duration","snr","false_alarm_rate","combined_far"];

        SubclassInfo['MultiBurstEvent'] = ["ifos","start_time","duration","peak_time","central_freq","bandwidth","amplitude","snr","confidence","false_alarm_rate","ligo_axis_ra","ligo_axis_dec","ligo_angle","ligo_angle_sig"];
        SubclassInfo['SimInspiralEvent'] = ["mass1","mass2","eta","mchirp","spin1z","spin2z","amp_order","coa_phase","geocent_end_time","f_lower","f_final","distance","latitude","longitude","polarization","inclination","theta0","phi0","waveform","source_channel","destination_channel"];

        SubclassInfo['GrbEvent'] = ["ivorn","author_ivorn","author_shortname","observatory_location_id","coord_system","ra","dec","error_radius","how_description","how_reference_url","trigger_duration","t90"]

        var mainTable = put(tableNode, 'table.subclasses_main');
        headerRow = put(mainTable, 'tr');
        for (var key in SubclassInfo) {
            put(headerRow, 'th', key);
        }

        contentsRow = put(mainTable, 'tr');
        for (var key in SubclassInfo) {
            var subTable = put(contentsRow, 'td.subclasses_row table');
            for (var ind in SubclassInfo[key]) {
                put(subTable, 'tr', SubclassInfo[key][ind]);
            }
        }
    {% endif %}

});

</script>

{% endblock %}

{% block header %}

<div id="gracedb-nav-header"></div>

{% endblock %}