Filter settings are now stored in a session cookie (#80)
This commit is contained in:
@@ -12,9 +12,9 @@
|
|||||||
<script src="/scripts/jquery.lazy.plugins.min.js"></script>
|
<script src="/scripts/jquery.lazy.plugins.min.js"></script>
|
||||||
<script src="/scripts/select2.min.js"></script>
|
<script src="/scripts/select2.min.js"></script>
|
||||||
<script src="/scripts/dropzone.min.js"></script>
|
<script src="/scripts/dropzone.min.js"></script>
|
||||||
<script dat-src="/scripts/main.js" type="text/javascript"></script>
|
<script src="/scripts/main.js" type="text/javascript"></script>
|
||||||
<script dat-src="/scripts/filterformating.js" type="text/javascript"></script>
|
<script src="/scripts/filterformating.js" type="text/javascript"></script>
|
||||||
<script dat-src="/scripts/gamesformating.js" type="text/javascript"></script>
|
<script src="/scripts/gamesformating.js" type="text/javascript"></script>
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||||
@@ -22,19 +22,19 @@
|
|||||||
<title>Gaseous Games</title>
|
<title>Gaseous Games</title>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
var head = document.getElementsByTagName('head')[0];
|
||||||
|
|
||||||
// update links
|
// update links
|
||||||
var headLinks = document.getElementsByTagName('link');
|
var headLinks = document.getElementsByTagName('link');
|
||||||
for (var i = 0; i < headLinks.length; i++) {
|
for (var i = 0; i < headLinks.length; i++) {
|
||||||
if (headLinks[i].getAttribute('dat-href')) {
|
if (headLinks[i].getAttribute('dat-href') && headLinks[i].rel == "stylesheet") {
|
||||||
headLinks[i].setAttribute('href', headLinks[i].getAttribute('dat-href') + '?v=' + AppVersion);
|
var newLink = document.createElement('link');
|
||||||
}
|
newLink.rel = "stylesheet";
|
||||||
}
|
newLink.href = headLinks[i].getAttribute('dat-href') + '?v=' + AppVersion;
|
||||||
|
newLink.type = "text/css";
|
||||||
|
|
||||||
// update script src
|
headLinks[i].parentElement.removeChild(headLinks[i]);
|
||||||
var headLinks = document.getElementsByTagName('script');
|
head.appendChild(newLink);
|
||||||
for (var i = 0; i < headLinks.length; i++) {
|
|
||||||
if (headLinks[i].getAttribute('dat-src')) {
|
|
||||||
headLinks[i].setAttribute('src', headLinks[i].getAttribute('dat-src') + '?v=' + AppVersion);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@@ -14,9 +14,4 @@
|
|||||||
|
|
||||||
executeFilter();
|
executeFilter();
|
||||||
});
|
});
|
||||||
|
|
||||||
//ajaxCall('/api/v1/Games', 'GET', function (result) {
|
|
||||||
// var gameElement = document.getElementById('games_library');
|
|
||||||
// formatGamesPanel(gameElement, result);
|
|
||||||
//});
|
|
||||||
</script>
|
</script>
|
@@ -7,6 +7,10 @@
|
|||||||
var containerPanelSearch = document.createElement('div');
|
var containerPanelSearch = document.createElement('div');
|
||||||
containerPanelSearch.className = 'filter_panel_box';
|
containerPanelSearch.className = 'filter_panel_box';
|
||||||
var containerPanelSearchField = document.createElement('input');
|
var containerPanelSearchField = document.createElement('input');
|
||||||
|
var searchCookie = getCookie('filter_panel_search');
|
||||||
|
if (searchCookie) {
|
||||||
|
containerPanelSearchField.value = searchCookie;
|
||||||
|
}
|
||||||
containerPanelSearchField.id = 'filter_panel_search';
|
containerPanelSearchField.id = 'filter_panel_search';
|
||||||
containerPanelSearchField.type = 'text';
|
containerPanelSearchField.type = 'text';
|
||||||
containerPanelSearchField.placeholder = 'Search';
|
containerPanelSearchField.placeholder = 'Search';
|
||||||
@@ -19,6 +23,10 @@
|
|||||||
var containerPanelUserRating = document.createElement('div');
|
var containerPanelUserRating = document.createElement('div');
|
||||||
containerPanelUserRating.className = 'filter_panel_box';
|
containerPanelUserRating.className = 'filter_panel_box';
|
||||||
var containerPanelUserRatingMinField = document.createElement('input');
|
var containerPanelUserRatingMinField = document.createElement('input');
|
||||||
|
var minRatingCookie = getCookie('filter_panel_userrating_min');
|
||||||
|
if (minRatingCookie) {
|
||||||
|
containerPanelUserRatingMinField.value = minRatingCookie;
|
||||||
|
}
|
||||||
containerPanelUserRatingMinField.id = 'filter_panel_userrating_min';
|
containerPanelUserRatingMinField.id = 'filter_panel_userrating_min';
|
||||||
containerPanelUserRatingMinField.type = 'number';
|
containerPanelUserRatingMinField.type = 'number';
|
||||||
containerPanelUserRatingMinField.placeholder = '0';
|
containerPanelUserRatingMinField.placeholder = '0';
|
||||||
@@ -29,6 +37,10 @@
|
|||||||
containerPanelUserRating.appendChild(containerPanelUserRatingMinField);
|
containerPanelUserRating.appendChild(containerPanelUserRatingMinField);
|
||||||
|
|
||||||
var containerPanelUserRatingMaxField = document.createElement('input');
|
var containerPanelUserRatingMaxField = document.createElement('input');
|
||||||
|
var maxRatingCookie = getCookie('filter_panel_userrating_max');
|
||||||
|
if (maxRatingCookie) {
|
||||||
|
containerPanelUserRatingMaxField.value = maxRatingCookie;
|
||||||
|
}
|
||||||
containerPanelUserRatingMaxField.id = 'filter_panel_userrating_max';
|
containerPanelUserRatingMaxField.id = 'filter_panel_userrating_max';
|
||||||
containerPanelUserRatingMaxField.type = 'number';
|
containerPanelUserRatingMaxField.type = 'number';
|
||||||
containerPanelUserRatingMaxField.placeholder = '100';
|
containerPanelUserRatingMaxField.placeholder = '100';
|
||||||
@@ -65,6 +77,11 @@
|
|||||||
|
|
||||||
function buildFilterPanel(targetElement, headerString, friendlyHeaderString, valueList, showToggle, initialDisplay) {
|
function buildFilterPanel(targetElement, headerString, friendlyHeaderString, valueList, showToggle, initialDisplay) {
|
||||||
if (showToggle == false) { initialDisplay = true; }
|
if (showToggle == false) { initialDisplay = true; }
|
||||||
|
var displayCookie = getCookie('filter_panel_box_' + headerString);
|
||||||
|
if (displayCookie) {
|
||||||
|
initialDisplay = (displayCookie === 'true');
|
||||||
|
console.log(displayCookie);
|
||||||
|
}
|
||||||
targetElement.appendChild(buildFilterPanelHeader(headerString, friendlyHeaderString, showToggle, initialDisplay));
|
targetElement.appendChild(buildFilterPanelHeader(headerString, friendlyHeaderString, showToggle, initialDisplay));
|
||||||
|
|
||||||
var containerPanel = document.createElement('div');
|
var containerPanel = document.createElement('div');
|
||||||
@@ -111,16 +128,27 @@ function toggleFilterPanel(panelName) {
|
|||||||
var filterPanel = document.getElementById('filter_panel_box_' + panelName);
|
var filterPanel = document.getElementById('filter_panel_box_' + panelName);
|
||||||
var filterPanelToggle = document.getElementById('filter_panel_header_toggle_' + panelName);
|
var filterPanelToggle = document.getElementById('filter_panel_header_toggle_' + panelName);
|
||||||
|
|
||||||
|
var cookieVal = '';
|
||||||
if (filterPanel.style.display == 'none') {
|
if (filterPanel.style.display == 'none') {
|
||||||
filterPanelToggle.innerHTML = '-';
|
filterPanelToggle.innerHTML = '-';
|
||||||
filterPanel.style.display = '';
|
filterPanel.style.display = '';
|
||||||
|
cookieVal = "true";
|
||||||
} else {
|
} else {
|
||||||
filterPanelToggle.innerHTML = '+';
|
filterPanelToggle.innerHTML = '+';
|
||||||
filterPanel.style.display = 'none';
|
filterPanel.style.display = 'none';
|
||||||
|
cookieVal = "false";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setCookie("filter_panel_box_" + panelName, cookieVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildFilterPanelItem(filterType, itemString, friendlyItemString) {
|
function buildFilterPanelItem(filterType, itemString, friendlyItemString) {
|
||||||
|
var checkCookie = getCookie('filter_panel_item_' + filterType + '_checkbox_' + itemString);
|
||||||
|
var checkState = false;
|
||||||
|
if (checkCookie) {
|
||||||
|
checkState = (checkCookie === 'true');
|
||||||
|
}
|
||||||
|
|
||||||
var filterPanelItem = document.createElement('div');
|
var filterPanelItem = document.createElement('div');
|
||||||
filterPanelItem.id = 'filter_panel_item_' + itemString;
|
filterPanelItem.id = 'filter_panel_item_' + itemString;
|
||||||
filterPanelItem.className = 'filter_panel_item';
|
filterPanelItem.className = 'filter_panel_item';
|
||||||
@@ -134,6 +162,9 @@ function buildFilterPanelItem(filterType, itemString, friendlyItemString) {
|
|||||||
filterPanelItemCheckBoxItem.name = 'filter_' + filterType;
|
filterPanelItemCheckBoxItem.name = 'filter_' + filterType;
|
||||||
filterPanelItemCheckBoxItem.setAttribute('filter_id', itemString);
|
filterPanelItemCheckBoxItem.setAttribute('filter_id', itemString);
|
||||||
filterPanelItemCheckBoxItem.setAttribute('oninput' , 'executeFilter();');
|
filterPanelItemCheckBoxItem.setAttribute('oninput' , 'executeFilter();');
|
||||||
|
if (checkState == true) {
|
||||||
|
filterPanelItemCheckBoxItem.checked = true;
|
||||||
|
}
|
||||||
filterPanelItemCheckBox.appendChild(filterPanelItemCheckBoxItem);
|
filterPanelItemCheckBox.appendChild(filterPanelItemCheckBoxItem);
|
||||||
|
|
||||||
var filterPanelItemLabel = document.createElement('label');
|
var filterPanelItemLabel = document.createElement('label');
|
||||||
@@ -164,24 +195,27 @@ function executeFilter() {
|
|||||||
var platforms = '';
|
var platforms = '';
|
||||||
var genres = '';
|
var genres = '';
|
||||||
|
|
||||||
var searchString = document.getElementById('filter_panel_search').value;
|
var searchString = document.getElementById('filter_panel_search');
|
||||||
if (searchString.length > 0) {
|
if (searchString.value.length > 0) {
|
||||||
queries.push('name=' + searchString);
|
queries.push('name=' + searchString.value);
|
||||||
}
|
}
|
||||||
|
setCookie(searchString.id, searchString.value);
|
||||||
|
|
||||||
var minUserRating = 0;
|
var minUserRating = 0;
|
||||||
var minUserRatingInput = document.getElementById('filter_panel_userrating_min').value;
|
var minUserRatingInput = document.getElementById('filter_panel_userrating_min');
|
||||||
if (minUserRatingInput) {
|
if (minUserRatingInput.value) {
|
||||||
minUserRating = minUserRatingInput;
|
minUserRating = minUserRatingInput.value;
|
||||||
queries.push('minrating=' + minUserRating);
|
queries.push('minrating=' + minUserRating);
|
||||||
}
|
}
|
||||||
|
setCookie(minUserRatingInput.id, minUserRatingInput.value);
|
||||||
|
|
||||||
var maxUserRating = 100;
|
var maxUserRating = 100;
|
||||||
var maxUserRatingInput = document.getElementById('filter_panel_userrating_max').value;
|
var maxUserRatingInput = document.getElementById('filter_panel_userrating_max');
|
||||||
if (maxUserRatingInput) {
|
if (maxUserRatingInput.value) {
|
||||||
maxUserRating = maxUserRatingInput;
|
maxUserRating = maxUserRatingInput.value;
|
||||||
queries.push('maxrating=' + maxUserRating);
|
queries.push('maxrating=' + maxUserRating);
|
||||||
}
|
}
|
||||||
|
setCookie(maxUserRatingInput.id, maxUserRatingInput.value);
|
||||||
|
|
||||||
queries.push(GetFilterQuery('platform'));
|
queries.push(GetFilterQuery('platform'));
|
||||||
queries.push(GetFilterQuery('genre'));
|
queries.push(GetFilterQuery('genre'));
|
||||||
@@ -216,10 +250,13 @@ function GetFilterQuery(filterName) {
|
|||||||
|
|
||||||
for (var i = 0; i < Filters.length; i++) {
|
for (var i = 0; i < Filters.length; i++) {
|
||||||
if (Filters[i].checked) {
|
if (Filters[i].checked) {
|
||||||
|
setCookie(Filters[i].id, true);
|
||||||
if (queryString.length > 0) {
|
if (queryString.length > 0) {
|
||||||
queryString += ',';
|
queryString += ',';
|
||||||
}
|
}
|
||||||
queryString += Filters[i].getAttribute('filter_id');
|
queryString += Filters[i].getAttribute('filter_id');
|
||||||
|
} else {
|
||||||
|
setCookie(Filters[i].id, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -57,6 +57,33 @@ function getQueryString(stringName, type) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setCookie(cname, cvalue, exdays) {
|
||||||
|
const d = new Date();
|
||||||
|
d.setTime(d.getTime() + (exdays*24*60*60*1000));
|
||||||
|
if (exdays) {
|
||||||
|
let expires = "expires="+ d.toUTCString();
|
||||||
|
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
|
||||||
|
} else {
|
||||||
|
document.cookie = cname + "=" + cvalue + ";path=/";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getCookie(cname) {
|
||||||
|
let name = cname + "=";
|
||||||
|
let decodedCookie = decodeURIComponent(document.cookie);
|
||||||
|
let ca = decodedCookie.split(';');
|
||||||
|
for(let i = 0; i <ca.length; i++) {
|
||||||
|
let c = ca[i];
|
||||||
|
while (c.charAt(0) == ' ') {
|
||||||
|
c = c.substring(1);
|
||||||
|
}
|
||||||
|
if (c.indexOf(name) == 0) {
|
||||||
|
return c.substring(name.length, c.length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
function formatBytes(bytes, decimals = 2) {
|
function formatBytes(bytes, decimals = 2) {
|
||||||
if (!+bytes) return '0 Bytes'
|
if (!+bytes) return '0 Bytes'
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user