/*
 *	aegis - project change supervisor
 *	Copyright (C) 2001, 2006-2008 Peter Miller
 *
 *	This program is free software; you can redistribute it and/or modify
 *	it under the terms of the GNU General Public License as published by
 *	the Free Software Foundation; either version 3 of the License, or
 *	(at your option) any later version.
 *
 *	This program is distributed in the hope that it will be useful,
 *	but WITHOUT ANY WARRANTY; without even the implied warranty of
 *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *	GNU General Public License for more details.
 *
 *	You should have received a copy of the GNU General Public License
 *	along with this program. If not, see
 *	<http://www.gnu.org/licenses/>.
 */

title(sprintf("Project %s, Change %d", project_name(), change_number()),
	"History");

columns
(
	{ width = 15; name = "What\n------"; },
	{ width = 15; name = "When\n------"; },
	{ width = 8; name = "Who\n-----"; },
	{ right = 0; name = "Comment\n---------"; },
	{ left = 8; right = 0; }
);

auto ps;
ps = project[project_name()].state;
auto cs;
cs = ps.branch.change[change_number()];

auto h_idx;
for (h_idx in keys(cs.history))
{
	auto h, why1, why2, elapsed;
	h = cs.history[h_idx];
	why1 = h.why;
	why2 = "";
	if (length(h.why) > 80)
	{
		why2 = why1;
		why1 = "";
	}
	if (h_idx + 1 >= count(keys(cs.history)))
		elapsed = working_days(h.when, now());
	else
		elapsed = working_days(h.when, cs.history[h_idx + 1].when);
	if (elapsed > 0.1)
	{
		if (why1 != "")
			why1 ##= "\n";
		why1 ##= sprintf("Elapsed time: %.3f", elapsed);
	}
	print(h.what, h.when, h.who, why1);
	if (why2 != "")
		print("", "", "", "", why2);
}
