diff --git a/wagtail/wagtailadmin/static/wagtailadmin/js/core.js b/wagtail/wagtailadmin/static/wagtailadmin/js/core.js
index 85c4ca31e..3929356ad 100644
--- a/wagtail/wagtailadmin/static/wagtailadmin/js/core.js
+++ b/wagtail/wagtailadmin/static/wagtailadmin/js/core.js
@@ -12,7 +12,7 @@ $(function(){
$('body').addClass('ready');
// Enable toggle to open/close nav
- $('#nav-toggle').click(function(){
+ $(document).on('click', '#nav-toggle', function(){
$('body').toggleClass('nav-open');
if(!$('body').hasClass('nav-open')){
$('body').addClass('nav-closed');
@@ -21,12 +21,30 @@ $(function(){
}
});
- // Enable swishy section navigation menu
- $('.explorer').addClass('dl-menuwrapper').dlmenu({
- animationClasses : {
- classin : 'dl-animate-in-2',
- classout : 'dl-animate-out-2'
+ // Dynamically load menu on request.
+ $(document).on('click', '.dl-trigger', function(){
+ var $this = $(this);
+ var $explorer = $('#explorer');
+
+ $this.addClass('icon-spinner');
+
+ if(!$explorer.children().length){
+ $explorer.load(window.explorer_menu_url, function() {
+ $this.removeClass('icon-spinner');
+
+ $explorer.addClass('dl-menuwrapper').dlmenu({
+ animationClasses : {
+ classin : 'dl-animate-in-2',
+ classout : 'dl-animate-out-2'
+ }
+ });
+ $explorer.dlmenu('openMenu');
+ });
+ }else{
+ $explorer.dlmenu('openMenu');
}
+
+ return false;
});
// Resize nav to fit height of window. This is an unimportant bell/whistle to make it look nice
@@ -35,9 +53,6 @@ $(function(){
$('.nav-main').each(function(){
var thisHeight = $(this).height();
var footerHeight = $('.footer', $(this)).height();
-
- // $(this).css({'height':thisHeight - footerHeight, 'overflow-y':'scroll'});
- // $('> ul', $(this)).height(thisHeight)
});
};
fitNav();
@@ -86,22 +101,6 @@ $(function(){
}
});
- /* Bulk-selection */
- $(document).on('click', 'thead .bulk', function(){
- $(this).closest('table').find('tbody .bulk input').each(function(){
- $(this).prop('checked', !$(this).prop('checked'));
- });
- });
-
- $('#menu-search input').bind('focus', function(){
- $('#menu-search').addClass('focussed');
- }).bind('blur', function(){
- $('#menu-search').removeClass('focussed');
- });
- $('#menu-search').bind('focus click', function(){
- $(this).addClass('focussed');
- });
-
/* Header search behaviour */
if(window.headerSearch){
var search_current_index = 0;
diff --git a/wagtail/wagtailadmin/static/wagtailadmin/scss/core.scss b/wagtail/wagtailadmin/static/wagtailadmin/scss/core.scss
index 55e27b067..44349f116 100644
--- a/wagtail/wagtailadmin/static/wagtailadmin/scss/core.scss
+++ b/wagtail/wagtailadmin/static/wagtailadmin/scss/core.scss
@@ -163,7 +163,6 @@ img{
}
.nav-main{
-
top: 43px;
bottom: 0px;
overflow: auto;
@@ -226,6 +225,15 @@ img{
&:hover{
color:white;
}
+
+ /* only really used for spinners */
+ &:after{
+ font-size:1.5em;
+ margin:0;
+ position:absolute;
+ right:0.5em;
+ margin-top:0.15em;
+ }
}
.avatar{
diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/admin_base.html b/wagtail/wagtailadmin/templates/wagtailadmin/admin_base.html
index 0cae459a2..1c26a8d14 100644
--- a/wagtail/wagtailadmin/templates/wagtailadmin/admin_base.html
+++ b/wagtail/wagtailadmin/templates/wagtailadmin/admin_base.html
@@ -22,6 +22,9 @@
+
{% endcompress %}
{% block extra_js %}{% endblock %}
diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/base.html b/wagtail/wagtailadmin/templates/wagtailadmin/base.html
index ef6f9d57a..c7a89def7 100644
--- a/wagtail/wagtailadmin/templates/wagtailadmin/base.html
+++ b/wagtail/wagtailadmin/templates/wagtailadmin/base.html
@@ -8,11 +8,7 @@
{% main_nav %}
-
-
-
+
diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/shared/explorer_nav.html b/wagtail/wagtailadmin/templates/wagtailadmin/shared/explorer_nav.html
index 4d2cce712..5c46f217c 100644
--- a/wagtail/wagtailadmin/templates/wagtailadmin/shared/explorer_nav.html
+++ b/wagtail/wagtailadmin/templates/wagtailadmin/shared/explorer_nav.html
@@ -1,13 +1,5 @@
{% load wagtailadmin_tags %}
-{% for page, children in nodes %}
-
- {{ page.title }}
- {% if children %}
-
-
- {% endif %}
-
-{% endfor %}
+
\ No newline at end of file
diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/shared/explorer_nav_child.html b/wagtail/wagtailadmin/templates/wagtailadmin/shared/explorer_nav_child.html
new file mode 100644
index 000000000..c2d011540
--- /dev/null
+++ b/wagtail/wagtailadmin/templates/wagtailadmin/shared/explorer_nav_child.html
@@ -0,0 +1,13 @@
+{% load wagtailadmin_tags %}
+
+{% for page, children in nodes %}
+
+ {{ page.title }}
+ {% if children %}
+
+
+ {% endif %}
+
+{% endfor %}
\ No newline at end of file
diff --git a/wagtail/wagtailadmin/templatetags/wagtailadmin_tags.py b/wagtail/wagtailadmin/templatetags/wagtailadmin_tags.py
index f3c871507..9aa4783ff 100644
--- a/wagtail/wagtailadmin/templatetags/wagtailadmin_tags.py
+++ b/wagtail/wagtailadmin/templatetags/wagtailadmin_tags.py
@@ -7,7 +7,7 @@ from django.utils.translation import ugettext_lazy as _
from wagtail.wagtailadmin.menu import MenuItem
from wagtail.wagtailcore import hooks
-from wagtail.wagtailcore.models import get_navigation_menu_items, UserPagePermissionsProxy
+from wagtail.wagtailcore.models import UserPagePermissionsProxy
from wagtail.wagtailcore.utils import camelcase_to_underscore
@@ -21,7 +21,7 @@ def explorer_nav():
}
-@register.inclusion_tag('wagtailadmin/shared/explorer_nav.html')
+@register.inclusion_tag('wagtailadmin/shared/explorer_nav_child.html')
def explorer_subnav(nodes):
return {
'nodes': nodes
@@ -31,7 +31,7 @@ def explorer_subnav(nodes):
@register.inclusion_tag('wagtailadmin/shared/main_nav.html', takes_context=True)
def main_nav(context):
menu_items = [
- MenuItem(_('Explorer'), '#', classnames='icon icon-folder-open-inverse dl-trigger', order=100),
+ MenuItem(_('Explorer'), urlresolvers.reverse('wagtailadmin_explore_root'), classnames='icon icon-folder-open-inverse dl-trigger', order=100),
MenuItem(_('Search'), urlresolvers.reverse('wagtailadmin_pages_search'), classnames='icon icon-search', order=200),
]
diff --git a/wagtail/wagtailadmin/urls.py b/wagtail/wagtailadmin/urls.py
index 89be5cf17..6d124efc3 100644
--- a/wagtail/wagtailadmin/urls.py
+++ b/wagtail/wagtailadmin/urls.py
@@ -38,6 +38,8 @@ urlpatterns += [
url(r'^failwhale/$', home.error_test, name='wagtailadmin_error_test'),
+ url(r'^explorer-nav/$', pages.explorer_nav, name='wagtailadmin_explorer_nav'),
+
url(r'^pages/$', pages.index, name='wagtailadmin_explore_root'),
url(r'^pages/(\d+)/$', pages.index, name='wagtailadmin_explore'),
diff --git a/wagtail/wagtailadmin/views/pages.py b/wagtail/wagtailadmin/views/pages.py
index 013ce40c0..900da5ab9 100644
--- a/wagtail/wagtailadmin/views/pages.py
+++ b/wagtail/wagtailadmin/views/pages.py
@@ -17,9 +17,15 @@ from wagtail.wagtailadmin.forms import SearchForm
from wagtail.wagtailadmin import tasks, signals
from wagtail.wagtailcore import hooks
-from wagtail.wagtailcore.models import Page, PageRevision
+from wagtail.wagtailcore.models import Page, PageRevision, get_navigation_menu_items
from wagtail.wagtailcore.signals import page_published
+@permission_required('wagtailadmin.access_admin')
+def explorer_nav(request):
+ return render(request, 'wagtailadmin/shared/explorer_nav.html', {
+ 'nodes': get_navigation_menu_items(),
+ })
+
@permission_required('wagtailadmin.access_admin')
def index(request, parent_page_id=None):