From 6dbf67a8c32a1e49dd98809951140adead630cfa Mon Sep 17 00:00:00 2001 From: Radhikajram Date: Tue, 6 Aug 2019 14:27:29 +0530 Subject: [PATCH 1/8] Week1-Assignment --- homework/index.js | 139 +++++++++++++++- homework/style.css | 71 +++++++- package-lock.json | 395 ++++++++++++++++++++++++++------------------- package.json | 2 +- 4 files changed, 440 insertions(+), 167 deletions(-) diff --git a/homework/index.js b/homework/index.js index d3a97645e..9598f9eca 100644 --- a/homework/index.js +++ b/homework/index.js @@ -30,13 +30,150 @@ return elem; } + // Load the Contributors information into section2 div element. + + function addContributors(contribution) { + const divElement = []; + + divElement.push(''}`); + + // eslint-disable-next-line no-restricted-syntax + for (const details of contribution) { + divElement.push( + '', + ); + } + + const htmlString = divElement.join(''); + document.getElementById('section2').innerHTML = htmlString; + } + + // Load the Repository information into section1 div element. + + function loadDiv(repoInfo, optionValue) { + const templateElement = []; + + // eslint-disable-next-line no-restricted-syntax + for (const repo in repoInfo) { + if (Object.prototype.hasOwnProperty.call(repoInfo, repo)) { + if (optionValue === repoInfo[repo].name) { + // format the date + const upDate = new Date(repoInfo[repo].updated_at); + const amOrPm = upDate.getHours() < 12 ? 'AM' : 'PM'; + const dateHours = upDate.getHours() % 12 || 12; + const formatedUpdate = `${upDate.getMonth()}/${upDate.getDate()}/${upDate.getFullYear()} ${dateHours} + : ${upDate.getMinutes()}:${upDate.getSeconds()} ${amOrPm}`; + + templateElement.push( + '
', + `${'

'} Repository name : ${''} ${repoInfo[repo].name}

`, + `${'

'} Description : ${repoInfo[repo].description}

`, + `${'

'} Forks : ${repoInfo[repo].forks_count}

`, + + `${'

'} Updated : ${formatedUpdate}

`, + '
', + ); + + console.log(repoInfo[repo].html_url); + // Call another function(addContributors) to fill i contributor information. + fetchJSON(repoInfo[repo].contributors_url, (err, data) => { + const root = document.getElementById('root'); + + if (err) { + createAndAppend('div', root, { text: err.message, class: 'alert-error' }); + } else { + addContributors(data); + } + }); + } + } + } + const htmlString = templateElement.join(''); + document.getElementById('section1').innerHTML = htmlString; + } + + // Create options under 'SELECT' element which should have HYF Repositories. + + function loadSelectionValues(userInfo) { + const sortRepoName = []; + + const userRepo = JSON.parse(userInfo); + const mySelect = document.getElementById('myselect'); + + // push all the HYP repo names to sort array. + + // eslint-disable-next-line no-restricted-syntax + for (const repo in userRepo) { + if (Object.prototype.hasOwnProperty.call(userRepo, repo)) { + sortRepoName.push(userRepo[repo].name); + } + } + + // sort the repo name using sort function and localeComapare for uppercase and lowercase sorting. + sortRepoName.sort((a, b) => a.localeCompare(b)); + + // Create Option under Select element and attach the same with SELECT element. + + // eslint-disable-next-line no-restricted-syntax + for (const repo of sortRepoName) { + const option = document.createElement('option'); + option.value = repo; + option.text = repo; + mySelect.appendChild(option); + } + + const selectBox = document.getElementById('myselect'); + const selectedValue = selectBox.options[selectBox.selectedIndex].value; + + // Load Repository information for the choose repository name in the select box. + loadDiv(userRepo, selectedValue); + selectBox.onchange = function() { + loadDiv(userRepo, selectBox.value); + }; + } + function main(url) { fetchJSON(url, (err, data) => { const root = document.getElementById('root'); + const myParent = document.body; + if (err) { createAndAppend('div', root, { text: err.message, class: 'alert-error' }); } else { - createAndAppend('pre', root, { text: JSON.stringify(data, null, 2) }); + // Create div element 'select' in document body to hold the label element and list box. + + createAndAppend('div', myParent, { id: 'select' }); + const select = document.getElementById('select'); + createAndAppend('LABEL', select, { + text: 'HYF Repositories: ', + id: 'label', + for: 'repo', + }); + createAndAppend('select', select, { id: 'myselect' }); + + // Create two div elements section1 and section2 under 'Root' div to have + // section1 - Repository Information. + // section2 - Contributions. + + createAndAppend('div', root, { id: 'section1' }); + createAndAppend('div', root, { id: 'section2' }); + + // Insert section1 before section2 div element under 'root' div. + const newNode = document.getElementById('section2'); + const referenceNode = document.querySelector('section1'); + root.insertBefore(newNode, referenceNode); + + // Insert Select div first in the body before root div. + myParent.insertBefore(select, document.getElementById('root')); + + loadSelectionValues(JSON.stringify(data, null, 2)); } }); } diff --git a/homework/style.css b/homework/style.css index a8985a8a5..2b66323b7 100644 --- a/homework/style.css +++ b/homework/style.css @@ -1,3 +1,70 @@ .alert-error { - color: red; -} \ No newline at end of file + color: red; +} + +#root { + display: flex; + background-color: white; + flex-direction: column; + font-size: 10px; +} +#root > div { + background-color: #f1f1f1; + margin: 10px; + padding: 20px; +} +#select { + background-color: blue; + margin-bottom: 10px; + text-align: justify; + width: 100%; + font-size: 10px; +} +#myselect { + margin-bottom: 10px; + margin-top: 10px; + font-size: 10px; +} +#root #section1 { + background-color: grey; + margin-bottom: 10px; + width: 85%; + height: 50%; +} +#root #section2 { + background-color: grey; + width: 80%; +} +ul { + list-style: none; + border-bottom: 1px solid #aaa; + + } + ul li { + display: inline; + margin-right: 5px; +} +ul li:last-child { + float: right; + background-color: white; +} + + + /*for Laptop */ + + @media only screen and (min-width: 768px) { + #root { + flex-direction: row; + } + #myselect { + font-size: 15px; + } + #select { + font-size: 15px; + } + #root #section2 { + width: 100%; + } + #root #section1 { + width: 100%; + } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 9ab0b6c76..06eca4f1e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,18 +5,18 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", "dev": true, "requires": { "@babel/highlight": "^7.0.0" } }, "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", "dev": true, "requires": { "chalk": "^2.0.0", @@ -25,9 +25,9 @@ } }, "acorn": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", - "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.1.tgz", + "integrity": "sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q==", "dev": true }, "acorn-jsx": { @@ -37,9 +37,9 @@ "dev": true }, "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -49,9 +49,9 @@ } }, "ansi-escapes": { - "version": "3.1.0", - "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { @@ -104,6 +104,12 @@ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", "dev": true }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, "axobject-query": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", @@ -135,25 +141,16 @@ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "^0.2.0" - } - }, "callsites": { - "version": "0.2.0", - "resolved": "http://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -167,12 +164,6 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -241,9 +232,9 @@ "dev": true }, "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" @@ -319,49 +310,58 @@ "dev": true }, "eslint": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.9.0.tgz", - "integrity": "sha512-g4KWpPdqN0nth+goDNICNXGfJF7nNnepthp46CAlJoJtC5K/cLu3NgCM3AHu1CkJ5Hzt9V0Y0PBAO6Ay/gGb+w==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "ajv": "^6.5.3", + "ajv": "^6.9.1", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", "debug": "^4.0.1", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", + "doctrine": "^3.0.0", + "eslint-scope": "^4.0.3", "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", - "espree": "^4.0.0", + "espree": "^5.0.1", "esquery": "^1.0.1", "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", + "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", "glob": "^7.1.2", "globals": "^11.7.0", "ignore": "^4.0.6", + "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^6.1.0", - "is-resolvable": "^1.1.0", - "js-yaml": "^3.12.0", + "inquirer": "^6.2.2", + "js-yaml": "^3.13.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", "optionator": "^0.8.2", "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", "progress": "^2.0.0", "regexpp": "^2.0.1", - "require-uncached": "^1.0.3", "semver": "^5.5.1", "strip-ansi": "^4.0.0", "strip-json-comments": "^2.0.1", - "table": "^5.0.2", + "table": "^5.2.3", "text-table": "^0.2.0" + }, + "dependencies": { + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + } } }, "eslint-config-airbnb": { @@ -539,9 +539,9 @@ "dev": true }, "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -549,10 +549,13 @@ } }, "eslint-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", - "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", - "dev": true + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.0.tgz", + "integrity": "sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.0.0" + } }, "eslint-visitor-keys": { "version": "1.0.0", @@ -561,12 +564,12 @@ "dev": true }, "espree": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", - "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", "dev": true, "requires": { - "acorn": "^6.0.2", + "acorn": "^6.0.7", "acorn-jsx": "^5.0.0", "eslint-visitor-keys": "^1.0.0" } @@ -608,9 +611,9 @@ "dev": true }, "external-editor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { "chardet": "^0.7.0", @@ -652,13 +655,12 @@ } }, "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "^2.0.1" } }, "find-up": { @@ -672,17 +674,22 @@ } }, "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" } }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -708,9 +715,9 @@ "dev": true }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -722,9 +729,9 @@ } }, "globals": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", - "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "graceful-fs": { @@ -775,6 +782,16 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, + "import-fresh": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", + "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -792,30 +809,53 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "inquirer": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", - "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", - "external-editor": "^3.0.0", + "external-editor": "^3.0.3", "figures": "^2.0.0", - "lodash": "^4.17.10", + "lodash": "^4.17.12", "mute-stream": "0.0.7", "run-async": "^2.2.0", - "rxjs": "^6.1.0", + "rxjs": "^6.4.0", "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", + "strip-ansi": "^5.1.0", "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "is-arrayish": { @@ -866,12 +906,6 @@ "has": "^1.0.1" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", @@ -900,9 +934,9 @@ "dev": true }, "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -971,9 +1005,9 @@ } }, "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, "loose-envify": { @@ -1002,13 +1036,13 @@ }, "minimist": { "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { @@ -1016,9 +1050,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "mute-stream": { @@ -1121,7 +1155,7 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, @@ -1149,6 +1183,15 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -1169,7 +1212,7 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, @@ -1230,12 +1273,6 @@ "find-up": "^1.0.0" } }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -1258,9 +1295,9 @@ } }, "progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "prop-types": { @@ -1317,16 +1354,6 @@ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, - "require-uncached": { - "version": "1.0.3", - "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, "resolve": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", @@ -1337,9 +1364,9 @@ } }, "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "restore-cursor": { @@ -1353,12 +1380,12 @@ } }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" } }, "run-async": { @@ -1371,9 +1398,9 @@ } }, "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", + "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -1413,11 +1440,13 @@ "dev": true }, "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" } }, @@ -1500,15 +1529,55 @@ } }, "table": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/table/-/table-5.1.0.tgz", - "integrity": "sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg==", + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.4.tgz", + "integrity": "sha512-IIfEAUx5QlODLblLrGTTLJA7Tk0iLSGBvgY8essPRVNGHAzThujww1YqHLs6h3HfTg55h++RzLHH5Xw/rfv+mg==", "dev": true, "requires": { - "ajv": "^6.5.3", - "lodash": "^4.17.10", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "text-table": { @@ -1519,7 +1588,7 @@ }, "through": { "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, @@ -1533,9 +1602,9 @@ } }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", "dev": true }, "type-check": { @@ -1588,9 +1657,9 @@ "dev": true }, "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { "mkdirp": "^0.5.1" diff --git a/package.json b/package.json index fd3398c5b..04c63a4a1 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "author": "Jim Cramer", "license": "CC-BY-4.0", "devDependencies": { - "eslint": "^5.9.0", + "eslint": "^5.16.0", "eslint-config-airbnb": "^17.1.0", "eslint-config-airbnb-base": "^13.1.0", "eslint-config-prettier": "^3.3.0", From 625ee8ec7ea7adebb48df6f2051b4a533628ce31 Mon Sep 17 00:00:00 2001 From: Radhikajram Date: Tue, 6 Aug 2019 15:17:53 +0530 Subject: [PATCH 2/8] removed console.log statement --- homework/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/homework/index.js b/homework/index.js index 9598f9eca..47abd24fc 100644 --- a/homework/index.js +++ b/homework/index.js @@ -81,7 +81,6 @@ '', ); - console.log(repoInfo[repo].html_url); // Call another function(addContributors) to fill i contributor information. fetchJSON(repoInfo[repo].contributors_url, (err, data) => { const root = document.getElementById('root'); From 5e793785bdc8a5bcfa48e0c4e08d79faef9db625 Mon Sep 17 00:00:00 2001 From: Radhikajram Date: Mon, 12 Aug 2019 14:04:14 +0530 Subject: [PATCH 3/8] changed naming conventions as per the review comments --- homework/index.js | 39 +++++++++++++++++++-------------------- homework/style.css | 16 ++++++++-------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/homework/index.js b/homework/index.js index 47abd24fc..ef42bef7b 100644 --- a/homework/index.js +++ b/homework/index.js @@ -50,12 +50,12 @@ } const htmlString = divElement.join(''); - document.getElementById('section2').innerHTML = htmlString; + document.getElementById('contributorinfomation').innerHTML = htmlString; } // Load the Repository information into section1 div element. - function loadDiv(repoInfo, optionValue) { + function loadRepoDetails(repoInfo, optionValue) { const templateElement = []; // eslint-disable-next-line no-restricted-syntax @@ -95,16 +95,15 @@ } } const htmlString = templateElement.join(''); - document.getElementById('section1').innerHTML = htmlString; + document.getElementById('repodetails').innerHTML = htmlString; } // Create options under 'SELECT' element which should have HYF Repositories. - function loadSelectionValues(userInfo) { + function loadSelectionValues(userRepo) { const sortRepoName = []; - const userRepo = JSON.parse(userInfo); - const mySelect = document.getElementById('myselect'); + const selectRepo = document.getElementById('selectrepo'); // push all the HYP repo names to sort array. @@ -125,54 +124,54 @@ const option = document.createElement('option'); option.value = repo; option.text = repo; - mySelect.appendChild(option); + selectRepo.appendChild(option); } - const selectBox = document.getElementById('myselect'); + const selectBox = document.getElementById('selectrepo'); const selectedValue = selectBox.options[selectBox.selectedIndex].value; // Load Repository information for the choose repository name in the select box. - loadDiv(userRepo, selectedValue); + loadRepoDetails(userRepo, selectedValue); selectBox.onchange = function() { - loadDiv(userRepo, selectBox.value); + loadRepoDetails(userRepo, selectBox.value); }; } function main(url) { fetchJSON(url, (err, data) => { const root = document.getElementById('root'); - const myParent = document.body; + const BodyEl = document.body; if (err) { createAndAppend('div', root, { text: err.message, class: 'alert-error' }); } else { // Create div element 'select' in document body to hold the label element and list box. - createAndAppend('div', myParent, { id: 'select' }); - const select = document.getElementById('select'); + createAndAppend('div', BodyEl, { id: 'seletcontainer' }); + const select = document.getElementById('seletcontainer'); createAndAppend('LABEL', select, { text: 'HYF Repositories: ', id: 'label', for: 'repo', }); - createAndAppend('select', select, { id: 'myselect' }); + createAndAppend('select', select, { id: 'selectrepo' }); // Create two div elements section1 and section2 under 'Root' div to have // section1 - Repository Information. // section2 - Contributions. - createAndAppend('div', root, { id: 'section1' }); - createAndAppend('div', root, { id: 'section2' }); + createAndAppend('div', root, { id: 'repodetails' }); + createAndAppend('div', root, { id: 'contributorinfomation' }); // Insert section1 before section2 div element under 'root' div. - const newNode = document.getElementById('section2'); - const referenceNode = document.querySelector('section1'); + const newNode = document.getElementById('contributorinfomation'); + const referenceNode = document.querySelector('repodetails'); root.insertBefore(newNode, referenceNode); // Insert Select div first in the body before root div. - myParent.insertBefore(select, document.getElementById('root')); + BodyEl.insertBefore(select, document.getElementById('root')); - loadSelectionValues(JSON.stringify(data, null, 2)); + loadSelectionValues(data); } }); } diff --git a/homework/style.css b/homework/style.css index 2b66323b7..e89cdf4d4 100644 --- a/homework/style.css +++ b/homework/style.css @@ -13,25 +13,25 @@ margin: 10px; padding: 20px; } -#select { +#seletcontainer { background-color: blue; margin-bottom: 10px; text-align: justify; width: 100%; font-size: 10px; } -#myselect { +#selectrepo { margin-bottom: 10px; margin-top: 10px; font-size: 10px; } -#root #section1 { +#root #repodetails { background-color: grey; margin-bottom: 10px; width: 85%; height: 50%; } -#root #section2 { +#root #contributorinfomation { background-color: grey; width: 80%; } @@ -56,15 +56,15 @@ ul li:last-child { #root { flex-direction: row; } - #myselect { + #selectrepo { font-size: 15px; } - #select { + #seletcontainer { font-size: 15px; } - #root #section2 { + #root #contributorinfomation { width: 100%; } - #root #section1 { + #root #repodetails { width: 100%; } \ No newline at end of file From ad0433e63598b807334cddfb4544dbaa1b562650 Mon Sep 17 00:00:00 2001 From: Radhikajram Date: Tue, 13 Aug 2019 01:28:00 +0530 Subject: [PATCH 4/8] Changed css Ids to Kebab-case --- homework/index.js | 22 +++++++++++----------- homework/style.css | 16 ++++++++-------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/homework/index.js b/homework/index.js index ef42bef7b..9d13591a5 100644 --- a/homework/index.js +++ b/homework/index.js @@ -50,7 +50,7 @@ } const htmlString = divElement.join(''); - document.getElementById('contributorinfomation').innerHTML = htmlString; + document.getElementById('contributor-information').innerHTML = htmlString; } // Load the Repository information into section1 div element. @@ -95,7 +95,7 @@ } } const htmlString = templateElement.join(''); - document.getElementById('repodetails').innerHTML = htmlString; + document.getElementById('repo-details').innerHTML = htmlString; } // Create options under 'SELECT' element which should have HYF Repositories. @@ -103,7 +103,7 @@ function loadSelectionValues(userRepo) { const sortRepoName = []; - const selectRepo = document.getElementById('selectrepo'); + const selectRepo = document.getElementById('select-repo'); // push all the HYP repo names to sort array. @@ -127,7 +127,7 @@ selectRepo.appendChild(option); } - const selectBox = document.getElementById('selectrepo'); + const selectBox = document.getElementById('select-repo'); const selectedValue = selectBox.options[selectBox.selectedIndex].value; // Load Repository information for the choose repository name in the select box. @@ -147,25 +147,25 @@ } else { // Create div element 'select' in document body to hold the label element and list box. - createAndAppend('div', BodyEl, { id: 'seletcontainer' }); - const select = document.getElementById('seletcontainer'); + createAndAppend('div', BodyEl, { id: 'select-container' }); + const select = document.getElementById('select-container'); createAndAppend('LABEL', select, { text: 'HYF Repositories: ', id: 'label', for: 'repo', }); - createAndAppend('select', select, { id: 'selectrepo' }); + createAndAppend('select', select, { id: 'select-repo' }); // Create two div elements section1 and section2 under 'Root' div to have // section1 - Repository Information. // section2 - Contributions. - createAndAppend('div', root, { id: 'repodetails' }); - createAndAppend('div', root, { id: 'contributorinfomation' }); + createAndAppend('div', root, { id: 'repo-details' }); + createAndAppend('div', root, { id: 'contributor-information' }); // Insert section1 before section2 div element under 'root' div. - const newNode = document.getElementById('contributorinfomation'); - const referenceNode = document.querySelector('repodetails'); + const newNode = document.getElementById('contributor-information'); + const referenceNode = document.querySelector('repo-details'); root.insertBefore(newNode, referenceNode); // Insert Select div first in the body before root div. diff --git a/homework/style.css b/homework/style.css index e89cdf4d4..15383e098 100644 --- a/homework/style.css +++ b/homework/style.css @@ -13,25 +13,25 @@ margin: 10px; padding: 20px; } -#seletcontainer { +#select-container { background-color: blue; margin-bottom: 10px; text-align: justify; width: 100%; font-size: 10px; } -#selectrepo { +#select-repo { margin-bottom: 10px; margin-top: 10px; font-size: 10px; } -#root #repodetails { +#root #repo-details { background-color: grey; margin-bottom: 10px; width: 85%; height: 50%; } -#root #contributorinfomation { +#root #contributor-information { background-color: grey; width: 80%; } @@ -56,15 +56,15 @@ ul li:last-child { #root { flex-direction: row; } - #selectrepo { + #select-repo { font-size: 15px; } - #seletcontainer { + #select-container { font-size: 15px; } - #root #contributorinfomation { + #root #contributor-information { width: 100%; } - #root #repodetails { + #root #repo-details { width: 100%; } \ No newline at end of file From 76a17268e8b533f89559cacbdd4b1d273213d7b3 Mon Sep 17 00:00:00 2001 From: Radhikajram Date: Tue, 13 Aug 2019 02:30:50 +0530 Subject: [PATCH 5/8] Use Fetch/Promise to get API data --- homework/index.js | 95 +++++++++++++++++++++-------------------------- 1 file changed, 43 insertions(+), 52 deletions(-) diff --git a/homework/index.js b/homework/index.js index 9d13591a5..26c1b22d6 100644 --- a/homework/index.js +++ b/homework/index.js @@ -1,19 +1,18 @@ 'use strict'; +// Using promise fetch the URL. { - function fetchJSON(url, cb) { - const xhr = new XMLHttpRequest(); - xhr.open('GET', url); - xhr.responseType = 'json'; - xhr.onload = () => { - if (xhr.status < 400) { - cb(null, xhr.response); - } else { - cb(new Error(`Network error: ${xhr.status} - ${xhr.statusText}`)); - } - }; - xhr.onerror = () => cb(new Error('Network request failed')); - xhr.send(); + function fetchUrl(url) { + return fetch(url) + .then(result => { + return result.json(); + }) + .then(data => { + return data; + }) + .catch(error => { + console.log(`check the URL address${error}`); + }); } function createAndAppend(name, parent, options = {}) { @@ -82,14 +81,8 @@ ); // Call another function(addContributors) to fill i contributor information. - fetchJSON(repoInfo[repo].contributors_url, (err, data) => { - const root = document.getElementById('root'); - - if (err) { - createAndAppend('div', root, { text: err.message, class: 'alert-error' }); - } else { - addContributors(data); - } + fetchUrl(repoInfo[repo].contributors_url).then(responseData => { + addContributors(responseData); }); } } @@ -128,52 +121,50 @@ } const selectBox = document.getElementById('select-repo'); - const selectedValue = selectBox.options[selectBox.selectedIndex].value; // Load Repository information for the choose repository name in the select box. - loadRepoDetails(userRepo, selectedValue); + loadRepoDetails(userRepo, selectBox.value); selectBox.onchange = function() { loadRepoDetails(userRepo, selectBox.value); }; } function main(url) { - fetchJSON(url, (err, data) => { - const root = document.getElementById('root'); - const BodyEl = document.body; + const BodyEl = document.body; + const root = document.getElementById('root'); - if (err) { - createAndAppend('div', root, { text: err.message, class: 'alert-error' }); - } else { - // Create div element 'select' in document body to hold the label element and list box. + // Call the fetchUrl function to fetch Repository information. The function will in tern returns promise. + const data = fetchUrl(url).then(responseData => { + loadSelectionValues(responseData); + }); - createAndAppend('div', BodyEl, { id: 'select-container' }); - const select = document.getElementById('select-container'); - createAndAppend('LABEL', select, { - text: 'HYF Repositories: ', - id: 'label', - for: 'repo', - }); - createAndAppend('select', select, { id: 'select-repo' }); + // Create div element 'select' in document body to hold the label element and list box. - // Create two div elements section1 and section2 under 'Root' div to have - // section1 - Repository Information. - // section2 - Contributions. + createAndAppend('div', BodyEl, { id: 'select-container' }); + const select = document.getElementById('select-container'); + createAndAppend('LABEL', select, { + text: 'HYF Repositories: ', + id: 'label', + for: 'repo', + }); + createAndAppend('select', select, { id: 'select-repo' }); - createAndAppend('div', root, { id: 'repo-details' }); - createAndAppend('div', root, { id: 'contributor-information' }); + // Create two div elements section1 and section2 under 'Root' div to have + // section1 - Repository Information. + // section2 - Contributions. - // Insert section1 before section2 div element under 'root' div. - const newNode = document.getElementById('contributor-information'); - const referenceNode = document.querySelector('repo-details'); - root.insertBefore(newNode, referenceNode); + createAndAppend('div', root, { id: 'repo-details' }); + createAndAppend('div', root, { id: 'contributor-information' }); - // Insert Select div first in the body before root div. - BodyEl.insertBefore(select, document.getElementById('root')); + // Insert section1 before section2 div element under 'root' div. + const newNode = document.getElementById('contributor-information'); + const referenceNode = document.querySelector('repo-details'); + root.insertBefore(newNode, referenceNode); - loadSelectionValues(data); - } - }); + // Insert Select div first in the body before root div. + BodyEl.insertBefore(select, document.getElementById('root')); + + loadSelectionValues(data); } const HYF_REPOS_URL = 'https://api.github.com/orgs/HackYourFuture/repos?per_page=100'; From c8a7ee9a098a14424ee717b84298ee03743a6543 Mon Sep 17 00:00:00 2001 From: Radhikajram Date: Tue, 13 Aug 2019 18:29:52 +0530 Subject: [PATCH 6/8] Modified all the for loops so as to remove eslint compliance. --- homework/index.js | 69 ++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 40 deletions(-) diff --git a/homework/index.js b/homework/index.js index 26c1b22d6..b600d58f9 100644 --- a/homework/index.js +++ b/homework/index.js @@ -36,8 +36,7 @@ divElement.push(''}`); - // eslint-disable-next-line no-restricted-syntax - for (const details of contribution) { + contribution.forEach(details => { divElement.push( '
    ', `${'
  • '} ${'`, @@ -46,7 +45,7 @@ `
  • ${details.contributions}
  • `, '
', ); - } + }); const htmlString = divElement.join(''); document.getElementById('contributor-information').innerHTML = htmlString; @@ -57,36 +56,30 @@ function loadRepoDetails(repoInfo, optionValue) { const templateElement = []; - // eslint-disable-next-line no-restricted-syntax - for (const repo in repoInfo) { - if (Object.prototype.hasOwnProperty.call(repoInfo, repo)) { - if (optionValue === repoInfo[repo].name) { - // format the date - const upDate = new Date(repoInfo[repo].updated_at); - const amOrPm = upDate.getHours() < 12 ? 'AM' : 'PM'; - const dateHours = upDate.getHours() % 12 || 12; - const formatedUpdate = `${upDate.getMonth()}/${upDate.getDate()}/${upDate.getFullYear()} ${dateHours} + Object.keys(repoInfo).forEach(key => { + if (optionValue === repoInfo[key].name) { + // format the date + const upDate = new Date(repoInfo[key].updated_at); + const amOrPm = upDate.getHours() < 12 ? 'AM' : 'PM'; + const dateHours = upDate.getHours() % 12 || 12; + const formatedUpdate = `${upDate.getMonth()}/${upDate.getDate()}/${upDate.getFullYear()} ${dateHours} : ${upDate.getMinutes()}:${upDate.getSeconds()} ${amOrPm}`; - - templateElement.push( - '
', - `${'

'} Repository name : ${''} ${repoInfo[repo].name}

`, - `${'

'} Description : ${repoInfo[repo].description}

`, - `${'

'} Forks : ${repoInfo[repo].forks_count}

`, - - `${'

'} Updated : ${formatedUpdate}

`, - '
', - ); - - // Call another function(addContributors) to fill i contributor information. - fetchUrl(repoInfo[repo].contributors_url).then(responseData => { - addContributors(responseData); - }); - } + templateElement.push( + '
', + `${'

'} Repository name : ${''} ${repoInfo[key].name}

`, + `${'

'} Description : ${repoInfo[key].description}

`, + `${'

'} Forks : ${repoInfo[key].forks_count}

`, + + `${'

'} Updated : ${formatedUpdate}

`, + '
', + ); + fetchUrl(repoInfo[key].contributors_url).then(responseData => { + addContributors(responseData); + }); } - } + }); const htmlString = templateElement.join(''); document.getElementById('repo-details').innerHTML = htmlString; } @@ -100,25 +93,21 @@ // push all the HYP repo names to sort array. - // eslint-disable-next-line no-restricted-syntax - for (const repo in userRepo) { - if (Object.prototype.hasOwnProperty.call(userRepo, repo)) { - sortRepoName.push(userRepo[repo].name); - } - } + Object.keys(userRepo).forEach(key => { + sortRepoName.push(userRepo[key].name); + }); // sort the repo name using sort function and localeComapare for uppercase and lowercase sorting. sortRepoName.sort((a, b) => a.localeCompare(b)); // Create Option under Select element and attach the same with SELECT element. - // eslint-disable-next-line no-restricted-syntax - for (const repo of sortRepoName) { + sortRepoName.forEach(repo => { const option = document.createElement('option'); option.value = repo; option.text = repo; selectRepo.appendChild(option); - } + }); const selectBox = document.getElementById('select-repo'); From 10fbc8bd0c2dcb6bf0643b59ea38182375444656 Mon Sep 17 00:00:00 2001 From: Radhikajram Date: Thu, 22 Aug 2019 14:40:38 +0530 Subject: [PATCH 7/8] Week3- Changes --- homework/App.js | 81 +++++++++++++++++++++++++++++++++++++---- homework/Contributor.js | 12 +++++- homework/Repository.js | 23 +++++++++++- homework/style.css | 12 +++--- 4 files changed, 110 insertions(+), 18 deletions(-) diff --git a/homework/App.js b/homework/App.js index 32b71e34b..7cc2e4036 100644 --- a/homework/App.js +++ b/homework/App.js @@ -16,14 +16,78 @@ class App { // 1. Create the fixed HTML elements of your page // 2. Make an initial XMLHttpRequest using Util.fetchJSON() to populate your