Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit df16ee4

Browse files
authored
Merge pull request #3 from AaaaT/homework-week1
starting to make it work with js!
2 parents 551107e + e3b7592 commit df16ee4

File tree

3 files changed

+68
-24
lines changed

3 files changed

+68
-24
lines changed

homework/index.html

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,22 @@
1717
<link rel="stylesheet" href="./style.css" />
1818
</head>
1919
<header>
20-
<label>HYF Repositories </label>
21-
<select>
20+
<div id="root"><label>HYF Repositories </label></div>
21+
<!--<select>
2222
<option value="0">alumni</option>
2323
<option value="1">angular</option>
24-
<!-- etc -->
25-
</select>
24+
etc
25+
</select>-->
2626
</header>
2727

2828
<body>
29-
<!--<div id="root"></div>
30-
<script src="./index.js"></script> -->
29+
<script src="./index.js"></script>
3130

32-
<p>The repositories will be displayed here</p>
33-
31+
<!--<p>The repositories will be displayed here</p> testing the body contents-->
32+
<div id="forRepoBlock"></div>
33+
<div id="forContributorsBlock"></div>
3434
</body>
3535
</html>
36+
37+
38+

homework/index.js

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,28 +31,53 @@
3131
}
3232

3333
function main(url) {
34-
fetchJSON(url, (err, repositories) => {
35-
const root = document.getElementById('root');
36-
console.log(err, repositories);
34+
fetchJSON(url, (err, data) => {
35+
const root = document.getElementById('root','forRepoBlock', 'forContributorsBlock');
3736
if (err) {
3837
createAndAppend('div', root, { text: err.message, class: 'alert-error' });
39-
const div = document.createElement('div');
40-
div.textContent = err.message;
41-
div.setAttribute('class', 'alert-error');
42-
root.appendChild(div);
43-
return;
44-
}
45-
createAndAppend('pre', root, { text: JSON.stringify(repositories, null, 2) });
38+
} else {
39+
//createAndAppend('pre', root, { text: JSON.stringify(data, null, 2) });
40+
const select = createAndAppend('select', root);
41+
createAndAppend('option', select, { text: 'Click here to choose a Repository' });
42+
data.forEach(repo => {
43+
const name = repo.name;
44+
createAndAppend('option', select, { text: name });
45+
});
46+
47+
const repoInfo = createAndAppend('div', forRepoBlock);
48+
const contribs = createAndAppend('div', forContributorsBlock);
49+
select.addEventListener('change', evt => {
50+
const selectedRepo = evt.target.value;
51+
const repo = data.filter(r => r.name == selectedRepo)[0];
52+
console.log(repo);
53+
repoInfo.innerHTML = '';
54+
contribs.innerHTML = '';
55+
56+
const addInfo = (label, value) => {
57+
const container = createAndAppend('div', repoInfo);
58+
createAndAppend('span', container, { text: label });
59+
createAndAppend('span', container, { text: value });
60+
};
61+
addInfo('Name: ', repo.name);
62+
addInfo('Desciption: ', repo.description);
63+
addInfo('Number of forks: ', repo.forks);
64+
addInfo('Updated: ', repo.updated_at);
4665

47-
/* //getting the names
48-
repositories.forEach(repo => {
49-
console.log(repo.name);
50-
createAndAppend('div', root, { text: repo.name });*/
51-
});
66+
const contribsUrl = repo.contributors_url;
67+
fetchJSON(contribsUrl, (err, contribData) => {
68+
contribData.forEach(contributor => {
69+
createAndAppend('div', contribs, { text: contributor.login });
70+
});
71+
});
72+
});
73+
}
5274
});
5375
}
5476

5577
const HYF_REPOS_URL = 'https://api.github.com/orgs/HackYourFuture/repos?per_page=100';
5678

5779
window.onload = () => main(HYF_REPOS_URL);
5880
}
81+
82+
83+

homework/style.css

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,30 @@ body {
99
color: black;
1010
font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
1111
font-size: 1rem;
12-
padding-right: 10px;
12+
padding-right: 1px;
1313
}
1414

1515
.alert-error {
1616
color: red;
1717
}
1818

19+
1920
select {
21+
font-size: .9rem;
22+
padding: 4px 25px;
23+
margin-left: 10px;
24+
border-radius: 20px;
25+
}
26+
27+
#forRepoBlock {
28+
color: purple;
29+
font-size: .9rem;
30+
padding: 1px 25px;
31+
margin-left: 2px;
32+
border-radius: 20px;
33+
}
34+
#forContributorsBlock {
35+
color: brown;
2036
font-size: .9rem;
2137
padding: 4px 25px;
2238
margin-left: 25px;

0 commit comments

Comments
 (0)