--- 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");
}