diff options
| author | Greg Roach <fisharebest@gmail.com> | 2015-11-23 23:28:27 +0000 |
|---|---|---|
| committer | Greg Roach <fisharebest@gmail.com> | 2015-11-23 23:28:27 +0000 |
| commit | 413b2af6beda5647cabfc13f5b36b41f82bfd072 (patch) | |
| tree | 3571315dc381ca50eb88e0973675e20c7d20b54d | |
| parent | 401b239a83a71be411346a03b680cb30b4387226 (diff) | |
| download | webtrees-413b2af6beda5647cabfc13f5b36b41f82bfd072.tar.gz webtrees-413b2af6beda5647cabfc13f5b36b41f82bfd072.tar.bz2 webtrees-413b2af6beda5647cabfc13f5b36b41f82bfd072.zip | |
Fix 789866 - invalid HTML in individual/family sidebar
| -rw-r--r-- | app/Module/FamiliesSidebarModule.php | 34 | ||||
| -rw-r--r-- | app/Module/IndividualSidebarModule.php | 34 |
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>'; |
