MediaWiki:Gadget-GlossaryGraph.js: Difference between revisions

Jump to navigation Jump to search
AdminIsidore (talk | contribs)
No edit summary
AdminIsidore (talk | contribs)
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 12: Line 12:


             var term = pageTitle.split(':').pop().toLowerCase();
             var term = pageTitle.split(':').pop().toLowerCase();
            var smwQuery = encodeURIComponent('[[Category:Glossary Entries]]|?Glossary-Term|?Glossary-Definition|limit=50');
             new mw.Api().get({
             new mw.Api().get({
                 action: 'ask',
                 action: 'askargs',
                 query: smwQuery,
                 conditions: 'Category:Glossary Entries',
                printouts: 'Glossary-Term|Glossary-Definition',
                parameters: 'limit=50',
                 format: 'json',
                 format: 'json',
                 formatversion: 2
                 formatversion: 2
Line 67: Line 68:


                 var node = svg.append('g')
                 var node = svg.append('g')
                     .selectAll('circle')
                     .selectAll('g')
                     .data(nodes)
                     .data(nodes)
                     .enter().append('circle')
                     .enter().append('g')
                    .attr('r', 10)
                    .attr('fill', '#00CC00')
                     .call(d3.drag()
                     .call(d3.drag()
                         .on('start', function(event, d) {
                         .on('start', function(event, d) {
Line 87: Line 86:
                             d.fy = null;
                             d.fy = null;
                         }));
                         }));
                node.append('circle')
                    .attr('r', 10)
                    .attr('fill', '#00CC00');
                node.append('text')
                    .attr('dx', 12)
                    .attr('dy', '.35em')
                    .text(d => d.id.split(':').pop()) // Show short term name (e.g., "Dictum")
                    .style('fill', '#00FF00')
                    .style('font-family', 'IBMPlexMono, "Courier New", monospace')
                    .style('font-size', '12px');


                 node.append('title').text(d => d.id);
                 node.append('title').text(d => d.id);
Line 95: Line 106:
                         .attr('x2', d => d.target.x)
                         .attr('x2', d => d.target.x)
                         .attr('y2', d => d.target.y);
                         .attr('y2', d => d.target.y);
                     node.attr('cx', d => d.x)
                     node.attr('transform', d => `translate(${d.x},${d.y})`);
                        .attr('cy', d => d.y);
                 });
                 });
             }).fail(function(jqXHR, textStatus, errorThrown) {
             }).fail(function(jqXHR, textStatus, errorThrown) {
Line 105: Line 115:
                     responseText: jqXHR.responseText,
                     responseText: jqXHR.responseText,
                     statusCode: jqXHR.status,
                     statusCode: jqXHR.status,
                     url: 'https://www.ooda.wiki/api.php?action=ask&query=' + smwQuery + '&format=json&formatversion=2'
                     url: 'https://www.ooda.wiki/api.php?action=askargs&conditions=Category:Glossary%20Entries&printouts=Glossary-Term|Glossary-Definition&parameters=limit=50&format=json&formatversion=2'
                 });
                 });
             });
             });