diff --git a/explorer.html b/explorer.html index 3f133d7..d7c892e 100644 --- a/explorer.html +++ b/explorer.html @@ -61,16 +61,7 @@
- - - - - - - - - - +
@@ -78,20 +69,7 @@
- - - - - - - - - - - - - - +
@@ -99,30 +77,7 @@
- - - - - - - - - - - - - - - - - - - - - - - - +
@@ -130,6 +85,7 @@
+
@@ -137,6 +93,7 @@
+
@@ -153,6 +110,7 @@ ※  +
@@ -160,26 +118,7 @@
- - - - - - - - - - - - - - - - - - - - +
@@ -187,14 +126,14 @@
- - - - +
- +
+ + +

Aucun résultat. Veuillez réessayer avec d'autres paramètres.

diff --git a/scripts/explorer.js b/scripts/explorer.js index d6ff210..9d23f54 100644 --- a/scripts/explorer.js +++ b/scripts/explorer.js @@ -29,25 +29,121 @@ jQuery(document).ready(function($) $.getJSON("data.json", function(data) { + var originalData = data; + /**********/ /** MENU **/ /**********/ - var genres = []; - var themes = []; - var places = []; - var tags = []; + var availableOptions = []; - function generateMenu() + /*var selectedPhotos = []; var selectedYears = []; var selectedMonths = []; var selectedGenres = []; + var selectedThemes = []; var selectedPlaces = []; var selectedTags = []; var selectedDimensions = []; var selectedHelps = [];*/ + var selectedOptions = []; + + // filter data depending of parameters + function filterData(selectedOptions) { + function CheckItem(name, selectedElements) + { + return function(item) + { + if (selectedElements.length == 0) + return true; + for (elem of selectedElements) + { + if (item[name] == elem) + return true; + } + return false; + } + } + + function CheckTag(item) + { + for (tag of selectedOptions.tags) + { + if (!item.tags.includes(tag)) + return false; + } + return true; + } + + function CheckDimension(item) + { + if (selectedOptions.dimensions.length == 0) + return true; + for (dimension of selectedOptions.dimensions) + { + if (item.dimension.split("x")[0] == dimension) + return true; + } + return false; + } + + data = data.filter(CheckTag); + data = data.filter(CheckDimension); + data = data.filter(CheckItem("year", selectedOptions.years)); + data = data.filter(CheckItem("photo", selectedOptions.photos)); + data = data.filter(CheckItem("month", selectedOptions.months)); + data = data.filter(CheckItem("genre", selectedOptions.genres)); + data = data.filter(CheckItem("theme", selectedOptions.themes)); + data = data.filter(CheckItem("place", selectedOptions.places)); + data = data.filter(CheckItem("help", selectedOptions.helps)); + } + + // gather data from json to make form + function gatherData() + { + var photos = []; var years = []; var months = []; var genres = []; + var themes = []; var places = []; var tags = []; var dimensions = []; var helps = []; + + function makeItem(item, array, displayName, min, max) + { + if (item >= min && item <= max) + { + if (array.indexOf(displayName) === -1) + array.push(displayName); + } + } + for (i of data) { + if (photos.indexOf(i.photo) === -1 && i.photo != "" && i.photo != "—") + photos.push(i.photo); + if (months.indexOf(i.month) === -1 && i.month != "" && i.month != "—") + months.push(i.month); if (genres.indexOf(i.genre) === -1 && i.genre != "" && i.genre != "—") genres.push(i.genre); if (themes.indexOf(i.theme) === -1 && i.theme != "" && i.theme != "—") themes.push(i.theme); if (places.indexOf(i.place) === -1 && i.place != "" && i.place != "—") places.push(i.place); + if (helps.indexOf(i.help) === -1 && i.help != "" && i.help != "—") + helps.push(i.help); + if (i.year != "" && i.year != "—") + { + makeItem(i.year, years, "50s", 1956, 1959); + makeItem(i.year, years, "60s", 1960, 1969); + makeItem(i.year, years, "70s", 1970, 1979); + makeItem(i.year, years, "80s", 1980, 1989); + makeItem(i.year, years, "90s", 1990, 1999); + makeItem(i.year, years, "00s", 2000, 2009); + makeItem(i.year, years, "10s", 2010, 2016); + } + if (i.dimension != "" && i.dimension != "—") + { + makeItem(i.dimension.split("x")[0], dimensions, "18", 0, 19); + makeItem(i.dimension.split("x")[0], dimensions, "20", 20, 29); + makeItem(i.dimension.split("x")[0], dimensions, "30", 30, 39); + makeItem(i.dimension.split("x")[0], dimensions, "40", 40, 49); + makeItem(i.dimension.split("x")[0], dimensions, "50", 50, 59); + makeItem(i.dimension.split("x")[0], dimensions, "60", 60, 69); + makeItem(i.dimension.split("x")[0], dimensions, "70", 70, 79); + makeItem(i.dimension.split("x")[0], dimensions, "80", 80, 89); + makeItem(i.dimension.split("x")[0], dimensions, "90", 90, 99); + makeItem(i.dimension.split("x")[0], dimensions, "100", 100, 109); + } if (tags.indexOf(i.tags) === -1 && i.tags != "" && i.tags != "—") { splitTags = i.tags.split(", "); @@ -62,185 +158,66 @@ jQuery(document).ready(function($) genres.sort(); themes.sort(); + helps.sort(); places.sort(Intl.Collator().compare); tags.sort(Intl.Collator().compare); + dimensions.sort(function(a, b) { return a - b; }); + var targetMonths = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"]; + months.sort(function(a, b) { return targetMonths.indexOf(a) - targetMonths.indexOf(b); }); + var targetPhotos = ["none", "bad", "ok", "good"]; + photos.sort(function(a, b) { return targetPhotos.indexOf(a) - targetPhotos.indexOf(b); }); - for (genre of genres) + return {"photos": photos, "years": years, "months": months, "genres": genres, "themes": themes, "places": places, "tags": tags, "dimensions": dimensions, "helps": helps}; + } + + // gather data from url to check available options + function gatherURLdata() + { + selectedYears = []; + selectedDimensions = []; + selectedPhotos = paramPhoto; + selectedMonths = paramMonth; + selectedGenres = paramGenre; + selectedThemes = paramTheme; + selectedPlaces = paramPlace; + selectedTags = paramTag; + selectedHelps = paramHelp; + for (p of paramYear) { - html = '\n'; - html += ''; - $(".box.genres .item-cont").append(html); + if (p == "50s") for (i = 1956; i <= 1959; i++) selectedYears.push(i); + if (p == "60s") for (i = 1960; i <= 1969; i++) selectedYears.push(i); + if (p == "70s") for (i = 1970; i <= 1979; i++) selectedYears.push(i); + if (p == "80s") for (i = 1980; i <= 1989; i++) selectedYears.push(i); + if (p == "90s") for (i = 1990; i <= 1999; i++) selectedYears.push(i); + if (p == "00s") for (i = 2000; i <= 2009; i++) selectedYears.push(i); + if (p == "10s") for (i = 2010; i <= 2016; i++) selectedYears.push(i); } - - for (theme of themes) + for (p of paramDimension) { - html = '\n'; - html += ''; - $(".box.themes .item-cont").append(html); + if (p == "18") for (i = 18; i <= 19; i++) selectedDimensions.push(i); + if (p == "20") for (i = 20; i <= 29; i++) selectedDimensions.push(i); + if (p == "30") for (i = 30; i <= 39; i++) selectedDimensions.push(i); + if (p == "40") for (i = 40; i <= 49; i++) selectedDimensions.push(i); + if (p == "50") for (i = 50; i <= 59; i++) selectedDimensions.push(i); + if (p == "60") for (i = 60; i <= 69; i++) selectedDimensions.push(i); + if (p == "70") for (i = 70; i <= 79; i++) selectedDimensions.push(i); + if (p == "80") for (i = 80; i <= 89; i++) selectedDimensions.push(i); + if (p == "90") for (i = 90; i <= 99; i++) selectedDimensions.push(i); + if (p == "100") for (i = 100; i <= 109; i++) selectedDimensions.push(i); } + return {"photos": selectedPhotos, "years": selectedYears, "months": selectedMonths, "genres": selectedGenres, "themes": selectedThemes, + "places": selectedPlaces, "tags": selectedTags, "dimensions": selectedDimensions, "helps": selectedHelps}; + } - $(".box.places select").append('