{% extends "cone_base.html" %}
{% block title %}Compare data{% endblock %}
{% block content %}

    <h1>CRML Data Compatibility Report</h1><br>
    
    <table class="report" id="cdc_report">
      <tr>
        <td>Source:</td>
        <td>{{ data.sourcedata.name }}</td>
      </tr>
      <tr>
        <td>Target:</td>
        <td>{{ data.targetdata.name }}</td>
      </tr>
    </table>
    <script language="javascript" type="text/javascript">
//<![CDATA[
    setFilterGrid("cdc_report");
//]]>
</script>
    
    
    <br/>
    
    <h2>Modified keys/files:</h2>
    
    <table class="report" id="mk_report">
    <tr>
        <th>File</th>
        <th>Repository UID</th>
        <th>Repository name</th>
        <th>Key UID</th>
        <th>Key name</th>
        <th>Changed value</th>
        <th>Old value</th>
        <th>New value</th>
    </tr>
    
    {% for row in data.impl_data.flat.modified|sort -%}
        {#- Only report CRML changes (but ignore changes to key names, they don't matter for DC) -#}
        {%- if row.impl_type == 'crml' and row.value_id != 'name' -%}
            {# Ignore changes to read-only keys. However, if a key's read-only attribute is changed, that is reported. -#}
            {%- if 'target_key' not in row.data or row.data.target_key.read_only == false or row.data.source_key.read_only != row.data.target_key.read_only -%}
                
                {%- if 'target_key' in row.data -%}
                    {% set key_name = row.data.target_key.name or row.data.source_key.name -%}
                {% else -%}
                    {% set key_name = '' -%}
                {% endif -%}
                {%- set repo_name = row.data.target_repo.uid_name or row.data.source_repo.uid_name -%}
                {%- if repo_name == none -%}{%- set repo_name = '' -%}{%- endif -%}
                
                <tr>
                    <td>{{ row.file }}</td>
                    <td>{{ row.id }}</td>
                    <td>{{ repo_name }}</td>
                    <td>{{ row.sub_id }}</td>
                    <td>{{ key_name }}</td>
                    <td>{{ row.value_id }}</td>
                    <td>{{ row.source_value }}</td>
                    <td>{{ row.target_value }}</td>
                </tr>
            {% endif -%}

        {% endif -%}
    {% endfor %}
    </table>
    <script language="javascript" type="text/javascript">
//<![CDATA[
    setFilterGrid("mk_report");
//]]>
</script>
    
    
    
    <h2>Added keys/files:</h2>
    
    <table class="report" id="ak_report">
    <tr>
        <th>File</th>
        <th>Repository UID</th>
        <th>Repository name</th>
        <th>Key UID</th>
        <th>Key name</th>
    </tr>
    
    {% for row in data.impl_data.flat.only_in_target|sort -%}
        {%- if row.impl_type == 'crml' and ('key' not in row.data or row.data.key.read_only == false) -%}
            {%- if row.data != none and 'key' in row.data -%}
                {%- set key_name = row.data.key.name -%}
            {%- else -%}
                {%- set key_name = '' -%}
            {%- endif -%}
            {%- set repo_name = row.data.repo.uid_name or '' -%}
            
            <tr>
                <td>{{ row.file }}</td>
                <td>{{ row.id or '' }}</td>
                <td>{{ repo_name }}</td>
                <td>{{ row.sub_id or '' }}</td>
                <td>{{ key_name }}</td>
            </tr>
        {% endif -%}
    {% endfor %}
    </table>
    <script language="javascript" type="text/javascript">
//<![CDATA[
    setFilterGrid("ak_report");
//]]>
</script>
    
    
    <h2>Removed keys/files:</h2>
    
    <table class="report" id="rk_report">
    <tr>
        <th>File</th>
        <th>Repository UID</th>
        <th>Repository name</th>
        <th>Key UID</th>
        <th>Key name</th>
    </tr>
    
    {% for row in data.impl_data.flat.only_in_source|sort -%}
        {%- if row.impl_type == 'crml' and ('key' not in row.data or row.data.key.read_only == false) -%}
            {%- if row.data != none and 'key' in row.data -%}
                {%- set key_name = row.data.key.name -%}
            {%- else -%}
                {%- set key_name = '' -%}
            {%- endif -%}
            {%- set repo_name = row.data.repo.uid_name or '' -%}
            
            <tr>
                <td>{{ row.file }}</td>
                <td>{{ row.id or '' }}</td>
                <td>{{ repo_name }}</td>
                <td>{{ row.sub_id or '' }}</td>
                <td>{{ key_name }}</td>
            </tr>
        {% endif -%}
    {% endfor %}
    </table>
    <script language="javascript" type="text/javascript">
//<![CDATA[
    setFilterGrid("rk_report");
//]]>
</script>
    
    
    <h2>Duplicate repositories:</h2>
    
    <table class="report" id="dr_report">
    <tr>
        <th>Repository UID</th>
        <th>Files in source</th>
        <th>Files in target</th>
    </tr>
    
    {% for row in data.impl_data.flat.duplicate|sort -%}
        {%- if row.impl_type == 'crml' -%}
            <tr>
                <td>{{ row.id }}</td>
                <td>
                {% for file in row.files_in_source %}{{ file }}<br/>{% endfor %}
                </td>
                <td>
                {% for file in row.files_in_target %}{{ file }}<br/>{% endfor %}
                </td>
            </tr>
        {% endif -%}
    {% endfor %}
    </table>
    <script language="javascript" type="text/javascript">
//<![CDATA[
    setFilterGrid("dr_report");
//]]>
</script>
    
{% endblock %}
