Skip to content

Commit

Permalink
Add ability to toggle dependencies in a category
Browse files Browse the repository at this point in the history
Clicking on either 'Project Dependencies' or 'Development Dependencies' will toggle the display of the dependencies underneath
  • Loading branch information
BrainMaestro committed Feb 27, 2017
1 parent d87d073 commit a21b899
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 9 deletions.
31 changes: 23 additions & 8 deletions src/display.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
readme.insertBefore(header, license);
readme.insertBefore(table, license);

addDependencies(body, deps, config.registry);
addDependencies(body, devDeps, config.registry, true);
addDependencies(body, deps, config.registry, config.name);
addDependencies(body, devDeps, config.registry, config.name, true);

function addTableHeader(header) {
var tableHeader = document.createElement('th');
Expand All @@ -30,17 +30,19 @@
}

function toggleTable() {
table.style.display = table.style.display == 'block' ? 'none' : 'block';
toggle(table);
}
}

function addDependencies(body, deps, registry, dev) {
function addDependencies(body, deps, registry, name, dev) {
var className = name + (dev ? 'dep' : 'devDep');
if (deps) {
body.appendChild(subHeader(dev))
body.appendChild(subHeader(dev, className))
}

for (depName in deps) {
var row = document.createElement('tr');
row.className = className;
addName(row, depName);
addVersion(row, deps[depName]);
addVersion(row, '-');
Expand All @@ -51,17 +53,26 @@
}
}

function subHeader(dev) {
function subHeader(dev, className) {
var row = document.createElement('tr');
var td = document.createElement('td');
var header = document.createElement('strong');

header.textContent = dev ? 'Development Dependencies' : 'Project Dependencies';
td.colSpan = tableHeaders.length;
row.style.cursor = 'pointer';
row.onclick = toggleDependencies;
td.appendChild(header);
row.appendChild(td);

return row;

function toggleDependencies() {
var rows = document.getElementsByClassName(className);
for (var i = 0; i < rows.length; i++) {
toggle(rows[i]);
}
}
}

function addName(row, name) {
Expand Down Expand Up @@ -90,10 +101,14 @@
var table = this.parentNode.parentNode;
var header = table.previousSibling;

table.style.display = 'block';
header.style.display = 'block';
table.style.display = '';
header.style.display = '';
header.style.cursor = 'pointer';
}

function toggle(element) {
element.style.display = element.style.display === 'none' ? '' : 'none';
}

window.display = display;
})();
2 changes: 1 addition & 1 deletion src/manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Package Hub",
"version": "0.4.0",
"version": "0.5.0",
"manifest_version": 2,
"description": "Display dependencies for many package managers on GitHub",
"author": "Ezinwa Okpoechi",
Expand Down

0 comments on commit a21b899

Please sign in to comment.