diff --git a/data/reports.liquid b/data/reports.liquid
new file mode 100644
index 00000000..a575e015
--- /dev/null
+++ b/data/reports.liquid
@@ -0,0 +1,13 @@
+---
+---
+[
+{% for report in site.reports %}
+{
+ "categories": [{% for category in report.categories %}"{{ category }}"{% unless forloop.last %},{% endunless %}{% endfor %}],
+ "date": "{{ report.date }}",
+ "student": "{{ report.student }}",
+ "project": "{{ report.project }}",
+ "project_link": "{{ report.project_link }}",
+ "url": "{{ report.url }}"
+}{% unless forloop.last %},{% endunless %}{% endfor %}
+]
diff --git a/partials/tabs/projects.html b/partials/tabs/projects.html
index 58c125e4..caa1f0e6 100644
--- a/partials/tabs/projects.html
+++ b/partials/tabs/projects.html
@@ -60,6 +60,10 @@
Initiatives
{{ initiative }}
+
Collaborating projects
{{ project }}
diff --git a/resources/css/style.css b/resources/css/style.css
index f2395d87..0c90f3ca 100644
--- a/resources/css/style.css
+++ b/resources/css/style.css
@@ -1,3 +1,6 @@
+.gsoc-report {
+ cursor: pointer;
+}
.hash_value_dup {
position: 'absolute';
left: '-9999px';
diff --git a/resources/js/app.js b/resources/js/app.js
index af811167..02915781 100644
--- a/resources/js/app.js
+++ b/resources/js/app.js
@@ -87,7 +87,7 @@
}
})
- app.directive('projects', ['$http', '$timeout', '$location', 'Languages', function ($http, $timeout, $location, Languages) {
+ app.directive('projects', ['$http', '$timeout', '$location', '$window', 'Languages', function ($http, $timeout, $location, $window, Languages) {
return {
restrict: 'E',
templateUrl: '/partials/tabs/projects.html',
@@ -110,6 +110,7 @@
.then(function (res) {
$scope.projectList = res.data;
$scope.projectRequest();
+ $scope.mapReportToProject();
})
}
@@ -281,6 +282,27 @@
$scope.searchText = search_requested
}
+ $scope.redirectToReport = function () {
+ $window.open($scope.currentProject.report.url, '_blank');
+ }
+
+ $scope.mapReportToProject = function () {
+ $http.get('data/reports.liquid')
+ .then(function (res) {
+ angular.forEach(res.data, function (report) {
+ var completed_project = report.project.toLowerCase()
+ angular.forEach($scope.projectList, function (project) {
+ if (
+ project.status.indexOf('completed') !== -1 && project.mentors.length > 0 &&
+ completed_project === project.name.toLowerCase()
+ ) {
+ project.report = report
+ }
+ })
+ })
+ })
+ }
+
},
controllerAs: 'lc'
}