Display specific tooltip when project edition is not allowed
authorverrierj
Thu, 24 Nov 2011 15:32:19 +0100
changeset 251 81417fd477b0
parent 250 ff7ccbbba329
child 252 83eea387fe59
Display specific tooltip when project edition is not allowed
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/contentslist.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/groupslist.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/published_projects.html
src/ldt/ldt/ldt_utils/urls.py
src/ldt/ldt/ldt_utils/views.py
src/ldt/ldt/locale/en/LC_MESSAGES/django.mo
src/ldt/ldt/locale/fr/LC_MESSAGES/django.mo
src/ldt/ldt/security/utils.py
src/ldt/ldt/static/ldt/js/projectscontents.js
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html	Thu Nov 24 12:54:41 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html	Thu Nov 24 15:32:19 2011 +0100
@@ -1,24 +1,42 @@
-{% extends "ldt/ldt_utils/workspace.html" %}
+{% extends "ldt/ldt_base.html" %}
 {% load i18n %}
 
+{% block js_import %}
+{{block.super}}
+	<script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js" ></script>
+{% endblock %}
+
 {% block js_declaration %}
 {{block.super}}
 <script type="text/javascript">
 
-var content_filter_url = "{% url ldt.ldt_utils.views.contents_filter filter='__FILTER__' %}";
+var groups_filter_url = "{% url ldt.ldt_utils.views.groups_filter filter='__FILTER__' %}";
 var project_filter_url = "{% url ldt.ldt_utils.views.projects_filter filter='__FILTER__' is_owner='false' status='0' id_group='__ID_GROUP__' %}";
 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' %}";
 var get_group_projects_url = "{% url ldt.ldt_utils.views.get_group_projects %}";
 
+function init_events(base_node) {
+	init_events_all(base_node, "{% url ldt.ldt_utils.views.popup_embed %}", groups_filter_url, project_filter_url, publish_project_url, unpublish_project_url);
+}
 	
 var global_csrf_token = "{{ csrf_token }}";
 
 $(document).ready(function(){
 	
-	init_events(document);
+	input_list_init = [
+		{'input_selector':"#searchprojectsinput", 'container_selector':"#projectslistcontainer", 'url':project_filter_url}
+	];
+	
+	searchFieldInit(input_list_init);
 	
-    $(".update_group_projects").click(function(){
+	init_events(document);
+});
+
+
+$(document).ready(function(){
+		
+    $(".update_group_projects").live("click", function(){
         //alert("group id = " + $(this).attr('id') + ", url = " + get_group_projects_url);
         id_group = $(this).attr('id');
         // Remove icons from all the lines
@@ -54,6 +72,11 @@
 </script>
 {% endblock %}
 
+{% block css_import %}
+{{block.super}}
+    <link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}/css/workspace.css" type="text/css"/>
+{% endblock %}
+
 {% block content %}
 <div class="span-24 last" id="allcontentsdiv">
 	<div class="span-12" id="contentsdiv">
@@ -63,36 +86,14 @@
 				<a class="create_group" href="{% url ldt.ldt_utils.views.create_group %}"><img class='icon_title' src="{{LDT_MEDIA_PREFIX}}img/film_add.png" alt="{% trans 'Create content' %}" title="{% trans 'Create group' %}" /></a>
 			</div>
 		</div>
-		<div class="span-12 last projectscontentsdiv" id="contentslistcontainer">
-		<div class="projectscontentsheader projectcontentsheadertitle span-12 last" id="contentsheader">
-		{% trans "Click on the line to see the group's projects" %}
-		</div>
-		<input type='hidden' name='id_group' id='id_group' value='' />
-		<table class="projectscontentstable">
-	    <tbody class="projectscontentsbody">
-		{% for group in groups %}
-			<tr class="imageline {% cycle 'projectscontentsoddline' 'projectscontentsevenline'%} update_group_projects" id="{{ group.id }}">
-				
-			{% if group.can_change %}
-			   <td class="cellimg"><a class="grouplink create_group" title="{% trans "Change this group"%}" href="{% url ldt.ldt_utils.views.update_group group.id %}">c</a></td>
-			   <td><b>{{ group.name }}</b></td>
-			{% else %}
-			    <td class="cellimg"><a class="grouplink" title="{% trans "Leave this group" %}" href="{% url ldt.ldt_utils.views.leave_group group.id %}">l</a></td>
-			    <td>{{ group.name }}</td>
-			{% endif %}
-			<td class="align_right"><img src="{{LDT_MEDIA_PREFIX}}/img/control_play.png" class="next_icon"/></td>
-			
-			</tr>
-		{% endfor %}
-		</tbody>
-		</table>
+		<div class="span-12 last projectscontentsdiv" id="groupslistcontainer">
+			{% include "ldt/ldt_utils/partial/groupslist.html" %}
 		</div>
 	</div>
 	<div class="span-12 last" id="projectsdiv">
 		<div class="span-12 last titlediv" >
 			<div class="span-8 projectscontentstitle" >{% trans "The group's projects" %}</div>
 			<div class="span-4 last searchfielddiv" id="search_div" style='display:none'>
-			    <div class="searchfield rounded"><input id="searchprojectsinput" class="searchfieldinput searchfieldinputbase" value="{% trans 'search' %}" type="text" /><img id="projectsajaxloader" class="searchajaxloader" src="{{LDT_MEDIA_PREFIX}}/img/ajax-loader-16x16.gif" alt="loader"/><img id="projecsclear" class="searchclear" src="{{LDT_MEDIA_PREFIX}}img/clear-left.png"/></div>
 			</div>
 		</div>
 		<div class="span-12 last projectscontentsdiv" id="projectslistcontainer">
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/contentslist.html	Thu Nov 24 12:54:41 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/contentslist.html	Thu Nov 24 15:32:19 2011 +0100
@@ -9,7 +9,7 @@
 		<tr class="imageline {% cycle 'projectscontentsoddline' 'projectscontentsevenline'%}">
 		    <td class="cellimg"><div class="cellimgdiv"><img src="{{LDT_MEDIA_PREFIX}}/img/page_add.png" title="{% trans 'create project' %}" alt="{% trans 'create project' %}" href="{% url ldt.ldt_utils.views.create_project content.iri_id %}" class="ldt_link_create_project"/></div></td>
 		    <td class="cellimg"><div class="cellimgdiv"><img  alt="{% trans 'preview media'%}" title="{% trans 'preview media'%}" src="{{LDT_MEDIA_PREFIX}}/img/control_play.png" href="{% url ldt.ldt_utils.views.index content.iri_id %}" class="ldt_link_open_ldt"/></div></td>
-		    <td class="contenttitle"><a class="contenttitlelink qtiplink" {% if content.change %} href="{% url ldt.ldt_utils.views.write_content iri_id=content.iri_id %}" data-title="{{ content.title}}"  data-desc="{{ content.description }}" {% else %} data-title="{% trans "You can't edit this content" %}" data-desc=""{% endif %}>{{ content.title|default:"_" }}</a></td>
+		    <td class="contenttitle"><a {% if content.change %} class="contenttitlelink infostooltip" href="{% url ldt.ldt_utils.views.write_content iri_id=content.iri_id %}" data-title="{{ content.title}}"  data-desc="{{ content.description }}" {% else %} class="contenttitlelink qtiplink" title="{% trans "You can't edit this content" %}" {% endif %}>{{ content.title|default:"_" }}</a></td>
 		</tr>
 	{% endfor %}
 		</tbody>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/groupslist.html	Thu Nov 24 15:32:19 2011 +0100
@@ -0,0 +1,26 @@
+{% load i18n %}
+
+<div class="projectscontentsheader projectcontentsheadertitle span-12 last" id="contentsheader">
+{% trans "Click on the line to see the group's projects" %}
+</div>
+
+<input type='hidden' name='id_group' id='id_group' value='' />
+<table class="projectscontentstable">
+    <tbody class="projectscontentsbody">
+	{% for group in groups %}
+	<tr class="imageline {% cycle 'projectscontentsoddline' 'projectscontentsevenline'%} update_group_projects" id="{{ group.id }}">
+
+			{% if group.change %}
+			   <td class="cellimg"><a class="grouplink create_group" title="{% trans "Change this group"%}" href="{% url ldt.ldt_utils.views.update_group group.id %}">c</a></td>
+			   <td><b>{{ group.name }}</b></td>
+			{% else %}
+			    <td class="cellimg"><a class="grouplink" title="{% trans "Leave this group" %}" href="{% url ldt.ldt_utils.views.leave_group group.id %}">l</a></td>
+			    <td>{{ group.name }}</td>
+			{% endif %}
+
+		<td class="align_right"><img src="{{LDT_MEDIA_PREFIX}}/img/control_play.png" class="next_icon"/></td>
+		
+		</tr>
+	{% endfor %}
+	</tbody>
+</table>
\ No newline at end of file
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html	Thu Nov 24 12:54:41 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html	Thu Nov 24 15:32:19 2011 +0100
@@ -18,17 +18,22 @@
         <td class="cellimg"><div class="cellimgdiv"><img src="{{LDT_MEDIA_PREFIX}}img/plugin.png" href="{{WEB_URL}}{{json_url_id}}" id="player_project_{{project.ldt_id}}" class="ldt_link_embed" alt="{% trans 'link json by id' %}" title="{% trans 'link json by id' %}"/></div></td>
         <td class="cellimg">
         {% ifequal project.state 2 %}
-        <img src="{{ADMIN_MEDIA_PREFIX}}img/admin/icon-yes.gif" alt="{% trans 'Project published, click to unpublish' %}" title="{% trans 'Project published, click to unpublish' %}" class="publishedproject" id="project_{{project.ldt_id}}" /></div>
+        <img src="{{ADMIN_MEDIA_PREFIX}}img/admin/icon-yes.gif" {% if project.change %} alt="{% trans 'Project published, click to unpublish' %}" title="{% trans 'Project published, click to unpublish' %}" class="publishedproject qtiplink" {% else %} class="qtiplink" title="{% trans "You are not allowed to change this project" %}"{% endif %} id="project_{{project.ldt_id}}" /></div>
         {% else %}
-        <img src="{{ADMIN_MEDIA_PREFIX}}img/admin/icon-no.gif" alt="{% trans 'Project not published, click to publish' %}" title="{% trans 'Project not published, click to publish' %}" class="unpublishedproject" id="project_{{project.ldt_id}}" />
+        <img src="{{ADMIN_MEDIA_PREFIX}}img/admin/icon-no.gif" {% if project.change %} alt="{% trans 'Project not published, click to publish' %}" title="{% trans 'Project not published, click to publish' %}" class="unpublishedproject qtiplink" {% else %} class="qtiplink" title="{% trans "You are not allowed to change this project" %}"{% endif %}id="project_{{project.ldt_id}}" />
         {% endifequal %}
         </td>
+        
         <td class="projecttitle">
-        {% ifequal project.state 2 %}
-        <span class="projectinfos" data-title="{{ project.title }}" data-desc="{{ project.description|linebreaksbr }}" >{% if show_username %}{{ project.owner.username }} : {% endif %}{{ project.title }}</span>
+        {% if project.state == 2 %}
+        <span class="projecttitlelink infostooltip" data-title="{{ project.title }}" data-desc="{{ project.description|linebreaksbr }}" >{% if show_username %}{{ project.owner.username }} : {% endif %}{{ project.title }}</span>
         {% else %}
-        <a class="projecttitlelink" href="{% url ldt.ldt_utils.views.update_project ldt_id=project.ldt_id %}"><span class="projectinfos" data-title="{{ project.title }}" data-desc="{{ project.description|linebreaksbr }}" >{% if show_username %}{{ project.owner.username }} : {% endif %}{{ project.title }}</span></a>
-        {% endifequal %}
+        	{% if project.change %}
+        	<a class="projecttitlelink" href="{% url ldt.ldt_utils.views.update_project ldt_id=project.ldt_id %}"><span class="infostooltip" data-title="{{ project.title }}" data-desc="{{ project.description|linebreaksbr }}" >{% if show_username %}{{ project.owner.username }} : {% endif %}{{ project.title }}</span></a>
+        	{% else %}
+        	<a class="projecttitlelink"><span class="qtiplink" title="{% trans "You are not allowed to change this project" %}">{% if show_username %}{{ project.owner.username }} : {% endif %}{{ project.title }}</span></a>
+        	{% endif %}
+        {% endif %}
         </td>
     </tr>
 {% endfor %}
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/published_projects.html	Thu Nov 24 12:54:41 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/published_projects.html	Thu Nov 24 15:32:19 2011 +0100
@@ -6,7 +6,6 @@
 	<script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js" ></script>
 {% endblock %}
 
-
 {% block js_declaration %}
 {{block.super}}
 <script type="text/javascript">
--- a/src/ldt/ldt/ldt_utils/urls.py	Thu Nov 24 12:54:41 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/urls.py	Thu Nov 24 15:32:19 2011 +0100
@@ -30,6 +30,7 @@
     url(r'^filterprojects/_(?P<filter>[\w\%\_\-\+]*?)/(?P<is_owner>true|false)/(?P<status>\d)$', "views.projects_filter",),
     url(r'^filterprojects/_(?P<filter>[\w\%\_\-\+]*?)/(?P<is_owner>true|false)/(?P<status>\d)/(?P<id_group>.*)$', "views.projects_filter",),
     url(r'^filtercontents/_(?P<filter>[\w\%\_\-\+]*?)/$', "views.contents_filter",),
+    url(r'^filtergroups/_(?P<filter>[\w\%\_\-\+]*?)/$', "views.groups_filter",),
     (r'^embedpopup/?$', "views.popup_embed"),
     url(r'^segment/(?P<project_id>.*)/(?P<content_id>.*)/(?P<ensemble_id>.*)/(?P<cutting_id>.*)/(?P<segment_id>.*)/$', 'views.index_segment'),
     url(r'^segmentInit/(?P<project_id>.*)/(?P<content_id>.*)/(?P<ensemble_id>.*)/(?P<cutting_id>.*)/(?P<segment_id>.*)/$', 'views.init_segment'),
--- a/src/ldt/ldt/ldt_utils/views.py	Thu Nov 24 12:54:41 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/views.py	Thu Nov 24 15:32:19 2011 +0100
@@ -23,7 +23,7 @@
 from guardian.shortcuts import assign, remove_perm, get_perms, get_objects_for_group
 from ldt.ldt_utils.models import Content
 from ldt.ldt_utils.utils import boolean_convert, LdtUtils, LdtSearch
-from ldt.security.utils import assign_project_to_groups, set_forbidden_stream
+from ldt.security.utils import assign_project_to_groups, set_forbidden_stream, add_change_attr
 from lxml.html import fragment_fromstring
 from models import Media, Project
 from projectserializer import ProjectSerializer
@@ -46,17 +46,13 @@
 
 @login_required
 def workspace(request):
-    checker = ObjectPermissionChecker(request.user)
     
     # list of contents
-    content_list = Content.safe_objects.all() #@UndefinedVariable
-    for c in content_list:
-        if checker.has_perm('ldt_utils.change_content', c):
-            c.change = True
+    content_list = add_change_attr(request.user, Content.safe_objects.all()) #@UndefinedVariable
+    
+    # get list of projects owned by the current user
+    project_list = add_change_attr(request.user, Project.safe_objects.filter(owner=request.user)) #@UndefinedVariable
 
-    # get list of projects owned by the current user
-    project_list = Project.safe_objects.filter(owner=request.user) #@UndefinedVariable
-    
     is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1);
     
     # render list
@@ -75,7 +71,7 @@
     group_list = list(group_list.all())
     for group in group_list:
         if checker.has_perm('change_group', group):
-            group.can_change = True
+            group.change = True
 
     is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1);
     
@@ -176,6 +172,7 @@
     else :
         project_list = Project.safe_objects.filter(query) #@UndefinedVariable
     
+    project_list = add_change_attr(request.user, project_list)
     # Template depends on the projects's status
     if status == 2 :
         url_templ = "ldt/ldt_utils/partial/publishedprojectslist.html"
@@ -207,6 +204,27 @@
                               context_instance=RequestContext(request))
 
 
+@login_required
+def groups_filter(request, filter):
+    if filter and len(filter) > 0 and filter[0] == '_':
+        filter = filter[1:]
+
+    if filter:
+        group_list = request.user.groups.filter(title__icontains=filter) 
+    else:
+        group_list = request.user.groups.all()
+        
+    group_list = group_list.exclude(name=settings.PUBLIC_GROUP_NAME)
+    checker = ObjectPermissionChecker(request.user)
+    for g in group_list:
+        if checker.has_perm('change_group', g):
+            g.change = True
+        
+    return render_to_response("ldt/ldt_utils/partial/groupslist.html",
+                              {'groups': group_list},
+                              context_instance=RequestContext(request))
+    
+
 def search_form(request): 
     form = SearchForm()
     return render_to_response('ldt/ldt_utils/search_form.html', {'form': form} , context_instance=RequestContext(request))
@@ -415,12 +433,13 @@
 @login_required
 def create_ldt_view(request):
     permission_formset = formset_factory(PermissionForm, extra=0)
+    groups = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME)
     
     if request.method == "POST" :
         form = LdtAddForm(request.POST)
         form_status = "none"
         contents = Content.safe_objects.all()
-        groups = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME)
+
         group_form = permission_formset(request.POST)
         management_form = None
                 
@@ -430,14 +449,12 @@
             p = Project.create_project(title=form.cleaned_data['title'], user=user, contents=form.cleaned_data['contents'],
                                        description=form.cleaned_data['description'])
             
-            assign_project_to_groups(p, group_form.cleaned_data)          
-            
+            assign_project_to_groups(p, group_form.cleaned_data)
             form_status = "saved"
             contents = []
     else:
         form = LdtAddForm()
         contents = Content.safe_objects.all() #@UndefinedVariable
-        groups = request.user.groups.all()
         
         perm_list = [] 
         for group in groups:
@@ -798,13 +815,17 @@
 
 @login_required
 def create_project(request, iri_id): 
-
+    permission_formset = formset_factory(PermissionForm, extra=0)
     content = get_object_or_404(Content.safe_objects, iri_id=iri_id)
     contents = [ content, ]
     groups = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME)
     if request.method == "POST" :
+        
+        group_form = permission_formset(request.POST)
+        management_form = None
+        
         form = AddProjectForm(request.POST)
-        if form.is_valid():
+        if form.is_valid() and group_form.is_valid():
             user = request.user
             project = Project.create_project(title=form.cleaned_data['title'], user=user, contents=contents, description=form.cleaned_data['description'])
             # Modal window is not used with firefox
@@ -813,11 +834,19 @@
                 return HttpResponseRedirect(reverse('index_project_full', args=[project.ldt_id]))
             else:
                 return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id]))
+            assign_project_to_groups(project, group_form.cleaned_data)
     else:
         form = AddProjectForm()
+        perm_list = [] 
+        for group in groups:
+            perm_list.append({'share': False, 'perms': 'read', 'group': group.id })
+        permission = permission_formset(initial=perm_list)
+              
+        management_form = permission.management_form
+        group_form = zip(permission, groups)
     # Modal window is not used with firefox, so we ask to submit the form in _parent in firefox case.
     target_parent = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1);
-    return render_to_response('ldt/ldt_utils/create_ldt.html', {'form':form, 'contents':contents, 'groups' : groups, 'create_project_action':reverse("ldt.ldt_utils.views.create_project", args=[iri_id]), 'target_parent':target_parent}, context_instance=RequestContext(request))
+    return render_to_response('ldt/ldt_utils/create_ldt.html', {'form':form, 'contents':contents, 'groups' : groups, 'group_form': group_form, 'management_form': management_form, 'create_project_action':reverse("ldt.ldt_utils.views.create_project", args=[iri_id]), 'target_parent':target_parent}, context_instance=RequestContext(request))
 
 @login_required
 def update_project(request, ldt_id):
@@ -1222,8 +1251,9 @@
     # Get group, user and project_list
     grp = Group.objects.get(id=request.POST["id_group"])  #@UndefinedVariable
     everyone = Group.objects.get(name=settings.PUBLIC_GROUP_NAME)
-    project_list = get_objects_for_group(grp, 'ldt_utils.view_project') | get_objects_for_group(everyone, 'ldt_utils.view_project')
-
+    project_list = get_objects_for_group(grp, 'ldt_utils.view_project') | get_objects_for_group(everyone, 'ldt_utils.view_project').filter(owner__in=[grp])
+    project_list = add_change_attr(request.user, project_list)
+    
     is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1);
     
     # render list
Binary file src/ldt/ldt/locale/en/LC_MESSAGES/django.mo has changed
Binary file src/ldt/ldt/locale/fr/LC_MESSAGES/django.mo has changed
--- a/src/ldt/ldt/security/utils.py	Thu Nov 24 12:54:41 2011 +0100
+++ b/src/ldt/ldt/security/utils.py	Thu Nov 24 15:32:19 2011 +0100
@@ -1,6 +1,7 @@
 from django.conf import settings
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.auth.models import Group
+from guardian.core import ObjectPermissionChecker
 from guardian.shortcuts import assign, remove_perm
 
 try:
@@ -80,6 +81,26 @@
     
     return xml
 
+def add_change_attr(user, obj_list):
+    if len(obj_list) == 0:
+        return []
+    
+    model_name = obj_list[0].__class__.__name__.lower()
+    ctype = ContentType.objects.get(model=model_name)
+    cls = ctype.model_class()
+    
+    checker = ObjectPermissionChecker(user)
+    perm_name = "%s.change_%s" % (cls._meta.app_label, model_name)
+        
+    for obj in obj_list:
+        if checker.has_perm(perm_name, obj):
+            obj.change = True
+        else:
+            obj.change = False
+            
+    return obj_list
+        
+
 def assign_project_to_groups(project, permissions):
     for elem in permissions:
         group = Group.objects.get(id=elem['group'])
--- a/src/ldt/ldt/static/ldt/js/projectscontents.js	Thu Nov 24 12:54:41 2011 +0100
+++ b/src/ldt/ldt/static/ldt/js/projectscontents.js	Thu Nov 24 15:32:19 2011 +0100
@@ -59,7 +59,7 @@
     	}    	
     });
     
-    $('.projectinfos, .qtiplink').each( function () {
+    $('.infostooltip').each( function () {
         var desc = $(this).attr('data-desc');
         if (desc == 'None') {
             desc = '';
@@ -147,6 +147,7 @@
             var filterVal = "_" + escape(target.realVal());
             url = url.replace('__FILTER__',filterVal);
             url = url.replace('__ID_GROUP__',$('#id_group').val());
+            alert(url);
             $.ajax({
                 url: url,
                 cache: false,
@@ -233,7 +234,7 @@
     
 }
 
-function init_modal_window (class_name, windowW, windowH, frameW, frameH, base_node, searchprojectfilterurl) {
+function init_modal_window (class_name, windowW, windowH, frameW, frameH, base_node, searchprojectfilterurl, container) {
     $(class_name,base_node).each(function(i){
         $(this).attr("target","_iri");
     });
@@ -266,7 +267,7 @@
             },
             afterClose: function(nm) {
                 // Can't do that because searchprojectfilterurl is not defined in init_events_base params
-            	searchCallback($('#searchprojectsinput'), "#projectslistcontainer", searchprojectfilterurl, 0);
+            	searchCallback($('#searchprojectsinput'), container, searchprojectfilterurl, 0);
             }
         }
     });
@@ -281,10 +282,10 @@
 
 function init_events_base_projects(base_node, embed_url, searchprojectfilterurl, publishprojecturl, unpublishprojecturl) {
 
-    init_modal_window ('.ldt_link_open_ldt', 1035, 670, 1025, 660, base_node, searchprojectfilterurl);
-    init_modal_window ('.ldt_link_create_project', 950, 710, 940, 700, base_node, searchprojectfilterurl);
-    init_modal_window ('.ldt_link_copy_project', 500, 150, 500, 150, base_node, searchprojectfilterurl);
-    init_modal_window ('.create_group', 520, 530, 510, 520, base_node, null);
+    init_modal_window ('.ldt_link_open_ldt', 1035, 670, 1025, 660, base_node, searchprojectfilterurl, "#projectslistcontainer");
+    init_modal_window ('.ldt_link_create_project', 950, 1200, 940, 790, base_node, searchprojectfilterurl, "#projectslistcontainer");
+    init_modal_window ('.ldt_link_copy_project', 500, 150, 500, 150, base_node, searchprojectfilterurl, "#projectslistcontainer");
+    init_modal_window ('.create_group', 520, 530, 510, 520, base_node, 'http://localhost/pfgroup/ldtplatform/ldt/filtergroups/_', "#groupslistcontainer");
      
     $('.publishedproject', base_node).click(function(e) {
         e.preventDefault();
@@ -357,6 +358,13 @@
     
 }
 
+function init_events_group (base_node, groupfilter_url) {
+	
+	
+	
+	
+}
+
 function display_loading_icon (project) {
 	project.attr('src', LDT_MEDIA_PREFIX + "img/ajax-loader-transp.gif");
 }