+
diff --git a/src/main/chart/edit/editChartController.js b/src/main/chart/edit/editChartController.js
index a963085..9a28855 100644
--- a/src/main/chart/edit/editChartController.js
+++ b/src/main/chart/edit/editChartController.js
@@ -32,7 +32,6 @@ angular.module('adf.widget.redmine')
vm.config.timespan = {};
}
-
vm.inlineOptions = {
customClass: getDayClass,
minDate: new Date(),
diff --git a/src/main/chart/service.js b/src/main/chart/service.js
index 492a202..9909fd6 100644
--- a/src/main/chart/service.js
+++ b/src/main/chart/service.js
@@ -3,36 +3,48 @@
angular.module('adf.widget.redmine')
.factory('chartDataService', function ($q, redmineService) {
- function getChartData(config) {
- config.numberPoints = 50;
- return redmineService.getIssuesForChart(config).then(function (issues) {
- //if (vm.config.timespan && vm.config.timespan.fromDateTime && vm.config.timespan.toDateTime)
- var from = new Date(config.timespan.fromDateTime);
- var to = new Date(config.timespan.toDateTime);
- return calculateOpenIssuesPerDay(from, to, issues, config);
- });
+ function moveNewOpenIssues(allIssues, openIssues, date) {
+ for (var i = 0; i < allIssues.length; i++) {
+ var createDate = new Date(allIssues[i].created_on);
+ if (createDate.getTime() <= date.getTime()) {
+ openIssues.push(allIssues[i]);
+ allIssues.splice(i, 1);
+ i--;
+ }
+ }
+ }
+
+ function removeNewClosedIssues(openIssues, date) {
+ for (var i = 0; i < openIssues.length; i++) {
+ if (openIssues[i].closed_on) {
+ var closeDate = new Date(openIssues[i].closed_on);
+ if (closeDate.getTime() <= date.getTime()) {
+ openIssues.splice(i, 1);
+ i--;
+ }
+ }
+ }
}
function calculateOpenIssuesPerDay(from, to, issues, config) {
var timeDiff = Math.abs(from.getTime() - to.getTime());
- var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
- var pointThinningRate = diffDays / config.numberPoints;
+ var pointThinningRate = timeDiff / config.numberPoints;
var numberAllIssues = issues.length;
- var idealIssuesPerDay = numberAllIssues / diffDays;
+ var idealIssuesPerInterval = numberAllIssues / timeDiff;
var idealData = [];
var openIssues = [];
var values = [];
- while (from.getTime() <= to.getTime()) {
+ while ((from.getTime() <= to.getTime())) {
moveNewOpenIssues(issues, openIssues, from);
removeNewClosedIssues(openIssues, from);
var value = {x: from.toISOString(),y:openIssues.length};
values.push(value);
if (config.showIdeal) {
- var idealValue = Math.round((numberAllIssues - idealData.length * idealIssuesPerDay * pointThinningRate)*100) / 100;
+ var idealValue = Math.round((numberAllIssues - idealData.length * idealIssuesPerInterval * pointThinningRate)*100)/100;
var ideal = {x: from.toISOString(),y:idealValue};
idealData.push(ideal);
}
- from.setDate(from.getDate() + pointThinningRate);
+ from.setTime(from.getTime() + pointThinningRate);
}
var valueSets = [values];
if (config.showIdeal) {
@@ -41,30 +53,13 @@ angular.module('adf.widget.redmine')
return valueSets;
}
- function moveNewOpenIssues(allIssues, openIssues, date) {
- for (var i = 0; i < allIssues.length; i++) {
- var createDate = new Date(allIssues[i].created_on);
- if (createDate.getTime() <= date.getTime()) {
- openIssues.push(allIssues[i]);
- allIssues.splice(i, 1);
- i--;
- } else {
- // we can stop here, cause the issues are ordered by creation date
- break;
- }
- }
- }
-
- function removeNewClosedIssues(openIssues, date) {
- for (var i = 0; i < openIssues.length; i++) {
- if (openIssues[i].closed_on) {
- var closeDate = new Date(openIssues[i].closed_on);
- if (closeDate.getTime() <= date.getTime()) {
- openIssues.splice(i, 1);
- i--;
- }
- }
- }
+ function getChartData(config) {
+ return redmineService.getIssuesForChart(config).then(function (issues) {
+ config.numberPoints = 50;
+ var from = new Date(config.timespan.fromDateTime);
+ var to = new Date(config.timespan.toDateTime);
+ return calculateOpenIssuesPerDay(from, to, issues, config);
+ });
}
return {
diff --git a/src/main/issues/issueController.js b/src/main/issues/issueController.js
index 90154ea..6b6dae6 100644
--- a/src/main/issues/issueController.js
+++ b/src/main/issues/issueController.js
@@ -29,7 +29,11 @@ angular.module('adf.widget.redmine')
}
}
- vm.issueUrl = redmineService.getRedmineEndpoint() + 'issues/';
+ var redirectEndpoint = redmineService.getRedmineRedirectEndpoint();
+ if (!redirectEndpoint) {
+ redirectEndpoint = redmineService.getRedmineEndpoint();
+ }
+ vm.issueUrl = redirectEndpoint + 'issues/';
vm.order = 'id';
diff --git a/src/main/issues/view.html b/src/main/issues/view.html
index fce2217..c7acfa1 100644
--- a/src/main/issues/view.html
+++ b/src/main/issues/view.html
@@ -46,7 +46,7 @@
Subject
|
-
+ |
Assignee
|
@@ -67,7 +67,7 @@
{{issue.subject}}
- {{issue.author.name}}
+ {{issue.assigned_to.name}}
|
diff --git a/src/main/redmine.js b/src/main/redmine.js
index 9ac16e5..b3aeda7 100644
--- a/src/main/redmine.js
+++ b/src/main/redmine.js
@@ -1,7 +1,7 @@
'use strict';
angular.module('adf.widget.redmine', ['adf.provider', 'chart.js', 'ui.bootstrap.datepicker'])
- .constant('redmineEndpoint', 'http://www.redmine.org/')
+ .constant('redmineEndpoint', 'http://localhost:3000/')
.config(function (dashboardProvider) {
var category = 'Redmine';
@@ -65,7 +65,7 @@ angular.module('adf.widget.redmine', ['adf.provider', 'chart.js', 'ui.bootstrap.
}
});
// widget is currently broken
- /* dashboardProvider
+ dashboardProvider
.widget('redmine-chart', {
title: 'Redmine Chart',
description: 'Displays a burnup or burndown chart',
@@ -74,7 +74,6 @@ angular.module('adf.widget.redmine', ['adf.provider', 'chart.js', 'ui.bootstrap.
controller: 'ChartController',
controllerAs: 'vm',
resolve: {
- /** @ngInject **/ /*
chartData: function (chartDataService, config) {
if(config.project) {
return chartDataService.getChartData(config);
@@ -83,5 +82,5 @@ angular.module('adf.widget.redmine', ['adf.provider', 'chart.js', 'ui.bootstrap.
},
edit: editChart
});
- */
+
});
diff --git a/src/main/service.js b/src/main/service.js
index 927178e..5d22133 100644
--- a/src/main/service.js
+++ b/src/main/service.js
@@ -1,7 +1,7 @@
'use strict';
angular.module('adf.widget.redmine')
- .factory('redmineService', function ($http, redmineEndpoint, $q) {
+ .factory('redmineService', function ($http, redmineEndpoint, redmineRedirectEndpoint, $q) {
function extractData(response) {
return response.data;
@@ -144,6 +144,10 @@ angular.module('adf.widget.redmine')
return redmineEndpoint;
}
+ function getRedmineRedirectEndpoint(){
+ return redmineRedirectEndpoint;
+ }
+
function getTrackers() {
return request('trackers.json').then(function (data) {
return data.trackers;
@@ -164,6 +168,7 @@ angular.module('adf.widget.redmine')
getCustomQueries: getCustomQueries,
getIssuesByQueryId: getIssuesByQueryId,
getRedmineEndpoint: getRedmineEndpoint,
+ getRedmineRedirectEndpoint: getRedmineRedirectEndpoint,
getTrackers: getTrackers,
getMyIssues : getMyIssues
};