diff --git a/deme_django/cms/forms.py b/deme_django/cms/forms.py
index a4848657..87ee6b1f 100644
--- a/deme_django/cms/forms.py
+++ b/deme_django/cms/forms.py
@@ -48,9 +48,11 @@ def render(self, name, value, attrs=None):
ajax_query_string = '&'.join('ability=' + urlquote(ability) for ability in self.required_abilities)
ajax_url = reverse('item_type_url', kwargs={'viewer': model.__name__.lower(), 'format': 'json'}) + '?' + ajax_query_string
result = """
-
-
- """ % {'name': name, 'value': value, 'id': attrs.get('id', ''), 'ajax_url': ajax_url, 'initial_search': initial_search}
+
+
+
+
+ """ % {'name': name, 'value': value, 'id': attrs.get('id', ''), 'ajax_url': ajax_url, 'initial_search': initial_search, 'model_name': model.__name__.lower()}
# see /javascripts/deme/ajax-model-choice-widget.js for implementation
#TODO fail in more obvious way if attrs['id'] is not set
return result
diff --git a/deme_django/cms/templates/embed.html b/deme_django/cms/templates/embed.html
new file mode 100644
index 00000000..68e1a274
--- /dev/null
+++ b/deme_django/cms/templates/embed.html
@@ -0,0 +1,24 @@
+{% load item_tags %}
+
+
+ {% block title %}{% endblock %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% block content %}{% endblock %}
+
+
\ No newline at end of file
diff --git a/deme_django/cms/templates/item/new.html b/deme_django/cms/templates/item/new.html
index 733e3e6e..38f42b18 100644
--- a/deme_django/cms/templates/item/new.html
+++ b/deme_django/cms/templates/item/new.html
@@ -1,63 +1,6 @@
{% extends layout %}
-{% load item_tags %}
{% block content %}
-{% if is_html %}
-
-
-{% endif %}
-
-
- {% for item_type in item_types %}
-
[
- {% ifequal item_type.item_type accepted_item_type %}
- New {{ item_type.name|capfirst }}
- {% else %}
- New {{ item_type.name|capfirst }}
- {% endifequal %}
- ]
- {% endfor %}
-
-
-
-{% if form %}
-
-{% else %}
- You do not have permission to create {{ accepted_item_type_name_plural }}.
-{% endif %}
-
-
-
-{% endblock content %}
+{% include "item/new_bare.html" %}
+{% endblock content %}
\ No newline at end of file
diff --git a/deme_django/cms/templates/item/new_bare.html b/deme_django/cms/templates/item/new_bare.html
new file mode 100644
index 00000000..2e0fc5f0
--- /dev/null
+++ b/deme_django/cms/templates/item/new_bare.html
@@ -0,0 +1,57 @@
+{% load item_tags %}
+{% if is_html %}
+
+
+{% endif %}
+
+
+ {% for item_type in item_types %}
+
[
+ {% ifequal item_type.item_type accepted_item_type %}
+ New {{ item_type.name|capfirst }}
+ {% else %}
+ New {{ item_type.name|capfirst }}
+ {% endifequal %}
+ ]
+ {% endfor %}
+
+
+
+{% if form %}
+
+{% else %}
+ You do not have permission to create {{ accepted_item_type_name_plural }}.
+{% endif %}
+
+
diff --git a/deme_django/cms/templates/item/new_embed.html b/deme_django/cms/templates/item/new_embed.html
new file mode 100644
index 00000000..f019f4f9
--- /dev/null
+++ b/deme_django/cms/templates/item/new_embed.html
@@ -0,0 +1,5 @@
+{% extends "embed.html" %}
+{% block title %}{{ action_title }}{% endblock %}
+{% block content %}
+{% include "item/new_bare.html" %}
+{% endblock content %}
\ No newline at end of file
diff --git a/deme_django/cms/views.py b/deme_django/cms/views.py
index cf000568..d41fb020 100644
--- a/deme_django/cms/views.py
+++ b/deme_django/cms/views.py
@@ -370,7 +370,6 @@ def type_new_html(self, form=None):
form_initial = self.get_populated_field_dict(self.accepted_item_type)
form_class = self.get_form_class_for_item_type(self.accepted_item_type, True)
form = form_class(initial=form_initial)
- template = loader.get_template('item/new.html')
self.context['form'] = form
self.context['is_html'] = issubclass(self.accepted_item_type, HtmlDocument)
self.context['redirect'] = self.request.GET.get('redirect')
@@ -378,6 +377,11 @@ def type_new_html(self, form=None):
item_types = [{'viewer': x.__name__.lower(), 'name': x._meta.verbose_name, 'name': x._meta.verbose_name, 'item_type': x} for x in all_item_types() if self.accepted_item_type in x.__bases__ + (x,)]
item_types.sort(key=lambda x:x['name'].lower())
self.context['item_types'] = item_types
+ is_true = lambda value: bool(value) and value.lower() not in ('false', '0')
+ if (is_true(self.request.GET.get('modal'))):
+ template = loader.get_template('item/new_embed.html')
+ else:
+ template = loader.get_template('item/new.html')
return HttpResponse(template.render(self.context))
@require_POST
diff --git a/deme_django/static/javascripts/deme/ajax-model-choice-widget-ck.js b/deme_django/static/javascripts/deme/ajax-model-choice-widget-ck.js
index f16ee247..00333309 100644
--- a/deme_django/static/javascripts/deme/ajax-model-choice-widget-ck.js
+++ b/deme_django/static/javascripts/deme/ajax-model-choice-widget-ck.js
@@ -1 +1 @@
-$(function(){$(".ajax-model-choice-widget").each(function(){var e=$(this).attr("data-input-id"),t=$(this).attr("data-ajax-url"),n=$("#"+e),r=$(this),i={},s;n.autocomplete({minLength:0,select:function(e,t){n[0].value=t.item.value;r[0].value=t.item.id;return!1},source:function(e,n){var r=e.term;if(r in i){n(i[r]);return}s=$.getJSON(t,{q:r},function(e,t,s){var o=$.map(e,function(e){return{value:e[0],id:e[1]}});o.splice(0,0,{value:"[None]",id:""});i[r]=o;n(o)})}})})});
\ No newline at end of file
+$(function(){$(".ajax-model-choice-widget").each(function(){var e=$(this).attr("data-input-id"),t=$(this).attr("data-ajax-url"),n=$("#"+e),r=$(this),i={},s;n.autocomplete({minLength:0,select:function(e,t){n[0].value=t.item.value;r[0].value=t.item.id;return!1},source:function(e,n){var r=e.term;if(r in i){n(i[r]);return}s=$.getJSON(t,{q:r},function(e,t,s){var o=$.map(e,function(e){return{value:e[0],id:e[1]}});o.splice(0,0,{value:"[None]",id:""});i[r]=o;n(o)})}});var o=$('').insertAfter(n);o.click(function(e){e.preventDefault()})})});
\ No newline at end of file
diff --git a/deme_django/static/javascripts/deme/ajax-model-choice-widget.js b/deme_django/static/javascripts/deme/ajax-model-choice-widget.js
index c64eb53d..f294d9e7 100644
--- a/deme_django/static/javascripts/deme/ajax-model-choice-widget.js
+++ b/deme_django/static/javascripts/deme/ajax-model-choice-widget.js
@@ -27,5 +27,11 @@ $(function() {
});
},
});
+
+ // set up new button
+ var newbtn = $('').insertAfter(search_input);
+ newbtn.click(function(e){
+ e.preventDefault();
+ })
});
});