diff options
-rwxr-xr-x | askbot/skins/default/media/style/askbot-modal.css | 10 | ||||
-rw-r--r-- | askbot/skins/default/templates/create_ask_widget.html | 20 | ||||
-rw-r--r-- | askbot/skins/default/templates/list_ask_widget.html | 15 | ||||
-rwxr-xr-x | askbot/skins/default/templates/widgets/askbot_widget.js | 18 | ||||
-rw-r--r-- | askbot/tests/widget_tests.py | 7 | ||||
-rw-r--r-- | askbot/urls.py | 5 | ||||
-rw-r--r-- | askbot/views/widgets.py | 6 |
7 files changed, 77 insertions, 4 deletions
diff --git a/askbot/skins/default/media/style/askbot-modal.css b/askbot/skins/default/media/style/askbot-modal.css index 59121f0e..4385c90e 100755 --- a/askbot/skins/default/media/style/askbot-modal.css +++ b/askbot/skins/default/media/style/askbot-modal.css @@ -8,3 +8,13 @@ text-align:center; z-index: 1000; } + +#AskbotAskWidget iframe{ + width:600px; + height:200px; + margin: 100px auto; + background-color: #fff; + border:1px solid #000; + padding:15px; + text-align:center; +} diff --git a/askbot/skins/default/templates/create_ask_widget.html b/askbot/skins/default/templates/create_ask_widget.html index e69de29b..3c831229 100644 --- a/askbot/skins/default/templates/create_ask_widget.html +++ b/askbot/skins/default/templates/create_ask_widget.html @@ -0,0 +1,20 @@ +{% extends "one_column_body.html" %} +<!-- create_ask_widget.html --> +{% block title %}Create a Widget{% endblock %} +{% block content %} +<h1> Create a askbot ask widget.</h1> + +<form action="." method="POST"> +{%for field in form%} + <div class='field'> + {{field.errors}} + {{field.label_tag()}}: {{field}} + </div> +{%endfor%} + <p><input type='submit' value='Create Widget' /></p> +</form> + +{% endblock %} +{% block endjs %} +{% endblock %} + diff --git a/askbot/skins/default/templates/list_ask_widget.html b/askbot/skins/default/templates/list_ask_widget.html index e69de29b..58510c63 100644 --- a/askbot/skins/default/templates/list_ask_widget.html +++ b/askbot/skins/default/templates/list_ask_widget.html @@ -0,0 +1,15 @@ +{% extends "one_column_body.html" %} +<!-- create_ask_widget.html --> +{% block title %}Create a Widget{% endblock %} +{% block content %} +<h1>Your current widgets</h1> + +{%for widget in widgets%} +<p>Widget: {{widget.title}}(http://{{settings.APP_URL}}{% url render_ask_widget widget.id%})<p> +{%endfor%} + + +{% endblock %} +{% block endjs %} +{% endblock %} + diff --git a/askbot/skins/default/templates/widgets/askbot_widget.js b/askbot/skins/default/templates/widgets/askbot_widget.js index 14949121..808776a5 100755 --- a/askbot/skins/default/templates/widgets/askbot_widget.js +++ b/askbot/skins/default/templates/widgets/askbot_widget.js @@ -2,18 +2,30 @@ var AskbotAskWidget = { element_id: "AskbotAskWidget", widgetToggle: function() { element = document.getElementById(this.element_id); - element.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible"; + element.style.visibility = (element.style.visibility == "visible") ? "hidden" : "visible"; }, toHtml: function() { - document.write('<link rel="stylesheet" href="https://{{request.get_host}}/embed.css"/>'); + //document.write('<link rel="stylesheet" href="http://{{host}}{{STATIC_URL}}askbot-modal.css"/>'); + document.write(this.createButton()); + document.write('<link rel="stylesheet" href="http://{{host}}/static/default/media/style/askbot-modal.css"/>'); {%if widget.outer_style %} document.write('<style>{{widget.outer_style}}</style>'); {%endif%} //creating the div document.write("<div id='" + this.element_id + "'>"); - document.write("<iframe src='{% url widget_ask %}' />"); + document.write("<a href='#' id='AskbotModalCLose' onClick='AskbotAskWidget.widgetToggle();'>Close</a>"); + document.write("<div>"); + document.write("<iframe src='http://{{host}}{% url ask_by_widget widget.id %}' />"); document.write("</div>"); + document.write("</div>"); + }, + createButton: function() { + var label="{{widget.title}}"; //TODO: add to the model + var button = '<div id="AskbotAskButton"><a href="#" onClick="AskbotAskWidget.widgetToggle();">' + label + '</a></div>'; + //document.write(button); + return button; } }; AskbotAskWidget.toHtml(); + diff --git a/askbot/tests/widget_tests.py b/askbot/tests/widget_tests.py index 11a7036f..7c602804 100644 --- a/askbot/tests/widget_tests.py +++ b/askbot/tests/widget_tests.py @@ -53,6 +53,13 @@ class WidgetViewsTests(AskbotTestCase): self.assertEquals(response.status_code, 302) #verify posting question + def test_render_widget_view(self): + response = self.client.get(reverse('render_ask_widget', args=(self.widget.id, ))) + self.assertEquals(200, response.status_code) + mimetype = 'text/javascript' + self.assertTrue(mimetype in response['Content-Type']) + + class WidgetLoginViewTest(AskbotTestCase): def test_correct_template_loading(self): diff --git a/askbot/urls.py b/askbot/urls.py index fee4ad64..afcada05 100644 --- a/askbot/urls.py +++ b/askbot/urls.py @@ -387,6 +387,11 @@ urlpatterns = patterns('', name = 'ask_by_widget' ), url( + r'^widgets/ask/(?P<widget_id>\d+).js$', + views.widgets.render_ask_widget_js, + name = 'render_ask_widget' + ), + url( r'^widgets/ask/complete/$', views.widgets.ask_widget_complete, name = 'ask_by_widget_complete' diff --git a/askbot/views/widgets.py b/askbot/views/widgets.py index f8b9577f..c40a9001 100644 --- a/askbot/views/widgets.py +++ b/askbot/views/widgets.py @@ -2,6 +2,7 @@ from datetime import datetime from django.core import exceptions from django.utils import simplejson +from django.template import Context from django.http import HttpResponse from django.views.decorators import csrf from django.contrib.auth.models import User @@ -104,5 +105,8 @@ def create_ask_widget(request): #TODO: Add cache def render_ask_widget_js(request, widget_id): widget = get_object_or_404(models.AskWidget) - content = get_template('widgets/askbot_widget.js') + content_tpl = get_template('widgets/askbot_widget.js', request) + context_dict = {'widget': widget, 'host': request.get_host()} + content = content_tpl.render(Context(context_dict)) + print content return HttpResponse(content, mimetype='text/javascript') |