1- {% load i18n plugins_tagcloud simplemenu_tags static %}
1+ {% load i18n plugins_tagcloud simplemenu_tags static plugin_utils %}
22< nav id ="sidebar " class ="sidebar ">
3- < ul class ="content-wrapper ">
4- < li >
5- < a class ="button is-success is-medium " href ="{% url "plugin_upload " %}">
6- < i class ="fas fa-upload "> </ i >
7- {% trans "Upload a plugin" %}
8- </ a >
9- </ li >
10- < hr />
11- {% get_namedmenu Navigation as menu %}
12- {% for item in menu %}
13- < li class ="{% if request.path == item.page.url %}is-active{% endif %} ">
14- < a href ="{{ item.page.url }} ">
15- {% if item.page.url == "/" %}
16- < i class ="fas fa-home mr-3 "> </ i >
17- {% elif item.page.url == "/plugins/" %}
18- < i class ="fas fa-plug mr-3 "> </ i >
19- {% elif item.page.url == "/plugins/my" %}
20- < i class ="fas fa-user mr-3 "> </ i >
21- {% endif %}
22- {{ item.name }}
23- </ a >
3+ < ul class ="content-wrapper ">
4+ < li >
5+ < a class ="button is-success is-medium " href ="{% url "plugin_upload " %}">
6+ < i class ="fas fa-upload "> </ i >
7+ {% trans "Upload a plugin" %}
8+ </ a >
9+ </ li >
10+ < hr />
11+
12+ {% get_navigation_menu user as menu %}
13+ {% for item in menu %}
14+ {% if item.submenu %}
15+ < li >
16+ < div class ="has-child ">
17+ < a onclick ="toggleSubMenu('{{ item.name }}') ">
18+ < i class ="fas {{ item.icon }} mr-3 "> </ i >
19+ {{ item.name }}
20+ </ a >
21+ < span onclick ="toggleSubMenu('{{ item.name }}') " class ="drop-arrow "> < img src ="{% static "images /arrow.svg" %}"/> </ span >
22+ </ div >
23+ < ul class ="collapsed " id ="{{ item.name }} ">
24+ {% for subitem in item.submenu %}
25+ {% if subitem.submenu %}
26+ < li >
27+ < div class ="has-child ">
28+ < a onclick ="toggleSubMenu('{{ subitem.name }}') ">
29+ < i class ="fas {{ subitem.icon }} mr-3 "> </ i >
30+ {{ subitem.name }}
31+ </ a >
32+ < span onclick ="toggleSubMenu('{{ subitem.name }}') " class ="drop-arrow
33+ "> < img src ="{% static "images /arrow.svg" %}"/> </ span >
34+ </ div >
35+ < ul class ="collapsed "
36+ id ="{{ subitem.name }} ">
37+ {% for entry in subitem.submenu %}
38+ < li class ="has-child {% if request.path == entry.url %}is-active{% endif %} ">
39+ < a href ="{{ entry.url }} ">
40+ {{ entry.name }}
41+ </ a >
42+ </ li >
43+ {% endfor %}
44+ </ ul >
45+ </ li >
46+ {% else %}
47+
48+ < li class ="has-child {% if request.path == subitem.url %}is-active{% endif %} ">
49+ < a href ="{{ subitem.url }} ">
50+ {{ subitem.name }}
51+ </ a >
52+ </ li >
53+ {% endif %}
54+ {% endfor %}
55+ </ ul >
2456 </ li >
25- {% endfor %}
26- < li >
27- < div class ="has-child ">
28- < a onclick ="toggleSubMenu('news') ">
29- < i class ="fas fa-newspaper mr-3 "> </ i >
30- New & Updated
57+ {% else %}
58+ < li class ="{% if request.path == item.url %}is-active{% endif %} ">
59+ < a href ="{{ item.url }} ">
60+ < i class ="fas {{ item.icon }} mr-3 "> </ i >
61+ {{ item.name }}
3162 </ a >
32- < span onclick ="toggleSubMenu('news') " class ="drop-arrow "> < img src ="{% static "images /arrow.svg" %}"/> </ span >
33- </ div >
34- < ul class ="collapsed " id ="news ">
35- {% get_namedmenu New as new %}
36- {% for item in new %}
37- < li class ="has-child {% if request.path == item.page.url %}is-active{% endif %} ">
38- < a href ="{{ item.page.url }} ">
39- {{ item.name }}
40- </ a >
41- </ li >
42- {% endfor %}
43- </ ul >
44- </ li >
45- < li >
46- < div class ="has-child ">
47- < a onclick ="toggleSubMenu('top') ">
48- < i class ="fas fa-star mr-3 "> </ i >
49- Top
50- </ a >
51- < span onclick ="toggleSubMenu('top') " class ="drop-arrow "> < img src ="{% static "images /arrow.svg" %}"/> </ span >
52- </ div >
53- < ul class ="collapsed " id ="top ">
54- {% get_namedmenu Top as Top %}
55- {% for item in Top %}
56- < li class ="has-child {% if request.path == item.page.url %}is-active{% endif %} ">
57- < a href ="{{ item.page.url }} ">
58- {{ item.name }}
59- </ a >
60- </ li >
61- {% endfor %}
62- </ ul >
63- </ li >
64- < li >
65- < div class ="has-child ">
66- < a onclick ="toggleSubMenu('category') ">
67- < i class ="fas fa-list mr-3 "> </ i >
68- Category
63+ </ li >
64+ {% endif %}
65+ {% endfor %}
66+ < li >
67+ < div class ="has-child ">
68+ < a onclick ="toggleSubMenu('docs') ">
69+ < i class ="fas fa-book mr-3 "> </ i >
70+ Documentation
71+ </ a >
72+ < span onclick ="toggleSubMenu('docs') " class ="drop-arrow "> < img src ="{% static "images /arrow.svg" %}"/> </ span >
73+ </ div >
74+ < ul class ="collapsed " id ="docs ">
75+ {% url 'docs_publish' as docs_publish_url %}
76+ < li class ="has-child {% if request.path == docs_publish_url %}is-active{% endif %} ">
77+ < a href ="{{ docs_publish_url }} ">
78+ Publish a plugin
6979 </ a >
70- < span onclick ="toggleSubMenu('category') " class ="drop-arrow "> < img src ="{% static "images /arrow.svg" %}"/> </ span >
71- </ div >
72- < ul class ="collapsed " id ="category ">
73- {% get_namedmenu Category as Category %}
74- {% for item in Category %}
75- < li class ="has-child {% if request.path == item.page.url %}is-active{% endif %} ">
76- < a href ="{{ item.page.url }} ">
77- {{ item.name }}
78- </ a >
79- </ li >
80- {% endfor %}
81- </ ul >
82- </ li >
83- {% if user.is_authenticated and user.is_staff %}
84- < li >
85- < div class ="has-child ">
86- < a onclick ="toggleSubMenu('unapproved') ">
87- < i class ="fas fa-check-circle mr-3 "> </ i >
88- Under review
80+ </ li >
81+ {% url 'docs_approval' as docs_approval_url %}
82+ < li class ="has-child {% if request.path == docs_approval_url %}is-active{% endif %} ">
83+ < a href ="{{ docs_approval_url }} ">
84+ Approval process
8985 </ a >
90- < span onclick ="toggleSubMenu('unapproved') " class ="drop-arrow "> < img src ="{% static "images /arrow.svg" %}"/> </ span >
91- </ div >
92- < ul class ="collapsed " id ="unapproved ">
93- {% get_namedmenu Unapproved as Unapproved %}
94- {% for item in Unapproved %}
95- < li class ="has-child {% if request.path == item.page.url %}is-active{% endif %} ">
96- < a href ="{{ item.page.url }} ">
97- {{ item.name }}
98- </ a >
99- </ li >
100- {% endfor %}
101- </ ul >
102- </ li >
103- {% endif %}
104-
105- < li >
106- < div class ="has-child ">
107- < a onclick ="toggleSubMenu('docs') ">
108- < i class ="fas fa-book mr-3 "> </ i >
109- Documentation
110- </ a >
111- < span onclick ="toggleSubMenu('docs') " class ="drop-arrow "> < img src ="{% static "images /arrow.svg" %}"/> </ span >
112- </ div >
113- < ul class ="collapsed " id ="docs ">
114- {% url 'docs_publish' as docs_publish_url %}
115- < li class ="has-child {% if request.path == docs_publish_url %}is-active{% endif %} ">
116- < a href ="{{ docs_publish_url }} ">
117- Publish a plugin
118- </ a >
119- </ li >
120- {% url 'docs_approval' as docs_approval_url %}
121- < li class ="has-child {% if request.path == docs_approval_url %}is-active{% endif %} ">
122- < a href ="{{ docs_approval_url }} ">
123- Approval process
124- </ a >
125- </ li >
126- {% comment %} < li class ="has-child {% if request.path == '/docs/manage' %}is-active{% endif %} ">
127- < a href ="/docs/manage ">
128- Manage a plugin
129- </ a >
130- </ li > {% endcomment %}
131- </ ul >
132- </ li >
133- < li >
134- < div >
86+ </ li >
87+ </ ul >
88+ </ li >
89+ < li >
90+ < div >
13591 {% include_plugins_tagcloud_modal 'plugins.plugin' %}
136- </ div >
137- </ li >
138- </ ul >
92+ </ div >
93+ </ li >
94+ </ ul >
13995</ nav >
140-
141-
96+
14297< script >
143- function rotateArrow ( e ) {
144- e . previousElementSibling . querySelector ( 'img' ) . classList . toggle ( 'rotated' ) ;
145- }
98+ function rotateArrow ( e ) {
99+ e . previousElementSibling . querySelector ( 'img' ) . classList . toggle ( 'rotated' ) ;
100+ }
146101
147- function toggleSubMenu ( listId ) {
148- console . log ( listId )
149- let e = document . getElementById ( listId ) ;
150- e . classList . toggle ( 'unfolded' ) ;
151- rotateArrow ( e ) ;
152- }
102+ function toggleSubMenu ( listId ) {
103+ console . log ( listId )
104+ let e = document . getElementById ( listId ) ;
105+ e . classList . toggle ( 'unfolded' ) ;
106+ rotateArrow ( e ) ;
107+ }
153108
154- function toggleMenu ( ) {
155- document . getElementById ( 'sidebar' ) . classList . toggle ( 'visible' ) ;
156- document . getElementById ( 'hamburger-btn' ) . classList . toggle ( 'open' ) ;
109+ function toggleMenu ( ) {
110+ document . getElementById ( 'sidebar' ) . classList . toggle ( 'visible' ) ;
111+ document . getElementById ( 'hamburger-btn' ) . classList . toggle ( 'open' ) ;
112+ }
113+ // expand active section
114+ document . querySelectorAll ( 'li.is-active,li:has(.is-active)' ) . forEach ( li => {
115+ if ( e = li . querySelector ( 'ul' ) ) {
116+ e . classList . toggle ( 'unfolded' ) ;
157117 }
158- // expand active section
159- document . querySelectorAll ( 'li.is-active,li:has(.is-active)' ) . forEach ( li => {
160- if ( e = li . querySelector ( 'ul' ) ) {
161- e . classList . toggle ( 'unfolded' ) ;
162- }
163- } ) ;
118+ } ) ;
164119</ script >
0 commit comments