|
29 | 29 | });
|
30 | 30 | return elem;
|
31 | 31 | }
|
32 |
| - //header |
33 | 32 |
|
34 |
| - function createAnRepoList(array) { |
35 |
| - createAndAppend('header', root, { class: 'header' }); |
36 |
| - let header = document.getElementsByClassName('header')[0]; |
37 |
| - createAndAppend('p', header, { text: 'HYF Repositories' }); |
38 |
| - createAndAppend('select', header, { class: 'repo-selector', id: 'RepoList' }); |
39 |
| - let listRoot = document.getElementById('RepoList'); |
40 |
| - for (let i = 0; i < array.length; i++) { |
41 |
| - createAndAppend('option', listRoot, { text: array[i].name, value: i }); |
42 |
| - } |
43 |
| - } |
44 |
| - |
45 |
| - function selectInfo(arr) { |
46 |
| - const root = document.getElementById('root'); |
47 |
| - createAndAppend('div', root, { class: 'header', id: 'header' }); |
48 |
| - let header = document.getElementsByClassName('header')[0]; |
49 |
| - createAndAppend('h1', header, { text: 'HYF Repositories' }); |
50 |
| - createAndAppend('select', header, { class: 'repo-selector', id: 'RepoList' }); |
51 |
| - const listRoot = document.getElementById('RepoList'); |
52 |
| - |
53 |
| - for (let i = 0; i < arr.length; i++) { |
54 |
| - createAndAppend('option', listRoot, { text: arr[i].name, value: i }); |
55 |
| - } |
56 |
| - } |
57 |
| - //left |
58 |
| - function createRepo(element) { |
59 |
| - const container = document.querySelector('#container'); |
60 |
| - //creating table for repository overwiew |
61 |
| - let table = createAndAppend('table', container, { |
62 |
| - id: 'RepositoryOverview', |
63 |
| - class: 'leftDiv whiteFrame', |
64 |
| - }); |
65 |
| - let repoRow = createAndAppend('tr', table); |
66 |
| - //creating row for repository and link |
67 |
| - createAndAppend('td', repoRow, { text: 'Repository:', style: 'font-weight:bold' }); |
68 |
| - let repoLink = createAndAppend('td', repoRow); |
69 |
| - createAndAppend('a', repoLink, { |
70 |
| - href: element.html_url, |
71 |
| - text: element.name, |
72 |
| - target: '_blank', |
73 |
| - }); |
74 |
| - //creating row for repo description |
75 |
| - let descriptionRow = createAndAppend('tr', table); |
76 |
| - createAndAppend('td', descriptionRow, { text: 'Description:', style: 'font-weight:bold' }); |
77 |
| - createAndAppend('td', descriptionRow, { text: element.description }); |
78 |
| - //creating row for forks |
79 |
| - let forkRow = createAndAppend('tr', table); |
80 |
| - createAndAppend('td', forkRow, { text: 'Fork:', style: 'font-weight:bold' }); |
81 |
| - createAndAppend('td', forkRow, { text: element.forks_count }); |
82 |
| - // creating 'last time updated' row |
83 |
| - let updatedRow = createAndAppend('tr', table); |
84 |
| - createAndAppend('td', updatedRow, { text: 'Updated:', style: 'font-weight:bold' }); |
85 |
| - let date = new Date(element.updated_at); |
86 |
| - date = date.toUTCString(); |
87 |
| - createAndAppend('td', updatedRow, { text: date }); |
88 |
| - //const repolist = getElementByClassName('left-div'); |
89 |
| - } |
90 |
| - //right |
91 |
| - |
92 |
| - function createContributor(element) { |
93 |
| - fetchJSON(element.contributors_url, (err, data) => { |
94 |
| - const root = document.getElementById('container'); |
95 |
| - if (err) { |
96 |
| - createAndAppend('div', root, { text: err.message, class: 'alert-error' }); |
97 |
| - } else { |
98 |
| - let contributors = createAndAppend('div', root, { |
99 |
| - id: 'contributors', |
100 |
| - class: 'rightDiv whiteFrame', |
101 |
| - }); |
102 |
| - createAndAppend('p', contributors, { class: 'contributorsHeader', text: 'Contributors' }); |
103 |
| - |
104 |
| - let ul = createAndAppend('ul', contributors, { class: 'contributorsList' }); |
105 |
| - for (let i = 0; i < data.length; i++) { |
106 |
| - let li = createAndAppend('li', ul, { class: 'contributorItem' }); |
107 |
| - let img = createAndAppend('img', li, { |
108 |
| - src: data[i].avatar_url, |
109 |
| - class: 'contributorsAvatar', |
110 |
| - height: 48, |
111 |
| - }); |
112 |
| - let login = createAndAppend('a', li, { |
113 |
| - text: data[i].login, |
114 |
| - href: data[i].html_url, |
115 |
| - target: '_blank', |
116 |
| - class: 'contributorName', |
117 |
| - }); |
118 |
| - let badge = createAndAppend('div', li, { |
119 |
| - text: data[i].contributions, |
120 |
| - class: 'contributorBadge', |
121 |
| - }); |
122 |
| - } |
123 |
| - } |
124 |
| - }); |
125 |
| - } |
126 |
| - |
127 |
| - //main for run program |
128 | 33 | function main(url) {
|
129 | 34 | fetchJSON(url, (err, data) => {
|
130 | 35 | const root = document.getElementById('root');
|
131 | 36 | if (err) {
|
132 | 37 | createAndAppend('div', root, { text: err.message, class: 'alert-error' });
|
133 | 38 | } else {
|
134 |
| - data.sort(function(item1, item2) { |
135 |
| - if (item1.name.toUpperCase() < item2.name.toUpperCase()) return -1; |
136 |
| - if (item1.name > item2.name) return 1; |
137 |
| - return 0; |
138 |
| - }); |
139 |
| - |
140 |
| - //Show Header |
141 |
| - selectInfo(data); |
142 |
| - //Create and show Container left-right |
143 |
| - createAndAppend('div', root, { id: 'container', class: 'container' }); |
144 |
| - //left-side |
145 |
| - createRepo(data[0]); |
146 |
| - //right-side |
147 |
| - createContributor(data[0]); |
148 |
| - |
149 |
| - //change value if select repo in drop down |
150 |
| - |
151 |
| - document.getElementById('RepoList').onchange = function() { |
152 |
| - let selectedItem = this.options[this.selectedIndex].value; |
153 |
| - let table = document.getElementById('RepositoryOverview'); |
154 |
| - table.parentNode.removeChild(table); |
155 |
| - let contributors = document.getElementById('contributors'); |
156 |
| - contributors.parentNode.removeChild(contributors); |
157 |
| - |
158 |
| - createRepo(data[selectedItem]); |
159 |
| - createContributor(data[selectedItem]); |
160 |
| - }; |
| 39 | + createAndAppend('pre', root, { text: JSON.stringify(data, null, 2) }); |
161 | 40 | }
|
162 | 41 | });
|
163 | 42 | }
|
164 | 43 |
|
165 |
| - const HYF_REPOS_URL = 'https://api.github.com/orgs/HackYourFuture/repos?per_page=100'; |
| 44 | + const REPOS_URL = 'https://api.github.com/orgs/foocoding/repos?per_page=100'; |
166 | 45 |
|
167 |
| - window.onload = () => main(HYF_REPOS_URL); |
| 46 | + window.onload = () => main(REPOS_URL); |
168 | 47 | }
|
0 commit comments