kopia lustrzana https://github.com/wagtail/wagtail
first commit of karl's code, refactored to appear within an iframe
rodzic
4e67491bda
commit
edd757c578
|
@ -0,0 +1,3 @@
|
|||
$(function(){
|
||||
$('body').addClass('ready');
|
||||
})
|
|
@ -0,0 +1,75 @@
|
|||
@import "variables.scss";
|
||||
@import "mixins.scss";
|
||||
|
||||
@import "components/icons.scss";
|
||||
|
||||
html, body{
|
||||
background-color:transparent;
|
||||
}
|
||||
body{
|
||||
-webkit-font-smoothing: antialiased; /* Do not remove! */
|
||||
font-family:Open Sans,Arial,sans-serif;
|
||||
font-size:80%;
|
||||
}
|
||||
|
||||
nav{
|
||||
float:right;
|
||||
&:hover ul{
|
||||
height:200px;
|
||||
}
|
||||
}
|
||||
|
||||
.home{
|
||||
float:right;
|
||||
width:1.5em;
|
||||
margin-bottom:1px;
|
||||
background-color:white;
|
||||
color:$color-text-base;
|
||||
|
||||
&.icon:before{
|
||||
margin:-0.1em 0 0 -0.2em;
|
||||
font-size:35px;
|
||||
}
|
||||
}
|
||||
|
||||
ul{
|
||||
@include transition(height 0.2s ease);
|
||||
@include unlist();
|
||||
height:0px;
|
||||
overflow:hidden;
|
||||
clear:both;
|
||||
}
|
||||
|
||||
li{
|
||||
@include transition(width 0.2s ease);
|
||||
width:3.5em;
|
||||
overflow:hidden;
|
||||
margin-bottom:1px;
|
||||
position:relative;
|
||||
|
||||
&:hover{
|
||||
width:8em;
|
||||
}
|
||||
}
|
||||
|
||||
a{
|
||||
@include transition(background-color 0.2s ease, color 0.2s ease);
|
||||
display:block;
|
||||
background-color:$color-teal;
|
||||
color:white;
|
||||
width:10em;
|
||||
height:1.5em;
|
||||
text-align:left;
|
||||
overflow:hidden;
|
||||
text-decoration:none;
|
||||
text-transform:uppercase;
|
||||
padding:1em;
|
||||
|
||||
&:before{
|
||||
margin-right:0.3em;
|
||||
}
|
||||
&:hover{
|
||||
background-color:$color-teal-darker;
|
||||
color:white;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{% extends "wagtailadmin/skeleton.html" %}
|
||||
{% load compress %}
|
||||
|
||||
{% block css %}
|
||||
{% compress css %}
|
||||
<link rel="stylesheet" href="{{ STATIC_URL }}wagtailadmin/scss/vendor/jquery-ui/jquery-ui-1.10.3.verdant.css" />
|
||||
<link rel="stylesheet" href="{{ STATIC_URL }}wagtailadmin/scss/vendor/jquery.timepicker.css" />
|
||||
<link rel="stylesheet" href="{{ STATIC_URL }}wagtailadmin/scss/core.scss" type="text/x-scss" />
|
||||
{% endcompress %}
|
||||
|
||||
{% block extra_css %}{% endblock %}
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
|
||||
{% compress js %}
|
||||
{% comment %}
|
||||
Core JS includes (for inclusion on all pages) to be specified here
|
||||
{% endcomment %}
|
||||
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/vendor/jquery-ui-1.10.3.js"></script>
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/vendor/jquery.timepicker.min.js"></script>
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/vendor/jquery.autosize.js"></script>
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/vendor/bootstrap-modal.js"></script>
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/vendor/bootstrap-tab.js"></script>
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/vendor/jquery.dlmenu.js"></script>
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/core.js"></script>
|
||||
{% endcompress %}
|
||||
|
||||
{% block extra_js %}{% endblock %}
|
||||
{% endblock %}
|
|
@ -1,4 +1,4 @@
|
|||
{% extends "wagtailadmin/skeleton.html" %}
|
||||
{% extends "wagtailadmin/admin_base.html" %}
|
||||
{% load wagtailadmin_nav %}
|
||||
{% load i18n %}
|
||||
{% block furniture %}
|
||||
|
@ -33,4 +33,4 @@
|
|||
{% block content %}{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -1,8 +0,0 @@
|
|||
{% extends "wagtailadmin/edit_bird/base_item.html" %}
|
||||
|
||||
{% block item_content %}
|
||||
<form action="{% url 'wagtailadmin_pages_approve_moderation' self.revision_id %}" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="submit" value="Approve" />
|
||||
</form>
|
||||
{% endblock %}
|
|
@ -1,14 +0,0 @@
|
|||
{% load static %}
|
||||
|
||||
<link rel="stylesheet" href="{% static 'wagtailadmin/scss/edit-bird.css' %}" type="text/css" />
|
||||
<script src="{% static 'wagtailadmin/js/edit-bird.js' %}"></script>
|
||||
|
||||
<div class="wagtail-edit-bird">
|
||||
Edit bird here!
|
||||
|
||||
<ul>
|
||||
{% for item in items %}
|
||||
{{ item|safe }}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
|
@ -1,5 +0,0 @@
|
|||
{% extends "wagtailadmin/edit_bird/base_item.html" %}
|
||||
|
||||
{% block item_content %}
|
||||
<a href="{% url 'wagtailadmin_pages_edit' self.page.id %}">Edit</a>
|
||||
{% endblock %}
|
|
@ -1,8 +0,0 @@
|
|||
{% extends "wagtailadmin/edit_bird/base_item.html" %}
|
||||
|
||||
{% block item_content %}
|
||||
<form action="{% url 'wagtailadmin_pages_reject_moderation' self.revision_id %}" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="submit" value="Reject" />
|
||||
</form>
|
||||
{% endblock %}
|
|
@ -13,19 +13,14 @@
|
|||
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
|
||||
|
||||
{% block css %}{# Block defined for timing breakdowns in django debug toolbar - not expected to be overridden #}
|
||||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" />
|
||||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Bitter:400,700" />
|
||||
|
||||
{% compress css %}
|
||||
<link rel="stylesheet" href="{{ STATIC_URL }}wagtailadmin/scss/normalize.css" />
|
||||
<link rel="stylesheet" href="{{ STATIC_URL }}wagtailadmin/scss/vendor/jquery-ui/jquery-ui-1.10.3.verdant.css" />
|
||||
<link rel="stylesheet" href="{{ STATIC_URL }}wagtailadmin/scss/vendor/jquery.timepicker.css" />
|
||||
<link rel="stylesheet" href="{{ STATIC_URL }}wagtailadmin/scss/core.scss" type="text/x-scss" />
|
||||
{% endcompress %}
|
||||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" />
|
||||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Bitter:400,700" />
|
||||
|
||||
{% block extra_css %}{% endblock %}
|
||||
{% endblock %}
|
||||
{% compress css %}
|
||||
<link rel="stylesheet" href="{{ STATIC_URL }}wagtailadmin/scss/normalize.css" />
|
||||
{% endcompress %}
|
||||
|
||||
{% block css %}{% endblock %}
|
||||
</head>
|
||||
<body class="{% block bodyclass %}{% endblock %} {% if messages %}has-messages{% endif %}">
|
||||
<!--[if lt IE 9]>
|
||||
|
@ -36,23 +31,6 @@
|
|||
{% block furniture %}{% endblock %}
|
||||
</div>
|
||||
|
||||
{% block js %}
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
|
||||
{% compress js %}
|
||||
{% comment %}
|
||||
Core JS includes (for inclusion on all pages) to be specified here
|
||||
{% endcomment %}
|
||||
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/vendor/jquery-ui-1.10.3.js"></script>
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/vendor/jquery.timepicker.min.js"></script>
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/vendor/jquery.autosize.js"></script>
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/vendor/bootstrap-modal.js"></script>
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/vendor/bootstrap-tab.js"></script>
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/vendor/jquery.dlmenu.js"></script>
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/core.js"></script>
|
||||
{% endcompress %}
|
||||
|
||||
{% block extra_js %}{% endblock %}
|
||||
{% endblock %}
|
||||
{% block js %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
{% extends "wagtailadmin/userbar/base_item.html" %}
|
||||
|
||||
{% block item_content %}
|
||||
<form action="{% url 'wagtailadmin_pages_approve_moderation' self.revision_id %}" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="submit" value="Approve" />
|
||||
</form>
|
||||
{% endblock %}
|
|
@ -0,0 +1,29 @@
|
|||
{% extends "wagtailadmin/skeleton.html" %}
|
||||
{% load compress i18n %}
|
||||
|
||||
{% block titletag %}{% trans 'User bar' %}{% endblock %}
|
||||
{% block css %}
|
||||
{% compress css %}
|
||||
<link rel="stylesheet" href="{{ STATIC_URL }}wagtailadmin/scss/edit_bird.scss" type="text/x-scss" />
|
||||
{% endcompress %}
|
||||
{% endblock %}
|
||||
|
||||
{% block furniture %}
|
||||
<div class="wagtail-userbar">
|
||||
<nav>
|
||||
<a href="{% url 'wagtailadmin_home' %}" class="home icon icon-wagtail">Admin interface</a>
|
||||
<ul>
|
||||
{% for item in items %}
|
||||
{{ item|safe }}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
|
||||
{% compress js %}
|
||||
<script src="{{ STATIC_URL }}wagtailadmin/js/edit_bird.js"></script>
|
||||
{% endcompress %}
|
||||
{% endblock %}
|
|
@ -0,0 +1,5 @@
|
|||
{% extends "wagtailadmin/userbar/base_item.html" %}
|
||||
|
||||
{% block item_content %}
|
||||
<a href="{% url 'wagtailadmin_pages_edit' self.page.id %}" class="icon icon-edit">Edit</a>
|
||||
{% endblock %}
|
|
@ -0,0 +1,12 @@
|
|||
<style type="text/css">
|
||||
#wagtail-userbar{
|
||||
position:absolute;
|
||||
top:0;
|
||||
right:0;
|
||||
z-index:9000;
|
||||
border:0;
|
||||
width:100px;
|
||||
height:100px;
|
||||
}
|
||||
</style>
|
||||
<iframe id="wagtail-userbar" src="{% url 'wagtailadmin_userbar' page.self.id %}" width="1000px" height="1000px" frameborder="0" allowtransparency="true" scrolling="no" style="background:transparent"></iframe>
|
|
@ -0,0 +1,8 @@
|
|||
{% extends "wagtailadmin/userbar/base_item.html" %}
|
||||
|
||||
{% block item_content %}
|
||||
<form action="{% url 'wagtailadmin_pages_reject_moderation' self.revision_id %}" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="submit" value="Reject" />
|
||||
</form>
|
||||
{% endblock %}
|
|
@ -1,10 +1,9 @@
|
|||
from django import template
|
||||
from wagtail.wagtailadmin import edit_bird, hooks
|
||||
from wagtail.wagtailadmin.views import userbar
|
||||
from wagtail.wagtailcore.models import Page
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
@register.simple_tag(takes_context=True)
|
||||
def wagtail_edit_bird(context, current_page=None, items=None):
|
||||
# Find page object
|
||||
|
@ -17,16 +16,7 @@ def wagtail_edit_bird(context, current_page=None, items=None):
|
|||
# Find request object
|
||||
request = context['request']
|
||||
|
||||
# Get items
|
||||
if items is None:
|
||||
if hasattr(request, 'wagtail_edit_bird_items'):
|
||||
items = request.wagtail_edit_bird_items
|
||||
else:
|
||||
items = [
|
||||
edit_bird.EditPageItem(current_page),
|
||||
]
|
||||
for fn in hooks.get_hooks('construct_wagtail_edit_bird'):
|
||||
fn(request, items)
|
||||
print context
|
||||
|
||||
# Render edit bird
|
||||
return edit_bird.render_edit_bird(request, items) or ''
|
||||
return userbar.render_edit_frame(request, context) or ''
|
||||
|
|
|
@ -79,4 +79,6 @@ urlpatterns += patterns(
|
|||
|
||||
url(r'^account/$', 'account.account', name='wagtailadmin_account'),
|
||||
url(r'^account/change_password/$', 'account.change_password', name='wagtailadmin_account_change_password'),
|
||||
|
||||
url(r'^userbar/(\d+)/$', 'userbar.userbar', name='wagtailadmin_userbar'),
|
||||
)
|
||||
|
|
|
@ -2,16 +2,15 @@ from django.core.urlresolvers import reverse
|
|||
from django.template import RequestContext
|
||||
from django.template.loader import render_to_string
|
||||
|
||||
|
||||
class BaseItem(object):
|
||||
template = 'wagtailadmin/edit_bird/base_item.html'
|
||||
template = 'wagtailadmin/userbar/base_item.html'
|
||||
|
||||
def render(self, request):
|
||||
return render_to_string(self.template, dict(self=self, request=request), context_instance=RequestContext(request))
|
||||
|
||||
|
||||
class EditPageItem(BaseItem):
|
||||
template = 'wagtailadmin/edit_bird/edit_page_item.html'
|
||||
template = 'wagtailadmin/userbar/edit_page_item.html'
|
||||
|
||||
def __init__(self, page):
|
||||
self.page = page
|
||||
|
@ -30,25 +29,4 @@ class EditPageItem(BaseItem):
|
|||
if not permission_checker.can_edit():
|
||||
return
|
||||
|
||||
return super(EditPageItem, self).render(request)
|
||||
|
||||
|
||||
def render_edit_bird(request, items):
|
||||
# Don't render if the user is not logged in
|
||||
if not request.user.is_authenticated():
|
||||
return
|
||||
|
||||
# Render the items
|
||||
rendered_items = [item.render(request) for item in items]
|
||||
|
||||
# Remove any unrendered items
|
||||
rendered_items = [item for item in rendered_items if item]
|
||||
|
||||
# Quit if no items rendered
|
||||
if not rendered_items:
|
||||
return
|
||||
|
||||
# Render the edit bird
|
||||
return render_to_string('wagtailadmin/edit_bird/edit_bird.html', {
|
||||
'items': [item.render(request) for item in items],
|
||||
})
|
||||
return super(EditPageItem, self).render(request)
|
|
@ -0,0 +1,41 @@
|
|||
from django.conf import settings
|
||||
from django.shortcuts import render, redirect
|
||||
from django.template.loader import render_to_string
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.forms import SetPasswordForm
|
||||
from django.contrib.auth.decorators import permission_required
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from wagtail.wagtailadmin.userbar import EditPageItem
|
||||
from wagtail.wagtailadmin import hooks
|
||||
from wagtail.wagtailcore.models import Page
|
||||
|
||||
def render_edit_frame(request, context):
|
||||
# Render the frame to contain the userbar items
|
||||
return render_to_string('wagtailadmin/userbar/frame.html', {
|
||||
'page': context
|
||||
})
|
||||
|
||||
@permission_required('wagtailadmin.access_admin')
|
||||
def userbar(request, page_id):
|
||||
items = [
|
||||
EditPageItem(Page.objects.get(id=page_id)),
|
||||
]
|
||||
|
||||
for fn in hooks.get_hooks('construct_wagtail_edit_bird'):
|
||||
fn(request, items)
|
||||
|
||||
# Render the items
|
||||
rendered_items = [item.render(request) for item in items]
|
||||
|
||||
# Remove any unrendered items
|
||||
rendered_items = [item for item in rendered_items if item]
|
||||
|
||||
# Quit if no items rendered
|
||||
if not rendered_items:
|
||||
return
|
||||
|
||||
# Render the edit bird
|
||||
return render(request, 'wagtailadmin/userbar/edit_bird.html', {
|
||||
'items': [item.render(request) for item in items],
|
||||
})
|
Ładowanie…
Reference in New Issue