+
-
+
-
-
-
-
-
-
-
diff --git a/js/main.js b/js/main.js
index c0b3c584..709ceb35 100644
--- a/js/main.js
+++ b/js/main.js
@@ -3,65 +3,88 @@ $(document).ready(function() {
// ------------------------------
// Settings
// ------------------------------
- var dataJson = "manifest.json";
- var formats = ["svg", "128", "32", "32@2x"];
- var variants = ["color", "black", "icon", "white"];
- var iconDefault = "black";
- var iconHover = "color";
- var url = 'https://api.coinmarketcap.com/v1/ticker/?limit=0'
+ var apiUrl = 'https://api.coinmarketcap.com/v1/ticker/?limit=0';
+ var dataJson = 'manifest.json';
+ var formats = ['svg', '128', '32', '32@2x'];
+ var variants = ['color', 'black', 'icon', 'white'];
+ var iconDefault = 'black';
+ var iconHover = 'color';
// ------------------------------
// Init search
// ------------------------------
- $("form .search").on("input", function() {
+ $('form .search').on('input', function() {
search($(this));
});
- $("form").submit(function( event ) {
+ $('form').submit(function( event ) {
event.preventDefault();
- search($("form .search"));
+ search($('form .search'));
});
// ------------------------------
- // Get list of icons in manifest
+ // Get icons
// ------------------------------
- $.get(url, function(coins){
+
+ // Get icons from CoinMarketCap
+ $.getJSON(apiUrl, function(coins){
+
+ // Get icons in manifest
$.getJSON(dataJson, function(data) {
- var icons = "";
+
+ var icons = '';
var count = 0;
+
data.icons.forEach(function(icon) {
+
+ // Get symbol
var coin = coins.find(function(coin){
- return coin.symbol.toLowerCase() === icon
+ return coin.symbol.toLowerCase() === icon;
})
- var name = coin ? coin.name.toLowerCase() : icon
- // Construct icon
- if (icons.indexOf("data-icon=\"" + icon + "\"") === -1) {
- icons += "
";
+
+ // Get name
+ var name = coin ? coin.name : icon;
+ var nameAttr = name.split(' ').join('-').toLowerCase();
+
+
+ // Avoid duplicates
+ if (icons.indexOf('data-icon="' + icon + '"') === -1) {
+
+ // Construct icon
+ icons += '
';
+ icons += '';
+ icons += '
';
count++;
+
}
});
// Display
- $(".row.icons").html(icons);
+ $('.row.icons').html(icons);
// Hover
- $(".icon").hover(function() {
+ $('.icon').hover(function() {
changeFolder($(this), iconDefault, iconHover);
});
// Mouseleave
- $(".icon").mouseleave(function() {
+ $('.icon').mouseleave(function() {
changeFolder($(this), iconHover, iconDefault );
});
// Count icons
- $(".count-cryptos").text(count);
+ $('.count-cryptos').text(count);
});
});
@@ -75,90 +98,90 @@ $(document).ready(function() {
// ------------------------------
function changeFolder(target, search, replace) {
- var target = $(target).find("img");
- var srcInit = $(target).attr("src");
+ var target = $(target).find('img');
+ var srcInit = $(target).attr('src');
var srcAfter = srcInit.replace(search, replace);
- $(target).attr("src", srcAfter);
+ $(target).attr('src', srcAfter);
}
// Display icon info in Modal
// ------------------------------
- $("#infoIcon").on("show.bs.modal", function (event) {
+ $('#infoIcon').on('show.bs.modal', function (event) {
// Modal settings
var button = $(event.relatedTarget);
var modal = $(this);
- var icon = button.data("icon");
+ var icon = button.data('icon');
// Table settings
- var infos = "";
+ var infos = '';
var i = 0;
var j = 0;
// Construct table
- infos += "
";
+ infos += '';
// Construct titles
- infos += "";
- infos += "";
- infos += "" + icon + " | ";
+ infos += '';
+ infos += '';
+ infos += '' + icon + ' | ';
while (variants[j]) {
- var formatCss = formats[i].replace("@", "-");
- infos += "" + variants[j] + " | ";
+ var formatCss = formats[i].replace('@', '-');
+ infos += '' + variants[j] + ' | ';
j++;
}
j = 0;
- infos += "
";
- infos += "";
- infos += "
";
+ infos += '';
+ infos += '';
+ infos += '';
// Construct Row
while (formats[i]) {
- var formatCss = formats[i].replace("@", "-");
- infos += "";
+ var formatCss = formats[i].replace('@', '-');
+ infos += '
';
// Construct titles of row
- infos += "" + formats[i] + " | ";
+ infos += '' + formats[i] + ' | ';
// File extension
- if (formats[i] == "svg") {
- var extension = ".svg" ;
+ if (formats[i] == 'svg') {
+ var extension = '.svg';
}
- else if (formats[i] == "32@2x") {
- var extension = "@2x.png" ;
+ else if (formats[i] == '32@2x') {
+ var extension = '@2x.png';
}
else {
- var extension = ".png" ;
+ var extension = '.png';
}
// Construct icons cells
while (variants[j]) {
- infos += "";
- infos += " ";
- infos += " | ";
+ infos += '';
+ infos += ' ';
+ infos += ' | ';
j++;
}
j = 0;
i++;
- infos += "
";
+ infos += '';
}
// Close table
- infos += "";
- infos += "
";
+ infos += '';
+ infos += '
';
// Display
- modal.find(".modal-title").text(icon);
- modal.find(".modal-body").html(infos);
+ modal.find('.modal-title').text(icon);
+ modal.find('.modal-body').html(infos);
});
@@ -169,13 +192,13 @@ $(document).ready(function() {
if ($(target).val().length > 0) {
// Filter icons
- $(".icon").css("display", "none");
- $("a[data-icon*='" + $(target).val().toLowerCase() + "']").parent().css("display", "block");
- $("a[data-name*='" + $(target).val().toLowerCase() + "']").parent().css("display", "block");
+ $('.icon').css('display', 'none');
+ $('a[data-icon*="' + $(target).val().toLowerCase() + '"]').parent().css('display', 'block');
+ $('a[data-name*="' + $(target).val().toLowerCase() + '"]').parent().css('display', 'block');
// Close
- $("
").insertAfter(target);
- $(".close-search").click(function() {
+ $('
').insertAfter(target);
+ $('.close-search').click(function() {
closeSearch(target);
});
@@ -189,9 +212,9 @@ $(document).ready(function() {
// Close search
// ------------------------------
function closeSearch(target) {
- $(".close-search").remove();
- $(".icon").css("display", "block");
- $(target).val("");
+ $('.close-search').remove();
+ $('.icon').css('display', 'block');
+ $(target).val('');
}
});
@@ -200,5 +223,5 @@ $(document).ready(function() {
// Hide icons on error
// ------------------------------
function error(img) {
- $(img).parent().parent().remove();
+ $(img).parentsUntil('.icon').parent().remove();
}
diff --git a/js/main.min.js b/js/main.min.js
index 5899b5ba..d8f845dc 100644
--- a/js/main.min.js
+++ b/js/main.min.js
@@ -1 +1 @@
-function error(t){$(t).parent().parent().remove()}$(document).ready(function(){var t=["svg","128","32","32@2x"],e=["color","black","icon","white"],a="black",o="color";function c(t,e,a){t=$(t).find("img");var o=$(t).attr("src").replace(e,a);$(t).attr("src",o)}function n(t){$(t).val().length>0?($(".icon").css("display","none"),$("a[data-icon*='"+$(t).val().toLowerCase()+"']").parent().css("display","block"),$("a[data-name*='"+$(t).val().toLowerCase()+"']").parent().css("display","block"),$('
').insertAfter(t),$(".close-search").click(function(){r(t)})):r(t)}function r(t){$(".close-search").remove(),$(".icon").css("display","block"),$(t).val("")}$("form .search").on("input",function(){n($(this))}),$("form").submit(function(t){t.preventDefault(),n($("form .search"))}),$.get("https://api.coinmarketcap.com/v1/ticker/?limit=0",function(t){$.getJSON("manifest.json",function(e){var n="",r=0;e.icons.forEach(function(e){var a=t.find(function(t){return t.symbol.toLowerCase()===e}),o=a?a.name.toLowerCase():e;-1===n.indexOf('data-icon="'+e+'"')&&(n+='
",r++)}),$(".row.icons").html(n),$(".icon").hover(function(){c($(this),a,o)}),$(".icon").mouseleave(function(){c($(this),o,a)}),$(".count-cryptos").text(r)})}),$("#infoIcon").on("show.bs.modal",function(a){var o=$(a.relatedTarget),c=$(this),n=o.data("icon"),r="",i=0,s=0;for(r+='
',r+="",r+="",r+=''+n+" | ";e[s];){var l=t[i].replace("@","-");r+=''+e[s]+" | ",s++}for(s=0,r+="
",r+="",r+="";t[i];){if(r+="",r+=''+t[i]+" | ","svg"==t[i])var d=".svg";else if("32@2x"==t[i])d="@2x.png";else d=".png";for(;e[s];)r+='',r+=' ',r+=" | ",s++;s=0,i++,r+="
"}r+="",r+="
",c.find(".modal-title").text(n),c.find(".modal-body").html(r)})});
\ No newline at end of file
+function error(t){$(t).parentsUntil(".icon").parent().remove()}$(document).ready(function(){function t(t,a,e){var t=$(t).find("img"),o=$(t).attr("src").replace(a,e);$(t).attr("src",o)}function a(t){$(t).val().length>0?($(".icon").css("display","none"),$('a[data-icon*="'+$(t).val().toLowerCase()+'"]').parent().css("display","block"),$('a[data-name*="'+$(t).val().toLowerCase()+'"]').parent().css("display","block"),$('
').insertAfter(t),$(".close-search").click(function(){e(t)})):e(t)}function e(t){$(".close-search").remove(),$(".icon").css("display","block"),$(t).val("")}var o=["svg","128","32","32@2x"],c=["color","black","icon","white"];$("form .search").on("input",function(){a($(this))}),$("form").submit(function(t){t.preventDefault(),a($("form .search"))}),$.getJSON("https://api.coinmarketcap.com/v1/ticker/?limit=0",function(a){$.getJSON("manifest.json",function(e){var o="",c=0;e.icons.forEach(function(t){var e=a.find(function(a){return a.symbol.toLowerCase()===t}),n=e?e.name:t,i=n.split(" ").join("-").toLowerCase();-1===o.indexOf('data-icon="'+t+'"')&&(o+='
",o+="",o+="
",c++)}),$(".row.icons").html(o),$(".icon").hover(function(){t($(this),"black","color")}),$(".icon").mouseleave(function(){t($(this),"color","black")}),$(".count-cryptos").text(c)})}),$("#infoIcon").on("show.bs.modal",function(t){var a=$(t.relatedTarget),e=$(this),n=a.data("icon"),i="",s=0,r=0;for(i+='
",e.find(".modal-title").text(n),e.find(".modal-body").html(i)})});
\ No newline at end of file