improved duration and minute selector (#2264)

* do not close modal if form is dirty
* deprecated TimesheetConfiguration
* inject timezone in form types
* cleanup usage of UserDateTimeFactory
* allow to configure increment steps for minutes
* use 15 minutes step for datetimepicker in project edit form
* use rounding rules for increments in minute select for begin and end
* allow duration in multi user and admin timesheet forms
* make dropdown values configurable
This commit is contained in:
Kevin Papst
2021-01-17 14:04:13 +01:00
committed by GitHub
parent e2324b7d51
commit 8d72d114c7
95 changed files with 1381 additions and 510 deletions

View File

@@ -26,6 +26,19 @@ class DurationTest extends TestCase
$this->assertEquals('02:38:14', $sut->format(9494, Duration::FORMAT_WITH_SECONDS));
}
/**
* @group legacy
*/
public function testParseDurationStringSpecials()
{
$sut = new Duration();
$this->assertEquals(0, $sut->parseDuration('-1', Duration::FORMAT_SECONDS));
$this->assertEquals(0, $sut->parseDuration('0', Duration::FORMAT_SECONDS));
$this->assertEquals(3600, $sut->parseDuration('3600', Duration::FORMAT_SECONDS));
$this->assertEquals(0, $sut->parseDuration('', Duration::FORMAT_SECONDS));
$this->assertEquals(0, $sut->parseDuration('-12', Duration::FORMAT_SECONDS));
}
/**
* @dataProvider getParseDurationTestData
*/
@@ -47,13 +60,15 @@ class DurationTest extends TestCase
public function getParseDurationTestData()
{
return [
[0, '', Duration::FORMAT_SECONDS],
[0, 0, Duration::FORMAT_SECONDS],
[0, -12, Duration::FORMAT_SECONDS],
[3600, 3600, Duration::FORMAT_SECONDS],
[3600, 1, Duration::FORMAT_DECIMAL],
[5400, 1.5, Duration::FORMAT_DECIMAL],
[3600, '1', Duration::FORMAT_DECIMAL],
[5400, '1.5', Duration::FORMAT_DECIMAL],
[5400, '1,5', Duration::FORMAT_DECIMAL],
[0, '', Duration::FORMAT_NATURAL],
[0, 0, Duration::FORMAT_NATURAL],
[99, '99s', Duration::FORMAT_NATURAL],
[7200, '2h', Duration::FORMAT_NATURAL],
[2280, '38m', Duration::FORMAT_NATURAL],
@@ -63,6 +78,10 @@ class DurationTest extends TestCase
[0, '', Duration::FORMAT_COLON],
[0, 0, Duration::FORMAT_COLON],
[12420, '3:27', Duration::FORMAT_COLON],
[12420, '3h27m', Duration::FORMAT_NATURAL],
[48420, '13:27', Duration::FORMAT_COLON],
[48474, '13:27:54', Duration::FORMAT_COLON],
[48474, '12:87:54', Duration::FORMAT_COLON],