first commit of karl's code, refactored to appear within an iframe

pull/150/merge
Dave Cranwell 2014-03-13 15:04:17 +00:00
rodzic 4e67491bda
commit edd757c578
20 zmienionych plików z 230 dodań i 105 usunięć

Wyświetl plik

@ -0,0 +1,3 @@
$(function(){
$('body').addClass('ready');
})

Wyświetl plik

@ -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;
}
}

Wyświetl plik

@ -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 %}

Wyświetl plik

@ -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 %}

Wyświetl plik

@ -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 %}

Wyświetl plik

@ -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>

Wyświetl plik

@ -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 %}

Wyświetl plik

@ -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 %}

Wyświetl plik

@ -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>

Wyświetl plik

@ -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 %}

Wyświetl plik

@ -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 %}

Wyświetl plik

@ -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 %}

Wyświetl plik

@ -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>

Wyświetl plik

@ -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 %}

Wyświetl plik

@ -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 ''

Wyświetl plik

@ -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'),
)

Wyświetl plik

@ -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)

Wyświetl plik

@ -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],
})