See More

{labelElements} {authorName}{comments}', labelTemplate: '{name}', renderLabelItem: function (label) { return format(this.labelTemplate, label); }, renderLabelClass: function (label) { return 'label-' + label.name; }, render: function (data) { var html = data.map(function (item) { return format(this.template, { firstLabelColor: item.labels.length ? '#' + item.labels[0].color : 'transparent', labelClasses: item.labels.map(this.renderLabelClass, this).join(' '), labelElements: item.labels.map(this.renderLabelItem, this).join(''), title: escapeHTML(item.title), link: item.html_url, authorAvatarUrl: item.user.avatar_url, authorName: item.user.login, authorLink: item.user.html_url, comments: item.comments }); }, this).join(''); document.getElementById('issue-list').innerHTML = html; }, load: function () { ajax('//api.github.com/repos/yncoder/yncoder.github.io/issues', { query: { state: 'open' }, cache: 60000, ondata: this.render.bind(this), onforbidden: gotowork }); } }; var labelList = { template: '

  • {name}', render: function (data) { data.sort(function (a, b) { return a.name.localeCompare(b.name); }); var html = data.map(function (item) { return format(this.template, item); }, this).join(''); document.getElementById('label-list').innerHTML = html; document.getElementById('label-list').onclick = this.clickHandler; }, clickHandler: function (ev) { var target = ev.target || ev.srcElement; if (target.nodeName == 'A') { ev.preventDefault(); var list = target.parentNode.parentNode; var items = list.querySelectorAll('a'); target.classList.toggle('showing'); var showings = list.querySelectorAll('a.showing').length; for (var i = 0, len = items.length; i < len; i++) { var item = items[i]; var className = decodeURIComponent(item.href.replace(/.*#([\w\-]+)/, '$1')); var flag = item.classList.contains('showing') || !showings; item.style.backgroundColor = flag ? item.getAttribute('data-color') : '#ccc'; [].slice.call(document.querySelectorAll('#issue-list li.' + className)).forEach(function (li) { li.classList.toggle('hidden', !flag); }) } return false; } }, load: function () { ajax('//api.github.com/repos/yncoder/yncoder.github.io/labels', { cache: 3600000, ondata: this.render.bind(this), onforbidden: gotowork }); } }; issueList.load(); labelList.load(); })();