1 | {% macro renderBlock(page, group, block, extraClasses) %}
|
2 | {% if page._edit %}
|
3 | <div {% if block.id %}data-id="{{ block.id }}"{% endif %} class="{{ extraClasses }} apos-block-wrapper"{% if block.type %} data-type="{{block.type}}"{% endif %} data-block-wrapper>
|
4 | <div class="apos-block-controls apos-ui-container" data-block-controls>
|
5 | <span class="apos-ui-btn-group">
|
6 | <a class="apos-button apos-ui-btn" href="#" data-block-handle><i class="icon-move"></i></a>{#
|
7 | #}<span class="apos-button apos-ui-btn apos-ui-move-up" data-move-block="up"><i class="icon-arrow-up"></i></span>{#
|
8 | #}<span class="apos-button apos-ui-btn apos-ui-move-down" data-move-block="down"><i class="icon-arrow-down"></i></span>
|
9 | </span>
|
10 | <ul {% if block.id %}data-id="{{ block.id }}"{% endif %} class="apos-blocks-menu apos-ui " href="#">
|
11 | <li>
|
12 | <span data-content-block-menu-toggle class="apos-ui-btn apos-button apos-ui-dropdown"><i class="icon-reorder"></i> Layout</span>
|
13 | <ul {% if block.id %}data-id="{{ block.id }}"{% endif %} class="apos-editor2-content-menu-options apos-block-menu-options apos-ui-menu" data-content-block-menu-options>
|
14 | {% for type in types %}
|
15 | <li href="#" {% if type.name == block.type %} class="active"{% endif %} data-switch-block data-type="{{ type.name | e }}">
|
16 | {% if type.icon %}<i class="icon {{type.icon}}"></i>{% endif %}
|
17 | {{ type.label | e }}
|
18 | </li>
|
19 | {% endfor %}
|
20 | </ul>
|
21 | </li>
|
22 | </ul>
|
23 | <a class="apos-button apos-ui-btn" href="#" data-remove-block><i class="icon-trash"></i></a>
|
24 | </div>
|
25 | <div class="apos-block" data-block>
|
26 | {% if block.type %}
|
27 | {{ partial(block.type, { page: page, user: user, prefix: group + '_' + block.id + '_' }) }}
|
28 | {% else %}
|
29 | {# This block is the template, it will have content later after cloning #}
|
30 | {% endif %}
|
31 | </div>
|
32 | </div>
|
33 | {% else %}
|
34 | {# When not editing we render with no extra wrappers #}
|
35 | {{ partial(block.type, { page: page, user: user, prefix: group + '_' + block.id + '_' }) }}
|
36 | {% endif %}
|
37 | {% endmacro %}
|
38 |
|
39 | {% if page._edit %}
|
40 | <div class="apos-block-group" data-block-group="{{ group | e }}" data-slug="{{ page.slug | e }}">
|
41 | <div class="apos-block-group-controls apos-ui-container">
|
42 | <span class="apos-ui-btn" data-content-blocks-menu=""><i class="icon-plus"></i> Add {{(groupLabel | e) or ('Block')}} </span>
|
43 | <ul class="apos-block-menu-options apos-ui-menu" data-content-blocks-menu-options="">
|
44 | {% for type in types %}
|
45 | <li data-new-block data-type="{{ type.name | e }}">
|
46 | {% if type.icon %}<i class="icon {{type.icon}}"></i>{% endif %}
|
47 | {{ type.label | e }}
|
48 | </li>
|
49 | {# <a class="apos-button apos-ui-button" href="#" >+ {{ type.label | e }}</a> #}
|
50 | {% endfor %}
|
51 | </ul>
|
52 | </div>
|
53 | <div class="apos-blocks" data-apos-blocks>
|
54 | {# Existing blocks #}
|
55 | {% for block in blocks %}
|
56 | {{ renderBlock(page, group, block, '') }}
|
57 | {% endfor %}
|
58 | {# This is a hidden DOM template which will be used by JS to build new blocks #}
|
59 | {{ renderBlock(page, group, {}, 'apos-template') }}
|
60 | </div>
|
61 | </div>
|
62 | {% else %}
|
63 | {# When not editing we render with no extra wrappers #}
|
64 | {% for block in blocks %}
|
65 | {{ renderBlock(page, group, block, '') }}
|
66 | {% endfor %}
|
67 | {% endif %}
|