Empty table cells have clickable area, even if empty
svn: r13732
This commit is contained in:
parent
4434fd6542
commit
08aaa658eb
@ -345,6 +345,7 @@ table tr td.TableDataCell {
|
|||||||
}
|
}
|
||||||
|
|
||||||
table tr td.TableDataCell a {
|
table tr td.TableDataCell a {
|
||||||
|
display: block;
|
||||||
color: black;
|
color: black;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
@ -22,9 +22,9 @@
|
|||||||
<span class="grampsid">[{{event.gramps_id}}]</span></a>
|
<span class="grampsid">[{{event.gramps_id}}]</span></a>
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<td><a href="/{{view}}/{{event.handle|escape}}">{{event.event_type|escape}}</a>
|
<td><a href="/{{view}}/{{event.handle|escape}}">{{event.event_type|escape}}</a>
|
||||||
<td><a href="/{{view}}/{{event.handle|escape}}">{{event.description|escape}}</a>
|
<td><a href="/{{view}}/{{event.handle|escape}}">{{event.description|nbsp}}</a>
|
||||||
<td><a href="/{{view}}/{{event.handle|escape}}">{{event|display_date}}</a>
|
<td><a href="/{{view}}/{{event.handle|escape}}">{{event|display_date|nbsp}}</a>
|
||||||
<td><a href="/{{view}}/{{event.handle|escape}}">{{event.place.title|escape}}</a>
|
<td><a href="/{{view}}/{{event.handle|escape}}">{{event.place.title|nbsp}}</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
|
@ -18,8 +18,8 @@
|
|||||||
<tr class="{% cycle odd,even %}">
|
<tr class="{% cycle odd,even %}">
|
||||||
<td><a href="/{{view}}/{{family.handle|escape}}" class="noThumb">{{ forloop.counter|row_count:page }}</a></td>
|
<td><a href="/{{view}}/{{family.handle|escape}}" class="noThumb">{{ forloop.counter|row_count:page }}</a></td>
|
||||||
<td><a href="/{{view}}/{{family.handle|escape}}" class="noThumb"><span class="grampsid">[{{family.gramps_id}}]</span></a>
|
<td><a href="/{{view}}/{{family.handle|escape}}" class="noThumb"><span class="grampsid">[{{family.gramps_id}}]</span></a>
|
||||||
<td><a href="/{{view}}/{{family.handle|escape}}">{{family.father.name_set|make_name:user}}</a>
|
<td><a href="/{{view}}/{{family.handle|escape}}">{{family.father.name_set|make_name:user|nbsp}}</a>
|
||||||
<td><a href="/{{view}}/{{family.handle|escape}}">{{family.mother.name_set|make_name:user}}</a>
|
<td><a href="/{{view}}/{{family.handle|escape}}">{{family.mother.name_set|make_name:user|nbsp}}</a>
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<td><a href="/{{view}}/{{family.handle|escape}}">{{family.family_rel_type|escape}}</a>
|
<td><a href="/{{view}}/{{family.handle|escape}}">{{family.family_rel_type|escape}}</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
<span class="grampsid">[{{media.gramps_id}}]</span></a>
|
<span class="grampsid">[{{media.gramps_id}}]</span></a>
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<td><a href="/{{view}}/{{media.handle|escape}}">{{media.mime|escape}}</a>
|
<td><a href="/{{view}}/{{media.handle|escape}}">{{media.mime|escape}}</a>
|
||||||
<td><a href="/{{view}}/{{media.handle|escape}}">{{media|display_date}}</a>
|
<td><a href="/{{view}}/{{media.handle|escape}}">{{media|display_date|nbsp}}</a>
|
||||||
<td><a href="/{{view}}/{{media.handle|escape}}">{{media.path|escape}}</a>
|
<td><a href="/{{view}}/{{media.handle|escape}}">{{media.path|escape}}</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td></td>
|
<td></td>
|
||||||
|
@ -27,8 +27,8 @@
|
|||||||
<td><a href="{{name.person.handle|escape}}/" class="grampsid">[{{name.person.gramps_id|escape}}]</a></td>
|
<td><a href="{{name.person.handle|escape}}/" class="grampsid">[{{name.person.gramps_id|escape}}]</a></td>
|
||||||
<td><a href="{{name.person.handle|escape}}/" class="noThumb">{{name.person.gender_type|escape}}</a></td>
|
<td><a href="{{name.person.handle|escape}}/" class="noThumb">{{name.person.gender_type|escape}}</a></td>
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<td><a href="{{name.person.handle|escape}}/" class="noThumb">{{name.person|person_get_birth_date}}</a></td>
|
<td><a href="{{name.person.handle|escape}}/" class="noThumb">{{name.person|person_get_birth_date|nbsp}}</a></td>
|
||||||
<td><a href="{{name.person.handle|escape}}/" class="noThumb">{{name.person|person_get_death_date}}</a></td>
|
<td><a href="{{name.person.handle|escape}}/" class="noThumb">{{name.person|person_get_death_date|nbsp}}</a></td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td><a href="{{name.person.handle|escape}}/" class="noThumb">[Private]</a>
|
<td><a href="{{name.person.handle|escape}}/" class="noThumb">[Private]</a>
|
||||||
<td><a href="{{name.person.handle|escape}}/" class="noThumb">[Private]</a>
|
<td><a href="{{name.person.handle|escape}}/" class="noThumb">[Private]</a>
|
||||||
|
@ -21,8 +21,8 @@
|
|||||||
<span class="grampsid">[{{source.gramps_id}}]</span></a>
|
<span class="grampsid">[{{source.gramps_id}}]</span></a>
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<td><a href="/{{view}}/{{source.handle|escape}}">{{source.title|escape}}</a>
|
<td><a href="/{{view}}/{{source.handle|escape}}">{{source.title|escape}}</a>
|
||||||
<td><a href="/{{view}}/{{source.handle|escape}}">{{source.pubinfo|escape}}</a>
|
<td><a href="/{{view}}/{{source.handle|escape}}">{{source.pubinfo|nbsp}}</a>
|
||||||
<td><a href="/{{view}}/{{source.handle|escape}}">{{source.author|escape}}</a>
|
<td><a href="/{{view}}/{{source.handle|escape}}">{{source.author|nbsp}}</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
|
@ -1,14 +1,21 @@
|
|||||||
from django.template import escape, Library
|
from django.template import escape, Library
|
||||||
|
from django.utils.safestring import mark_safe
|
||||||
from web.utils import *
|
from web.utils import *
|
||||||
import web.utils
|
import web.utils
|
||||||
|
|
||||||
register = Library()
|
register = Library()
|
||||||
|
|
||||||
util_filters = ['person_event_table', 'person_name_table', 'person_source_table', 'person_attribute_table',
|
util_filters = ['person_event_table', 'person_name_table',
|
||||||
'person_address_table', 'person_note_table', 'person_gallery_table', 'person_internet_table',
|
'person_source_table', 'person_attribute_table',
|
||||||
'person_association_table', 'person_lds_table', 'person_reference_table',
|
'person_address_table', 'person_note_table',
|
||||||
'family_children_table', 'family_event_table', 'family_source_table', 'family_attribute_table',
|
'person_gallery_table', 'person_internet_table',
|
||||||
'family_note_table', 'family_gallery_table', 'family_lds_table']
|
'person_association_table', 'person_lds_table',
|
||||||
|
'person_reference_table',
|
||||||
|
'family_children_table', 'family_event_table',
|
||||||
|
'family_source_table', 'family_attribute_table',
|
||||||
|
'family_note_table', 'family_gallery_table',
|
||||||
|
'family_lds_table',
|
||||||
|
'nbsp']
|
||||||
for filter_name in util_filters:
|
for filter_name in util_filters:
|
||||||
func = getattr(web.utils, filter_name)
|
func = getattr(web.utils, filter_name)
|
||||||
func.is_safe = True
|
func.is_safe = True
|
||||||
|
@ -37,6 +37,7 @@ from gen.lib.date import Date as GDate, Today
|
|||||||
from gen.plug import BasePluginManager
|
from gen.plug import BasePluginManager
|
||||||
from cli.grampscli import CLIManager
|
from cli.grampscli import CLIManager
|
||||||
from django.template import escape
|
from django.template import escape
|
||||||
|
from django.utils.safestring import mark_safe
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -68,6 +69,14 @@ def format_number(number, with_grouping=True):
|
|||||||
locale.setlocale(locale.LC_ALL, "en_US.utf8")
|
locale.setlocale(locale.LC_ALL, "en_US.utf8")
|
||||||
return locale.format("%d", number, with_grouping)
|
return locale.format("%d", number, with_grouping)
|
||||||
|
|
||||||
|
def nbsp(string):
|
||||||
|
"""
|
||||||
|
"""
|
||||||
|
if string:
|
||||||
|
return escape(string)
|
||||||
|
else:
|
||||||
|
return mark_safe(" ")
|
||||||
|
|
||||||
class Table(object):
|
class Table(object):
|
||||||
"""
|
"""
|
||||||
>>> table = Table()
|
>>> table = Table()
|
||||||
@ -93,14 +102,16 @@ class Table(object):
|
|||||||
self.table.columns(*args)
|
self.table.columns(*args)
|
||||||
|
|
||||||
def row(self, *args):
|
def row(self, *args):
|
||||||
self.table.row(*args)
|
self.table.row(*[nbsp(arg) for arg in args])
|
||||||
|
|
||||||
def link(self, object_type_name, handle):
|
def link(self, object_type_name, handle):
|
||||||
self.table.set_link_col((object_type_name, handle))
|
self.table.set_link_col((object_type_name, handle))
|
||||||
|
|
||||||
def get_html(self):
|
def get_html(self):
|
||||||
|
# The HTML writer escapes data:
|
||||||
self.table.write(self.doc) # forces to htmllist
|
self.table.write(self.doc) # forces to htmllist
|
||||||
return str(self.doc.doc.htmllist[0])
|
# We have a couple of HTML bits that we want to unescape:
|
||||||
|
return str(self.doc.doc.htmllist[0]).replace("&nbsp;", " ")
|
||||||
|
|
||||||
_ = lambda text: text
|
_ = lambda text: text
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user