--- a/.hgtags Tue Jun 25 10:46:21 2013 +0200
+++ b/.hgtags Tue Jun 25 10:46:42 2013 +0200
@@ -10,3 +10,6 @@
de72873a5ddb543fc851cd41342344ba9c396203 V00.01.05
62e1c79caec237e194aa842aee81613833c059c4 V00.01.06
e862bd9f92d316dfac53e7092b002e0c368bc721 V00.01.07
+cd94965a1a01544fbf543a4c92136f7e132d8748 V00.01.08
+dacce50303f556f66d53150ddc2275171643ab60 V00.01.09
+2b65085d0ed02e32a2eedf706fbaeacf472b871a V00.01.10
--- a/src/metadatacomposer/__init__.py Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/__init__.py Tue Jun 25 10:46:42 2013 +0200
@@ -1,4 +1,4 @@
-VERSION = (0, 1, 7, "final", 0)
+VERSION = (0, 1, 10, "final", 0)
def get_version():
--- a/src/metadatacomposer/static/metadatacomposer/css/style.css Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/static/metadatacomposer/css/style.css Tue Jun 25 10:46:42 2013 +0200
@@ -146,3 +146,4 @@
background: url(../img/loader.gif) center no-repeat;
background-size: 25px 25px;
}
+.user-login-logout{float:right; font-size:12px;}
--- a/src/metadatacomposer/static/metadatacomposer/css/styles_player.css Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/static/metadatacomposer/css/styles_player.css Tue Jun 25 10:46:42 2013 +0200
@@ -628,7 +628,7 @@
}
.timeline {
- background: #303030; height: 10px; position: relative; cursor: pointer;
+ background: #303030; height: 10px; position: relative; cursor: pointer; overflow: hidden;
}
.annotation-onscreen .timeline {
@@ -815,4 +815,12 @@
background: #B8155F; display: none;
}
+.media-duration, .media-position, .time-at-mouse {
+ text-align: right; color: #e0e0e0; line-height: 10px; font-size: 10px; position: absolute; right: 2px; top: 0;
+}
+
+.time-at-mouse {
+ color: #db8aaf; padding-right: 1px;
+}
+
/* */
--- a/src/metadatacomposer/static/metadatacomposer/js/player.js Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/static/metadatacomposer/js/player.js Tue Jun 25 10:46:42 2013 +0200
@@ -44,7 +44,9 @@
function showAtMousePos(evt) {
var pos = evt.pageX - $(".timeline").offset().left;
$(".mouse-progress-indicator").css("left", pos);
- return pos;
+ var t = new IriSP.Model.Time(pos * myMedia.duration / $(".timeline").width());
+ $(".time-at-mouse").text(t);
+ return t;
}
$(".timeline").mouseenter(function(e) {
@@ -54,7 +56,7 @@
$(".mouse-progress-indicator").hide();
}).mousemove(showAtMousePos)
.click(function(e) {
- myMedia.setCurrentTime( showAtMousePos(e) * myMedia.duration / $(".timeline").width());
+ myMedia.setCurrentTime( showAtMousePos(e) );
});
var tags = myProject.getTags().sortBy(function(t) {
@@ -522,8 +524,6 @@
case "html":
annotationDiv.find(".text-contents").html(text);
- //annotationDiv.find(".text-contents [style]").attr("style","");
-
var ps = annotationDiv.find(".text-contents>p"),
groups = [],
last, group;
@@ -659,10 +659,14 @@
$(window).resize(repositionElements);
$(document).keydown(function(e) {
- if (e.keyCode === 122) {
+ if (e.keyCode === 122) { // F11
fullScreen();
return false;
}
+ if (e.keyCode === 32) { // Space
+ myMedia[myMedia.paused ? "play" : "pause"]();
+ return false;
+ }
});
});
--- a/src/metadatacomposer/templates/metadatacomposer_home.html Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/templates/metadatacomposer_home.html Tue Jun 25 10:46:42 2013 +0200
@@ -37,6 +37,14 @@
<ul class="breadcrumb nav-bar">
<li><a href="{% url 'composer_project_list' branding=branding %}"><i class="icon-file"></i> Projets</a> <span class="divider">/</span></li>
<li><a href="{% url 'composer_resource_list' branding=branding %}"><i class="icon-folder-close-alt"></i>Ressources</a></li>
+ <li class="user-login-logout">
+ {% if user.is_authenticated %}
+ <a href="{% url 'composer_project_list' branding=branding %}">{{user.username}}</a>
+ | <a href="{% url 'ldt.user.views.logout_view' %}" title="{% trans "Log out" %}">{% trans "Log out" %}</a>
+ {% else %}
+ <a href="{% url 'auth_login' %}?next={% url 'composer_home' branding=branding %}">{% trans "Log in" %}</a>
+ {% endif %}
+ </li>
</ul>
</div>
</div>
--- a/src/metadatacomposer/templates/partial/metadatacomposer_partial_player.html Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/templates/partial/metadatacomposer_partial_player.html Tue Jun 25 10:46:42 2013 +0200
@@ -21,9 +21,14 @@
</div>
<div class="timelines">
<div class="timeline">
- <div class="elapsed"></div>
+ <div class="media-duration">00:00</div>
+ <div class="elapsed">
+ <div class="media-position">00:00</div>
+ </div>
<div class="progress-indicator"></div>
- <div class="mouse-progress-indicator"></div>
+ <div class="mouse-progress-indicator">
+ <div class="time-at-mouse">00:00</div>
+ </div>
</div>
<div class="chapters-bar">
<ul class="chapters-list"></ul>
--- a/src/metadatacomposer/templates/partial/resource_content_list.html Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/templates/partial/resource_content_list.html Tue Jun 25 10:46:42 2013 +0200
@@ -23,7 +23,7 @@
<td>
<ul>
{% for p in res.projects %}
- <li><a href="">{{ p.title }}</a></li>
+ <li><a href="{% url 'composer_preview_player' branding=branding ldt_id=p.ldt_id %}">{{ p.title }}</a></li>
{% endfor %}
</ul>
</td>
--- a/src/metadatacomposer/views.py Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/views.py Tue Jun 25 10:46:42 2013 +0200
@@ -51,7 +51,7 @@
def get(self, request, branding="iri", **kwargs):
self.branding = branding
- projects = Project.safe_objects.filter(owner=request.user).order_by('-modification_date')[:6]
+ projects = Project.safe_objects.filter(owner=request.user).exclude(title__startswith='front').order_by('-modification_date')[:6]
images = Image.objects.order_by('-modification_date')[:6]
contents = Content.safe_objects.order_by('-update_date')[:6]
@@ -75,7 +75,7 @@
self.branding = branding
page = request.GET.get("page") or 1
- projects = Project.safe_objects.prefetch_related("contents").order_by('-modification_date').filter(owner=request.user)
+ projects = Project.safe_objects.prefetch_related("contents").exclude(title__startswith='front').order_by('-modification_date').filter(owner=request.user)
nb = getattr(settings, 'METADATACOMPOSER_ELEMENTS_PER_PAGE', 9)
if page=="x":
nb = projects.count()
@@ -496,7 +496,6 @@
def get_template_names(self):
return "metadatacomposer_preview_player.html"
- @method_decorator(login_required)
@method_decorator(never_cache)
def dispatch(self, *args, **kwargs):
return super(MetadataComposerPreviewPlayer, self).dispatch(*args, **kwargs)
@@ -556,12 +555,12 @@
description='',
set_icon=False)
# Set project state to "published" and save
- project.state = 2
- project.save()
assign('view_project', u, project)
assign('change_project', u, project)
+ project.publish()
# Since the project is published by default, we assign permission for the everyone group
- assign('ldt_utils.view_project', Group.objects.get(name=settings.PUBLIC_GROUP_NAME), project)
+ #assign('ldt_utils.view_project', Group.objects.get(name=settings.PUBLIC_GROUP_NAME), project)
+ #assign('view_project', Group.objects.get(name=settings.PUBLIC_GROUP_NAME), project)
# Redirect to project edition in composer interface
return redirect('composer_edit', branding=branding, ldt_id=project.ldt_id)