home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

6 rows where author_association = "OWNER", issue = 1068791148 and user = 9599 sorted by updated_at descending

✖
✖
✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: created_at (date)

user 1

  • simonw · 6 ✖

issue 1

  • Idea: hover to reveal details of linked row · 6 ✖

author_association 1

  • OWNER · 6 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
984801331 https://github.com/simonw/datasette/issues/1540#issuecomment-984801331 https://api.github.com/repos/simonw/datasette/issues/1540 IC_kwDOBm6k_c46suAz simonw 9599 2021-12-02T16:42:02Z 2021-12-09T23:38:39Z OWNER

I'm going to wrap this up in a plugin for the moment - I want it in Datasette core but I'd like to improve the implementation first with things like support for base_url which will likely depend on #1533 or similar.

Here's the plugin: https://github.com/simonw/datasette-hovercards

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Idea: hover to reveal details of linked row 1068791148  
984053760 https://github.com/simonw/datasette/issues/1540#issuecomment-984053760 https://api.github.com/repos/simonw/datasette/issues/1540 IC_kwDOBm6k_c46p3gA simonw 9599 2021-12-01T21:05:20Z 2021-12-01T21:05:20Z OWNER

I realized you couldn't click the links any more because the hovercard overlapped them, so I changed it to this instead. Need to reconsider the when-to-hide logic though.

javascript hovercard.style.top = (ev.pageY + 15) + 'px';

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Idea: hover to reveal details of linked row 1068791148  
984051925 https://github.com/simonw/datasette/issues/1540#issuecomment-984051925 https://api.github.com/repos/simonw/datasette/issues/1540 IC_kwDOBm6k_c46p3DV simonw 9599 2021-12-01T21:03:16Z 2021-12-01T21:03:16Z OWNER

Needs pageX not clientX because otherwise it doesn't work when you scroll down the page.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Idea: hover to reveal details of linked row 1068791148  
984048965 https://github.com/simonw/datasette/issues/1540#issuecomment-984048965 https://api.github.com/repos/simonw/datasette/issues/1540 IC_kwDOBm6k_c46p2VF simonw 9599 2021-12-01T20:59:26Z 2021-12-01T21:02:58Z OWNER

This is a bit of a mess but it does keep the hovercard around for a moment and then fade it away when you mouse out of it:

```html+jinja {% extends "base.html" %}

{% block content %}

Hovercards demo

Here is a link to a row

<script> let hovercardOuterAnimation = null; let hovercardInnerAnimation = null; let hovercard = document.createElement("div"); hovercard.setAttribute("id", "datasette-hovercard") hovercard.style.width = '300px'; hovercard.style.height = '200px'; hovercard.style.overflow = 'auto'; hovercard.style.backgroundColor = 'white'; hovercard.style.border = '1px solid #ccc'; hovercard.style.padding = '10px'; hovercard.style.position = 'absolute'; hovercard.style.whiteSpace = 'pre'; hovercard.style.display = 'none'; hovercard.style.boxShadow = '1px 2px 8px 2px rgba(0,0,0,0.08)'; document.body.appendChild(hovercard); document.addEventListener("mouseover", async (ev) => { const a = ev.target; if (a.nodeName != 'A') { return; } // TODO: Respect base_url and suchlike if (a.pathname.split("/").length != 4) { return; // Definitely not a row } // OK, it might be a row! Try a fetch let row; if (a.hovercardRowData) { row = a.hovercardRowData; } else { const response = await fetch(a.pathname + ".json?_shape=array"); if (response.status == 200) { const data = await response.json(); row = data[0]; a.hovercardRowData = row; } } if (row) { // Cancel any existing animations if (hovercardOuterAnimation) { clearTimeout(hovercardOuterAnimation); } if (hovercardInnerAnimation) { clearTimeout(hovercardInnerAnimation); } // -15 so mouse pointer starts in the box hovercard.style.top = (ev.pageY - 15) + 'px'; hovercard.style.left = (ev.pageX - 15) + 'px'; hovercard.innerText = JSON.stringify(row, null, 4); hovercard.style.display = 'block'; hovercard.style.opacity = 100; hovercard.style.transition = 'none'; } }); document.addEventListener("mouseout", (ev) => { if (ev.target.id != "datasette-hovercard") { return; } hovercardOuterAnimation = setTimeout(() => { hovercard.style.transition = 'opacity 0.4s ease-in-out'; hovercard.style.opacity = 0; hovercardInnerAnimation = setTimeout(() => { hovercard.style.transition = 'none'; hovercard.style.display = "none"; hovercard.style.opacity = 100; }, 800) }, 400); }) </script>

{% endblock %} ```

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Idea: hover to reveal details of linked row 1068791148  
984037711 https://github.com/simonw/datasette/issues/1540#issuecomment-984037711 https://api.github.com/repos/simonw/datasette/issues/1540 IC_kwDOBm6k_c46pzlP simonw 9599 2021-12-01T20:42:17Z 2021-12-01T20:43:14Z OWNER

A first prototype (saved as templates/pages/hovercard.html and run with datasette fixtures.db --template-dir=templates):

```html+jinja {% extends "base.html" %}

{% block content %}

Hovercards demo

Here is a link to a row

<script> document.addEventListener("mouseover", async (ev) => { const a = ev.target; if (a.nodeName != 'A') { return; } window.A = a; // TODO: Respect base_url and suchlike if (A.pathname.split("/").length != 4) { return; // Definitely not a row } // OK, it might be a row! Try a fetch const response = await fetch(A.pathname + ".json?_shape=array"); if (response.status == 200) { const data = await response.json(); const row = data[0]; if (!a.hovercard) { a.hovercard = document.createElement("div"); a.hovercard.style.width = '300px'; a.hovercard.style.height = '200px'; a.hovercard.style.overflow = 'auto'; a.hovercard.style.backgroundColor = 'white'; a.hovercard.style.border = '1px solid #ccc'; a.hovercard.style.padding = '10px'; a.hovercard.style.position = 'absolute'; a.hovercard.style.whiteSpace = 'pre'; a.hovercard.style.top = ev.clientY + 'px'; a.hovercard.style.left = ev.clientX + 'px'; a.hovercard.style.boxShadow = '1px 2px 8px 2px rgba(0,0,0,0.08)'; document.body.appendChild(a.hovercard); } a.hovercard.innerText = JSON.stringify(row, null, 4); a.hovercard.style.display = 'block'; } }); </script>

{% endblock %} ```

Lots of decisions to make here. Most importantly, when should it be hidden again?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Idea: hover to reveal details of linked row 1068791148  
983985330 https://github.com/simonw/datasette/issues/1540#issuecomment-983985330 https://api.github.com/repos/simonw/datasette/issues/1540 IC_kwDOBm6k_c46pmyy simonw 9599 2021-12-01T19:29:05Z 2021-12-01T19:29:05Z OWNER

The layout of the hover card could be similar to the one used by datasette-cluster-map:

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Idea: hover to reveal details of linked row 1068791148  

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issue_comments] (
   [html_url] TEXT,
   [issue_url] TEXT,
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [created_at] TEXT,
   [updated_at] TEXT,
   [author_association] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [issue] INTEGER REFERENCES [issues]([id])
, [performed_via_github_app] TEXT);
CREATE INDEX [idx_issue_comments_issue]
                ON [issue_comments] ([issue]);
CREATE INDEX [idx_issue_comments_user]
                ON [issue_comments] ([user]);
Powered by Datasette · Queries took 652.582ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows