correct some various js bugs
authorymh <ymh.work@gmail.com>
Thu, 23 Sep 2010 18:20:24 +0200
changeset 72 d672f33a3a67
parent 71 fc1210bbb854
child 73 e85372c06f21
correct some various js bugs
web/franceculture/templates/base.html
web/franceculture/templates/franceculture/workspace.html
web/franceculture/templates/ldt/ldt_utils/content_list.html
web/franceculture/templates/ldt/ldt_utils/ldt_list.html
web/franceculture/urls.py
web/franceculture/views.py
web/ldt/ldt_utils/models.py
web/static/js/projectscontents.js
--- a/web/franceculture/templates/base.html	Thu Sep 23 13:45:21 2010 +0200
+++ b/web/franceculture/templates/base.html	Thu Sep 23 18:20:24 2010 +0200
@@ -42,10 +42,10 @@
 				{% url ldt.user.views.profile  as profile_url %}
 				    <ul class="tabs">
 						<li class='{% active request "active" workspace_url %}'><a href="{{ workspace_url }}" >{% trans "home" %}</a></li>
-						<li class='{% active request "active" content_url %}'><a href="{{ content_url }}">{% trans "contents" %}</a></li>
+						<!--li class='{% active request "active" content_url %}'><a href="{{ content_url }}">{% trans "contents" %}</a></li>
 						<li class='{% active request "active" space_url %}'><a href="{{ space_url }}">{% trans "indexation projects" %}</a></li>
 						<li class='{% active request "active" "" %}'><a href="#">{% trans "accounts" %}</a></li>
-			            <li class='{% active request "active" profile_url %}'><a href="{{ profile_url }}" >{% trans "Profiles" %}</a> </li>
+			            <li class='{% active request "active" profile_url %}'><a href="{{ profile_url }}" >{% trans "Profiles" %}</a> </li-->
 				    </ul>
 				{% endif %}
 				</div>
--- a/web/franceculture/templates/franceculture/workspace.html	Thu Sep 23 13:45:21 2010 +0200
+++ b/web/franceculture/templates/franceculture/workspace.html	Thu Sep 23 18:20:24 2010 +0200
@@ -12,12 +12,15 @@
 <script type="text/javascript">
 
 var content_filter_url = "{% url franceculture.views.contentsfilter filter='__FILTER__' %}";
-var project_filter_url = "{% url franceculture.views.projectsfilter filter='__FILTER__' is_owner='false' %}";
+var project_filter_url = "{% url franceculture.views.projectsfilter filter='__FILTER__' is_owner='false' status='0' %}";
+var publish_project_url = "{% url ldt.ldt_utils.views.publish '__PROJECT_ID__' 'false' %}";
+var unpublish_project_url = "{% url ldt.ldt_utils.views.unpublish '__PROJECT_ID__' 'false' %}";
+
 
 function init_events(base_node) {
 
-	init_events_contents(base_node, "{% url franceculture.views.popup_embed %}");
-			
+	init_events_all(base_node, "{% url franceculture.views.popup_embed %}", content_filter_url, project_filter_url, publish_project_url, unpublish_project_url);
+
 }
 
 $(document).ready(function(){	
--- a/web/franceculture/templates/ldt/ldt_utils/content_list.html	Thu Sep 23 13:45:21 2010 +0200
+++ b/web/franceculture/templates/ldt/ldt_utils/content_list.html	Thu Sep 23 18:20:24 2010 +0200
@@ -14,7 +14,7 @@
 
 function init_events(base_node) {
 
-	init_events_contents(base_node, "{% url franceculture.views.popup_embed %}");		
+	init_events_contents(base_node, "{% url franceculture.views.popup_embed %}", content_filter_url);		
 }
 
 $(document).ready(function(){
--- a/web/franceculture/templates/ldt/ldt_utils/ldt_list.html	Thu Sep 23 13:45:21 2010 +0200
+++ b/web/franceculture/templates/ldt/ldt_utils/ldt_list.html	Thu Sep 23 18:20:24 2010 +0200
@@ -11,7 +11,7 @@
 {{block.super}}
 <script type="text/javascript">
 
-searchprojectfilterurl = "{% url franceculture.views.projectsfilter filter='__FILTER__' is_owner='true' %}";
+searchprojectfilterurl = "{% url franceculture.views.projectsfilter filter='__FILTER__' is_owner='true' status='0' %}";
 publishprojecturl = "{% url ldt.ldt_utils.views.publish '__PROJECT_ID__' 'false' %}";
 unpublishprojecturl = "{% url ldt.ldt_utils.views.unpublish '__PROJECT_ID__' 'false' %}";
 
--- a/web/franceculture/urls.py	Thu Sep 23 13:45:21 2010 +0200
+++ b/web/franceculture/urls.py	Thu Sep 23 18:20:24 2010 +0200
@@ -23,7 +23,7 @@
     (r'^accounts/', include('registration.backends.simple.urls')),
 
     url(r'^/?$', "franceculture.views.workspace", name="root-view"),
-    url(r'^filterprojects/(?P<filter>\w*)/(?P<is_owner>true|false)/$', "franceculture.views.projectsfilter", ),
+    url(r'^filterprojects/(?P<filter>\w*)/(?P<is_owner>true|false)/(?P<status>\d)$', "franceculture.views.projectsfilter", ),
     url(r'^filtercontents/(?P<filter>\w*)/$', "franceculture.views.contentsfilter", ),
     (r'^embedpopup/?$', "franceculture.views.popup_embed"),
 )
--- a/web/franceculture/views.py	Thu Sep 23 13:45:21 2010 +0200
+++ b/web/franceculture/views.py	Thu Sep 23 18:20:24 2010 +0200
@@ -6,6 +6,7 @@
 from ldt.ldt_utils.models import Content, Project, Owner
 from ldt.ldt_utils.utils import boolean_convert
 from django.http import HttpResponseServerError
+from django.db.models import Q
 
 
 @login_required
@@ -15,7 +16,7 @@
     content_list = Content.objects.all()
 
     # get list of projects
-    project_list = Project.objects.filter(state=2)
+    project_list = Project.objects.all()
 
     # render list
     return render_to_response("franceculture/workspace.html", 
@@ -23,10 +24,12 @@
                               context_instance=RequestContext(request))
 
 @login_required
-def projectsfilter(request, filter, is_owner=False):
+def projectsfilter(request, filter, is_owner=False, status=0):
     
     project_list = None
     is_owner = boolean_convert(is_owner)
+    status = int(status)
+    query = Q()
     
     if is_owner:
         owner = None
@@ -34,14 +37,16 @@
             owner = Owner.objects.get(user=request.user)
         except:
             return HttpResponseServerError("<h1>User not found</h1>")
-
-        project_list = Project.objects.filter(owner=owner)
-    else:
-        project_list = Project.objects.filter(state=2)
+        query &= Q(owner=owner)
+        
+    if status > 0:
+        query &= Q(state=status)
     
     if filter:
-        project_list = project_list.filter(title__icontains=filter)
-        
+        query &= Q(title__icontains=filter)
+    
+    project_list =  Project.objects.filter(query)
+    
     return render_to_response("franceculture/partial/projectslist.html", 
                               {'projects': project_list},
                               context_instance=RequestContext(request))
--- a/web/ldt/ldt_utils/models.py	Thu Sep 23 13:45:21 2010 +0200
+++ b/web/ldt/ldt_utils/models.py	Thu Sep 23 18:20:24 2010 +0200
@@ -47,6 +47,9 @@
                     'f4v': lambda s: "%s:%s" %("mp4",res_src[:-4]),
                 }.get(extension, lambda s:s)(res_src)
             return res_src
+        
+        return locals()
+    
     stream_src = property(**stream_src())    
     
     def save(self, *args, **kwargs):
@@ -153,6 +156,9 @@
                 return self.media_obj.stream_src
             else:
                 return None
+        
+        return locals()
+    
     stream_src = property(**stream_src())
     
     def videopath(): #@NoSelf
--- a/web/static/js/projectscontents.js	Thu Sep 23 13:45:21 2010 +0200
+++ b/web/static/js/projectscontents.js	Thu Sep 23 18:20:24 2010 +0200
@@ -119,6 +119,9 @@
 	timeout = typeof(timeout) != 'undefined' ? timeout : 0;
 	var target = $(target);
 	
+	// remove all qtip
+	$(".qtip").remove();
+	
 	if(target.realVal().length > 0) {
 		target.nextAll(".searchclear").show();
 	}
@@ -148,7 +151,7 @@
 };
 
 
-function init_events_contents(base_node, embed_url) {
+function init_events_contents(base_node, embed_url, content_filter_url) {
 
 	init_events_base(base_node, embed_url);
 	
@@ -197,6 +200,56 @@
 
 }
 
+function init_events_base_projects(base_node, embed_url, searchprojectfilterurl, publishprojecturl, unpublishprojecturl) {
+		
+	$('.publishedproject', base_node).click(function(e) {
+		e.preventDefault();
+		var target = $(e.target);
+		var project_id = target.attr('id').replace('project_','');
+		var url = unpublishprojecturl.replace('__PROJECT_ID__', project_id);
+		$.ajax({
+			url: url,
+			type: 'POST',
+			dataType: 'json',
+			success: function(json, textStatus, XMLHttpRequest){
+				if(json.res) {
+					searchCallback($('#searchprojectsinput'), "#projectslistcontainer", searchprojectfilterurl, 0);
+				}
+			}
+		});
+	});
+
+	$('.unpublishedproject', base_node).click(function(e) {
+		e.preventDefault();
+		var target = $(e.target);
+		var project_id = target.attr('id').replace('project_','');
+		var url = publishprojecturl.replace('__PROJECT_ID__', project_id);
+		$.ajax({
+			url: url,
+			type: 'POST',
+			dataType: 'json',
+			success: function(json, textStatus, XMLHttpRequest){
+				if(json.res) {
+					searchCallback($('#searchprojectsinput'), "#projectslistcontainer", searchprojectfilterurl, 0);
+				}
+			}
+		});
+	});
+
+}
+
+function init_events_projects(base_node, embed_url, searchprojectfilterurl, publishprojecturl, unpublishprojecturl) {
+	
+	init_events_base(base_node, embed_url);
+	init_events_base_projects(base_node, embed_url, searchprojectfilterurl, publishprojecturl, unpublishprojecturl);
+}
+
+function init_events_all(base_node, embed_url, searchcontentfilterurl, searchprojectfilterurl, publishprojecturl, unpublishprojecturl) {
+	
+	init_events_contents(base_node, embed_url, searchcontentfilterurl);
+	init_events_base_projects(base_node, embed_url, searchprojectfilterurl, publishprojecturl, unpublishprojecturl);	
+}
+
 
 
 function searchFieldInit(input_list_init) {