<!--
  ~
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  ~
  -->
<div>
    <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Certificates'" class="clear">
        <div data-dojo-attach-point="certificatesGridContainer"></div>
        <div class="clear dijitHidden" data-dojo-attach-point="certificateControls">
            <button data-dojo-attach-point="removeCertificateButton" data-dojo-type="dijit.form.Button"
                    class="removeCertificates">Remove Certificates
            </button>
            <input name="addCertificate" type="file" class="addCertificate"
                   data-dojo-attach-point="certificateUploader"
                   data-dojo-type="dojox/form/Uploader"
                   data-dojo-props="label: 'Add Certificate'"/>
        </div>
    </div>
</div>
