<%page expression_filter="h"/>
<%!
from django.utils.translation import ugettext as _
from contentstore.views.helpers import xblock_studio_url
from contentstore.utils import is_visible_to_specific_partition_groups
from lms.lib.utils import is_unit
from openedx.core.djangolib.js_utils import (
    dump_js_escaped_json, js_escaped_string
)
%>
<%
xblock_url = xblock_studio_url(xblock)
show_inline = xblock.has_children and not xblock_url
section_class = "level-nesting" if show_inline else "level-element"
collapsible_class = "is-collapsible" if xblock.has_children else ""
label = xblock.display_name_with_default or xblock.scope_ids.block_type
messages = xblock.validate().to_json()
block_is_unit = is_unit(xblock)
%>

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

<%block name="header_extras">
<script type="text/template" id="xblock-validation-messages-tpl">
    <%static:include path="js/xblock-validation-messages.underscore" />
</script>
</%block>

<script>
    require(["jquery", "js/factories/xblock_validation"], function($, XBlockValidationFactory) {
        XBlockValidationFactory(
            ${messages | n, dump_js_escaped_json},
            ${bool(xblock_url) | n, dump_js_escaped_json},  // xblock_url will be None or a string
            ${bool(is_root) | n, dump_js_escaped_json},  // is_root will be None or a boolean
            ${bool(block_is_unit) | n, dump_js_escaped_json},  // block_is_unit will be None or a boolean
            $('div.xblock-validation-messages[data-locator="${xblock.location | n, js_escaped_string}"]')
        );
    });
</script>

% if not is_root:
    % if is_reorderable:
    <li class="studio-xblock-wrapper is-draggable" data-locator="${xblock.location}" data-course-key="${xblock.location.course_key}">
    % else:
    <div class="studio-xblock-wrapper" data-locator="${xblock.location}" data-course-key="${xblock.location.course_key}">
    % endif

    <section class="wrapper-xblock ${section_class} ${collapsible_class}
    % if is_visible_to_specific_partition_groups(xblock):
        has-group-visibility-set
    % endif
    ">
% endif

<header class="xblock-header xblock-header-${xblock.category}">
    <div class="xblock-header-primary
    % if not show_preview:
        is-collapsed
    % endif
    ">
        <div class="header-details">
            % if show_inline:
            <a href="#" data-tooltip="${_('Expand or Collapse')}" class="action expand-collapse collapse">
                <span class="icon fa fa-caret-down ui-toggle-expansion" aria-hidden="true"></span>
                <span class="sr">${_('Expand or Collapse')}</span>
            </a>
            % endif
            <div class="xblock-display-title">
                <span class="xblock-display-name">${label}</span>
                % if selected_groups_label:
                <p class="xblock-group-visibility-label">${selected_groups_label}</p>
                % endif
            </div>
        </div>
        <div class="header-actions">
            <ul class="actions-list">
                % if not is_root:
                    % if can_edit:
                        % if not show_inline:
                            <li class="action-item action-edit">
                                <button class="btn-default edit-button action-button">
                                    <span class="icon fa fa-pencil" aria-hidden="true"></span>
                                    <span class="action-button-text">${_("Edit")}</span>
                                </button>
                            </li>
                            % if can_edit_visibility:
                                <li class="action-item action-visibility">
                                    <button data-tooltip="${_("Access Settings")}" class="btn-default access-button action-button">
                                        <span class="icon fa fa-gear" aria-hidden="true"></span>
                                        <span class="sr">${_("Set Access")}</span>
                                    </button>
                                </li>
                            % endif
                            % if can_add:
                                <li class="action-item action-duplicate">
                                    <button data-tooltip="${_("Duplicate")}" class="btn-default duplicate-button action-button">
                                    <span class="icon fa fa-copy" aria-hidden="true"></span>
                                    <span class="sr">${_("Duplicate")}</span>
                                    </button>
                                </li>
                            % endif
                            % if can_move:
                                <li class="action-item action-move">
                                    <button data-tooltip="${_("Move")}" class="btn-default move-button action-button">
                                        <span class="stack-move-icon fa-stack fa-lg ">
                                            <span class="fa fa-file-o fa-stack-2x fa-fw" aria-hidden="true"></span>
                                            <span class="fa fa-arrow-right fa-stack-1x fa-fw" aria-hidden="true"></span>
                                        </span>
                                        <span class="sr">${_("Move")}</span>
                                    </button>
                                </li>
                            % endif
                        % endif
                        % if can_add:
                            <!-- If we can add, we can delete. -->
                            <li class="action-item action-delete">
                                <button data-tooltip="${_("Delete")}" class="btn-default delete-button action-button">
                                <span class="icon fa fa-trash-o" aria-hidden="true"></span>
                                <span class="sr">${_("Delete")}</span>
                                </button>
                            </li>
                        % endif
                        % if is_reorderable:
                            <li class="action-item action-drag">
                                <span data-tooltip="${_('Drag to reorder')}" class="drag-handle action"></span>
                            </li>
                        % endif
                    % elif not show_inline:
                        <li class="action-item action-edit action-edit-view-only">
                            <a href="#" class="edit-button action-button">
                                <span class="action-button-text">${_("Details")}</span>
                            </a>
                        </li>
                    % endif
                % endif
            </ul>
        </div>
    </div>
    % if not is_root:
        <div class="wrapper-xblock-message xblock-validation-messages" data-locator="${xblock.location}"/>
        % if xblock_url:
        <div class="xblock-header-secondary">
            <div class="meta-info">${_('This block contains multiple components.')}</div>
            <ul class="actions-list">
                <li class="action-item action-view">
                    <a href="${xblock_url}" class="action-button">
                        ## Translators: this is a verb describing the action of viewing more details
                        <span class="action-button-text">${_('View')}</span>
                        <span class="icon fa fa-arrow-right" aria-hidden="true"></span>
                    </a>
                </li>
            </ul>
        </div>
        % endif
    % endif
 </header>

% if is_root:
    <div class="wrapper-xblock-message xblock-validation-messages" data-locator="${xblock.location}"/>
% endif

% if show_preview:
    % if is_root or not xblock_url:
        % if not is_root and language:
            <article class="xblock-render" lang="${language}">
        % else:
            <article class="xblock-render">
        % endif
        ${content | n, decode.utf8}
        </article>
    % else:
        <div class="xblock-message-area">
        ${content | n, decode.utf8}
        </div>
    % endif
 % endif

% if not is_root:
    <!-- footer for xblock_aside -->
    </section>

    % if is_reorderable:
        </li>
    % else:
        </div>
    % endif
% endif
