Add external image list loading to tinyMCE

This commit is contained in:
Grégory Soutadé 2012-09-26 21:13:11 +02:00
parent fec7447d13
commit 6039dd7a8d
5 changed files with 74 additions and 3 deletions

View File

@ -1,3 +1,4 @@
tinyMCE.init({
// General options
mode : "textareas",
@ -17,8 +18,10 @@ tinyMCE.init({
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
width: "100%",
height: "400"
width: "60%",
height: "400",
external_image_list_url : external_list,
});

View File

@ -2,6 +2,9 @@
{% block head %}
<script type="text/javascript" src="/static/js/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
var external_list = "/tinyMCEExternalList/post/add/{{ blog_id }}";
</script>
<script type="text/javascript" src="/static/js/dynastie.js"></script>
{% endblock %}

View File

@ -2,6 +2,9 @@
{% block head %}
<script type="text/javascript" src="/static/js/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
var external_list = "/tinyMCEExternalList/post/edit/{{ post_id }}";
</script>
<script type="text/javascript" src="/static/js/dynastie.js"></script>
{% endblock %}

View File

@ -26,6 +26,8 @@ urlpatterns = patterns('',
url(r'^post/delete/(\d+)$','dynastie.views.delete_post', name='delete_post'),
url(r'^generate/(\d+)$', 'dynastie.views.generate', name='generate'),
url(r'^preview/(\d+)$', 'dynastie.views.preview', name='preview'),
url(r'^tinyMCEExternalList/post/add/(\d+)$', 'dynastie.views.tinymcelist_add', name='tinymce'),
url(r'^tinyMCEExternalList/post/edit/(\d+)$', 'dynastie.views.tinymcelist_edit', name='tinymce'),
# url(r'^dynastie/', include('dynastie.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:

View File

@ -2,7 +2,7 @@ import os
from datetime import datetime, date, time
from django.shortcuts import render
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponseRedirect, Http404
from django.http import HttpResponseRedirect, HttpResponse, Http404
from django.contrib.auth.decorators import login_required
from django.forms.models import inlineformset_factory
from dynastie.models import *
@ -406,3 +406,63 @@ def preview(request, blog_id):
return HttpResponseRedirect('http://' + b.name + '/preview.html')
# return HttpResponseRedirect('http://' + 'localhost:8080' + '/preview.html')
def _tinymcelist(request, b, year, month):
ret = 'var tinyMCEImageList = new Array('
b.create_paths()
if month < 10:
suffix = '/images/' + str(year) + '/0' + str(month)
else:
suffix = '/images/' + str(year) + '/' + str(month)
path = b.src_path + '/' + suffix
# url = 'http://' + 'localhost:8080' + '/' + suffix + '/'
url = 'http://' + b.name + '/' + suffix + '/'
if os.path.exists(path):
files = ''
for p in os.listdir(path):
files += '["' + p + '", "' + url + p + '"],'
# Remove last comma
if len(files) != 0:
ret += files[:-1]
ret += ');'
return ret
@login_required
def tinymcelist_add(request, blog_id):
from datetime import datetime
now = datetime.now()
year = now.year
month = now.month
b = Blog.objects.filter(pk=blog_id).filter(writers=request.user.id)[0]
if b is None:
return HttpResponse('', content_type='application/x-javascript')
ret = _tinymcelist(request, b, year, month)
print 'Ret1 ' + ret
return HttpResponse(ret, content_type='application/x-javascript')
@login_required
def tinymcelist_edit(request, post_id):
post = Post.objects.filter(pk=post_id)
if post is None:
return HttpResponse('', content_type='application/x-javascript')
b = Blog.objects.filter(pk=post.blog).filter(writers=request.user.id)[0]
if b is None:
return HttpResponse('', content_type='application/x-javascript')
year = post.creation_date.year()
month = post.creation_date.month()
ret = _tinymcelist(request, b, year, month)
print 'Ret2 ' + ret
return HttpResponse(ret, content_type='application/x-javascript')