<%inherit file="base.html" />
<%!
  from django.core.urlresolvers import reverse
  from django.utils.translation import ugettext as _
%>
<%block name="title">${_("Files &amp; Uploads")}</%block>
<%block name="bodyclass">is-signedin course uploads view-uploads</%block>

<%namespace name='static' file='static_content.html'/>

<%block name="header_extras">
% for template_name in ["asset-library", "asset", "paging-header", "paging-footer"]:
<script type="text/template" id="${template_name}-tpl">
    <%static:include path="js/${template_name}.underscore" />
</script>
% endfor
</%block>

<%block name="jsextra">
<script type="text/javascript">
require(["domReady", "jquery", "js/models/asset", "js/collections/asset",
         "js/views/assets", "js/views/feedback_prompt",
         "js/views/feedback_notification", "js/views/paging_header", "js/views/paging_footer",
         "js/utils/modal", "jquery.fileupload"],
        function(domReady, $, AssetModel, AssetCollection, AssetsView, PromptView, NotificationView,
                 PagingHeader, PagingFooter, ModalUtils) {
    var assets = new AssetCollection();

    assets.url = "${asset_callback_url}";
    var assetsView = new AssetsView({collection: assets, el: $('#asset-library')});
    assetsView.render();
    assetsView.setPage(0);

    var hideModal = function (e) {
        if (e) {
            e.preventDefault();
        }
        $('.file-input').unbind('change.startUpload');
        ModalUtils.hideModal();
    };

    var showUploadModal = function (e) {
        e.preventDefault();
        resetUploadModal();
        ModalUtils.showModal();
        $('.file-input').bind('change', startUpload);
        $('.upload-modal .file-chooser').fileupload({
            dataType: 'json',
            type: 'POST',
            maxChunkSize: 100 * 1000 * 1000,      // 100 MB
            autoUpload: true,
            progressall: function(e, data) {
                var percentComplete = parseInt((100 * data.loaded) / data.total, 10);
                showUploadFeedback(e, percentComplete);
            },
            maxFileSize: 100 * 1000 * 1000,   // 100 MB
            maxNumberofFiles: 100,
            add: function(e, data) {
                data.process().done(function () {
                    data.submit();
                });
            },
            done: function(e, data) {
                displayFinishedUpload(data.result);
            }

        });
    };

    var showFileSelectionMenu = function(e) {
        e.preventDefault();
        $('.file-input').click();
    };

    var startUpload = function (e) {
        var file = e.target.value;

        $('.upload-modal h1').text("${_(u'Uploading…')}");
        $('.upload-modal .file-name').html(file.substring(file.lastIndexOf("\\") + 1));
        $('.upload-modal .choose-file-button').hide();
        $('.upload-modal .progress-bar').removeClass('loaded').show();
    };

    var resetUploadModal = function () {
        // Reset modal so it no longer displays information about previously
        // completed uploads.
        var percentVal = '0%';
        $('.upload-modal .progress-fill').width(percentVal);
        $('.upload-modal .progress-fill').html(percentVal);
        $('.upload-modal .progress-bar').hide();

        $('.upload-modal .file-name').show();
        $('.upload-modal .file-name').html('');
        $('.upload-modal .choose-file-button').text("${_('Choose File')}");
        $('.upload-modal .embeddable-xml-input').val('');
        $('.upload-modal .embeddable').hide();
    };

    var showUploadFeedback = function (event, percentComplete) {
        var percentVal = percentComplete + '%';
        $('.upload-modal .progress-fill').width(percentVal);
        $('.upload-modal .progress-fill').html(percentVal);
    };

    var displayFinishedUpload = function (resp) {
        var asset = resp.asset;

        $('.upload-modal h1').text("${_('Upload New File')}");
        $('.upload-modal .embeddable-xml-input').val(asset.portable_url);
        $('.upload-modal .embeddable').show();
        $('.upload-modal .file-name').hide();
        $('.upload-modal .progress-fill').html(resp.msg);
        $('.upload-modal .choose-file-button').text("${_('Load Another File')}").show();
        $('.upload-modal .progress-fill').width('100%');

        assetsView.addAsset(new AssetModel(asset));
    };

    domReady(function() {
        $('.uploads .upload-button').bind('click', showUploadModal);
        $('.upload-modal .close-button').bind('click', hideModal);
        $('.upload-modal .choose-file-button').bind('click', showFileSelectionMenu);
    });

}); // end of require()
    </script>
</%block>

<%block name="content">

<div class="wrapper-mast wrapper">
    <header class="mast has-actions has-subtitle">
        <h1 class="page-header">
            <small class="subtitle">${_("Content")}</small>
            <span class="sr">&gt; </span>${_("Files &amp; Uploads")}
        </h1>

        <nav class="nav-actions">
            <h3 class="sr">${_("Page Actions")}</h3>
            <ul>
                <li class="nav-item">
                    <a href="#" class="button upload-button new-button"><i class="icon-plus"></i> ${_("Upload New File")}</a>
                </li>
            </ul>
        </nav>
    </header>
</div>

<div class="wrapper-content wrapper">
    <section class="content">
        <article id="asset-library" class="content-primary" role="main"></article>

        <aside class="content-supplementary" role="complimentary">
            <div class="bit">
                <h3 class="title-3">${_("What files are listed here?")}</h3>
            	<p>${_("In addition to the files you upload on this page, any files that you add to the course appear in this list. These files include your course image, textbook chapters, and files that appear on your Course Handouts sidebar.")}</p>
            </div>
            <div class="bit">
                <h3 class="title-3">${_("File URLs")}</h3>
                 <ul class="list-details">
                    <li class="item-detail">${_("You use the Embed URL value to link to the file or image from a component, a course update, or a course handout.")}</li>
                    <li class="item-detail">${_("You use the External URL value to reference the file or image from outside of your course. Do not use the External URL as a link value within your course.")}</li>
          			
        		</ul>
            </div>
             <div class="bit">
                <h3 class="title-3">${_("What can I do on this page?")}</h3>
                 <ul class="list-details">
                    <li class="item-detail">${_("You can upload new files or view, download, or delete existing files. You can lock a file so that people who are not enrolled in your course cannot access that file.")}</li>
                    
                </ul>
            </div>
        </aside>
    </section>
</div>

<div class="upload-modal modal">
    <a href="#" class="close-button"><i class="icon-remove-sign"></i> <span class="sr">${_('close')}</span></a>
    <div class="modal-body">
        <h1 class="title">${_("Upload New File")}</h1>
        <p class="file-name">
        <div class="progress-bar">
            <div class="progress-fill"></div>
        </div>
        <div class="embeddable">
            <label>URL:</label>
            <input type="text" class="embeddable-xml-input" value='' readonly>
        </div>
        <form class="file-chooser" action="${asset_callback_url}"
              method="post" enctype="multipart/form-data">
            <a href="#" class="choose-file-button">${_("Choose File")}</a>
            <input type="file" class="file-input" name="file" multiple>
        </form>
    </div>
</div>


</%block>

<%block name="view_alerts">
<!-- alert: save confirmed with close -->
<div class="wrapper wrapper-alert wrapper-alert-confirmation" role="status">
    <div class="alert confirmation">
        <i class="icon-ok"></i>

        <div class="copy">
            <h2 class="title title-3">${_('Your file has been deleted.')}</h2>
        </div>

        <a href="" rel="view" class="action action-alert-close">
            <i class="icon-remove-sign"></i>
            <span class="label">${_('close alert')}</span>
        </a>
    </div>
</div>
</%block>
