add content creation dialog
authorymh <ymh.work@gmail.com>
Tue, 07 Sep 2010 14:16:01 +0200
changeset 42 71c93982463f
parent 41 a5719dcb742a
child 43 dd83bd03fecd
add content creation dialog
web/franceculture/templates/franceculture/partial/contentslist.html
web/franceculture/templates/franceculture/workspace.html
web/franceculture/templates/ldt/ldt_utils/content_list.html
web/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html
web/ldt/ldt_utils/views.py
web/static/css/nyroModal.css
web/static/css/workspace.css
--- a/web/franceculture/templates/franceculture/partial/contentslist.html	Mon Sep 06 17:00:34 2010 +0200
+++ b/web/franceculture/templates/franceculture/partial/contentslist.html	Tue Sep 07 14:16:01 2010 +0200
@@ -9,7 +9,7 @@
 	<tfoot class="projectscontentsfooter">
 	  <tr>
 	       <td colspan="2">+</td>
-	       <td><a href="{% url ldt.ldt_utils.views.write_content %}">{% trans "Create content" %}</a></td>
+	       <td><a class='content_link_create' href="{% url ldt.ldt_utils.views.write_content %}">{% trans "Create content" %}</a></td>
 	  </tr>
 	</tfoot>
     <tbody class="projectscontentsbody">
--- a/web/franceculture/templates/franceculture/workspace.html	Mon Sep 06 17:00:34 2010 +0200
+++ b/web/franceculture/templates/franceculture/workspace.html	Tue Sep 07 14:16:01 2010 +0200
@@ -5,6 +5,8 @@
 {{block.super}}
 <script type="text/javascript">
 
+var content_filter_url = "{% url franceculture.views.contentsfilter filter='__FILTER__' %}";
+
 $.fn.realVal = function() {
 	var obj = $(this[0]);
 	if(obj.val) {
@@ -77,6 +79,27 @@
 		   return false;
 	});
 
+	$('.content_link_create').nyroModal({
+        type: 'iframe',
+        forceType: 'iframe',
+        height:662, 
+        width:1022,
+        bgColor: 'rgb(239, 239, 239)',
+        padding: 5,
+        titleFromIframe: false,
+        endRemove: function(elts, settings) {
+        	searchCallback($("#searchcontentsinput"),"#contentslistcontainer",content_filter_url)
+		},
+	  	endShowContent: function(elts, settings) {
+		  	$('#nyroModalIframe', elts.content).load(function() {
+			  	var form_status = $(this).contents().find("#content_form_status").val(); 
+			  	if(form_status == 'saved') {
+			  		$.nyroModalRemove();
+			  	}
+		  	});
+		}
+	});
+
 
 	$('.imageline',base_node).each(function(i) {
 	    tr = $(this);
@@ -120,7 +143,7 @@
 	});
 
 	$("#searchcontentsinput").keyup(function (e) {
-		var url = "{% url franceculture.views.contentsfilter filter='__FILTER__' %}";
+		var url = content_filter_url;
 		var container_selector="#contentslistcontainer";
 		searchCallback(e.target, container_selector, url);
 	});
@@ -157,8 +180,10 @@
 	     
 	});
 
+
 	init_events(document);
 
+
 });
 </script>
 
--- a/web/franceculture/templates/ldt/ldt_utils/content_list.html	Mon Sep 06 17:00:34 2010 +0200
+++ b/web/franceculture/templates/ldt/ldt_utils/content_list.html	Tue Sep 07 14:16:01 2010 +0200
@@ -80,6 +80,27 @@
 		   return false;
 	});
 
+	$('.content_link_create').nyroModal({
+        type: 'iframe',
+        forceType: 'iframe',
+        height:662, 
+        width:1022,
+        bgColor: 'rgb(239, 239, 239)',
+        padding: 5,
+        titleFromIframe: false,
+        endRemove: function(elts, settings) {
+        	searchCallback($("#searchcontentsinput"),"#contentslistcontainer",content_filter_url)
+		},
+	  	endShowContent: function(elts, settings) {
+		  	$('#nyroModalIframe', elts.content).load(function() {
+			  	var form_status = $(this).contents().find("#content_form_status").val(); 
+			  	if(form_status == 'saved') {
+			  		$.nyroModalRemove();
+			  	}
+		  	});
+		}
+	});
+
 
 	$('.imageline',base_node).each(function(i) {
 	    var tr = $(this);
--- a/web/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html	Mon Sep 06 17:00:34 2010 +0200
+++ b/web/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html	Tue Sep 07 14:16:01 2010 +0200
@@ -7,10 +7,13 @@
 <head>
     <script type="text/javascript" src="{{MEDIA_URL}}admin/js/core.js" ></script>
     <script type="text/javascript" src="{% url jsi18n %}" } ></script>
+    <script type="text/javascript" src="{{MEDIA_URL}}js/jquery.min.js"></script>
+    <script type="text/javascript" src="{{MEDIA_URL}}js/jquery.nyroModal.min.js"></script>    
 	<link rel="stylesheet" href="{{BASE_URL}}static/ldt/css/ldt.css" />
 	{{content_form.media }}
 	<script type="text/javascript">
 	window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
+	
     </script>
 </head>
 <body>
@@ -19,6 +22,7 @@
 <form action="{{create_content_action}}" method="POST">
 {% csrf_token %}
 {{ content_form.as_ul }}
+<input type="hidden" name="form_status" value="{{form_status}}" id="content_form_status" />
 <input type="submit"/> 
 </form>
 </div>
--- a/web/ldt/ldt_utils/views.py	Mon Sep 06 17:00:34 2010 +0200
+++ b/web/ldt/ldt_utils/views.py	Tue Sep 07 14:16:01 2010 +0200
@@ -366,7 +366,8 @@
 
 
 def write_content_base(request):
-        
+    
+    form_status= 'none'        
     if request.method =="POST":
         form = ContentForm(request.POST)
         if form.is_valid():
@@ -376,18 +377,22 @@
                 form.save()
             else:
                 content.save()
+            form_status = 'saved'
             form = ContentForm(instance=content)
+        else:
+            form_status = 'error'
     else:
+        form_status = 'empty'
         form = ContentForm()
     
-    return form
+    return form, form_status
 
 
 def write_content(request):
     
-    content_form = write_content_base(request)
+    content_form, form_status = write_content_base(request)
     
-    return render_to_response('ldt/ldt_utils/create_content.html', {'content_form': content_form, 'create_content_action': reverse(write_content)}, context_instance=RequestContext(request))
+    return render_to_response('ldt/ldt_utils/create_content.html', {'content_form': content_form, 'form_status': form_status,'create_content_action': reverse(write_content)}, context_instance=RequestContext(request))
 
 
     
\ No newline at end of file
--- a/web/static/css/nyroModal.css	Mon Sep 06 17:00:34 2010 +0200
+++ b/web/static/css/nyroModal.css	Tue Sep 07 14:16:01 2010 +0200
@@ -9,7 +9,7 @@
 	width: 150px;
 	height: 150px;
 	text-indent: -9999em;
-	background: #fff url(../img/ajaxLoader.gif) no-repeat;
+	background: #fff url(../img/ajax-loader-43x43.gif) no-repeat;
 	background-position: center;
 }
 div#nyroModalLoading.error {
--- a/web/static/css/workspace.css	Mon Sep 06 17:00:34 2010 +0200
+++ b/web/static/css/workspace.css	Tue Sep 07 14:16:01 2010 +0200
@@ -197,3 +197,10 @@
 	display: none;
 }
 
+a.content_link_create:link, a.content_link_create:visited {
+	color: white;
+}
+
+a.project_link_create:link, a.project_link_create:visited {
+	color: white;
+}