# HG changeset patch # User wakimd # Date 1289843782 -3600 # Node ID 59311c28454fd04086ec901c5f5b7233cebf0b22 # Parent 3a30d255c23506c65d9268a69acc3d94e1802530 Correction on GET and POST data + some cleanup diff -r 3a30d255c235 -r 59311c28454f .pydevproject --- a/.pydevproject Sun Nov 14 20:25:22 2010 +0100 +++ b/.pydevproject Mon Nov 15 18:56:22 2010 +0100 @@ -1,7 +1,7 @@ - - - - -Leezam-venv -python 2.6 - + + + + +Python-venv-Leezam +python 2.6 + diff -r 3a30d255c235 -r 59311c28454f web/ldt/ldt_utils/admin.py --- a/web/ldt/ldt_utils/admin.py Sun Nov 14 20:25:22 2010 +0100 +++ b/web/ldt/ldt_utils/admin.py Mon Nov 15 18:56:22 2010 +0100 @@ -11,72 +11,72 @@ import lucene -admin.site.register(Project) - -class ContentAdmin(admin.ModelAdmin): - - def import_file(self, request): - if request.method =='POST': - form = LdtImportForm(request.POST, request.FILES) - if form.is_valid(): - filetoprocess =form.cleaned_data['importFile'] - flatten = form.cleaned_data['flatten'] - videoPath = form.cleaned_data['videoPath'] - # fi = None - fi = FileImport(filetoprocess, videoPath, flatten) - try: - fi.processFile() - args = {'message': "File imported"} - except FileImportError: - non_field_errors = form.non_field_errors() - non_field_errors.append("Error when importing : unknown file type") - form._errors["__all__"] = non_field_errors - args = {'message': "Can not import file, unknown file type", 'form': form} - - else: - non_field_errors = form.non_field_errors() - non_field_errors.append("Error when importing : invalid form") - form._errors["__all__"] = non_field_errors - args = {'message': "Error when importing : invalid form", 'form': form} - else: - form = LdtImportForm() - args = {'form': form, 'current_app': self.admin_site.name, 'current_action' : 'import_file'} - return render_to_response('admin/ldt_utils/content/upload_form.html', args, context_instance=RequestContext(request)) +admin.site.register(Annotation) - def reindex(self, request): - message = None - if request.method == "POST": - form = ReindexForm(request.POST) - if form.is_valid(): - # try: - writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED) - contentList = form.cleaned_data["contents"] - indexer = ContentIndexer(contentList,writer) - indexer.index_all() - - writer.close() - message = "Indexation ok : " + repr(form.cleaned_data["contents"]) - form = ReindexForm() - # except Exception, inst: - # non_field_errors = form.non_field_errors() - # non_field_errors.append("Error when reindexing : " + cgi.escape(repr(inst))) - # form._errors["__all__"] = non_field_errors - #message = "ERROR : " + repr(non_field_errors) - else: - form = ReindexForm() - - return render_to_response('admin/ldt_utils/content/reindex_form.html', {'form': form, 'message':message, 'current_app': self.admin_site.name, 'current_action' : 'reindex' }, context_instance=RequestContext(request)) - - def get_urls(self): - urls = super(ContentAdmin, self).get_urls() - content_urls = patterns('', - url(r'^reindex/$', self.admin_site.admin_view(self.reindex), name="ldt_content_reindex"), - # (r'^admin/ldt/content/import/upload/$', 'ldt.ldt_utils.views.uploadFile'), - url(r'^import/$', self.admin_site.admin_view(self.import_file), name="ldt_content_import_file") - ) - return content_urls + urls - - -admin.site.register(Content, ContentAdmin) -admin.site.register(Media) -admin.site.register(Author) +#class ContentAdmin(admin.ModelAdmin): +# +# def import_file(self, request): +# if request.method =='POST': +# form = LdtImportForm(request.POST, request.FILES) +# if form.is_valid(): +# filetoprocess =form.cleaned_data['importFile'] +# flatten = form.cleaned_data['flatten'] +# videoPath = form.cleaned_data['videoPath'] +# # fi = None +# fi = FileImport(filetoprocess, videoPath, flatten) +# try: +# fi.processFile() +# args = {'message': "File imported"} +# except FileImportError: +# non_field_errors = form.non_field_errors() +# non_field_errors.append("Error when importing : unknown file type") +# form._errors["__all__"] = non_field_errors +# args = {'message': "Can not import file, unknown file type", 'form': form} +# +# else: +# non_field_errors = form.non_field_errors() +# non_field_errors.append("Error when importing : invalid form") +# form._errors["__all__"] = non_field_errors +# args = {'message': "Error when importing : invalid form", 'form': form} +# else: +# form = LdtImportForm() +# args = {'form': form, 'current_app': self.admin_site.name, 'current_action' : 'import_file'} +# return render_to_response('admin/ldt_utils/content/upload_form.html', args, context_instance=RequestContext(request)) +# +# def reindex(self, request): +# message = None +# if request.method == "POST": +# form = ReindexForm(request.POST) +# if form.is_valid(): +# # try: +# writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED) +# contentList = form.cleaned_data["contents"] +# indexer = ContentIndexer(contentList,writer) +# indexer.index_all() +# +# writer.close() +# message = "Indexation ok : " + repr(form.cleaned_data["contents"]) +# form = ReindexForm() +# # except Exception, inst: +# # non_field_errors = form.non_field_errors() +# # non_field_errors.append("Error when reindexing : " + cgi.escape(repr(inst))) +# # form._errors["__all__"] = non_field_errors +# #message = "ERROR : " + repr(non_field_errors) +# else: +# form = ReindexForm() +# +# return render_to_response('admin/ldt_utils/content/reindex_form.html', {'form': form, 'message':message, 'current_app': self.admin_site.name, 'current_action' : 'reindex' }, context_instance=RequestContext(request)) +# +# def get_urls(self): +# urls = super(ContentAdmin, self).get_urls() +# content_urls = patterns('', +# url(r'^reindex/$', self.admin_site.admin_view(self.reindex), name="ldt_content_reindex"), +# # (r'^admin/ldt/content/import/upload/$', 'ldt.ldt_utils.views.uploadFile'), +# url(r'^import/$', self.admin_site.admin_view(self.import_file), name="ldt_content_import_file") +# ) +# return content_urls + urls +# +# +#admin.site.register(Content, ContentAdmin) +#admin.site.register(Media) +#admin.site.register(Author) diff -r 3a30d255c235 -r 59311c28454f web/ldt/ldt_utils/contentindexer.py --- a/web/ldt/ldt_utils/contentindexer.py Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,231 +0,0 @@ -import tempfile -import os -import os.path -import shutil -from ldt.utils import zipfileext -import urllib -# import ldt.utils.log -import ldt.utils.xml -from django.conf import settings -from models import Content -import fnmatch -import uuid -import shutil -import lucene -from ldt.ldt_utils import STORE -from ldt.ldt_utils import ANALYZER -import lxml.etree - -def Property(func): - return property(**func()) - - -class ContentIndexer(object): - - def __init__(self, contentList, writer, decoupage_blackList = settings.DECOUPAGE_BLACKLIST): - self.__contentList = contentList - self.__decoupage_blacklist = decoupage_blackList - self.__writer = writer - - @Property - def decoupage_blacklist(): #@NoSelf - doc = """get blacklist""" #@UnusedVariable - - def fget(self): - if self.__decoupage_blacklist is None: - self.__decoupage_blacklist = () - return self.__decoupage_blacklist - - def fset(self, value): - self.__decoupage_blacklist = value - - def fdel(self): - del self.__decoupage_blacklist - - return locals() - - def index_all(self): - for content in self.__contentList: - self.index_content(content) - - def index_content(self, content): - url =content.iri_url() - filepath = urllib.urlopen(url) - doc = lxml.etree.fromstring(filepath) - - self.__writer.deleteDocuments(lucene.Term("iri_id", content.iri_id)) - - res = doc.xpath("/iri/body/ensembles/ensemble") - - for ensemble in res: - ensembleId = ensemble.get(None,u"id") - - for decoupageNode in ensemble.getchildren(): - if decoupageNode.tag != "decoupage" or decoupageNode.get(None,u"id") in self.decoupage_blacklist: - - continue - - decoupId = decoupageNode.get(None,u"id") - res = decoupageNode.xpath("elements/element") - for elementNode in res: - doc = lucene.Document() - elementId = elementNode.get(None,u"id") - tags = elementNode.get(None,u"tags") - - if tags is not None: - tags.replace(",", ";") - - if tags is None or len(tags) == 0: - tags = "" - restagnode = elementNode.xpath("tag/text()") - for tagnode in restagnode: - tags = tags + " ; " + tagnode.text() - - if tags is None or len(tags) == 0: - tags = "" - restagnode = elementNode.xpath("tags/tag/text()") - - for tagnode in restagnode: - tags = tags + " ; " + tagnode.text() - - title = "" - for txtRes in elementNode.xpath("title/text()"): - title = title + txtRes.text() - - abstract = "" - for txtRes in elementNode.xpath("abstract/text()"): - abstract = abstract + txtRes.text() - - doc.add(lucene.Field("iri_id", content.iri_id, lucene.Field.Store.YES, lucene.Field.Index.NOT_ANALYZED)) - doc.add(lucene.Field("ensemble_id", ensembleId, lucene.Field.Store.YES, lucene.Field.Index.NO)) - doc.add(lucene.Field("decoupage_id", decoupId, lucene.Field.Store.YES, lucene.Field.Index.NO)) - doc.add(lucene.Field("element_id", elementId, lucene.Field.Store.YES, lucene.Field.Index.NO)) - doc.add(lucene.Field("tags", tags, lucene.Field.Store.NO, lucene.Field.Index.ANALYZED)) - doc.add(lucene.Field("title", title, lucene.Field.Store.NO, lucene.Field.Index.ANALYZED)) - doc.add(lucene.Field("abstract", abstract, lucene.Field.Store.NO, lucene.Field.Index.ANALYZED)) - doc.add(lucene.Field("all", " ".join([tags, title, abstract]), lucene.Field.Store.NO, lucene.Field.Index.ANALYZED)) - - seg = Segment(content=content, - iri_id=content.iri_id, - ensemble_id=ensembleId, - cutting_id=decoupId, - element_id=elementId, - tags=tags, - title=title, - abstract=abstract, - duration=duration, - author=author, - start_ts=start_ts, - date=date_str) - seg.save() - - - self.__writer.addDocument(doc) - - self.__writer.commit() - - -class ProjectIndexer(object): - - def __init__(self, projectList, writer, decoupage_blackList = settings.DECOUPAGE_BLACKLIST): - self.__projectList = projectList - self.__decoupage_blacklist = decoupage_blackList - self.__writer = writer - - @Property - def decoupage_blacklist(): #@NoSelf - doc = """get blacklist""" #@UnusedVariable - - def fget(self): - if self.__decoupage_blacklist is None: - self.__decoupage_blacklist = () - return self.__decoupage_blacklist - - def fset(self, value): - self.__decoupage_blacklist = value - - def fdel(self): - del self.__decoupage_blacklist - - return locals() - - def index_all(self): - for project in self.__projectList: - self.index_project(project) - - def index_project(self, project): - - # pocketfilms.utils.log.debug("Indexing project : "+str(project.iri_id)) - doc = lxml.etree.fromstring(project.ldt) - - self.__writer.deleteDocuments(lucene.Term("iri_id", project.iri_id)) - - res = doc.xpath("/iri/annotations/content") - - for content in res: - contentId = content.get(None,u"id") - - ensembleId = "ens_perso" - - for decoupageNode in content.getchildren(): - # pocketfilms.utils.log.debug("Indexing content decoupage : "+ repr(decoupageNode.nodeType) + " in " + repr(self.decoupage_blacklist)) - if decoupageNode.tag != "decoupage" or decoupageNode.get(None,"id") in self.decoupage_blacklist: - continue - - decoupId = decoupageNode.get(None,u"id") - res = decoupageNode.xpath("elements/element") - for elementNode in res: - doc = lucene.Document() - elementId = elementNode.get(None,u"id") - tags = elementNode.get(None,u"tags") - - if tags is not None: - tags.replace(",", ";") - - if tags is None or len(tags) == 0: - tags = "" - restagnode = elementNode.xpath("tag/text()") - for tagnode in restagnode: - tags = tags + " ; " + tagnode.text() - - if tags is None or len(tags) == 0: - tags = "" - restagnode = elementNode.xpath("tags/tag/text()") - for tagnode in restagnode: - tags = tags + " ; " + tagnode.text() - - title = "" - for txtRes in elementNode.xpath("title/text()"): - title = title + txtRes.text() - - abstract = "" - for txtRes in elementNode.xpath("abstract/text()"): - abstract = abstract + txtRes.text() - - doc.add(lucene.Field("project_id", project.iri_id, lucene.Field.Store.YES, lucene.Field.Index.NOT_ANALYZED)) - doc.add(lucene.Field("iri_id", contentId, lucene.Field.Store.YES, lucene.Field.Index.NOT_ANALYZED)) - doc.add(lucene.Field("ensemble_id", ensembleId, lucene.Field.Store.YES, lucene.Field.Index.NO)) - doc.add(lucene.Field("decoupage_id", decoupId, lucene.Field.Store.YES, lucene.Field.Index.NO)) - doc.add(lucene.Field("element_id", elementId, lucene.Field.Store.YES, lucene.Field.Index.NO)) - doc.add(lucene.Field("tags", tags, lucene.Field.Store.NO, lucene.Field.Index.ANALYZED)) - doc.add(lucene.Field("title", title, lucene.Field.Store.NO, lucene.Field.Index.ANALYZED)) - doc.add(lucene.Field("abstract", abstract, lucene.Field.Store.NO, lucene.Field.Index.ANALYZED)) - doc.add(lucene.Field("all", " ".join([tags, title, abstract]), lucene.Field.Store.NO, lucene.Field.Index.ANALYZED)) - - seg = Segment(content=content, - iri_id=content.iri_id, - ensemble_id=ensembleId, - cutting_id=decoupId, - element_id=elementId, - tags=tags, - title=title, - abstract=abstract, - duration=duration, - author=author, - start_ts=start_ts, - date=date_str) - seg.save() - - self.__writer.addDocument(doc) - - self.__writer.commit() diff -r 3a30d255c235 -r 59311c28454f web/ldt/ldt_utils/fileimport.py --- a/web/ldt/ldt_utils/fileimport.py Sun Nov 14 20:25:22 2010 +0100 +++ b/web/ldt/ldt_utils/fileimport.py Mon Nov 15 18:56:22 2010 +0100 @@ -2,7 +2,7 @@ from django.conf import settings from django.core.exceptions import ObjectDoesNotExist from ldt.utils import zipfileext -from models import Content, Media +from models import Annotation import fnmatch import lxml.etree import os.path diff -r 3a30d255c235 -r 59311c28454f web/ldt/ldt_utils/forms.py --- a/web/ldt/ldt_utils/forms.py Sun Nov 14 20:25:22 2010 +0100 +++ b/web/ldt/ldt_utils/forms.py Mon Nov 15 18:56:22 2010 +0100 @@ -1,5 +1,6 @@ from django import forms -from models import Project, Content, Media +#from models import Project, Content, Media +from models import Annotation import uuid from utils import generate_uuid from django.forms.widgets import Widget, RadioSelect @@ -9,78 +10,78 @@ from ldt.forms import widgets as ldt_widgets from django.utils.translation import ugettext_lazy as _ -class LdtImportForm(forms.Form): - importFile = forms.FileField() - videoPath = forms.CharField(required=False) - flatten = forms.BooleanField(required=False, initial=True) - -class LdtAddForm(forms.ModelForm): - title = forms.CharField() - # contents = forms.ModelMultipleChoiceField(Content.objects.all()) - # owner = forms.ModelChoiceField(Author.objects.all()) - class Meta: - model = Project - exclude = ("ldt_id", "ldt", "created_by", "changed_by", "creation_date", "modification_date", "state", "owner") - -class ReindexForm(forms.Form): - contents = forms.ModelMultipleChoiceField(Content.objects.all()) - -class SearchForm(forms.Form): - search = forms.CharField() - field = forms.ChoiceField([(u"all", u"all"), (u"title", u"title"), (u"abstract", u"resume"), (u"tags", u"tags")]) - -class AddProjectForm (forms.Form): - title = forms.CharField(widget=forms.TextInput(attrs={'class':'inputbox required'})) - -class CopyProjectForm (forms.Form): - title = forms.CharField() - - -class ContentForm(forms.ModelForm): - - #iri_id = forms.CharField(max_length=1024, widget=forms.HiddenInput, initial=generate_uuid) - iriurl = forms.CharField(max_length=1024, widget=forms.HiddenInput, required=False) - content_creation_date = forms.SplitDateTimeField(widget=ldt_widgets.LdtSplitDateTime, required=False, label=_("content.content_creation_date")) - media_input_type = forms.ChoiceField(required=False, label=_("content.media_input_type"), choices=(("upload",_("file_upload")),("url",_("url")),("link",_("existing_media")),("create",_("create_media")),("none",_("none_media")) )) - - def clean_iri_id(self): - data = self.cleaned_data.get('iri_id') - if not data: - data = generate_uuid() - return data - - def clean(self): - cleaned_data = self.cleaned_data - iriurl_data = cleaned_data.get('iriurl') - iri_id_data = cleaned_data['iri_id'] - if not iriurl_data: - iriurl_data = "%s/%s.iri" % (iri_id_data, iri_id_data) - cleaned_data['iriurl'] = iriurl_data - return cleaned_data - - class Meta: - model = Content - exclude = ("creation_date", "update_date", "authors") - widgets = { - 'iri_id': forms.HiddenInput, - } - - class Media: - css = { - 'all' : ('admin/css/forms.css','admin/css/base.css', 'admin/css/widgets.css') - } - -class MediaForm(forms.ModelForm): - - media_creation_date = forms.SplitDateTimeField(widget=ldt_widgets.LdtSplitDateTime, required=False) - media_file = forms.FileField(required=False); - src = forms.CharField(required=False, max_length=1024) - - class Meta: - model = Media - exclude = ("creation_date", "update_date", "creator") - - class Media: - css = { - 'all' : ('admin/css/forms.css','admin/css/base.css', 'admin/css/widgets.css') - } +#class LdtImportForm(forms.Form): +# importFile = forms.FileField() +# videoPath = forms.CharField(required=False) +# flatten = forms.BooleanField(required=False, initial=True) +# +#class LdtAddForm(forms.ModelForm): +# title = forms.CharField() +# contents = forms.ModelMultipleChoiceField(Content.objects.all()) +# owner = forms.ModelChoiceField(Author.objects.all()) +# class Meta: +# model = Annotation +# exclude = ("ldt_id", "ldt", "created_by", "changed_by", "creation_date", "modification_date", "state", "owner") +# +#class ReindexForm(forms.Form): +# contents = forms.ModelMultipleChoiceField(Content.objects.all()) +# +#class SearchForm(forms.Form): +# search = forms.CharField() +# field = forms.ChoiceField([(u"all", u"all"), (u"title", u"title"), (u"abstract", u"resume"), (u"tags", u"tags")]) +# +#class AddProjectForm (forms.Form): +# title = forms.CharField(widget=forms.TextInput(attrs={'class':'inputbox required'})) +# +#class CopyProjectForm (forms.Form): +# title = forms.CharField() +# +# +#class ContentForm(forms.ModelForm): +# +# #iri_id = forms.CharField(max_length=1024, widget=forms.HiddenInput, initial=generate_uuid) +# iriurl = forms.CharField(max_length=1024, widget=forms.HiddenInput, required=False) +# content_creation_date = forms.SplitDateTimeField(widget=ldt_widgets.LdtSplitDateTime, required=False, label=_("content.content_creation_date")) +# media_input_type = forms.ChoiceField(required=False, label=_("content.media_input_type"), choices=(("upload",_("file_upload")),("url",_("url")),("link",_("existing_media")),("create",_("create_media")),("none",_("none_media")) )) +# +# def clean_iri_id(self): +# data = self.cleaned_data.get('iri_id') +# if not data: +# data = generate_uuid() +# return data +# +# def clean(self): +# cleaned_data = self.cleaned_data +# iriurl_data = cleaned_data.get('iriurl') +# iri_id_data = cleaned_data['iri_id'] +# if not iriurl_data: +# iriurl_data = "%s/%s.iri" % (iri_id_data, iri_id_data) +# cleaned_data['iriurl'] = iriurl_data +# return cleaned_data +# +# class Meta: +# model = Content +# exclude = ("creation_date", "update_date", "authors") +# widgets = { +# 'iri_id': forms.HiddenInput, +# } +# +# class Media: +# css = { +# 'all' : ('admin/css/forms.css','admin/css/base.css', 'admin/css/widgets.css') +# } +# +#class MediaForm(forms.ModelForm): +# +# media_creation_date = forms.SplitDateTimeField(widget=ldt_widgets.LdtSplitDateTime, required=False) +# media_file = forms.FileField(required=False); +# src = forms.CharField(required=False, max_length=1024) +# +# class Meta: +# model = Media +# exclude = ("creation_date", "update_date", "creator") +# +# class Media: +# css = { +# 'all' : ('admin/css/forms.css','admin/css/base.css', 'admin/css/widgets.css') +# } diff -r 3a30d255c235 -r 59311c28454f web/ldt/ldt_utils/projectindexer.py --- a/web/ldt/ldt_utils/projectindexer.py Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -import tempfile -import os -import os.path -import shutil -import ldt.utils.xml -from ldt import settings -import lucene -from ldt.ldt_utils import STORE -from ldt.ldt_utils import ANALYZER -import lxml.etree - -def Property(func): - return property(**func()) - -class ProjectIndexer(object): - def __init__(self, projectList, writer, decoupage_blackList = settings.DECOUPAGE_BLACKLIST): - self.__projectList = projectList - self.__decoupage_blacklist = decoupage_blackList - self.__writer = writer - - @Property - def decoupage_blacklist(): #@NoSelf - doc = """get blacklist""" #@UnusedVariable - - def fget(self): - if self.__decoupage_blacklist is None: - self.__decoupage_blacklist = () - return self.__decoupage_blacklist - - def fset(self, value): - self.__decoupage_blacklist = value - - def fdel(self): - del self.__decoupage_blacklist - - return locals() - - def index_all(self): - for project in self.__projectList: - self.index_project(project) - - def index_project(self, project): - # ldt.utils.log.debug("Indexing project : "+str(project.ldt_id)) - - ldt=project.ldt - doc = lxml.etree.fromstring(ldt.encode( "utf-8" )) - - self.__writer.deleteDocuments(lucene.Term("ldt_id", project.ldt_id)) - - res = doc.xpath("/iri/annotations/content") - project.ldt.encode( "utf-8 " ) - - for content in res: - contentId = content.get("id") - - res =content.xpath("ensemble") - for ensemble in res: - ensembleId = ensemble.get("id") - - for decoupageNode in ensemble.getchildren(): - # ldt.utils.log.debug("Indexing project decoupage : "+ repr(decoupageNode.nodeType) + " in " + repr(self.decoupage_blacklist)) - if decoupageNode.tag != "decoupage" or decoupageNode.get("id") in self.decoupage_blacklist: - continue - - decoupId = decoupageNode.get("id") - res = decoupageNode.xpath("elements/element") - - for elementNode in res: - doc = lucene.Document() - elementId = elementNode.get("id") - tags = elementNode.get("tags") - - if tags is not None: - tags.replace(",", ";") - - if tags is None or len(tags) == 0: - tags = "" - restagnode = elementNode.xpath("tag/text()") - for tagnode in restagnode: - tags = tags + " ; " + tagnode.text() - - if tags is None or len(tags) == 0: - tags = "" - restagnode = elementNode.xpath("tags/tag/text()") - for tagnode in restagnode: - tags = tags + " ; " + tagnode.text() - - title = "" - for txtRes in elementNode.xpath("title/text()"): - title = title + txtRes.text() - - abstract = "" - for txtRes in elementNode.xpath("abstract/text()"): - abstract = abstract + txtRes.text() - - doc.add(lucene.Field("ldt_id", project.ldt_id, lucene.Field.Store.YES, lucene.Field.Index.NOT_ANALYZED)) - doc.add(lucene.Field("iri_id", contentId, lucene.Field.Store.YES, lucene.Field.Index.NOT_ANALYZED)) - doc.add(lucene.Field("ensemble_id", ensembleId, lucene.Field.Store.YES, lucene.Field.Index.NO)) - doc.add(lucene.Field("decoupage_id", decoupId, lucene.Field.Store.YES, lucene.Field.Index.NO)) - doc.add(lucene.Field("element_id", elementId, lucene.Field.Store.YES, lucene.Field.Index.NO)) - doc.add(lucene.Field("tags", tags, lucene.Field.Store.NO, lucene.Field.Index.ANALYZED)) - doc.add(lucene.Field("title", title, lucene.Field.Store.NO, lucene.Field.Index.ANALYZED)) - doc.add(lucene.Field("abstract", abstract, lucene.Field.Store.NO, lucene.Field.Index.ANALYZED)) - doc.add(lucene.Field("all", " ".join([tags, title, abstract]), lucene.Field.Store.NO, lucene.Field.Index.ANALYZED)) - - self.__writer.addDocument(doc) - - self.__writer.commit() diff -r 3a30d255c235 -r 59311c28454f web/ldt/ldt_utils/projectserializer.py --- a/web/ldt/ldt_utils/projectserializer.py Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,426 +0,0 @@ -from datetime import datetime -from django.utils.datastructures import SortedDict -from ldt.ldt_utils.models import Content, Project -import logging -import lxml.etree -import uuid - -DATE_FORMATS = ["%d/%m/%Y","%Y-%m-%d"] - -""" -Serialize a project object to a cinelab compatible array -""" -class ProjectSerializer: - - def __init__(self, project, from_contents=True, from_display=True): - self.project = project - self.parsed = False - self.ldt_doc = None - self.medias_dict = SortedDict() - self.annotations_dict = SortedDict() - self.annotations_by_annotation_types = {} - self.tags = {} - self.tags_dict = SortedDict() - self.annotation_types_dict = SortedDict() - self.views_dict = SortedDict() - self.lists_dict = SortedDict() - self.serialize_contents = from_contents - self.from_display = from_display - self.display_contents_list = [] - self.display_cuttings_list = [] - self.display_ensemble_list = [] - - - def __parse_views(self, display_node_list): - for display_node in display_node_list: - display_id = display_node.get(u"id", None) - if not display_id: - continue - content_list = [] - cuttings_list = [] - new_display = { - "id": display_id, - "contents": content_list, - "annotation_types": cuttings_list, - } - - for content_node in display_node.xpath("content"): - content_id = content_node.get("id") - if content_id not in content_list: - content_list.append(content_id) - if content_id not in self.display_contents_list: - self.display_contents_list.append(content_id) - for cutting_node in content_node.xpath("decoupage"): - cutting_id = cutting_node.get("id") - if cutting_id not in cuttings_list: - cuttings_list.append(cutting_id) - if cutting_id not in self.display_cuttings_list: - self.display_cuttings_list.append(cutting_id) - ensemble_id = cutting_node.get("idens") - if ensemble_id not in self.display_ensemble_list: - self.display_ensemble_list.append(ensemble_id) - self.views_dict[display_id] = new_display - - - - def __parse_ensemble(self, ensemble_node, content): - - ensemble_id = ensemble_node.attrib[u"id"] - ensemble_author = ensemble_node.attrib[u"author"] - ensemble_title = ensemble_node.attrib[u"title"] - ensemble_description = ensemble_node.attrib[u"abstract"] - ensemble_created = datetime.utcnow().isoformat() - ensemble_modified = ensemble_created - - list_items = [] - new_list = { - "id" : ensemble_id, - "items" : list_items, - "meta" : { - "dc:creator":ensemble_author, - "dc:created": ensemble_created, - "dc:contributor":"undefined", - "dc:modified": ensemble_modified, - "dc:title":ensemble_title, - "dc:description": ensemble_description, - "id-ref":content.iri_id, - "editable":"false" - } - } - - - for decoupage_node in ensemble_node: - if decoupage_node.tag != "decoupage" : - continue - - decoupage_id = decoupage_node.attrib[ u"id"] - if self.from_display and decoupage_id not in self.display_cuttings_list: - continue - decoupage_creator = decoupage_node.attrib[u"author"] - if not decoupage_creator: - decoupage_creator = "IRI" - decoupage_contributor = decoupage_creator - date_str = decoupage_node.get(u"date") - decoupage_created = None - if date_str : - for date_format in DATE_FORMATS: - try: - decoupage_created = datetime.strptime(date_str,date_format).isoformat() - break - except Exception: - decoupage_created = None - if decoupage_created is None: - decoupage_created = datetime.utcnow().isoformat() - decoupage_modified = decoupage_created - - decoupage_title = "" - for txtRes in decoupage_node.xpath("title/text()", smart_strings=False): - decoupage_title += txtRes - - decoupage_description = "" - for txtRes in decoupage_node.xpath("abstract/text()", smart_strings=False): - decoupage_description += txtRes - - - list_items.append({"id-ref":decoupage_id}) - - new_annotation_types = { - "id":decoupage_id, - "dc:creator":decoupage_creator, - "dc:created":decoupage_created, - "dc:contributor":decoupage_contributor, - "dc:modified":decoupage_modified, - "dc:title":decoupage_title, - "dc:description":decoupage_description - } - - self.annotation_types_dict[decoupage_id] = new_annotation_types - self.annotations_by_annotation_types[decoupage_id] = [] - - res = decoupage_node.xpath("elements/element") - for element_node in res: - - element_id = element_node.attrib[u"id"] - element_begin = element_node.attrib[u"begin"] - element_duration = element_node.attrib[u"dur"] - element_media = content.iri_id - element_color = element_node.attrib[u"color"] - - element_title = "" - for txtRes in element_node.xpath("title/text()", smart_strings=False): - element_title += txtRes - - element_description = "" - for txtRes in element_node.xpath("abstract/text()", smart_strings=False): - element_description += txtRes - - element_audio_src = "" - element_audio_href = "" - res = element_node.xpath("audio") - if len(res) > 0: - element_audio_src = res[0].get(u"source",u"") - element_audio_href = res[0].text - - element_tags = [] - - tags = element_node.get(u"tags",u"") - - tags_list = map(lambda s:s.strip(),tags.split(",")) - - #tags - if tags is None or len(tags) == 0: - tags_list = [] - restagnode = element_node.xpath("tag/text()", smart_strings=False) - for tagnode in restagnode: - tags_list.append(tagnode) - - if tags_list is None or len(tags_list) == 0: - tags_list = [] - restagnode = element_node.xpath("tags/tag/text()", smart_strings=False) - for tagnode in restagnode: - tags_list.append(tagnode) - - tag_date = datetime.utcnow().isoformat() - for tag_title in tags_list: - if tag_title not in self.tags: - tag_id = unicode(uuid.uuid1()) - new_tag = { - "id":tag_id, - "meta" : { - "dc:creator":"IRI", - "dc:created": tag_date, - "dc:contributor":"IRI", - "dc:modified": tag_date, - "dc:title":tag_title - } - } - self.tags[tag_title] = new_tag - self.tags_dict[tag_id] = new_tag - element_tags.append({"id-ref":tag_id}) - - if not element_tags: - element_tags = None - - new_annotation = { - "begin": element_begin, - "end": int(element_begin) + int(element_duration), - "id": element_id, - "media": element_media, - "content": { - "mimetype": "application/x-ldt-structured", - "title": element_title, - "description": element_description, - "color": element_color, - "audio": { - "src" : element_audio_src, - "mimetype": "audio/mp3", - "href": element_audio_href - }, - }, - "tags": element_tags, - "meta": { - "id-ref": decoupage_id, - "dc:creator": decoupage_creator, - "dc:contributor": decoupage_contributor, - "dc:created": decoupage_created, - "dc:modified": decoupage_modified - } - } - - self.annotations_dict[element_id] = new_annotation - self.annotations_by_annotation_types[decoupage_id].append(new_annotation) - - if not list_items: - new_list["items"] = None - self.lists_dict[ensemble_id] = new_list - - - def __parse_ldt(self): - - self.ldt_doc = lxml.etree.fromstring(self.project.ldt.encode("utf-8")) - - if self.from_display: - xpath_str = "/iri/displays/display[position()=1]" - if isinstance(self.from_display, basestring): - xpath_str = "/iri/displays/display[@id='%s']" % self.from_display - - self.__parse_views(self.ldt_doc.xpath(xpath_str)) - - res = self.ldt_doc.xpath("/iri/medias/media") - for mediaNode in res: - iri_id = mediaNode.attrib[u"id"] - if self.from_display and iri_id not in self.display_contents_list: - continue - content = Content.objects.get(iri_id=iri_id) - self.__parse_content(content) - - res = self.ldt_doc.xpath("/iri/annotations/content") - for content_node in res: - content_id = content_node.attrib[u"id"] - if self.from_display and content_id not in self.display_contents_list: - continue - content = Content.objects.get(iri_id=content_id) - for ensemble_node in content_node: - if ensemble_node.tag != "ensemble" : - continue - ensemble_id = ensemble_node.get("id") - if self.from_display and ensemble_id not in self.display_ensemble_list: - continue - self.__parse_ensemble(ensemble_node, content) - - #reorder annotations and annotation type from view - if self.from_display and len(self.views_dict) > 0: - new_annotation_types_dict = SortedDict() - new_annotations_dict = SortedDict() - for annotation_type in self.display_cuttings_list: - if annotation_type in self.annotation_types_dict: - new_annotation_types_dict[annotation_type] = self.annotation_types_dict[annotation_type] - for annot in self.annotations_by_annotation_types[annotation_type]: - new_annotations_dict[annot['id']] = annot - - self.annotations_dict = new_annotations_dict - self.annotation_types_dict = new_annotation_types_dict - - self.parsed = True - - def __parse_content(self, content): - - doc = lxml.etree.parse(content.iri_file_path()) - - authors = content.authors.all() - - if len(authors) > 0 : - author = authors[0].handle - else : - author = "IRI" - - if len(authors) > 1 : - contributor = authors[1].handle - else : - contributor = author - - content_author = "" - - res = doc.xpath("/iri/head/meta[@name='author']/@content") - if len(res) > 0: - content_author = res[0] - - - content_date = "" - - res = doc.xpath("/iri/head/meta[@name='date']/@content") - if len(res) > 0: - content_date = res[0] - - href = "" - meta_item_value = "" - if content.videopath: - href = content.videopath.rstrip('/') + "/" + content.src - meta_item_value = content.videopath.rstrip('/') + "/" - - new_media = { - "http://advene.liris.cnrs.fr/ns/frame_of_reference/ms" : "o=0", - "id" : content.iri_id, - "href" : href, - "unit" : "ms", - "origin" : "0", - "meta": { - "dc:creator" : author, - "dc:created" : content.creation_date.isoformat(), - "dc:contributor" : contributor, - "dc:modified" : content.update_date.isoformat(), - "dc:creator.contents" : content_author, - "dc:created.contents" : content_date, - "dc:title" : content.title, - "dc:description" : content.description, - "dc:duration" : content.get_duration(), - "item": { - "name" : "streamer", - "value": meta_item_value, - }, - } - } - - self.medias_dict[content.iri_id] = new_media - - if self.serialize_contents: - res = doc.xpath("/iri/body/ensembles/ensemble") - for ensemble_node in res: - self.__parse_ensemble(ensemble_node, content) - - - def serialize_to_cinelab(self): - - res = {} - - if not self.parsed: - self.__parse_ldt() - - - project_main_media = "" - if len(self.medias_dict) > 0: - project_main_media = self.medias_dict.value_for_index(0)["id"] - - res['meta'] = { - 'id': self.project.ldt_id, - 'dc:created':self.project.creation_date.isoformat(), - 'dc:modified':self.project.modification_date.isoformat(), - 'dc:contributor':self.project.changed_by, - 'dc:creator':self.project.created_by, - 'dc:title':self.project.title, - 'dc:description':self.project.get_description(self.ldt_doc), # get from doc, parse ldt - 'main_media': {"id-ref":project_main_media} - } - - - res['medias'] = self.medias_dict.values() if len(self.medias_dict) > 0 else None - res['lists'] = self.lists_dict.values() if len(self.lists_dict) > 0 else None - res['tags'] = self.tags.values() if len(self.tags) > 0 else None - res['views'] = self.views_dict.values() if len(self.views_dict) > 0 else None - - res['annotation-types'] = self.annotation_types_dict.values() if len(self.annotation_types_dict) > 0 else None - res['annotations'] = self.annotations_dict.values() if len(self.annotations_dict) > 0 else None - - - - return res - - def getAnnotations(self, first_cutting=True): - - if not self.parsed: - self.__parse_ldt() - - annotations = [] - - current_cutting = None - uri = None - for annot in self.annotations_dict.values(): - logging.debug("current cutting" + repr(current_cutting) + " : annot " + annot['meta']['id-ref']) - if first_cutting and current_cutting and current_cutting != annot['meta']['id-ref'] : - break - current_cutting = annot['meta']['id-ref'] - content_id = annot['media'] - content = Content.objects.get(iri_id=content_id) - if annot['tags']: - tags_list = map(lambda tag_entry: self.tags_dict[tag_entry['id-ref']]['meta']['dc:title'],annot['tags']) - else: - tags_list = [] - begin = int(annot['begin']) - duration = int(annot['end'])-begin - if content.media_obj and content.media_obj.external_publication_url: - uri = "%s#t=%d" % (content.media_obj.external_publication_url, begin) - - - annotations.append({ - 'begin': begin, - 'duration':duration, - 'title':annot['content']['title'], - 'desc':annot['content']['description'], - 'tags': tags_list, - 'id':annot['id'], - 'uri':uri - }) - - return annotations - - diff -r 3a30d255c235 -r 59311c28454f web/ldt/ldt_utils/tests.py --- a/web/ldt/ldt_utils/tests.py Sun Nov 14 20:25:22 2010 +0100 +++ b/web/ldt/ldt_utils/tests.py Mon Nov 15 18:56:22 2010 +0100 @@ -23,17 +23,18 @@ # 2. the returned xml contains correct data class CreateTest(unittest.TestCase): def setUp(self): - self.content = base64.urlsafe_b64encode('f2c1d1fa-629d-4520-a3d2-955b4f2582c0http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168tag1tag2#AAAAAAoaubert79cd0532-1dda-4130-b351-6a181130a7c92010-09-06 12:33:53.417550oaubert79cd0532-1dda-4130-b351-6a181130a7c92010-09-06 12:33:53.420459') + self.content = base64.urlsafe_b64encode('f2c1d1fa-629d-4520-a3d2-955b4f2582c0http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168tag1tag2#AAAAAAoaubert79cd0532-1dda-4130-b351-6a181130a7c92010-09-06 12:33:53.417550oaubert79cd0532-1dda-4130-b351-6a181130a7c92010-09-06 12:33:53.420459') self.c = Client() + self.annot = Annotation(id=u'd2c1d1fa-629d-4520-a3d2-955b4f2582c0', uri=u'http://iri.blabla', tags=[u'tag1',u'tag2'], title=u'montitre', description=u'madesc', text=u'letexteselectionne', color=u'#AAAAAA', creator=u'wakimd', contributor=u'wakimd', creation_date=u'2010-09-06 12:33:53.417550', update_date=u'2010-09-06 12:33:53.417550') + self.annot.save() def tearDown(self): annotlist=Annotation.objects.all() for annot in annotlist: annot.delete() def test_create_annotation(self): - response = self.c.post('/create/', {'content':self.content}) + response = self.c.post('/ldt/create/', {'content':self.content}) self.annot1 = lxml.etree.fromstring(response.content) - #self.assertEqual(lxml.etree.tostring(self.annot1),"lala") self.assertEqual(self.annot1.xpath("/iri/text-annotation/id/text()")[0],"f2c1d1fa-629d-4520-a3d2-955b4f2582c0") self.assertEqual(self.annot1.xpath("/iri/text-annotation/content")[0].tag,"content") self.assertEqual(self.annot1.xpath("/iri/text-annotation/tags/tag/text()")[0],"tag1") @@ -41,28 +42,41 @@ self.assertEqual(self.annot1.xpath("/iri/text-annotation/meta/created/text()")[0],"2010-09-06 12:33:53.417550") annot = Annotation.objects.get(id="f2c1d1fa-629d-4520-a3d2-955b4f2582c0") self.assertEqual(annot.uri, "http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168") + +# def test_error_create(self): +# content = base64.urlsafe_b64encode('d2c1d1fa-629d-4520-a3d2-955b4f2582c0http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168tag1tag2#AAAAAAoaubert79cd0532-1dda-4130-b351-6a181130a7c92010-09-06 12:33:53.417550oaubert79cd0532-1dda-4130-b351-6a181130a7c92010-09-06 12:33:53.420459') +# response = self.c.post('/ldt/create/', {'content':content}) +# #annot2 = create_annotation(content) +# self.assertEqual(response.status_code, '409') # This test creates an annotation, then gets it, and checks that the returned xml contains correct data class GetTest(unittest.TestCase): def setUp(self): - self.annotation = Annotation(id="d2c1d1fa-629d-4520-a3d2-955b4f2582c0", tags=[u"tag1",u"tag2",u"tag3"], title="titre de l\'annotation",text="texte selectionne lors de la creation de l\'annotation",color="#AAAAAA", creation_date="2010-09-06T12:33:53.417550", update_date="2010-09-06T12:33:53.420459") + self.annotation = Annotation(id="d2c1d1fa-629d-4520-a3d2-955b4f2582c0", tags=[u"tag1",u"tag2",u"tag3"], title="titre de l\'annotation",text="texte selectionne lors de la creation de l\'annotation",color="#AAAAAA", creation_date="2010-09-06 12:33:53.417550", update_date="2010-09-06 12:33:53.420459") self.annotation.save() + self.c = Client() def tearDown(self): annotlist=Annotation.objects.all() for annot in annotlist: annot.delete() def test_get_annotation(self): - response = self.c.get('/get/', {'id':'d2c1d1fa-629d-4520-a3d2-955b4f2582c0'}) + response = self.c.get('/ldt/get/', {'id':'d2c1d1fa-629d-4520-a3d2-955b4f2582c0'}) self.annot1 = lxml.etree.fromstring(response.content) #self.annot1 = get_annotation("d2c1d1fa-629d-4520-a3d2-955b4f2582c0") - #self.assertEqual(lxml.etree.tostring(self.annot1),"lala") self.assertEqual(self.annot1.xpath("/iri/text-annotation/id/text()")[0],self.annotation.id) self.assertEqual(self.annot1.xpath("/iri/text-annotation/tags/tag/text()")[1], self.annotation.tags[1]) self.assertEqual(self.annot1.xpath("/iri/text-annotation/content/color/text()")[0],self.annotation.color) #self.assertEqual(self.annot1.xpath("/iri/text-annotation/meta/created/text()"), self.annotation.creation_date) +# def test_error_get(self): +# response = self.c.get('/ldt/get/', {'id':'2'}) +# #response = self.c.get('/ldt/get/', {'id':'2'}) +# #annot3 = get_annotation('d2c1d1fa-629d-4520-a3d2-955b4f2582c0') +# #resp = response.status_code +# self.assertEqual(response.status_code,'404') + class FilterTest(unittest.TestCase): def setUp(self): @@ -71,40 +85,45 @@ self.annotation2 = Annotation(id="l2c1d1fa-629d-4520-a3d2-955b4f2582c0",title="titre de l\'annotation2",text="texte selectionne lors de la creation de l\'annotation2",color="#BBBBBB", uri="http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168", creator="wakimd") self.annotation2.save() self.annotation3 = Annotation(id="m2c1d1fa-629d-4520-a3d2-955b4f2582c0", title="titre3", text="texte3", color="#CCCCCC", uri="http://blabla", creator="wakimd") - self.annotation3.save() + self.annotation3.save() + self.c = Client() def tearDown(self): annotlist=Annotation.objects.all() for annot in annotlist: annot.delete() - def test_filter_annotation_creator(self): + def test_filter_annotation_creator_limit(self): user = 'wakimd' - uri = None - limit= 2 - doc = filter_annotation(uri,None,limit,user) + uri = "http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168" + limit= 1 + response = self.c.get('/ldt/filter/', {'uri':uri,'creator':user,'limit':limit}) + doc = lxml.etree.fromstring(response.content) + #doc = filter_annotation(uri,None,limit,user) cpt = 0 for elem in doc.xpath("/iri/text-annotation"): cpt = cpt + 1 - #self.assertEqual(lxml.etree.tostring(doc),"lala") if limit is not None: self.assertEqual(cpt,limit) for elem in doc.xpath("/iri/text-annotation/meta/creator/text()"): self.assertEqual(elem,user) + for elem in doc.xpath("/iri/text-annotation/uri/text()"): + self.assertEqual(elem[:57],"http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml") def test_filter_annotation_uri(self): uri = "http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168" - limit = None - doc = filter_annotation(uri,None,limit,None) + response = self.c.get('/ldt/filter/', {'uri':uri}) + doc = lxml.etree.fromstring(response.content) + #doc = filter_annotation(uri,None,limit,None) for elem in doc.xpath("/iri/text-annotation/uri/text()"): self.assertEqual(elem[:57],"http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml") def test_filter_annotation_filter(self): - user = 'wakimd' - uri = None + uri = "http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168" filter = 'lors' limit = None - doc = filter_annotation(uri,filter,limit,user) - #self.assertEqual(lxml.etree.tostring(doc),"lala") + response = self.c.get('/ldt/filter/', {'uri':uri,'filter':'lors'}) + doc = lxml.etree.fromstring(response.content) + #doc = filter_annotation(uri,filter,limit,user) for elem in doc.xpath("/iri/text-annotation/content/text/text()"): self.assertTrue('lors' in elem) for elem in doc.xpath("/iri/text-annotation/meta/creator/text()"): @@ -117,29 +136,36 @@ class DeleteTest(unittest.TestCase): def setUp(self): self.annotation = Annotation(id="d2c1d1fa-629d-4520-a3d2-955b4f2582c0",title="titre de l\'annotation",text="texte selectionne lors de la creation de l\'annotation",color="#AAAAAA", creation_date="2010-09-06T12:33:53.417550", update_date="2010-09-06T12:33:53.420459") - self.annotation.save() + self.annotation.save() + self.c = Client() def tearDown(self): annotlist=Annotation.objects.all() for annot in annotlist: annot.delete() def test_delete_annotation(self): - response = self.c.post('/delete/', {'id':'d2c1d1fa-629d-4520-a3d2-955b4f2582c0'}) - response2 - self.c.get('/get/', {'id':'d2c1d1fa-629d-4520-a3d2-955b4f2582c0'}) + response = self.c.post('/ldt/delete/', {'id':'d2c1d1fa-629d-4520-a3d2-955b4f2582c0'}) + #response2 = self.c.get('/ldt/get/', {'id':'d2c1d1fa-629d-4520-a3d2-955b4f2582c0'}) doc = lxml.etree.fromstring(response.content) #doc=delete_annotation("d2c1d1fa-629d-4520-a3d2-955b4f2582c0") - self.assertEqual(self.annot1.xpath("/iri/text-annotation/id/text()")[0],'') - self.assertEqual(self.annot1.xpath("/iri/text-annotation/tags/tag/text()")[1], '') - self.assertEqual(self.annot1.xpath("/iri/text-annotation/content/color/text()")[0],'') - self.assertEqual(self.annot1.xpath("/iri/text-annotation/meta/creator/text()")[0],'') - self.assertEqual(response2.status_code, '404') + self.assertEqual(doc.xpath("/iri/text-annotation/id/text()"),[]) + self.assertEqual(doc.xpath("/iri/text-annotation/tags/tag/text()"), []) + self.assertEqual(doc.xpath("/iri/text-annotation/content/color/text()"),[]) + self.assertEqual(doc.xpath("/iri/text-annotation/meta/creator/text()"),[]) + #self.assertEqual(response2.status_code, '404') +# def test_error_delete(self): +# response = self.c.post('/ldt/delete/', {'id':'1'}) +# #annot4 = delete_annotation('f2c1d1fa-629d-4520-a3d2-955b4f2582c0') +# self.assertEqual(response.status_code,'404') + # This test creates an annotation, then updates it with new content, and checks that the returned xml contains the updated data class UpdateTest(unittest.TestCase): def setUp(self): self.annotation = Annotation(id="d2c1d1fa-629d-4520-a3d2-955b4f2582c0", tags=['tag1','mytag'],title="titre de l\'annotation",text="texte selectionne lors de la creation de l\'annotation",color="#AAAAAA", creation_date="2010-09-06T12:33:53.417550", update_date="2010-09-06T12:33:53.420459") self.annotation.save() + self.c = Client() def tearDown(self): annotlist=Annotation.objects.all() for annot in annotlist: @@ -147,60 +173,17 @@ def test_update_annotation(self): content = base64.urlsafe_b64encode('tag1tag2newtag3#DDDDDDoaubert80cd0532-1dda-4130-b351-6a181130a7c92010-11-06 12:33:53.420459') - response = self.c.post('/update/', {'content':content,'id':'d2c1d1fa-629d-4520-a3d2-955b4f2582c0'}) + response = self.c.post('/ldt/update/', {'content':content,'id':'d2c1d1fa-629d-4520-a3d2-955b4f2582c0'}) doc = lxml.etree.fromstring(response.content) #doc = update_annotation(content,'d2c1d1fa-629d-4520-a3d2-955b4f2582c0') - #self.assertEqual(lxml.etree.tostring(doc),"lala") self.assertEqual(doc.xpath("/iri/text-annotation/id/text()")[0],"d2c1d1fa-629d-4520-a3d2-955b4f2582c0") self.assertEqual(doc.xpath("/iri/text-annotation/tags/tag/text()")[1], "mytag") self.assertEqual(doc.xpath("/iri/text-annotation/content/color/text()")[0],"#DDDDDD") - - -#class AnnotTest(unittest.TestCase): -# def setUp(self): -# self.annot = Annotation(id=u'd2c1d1fa-629d-4520-a3d2-955b4f2582c0', uri=u'http://iri.blabla', tags=[u'tag1',u'tag2'], title=u'montitre', description=u'madesc', text=u'letexteselectionne', color=u'#AAAAAA', creator=u'wakimd', contributor=u'wakimd', creation_date=u'2010-09-06 12:33:53.417550', update_date=u'2010-09-06 12:33:53.417550') -# self.annot.save() -# def tearDown(self): -# annotlist=Annotation.objects.all() -# for annot in annotlist: -# annot.delete() -# -# def test_create_annotation(self): -# b = Annotation.objects.get(id=u'd2c1d1fa-629d-4520-a3d2-955b4f2582c0') -# self.assertEqual(b.title, 'montitre') -# + +# def test_error_update(self): +# content = base64.urlsafe_b64encode('d2c1d1fa-629d-4520-a3d2-955b4f2582c0http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168tag1tag2#AAAAAAoaubert79cd0532-1dda-4130-b351-6a181130a7c92010-09-06 12:33:53.417550oaubert79cd0532-1dda-4130-b351-6a181130a7c92010-09-06 12:33:53.420459') +# response = self.c.post('/update/', {'content':content,'id':'1'}) +# #annot5=update_annotation() +# self.assertEqual(response.status_code,'404') +# -# These tests check common error codes are raised when needed -class ErrorTest(unittest.TestCase): - def setUp(self): - self.annot = Annotation(id=u'd2c1d1fa-629d-4520-a3d2-955b4f2582c0', uri=u'http://iri.blabla', tags=[u'tag1',u'tag2'], title=u'montitre', description=u'madesc', text=u'letexteselectionne', color=u'#AAAAAA', creator=u'wakimd', contributor=u'wakimd', creation_date=u'2010-09-06 12:33:53.417550', update_date=u'2010-09-06 12:33:53.417550') - self.annot.save() - - def tearDown(self): - annotlist=Annotation.objects.all() - for annot in annotlist: - annot.delete() - - def test_error_create(self): - content = base64.urlsafe_b64encode('d2c1d1fa-629d-4520-a3d2-955b4f2582c0http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168tag1tag2#AAAAAAoaubert79cd0532-1dda-4130-b351-6a181130a7c92010-09-06 12:33:53.417550oaubert79cd0532-1dda-4130-b351-6a181130a7c92010-09-06 12:33:53.420459') - response = self.c.post('/create/', {'content':self.content}) - #annot2 = create_annotation(content) - self.assertEqual(response.status_code, '409') - - def test_error_get(self): - response = self.c.get('/get/', {'id':'d2c1d1fa-629d-4520-a3d2-955b4f2582c0'}) - #annot3 = get_annotation('d2c1d1fa-629d-4520-a3d2-955b4f2582c0') - resp = response.status_code - self.assertEqual(response.status_code,'404') - - def test_error_delete(self): - response = self.c.post('/delete/', {'id':'f2c1d1fa-629d-4520-a3d2-955b4f2582c0'}) - #annot4 = delete_annotation('f2c1d1fa-629d-4520-a3d2-955b4f2582c0') - self.assertEqual(response.status_code,'404') - - def test_error_update(self): - content = base64.urlsafe_b64encode('d2c1d1fa-629d-4520-a3d2-955b4f2582c0http://www.leezam.com/pub/epub/123456!/OPS/chapter2.xhtml#pos=56,168tag1tag2#AAAAAAoaubert79cd0532-1dda-4130-b351-6a181130a7c92010-09-06 12:33:53.417550oaubert79cd0532-1dda-4130-b351-6a181130a7c92010-09-06 12:33:53.420459') - response = self.c.post('/update/', {'content':content,'id':'dfc1d1fa-629d-4520-a3d2-955b4f2582c0'}) - #annot5=update_annotation() - self.assertEqual(response.status_code,'404') - diff -r 3a30d255c235 -r 59311c28454f web/ldt/ldt_utils/urls.py --- a/web/ldt/ldt_utils/urls.py Sun Nov 14 20:25:22 2010 +0100 +++ b/web/ldt/ldt_utils/urls.py Mon Nov 15 18:56:22 2010 +0100 @@ -7,11 +7,15 @@ urlpatterns = patterns('ldt.ldt_utils', url(r'^create/(?P.*)$', 'views.create_annotation'), - url(r'^filter/$', 'views.filter_annotation'), + url(r'^filter/(?P.*)/(?P.*)/(?P.*)/(?P.*)$', 'views.filter_annotation'), + url(r'^filter/(?P.*)/(?P.*)/(?P.*)$', 'views.filter_annotation'), + url(r'^filter/(?P.*)/(?P.*)/(?P.*)$', 'views.filter_annotation'), + url(r'^filter/(?P.*)/(?P.*)/(?P.*)$', 'views.filter_annotation'), + url(r'^filter/(?P.*)/(?P.*)$', 'views.filter_annotation'), + url(r'^filter/(?P.*)/(?P.*)$', 'views.filter_annotation'), + url(r'^filter/(?P.*)$', 'views.filter_annotation'), url(r'^get/(?P.*)$', 'views.get_annotation'), url(r'^delete/(?P.*)$', 'views.delete_annotation'), url(r'^update/(?P.*)/(?P.*)$', 'views.update_annotation'), #url(r'^oauth/', include('oauth_provider.urls')), - #url(r'^filterprojects/_(?P[\w\%\_\-\+]*?)/(?Ptrue|false)/(?P\d)$', "views.projectsfilter", ), - #url(r'^filtercontents/_(?P[\w\%\_\-\+]*?)/$', "views.contentsfilter", ), ) \ No newline at end of file diff -r 3a30d255c235 -r 59311c28454f web/ldt/ldt_utils/views.py --- a/web/ldt/ldt_utils/views.py Sun Nov 14 20:25:22 2010 +0100 +++ b/web/ldt/ldt_utils/views.py Mon Nov 15 18:56:22 2010 +0100 @@ -5,7 +5,7 @@ from django.db import IntegrityError from django.db.models import Q from django.forms.util import ErrorList -from django.http import HttpResponse, HttpResponseRedirect, \ +from django.http import HttpResponse, Http404, HttpResponseRedirect, \ HttpResponseForbidden, HttpResponseServerError, HttpResponseBadRequest from django.shortcuts import render_to_response, get_object_or_404, \ get_list_or_404 @@ -14,6 +14,7 @@ from django.utils import simplejson from django.utils.html import escape from django.utils.translation import ugettext as _, ungettext +from httplib import CONFLICT from ldt.core.models import Owner from ldt.ldt_utils.utils import boolean_convert from lxml import etree @@ -38,19 +39,21 @@ ## Returns an xml containing the resulting annotations def filter_annotation(request, uri=None, filter=None, limit=None, creator=None): annotlist = None - query = Q() + query = Q() - if uri: - query &= Q(uri=uri) - if creator: - query &= Q(creator=creator) - if filter and len(filter) > 0: - query &= Q(text__icontains=filter) + if request.GET.get('uri'): + query &= Q(uri=request.GET.get('uri')) + if request.GET.get('creator'): + query &= Q(creator=request.GET.get('creator')) + if request.GET.get('filter') and len(request.GET.get('filter')) > 0: + query &= Q(text__icontains=request.GET.get('filter')) annotlist = Annotation.objects.filter(query) - - if limit: - annotlist = annotlist[:limit] + + if request.GET.get('limit'): + nb = request.GET.get('limit') + #offset = request.GET.get('limit')[1] + annotlist = annotlist[:nb] #create xml iri = lxml.etree.Element('iri') @@ -64,6 +67,8 @@ uri.text = annot.uri if annot.tags: + if type(annot.tags) is unicode: + annot.tags = eval(annot.tags) tags = lxml.etree.SubElement(textannotation,'tags') ltags = normalize_tags(annot.tags) for t in ltags: @@ -97,7 +102,7 @@ ## Returns an xml-structured annotation #@login_required def create_annotation(request, content): - cont = base64.urlsafe_b64decode(content) + cont = base64.urlsafe_b64decode(request.POST["content"]) doc = lxml.etree.fromstring(cont) id = unicode(doc.xpath("/iri/text-annotation/id/text()")[0]) @@ -126,18 +131,20 @@ return HttpResponse(lxml.etree.tostring(doc, pretty_print=True), mimetype="text/xml;charset=utf-8") #return doc except: - #raise IntegrityError + #except Annotation.IntegrityError: #print 'This id is already used! Please choose another one!' - raise HttpResponseBadRequest('This id is already used! Please chose another one!') + raise CONFLICT + - #return HttpResponse(lxml.etree.tostring(doc, pretty_print=True), mimetype="text/xml;charset=utf-8") - - -## Gets an annotation from an id +## Gets an annotation (from its id) ## Returns the xml-structured annotation def get_annotation(request, id): - annot = Annotation.objects.get_object_or_404(id=id) + try: + annot = Annotation.objects.get(id=request.GET.get('id','')) + except: + #except Annotation.DoesNotExist: + raise Http404 iri = lxml.etree.Element('iri') doc = lxml.etree.ElementTree(iri) @@ -180,12 +187,16 @@ return HttpResponse(lxml.etree.tostring(doc, pretty_print=True), mimetype="text/xml;charset=utf-8") -## Delete an annotation from an id +## Deletes an annotation (from its id) ## Returns an empty xml-structured annotation #@login_required def delete_annotation(request, id): - annot = Annotation.objects.get_object_or_404(id=id) - annot.delete() + try: + annot = Annotation.objects.get(id=request.POST["id"]) + annot.delete() + #except Annotation.DoesNotExist: + except: + raise Http404 doc=create_empty_annotation() #return doc @@ -196,9 +207,13 @@ ## Returns the xml-structured updated annotation #@login_required def update_annotation(request, content, id): - annot = Annotation.objects.get_object_or_404(id=id) + try: + annot = Annotation.objects.get(id=request.POST["id"]) + #except Annotation.DoesNotExist: + except: + raise Http404 - cont = base64.urlsafe_b64decode(content) + cont = base64.urlsafe_b64decode(request.POST["content"]) doc = lxml.etree.fromstring(cont) uri = doc.xpath("/iri/text-annotation/uri/text()") diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/LdtPlayer.css --- a/web/ldt/media/css/LdtPlayer.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ - #demo-frame > div.demo { padding: 5px !important; }; - - button.ui-button-icon-only { - height:1.5em; - width:1.5em; - } - - #Ldt-loader{ - background:url(imgs/transBlack.gif); - width:10px; - height:10px; - } - - #Ldt-controler { - font-size: 62.5%; - font-family: "Trebuchet MS", "Helvetica", "Arial", "Verdana", "sans-serif"; - background-color:#DECFE2; - height:35px; - padding:5px; - } - - .Ldt-iri-chapter{ - padding-top:10px; - padding-bottom:5px; - border-left:solid 1px #000; - border-right:solid 1px #000; - } - - #Ldt-loader { - background:url(imgs/loader_fc.gif) no-repeat; - width:20px; - height:16px; - float:left; - } - - .tooltip { - display:none; - background:transparent url(imgs/white_arrow_mini.png); - font-size:12px; - height:55px; - width:180px; - padding:10px; - padding-left:15px; - padding-top:15px; - padding-right:15px; - color:#000; - font-family: "Trebuchet MS", "Helvetica", "Arial", "Verdana", "sans-serif"; - } - #Ldt-Root{ - font-family: "Trebuchet MS", "Helvetica", "Arial", "Verdana", "sans-serif"; - } - #Ldt-Hat{ - height:3px; - } - #Ldt-Annotations{ - padding-left:5px; - width:470px; - float:left; - font-size: 62.5%; - } - #Ldt-SaTitle{ - padding-top:2px; - padding-bottom:5px; - font-size:18px; - height:22p; - color:#FFF; - } - #Ldt-SaDescription{ - font-size:12px; - } - #Ldt-Show-Arrow-container{ - margin-left:60px; - } - #Ldt-Show-Arrow{ - position:relative; - background:url(imgs/grey_arrow_Show.png); - width:27px; - height:13px; - margin-top:12px; - margin-left:-10px; - } - - #Ldt-output{ - display:none; - } - #Ldt-Show-Tags{ - position:relative; - height:13px; - margin-top:-10px; - border: solid 1px #000; - } - #Ldt-ShowAnnotation-video{ - position:absolute; - z-index: 999; - padding:5px; - background:url(imgs/transBlack.png); - font-family: "Trebuchet MS", "Helvetica", "Arial", "Verdana", "sans-serif"; - color:#FFF; - } - #Ldt-ShowAnnotation-audio{ - position:relative; - padding:5px; - background-color:#773584; - font-family: "Trebuchet MS", "Helvetica", "Arial", "Verdana", "sans-serif"; - color:#000000; - } - #Ldt-SaKeyword{ - background-color:#28042D; - color:#FFFFFF; - padding:5px; - font-weight:bold; - text-align:left; - float:left; - font-size:10px; - } - #Ldt-SaShareTools{ - text-align:right; - float:right; - } - - - #Ldt-PlaceHolder{ - position:absolue; - float:none; - } - - .Ldt-mode-radio{ - visibility:hidden; - height:0px; - display:none - } - - .Ldt-Control1{ - width:60px; - float:left; - } - .Ldt-Control2{ - padding-left:10px; - width:60px; - float:left; - } - .Ldt-cleaner { - clear:both; - } - .share { - background:url('imgs/widget20.png') no-repeat scroll 0 0 transparent ; - display:block; - height:16px; - line-height:16px !important; - overflow:hidden; - width:16px; - float:left; - cursor:pointer; - margin:2px; - } - .shareFacebook{ - background-position:0 -704px; - } - .shareMySpace{ - background-position:0 -736px; - } - .shareTwitter{ - background-position:0 -1072px; - } - .shareGoogle{ - background-position:0 -752px; - } - .shareDelicious{ - background-position:0 -672px; - } - .shareJamesPot{ - background-position:0 -1808px; - } - - \ No newline at end of file diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/ie.css --- a/web/ldt/media/css/blueprint/ie.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* ----------------------------------------------------------------------- - - - Blueprint CSS Framework 0.9 - http://blueprintcss.org - - * Copyright (c) 2007-Present. See LICENSE for more info. - * See README for instructions on how to use Blueprint. - * For credits and origins, see AUTHORS. - * This is a compressed file. See the sources in the 'src' directory. - ------------------------------------------------------------------------ */ - -/* ie.css */ -body {text-align:center;} -.container {text-align:left;} -* html .column, * html .span-1, * html .span-2, * html .span-3, * html .span-4, * html .span-5, * html .span-6, * html .span-7, * html .span-8, * html .span-9, * html .span-10, * html .span-11, * html .span-12, * html .span-13, * html .span-14, * html .span-15, * html .span-16, * html .span-17, * html .span-18, * html .span-19, * html .span-20, * html .span-21, * html .span-22, * html .span-23, * html .span-24 {display:inline;overflow-x:hidden;} -* html legend {margin:0px -8px 16px 0;padding:0;} -sup {vertical-align:text-top;} -sub {vertical-align:text-bottom;} -html>body p code {*white-space:normal;} -hr {margin:-8px auto 11px;} -img {-ms-interpolation-mode:bicubic;} -.clearfix, .container {display:inline-block;} -* html .clearfix, * html .container {height:1%;} -fieldset {padding-top:0;} -textarea {overflow:auto;} -input.text, input.title, textarea {background-color:#fff;border:1px solid #bbb;} -input.text:focus, input.title:focus {border-color:#666;} -input.text, input.title, textarea, select {margin:0.5em 0;} -input.checkbox, input.radio {position:relative;top:.25em;} -form.inline div, form.inline p {vertical-align:middle;} -form.inline label {position:relative;top:-0.25em;} -form.inline input.checkbox, form.inline input.radio, form.inline input.button, form.inline button {margin:0.5em 0;} -button, input.button {position:relative;top:0.25em;} \ No newline at end of file diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/buttons/icons/cross.png Binary file web/ldt/media/css/blueprint/plugins/buttons/icons/cross.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/buttons/icons/key.png Binary file web/ldt/media/css/blueprint/plugins/buttons/icons/key.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/buttons/icons/tick.png Binary file web/ldt/media/css/blueprint/plugins/buttons/icons/tick.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/buttons/readme.txt --- a/web/ldt/media/css/blueprint/plugins/buttons/readme.txt Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -Buttons - -* Gives you great looking CSS buttons, for both and . -* Demo: particletree.com/features/rediscovering-the-button-element - - -Credits ----------------------------------------------------------------- - -* Created by Kevin Hale [particletree.com] -* Adapted for Blueprint by Olav Bjorkoy [bjorkoy.com] - - -Usage ----------------------------------------------------------------- - -1) Add this plugin to lib/settings.yml. - See compress.rb for instructions. - -2) Use the following HTML code to place the buttons on your site: - - - Save - - - - Change Password - - - - Cancel - diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/buttons/screen.css --- a/web/ldt/media/css/blueprint/plugins/buttons/screen.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* -------------------------------------------------------------- - - buttons.css - * Gives you some great CSS-only buttons. - - Created by Kevin Hale [particletree.com] - * particletree.com/features/rediscovering-the-button-element - - See Readme.txt in this folder for instructions. - --------------------------------------------------------------- */ - -a.button, button { - display:block; - float:left; - margin: 0.7em 0.5em 0.7em 0; - padding:5px 10px 5px 7px; /* Links */ - - border:1px solid #dedede; - border-top:1px solid #eee; - border-left:1px solid #eee; - - background-color:#f5f5f5; - font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif; - font-size:100%; - line-height:130%; - text-decoration:none; - font-weight:bold; - color:#565656; - cursor:pointer; -} -button { - width:auto; - overflow:visible; - padding:4px 10px 3px 7px; /* IE6 */ -} -button[type] { - padding:4px 10px 4px 7px; /* Firefox */ - line-height:17px; /* Safari */ -} -*:first-child+html button[type] { - padding:4px 10px 3px 7px; /* IE7 */ -} -button img, a.button img{ - margin:0 3px -3px 0 !important; - padding:0; - border:none; - width:16px; - height:16px; - float:none; -} - - -/* Button colors --------------------------------------------------------------- */ - -/* Standard */ -button:hover, a.button:hover{ - background-color:#dff4ff; - border:1px solid #c2e1ef; - color:#336699; -} -a.button:active{ - background-color:#6299c5; - border:1px solid #6299c5; - color:#fff; -} - -/* Positive */ -body .positive { - color:#529214; -} -a.positive:hover, button.positive:hover { - background-color:#E6EFC2; - border:1px solid #C6D880; - color:#529214; -} -a.positive:active { - background-color:#529214; - border:1px solid #529214; - color:#fff; -} - -/* Negative */ -body .negative { - color:#d12f19; -} -a.negative:hover, button.negative:hover { - background-color:#fbe3e4; - border:1px solid #fbc2c4; - color:#d12f19; -} -a.negative:active { - background-color:#d12f19; - border:1px solid #d12f19; - color:#fff; -} diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/fancy-type/readme.txt --- a/web/ldt/media/css/blueprint/plugins/fancy-type/readme.txt Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -Fancy Type - -* Gives you classes to use if you'd like some - extra fancy typography. - -Credits and instructions are specified above each class -in the fancy-type.css file in this directory. - - -Usage ----------------------------------------------------------------- - -1) Add this plugin to lib/settings.yml. - See compress.rb for instructions. diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/fancy-type/screen.css --- a/web/ldt/media/css/blueprint/plugins/fancy-type/screen.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* -------------------------------------------------------------- - - fancy-type.css - * Lots of pretty advanced classes for manipulating text. - - See the Readme file in this folder for additional instructions. - --------------------------------------------------------------- */ - -/* Indentation instead of line shifts for sibling paragraphs. */ - p + p { text-indent:2em; margin-top:-1.5em; } - form p + p { text-indent: 0; } /* Don't want this in forms. */ - - -/* For great looking type, use this code instead of asdf: - asdf - Best used on prepositions and ampersands. */ - -.alt { - color: #666; - font-family: "Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua", Georgia, serif; - font-style: italic; - font-weight: normal; -} - - -/* For great looking quote marks in titles, replace "asdf" with: - “asdf” - (That is, when the title starts with a quote mark). - (You may have to change this value depending on your font size). */ - -.dquo { margin-left: -.5em; } - - -/* Reduced size type with incremental leading - (http://www.markboulton.co.uk/journal/comments/incremental_leading/) - - This could be used for side notes. For smaller type, you don't necessarily want to - follow the 1.5x vertical rhythm -- the line-height is too much. - - Using this class, it reduces your font size and line-height so that for - every four lines of normal sized type, there is five lines of the sidenote. eg: - - New type size in em's: - 10px (wanted side note size) / 12px (existing base size) = 0.8333 (new type size in ems) - - New line-height value: - 12px x 1.5 = 18px (old line-height) - 18px x 4 = 72px - 72px / 5 = 14.4px (new line height) - 14.4px / 10px = 1.44 (new line height in em's) */ - -p.incr, .incr p { - font-size: 10px; - line-height: 1.44em; - margin-bottom: 1.5em; -} - - -/* Surround uppercase words and abbreviations with this class. - Based on work by Jørgen Arnor Gårdsø Lom [http://twistedintellect.com/] */ - -.caps { - font-variant: small-caps; - letter-spacing: 1px; - text-transform: lowercase; - font-size:1.2em; - line-height:1%; - font-weight:bold; - padding:0 2px; -} diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/link-icons/icons/doc.png Binary file web/ldt/media/css/blueprint/plugins/link-icons/icons/doc.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/link-icons/icons/email.png Binary file web/ldt/media/css/blueprint/plugins/link-icons/icons/email.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/link-icons/icons/external.png Binary file web/ldt/media/css/blueprint/plugins/link-icons/icons/external.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/link-icons/icons/feed.png Binary file web/ldt/media/css/blueprint/plugins/link-icons/icons/feed.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/link-icons/icons/im.png Binary file web/ldt/media/css/blueprint/plugins/link-icons/icons/im.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/link-icons/icons/pdf.png Binary file web/ldt/media/css/blueprint/plugins/link-icons/icons/pdf.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/link-icons/icons/visited.png Binary file web/ldt/media/css/blueprint/plugins/link-icons/icons/visited.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/link-icons/icons/xls.png Binary file web/ldt/media/css/blueprint/plugins/link-icons/icons/xls.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/link-icons/readme.txt --- a/web/ldt/media/css/blueprint/plugins/link-icons/readme.txt Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -Link Icons -* Icons for links based on protocol or file type. - -This is not supported in IE versions < 7. - - -Credits ----------------------------------------------------------------- - -* Marc Morgan -* Olav Bjorkoy [bjorkoy.com] - - -Usage ----------------------------------------------------------------- - -1) Add this line to your HTML: - diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/link-icons/screen.css --- a/web/ldt/media/css/blueprint/plugins/link-icons/screen.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -------------------------------------------------------------- - - link-icons.css - * Icons for links based on protocol or file type. - - See the Readme file in this folder for additional instructions. - --------------------------------------------------------------- */ - -/* Use this class if a link gets an icon when it shouldn't. */ -body a.noicon { - background:transparent none !important; - padding:0 !important; - margin:0 !important; -} - -/* Make sure the icons are not cut */ -a[href^="http:"], a[href^="mailto:"], a[href^="http:"]:visited, -a[href$=".pdf"], a[href$=".doc"], a[href$=".xls"], a[href$=".rss"], -a[href$=".rdf"], a[href^="aim:"] { - padding:2px 22px 2px 0; - margin:-2px 0; - background-repeat: no-repeat; - background-position: right center; -} - -/* External links */ -a[href^="http:"] { background-image: url(icons/external.png); } -a[href^="mailto:"] { background-image: url(icons/email.png); } -a[href^="http:"]:visited { background-image: url(icons/visited.png); } - -/* Files */ -a[href$=".pdf"] { background-image: url(icons/pdf.png); } -a[href$=".doc"] { background-image: url(icons/doc.png); } -a[href$=".xls"] { background-image: url(icons/xls.png); } - -/* Misc */ -a[href$=".rss"], -a[href$=".rdf"] { background-image: url(icons/feed.png); } -a[href^="aim:"] { background-image: url(icons/im.png); } diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/rtl/readme.txt --- a/web/ldt/media/css/blueprint/plugins/rtl/readme.txt Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -RTL -* Mirrors Blueprint, so it can be used with Right-to-Left languages. - -By Ran Yaniv Hartstein, ranh.co.il - -Usage ----------------------------------------------------------------- - -1) Add this line to your HTML: - diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/plugins/rtl/screen.css --- a/web/ldt/media/css/blueprint/plugins/rtl/screen.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -------------------------------------------------------------- - - rtl.css - * Mirrors Blueprint for left-to-right languages - - By Ran Yaniv Hartstein [ranh.co.il] - --------------------------------------------------------------- */ - -body .container { direction: rtl; } -body .column, body .span-1, body .span-2, body .span-3, body .span-4, body .span-5, body .span-6, body .span-7, body .span-8, body .span-9, body .span-10, body .span-11, body .span-12, body .span-13, body .span-14, body .span-15, body .span-16, body .span-17, body .span-18, body .span-19, body .span-20, body .span-21, body .span-22, body .span-23, body .span-24 { - float: right; - margin-right: 0; - margin-left: 10px; - text-align:right; -} - -body div.last { margin-left: 0; } -body table .last { padding-left: 0; } - -body .append-1 { padding-right: 0; padding-left: 40px; } -body .append-2 { padding-right: 0; padding-left: 80px; } -body .append-3 { padding-right: 0; padding-left: 120px; } -body .append-4 { padding-right: 0; padding-left: 160px; } -body .append-5 { padding-right: 0; padding-left: 200px; } -body .append-6 { padding-right: 0; padding-left: 240px; } -body .append-7 { padding-right: 0; padding-left: 280px; } -body .append-8 { padding-right: 0; padding-left: 320px; } -body .append-9 { padding-right: 0; padding-left: 360px; } -body .append-10 { padding-right: 0; padding-left: 400px; } -body .append-11 { padding-right: 0; padding-left: 440px; } -body .append-12 { padding-right: 0; padding-left: 480px; } -body .append-13 { padding-right: 0; padding-left: 520px; } -body .append-14 { padding-right: 0; padding-left: 560px; } -body .append-15 { padding-right: 0; padding-left: 600px; } -body .append-16 { padding-right: 0; padding-left: 640px; } -body .append-17 { padding-right: 0; padding-left: 680px; } -body .append-18 { padding-right: 0; padding-left: 720px; } -body .append-19 { padding-right: 0; padding-left: 760px; } -body .append-20 { padding-right: 0; padding-left: 800px; } -body .append-21 { padding-right: 0; padding-left: 840px; } -body .append-22 { padding-right: 0; padding-left: 880px; } -body .append-23 { padding-right: 0; padding-left: 920px; } - -body .prepend-1 { padding-left: 0; padding-right: 40px; } -body .prepend-2 { padding-left: 0; padding-right: 80px; } -body .prepend-3 { padding-left: 0; padding-right: 120px; } -body .prepend-4 { padding-left: 0; padding-right: 160px; } -body .prepend-5 { padding-left: 0; padding-right: 200px; } -body .prepend-6 { padding-left: 0; padding-right: 240px; } -body .prepend-7 { padding-left: 0; padding-right: 280px; } -body .prepend-8 { padding-left: 0; padding-right: 320px; } -body .prepend-9 { padding-left: 0; padding-right: 360px; } -body .prepend-10 { padding-left: 0; padding-right: 400px; } -body .prepend-11 { padding-left: 0; padding-right: 440px; } -body .prepend-12 { padding-left: 0; padding-right: 480px; } -body .prepend-13 { padding-left: 0; padding-right: 520px; } -body .prepend-14 { padding-left: 0; padding-right: 560px; } -body .prepend-15 { padding-left: 0; padding-right: 600px; } -body .prepend-16 { padding-left: 0; padding-right: 640px; } -body .prepend-17 { padding-left: 0; padding-right: 680px; } -body .prepend-18 { padding-left: 0; padding-right: 720px; } -body .prepend-19 { padding-left: 0; padding-right: 760px; } -body .prepend-20 { padding-left: 0; padding-right: 800px; } -body .prepend-21 { padding-left: 0; padding-right: 840px; } -body .prepend-22 { padding-left: 0; padding-right: 880px; } -body .prepend-23 { padding-left: 0; padding-right: 920px; } - -body .border { - padding-right: 0; - padding-left: 4px; - margin-right: 0; - margin-left: 5px; - border-right: none; - border-left: 1px solid #eee; -} - -body .colborder { - padding-right: 0; - padding-left: 24px; - margin-right: 0; - margin-left: 25px; - border-right: none; - border-left: 1px solid #eee; -} - -body .pull-1 { margin-left: 0; margin-right: -40px; } -body .pull-2 { margin-left: 0; margin-right: -80px; } -body .pull-3 { margin-left: 0; margin-right: -120px; } -body .pull-4 { margin-left: 0; margin-right: -160px; } - -body .push-0 { margin: 0 18px 0 0; } -body .push-1 { margin: 0 18px 0 -40px; } -body .push-2 { margin: 0 18px 0 -80px; } -body .push-3 { margin: 0 18px 0 -120px; } -body .push-4 { margin: 0 18px 0 -160px; } -body .push-0, body .push-1, body .push-2, -body .push-3, body .push-4 { float: left; } - - -/* Typography with RTL support */ -body h1,body h2,body h3, -body h4,body h5,body h6 { font-family: Arial, sans-serif; } -html body { font-family: Arial, sans-serif; } -body pre,body code,body tt { font-family: monospace; } - -/* Mirror floats and margins on typographic elements */ -body p img { float: right; margin: 1.5em 0 1.5em 1.5em; } -body dd, body ul, body ol { margin-left: 0; margin-right: 1.5em;} -body td, body th { text-align:right; } diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/print.css --- a/web/ldt/media/css/blueprint/print.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/* ----------------------------------------------------------------------- - - - Blueprint CSS Framework 0.9 - http://blueprintcss.org - - * Copyright (c) 2007-Present. See LICENSE for more info. - * See README for instructions on how to use Blueprint. - * For credits and origins, see AUTHORS. - * This is a compressed file. See the sources in the 'src' directory. - ------------------------------------------------------------------------ */ - -/* print.css */ -body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;} -.container {background:none;} -hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;} -hr.space {background:#fff;color:#fff;visibility:hidden;} -h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;} -code {font:.9em "Courier New", Monaco, Courier, monospace;} -a img {border:none;} -p img.top {margin-top:0;} -blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;} -.small {font-size:.9em;} -.large {font-size:1.1em;} -.quiet {color:#999;} -.hide {display:none;} -a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;} -a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;} \ No newline at end of file diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/blueprint/screen.css --- a/web/ldt/media/css/blueprint/screen.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,258 +0,0 @@ -/* ----------------------------------------------------------------------- - - - Blueprint CSS Framework 0.9 - http://blueprintcss.org - - * Copyright (c) 2007-Present. See LICENSE for more info. - * See README for instructions on how to use Blueprint. - * For credits and origins, see AUTHORS. - * This is a compressed file. See the sources in the 'src' directory. - ------------------------------------------------------------------------ */ - -/* reset.css */ -html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;} -article, aside, dialog, figure, footer, header, hgroup, nav, section {display:block;} -body {line-height:1.5;} -table {border-collapse:separate;border-spacing:0;} -caption, th, td {text-align:left;font-weight:normal;} -table, td, th {vertical-align:middle;} -blockquote:before, blockquote:after, q:before, q:after {content:"";} -blockquote, q {quotes:"" "";} -a img {border:none;} - -/* typography.css */ -html {font-size:100.01%;} -body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;} -h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;} -h1 {font-size:3em;line-height:1;margin-bottom:0.5em;} -h2 {font-size:2em;margin-bottom:0.75em;} -h3 {font-size:1.5em;line-height:1;margin-bottom:1em;} -h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;} -h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;} -h6 {font-size:1em;font-weight:bold;} -h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;} -p {margin:0 0 1.5em;} -p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;} -p img.right {float:right;margin:1.5em 0 1.5em 1.5em;} -a:focus, a:hover {color:#000;} -a {color:#009;text-decoration:underline;} -blockquote {margin:1.5em;color:#666;font-style:italic;} -strong {font-weight:bold;} -em, dfn {font-style:italic;} -dfn {font-weight:bold;} -sup, sub {line-height:0;} -abbr, acronym {border-bottom:1px dotted #666;} -address {margin:0 0 1.5em;font-style:italic;} -del {color:#666;} -pre {margin:1.5em 0;white-space:pre;} -pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;} -li ul, li ol {margin:0;} -ul, ol {margin:0 1.5em 1.5em 0;padding-left:3.333em;} -ul {list-style-type:disc;} -ol {list-style-type:decimal;} -dl {margin:0 0 1.5em 0;} -dl dt {font-weight:bold;} -dd {margin-left:1.5em;} -table {margin-bottom:1.4em;width:100%;} -th {font-weight:bold;} -thead th {background:#c3d9ff;} -th, td, caption {padding:4px 10px 4px 5px;} -tr.even td {background:#e5ecf9;} -tfoot {font-style:italic;} -caption {background:#eee;} -.small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;} -.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;} -.hide {display:none;} -.quiet {color:#666;} -.loud {color:#000;} -.highlight {background:#ff0;} -.added {background:#060;color:#fff;} -.removed {background:#900;color:#fff;} -.first {margin-left:0;padding-left:0;} -.last {margin-right:0;padding-right:0;} -.top {margin-top:0;padding-top:0;} -.bottom {margin-bottom:0;padding-bottom:0;} - -/* forms.css */ -label {font-weight:bold;} -fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;} -legend {font-weight:bold;font-size:1.2em;} -input[type=text], input[type=password], input.text, input.title, textarea, select {background-color:#fff;border:1px solid #bbb;} -input[type=text]:focus, input[type=password]:focus, input.text:focus, input.title:focus, textarea:focus, select:focus {border-color:#666;} -input[type=text], input[type=password], input.text, input.title, textarea, select {margin:0.5em 0;} -input.text, input.title {width:300px;padding:5px;} -input.title {font-size:1.5em;} -textarea {width:390px;height:250px;padding:5px;} -input[type=checkbox], input[type=radio], input.checkbox, input.radio {position:relative;top:.25em;} -form.inline {line-height:3;} -form.inline p {margin-bottom:0;} -.error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;} -.error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;} -.notice {background:#FFF6BF;color:#514721;border-color:#FFD324;} -.success {background:#E6EFC2;color:#264409;border-color:#C6D880;} -.error a {color:#8a1f11;} -.notice a {color:#514721;} -.success a {color:#264409;} - -/* grid.css */ -.container {width:950px;margin:0 auto;} -.showgrid {background:url(src/grid.png);} -.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 {float:left;margin-right:10px;} -.last {margin-right:0;} -.span-1 {width:30px;} -.span-2 {width:70px;} -.span-3 {width:110px;} -.span-4 {width:150px;} -.span-5 {width:190px;} -.span-6 {width:230px;} -.span-7 {width:270px;} -.span-8 {width:310px;} -.span-9 {width:350px;} -.span-10 {width:390px;} -.span-11 {width:430px;} -.span-12 {width:470px;} -.span-13 {width:510px;} -.span-14 {width:550px;} -.span-15 {width:590px;} -.span-16 {width:630px;} -.span-17 {width:670px;} -.span-18 {width:710px;} -.span-19 {width:750px;} -.span-20 {width:790px;} -.span-21 {width:830px;} -.span-22 {width:870px;} -.span-23 {width:910px;} -.span-24 {width:950px;margin-right:0;} -input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {border-left-width:1px!important;border-right-width:1px!important;padding-left:5px!important;padding-right:5px!important;} -input.span-1, textarea.span-1 {width:18px!important;} -input.span-2, textarea.span-2 {width:58px!important;} -input.span-3, textarea.span-3 {width:98px!important;} -input.span-4, textarea.span-4 {width:138px!important;} -input.span-5, textarea.span-5 {width:178px!important;} -input.span-6, textarea.span-6 {width:218px!important;} -input.span-7, textarea.span-7 {width:258px!important;} -input.span-8, textarea.span-8 {width:298px!important;} -input.span-9, textarea.span-9 {width:338px!important;} -input.span-10, textarea.span-10 {width:378px!important;} -input.span-11, textarea.span-11 {width:418px!important;} -input.span-12, textarea.span-12 {width:458px!important;} -input.span-13, textarea.span-13 {width:498px!important;} -input.span-14, textarea.span-14 {width:538px!important;} -input.span-15, textarea.span-15 {width:578px!important;} -input.span-16, textarea.span-16 {width:618px!important;} -input.span-17, textarea.span-17 {width:658px!important;} -input.span-18, textarea.span-18 {width:698px!important;} -input.span-19, textarea.span-19 {width:738px!important;} -input.span-20, textarea.span-20 {width:778px!important;} -input.span-21, textarea.span-21 {width:818px!important;} -input.span-22, textarea.span-22 {width:858px!important;} -input.span-23, textarea.span-23 {width:898px!important;} -input.span-24, textarea.span-24 {width:938px!important;} -.append-1 {padding-right:40px;} -.append-2 {padding-right:80px;} -.append-3 {padding-right:120px;} -.append-4 {padding-right:160px;} -.append-5 {padding-right:200px;} -.append-6 {padding-right:240px;} -.append-7 {padding-right:280px;} -.append-8 {padding-right:320px;} -.append-9 {padding-right:360px;} -.append-10 {padding-right:400px;} -.append-11 {padding-right:440px;} -.append-12 {padding-right:480px;} -.append-13 {padding-right:520px;} -.append-14 {padding-right:560px;} -.append-15 {padding-right:600px;} -.append-16 {padding-right:640px;} -.append-17 {padding-right:680px;} -.append-18 {padding-right:720px;} -.append-19 {padding-right:760px;} -.append-20 {padding-right:800px;} -.append-21 {padding-right:840px;} -.append-22 {padding-right:880px;} -.append-23 {padding-right:920px;} -.prepend-1 {padding-left:40px;} -.prepend-2 {padding-left:80px;} -.prepend-3 {padding-left:120px;} -.prepend-4 {padding-left:160px;} -.prepend-5 {padding-left:200px;} -.prepend-6 {padding-left:240px;} -.prepend-7 {padding-left:280px;} -.prepend-8 {padding-left:320px;} -.prepend-9 {padding-left:360px;} -.prepend-10 {padding-left:400px;} -.prepend-11 {padding-left:440px;} -.prepend-12 {padding-left:480px;} -.prepend-13 {padding-left:520px;} -.prepend-14 {padding-left:560px;} -.prepend-15 {padding-left:600px;} -.prepend-16 {padding-left:640px;} -.prepend-17 {padding-left:680px;} -.prepend-18 {padding-left:720px;} -.prepend-19 {padding-left:760px;} -.prepend-20 {padding-left:800px;} -.prepend-21 {padding-left:840px;} -.prepend-22 {padding-left:880px;} -.prepend-23 {padding-left:920px;} -.border {padding-right:4px;margin-right:5px;border-right:1px solid #eee;} -.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #eee;} -.pull-1 {margin-left:-40px;} -.pull-2 {margin-left:-80px;} -.pull-3 {margin-left:-120px;} -.pull-4 {margin-left:-160px;} -.pull-5 {margin-left:-200px;} -.pull-6 {margin-left:-240px;} -.pull-7 {margin-left:-280px;} -.pull-8 {margin-left:-320px;} -.pull-9 {margin-left:-360px;} -.pull-10 {margin-left:-400px;} -.pull-11 {margin-left:-440px;} -.pull-12 {margin-left:-480px;} -.pull-13 {margin-left:-520px;} -.pull-14 {margin-left:-560px;} -.pull-15 {margin-left:-600px;} -.pull-16 {margin-left:-640px;} -.pull-17 {margin-left:-680px;} -.pull-18 {margin-left:-720px;} -.pull-19 {margin-left:-760px;} -.pull-20 {margin-left:-800px;} -.pull-21 {margin-left:-840px;} -.pull-22 {margin-left:-880px;} -.pull-23 {margin-left:-920px;} -.pull-24 {margin-left:-960px;} -.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;} -.push-1 {margin:0 -40px 1.5em 40px;} -.push-2 {margin:0 -80px 1.5em 80px;} -.push-3 {margin:0 -120px 1.5em 120px;} -.push-4 {margin:0 -160px 1.5em 160px;} -.push-5 {margin:0 -200px 1.5em 200px;} -.push-6 {margin:0 -240px 1.5em 240px;} -.push-7 {margin:0 -280px 1.5em 280px;} -.push-8 {margin:0 -320px 1.5em 320px;} -.push-9 {margin:0 -360px 1.5em 360px;} -.push-10 {margin:0 -400px 1.5em 400px;} -.push-11 {margin:0 -440px 1.5em 440px;} -.push-12 {margin:0 -480px 1.5em 480px;} -.push-13 {margin:0 -520px 1.5em 520px;} -.push-14 {margin:0 -560px 1.5em 560px;} -.push-15 {margin:0 -600px 1.5em 600px;} -.push-16 {margin:0 -640px 1.5em 640px;} -.push-17 {margin:0 -680px 1.5em 680px;} -.push-18 {margin:0 -720px 1.5em 720px;} -.push-19 {margin:0 -760px 1.5em 760px;} -.push-20 {margin:0 -800px 1.5em 800px;} -.push-21 {margin:0 -840px 1.5em 840px;} -.push-22 {margin:0 -880px 1.5em 880px;} -.push-23 {margin:0 -920px 1.5em 920px;} -.push-24 {margin:0 -960px 1.5em 960px;} -.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:right;position:relative;} -.prepend-top {margin-top:1.5em;} -.append-bottom {margin-bottom:1.5em;} -.box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;} -hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;} -hr.space {background:#fff;color:#fff;visibility:hidden;} -.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;} -.clearfix, .container {display:block;} -.clear {clear:both;} \ No newline at end of file diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/border-radius.htc --- a/web/ldt/media/css/border-radius.htc Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,143 +0,0 @@ ---Do not remove this if you are using-- -Original Author: Remiz Rahnas -Original Author URL: http://www.htmlremix.com -Published date: 2008/09/24 - -Changes by Nick Fetchak: -- IE8 standards mode compatibility -- VML elements now positioned behind original box rather than inside of it - should be less prone to breakage -Published date : 2009/11/18 - - - - - diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/custom_player.css --- a/web/ldt/media/css/custom_player.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -@charset "UTF-8"; - -#demo-frame > div.demo { padding: 5px !important; }; -.iri-chapter{ - padding-top:10px; - padding-bottom:5px; - border-left:solid 1px #aaaaaa; - border-right:solid 1px #aaaaaa;' -} - -.tooltip { - display:none; - background:transparent url(css/jq-css/tooltip/white_arrow.png); - font-size:12px; - height:100px; - width:180px; - padding:10px; - padding-left:15px; - padding-right:15px; - color:#000; -} - -#Annotations{ - padding-left:5px; - width:470px; - float:left; -} -#ldtSaTitle{ - padding-top:2px; - padding-bottom:5px; - font-size:18px; - color:#FFF; - height:22p; -} -#ldtSaDescription{ - font-size:12px; - color:#FFF; -} -#ShowAnnotation{ - position:absolute; - z-index: 999; - padding:5px; - background:url(css/custom/images/transBlack.png); -} - -#ldtPlaceHolder{ - position:absolue; - float:none; -} -.ldtControl1{ - width:70px; - float:left; -} -.ldtControl2{ - padding-left:10px; - width:70px; - float:left; -} - diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/dashboard.css --- a/web/ldt/media/css/dashboard.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - -#content-main-app-ldt-utils { - float: left; - width: 100%; -} \ No newline at end of file diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/embed_popup.css --- a/web/ldt/media/css/embed_popup.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -pre { -white-space: pre-wrap; /* css-3 */ -white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */ -white-space: -pre-wrap; /* Opera 4-6 */ -white-space: -o-pre-wrap; /* Opera 7 */ -word-wrap: break-word; /* Internet Explorer 5.5+ */ -} - -input -{ - background: #ededed; -} - -input[type="button"] { - background-color: #656565; - color: white; - width: auto; - font-weight: bold; - padding: 5px 10px; -} - -#button_row input { - margin: 10px; -} - -#display_select { - float: left; -} - -#copy_div { - float: right; -} - diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/black.png Binary file web/ldt/media/css/imgs/black.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/black_arrow.png Binary file web/ldt/media/css/imgs/black_arrow.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/black_arrow_big.png Binary file web/ldt/media/css/imgs/black_arrow_big.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/black_big.png Binary file web/ldt/media/css/imgs/black_big.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/delicious.png Binary file web/ldt/media/css/imgs/delicious.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/facebook.png Binary file web/ldt/media/css/imgs/facebook.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/grey_arrow_Show.png Binary file web/ldt/media/css/imgs/grey_arrow_Show.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/linkedin.png Binary file web/ldt/media/css/imgs/linkedin.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/loader.gif Binary file web/ldt/media/css/imgs/loader.gif has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/loader_fc.gif Binary file web/ldt/media/css/imgs/loader_fc.gif has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/transBlack.png Binary file web/ldt/media/css/imgs/transBlack.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/twitter.png Binary file web/ldt/media/css/imgs/twitter.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/white.png Binary file web/ldt/media/css/imgs/white.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/white_arrow.png Binary file web/ldt/media/css/imgs/white_arrow.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/white_arrow_big.png Binary file web/ldt/media/css/imgs/white_arrow_big.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/white_arrow_mini.png Binary file web/ldt/media/css/imgs/white_arrow_mini.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/white_big.png Binary file web/ldt/media/css/imgs/white_big.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/imgs/widget20.png Binary file web/ldt/media/css/imgs/widget20.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-bg_flat_75_ffffff_40x100.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-bg_flat_75_ffffff_40x100.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-bg_glass_65_ffffff_1x400.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-bg_glass_65_ffffff_1x400.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-bg_glass_75_dadada_1x400.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-bg_glass_75_dadada_1x400.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-icons_222222_256x240.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-icons_222222_256x240.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-icons_2e83ff_256x240.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-icons_2e83ff_256x240.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-icons_454545_256x240.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-icons_454545_256x240.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-icons_888888_256x240.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-icons_888888_256x240.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/images/ui-icons_cd0a0a_256x240.png Binary file web/ldt/media/css/jq-css/themes/base/images/ui-icons_cd0a0a_256x240.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jq-css/themes/base/jquery-ui.css --- a/web/ldt/media/css/jq-css/themes/base/jquery-ui.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,570 +0,0 @@ -/* - * jQuery UI CSS Framework @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } -/* - * jQuery UI Accordion @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Accordion#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; }/* - * jQuery UI Autocomplete @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * jQuery UI Menu @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; -} -/* - * jQuery UI Button @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Button#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ -/* - * jQuery UI Datepicker @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Datepicker#theming - */ -.ui-datepicker { width: 17em; padding: .2em .2em 0; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -}/* - * jQuery UI Dialog @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog#theming - */ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* - * jQuery UI Progressbar @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar#theming - */ -.ui-progressbar { height:2em; text-align: left; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* - * jQuery UI Resizable @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* - * jQuery UI Selectable @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } -/* - * jQuery UI Slider @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Slider#theming - */ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; }/* - * jQuery UI Tabs @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } -/* - * jQuery UI CSS Framework @VERSION - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/ - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } -.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } -.ui-widget-content a { color: #222222/*{fcContent}*/; } -.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; } -.ui-widget-header a { color: #222222/*{fcHeader}*/; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; } -.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-top { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-bottom { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-right { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-left { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-all { -moz-border-radius: 4px/*{cornerRadius}*/; -webkit-border-radius: 4px/*{cornerRadius}*/; border-radius: 4px/*{cornerRadius}*/; } - -/* Overlays */ -.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; } -.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } \ No newline at end of file diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/jquery.qtip.css --- a/web/ldt/media/css/jquery.qtip.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,337 +0,0 @@ -/* -* qTip - The jQuery tooltip plugin -* http://craigsworks.com/projects/qtip/ -* -* Version: 2.0.0pre -* Copyright 2009 Craig Michael Thompson - http://craigsworks.com -* -* Dual licensed under MIT or GPL Version 2 licenses -* http://en.wikipedia.org/wiki/MIT_License -* http://en.wikipedia.org/wiki/GNU_General_Public_License -* -* Date: Mon Sep 6 15:10:26 2010 +0100 -*/ - -.ui-tooltip-accessible{ - left: -10000em !important; - top: -10000em !important; - display: block !important; - visibility: hidden !important; -} - - /* IE6 ONLY - Width detection fix */ - * html .ui-tooltip-accessible{ - position: static !important; - float: left !important; - } - -.ui-tooltip, .qtip{ - position: absolute; - display: none; - - max-width: 280px; - min-width: 50px; -} - - .ui-tooltip .ui-tooltip-wrapper{ - position: relative; - overflow: hidden; - - border-width: 3px; - border-style: solid; - } - - .ui-tooltip .ui-tooltip-content{ - position: relative; - padding: 5px 9px; - - text-align: left; - word-wrap: break-word; - overflow: hidden; - } - - .ui-tooltip .ui-tooltip-titlebar{ - position: relative; - padding: 6px 35px 6px 10px; - - font-weight: bold; - } - - /*! Default close button class */ - .ui-tooltip .ui-tooltip-close{ - position: absolute; - height: 16px; - width: 16px; - padding: 1px; - right: 5px; - top: 5px; - - cursor: pointer; - line-height: 0px; - font-size: 0px; - } - - .ui-tooltip .ui-tooltip-close .ui-icon{ - height: 16px; - width: 16px; - display: block; - - opacity: 0.8; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; - filter: alpha(opacity=80); - } - .ui-tooltip .ui-tooltip-close:hover .ui-icon{ - opacity: 1; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; - filter: alpha(opacity=100); - } - - /*! Custom button class */ - .ui-tooltip .ui-tooltip-button{ - float: right; - } - - /* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */ - .ui-tooltip-focus{ - - } - - -/*! Default tooltip style */ -.ui-tooltip-wrapper{ - border-color: #F9E98E; - background-color: #FBF7AA; - color: #A27D35; -} - - .ui-tooltip .ui-tooltip-titlebar{ - background-color: #F0DE7D; - } - - .ui-tooltip .ui-tooltip-close .ui-icon{ - background: #A27D35 url('images/close.png') no-repeat 50% 50%; - } - -/*! Plain tooltip style */ -.ui-tooltip-plain .ui-tooltip-wrapper{ - border-color: black; - border-width: 1px; - - background-color: white; - color: black; -} - - .ui-tooltip-plain .ui-tooltip-titlebar{ - background-color: white; - } - - .ui-tooltip-plain .ui-tooltip-close .ui-icon{ - background: black; - } - -/*! Light tooltip style */ -.ui-tooltip-light .ui-tooltip-wrapper{ - border-color: #E2E2E2; - background-color: white; - color: #454545; -} - - .ui-tooltip-light .ui-tooltip-titlebar{ - background-color: #f1f1f1; - } - - .ui-tooltip-light .ui-tooltip-close .ui-icon{ - background: #454545 url('images/close-light.png') no-repeat 50% 50%; - } - - -/*! Dark tooltip style */ -.ui-tooltip-dark .ui-tooltip-wrapper{ - border-color: #303030; - background-color: #505050; - color: #f3f3f3; -} - - .ui-tooltip-dark .ui-tooltip-titlebar{ - background-color: #404040; - } - - .ui-tooltip-dark .ui-tooltip-close .ui-icon{ - background: #f3f3f3 url('images/close-dark.png') no-repeat 50% 50%; - } - - -/*! Red tooltip style */ -.ui-tooltip-red .ui-tooltip-wrapper{ - border-color: #D95252; - background-color: #F78B83; - color: #912323; -} - - .ui-tooltip-red .ui-tooltip-titlebar{ - background-color: #F06D65; - } - - .ui-tooltip-red .ui-tooltip-close .ui-icon{ - background: #9C2F2F url('images/close-red.png') no-repeat 50% 50%; - } - - -/*! Green tooltip style */ -.ui-tooltip-green .ui-tooltip-wrapper{ - border-color: #90D93F; - background-color: #CAED9E; - color: #3F6219; -} - - .ui-tooltip-green .ui-tooltip-titlebar{ - background-color: #B0DE78; - } - - .ui-tooltip-green .ui-tooltip-close .ui-icon{ - background: #58792E url('images/close-green.png') no-repeat 50% 50%; - } - - -/*! Blue tooltip style */ -.ui-tooltip-blue .ui-tooltip-wrapper{ - border-color: #ADD9ED; - background-color: #E5F6FE; - color: #5E99BD; -} - - .ui-tooltip-blue .ui-tooltip-titlebar{ - background-color: #D0E9F5; - } - - .ui-tooltip-blue .ui-tooltip-close .ui-icon{ - background: #4D9FBF url('images/close-blue.png') no-repeat 50% 50%; - } - - -/*! Add shadows to your tooltips in all supported browsers */ -.ui-tooltip-shadow{ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3); - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3); - - filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=5, OffY=5, Color='gray'); - -ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=5, OffY=5, Color='gray')"; -} - -div.ui-tooltip-tip{ - position: absolute; - margin: 0 auto; - overflow: hidden; - - line-height: 0.1px; - font-size: 1px; - - background: transparent !important; - border: 0px !important; - z-index: 10; -} - - div.ui-tooltip-tip *{ - line-height: 0.1px; - font-size: 0.1px; - } - - div.ui-tooltip-tip div{ - background: transparent !important; - border: 0px dashed transparent; - } - -#qtip-overlay{ - position: absolute; - left: -10000em; - top: -10000em; - - background-color: black; - cursor: pointer; - - /* Set this to any below 15000 (default starting z-index for qTips) */ - z-index: 14999; -} - -/*! Youtube tooltip style */ -div.ui-tooltip-youtube .ui-tooltip-wrapper{ - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - - -webkit-box-shadow: 0 0 3px #333; - -moz-box-shadow: 0 0 3px #333; - box-shadow: 0 0 3px #333; - - border-color: #CCCCCC; - border-width: 1px; - - color: white; -} - - div.ui-tooltip-youtube .ui-tooltip-close .ui-icon{ - background: #4D9FBF url('images/close-dark.png') no-repeat 50% 50%; - } - - div.ui-tooltip-youtube .ui-tooltip-titlebar, - div.ui-tooltip-youtube .ui-tooltip-content{ - background-color: rgba(0, 0, 0, 0.85); - } - - /* IE6 Fallback */ - * html div.ui-tooltip-youtube-wrapper{ - background-color: black; - } - - -/* jQuery TOOLS Tooltip style */ -div.ui-tooltip-jtools .ui-tooltip-wrapper{ - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - - border-color: white; - border-width: 2px; - - -webkit-box-shadow: 0 0 12px #333; - -moz-box-shadow: 0 0 12px #333; - box-shadow: 0 0 12px #333; - - background-color: rgba(0, 0, 0, 0.7); - background-image: -moz-linear-gradient(top, #717171, #232323); - background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323)); - filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#232323); - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#232323)"; - - color: white; -} - - div.ui-tooltip-jtools .ui-tooltip-titlebar, - div.ui-tooltip-jtools .ui-tooltip-content{ - background: none; - } - - div.ui-tooltip-jtools .ui-tooltip-close .ui-icon{ - background: black url('images/close-dark.png') no-repeat 50% 50%; - } - - -/* Cluetip style */ -div.ui-tooltip-cluetip .ui-tooltip-wrapper{ - border-width: 0; - - -webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); - -moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); - box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); -} - - div.ui-tooltip-cluetip .ui-tooltip-titlebar{ - background-color: #87876A; - color: white; - } - div.ui-tooltip-cluetip .ui-tooltip-content{ - background-color: #D9D9C2; - color: #111; - } - diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/ldt.css --- a/web/ldt/media/css/ldt.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,122 +0,0 @@ -#addldtform -{ - font-size: 16px; - background: #ffffff scroll repeat 0 0; - border: 1px solid #666666; - text-align: left; - width: 700px; -} - -#addldtform .title -{ - color: #666666; - font-weight:bold !important; - font-size:16px; - position: relative; - padding:8px 12px; -} - -#addldtform .title .closebutton -{ - float: right; - text-decoration: none; - color:#666666; -} - - -#addldtform .form-row -{ - border-bottom: 1px solid #eeeeee; - font-size: 15px; - padding: 8px 12px; -} - -#addldtform label -{ - float: left; - padding: 3px 8px 0 0; - width:8em; - color: #333333 !important; - font-weight: bold !important; -} -#addldtform input -{ - font-size: 15px; - font-weight: normal; - padding:2px 3px; - vertical-align: middle; - margin : 2px 0; - background-color: #ffffff; - border: 1px solid #cccccc; -} - -#addldtform .checkbox -{ - padding: 6px 3px 3px 30px; -} - -#addldtform .submit-row input -{ - color:black; - border-color:#DDDDDD #AAAAAA #AAAAAA #DDDDDD; - background:#dddddd; - padding: 3px; - margin:0 10px 10px 10px; -} -/* -#ldtlist{ - width:60%; - overflow:auto; - padding:1em; -} -*/ -#ldtlist table { - border-collapse: collapse; - border-color: #ccc; - width:100%; -} -#ldtlist table caption{ - color:black; - font-size:15px; - font-weight:bold; - padding:5px; - text-align:left; - text-transform:uppercase; -} -#ldtlist td, th { - font-size: 11px; - line-height: 13px; - border-bottom: 1px solid #eee; - vertical-align: top; - padding: 5px; - font-family: "Lucida Grande", Verdana, Arial, sans-serif; -} - - -#ldtlist table thead { - color: #666; - padding: 2px 5px; - font-size: 13px; - background: #e1e1e1 url(../../admin/img/admin/nav-bg.gif) top left repeat-x; - border-left: 1px solid #ddd; - border-bottom: 1px solid #ddd; - white-space: nowrap; - vertical-align: middle; - font-weight: bold; - text-align: center; -} - -#ldtlist table tbody td { - border-left: 1px solid #ddd; - text-align: center; -} - -#ldtlist table tbody td:first-child { - border-left: 0; - border-right: 1px solid #ddd; - text-align: left; -} - -#ldtlist table tfoot { - color: #666; -} diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/ldtform.css --- a/web/ldt/media/css/ldtform.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,140 +0,0 @@ -@charset "UTF-8"; - -body { - min-width: 0; -} - -#add_content, #add_contribution { - padding: 10px; -} - - -#add_content input, #add_content textarea, #add_content select, -#add_contribution input, #add_contribution textarea, #add_contribution select -{ - background: #ededed; - width: 250px; -} - -#add_contribution input[type="checkbox"] { - width: auto; -} - - -#add_content textarea { - height : 125px; -} - -#add_content li { - list-style: none; -} - - -label { - display: block; - margin-top: 0.5em; -} - -#add_content .vDateField,#add_content .vTimeField { - width: 90px; - float: left; -} - -.projectscontentstitle { - border-bottom: 1px solid black; -} - -#submitcontent { - border-top: 1px solid black; - padding-top : 10px; -} - -#submitcontent-buttons { - text-align: right; -} - -#submitcontent-loader { - text-align: left; -} - -.submitcontent-loader-content { - display: none; -} - - -#submitcontent-loader-msg { - padding-left: 6px; -} - - -#submitcontent-buttons input[type="submit"], #submitcontent-buttons button { - background-color: #656565; - color: white; - width:auto; - font-weight: bold; - padding: 5px 10px; -} - -.datetimeshortcuts { - float: left; -} - -.ldtdatetime { - float: left; - width: 350px; -} - -.ldtdate,.ldttime { - float: left; - width: 150px; -} - -.ldtdatetitle,.ldttimetitle { - color: #666; -} - -#contentformhidden { - display: none; -} - -#contentformfields { - margin: 10px 0px; -} - -.cellcheckbox { - text-align: center; - width: 70 px; -} - -#contentslistheader { - padding: 1px 10px 1px 36px; -} - -#ldtcreatetablewrapperdiv { - height: 282px; -} - -#ldtcreatecontentstablediv { - max-height: 280px; -} - -#ldtcreatecontentslistcontainer { - padding: 5px 0px 20px 0px; - height: 300px; -} - -#media_fields_div { - width : 338px; - height : 50px; - margin-top: 10px 0px; - padding-left: 10px; - border: 1px solid #DDD; -} - -.error_message { - padding: 3em 2em; - font-size: larger; - font-weight: bold; -} - - diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/nyroModal.css --- a/web/ldt/media/css/nyroModal.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -@charset "UTF-8"; - -div#nyroModalFull { - font-size: 12px; - color: #777; -} -div#nyroModalLoading { - border: 4px solid #777; - width: 150px; - height: 150px; - text-indent: -9999em; - background: #fff url(../img/ajax-loader-43x43.gif) no-repeat; - background-position: center; -} -div#nyroModalLoading.error { - border: 4px solid #f66; - line-height: 20px; - padding: 20px; - width: 300px; - height: 100px; - text-indent: 0; - background: #fff; -} -div#nyroModalWrapper { - background: #fff; - border-color: #777; - border-style: solid; - border-width: 24px 4px 4px 4px; -} -a#closeBut { - position: absolute; - display: block; - top: -19px; - right: 0px; - width: 16px; - height: 16px; - text-indent: -9999em; - background: url(../img/close.png) no-repeat; - outline: 0; -} -h1#nyroModalTitle { - margin: 0; - padding: 0; - position: absolute; - top: -22px; - left: 5px; - font-size: 12px; - color: #ddd; -} -div#nyroModalContent { - overflow: auto; -} -div.wrapper div#nyroModalContent { - padding: 5px; -} -div.wrapperImg div#nyroModalContent { - position: relative; - overflow: hidden; - text-align: center; -} -div.wrapperImg img { - vertical-align: baseline; -} -div.wrapperImg div#nyroModalContent div { - position: absolute; - bottom: 0; - left: 0; - background: black; - padding: 10px; - margin: 10px; - border: 1px white dotted; - overflow: hidden; - opacity: 0.2; - filter: alpha(opacity=20); -} -div.wrapperImg div#nyroModalContent div:hover { - opacity: 0.5; - filter: alpha(opacity=50); - cursor: help; -} -a.nyroModalPrev, a.nyroModalNext { - z-index: 105; - outline: none; - position: absolute; - top: 0; - height: 100%; - width: 40%; - cursor: pointer; - text-indent: -9999em; - background: left 20% no-repeat; - background-image: url(data:image/gif;base64,AAAA); /* Trick IE6 */ -} -div.wrapperSwf a.nyroModalPrev, div.wrapperSwf a.nyroModalNext, div.wrapper a.nyroModalPrev, div.wrapper a.nyroModalNext { - height: 60%; - width: 20%; -} -a.nyroModalPrev { - left: 0; -} -a.nyroModalPrev:hover { - background-image: url(../img/prev.gif); -} -a.nyroModalNext { - right: 0; - background-position: right 20%; -} -a.nyroModalNext:hover { - background-image: url(../img/next.gif); -} \ No newline at end of file diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/registration.css --- a/web/ldt/media/css/registration.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* style for registration */ - -label.error { - float: none; - color: red; - padding-left: .5em; - vertical-align: middle; -} - -#login_links { - height: 127px; -} - -#login_links_list { - border-left: 1px solid black; - height: 90%; - padding-top: 6px; -} - -#login_links_list ul { - list-style: none; -} - - -#loginform_div ul { - list-style: none; -} - -#loginform_div label { - display: inline; - float: left; - width: 110px; -} diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/style.css --- a/web/ldt/media/css/style.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,279 +0,0 @@ -@charset "UTF-8"; - -body { - - font-family: Arial, Helvetica, sans serif; - font-size: 12px; - color: #4F5155; - margin: 5px; - padding: 0px; - min-width:750px; - text-align: justify; -} - -a img,a:link img, a:active img, a:visited img, a:hover img { - border:0px; -} - - -a:link -{ - text-decoration: none; - color: #2181b1; - text-decoration: none; - font-family: Arial, Helvetica, sans-serif; - /*font-weight: bold;*/ -} - -a:hover -{ - color: #2181b1; - text-decoration: none; - font-family: Arial, Helvetica, sans-serif; - /*border-bottom-width: 1px; - border-bottom-style: dashed; - border-bottom-color: #2c8084; - /*font-weight: bold;*/ -} -a:visited { - color: #2181b1; - font-family: Arial, Helvetica, sans-serif; - /*font-weight: bold;*/ -} - - -#header -{ - padding: .5em; - border-bottom: 1px solid gray; - border-left: 1px solid gray; - padding: 1em; -} - -#header a -{ - text-decoration: none; -} - - -#header_left -{ - max-width: 8em; - font-size: 40px; - font-weight : bold; - text-align: left; - text-transform: uppercase; -} - - -#header_left a:hover, #header_left a:visited, #header_left a:link, #header_left a:active, #header_left a:focus -{ - color: #4F5155; - text-decoration: none; -} - - -#header_right -{ - text-align: right; -} - -#header_right a:link -{ - text-decoration: none; - text-decoration: none; - color: white; -} - -#header_right a:hover -{ - text-decoration: none; - color: white; -} - -#header_right a:visited { - text-decoration: none; - color: white; -} - - -#footer -{ - clear: both; - margin: 0; - padding: .5em; - /*background-color: #ddd;*/ - border-top: 1px solid gray; -} - -.version -{ - text-align: right; - color: white; - font-size:9px; -} - -.version a:link -{ - text-decoration: none; - color: white; - text-decoration: bold; - font-weight: bold; - border-bottom-style: none; -} - -.version a:hover -{ - color: #2c8084; - text-decoration: none; - font-weight: bold; - border-bottom-width: 0px; - border-bottom-style: none; -} - -.version a:active -{ - color: white; - text-decoration: none; - font-weight: bold; - border-bottom-style: none; -} - -.version a:visited -{ - color: white; - font-weight: bold; - border-bottom-style: none; -} - -.small -{ - font-size:9px; -} - -.footer_img -{ - float: left; -} - -.footer_img img -{ - padding-left: 10px; - padding-right: 10px; -} - -.footer_img a -{ - color: white; -} - -.footer_img a:link -{ - color: white; -} - -.footer_img a:hover -{ - color: white; -} - -.footer_img a:visited -{ - color: white; -} - - -#home_links -{ - line-height: 150% -} - -#search_form_div { - text-align: center; - padding: 10px; - margin: 10px 10px; - margin-bottom: 30px; - background-color:#ececec; - border: 1px solid #7E7E7E -} - -#search_form ul { - list-style-type: none; - margin: 0; - padding: 0; -} - -#search_form ul li { - display: inline; -} - -#toolbar { - margin-top: 10px; - border-bottom: 3px solid #707070; -} - -#inner_content { - padding: 40px 0px 50px 0px; -} - -#loginstate { - text-align: right; -} - -.projectscontentstitle { - color: #949494; - font-family: Verdana; - font-weight: lighter; - font-size: 2.0em; - font-style: normal; - text-align: left; -} - - -#loginstate a, #loginstate a:hover, #loginstate a:visited, #loginstate a:link, #loginstate a:active { - color:#0063DC; - margin-right:4px; - text-decoration:none; -} - -#loginstate a:hover{ - text-decoration: underline; -} - -#loginstate ul { - margin:0; - padding:0; - float: left; -} -#loginstate li{ - display: inline; - padding:0; - margin:0; -} -#loginstate #user{ - color: #000000; - font-weight: bold; - margin-right:4px; -} -#loginstate ul .usertool a, -#loginstate ul .usertool a:link, -#loginstate ul .usertool a:visited { - color:#0063DC; - text-decoration:none; -} - -#loginstate ul .usertool a:hover { - color:#0063DC; - text-decoration:underline; -} - -.errorlist -{ - color: red; - font-size:12px -} - - - - - diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/style_base.css --- a/web/ldt/media/css/style_base.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,202 +0,0 @@ -body -{ font-family: Arial, Helvetica, sans serif; - padding: 0px; - margin: 0px; - background-color: #f9f9f9; - font-size: 12px; -} - -a -{ - color: #0045A3; - text-decoration:none; -} - -a:hover -{ - color: #990000; - text-decoration: underline; -} - -p -{ - font-size:12px; - font-weight:normal; - margin:0; - padding:0; -} - -th -{ - text-align: left; -} -.button -{ - margin: 3px 0; - margin-left: 25px; - background: #3366CC; - padding: 0 6px; - border-color: #6699CC #3366CC #3366CC #6699CC; - border-style: solid; - border-width: 1px 2px 2px 1px; - font-size: 13px; - font-style: normal; - font-weight: bold; - color: #ffffff; -} - -.errorlist -{ - color: red; - font-size:12px -} -#header -{ - background-color: #ffffcc; - height: 50px; -} - -#logo -{ -} - -#usertool -{ -} - -#loginstate -{ - color:#0045A3; -} - -#menu -{ - width: 200px; - vertical-align: top; -} - -#container -{ - width: 90%; - margin: 10px auto; - background-color: #fff; - color: #000; -} -} -#content -{ -} - -#footer -{ -} - -/* page login *//* -#loginarea -{ - margin: 0 auto; - margin-top: 100px; - overflow: hidden; - width: 362px; - border: 2px solid #CCCCCC; -} - -#loginarea .title -{ - font-size: 15px; - color: #FFFFFF; - background: #990000 scroll repeat left top; - font-weight:bold; - height:34px; - position: relative; - line-height: 34px; - overflow: hidden; - text-transform: uppercase; -} - -#loginarea .title div -{ - margin-left: 12px; -} - -#loginarea .login-form -{ - margin-top:20px; - margin-left:25px; -} - -#loginarea .login-form .inputbox -{ - font-size: 13px; - line-height:20px; - text-align: left; -} - -#loginarea .login-form label -{ - font-size: 14px; - font-weight: bold; -} -/* -#loginarea .login-form .button -{ - margin: 3px 0; - margin-left: 25px; - background: #3366CC; - padding: 0 6px; - border-color: #6699CC #3366CC #3366CC #6699CC; - border-style: solid; - border-width: 1px 2px 2px 1px; - font-size: 13px; - font-style: normal; - font-weight: bold; - color: #ffffff; -} - -#loginarea a -{ - font-size: 12px; - background:url("norm_left.gif") no-repeat left top; - padding:5px 15px; - margin: 5px; -} - -#nav { - float:left; - width:100%; - font-size:93%; - line-height:normal; - background:#828282 repeat-x scroll 0 0; - margin:0; - padding:0; - list-style:none; -} - -#nav a:link, -#nav a:visited { - color:#fff; - background:#828282 repeat-x scroll 0 0; - padding:20px 40px 4px 10px; - float:left; - width:auto; - border-right:1px solid #999999; -} - -#nav li a:hover { - color:#fff; - background:#999999 none repeat scroll 0 0; -} - -#space #nav-space a, #profile #nav-profile a -{ - background:#666666 none repeat scroll 0 0; -} - -#space #nav-space, #profile #nav-profile -{ - background:#666666 none repeat scroll 0 0; - color:#FFFFFF; -} -*/ - - diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/tabs.css --- a/web/ldt/media/css/tabs.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +0,0 @@ -/* ----------------------------------------------------------------------- - Taken from: - - Tabs Plugin 0.2 for the Blueprint CSS Framework - http://blueprintcss.org - - * Copyright (c) 2008-Present. Refer to the main Blueprint license. - * See README for instructions on how to use this plugin. - * For credits and origins, see AUTHORS. - ------------------------------------------------------------------------ */ -@charset "UTF-8"; - -.tabs { - height:auto; - margin:0; - overflow:hidden; - padding-left:0; -} -* html .tabs { height:1%; /* fixing IE 6 */ } -.tabs li { - background: #707070 url("../img/tabsright_normal.png") no-repeat right center; - border-bottom:none; - float:left; - line-height:1.5; - list-style-type:none; - margin:0 ; - padding: 0 9px 0 0; - height: 29px; - -} -.tabs li a { - border-bottom:none; - color: #ffffff; - cursor:pointer; - display:block; - float:left; - margin: .5em 2em .5em 2em; - text-transform: capitalize; - font-weight: lighter; -} - -.tabs li.active { - background:#29aae3 url("../img/tabsright_active.png") no-repeat right center; -} - - -.tabs li a.selected { - background:#666; - border:1px solid #666; - border-bottom:none; - color:#fff; - cursor:default; -} -.tabs li a, .tabs li a:focus, .tabs li a:hover { - text-decoration:none; -} -.tabs li a:focus, .tabs li a:hover { - color:#555; - outline:none; -} -.tabs li a.selected:focus, .tabs li a.selected:hover { - color:#fafafa; -} -.tabs li.label { - border:none; - font-weight:bold; - line-height:1.5; - margin-right:.5em; - padding:.25em .33em .25em .33em; -} - diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/css/workspace.css --- a/web/ldt/media/css/workspace.css Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,176 +0,0 @@ -@charset "UTF-8"; - -.titlediv { - margin: 0px 0px 25px 0px; -} - - -.ldt_player_code { - width: 580px; - overflow: auto; - border-style: inset; - border: 1px solid silver; - margin: 10px 5px; - padding: 2px; -} - -.searchfielddiv { - top: 50%; - margin-top: 12px; -} - -.searchfield { - background: white; - border: 1px solid #b8b8b8; - -moz-border-radius: 15px; - -webkit-border-radius:15px; - -khtml-border-radius:15px; - border-radius: 15px; - padding: 2px 5px; -} - -.searchfield img { - vertical-align: middle; - margin-top: 5px; -} - -.searchfieldinput { - color: graytext; - font-style: italic; -} - - -input[type="text"].searchfieldinputbase { - border: none; -} - -.searchclear { - display: none; - float: right; -} - -.searchfieldinputbase { - background: #ffffff url("../img/search.gif") no-repeat left center; - width: 99px; - height: 14px; - margin: 0px 2px 0px 0px; - vertical-align: top; - padding-left: 20px; -} - - -.projectscontentsdiv { - overflow: hidden; - height: 570px; - -} -div.projectscontentsdiv table { - width: 470px; - height: 100%; - margin-bottom: 0; -} - -tr.projectscontentsoddline { - background: #ededed; -} - -tr.projectscontentsevenline { - background: white; -} - - -/* make the TH elements pretty */ -.projectscontentsheader { - background: #b5b5b5; - font-weight: bold; - text-transform:capitalize; - color: white; - padding: 1px 2px; - text-align: left; -} - - -#contentsheader { - padding: 1px 10px 1px 49px; -} - - -#projectsheader { - padding: 1px 10px 1px 93px; -} - -.contenttitle { - width: 411px; - padding: 4px 10px 4px 5px; -} - -.contenttitlelink,.contenttitlelink:link,.contenttitlelink:hover,.contenttitlelink:visited { - text-decoration: none; - color: #4F5155; -} - -.projecttitlelink,.projecttitlelink:link,.projecttitlelink:hover,.projecttitlelink:visited { - text-decoration: none; - color: #4F5155; -} - - -.projecttitle { - width: 367px; - padding: 4px 10px 4px 5px; -} - -.projectscontentsfooter { - background: #8c8c8c; - color: #ffffff; - margin-top: 18px; - font-size: 1.25em; - font-style: normal; - padding : 5px 5px; -} - -.projectscontentstablediv { - max-height: 500px; - overflow: auto; overflow-x: hidden; - border-bottom: 2px solid #b5b5b5 ; - float: left; -} -.projectscontentstablewrapperdiv { - height: 502px; -} - -.projectscontentsbody tr { - padding-right: 16px; -} - -.titlediv { - vertical-align: middle; -} - -.cellimg { - width: 18px; - text-align: center; - padding: 4px 2px 4px 2px; - cursor: pointer; cursor: hand; -} - -.cellimgdiv { - visibility: hidden; -} - -.searchajaxloader { - display: none; - float: right; - z-index: +1; -} - -a.content_link_create:link, a.content_link_create:visited, -a.ldt_link_create:link, a.ldt_link_create:visited { - color: white; - text-decoration: none; -} - -a.project_link_create:link, a.project_link_create:visited { - color: white; -} - diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/ajax-loader-16x16.gif Binary file web/ldt/media/img/ajax-loader-16x16.gif has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/ajax-loader-220x19.gif Binary file web/ldt/media/img/ajax-loader-220x19.gif has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/ajax-loader-43x43.gif Binary file web/ldt/media/img/ajax-loader-43x43.gif has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/clear-left.png Binary file web/ldt/media/img/clear-left.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/close.png Binary file web/ldt/media/img/close.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/control_play.gif Binary file web/ldt/media/img/control_play.gif has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/document_add.gif Binary file web/ldt/media/img/document_add.gif has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/document_edit.gif Binary file web/ldt/media/img/document_edit.gif has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/documents_duplicate.gif Binary file web/ldt/media/img/documents_duplicate.gif has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/favicon.ico Binary file web/ldt/media/img/favicon.ico has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/loadingAnimation.gif Binary file web/ldt/media/img/loadingAnimation.gif has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/logo_IRI_footer.png Binary file web/ldt/media/img/logo_IRI_footer.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/plugin.gif Binary file web/ldt/media/img/plugin.gif has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/search.gif Binary file web/ldt/media/img/search.gif has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/tabsright_active.png Binary file web/ldt/media/img/tabsright_active.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/img/tabsright_normal.png Binary file web/ldt/media/img/tabsright_normal.png has changed diff -r 3a30d255c235 -r 59311c28454f web/ldt/media/js/LdtPlayer.min.js --- a/web/ldt/media/js/LdtPlayer.min.js Sun Nov 14 20:25:22 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/* - * - * Copyright 2010 Institut de recherche et d'innovation - * contributor(s) : Samuel Huron - * - * contact@iri.centrepompidou.fr - * http://www.iri.centrepompidou.fr - * - * This software is a computer program whose purpose is to show and add annotations on a video . - * This software is governed by the CeCILL-C license under French law and - * abiding by the rules of distribution of free software. You can use, - * modify and/ or redistribute the software under the terms of the CeCILL-C - * license as circulated by CEA, CNRS and INRIA at the following URL - * "http://www.cecill.info". - * - * The fact that you are presently reading this means that you have had - * knowledge of the CeCILL-C license and that you accept its terms. -*/ -if(window.__IriSP===undefined)var __IriSP={};__IriSP.config={metadata:{format:"cinelab",src:"http://exp.iri.centrepompidou.fr/franceculture/franceculture/ldt/cljson/id/ef4dcc2e-8d3b-11df-8a24-00145ea4a2be",load:"jsonp"},gui:{width:650,height:0,mode:"radio",container:"LdtPlayer",debug:false,css:"../src/css/LdtPlayer.css"},player:{type:"jwplayer",src:"../res/swf/player.swf"},module:null}; -__IriSP.lib={jQuery:"http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js",jQueryUI:"http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js",jQueryToolTip:"http://cdn.jquerytools.org/1.2.4/all/jquery.tools.min.js",swfObject:"http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js",cssjQueryUI:"http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css"};__IriSP.LdtShareTool="\n \n \n \n \n "; -__IriSP.MyLdt=null;__IriSP.MyTags=null;__IriSP.MyApiPlayer=null;__IriSP.player=null;__IriSP.Durration=null;__IriSP.playerLdtWidth=null;__IriSP.playerLdtHeight=null; -__IriSP.init=function(a){function b(){var f=document.createElement("script");f.setAttribute("type","text/javascript");f.setAttribute("src",__IriSP.lib.jQueryToolTip);f.onload=c;f.onreadystatechange=function(){if(this.readyState=="complete"||this.readyState=="loaded")c("jquery.tools.min.js loded")};var i=document.createElement("script");i.setAttribute("type","text/javascript");i.setAttribute("src",__IriSP.lib.swfObject);i.onload=c;i.onreadystatechange=function(){if(this.readyState=="complete"||this.readyState== -"loaded")c("swfobject.js loded")};var j=document.createElement("script");j.setAttribute("type","text/javascript");j.setAttribute("src",__IriSP.lib.jQueryUI);j.onload=c;j.onreadystatechange=function(){if(this.readyState=="complete"||this.readyState=="loaded")c("jquery-ui.min.js loded")};(document.getElementsByTagName("head")[0]||document.documentElement).appendChild(f);(document.getElementsByTagName("head")[0]||document.documentElement).appendChild(j);(document.getElementsByTagName("head")[0]||document.documentElement).appendChild(i)} -function c(){g+=1;g===3&&d()}function d(){__IriSP.jQuery=window.jQuery.noConflict(true);__IriSP.jQuery(document).ready(function(f){var i=__IriSP.jQuery("",{rel:"stylesheet",type:"text/css",href:__IriSP.lib.cssjQueryUI,"class":"dynamic_css"}),j=__IriSP.jQuery("",{rel:"stylesheet",type:"text/css",href:__IriSP.config.gui.css,"class":"dynamic_css"});i.appendTo("head");j.appendTo("head");f.browser.msie&&f(".dynamic_css").clone().appendTo("head");__IriSP.createMyHtml();__IriSP.jQuery.ajax({dataType:"jsonp", -url:h,success:function(e){__IriSP.trace("ajax","success");if(e==="")alert("ERREUR DE CHARGEMENT JSON");else{new __IriSP.Media(e.medias[0].id,e.medias[0].href,e.medias[0].meta["dc:duration"],e.medias[0]["dc:title"],e.medias[0]["dc:description"]);__IriSP.trace("__IriSP.MyApiPlayer",__IriSP.config.gui.width+" "+__IriSP.config.gui.height+" "+e.medias[0].href+" "+e.medias[0].meta["dc:duration"]+" "+e.medias[0].meta.item.value);__IriSP.MyApiPlayer=new __IriSP.APIplayer(__IriSP.config.gui.width,__IriSP.config.gui.height, -e.medias[0].href,e.medias[0].meta["dc:duration"],e.medias[0].meta.item.value);__IriSP.trace("__IriSP.init.main","__IriSP.Ligne");__IriSP.MyLdt=new __IriSP.Ligne(e["annotation-types"][0].id,e["annotation-types"][0]["dc:title"],e["annotation-types"][0]["dc:description"],e.medias[0].meta["dc:duration"]);__IriSP.trace("__IriSP.init.main","__IriSP.Tags");__IriSP.MyTags=new __IriSP.Tags(e.tags);__IriSP.jQuery.each(e.annotations,function(l,k){k.meta["id-ref"]==__IriSP.MyLdt.id&&__IriSP.MyLdt.addAnnotation(k.id, -k.begin,k.end,k.media,k.content.title,k.content.description,k.content.color,k.tags)});__IriSP.jQuery.each(e.lists,function(){__IriSP.trace("lists","")});__IriSP.jQuery.each(e.views,function(){__IriSP.trace("views","")})}},error:function(e){alert("ERROR : "+e)}})})}__IriSP.config=a;var h=__IriSP.config.metadata.src;__IriSP.jQuery=null;if(window.jQuery===undefined||window.jQuery.fn.jquery!=="1.4.2"){a=document.createElement("script");a.setAttribute("type","text/javascript");a.setAttribute("src",__IriSP.lib.jQuery); -a.onload=b;a.onreadystatechange=function(){if(this.readyState=="complete"||this.readyState=="loaded")b()};(document.getElementsByTagName("head")[0]||document.documentElement).appendChild(a)}else{__IriSP.jQuery=window.jQuery;b()}var g=0}; -__IriSP.createMyHtml=function(){var a=__IriSP.config.gui.width;__IriSP.jQuery("\n\t\n\t\tGet flash to see this player\t\n\t\n\t\n\t\t\n\t\t\tLecture / Pause \n\t\t\tSuivant\n\t\t\n\t\t\n\t\t\t\n\t\n\t\t\n\t\t\t Partager \n\t\t\tSound\n\t\t\n \n \n \t \n \n\n\n \n\t\n\t\t\n\t\t\n \t\t