diff --git a/hledger-web/Hledger/Web/Handler/RegisterR.hs b/hledger-web/Hledger/Web/Handler/RegisterR.hs index d8cb8b438d8..838d905fde7 100644 --- a/hledger-web/Hledger/Web/Handler/RegisterR.hs +++ b/hledger-web/Hledger/Web/Handler/RegisterR.hs @@ -117,8 +117,8 @@ registerChartHtml title percommoditytxnreports = $(hamletFile "templates/chart.h shownull c = if null c then " " else c -- | Generate javascript/html for a mockup pie chart -registerPieChartHtml :: BalanceReport -> HtmlUrl AppRoute -registerPieChartHtml (items, _) = $(hamletFile "templates/piechart.hamlet") +registerPieChartHtml :: Text -> BalanceReport -> HtmlUrl AppRoute +registerPieChartHtml q (items, _) = $(hamletFile "templates/piechart.hamlet") where charttitle = "Pie Chart" :: String labelDataTuples = @@ -127,6 +127,7 @@ registerPieChartHtml (items, _) = $(hamletFile "templates/piechart.hamlet") flip concatMap items $ \(accname, _, _, Mixed as) -> flip map as $ \a -> (accname, aquantity a) showChart = if ((length labelDataTuples) > 1) then "true" else "false" :: String + noacctlink = (RegisterR, [("q", T.unwords $ removeInacct q)]) dayToJsTimestamp :: Day -> Integer dayToJsTimestamp d = diff --git a/hledger-web/templates/piechart.hamlet b/hledger-web/templates/piechart.hamlet index 537694392d3..292bd99560e 100644 --- a/hledger-web/templates/piechart.hamlet +++ b/hledger-web/templates/piechart.hamlet @@ -22,7 +22,8 @@ } }, grid: { - hoverable: true + hoverable: true, + clickable: true }, legend: { show: true, @@ -37,5 +38,16 @@ var percent = parseFloat(obj.series.percent).toFixed(2); \$("#piehover").html("" + obj.series.label + " (" + percent + "%)"); }); + \$chartdiv.bind("plotclick", function(event, pos, obj) { + if (!obj) { + return; + } + var baselink = "@?{noacctlink}"; + if (baselink.endsWith("?q")) { + document.location = baselink + "=inacct:%22" + obj.series.label + "%22"; + } else { + document.location = baselink + "%20inacct:%22" + obj.series.label + "%22"; + } + }); } }); diff --git a/hledger-web/templates/register.hamlet b/hledger-web/templates/register.hamlet index 25978a098e3..ad3c0e88a7f 100644 --- a/hledger-web/templates/register.hamlet +++ b/hledger-web/templates/register.hamlet @@ -3,7 +3,7 @@
^{registerChartHtml balancelabel $ transactionsReportByCommodity items} - ^{registerPieChartHtml balancereport } + ^{registerPieChartHtml q balancereport }