diff --git a/static/js/directives/components/pages/repo-page/body.tsx b/static/js/directives/components/pages/repo-page/body.tsx index e3d3fedef..172a94db5 100644 --- a/static/js/directives/components/pages/repo-page/body.tsx +++ b/static/js/directives/components/pages/repo-page/body.tsx @@ -1,24 +1,32 @@ import * as React from "react"; -interface IMain { +interface IBody { description: string } -class body extends React.Component { +/** + * The Component for the main body of the repo page + * @param {string} description - The description of the repository + */ +class body extends React.Component { static propTypes = { description: React.PropTypes.string.isRequired, } render () { + let description: string = this.props.description; + if (description === "") { + description = "No Description"; + } return(
-
{this.props.description}
+
{description}
TODO (IAN): Convert the build directives to angular components diff --git a/static/js/directives/components/pages/repo-page/header.tsx b/static/js/directives/components/pages/repo-page/header.tsx index 224327cd4..3e52b264a 100644 --- a/static/js/directives/components/pages/repo-page/header.tsx +++ b/static/js/directives/components/pages/repo-page/header.tsx @@ -5,6 +5,11 @@ interface IHeader { namespace: string } +/** + * The Component for the header of the repo page + * @param {string} name - The name of the repository + * @param {string} namespace - The namespace of the repository + */ class repoHeader extends React.Component { static propTypes = { name: React.PropTypes.string.isRequired, diff --git a/static/js/directives/components/pages/repo-page/sidebar.tsx b/static/js/directives/components/pages/repo-page/sidebar.tsx index ff9ea5e5e..ed8a716eb 100644 --- a/static/js/directives/components/pages/repo-page/sidebar.tsx +++ b/static/js/directives/components/pages/repo-page/sidebar.tsx @@ -14,6 +14,12 @@ interface ISidebar { repository: Object } +/** + * The Component for the sidebar of the repo page + * @param {string} isPublic - A string that states whether the repository is private or public + * @param {tag} tags - The list of tags for the repository + * @param {object} repository - The list of properties for the repository + */ class repoSidebar extends React.Component { static propTypes = { isPublic: React.PropTypes.string.isRequired, @@ -27,16 +33,18 @@ class repoSidebar extends React.Component { let badgeIcon: string = (this.props.isPublic) ? "rp-badge__icon--public" : "rp-badge__icon--private"; let repository: any = this.props.repository; let sharing: string = repository.company || repository.namespace; - for (let t in this.props.tags){ - sortedTags.push( - { - name: this.props.tags[t].name, - lastModified: Date.parse(this.props.tags[t].last_modified) - } - ); + + for (let tagObject in this.props.tags) { + sortedTags.push({ + name: this.props.tags[tagObject].name, + lastModified: Date.parse(this.props.tags[tagObject].last_modified) + }); } - sortedTags = sortedTags.sort(function(a,b){return a.lastModified - b.lastModified}); + sortedTags = sortedTags.sort(function(a, b) { + return a.lastModified - b.lastModified; + }); + sortedTags.forEach(function(el, i){ tagRows.push( diff --git a/static/js/pages/repo-view.js b/static/js/pages/repo-view.js index 8053e673f..3810f294c 100644 --- a/static/js/pages/repo-view.js +++ b/static/js/pages/repo-view.js @@ -61,13 +61,10 @@ $scope.repository = repo; $scope.viewScope.repository = repo; $scope.publicRepoExperiment = CookieService.get('quay.public-repo-exp') == 'true'; - if (!$scope.repository.description){ - $scope.repository.description = "No Description"; - } // Flag for new repo page experiment $scope.newRepoExperiment = $scope.repository.is_public && $scope.user.username != $scope.repository.namespace && $scope.publicRepoExperiment; - + // Load the remainder of the data async, so we don't block the initial view from // showing. $timeout(function() {