summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@gmail.com>2015-11-23 23:28:27 +0000
committerGreg Roach <fisharebest@gmail.com>2015-11-23 23:28:27 +0000
commit413b2af6beda5647cabfc13f5b36b41f82bfd072 (patch)
tree3571315dc381ca50eb88e0973675e20c7d20b54d
parent401b239a83a71be411346a03b680cb30b4387226 (diff)
downloadwebtrees-413b2af6beda5647cabfc13f5b36b41f82bfd072.tar.gz
webtrees-413b2af6beda5647cabfc13f5b36b41f82bfd072.tar.bz2
webtrees-413b2af6beda5647cabfc13f5b36b41f82bfd072.zip
Fix 789866 - invalid HTML in individual/family sidebar
-rw-r--r--app/Module/FamiliesSidebarModule.php34
-rw-r--r--app/Module/IndividualSidebarModule.php34
2 files changed, 36 insertions, 32 deletions
diff --git a/app/Module/FamiliesSidebarModule.php b/app/Module/FamiliesSidebarModule.php
index 0ca5445407..7b67e7b078 100644
--- a/app/Module/FamiliesSidebarModule.php
+++ b/app/Module/FamiliesSidebarModule.php
@@ -115,30 +115,32 @@ class FamiliesSidebarModule extends AbstractModule implements ModuleSidebarInter
return false;
});
jQuery("#sb_content_families").on("click", ".sb_fam_surname", function() {
- var surname = jQuery(this).attr("title");
- var alpha = jQuery(this).attr("alt");
+ var element = jQuery(this);
+ var surname = element.data("surname");
+ var alpha = element.data("alpha");
if (!famloadedNames[surname]) {
jQuery.ajax({
- url: "module.php?mod=' . $this->getName() . '&mod_action=ajax&sb_action=families&alpha="+alpha+"&surname="+surname,
+ url: "module.php?mod=' . $this->getName() . '&mod_action=ajax&sb_action=families&alpha=" + encodeURIComponent(alpha) + "&surname=" + encodeURIComponent(surname),
cache: false,
success: function(html) {
- jQuery("#sb_fam_"+surname+" div").html(html);
- jQuery("#sb_fam_"+surname+" div").show("fast");
- jQuery("#sb_fam_"+surname).css("list-style-image", "url(' . Theme::theme()->parameter('image-minus') . ')");
+ jQuery("div.details", element.closest("li"))
+ .html(html)
+ .show("fast")
+ .css("list-style-image", "url(' . Theme::theme()->parameter('image-minus') . ')");
famloadedNames[surname]=2;
}
});
- }
- else if (famloadedNames[surname]==1) {
+ } else if (famloadedNames[surname]==1) {
famloadedNames[surname]=2;
- jQuery("#sb_fam_"+surname+" div").show();
- jQuery("#sb_fam_"+surname).css("list-style-image", "url(' . Theme::theme()->parameter('image-minus') . ')");
- }
- else {
+ jQuery("div.details", jQuery(this).closest("li"))
+ .show()
+ .css("list-style-image", "url(' . Theme::theme()->parameter('image-minus') . ')");
+ } else {
famloadedNames[surname]=1;
- jQuery("#sb_fam_"+surname+" div").hide("fast");
- jQuery("#sb_fam_"+surname).css("list-style-image", "url(' . Theme::theme()->parameter('image-plus') . ')");
+ jQuery("div.details", jQuery(this).closest("li"))
+ .hide("fast")
+ .css("list-style-image", "url(' . Theme::theme()->parameter('image-plus') . ')");
}
return false;
});
@@ -183,8 +185,8 @@ class FamiliesSidebarModule extends AbstractModule implements ModuleSidebarInter
$surnames = QueryName::surnames($tree, '', $alpha, true, true);
$out = '<ul>';
foreach (array_keys($surnames) as $surname) {
- $out .= '<li id="sb_fam_' . $surname . '" class="sb_fam_surname_li"><a href="' . $surname . '" title="' . $surname . '" alt="' . $alpha . '" class="sb_fam_surname">' . $surname . '</a>';
- $out .= '<div class="name_tree_div"></div>';
+ $out .= '<li class="sb_fam_surname_li"><a href="#" data-surname="' . Filter::escapeHtml($surname) . '" data-alpha="' . Filter::escapeHtml($alpha) . '" class="sb_fam_surname">' . Filter::escapeHtml($surname) . '</a>';
+ $out .= '<div class="details"></div>';
$out .= '</li>';
}
$out .= '</ul>';
diff --git a/app/Module/IndividualSidebarModule.php b/app/Module/IndividualSidebarModule.php
index fed9d40d0a..5811cdae72 100644
--- a/app/Module/IndividualSidebarModule.php
+++ b/app/Module/IndividualSidebarModule.php
@@ -116,30 +116,32 @@ class IndividualSidebarModule extends AbstractModule implements ModuleSidebarInt
return false;
});
jQuery("#sb_content_individuals").on("click", ".sb_indi_surname", function() {
- var surname = jQuery(this).attr("title");
- var alpha = jQuery(this).attr("alt");
+ var element = jQuery(this);
+ var surname = element.data("surname");
+ var alpha = element.data("alpha");
if (!loadedNames[surname]) {
jQuery.ajax({
- url: "module.php?mod=' . $this->getName() . '&mod_action=ajax&sb_action=individuals&alpha="+alpha+"&surname="+surname,
+ url: "module.php?mod=' . $this->getName() . '&mod_action=ajax&sb_action=individuals&alpha=" + encodeURIComponent(alpha) + "&surname=" + encodeURIComponent(surname),
cache: false,
success: function(html) {
- jQuery("#sb_indi_"+surname+" div").html(html);
- jQuery("#sb_indi_"+surname+" div").show("fast");
- jQuery("#sb_indi_"+surname).css("list-style-image", "url(' . Theme::theme()->parameter('image-minus') . ')");
+ jQuery("div.details", element.closest("li"))
+ .html(html)
+ .show("fast")
+ .css("list-style-image", "url(' . Theme::theme()->parameter('image-minus') . ')");
loadedNames[surname]=2;
}
});
- }
- else if (loadedNames[surname]==1) {
+ } else if (loadedNames[surname]==1) {
loadedNames[surname]=2;
- jQuery("#sb_indi_"+surname+" div").show("fast");
- jQuery("#sb_indi_"+surname).css("list-style-image", "url(' . Theme::theme()->parameter('image-minus') . ')");
- }
- else {
+ jQuery("div.details", jQuery(this).closest("li"))
+ .show()
+ .css("list-style-image", "url(' . Theme::theme()->parameter('image-minus') . ')");
+ } else {
loadedNames[surname]=1;
- jQuery("#sb_indi_"+surname+" div").hide("fast");
- jQuery("#sb_indi_"+surname).css("list-style-image", "url(' . Theme::theme()->parameter('image-plus') . ')");
+ jQuery("div.details", jQuery(this).closest("li"))
+ .hide("fast")
+ .css("list-style-image", "url(' . Theme::theme()->parameter('image-plus') . ')");
}
return false;
});
@@ -184,8 +186,8 @@ class IndividualSidebarModule extends AbstractModule implements ModuleSidebarInt
$surnames = QueryName::surnames($tree, '', $alpha, true, false);
$out = '<ul>';
foreach (array_keys($surnames) as $surname) {
- $out .= '<li id="sb_indi_' . $surname . '" class="sb_indi_surname_li"><a href="' . $surname . '" title="' . $surname . '" alt="' . $alpha . '" class="sb_indi_surname">' . $surname . '</a>';
- $out .= '<div class="name_tree_div"></div>';
+ $out .= '<li class="sb_indi_surname_li"><a href="#" data-surname="' . Filter::escapeHtml($surname) . '" data-alpha="' . Filter::escapeHtml($alpha) . '" class="sb_indi_surname">' . Filter::escapeHtml($surname) . '</a>';
+ $out .= '<div class="details"></div>';
$out .= '</li>';
}
$out .= '</ul>';