summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdolfo Fitoria <adolfo.fitoria@gmail.com>2012-08-12 12:57:23 -0600
committerAdolfo Fitoria <adolfo.fitoria@gmail.com>2012-08-12 12:57:23 -0600
commit064062e54408330ace8f3fdafbfb7d675aac9680 (patch)
treef281763696b8a58079b38797d17f4279f54d0274
parent004e600d870be74f5873587bc03fe32e1473ca0d (diff)
downloadaskbot-064062e54408330ace8f3fdafbfb7d675aac9680.tar.gz
askbot-064062e54408330ace8f3fdafbfb7d675aac9680.tar.bz2
askbot-064062e54408330ace8f3fdafbfb7d675aac9680.zip
created functional prototype of widget
-rwxr-xr-xaskbot/skins/default/media/style/askbot-modal.css10
-rw-r--r--askbot/skins/default/templates/create_ask_widget.html20
-rw-r--r--askbot/skins/default/templates/list_ask_widget.html15
-rwxr-xr-xaskbot/skins/default/templates/widgets/askbot_widget.js18
-rw-r--r--askbot/tests/widget_tests.py7
-rw-r--r--askbot/urls.py5
-rw-r--r--askbot/views/widgets.py6
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')