mirror of
https://github.com/danbulant/mysqlExporter
synced 2026-07-05 03:10:41 +00:00
Better formatting
This commit is contained in:
parent
d55b0f6a2d
commit
5f0f6fb7ff
1 changed files with 29 additions and 24 deletions
|
|
@ -18,23 +18,23 @@
|
||||||
color: #444;
|
color: #444;
|
||||||
padding: 0 10px
|
padding: 0 10px
|
||||||
}
|
}
|
||||||
|
|
||||||
h1,
|
h1,
|
||||||
h2,
|
h2,
|
||||||
h3 {
|
h3 {
|
||||||
font-family: Simplifica;
|
font-family: Simplifica;
|
||||||
line-height: 1.2
|
line-height: 1.2
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: rgb(0, 140, 255);
|
color: rgb(0, 140, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
a:visited {
|
a:visited {
|
||||||
color: rgb(153, 0, 255);
|
color: rgb(153, 0, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
table,
|
table,
|
||||||
th,
|
th,
|
||||||
td {
|
td {
|
||||||
|
|
@ -48,15 +48,15 @@
|
||||||
width: min(90vw, 900px);
|
width: min(90vw, 900px);
|
||||||
table-layout: fixed;
|
table-layout: fixed;
|
||||||
}
|
}
|
||||||
|
|
||||||
th {
|
th {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
td {
|
td {
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr:hover {
|
tr:hover {
|
||||||
background-color: #444;
|
background-color: #444;
|
||||||
color: white;
|
color: white;
|
||||||
|
|
@ -66,7 +66,8 @@
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
}
|
}
|
||||||
|
|
||||||
.null, .key {
|
.null,
|
||||||
|
.key {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -82,24 +83,22 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
if(window.location.hostname !== "localhost") {
|
if (window.location.hostname !== "localhost") {
|
||||||
console.warn("Fetching info supported only from localhost!");
|
console.warn("Fetching info supported only from localhost!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var dbRes = await fetch("/database");
|
var dbRes = await fetch("/database");
|
||||||
var db = await dbRes.json();
|
var db = await dbRes.json();
|
||||||
if(!dbRes.ok) return console.warn("Couldn't fetch data");
|
if (!dbRes.ok) return console.warn("Couldn't fetch data");
|
||||||
|
|
||||||
app.innerText = "";
|
app.innerText = "";
|
||||||
|
|
||||||
const appTitle = document.createElement("h1");
|
const appTitle = document.createElement("h1");
|
||||||
appTitle.innerText = "Data dictionary of " + db.name;
|
appTitle.innerText = "Data dictionary of " + db.name;
|
||||||
app.appendChild(appTitle);
|
app.appendChild(appTitle);
|
||||||
|
|
||||||
const date = document.createElement("p");
|
const date = document.createElement("p");
|
||||||
var d = new Date();
|
date.innerText = "Loading table information...";
|
||||||
date.innerText = "Generated " + d.toString() + ".";
|
|
||||||
app.appendChild(date);
|
app.appendChild(date);
|
||||||
|
|
||||||
var res = await fetch("/tables");
|
var res = await fetch("/tables");
|
||||||
|
|
@ -108,6 +107,8 @@
|
||||||
var fieldsIgnored = await re.json();
|
var fieldsIgnored = await re.json();
|
||||||
fieldsIgnored = fieldsIgnored.map(el => el.toLowerCase());
|
fieldsIgnored = fieldsIgnored.map(el => el.toLowerCase());
|
||||||
|
|
||||||
|
date.innerText = "Generating data dictionary...";
|
||||||
|
|
||||||
for (var table in tables) {
|
for (var table in tables) {
|
||||||
var data = tables[table];
|
var data = tables[table];
|
||||||
var tableEl = document.createElement("table");
|
var tableEl = document.createElement("table");
|
||||||
|
|
@ -116,7 +117,7 @@
|
||||||
title.innerText = table;
|
title.innerText = table;
|
||||||
app.appendChild(title);
|
app.appendChild(title);
|
||||||
|
|
||||||
if(!data.columns) {
|
if (!data.columns) {
|
||||||
console.error(data);
|
console.error(data);
|
||||||
app.appendChild(htmlToElement("<p>" + data + "<p>"));
|
app.appendChild(htmlToElement("<p>" + data + "<p>"));
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -126,7 +127,7 @@
|
||||||
var comment = document.createElement("p");
|
var comment = document.createElement("p");
|
||||||
comment.innerText = data.comment[0].table_comment;
|
comment.innerText = data.comment[0].table_comment;
|
||||||
app.appendChild(comment);
|
app.appendChild(comment);
|
||||||
} catch(e) { }
|
} catch (e) {}
|
||||||
|
|
||||||
var head = htmlToElement(`
|
var head = htmlToElement(`
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -143,16 +144,16 @@
|
||||||
`);
|
`);
|
||||||
|
|
||||||
tableEl.appendChild(head);
|
tableEl.appendChild(head);
|
||||||
for(var column of data.columns) {
|
for (var column of data.columns) {
|
||||||
var el = "";
|
var el = "";
|
||||||
for(var field in column) {
|
for (var field in column) {
|
||||||
if(fieldsIgnored.includes(field.toLowerCase())) continue;
|
if (fieldsIgnored.includes(field.toLowerCase())) continue;
|
||||||
if(field.toLowerCase() === "privileges") {
|
if (field.toLowerCase() === "privileges") {
|
||||||
column[field] = column[field].split(",").join(", ");
|
column[field] = column[field].split(",").join(", ");
|
||||||
}
|
}
|
||||||
if(column[field]) {
|
if (column[field]) {
|
||||||
el += "<td class='" + field.toLowerCase() + "'>" + column[field] + "</td>";
|
el += "<td class='" + field.toLowerCase() + "'>" + column[field] + "</td>";
|
||||||
} else if(field == "Default") {
|
} else if (field == "Default") {
|
||||||
el += "<td class='" + field.toLowerCase() + "'>null</td>";
|
el += "<td class='" + field.toLowerCase() + "'>null</td>";
|
||||||
} else {
|
} else {
|
||||||
el += "<td class='" + field.toLowerCase() + "'></td>";
|
el += "<td class='" + field.toLowerCase() + "'></td>";
|
||||||
|
|
@ -161,12 +162,16 @@
|
||||||
tableEl.appendChild(htmlToElement(`
|
tableEl.appendChild(htmlToElement(`
|
||||||
<tr>
|
<tr>
|
||||||
${el}
|
${el}
|
||||||
</tr>
|
</tr>
|
||||||
`))
|
`))
|
||||||
}
|
}
|
||||||
|
|
||||||
app.appendChild(tableEl);
|
app.appendChild(tableEl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var d = new Date();
|
||||||
|
date.innerHTML = "Generated " + d.toString() + ".<br>Number of tables: " + Object.keys(tables)
|
||||||
|
.length;
|
||||||
})()
|
})()
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue