mirror of
https://github.com/TrentSPalmer/hugo_themes_report.git
synced 2025-04-07 15:47:06 -07:00
make columns selectable
This commit is contained in:
parent
3eb9282438
commit
7c58e22aa8
@ -472,7 +472,7 @@ if __name__ == "__main__":
|
|||||||
'''
|
'''
|
||||||
or test with
|
or test with
|
||||||
`
|
`
|
||||||
python -c'import rank_hugo_themes; rank_hugo_themes.parse_themes_toml_for_each_hugo_themes() ; rank_hugo_themes.generate_report()''
|
python3 -c'import rank_hugo_themes; rank_hugo_themes.parse_themes_toml_for_each_hugo_themes() ; rank_hugo_themes.generate_report()'
|
||||||
`
|
`
|
||||||
'''
|
'''
|
||||||
get_hugo_themes_list()
|
get_hugo_themes_list()
|
||||||
|
@ -21,16 +21,18 @@
|
|||||||
<button type="button" id="button-for-filter-by-features">Filter By Features</button>
|
<button type="button" id="button-for-filter-by-features">Filter By Features</button>
|
||||||
<button type="button" id="button-for-filter-by-tags-and-features">Filter By Tags & Features</button>
|
<button type="button" id="button-for-filter-by-tags-and-features">Filter By Tags & Features</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="selection-menu">
|
<div id="selection-menu" style="margin-bottom: 1rem;">
|
||||||
</div>
|
</div>
|
||||||
<div id="results">
|
<div id="results">
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var themes = {{ themes }};
|
var themes = {{ themes }};
|
||||||
{% include 'js/buildButton.js' %}
|
{% include 'js/buildButton.js' %}
|
||||||
{% include 'js/buildTagAndFeatureSelectionInputs.js' %}
|
{% include 'js/buildSelectionInputs.js' %}
|
||||||
{% include 'js/getAvailableTagsAndFeatures.js' %}
|
{% include 'js/getAvailableTagsAndFeatures.js' %}
|
||||||
{% include 'js/buildSortByDiv.js' %}
|
{% include 'js/buildSortByDiv.js' %}
|
||||||
|
{% include 'js/buildTagAndFeatureSelectionHeadingRows.js' %}
|
||||||
|
{% include 'js/buildTagAndFeatureSelectionDivs.js' %}
|
||||||
{% include 'js/buildSelectionMenu.js' %}
|
{% include 'js/buildSelectionMenu.js' %}
|
||||||
{% include 'js/buildThemeTableRow.js' %}
|
{% include 'js/buildThemeTableRow.js' %}
|
||||||
{% include 'js/buildPage.js' %}
|
{% include 'js/buildPage.js' %}
|
||||||
|
@ -7,26 +7,6 @@ function getSortBy() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTagSortBy() {
|
|
||||||
let tagSortByNumThemes = document.getElementById("tagSortByNumThemes");
|
|
||||||
if (tagSortByNumThemes === null) {
|
|
||||||
return "numThemes";
|
|
||||||
} else {
|
|
||||||
return tagSortByNumThemes.checked ? "numThemes" : "name";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getFeatureSortBy() {
|
|
||||||
let featureSortByNumThemes = document.getElementById(
|
|
||||||
"featureSortByNumThemes"
|
|
||||||
);
|
|
||||||
if (featureSortByNumThemes === null) {
|
|
||||||
return "numThemes";
|
|
||||||
} else {
|
|
||||||
return featureSortByNumThemes.checked ? "numThemes" : "name";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getSortedThemes(themeList, sortedBy) {
|
function getSortedThemes(themeList, sortedBy) {
|
||||||
if (sortedBy === "date") {
|
if (sortedBy === "date") {
|
||||||
return themeList.sort((a, b) => b.date_in_seconds - a.date_in_seconds);
|
return themeList.sort((a, b) => b.date_in_seconds - a.date_in_seconds);
|
||||||
@ -44,6 +24,22 @@ function getSelectedTags() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getSelectedColumns() {
|
||||||
|
let columnSelectionInputs = document.getElementsByClassName(
|
||||||
|
"columnSelectionInput"
|
||||||
|
);
|
||||||
|
if (columnSelectionInputs.length > 0) {
|
||||||
|
let checked = [...columnSelectionInputs].filter((x) => x.checked);
|
||||||
|
if (checked.length > 0) {
|
||||||
|
return checked.map((y) => y.id.slice(0, -23));
|
||||||
|
} else {
|
||||||
|
return ["cname", "date", "num_stars", "commit"];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return ["cname", "date", "num_stars", "commit"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getSelectedFeatures() {
|
function getSelectedFeatures() {
|
||||||
let featureSelectionInputs = document.getElementsByClassName(
|
let featureSelectionInputs = document.getElementsByClassName(
|
||||||
"featureSelectionInput"
|
"featureSelectionInput"
|
||||||
@ -76,6 +72,8 @@ function getDiplayState() {
|
|||||||
let dState = {};
|
let dState = {};
|
||||||
[
|
[
|
||||||
"sortByRow",
|
"sortByRow",
|
||||||
|
"columnSelectionHeadingRow",
|
||||||
|
"columnSelectionRow",
|
||||||
"tagSelectionHeadingRow",
|
"tagSelectionHeadingRow",
|
||||||
"tagSelectionRow",
|
"tagSelectionRow",
|
||||||
"featureSelectionHeadingRow",
|
"featureSelectionHeadingRow",
|
||||||
@ -84,6 +82,18 @@ function getDiplayState() {
|
|||||||
return dState;
|
return dState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let tableColumns = [
|
||||||
|
{ headingName: "cname", headingText: "theme" },
|
||||||
|
{ headingName: "date", headingText: "date" },
|
||||||
|
{ headingName: "num_stars", headingText: "stars" },
|
||||||
|
{ headingName: "commit", headingText: "commit" },
|
||||||
|
{ headingName: "min_ver", headingText: "minVer" },
|
||||||
|
{ headingName: "license", headingText: "license" },
|
||||||
|
{ headingName: "desc", headingText: "desc" },
|
||||||
|
{ headingName: "tags", headingText: "tags" },
|
||||||
|
{ headingName: "features", headingText: "features" },
|
||||||
|
];
|
||||||
|
|
||||||
function buildResults() {
|
function buildResults() {
|
||||||
let resultsDiv = document.getElementById("results");
|
let resultsDiv = document.getElementById("results");
|
||||||
resultsDiv.innerHTML = "";
|
resultsDiv.innerHTML = "";
|
||||||
@ -95,38 +105,31 @@ function buildResults() {
|
|||||||
let resultsTableHeadRow = document.createElement("tr");
|
let resultsTableHeadRow = document.createElement("tr");
|
||||||
resultsDiv.appendChild(resultsTable);
|
resultsDiv.appendChild(resultsTable);
|
||||||
resultsTable.appendChild(resultsTableHeadRow);
|
resultsTable.appendChild(resultsTableHeadRow);
|
||||||
|
let selectedColumns = getSelectedColumns();
|
||||||
|
|
||||||
let tableHeadingVals = [
|
tableColumns
|
||||||
{'headingName': 'cname', 'headingText': 'theme'},
|
.filter((y) => selectedColumns.includes(y.headingName))
|
||||||
{'headingName': 'date', 'headingText': 'date'},
|
.forEach((x) => {
|
||||||
{'headingName': 'num_stars', 'headingText': 'stars'},
|
let xTH = document.createElement("th");
|
||||||
{'headingName': 'commit', 'headingText': 'commit'},
|
xTH.innerHTML = x.headingText;
|
||||||
{'headingName': 'min_ver', 'headingText': 'minVer'},
|
resultsTableHeadRow.appendChild(xTH);
|
||||||
{'headingName': 'license', 'headingText': 'license'},
|
});
|
||||||
{'headingName': 'desc', 'headingText': 'desc'},
|
|
||||||
{'headingName': 'tags', 'headingText': 'tags'},
|
|
||||||
{'headingName': 'features', 'headingText': 'features'},
|
|
||||||
];
|
|
||||||
|
|
||||||
tableHeadingVals.forEach((x) => {
|
|
||||||
let xTH = document.createElement("th");
|
|
||||||
xTH.innerHTML = x.headingText;
|
|
||||||
resultsTableHeadRow.appendChild(xTH);
|
|
||||||
});
|
|
||||||
|
|
||||||
let selectedTags = getSelectedTags();
|
let selectedTags = getSelectedTags();
|
||||||
let selectedFeatures = getSelectedFeatures();
|
let selectedFeatures = getSelectedFeatures();
|
||||||
let sortedBy = getSortBy();
|
let sortedBy = getSortBy();
|
||||||
let filtered_themes = getFilteredThemes(selectedTags, selectedFeatures);
|
let filtered_themes = getFilteredThemes(selectedTags, selectedFeatures);
|
||||||
let sorted_themes = getSortedThemes(filtered_themes, sortedBy);
|
let sorted_themes = getSortedThemes(filtered_themes, sortedBy);
|
||||||
sorted_themes.forEach((theme) => addThemeTableRow(theme));
|
sorted_themes.forEach((theme) => addThemeTableRow(theme, selectedColumns));
|
||||||
|
|
||||||
|
// from buildSelectionMenu.js
|
||||||
buildSelectionMenu(
|
buildSelectionMenu(
|
||||||
sorted_themes,
|
(sorted_themes = sorted_themes),
|
||||||
sortedBy,
|
(sortedBy = sortedBy),
|
||||||
selectedTags,
|
(selectedTags = selectedTags),
|
||||||
selectedFeatures,
|
(selectedFeatures = selectedFeatures),
|
||||||
getDiplayState()
|
(selectedColumns = selectedColumns),
|
||||||
|
(dState = getDiplayState())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
47
templates/js/buildSelectionInputs.js
Normal file
47
templates/js/buildSelectionInputs.js
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
// called from buildTagAndFeatureSelectionDivs.js
|
||||||
|
function buildInput(item, selected, inpParent) {
|
||||||
|
let inputSelectionButton = document.createElement("button");
|
||||||
|
inputSelectionButton.style.maxWidth = "calc(50% - 2rem)";
|
||||||
|
inputSelectionButton.style.margin = ".5rem";
|
||||||
|
inputSelectionButton.style.display = "flex";
|
||||||
|
inputSelectionButton.style.alignItems = "center";
|
||||||
|
|
||||||
|
let selectionInput = document.createElement("input");
|
||||||
|
selectionInput.style.marginRight = "1rem";
|
||||||
|
selectionInput.type = "checkbox";
|
||||||
|
selectionInput.checked = selected ? true : false;
|
||||||
|
selectionInput.onclick = function () {
|
||||||
|
buildResults();
|
||||||
|
};
|
||||||
|
inputSelectionButton.appendChild(selectionInput);
|
||||||
|
|
||||||
|
let selectionInputLabel = document.createElement("label");
|
||||||
|
selectionInputLabel.style.textAlign = "left";
|
||||||
|
inputSelectionButton.appendChild(selectionInputLabel);
|
||||||
|
inputSelectionButton.onclick = function () {
|
||||||
|
selectionInput.checked = !selectionInput.checked;
|
||||||
|
buildResults();
|
||||||
|
};
|
||||||
|
|
||||||
|
if ("feature" in item) {
|
||||||
|
selectionInput.value = item.feature;
|
||||||
|
inputSelectionButton.style.width = "15rem";
|
||||||
|
selectionInputLabel.innerHTML = `${item.feature} (${item.num_themes})`;
|
||||||
|
selectionInput.classList.add("featureSelectionInput");
|
||||||
|
} else if ("tag" in item) {
|
||||||
|
selectionInput.value = item.tag;
|
||||||
|
inputSelectionButton.style.width = "12rem";
|
||||||
|
selectionInputLabel.innerHTML = `${item.tag} (${item.num_themes})`;
|
||||||
|
selectionInput.classList.add("tagSelectionInput");
|
||||||
|
} else if ("headingName" in item) {
|
||||||
|
selectionInput.value = `${item.headingName}-column`;
|
||||||
|
selectionInputLabel.innerHTML = item.headingText;
|
||||||
|
selectionInput.classList.add("columnSelectionInput");
|
||||||
|
}
|
||||||
|
|
||||||
|
selectionInput.id = `${selectionInput.value}-selection-input`;
|
||||||
|
selectionInput.name = `${selectionInput.id}`;
|
||||||
|
selectionInputLabel.for = `${selectionInput.id}`;
|
||||||
|
|
||||||
|
inpParent.appendChild(inputSelectionButton);
|
||||||
|
}
|
@ -1,183 +1,101 @@
|
|||||||
function buildTagSelectionHeadingRow(selectionMenuDiv, tagSortBy, dState) {
|
function getTagSortBy() {
|
||||||
let tagSelectionHeadingRow = document.createElement("div");
|
let tagSortByNumThemes = document.getElementById("tagSortByNumThemes");
|
||||||
tagSelectionHeadingRow.id = "tagSelectionHeadingRow";
|
if (tagSortByNumThemes === null) {
|
||||||
tagSelectionHeadingRow.style.maxWidth = "100%";
|
return "numThemes";
|
||||||
tagSelectionHeadingRow.style.display = dState.tagSelectionHeadingRow;
|
} else {
|
||||||
tagSelectionHeadingRow.style.justifyContent = "space-around";
|
return tagSortByNumThemes.checked ? "numThemes" : "name";
|
||||||
tagSelectionHeadingRow.style.alignItems = "center";
|
}
|
||||||
|
|
||||||
let tagSelectionHeading = document.createElement("h2");
|
|
||||||
tagSelectionHeading.innerHTML = "Select Tags";
|
|
||||||
|
|
||||||
let tagSortByNameInputButton = buildRadioButton(
|
|
||||||
(inputID = "tagSortByName"),
|
|
||||||
(inputName = "tagSortBy"),
|
|
||||||
(inputValue = "tagSortByName"),
|
|
||||||
(sortedBy = tagSortBy),
|
|
||||||
(sortedBySelector = "name"),
|
|
||||||
(labelText = "Name")
|
|
||||||
);
|
|
||||||
|
|
||||||
let tagSortByNumThemesInputButton = buildRadioButton(
|
|
||||||
(inputID = "tagSortByNumThemes"),
|
|
||||||
(inputName = "tagSortBy"),
|
|
||||||
(inputValue = "tagSortByNumThemes"),
|
|
||||||
(sortedBy = tagSortBy),
|
|
||||||
(sortedBySelector = "numThemes"),
|
|
||||||
(labelText = "nThemes")
|
|
||||||
);
|
|
||||||
|
|
||||||
tagSelectionHeadingRow.appendChild(tagSelectionHeading);
|
|
||||||
tagSelectionHeadingRow.appendChild(tagSortByNameInputButton);
|
|
||||||
tagSelectionHeadingRow.appendChild(tagSortByNumThemesInputButton);
|
|
||||||
selectionMenuDiv.appendChild(tagSelectionHeadingRow);
|
|
||||||
|
|
||||||
let tagSortByNameInput = document.getElementById("tagSortByName");
|
|
||||||
tagSortByNameInputButton.onclick = function () {
|
|
||||||
if (!tagSortByNameInput.checked) {
|
|
||||||
tagSortByNameInput.checked = true;
|
|
||||||
buildResults();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
let tagSortByNumThemesInput = document.getElementById("tagSortByNumThemes");
|
|
||||||
tagSortByNumThemesInputButton.onclick = function () {
|
|
||||||
if (!tagSortByNumThemesInput.checked) {
|
|
||||||
tagSortByNumThemesInput.checked = true;
|
|
||||||
buildResults();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildFeatureSelectionHeadingRow(
|
function getFeatureSortBy() {
|
||||||
selectionMenuDiv,
|
let featureSortByNumThemes = document.getElementById(
|
||||||
featureSortBy,
|
|
||||||
dState
|
|
||||||
) {
|
|
||||||
let featureSelectionHeadingRow = document.createElement("div");
|
|
||||||
featureSelectionHeadingRow.id = "featureSelectionHeadingRow";
|
|
||||||
featureSelectionHeadingRow.style.maxWidth = "100%";
|
|
||||||
featureSelectionHeadingRow.style.display = dState.featureSelectionHeadingRow;
|
|
||||||
featureSelectionHeadingRow.style.justifyContent = "space-around";
|
|
||||||
featureSelectionHeadingRow.style.alignItems = "center";
|
|
||||||
|
|
||||||
let featureSelectionHeading = document.createElement("h2");
|
|
||||||
featureSelectionHeading.innerHTML = "Select Features";
|
|
||||||
|
|
||||||
let featureSortByNameInputButton = buildRadioButton(
|
|
||||||
(inputID = "featureSortByName"),
|
|
||||||
(inputName = "featureSortBy"),
|
|
||||||
(inputValue = "featureSortByName"),
|
|
||||||
(sortedBy = featureSortBy),
|
|
||||||
(sortedBySelector = "name"),
|
|
||||||
(labelText = "Name")
|
|
||||||
);
|
|
||||||
|
|
||||||
let featureSortByNumThemesInputButton = buildRadioButton(
|
|
||||||
(inputID = "featureSortByNumThemes"),
|
|
||||||
(inputName = "featureSortBy"),
|
|
||||||
(inputValue = "featureSortByNumThemes"),
|
|
||||||
(sortedBy = featureSortBy),
|
|
||||||
(sortedBySelector = "numThemes"),
|
|
||||||
(labelText = "nThemes")
|
|
||||||
);
|
|
||||||
|
|
||||||
featureSelectionHeadingRow.appendChild(featureSelectionHeading);
|
|
||||||
featureSelectionHeadingRow.appendChild(featureSortByNameInputButton);
|
|
||||||
featureSelectionHeadingRow.appendChild(featureSortByNumThemesInputButton);
|
|
||||||
selectionMenuDiv.appendChild(featureSelectionHeadingRow);
|
|
||||||
|
|
||||||
let featureSortByNameInput = document.getElementById("featureSortByName");
|
|
||||||
featureSortByNameInputButton.onclick = function () {
|
|
||||||
if (!featureSortByNameInput.checked) {
|
|
||||||
featureSortByNameInput.checked = true;
|
|
||||||
buildResults();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
let featureSortByNumThemesInput = document.getElementById(
|
|
||||||
"featureSortByNumThemes"
|
"featureSortByNumThemes"
|
||||||
);
|
);
|
||||||
featureSortByNumThemesInputButton.onclick = function () {
|
if (featureSortByNumThemes === null) {
|
||||||
if (!featureSortByNumThemesInput.checked) {
|
return "numThemes";
|
||||||
featureSortByNumThemesInput.checked = true;
|
} else {
|
||||||
buildResults();
|
return featureSortByNumThemes.checked ? "numThemes" : "name";
|
||||||
}
|
}
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildTagSelectionDiv(selectedTags, availableTags, tagSortBy, dState) {
|
function buildColumnSelectionHeadingRow(eParent, dState) {
|
||||||
let selectionMenuDiv = document.getElementById("selection-menu");
|
let columnSelectionHeadingRow = document.createElement("div");
|
||||||
buildTagSelectionHeadingRow(selectionMenuDiv, tagSortBy, dState);
|
columnSelectionHeadingRow.id = "columnSelectionHeadingRow";
|
||||||
|
columnSelectionHeadingRow.style.maxWidth = "100%";
|
||||||
|
columnSelectionHeadingRow.style.display = dState.columnSelectionHeadingRow;
|
||||||
|
columnSelectionHeadingRow.style.alignItems = "center";
|
||||||
|
|
||||||
let tagSelectionRow = document.createElement("div");
|
let columnSelectionHeading = document.createElement("h2");
|
||||||
tagSelectionRow.id = "tagSelectionRow";
|
columnSelectionHeading.innerHTML = "Select Columns";
|
||||||
tagSelectionRow.style.display = dState.tagSelectionRow;
|
columnSelectionHeadingRow.appendChild(columnSelectionHeading);
|
||||||
tagSelectionRow.style.flexWrap = "wrap";
|
eParent.appendChild(columnSelectionHeadingRow);
|
||||||
tagSelectionRow.style.justifyContent = "space-around";
|
}
|
||||||
|
|
||||||
selectionMenuDiv.appendChild(tagSelectionRow);
|
function buildColumnSelectionDiv(selectedColumns, dState, eParent) {
|
||||||
|
buildColumnSelectionHeadingRow(eParent, dState);
|
||||||
|
|
||||||
availableTags
|
let columnSelectionRow = document.createElement("div");
|
||||||
.filter((x) => selectedTags.includes(x.tag))
|
columnSelectionRow.id = "columnSelectionRow";
|
||||||
|
columnSelectionRow.style.display = dState.columnSelectionRow;
|
||||||
|
columnSelectionRow.style.flexWrap = "wrap";
|
||||||
|
columnSelectionRow.style.justifyContent = "space-around";
|
||||||
|
eParent.appendChild(columnSelectionRow);
|
||||||
|
|
||||||
|
tableColumns
|
||||||
|
.filter((x) => selectedColumns.includes(x.headingName))
|
||||||
.forEach((y) => {
|
.forEach((y) => {
|
||||||
buildTagSelectionInput(y, true, tagSelectionRow);
|
buildInput(y, true, columnSelectionRow);
|
||||||
});
|
});
|
||||||
|
|
||||||
availableTags
|
tableColumns
|
||||||
.filter((x) => !selectedTags.includes(x.tag))
|
.filter((x) => !selectedColumns.includes(x.headingName))
|
||||||
.forEach((y) => {
|
.forEach((y) => {
|
||||||
buildTagSelectionInput(y, false, tagSelectionRow);
|
buildInput(y, false, columnSelectionRow);
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function buildFeatureSelectionDiv(
|
|
||||||
selectedFeatures,
|
|
||||||
availableFeatures,
|
|
||||||
featureSortBy,
|
|
||||||
dState
|
|
||||||
) {
|
|
||||||
let selectionMenuDiv = document.getElementById("selection-menu");
|
|
||||||
buildFeatureSelectionHeadingRow(selectionMenuDiv, featureSortBy, dState);
|
|
||||||
|
|
||||||
let featureSelectionRow = document.createElement("div");
|
|
||||||
featureSelectionRow.id = "featureSelectionRow";
|
|
||||||
featureSelectionRow.style.display = dState.featureSelectionRow;
|
|
||||||
featureSelectionRow.style.flexWrap = "wrap";
|
|
||||||
featureSelectionRow.style.justifyContent = "space-around";
|
|
||||||
|
|
||||||
selectionMenuDiv.appendChild(featureSelectionRow);
|
|
||||||
|
|
||||||
availableFeatures
|
|
||||||
.filter((x) => selectedFeatures.includes(x.feature))
|
|
||||||
.forEach((y) => {
|
|
||||||
buildFeatureSelectionInput(y, true, featureSelectionRow);
|
|
||||||
});
|
|
||||||
|
|
||||||
availableFeatures
|
|
||||||
.filter((x) => !selectedFeatures.includes(x.feature))
|
|
||||||
.forEach((y) => {
|
|
||||||
buildFeatureSelectionInput(y, false, featureSelectionRow);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// called from buildPage.js
|
||||||
function buildSelectionMenu(
|
function buildSelectionMenu(
|
||||||
sorted_themes,
|
sorted_themes,
|
||||||
sortedBy,
|
sortedBy,
|
||||||
selectedTags,
|
selectedTags,
|
||||||
selectedFeatures,
|
selectedFeatures,
|
||||||
|
selectedColumns,
|
||||||
dState
|
dState
|
||||||
) {
|
) {
|
||||||
let tagSortBy = getTagSortBy();
|
let tagSortBy = getTagSortBy();
|
||||||
let featureSortBy = getFeatureSortBy();
|
let featureSortBy = getFeatureSortBy();
|
||||||
|
let selectionMenuDiv = document.getElementById("selection-menu");
|
||||||
|
|
||||||
|
// from getAvailableTagsAndFeatures.js
|
||||||
let availableTags = getAvailableTags(sorted_themes, tagSortBy);
|
let availableTags = getAvailableTags(sorted_themes, tagSortBy);
|
||||||
|
// from getAvailableTagsAndFeatures.js
|
||||||
let availableFeatures = getAvailableFeatures(sorted_themes, featureSortBy);
|
let availableFeatures = getAvailableFeatures(sorted_themes, featureSortBy);
|
||||||
|
|
||||||
|
// from buildSortByDiv.js
|
||||||
buildSortByDiv(sortedBy, dState.sortByRow);
|
buildSortByDiv(sortedBy, dState.sortByRow);
|
||||||
buildTagSelectionDiv(selectedTags, availableTags, tagSortBy, dState);
|
|
||||||
|
buildColumnSelectionDiv(
|
||||||
|
(selectedColumns = selectedColumns),
|
||||||
|
(dState = dState),
|
||||||
|
(eParent = selectionMenuDiv)
|
||||||
|
);
|
||||||
|
|
||||||
|
// from buildTagAndFeatureSelectionDivs.js
|
||||||
|
buildTagSelectionDiv(
|
||||||
|
(selectedTags = selectedTags),
|
||||||
|
(availableTags = availableTags),
|
||||||
|
(tagSortBy = tagSortBy),
|
||||||
|
(dState = dState),
|
||||||
|
(eParent = selectionMenuDiv)
|
||||||
|
);
|
||||||
|
|
||||||
|
// from buildTagAndFeatureSelectionDivs.js
|
||||||
buildFeatureSelectionDiv(
|
buildFeatureSelectionDiv(
|
||||||
selectedFeatures,
|
(selectedFeatures = selectedFeatures),
|
||||||
availableFeatures,
|
(availableFeatures = availableFeatures),
|
||||||
featureSortBy,
|
(featureSortBy = featureSortBy),
|
||||||
dState
|
(dState = dState),
|
||||||
|
(eParent = selectionMenuDiv)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
// called from buildSelectionMenu.js
|
||||||
function buildSortByDiv(sortedBy, sortByRowDisplay) {
|
function buildSortByDiv(sortedBy, sortByRowDisplay) {
|
||||||
let menuDiv = document.getElementById("selection-menu");
|
let menuDiv = document.getElementById("selection-menu");
|
||||||
menuDiv.innerHTML = "";
|
menuDiv.innerHTML = "";
|
||||||
|
67
templates/js/buildTagAndFeatureSelectionDivs.js
Normal file
67
templates/js/buildTagAndFeatureSelectionDivs.js
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
// called from buildSelectionMenu.js
|
||||||
|
function buildTagSelectionDiv(
|
||||||
|
selectedTags,
|
||||||
|
availableTags,
|
||||||
|
tagSortBy,
|
||||||
|
dState,
|
||||||
|
eParent
|
||||||
|
) {
|
||||||
|
// from buildTagAndFeatureSelectionHeadingRows.js
|
||||||
|
buildTagSelectionHeadingRow(eParent, tagSortBy, dState);
|
||||||
|
|
||||||
|
let tagSelectionRow = document.createElement("div");
|
||||||
|
tagSelectionRow.id = "tagSelectionRow";
|
||||||
|
tagSelectionRow.style.display = dState.tagSelectionRow;
|
||||||
|
tagSelectionRow.style.flexWrap = "wrap";
|
||||||
|
tagSelectionRow.style.justifyContent = "space-around";
|
||||||
|
|
||||||
|
eParent.appendChild(tagSelectionRow);
|
||||||
|
|
||||||
|
availableTags
|
||||||
|
.filter((x) => selectedTags.includes(x.tag))
|
||||||
|
.forEach((y) => {
|
||||||
|
// from buildSelectionInputs.js
|
||||||
|
buildInput(y, true, tagSelectionRow);
|
||||||
|
});
|
||||||
|
|
||||||
|
availableTags
|
||||||
|
.filter((x) => !selectedTags.includes(x.tag))
|
||||||
|
.forEach((y) => {
|
||||||
|
// from buildSelectionInputs.js
|
||||||
|
buildInput(y, false, tagSelectionRow);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// called from buildSelectionMenu.js
|
||||||
|
function buildFeatureSelectionDiv(
|
||||||
|
selectedFeatures,
|
||||||
|
availableFeatures,
|
||||||
|
featureSortBy,
|
||||||
|
dState,
|
||||||
|
eParent
|
||||||
|
) {
|
||||||
|
// from buildTagAndFeatureSelectionHeadingRows.js
|
||||||
|
buildFeatureSelectionHeadingRow(eParent, featureSortBy, dState);
|
||||||
|
|
||||||
|
let featureSelectionRow = document.createElement("div");
|
||||||
|
featureSelectionRow.id = "featureSelectionRow";
|
||||||
|
featureSelectionRow.style.display = dState.featureSelectionRow;
|
||||||
|
featureSelectionRow.style.flexWrap = "wrap";
|
||||||
|
featureSelectionRow.style.justifyContent = "space-around";
|
||||||
|
|
||||||
|
eParent.appendChild(featureSelectionRow);
|
||||||
|
|
||||||
|
availableFeatures
|
||||||
|
.filter((x) => selectedFeatures.includes(x.feature))
|
||||||
|
.forEach((y) => {
|
||||||
|
// from buildSelectionInputs.js
|
||||||
|
buildInput(y, true, featureSelectionRow);
|
||||||
|
});
|
||||||
|
|
||||||
|
availableFeatures
|
||||||
|
.filter((x) => !selectedFeatures.includes(x.feature))
|
||||||
|
.forEach((y) => {
|
||||||
|
// from buildSelectionInputs.js
|
||||||
|
buildInput(y, false, featureSelectionRow);
|
||||||
|
});
|
||||||
|
}
|
105
templates/js/buildTagAndFeatureSelectionHeadingRows.js
Normal file
105
templates/js/buildTagAndFeatureSelectionHeadingRows.js
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
// called from buildTagAndFeatureSelectionDivs.js
|
||||||
|
function buildTagSelectionHeadingRow(eParent, tagSortBy, dState) {
|
||||||
|
let tagSelectionHeadingRow = document.createElement("div");
|
||||||
|
tagSelectionHeadingRow.id = "tagSelectionHeadingRow";
|
||||||
|
tagSelectionHeadingRow.style.maxWidth = "100%";
|
||||||
|
tagSelectionHeadingRow.style.display = dState.tagSelectionHeadingRow;
|
||||||
|
tagSelectionHeadingRow.style.justifyContent = "space-around";
|
||||||
|
tagSelectionHeadingRow.style.alignItems = "center";
|
||||||
|
|
||||||
|
let tagSelectionHeading = document.createElement("h2");
|
||||||
|
tagSelectionHeading.innerHTML = "Select Tags";
|
||||||
|
|
||||||
|
let tagSortByNameInputButton = buildRadioButton(
|
||||||
|
(inputID = "tagSortByName"),
|
||||||
|
(inputName = "tagSortBy"),
|
||||||
|
(inputValue = "tagSortByName"),
|
||||||
|
(sortedBy = tagSortBy),
|
||||||
|
(sortedBySelector = "name"),
|
||||||
|
(labelText = "Name")
|
||||||
|
);
|
||||||
|
|
||||||
|
let tagSortByNumThemesInputButton = buildRadioButton(
|
||||||
|
(inputID = "tagSortByNumThemes"),
|
||||||
|
(inputName = "tagSortBy"),
|
||||||
|
(inputValue = "tagSortByNumThemes"),
|
||||||
|
(sortedBy = tagSortBy),
|
||||||
|
(sortedBySelector = "numThemes"),
|
||||||
|
(labelText = "nThemes")
|
||||||
|
);
|
||||||
|
|
||||||
|
tagSelectionHeadingRow.appendChild(tagSelectionHeading);
|
||||||
|
tagSelectionHeadingRow.appendChild(tagSortByNameInputButton);
|
||||||
|
tagSelectionHeadingRow.appendChild(tagSortByNumThemesInputButton);
|
||||||
|
eParent.appendChild(tagSelectionHeadingRow);
|
||||||
|
|
||||||
|
let tagSortByNameInput = document.getElementById("tagSortByName");
|
||||||
|
tagSortByNameInputButton.onclick = function () {
|
||||||
|
if (!tagSortByNameInput.checked) {
|
||||||
|
tagSortByNameInput.checked = true;
|
||||||
|
buildResults();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let tagSortByNumThemesInput = document.getElementById("tagSortByNumThemes");
|
||||||
|
tagSortByNumThemesInputButton.onclick = function () {
|
||||||
|
if (!tagSortByNumThemesInput.checked) {
|
||||||
|
tagSortByNumThemesInput.checked = true;
|
||||||
|
buildResults();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// called from buildTagAndFeatureSelectionDivs.js
|
||||||
|
function buildFeatureSelectionHeadingRow(eParent, featureSortBy, dState) {
|
||||||
|
let featureSelectionHeadingRow = document.createElement("div");
|
||||||
|
featureSelectionHeadingRow.id = "featureSelectionHeadingRow";
|
||||||
|
featureSelectionHeadingRow.style.maxWidth = "100%";
|
||||||
|
featureSelectionHeadingRow.style.display = dState.featureSelectionHeadingRow;
|
||||||
|
featureSelectionHeadingRow.style.justifyContent = "space-around";
|
||||||
|
featureSelectionHeadingRow.style.alignItems = "center";
|
||||||
|
|
||||||
|
let featureSelectionHeading = document.createElement("h2");
|
||||||
|
featureSelectionHeading.innerHTML = "Select Features";
|
||||||
|
|
||||||
|
let featureSortByNameInputButton = buildRadioButton(
|
||||||
|
(inputID = "featureSortByName"),
|
||||||
|
(inputName = "featureSortBy"),
|
||||||
|
(inputValue = "featureSortByName"),
|
||||||
|
(sortedBy = featureSortBy),
|
||||||
|
(sortedBySelector = "name"),
|
||||||
|
(labelText = "Name")
|
||||||
|
);
|
||||||
|
|
||||||
|
let featureSortByNumThemesInputButton = buildRadioButton(
|
||||||
|
(inputID = "featureSortByNumThemes"),
|
||||||
|
(inputName = "featureSortBy"),
|
||||||
|
(inputValue = "featureSortByNumThemes"),
|
||||||
|
(sortedBy = featureSortBy),
|
||||||
|
(sortedBySelector = "numThemes"),
|
||||||
|
(labelText = "nThemes")
|
||||||
|
);
|
||||||
|
|
||||||
|
featureSelectionHeadingRow.appendChild(featureSelectionHeading);
|
||||||
|
featureSelectionHeadingRow.appendChild(featureSortByNameInputButton);
|
||||||
|
featureSelectionHeadingRow.appendChild(featureSortByNumThemesInputButton);
|
||||||
|
eParent.appendChild(featureSelectionHeadingRow);
|
||||||
|
|
||||||
|
let featureSortByNameInput = document.getElementById("featureSortByName");
|
||||||
|
featureSortByNameInputButton.onclick = function () {
|
||||||
|
if (!featureSortByNameInput.checked) {
|
||||||
|
featureSortByNameInput.checked = true;
|
||||||
|
buildResults();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let featureSortByNumThemesInput = document.getElementById(
|
||||||
|
"featureSortByNumThemes"
|
||||||
|
);
|
||||||
|
featureSortByNumThemesInputButton.onclick = function () {
|
||||||
|
if (!featureSortByNumThemesInput.checked) {
|
||||||
|
featureSortByNumThemesInput.checked = true;
|
||||||
|
buildResults();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
@ -1,68 +0,0 @@
|
|||||||
function buildTagSelectionInput(tag, selected, tagSelectionRow) {
|
|
||||||
let tagSelectionInputButton = document.createElement("button");
|
|
||||||
tagSelectionInputButton.style.width = "12rem";
|
|
||||||
tagSelectionInputButton.style.maxWidth = "calc(50% - 2rem)";
|
|
||||||
tagSelectionInputButton.style.margin = ".5rem";
|
|
||||||
tagSelectionInputButton.style.display = "flex";
|
|
||||||
tagSelectionInputButton.style.alignItems = "center";
|
|
||||||
|
|
||||||
let tagSelectionInput = document.createElement("input");
|
|
||||||
tagSelectionInput.style.marginRight = "1rem";
|
|
||||||
tagSelectionInput.type = "checkbox";
|
|
||||||
tagSelectionInput.id = tag.tag + "-selection-input";
|
|
||||||
tagSelectionInput.name = tag.tag + "-selection-input";
|
|
||||||
tagSelectionInput.value = tag.tag;
|
|
||||||
tagSelectionInput.checked = selected ? true : false;
|
|
||||||
tagSelectionInput.classList.add("tagSelectionInput");
|
|
||||||
tagSelectionInput.onclick = function () {
|
|
||||||
buildResults();
|
|
||||||
};
|
|
||||||
tagSelectionInputButton.appendChild(tagSelectionInput);
|
|
||||||
|
|
||||||
let tagSelectionInputLabel = document.createElement("label");
|
|
||||||
tagSelectionInputLabel.style.textAlign = "left";
|
|
||||||
tagSelectionInputLabel.for = tag.tag + "-selection-input";
|
|
||||||
tagSelectionInputLabel.innerHTML = tag.tag + " (" + tag.num_themes + ")";
|
|
||||||
tagSelectionInputButton.appendChild(tagSelectionInputLabel);
|
|
||||||
tagSelectionInputButton.onclick = function () {
|
|
||||||
tagSelectionInput.checked = !tagSelectionInput.checked;
|
|
||||||
buildResults();
|
|
||||||
};
|
|
||||||
|
|
||||||
tagSelectionRow.appendChild(tagSelectionInputButton);
|
|
||||||
}
|
|
||||||
|
|
||||||
function buildFeatureSelectionInput(feature, selected, featureSelectionRow) {
|
|
||||||
let featureSelectionInputButton = document.createElement("button");
|
|
||||||
featureSelectionInputButton.style.width = "15rem";
|
|
||||||
featureSelectionInputButton.style.maxWidth = "calc(50% - 2rem)";
|
|
||||||
featureSelectionInputButton.style.margin = ".5rem";
|
|
||||||
featureSelectionInputButton.style.display = "flex";
|
|
||||||
featureSelectionInputButton.style.alignItems = "center";
|
|
||||||
|
|
||||||
let featureSelectionInput = document.createElement("input");
|
|
||||||
featureSelectionInput.style.marginRight = "1rem";
|
|
||||||
featureSelectionInput.type = "checkbox";
|
|
||||||
featureSelectionInput.id = feature.feature + "-selection-input";
|
|
||||||
featureSelectionInput.name = feature.feature + "-selection-input";
|
|
||||||
featureSelectionInput.value = feature.feature;
|
|
||||||
featureSelectionInput.checked = selected ? true : false;
|
|
||||||
featureSelectionInput.classList.add("featureSelectionInput");
|
|
||||||
featureSelectionInput.onclick = function () {
|
|
||||||
buildResults();
|
|
||||||
};
|
|
||||||
featureSelectionInputButton.appendChild(featureSelectionInput);
|
|
||||||
|
|
||||||
let featureSelectionInputLabel = document.createElement("label");
|
|
||||||
featureSelectionInputLabel.style.textAlign = "left";
|
|
||||||
featureSelectionInputLabel.for = feature.feature + "-selection-input";
|
|
||||||
featureSelectionInputLabel.innerHTML =
|
|
||||||
feature.feature + " (" + feature.num_themes + ")";
|
|
||||||
featureSelectionInputButton.appendChild(featureSelectionInputLabel);
|
|
||||||
featureSelectionInputButton.onclick = function () {
|
|
||||||
featureSelectionInput.checked = !featureSelectionInput.checked;
|
|
||||||
buildResults();
|
|
||||||
};
|
|
||||||
|
|
||||||
featureSelectionRow.appendChild(featureSelectionInputButton);
|
|
||||||
}
|
|
@ -1,53 +1,71 @@
|
|||||||
function addThemeTableRow(theme) {
|
function addThemeTableRow(theme, selectedColumns) {
|
||||||
let resultsTable = document.getElementById("resultsTable");
|
let resultsTable = document.getElementById("resultsTable");
|
||||||
let resultsTableRow = document.createElement("tr");
|
let resultsTableRow = document.createElement("tr");
|
||||||
|
|
||||||
let themeTD = document.createElement("td");
|
if (selectedColumns.includes("cname")) {
|
||||||
themeTD.innerHTML =
|
let themeTD = document.createElement("td");
|
||||||
'<a href="' + theme.url + '" target="_blank">' + theme.cname + "</a>";
|
themeTD.innerHTML =
|
||||||
themeTD.style.minWidth = `${theme.cname.length / 6}rem`;
|
'<a href="' + theme.url + '" target="_blank">' + theme.cname + "</a>";
|
||||||
resultsTableRow.appendChild(themeTD);
|
themeTD.style.minWidth = `${theme.cname.length / 6}rem`;
|
||||||
|
resultsTableRow.appendChild(themeTD);
|
||||||
|
}
|
||||||
|
|
||||||
let dateTD = document.createElement("td");
|
if (selectedColumns.includes("date")) {
|
||||||
dateTD.innerHTML = theme.date;
|
let dateTD = document.createElement("td");
|
||||||
dateTD.style.minWidth = "5rem";
|
dateTD.innerHTML = theme.date;
|
||||||
resultsTableRow.appendChild(dateTD);
|
dateTD.style.minWidth = "5rem";
|
||||||
|
resultsTableRow.appendChild(dateTD);
|
||||||
|
}
|
||||||
|
|
||||||
let starsTD = document.createElement("td");
|
if (selectedColumns.includes("num_stars")) {
|
||||||
starsTD.innerHTML = theme.num_stars;
|
let starsTD = document.createElement("td");
|
||||||
resultsTableRow.appendChild(starsTD);
|
starsTD.innerHTML = theme.num_stars;
|
||||||
|
resultsTableRow.appendChild(starsTD);
|
||||||
|
}
|
||||||
|
|
||||||
let commitTD = document.createElement("td");
|
if (selectedColumns.includes("commit")) {
|
||||||
commitTD.innerHTML = theme.commit;
|
let commitTD = document.createElement("td");
|
||||||
resultsTableRow.appendChild(commitTD);
|
commitTD.innerHTML = theme.commit;
|
||||||
|
resultsTableRow.appendChild(commitTD);
|
||||||
|
}
|
||||||
|
|
||||||
let minVerTD = document.createElement("td");
|
if (selectedColumns.includes("min_ver")) {
|
||||||
minVerTD.innerHTML = theme.min_ver;
|
let minVerTD = document.createElement("td");
|
||||||
resultsTableRow.appendChild(minVerTD);
|
minVerTD.innerHTML = theme.min_ver;
|
||||||
|
resultsTableRow.appendChild(minVerTD);
|
||||||
|
}
|
||||||
|
|
||||||
let licenseTD = document.createElement("td");
|
if (selectedColumns.includes("license")) {
|
||||||
licenseTD.innerHTML = theme.license;
|
let licenseTD = document.createElement("td");
|
||||||
licenseTD.style.minWidth = `${theme.license.length / 7}rem`;
|
licenseTD.innerHTML = theme.license;
|
||||||
resultsTableRow.appendChild(licenseTD);
|
licenseTD.style.minWidth = `${theme.license.length / 7}rem`;
|
||||||
|
resultsTableRow.appendChild(licenseTD);
|
||||||
|
}
|
||||||
|
|
||||||
let descTD = document.createElement("td");
|
if (selectedColumns.includes("desc")) {
|
||||||
descTD.innerHTML = theme.desc;
|
let descTD = document.createElement("td");
|
||||||
descTD.style.minWidth = `${theme.desc.length / 7}rem`;
|
descTD.innerHTML = theme.desc;
|
||||||
resultsTableRow.appendChild(descTD);
|
descTD.style.minWidth = `${theme.desc.length / 7}rem`;
|
||||||
|
resultsTableRow.appendChild(descTD);
|
||||||
|
}
|
||||||
|
|
||||||
let tagsTD = document.createElement("td");
|
if (selectedColumns.includes("tags")) {
|
||||||
let tL = theme.tags.length - 1;
|
let tagsTD = document.createElement("td");
|
||||||
tL += theme.tags.map((x) => x.length).reduce((a, b) => a + b, 0);
|
let tL = theme.tags.length - 1;
|
||||||
tagsTD.innerHTML = theme.tags;
|
tL += theme.tags.map((x) => x.length).reduce((a, b) => a + b, 0);
|
||||||
tagsTD.style.minWidth = `${tL / 7}rem`;
|
tagsTD.innerHTML = theme.tags;
|
||||||
resultsTableRow.appendChild(tagsTD);
|
tagsTD.style.minWidth = `${tL / 7}rem`;
|
||||||
|
resultsTableRow.appendChild(tagsTD);
|
||||||
|
}
|
||||||
|
|
||||||
let featuresTD = document.createElement("td");
|
if (selectedColumns.includes("features")) {
|
||||||
let fL = theme.features.length - 1;
|
let featuresTD = document.createElement("td");
|
||||||
fL += theme.features.map((x) => x.length).reduce((a, b) => a + b, 0);
|
let fL = theme.features.length - 1;
|
||||||
featuresTD.innerHTML = theme.features;
|
fL += theme.features.map((x) => x.length).reduce((a, b) => a + b, 0);
|
||||||
featuresTD.style.minWidth = `${fL / 7}rem`;
|
featuresTD.innerHTML = theme.features;
|
||||||
resultsTableRow.appendChild(featuresTD);
|
featuresTD.style.minWidth = `${fL / 7}rem`;
|
||||||
|
resultsTableRow.appendChild(featuresTD);
|
||||||
|
}
|
||||||
|
|
||||||
resultsTable.appendChild(resultsTableRow);
|
resultsTable.appendChild(resultsTableRow);
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
// called from buildSelectionMenu.js
|
||||||
function getAvailableFeatures(sorted_themes, featureSortBy) {
|
function getAvailableFeatures(sorted_themes, featureSortBy) {
|
||||||
let result = [];
|
let result = [];
|
||||||
sorted_themes.forEach((x) => {
|
sorted_themes.forEach((x) => {
|
||||||
@ -27,6 +28,7 @@ function getAvailableFeatures(sorted_themes, featureSortBy) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// called from buildSelectionMenu.js
|
||||||
function getAvailableTags(sorted_themes, tagSortBy) {
|
function getAvailableTags(sorted_themes, tagSortBy) {
|
||||||
let result = [];
|
let result = [];
|
||||||
sorted_themes.forEach((x) => {
|
sorted_themes.forEach((x) => {
|
||||||
|
@ -1,5 +1,17 @@
|
|||||||
|
function showSelectionOptionsButtons() {
|
||||||
|
[
|
||||||
|
"button-for-showing-sort-option",
|
||||||
|
"button-for-showing-columns",
|
||||||
|
"button-for-filter-by-tags",
|
||||||
|
"button-for-filter-by-features",
|
||||||
|
"button-for-filter-by-tags-and-features",
|
||||||
|
].forEach((x) => (document.getElementById(x).style.display = "inline-block"));
|
||||||
|
}
|
||||||
|
|
||||||
let closeableMenus = [
|
let closeableMenus = [
|
||||||
"sortByRow",
|
"sortByRow",
|
||||||
|
"columnSelectionHeadingRow",
|
||||||
|
"columnSelectionRow",
|
||||||
"tagSelectionHeadingRow",
|
"tagSelectionHeadingRow",
|
||||||
"tagSelectionRow",
|
"tagSelectionRow",
|
||||||
"featureSelectionHeadingRow",
|
"featureSelectionHeadingRow",
|
||||||
@ -43,19 +55,31 @@ document.getElementById("minus-button").onclick = function () {
|
|||||||
document.getElementById("button-for-showing-sort-option").onclick =
|
document.getElementById("button-for-showing-sort-option").onclick =
|
||||||
function () {
|
function () {
|
||||||
closeMenus();
|
closeMenus();
|
||||||
|
showSelectionOptionsButtons();
|
||||||
|
this.style.display = "none";
|
||||||
document.getElementById("sortByRow").style.display = "flex";
|
document.getElementById("sortByRow").style.display = "flex";
|
||||||
};
|
};
|
||||||
|
|
||||||
document.getElementById("button-for-showing-columns").onclick = function () {};
|
document.getElementById("button-for-showing-columns").onclick = function () {
|
||||||
|
closeMenus();
|
||||||
|
showSelectionOptionsButtons();
|
||||||
|
this.style.display = "none";
|
||||||
|
document.getElementById("columnSelectionHeadingRow").style.display = "flex";
|
||||||
|
document.getElementById("columnSelectionRow").style.display = "flex";
|
||||||
|
};
|
||||||
|
|
||||||
document.getElementById("button-for-filter-by-tags").onclick = function () {
|
document.getElementById("button-for-filter-by-tags").onclick = function () {
|
||||||
closeMenus();
|
closeMenus();
|
||||||
|
showSelectionOptionsButtons();
|
||||||
|
this.style.display = "none";
|
||||||
document.getElementById("tagSelectionHeadingRow").style.display = "flex";
|
document.getElementById("tagSelectionHeadingRow").style.display = "flex";
|
||||||
document.getElementById("tagSelectionRow").style.display = "flex";
|
document.getElementById("tagSelectionRow").style.display = "flex";
|
||||||
};
|
};
|
||||||
|
|
||||||
document.getElementById("button-for-filter-by-features").onclick = function () {
|
document.getElementById("button-for-filter-by-features").onclick = function () {
|
||||||
closeMenus();
|
closeMenus();
|
||||||
|
showSelectionOptionsButtons();
|
||||||
|
this.style.display = "none";
|
||||||
document.getElementById("featureSelectionHeadingRow").style.display = "flex";
|
document.getElementById("featureSelectionHeadingRow").style.display = "flex";
|
||||||
document.getElementById("featureSelectionRow").style.display = "flex";
|
document.getElementById("featureSelectionRow").style.display = "flex";
|
||||||
};
|
};
|
||||||
@ -63,6 +87,8 @@ document.getElementById("button-for-filter-by-features").onclick = function () {
|
|||||||
document.getElementById("button-for-filter-by-tags-and-features").onclick =
|
document.getElementById("button-for-filter-by-tags-and-features").onclick =
|
||||||
function () {
|
function () {
|
||||||
closeMenus();
|
closeMenus();
|
||||||
|
showSelectionOptionsButtons();
|
||||||
|
this.style.display = "none";
|
||||||
document.getElementById("tagSelectionHeadingRow").style.display = "flex";
|
document.getElementById("tagSelectionHeadingRow").style.display = "flex";
|
||||||
document.getElementById("tagSelectionRow").style.display = "flex";
|
document.getElementById("tagSelectionRow").style.display = "flex";
|
||||||
document.getElementById("featureSelectionHeadingRow").style.display =
|
document.getElementById("featureSelectionHeadingRow").style.display =
|
||||||
|
Loading…
x
Reference in New Issue
Block a user