removed soft_limit setting (#2611)

This commit is contained in:
Kevin Papst
2021-06-10 16:01:09 +02:00
committed by GitHub
parent 0b519e9d08
commit 6709ef4c4c
39 changed files with 24 additions and 178 deletions

View File

@@ -69,13 +69,11 @@ kimai:
# factor: 1.5 # factor: 1.5
# If you want to limit the max. active entries per user, you can do it here. # If you want to limit the max. active entries per user, you can do it here.
# The soft_limit is used as theme setting and displays a warning color if the user has reached X active recordings
# The hard_limit is used to detect how many active records are allowed per user: # The hard_limit is used to detect how many active records are allowed per user:
# - by default a user can only have one active time-record: it is automatically stopped when a new one is started # - by default a user can only have one active time-record: it is automatically stopped when a new one is started
# - when hard_limit is > 1 and the user is trying to start a new entry after reaching the limit, a warning is shown # - when hard_limit is > 1 and the user is trying to start a new entry after reaching the limit, a warning is shown
# and the user has to stop an active entry first # and the user has to stop an active entry first
# active_entries: # active_entries:
# soft_limit: 1
# hard_limit: 3 # hard_limit: 3
# Rules that define timesheet validation and behaviour # Rules that define timesheet validation and behaviour

View File

@@ -249,7 +249,9 @@ class SystemConfiguration implements SystemBundleConfiguration
public function getTimesheetActiveEntriesSoftLimit(): int public function getTimesheetActiveEntriesSoftLimit(): int
{ {
return (int) $this->find('timesheet.active_entries.soft_limit'); @trigger_error('The configuration timesheet.active_entries.soft_limit is deprecated since 1.15', E_USER_DEPRECATED);
return $this->getTimesheetActiveEntriesHardLimit();
} }
public function getTimesheetDefaultRoundingDays(): string public function getTimesheetDefaultRoundingDays(): string

View File

@@ -17,15 +17,15 @@ class Constants
/** /**
* The current release version * The current release version
*/ */
public const VERSION = '1.14.1'; public const VERSION = '1.15';
/** /**
* The current release: major * 10000 + minor * 100 + patch * The current release: major * 10000 + minor * 100 + patch
*/ */
public const VERSION_ID = 11401; public const VERSION_ID = 11500;
/** /**
* The current release status, either "stable" or "dev" * The current release status, either "stable" or "dev"
*/ */
public const STATUS = 'stable'; public const STATUS = 'dev';
/** /**
* The software name * The software name
*/ */

View File

@@ -350,13 +350,6 @@ final class SystemConfigurationController extends AbstractController
->setConstraints([ ->setConstraints([
new GreaterThanOrEqual(['value' => 1]) new GreaterThanOrEqual(['value' => 1])
]), ]),
(new Configuration())
->setName('timesheet.active_entries.soft_limit')
->setType(IntegerType::class)
->setTranslationDomain('system-configuration')
->setConstraints([
new GreaterThanOrEqual(['value' => 1])
]),
(new Configuration()) (new Configuration())
->setName('timesheet.time_increment') ->setName('timesheet.time_increment')
->setType(MinuteIncrementType::class) ->setType(MinuteIncrementType::class)

View File

@@ -199,6 +199,7 @@ class Configuration implements ConfigurationInterface
->children() ->children()
->integerNode('soft_limit') ->integerNode('soft_limit')
->defaultValue(1) ->defaultValue(1)
->setDeprecated('The node "%node%" at path "%path%" is deprecated, please use "kimai.timesheet.active_entries.hard_limit" instead.')
->validate() ->validate()
->ifTrue(function ($value) { ->ifTrue(function ($value) {
return $value <= 0; return $value <= 0;

View File

@@ -41,6 +41,8 @@ final class ConfigExtension extends AbstractExtension
*/ */
public function getThemeConfig(string $name) public function getThemeConfig(string $name)
{ {
@trigger_error('The twig function "theme_config" was deprecated with 1.15, replace it with the global "kimai_config" variable.', E_USER_DEPRECATED);
switch ($name) { switch ($name) {
case 'auto_reload_datatable': case 'auto_reload_datatable':
@trigger_error('The configuration auto_reload_datatable is deprecated and was removed with 1.4', E_USER_DEPRECATED); @trigger_error('The configuration auto_reload_datatable is deprecated and was removed with 1.4', E_USER_DEPRECATED);
@@ -48,7 +50,7 @@ final class ConfigExtension extends AbstractExtension
return false; return false;
case 'soft_limit': case 'soft_limit':
return $this->configuration->getTimesheetActiveEntriesSoftLimit(); return $this->configuration->getTimesheetActiveEntriesHardLimit();
default: default:
$name = 'theme.' . $name; $name = 'theme.' . $name;

View File

@@ -119,11 +119,11 @@
{% endif %} {% endif %}
{% block navbar_extensions %}{% endblock %} {% block navbar_extensions %}{% endblock %}
{% set active_timesheets = active_timesheets(app.user) %} {% set active_timesheets = active_timesheets(app.user) %}
{% set soft_limit = theme_config('soft_limit') %} {% set active_limit = kimai_config.timesheetActiveEntriesHardLimit %}
<li class="dropdown messages-menu" style="{% if active_timesheets is empty %}display:none{% endif %}"> <li class="dropdown messages-menu" style="{% if active_timesheets is empty %}display:none{% endif %}">
<a href="#" class="dropdown-toggle ddt-large ticktac" data-toggle="dropdown"> <a href="#" class="dropdown-toggle ddt-large ticktac" data-toggle="dropdown">
<i class="{{ 'start'|icon }} fa-2x"></i> <i class="{{ 'start'|icon }} fa-2x"></i>
<span data-warning="{{ soft_limit }}" class="label label-{% if active_timesheets|length > soft_limit %}danger{% else %}warning{% endif %}">{% if active_timesheets|length > 0 %}{{ active_timesheets|length }}{% endif %}</span> <span data-warning="{{ active_limit }}" class="label label-{% if active_timesheets|length > active_limit %}danger{% else %}warning{% endif %}">{% if active_timesheets|length > 0 %}{{ active_timesheets|length }}{% endif %}</span>
</a> </a>
<ul class="dropdown-menu" <ul class="dropdown-menu"
data-api="{{ path('active_timesheet') }}" data-api="{{ path('active_timesheet') }}"

View File

@@ -1,44 +0,0 @@
<li class="dropdown messages-menu" style="{% if entries is empty %}display:none{% endif %}">
<a href="#" class="dropdown-toggle ddt-large ticktac" data-toggle="dropdown">
<i class="{{ 'start'|icon }} fa-2x"></i>
<span data-warning="{{ soft_limit }}" class="label label-{% if entries|length > soft_limit %}danger{% else %}warning{% endif %}">{% if entries|length > 0 %}{{ entries|length }}{% endif %}</span>
</a>
<ul class="dropdown-menu"
data-api="{{ path('active_timesheet') }}"
data-href="{{ path('stop_timesheet', {'id' : '000'}) }}"
data-icon="{{ 'stop-small'|icon }}">
<li class="header">
{{ 'active.entries'|trans }}
</li>
<li>
<ul class="menu">
{% for entry in entries %}
<li>
<a href="{{ path('stop_timesheet', {'id' : entry.id}) }}" class="api-link" data-event="kimai.timesheetStop kimai.timesheetUpdate" data-method="PATCH" data-msg-error="timesheet.stop.error" data-msg-success="timesheet.stop.success">
<div class="pull-left">
<i class="{{ 'stop-small'|icon }} fa-2x"></i>
</div>
<h4>
<span>{{ entry.activity.name }}</span>
<small>
<span data-title="true" data-since="{{ entry.begin.format(constant('DATE_ISO8601')) }}">{{ entry|duration }}</span>
</small>
</h4>
<p>{{ entry.project.name }} ({{ entry.project.customer.name }})</p>
</a>
</li>
{% endfor %}
</ul>
</li>
{% if is_granted('create_own_timesheet') %}
<li class="footer"><a href="{{ path('timesheet_create') }}" class="modal-ajax-form">{{ 'timesheet.start'|trans }}</a></li>
{% endif %}
</ul>
</li>
{% if is_granted('create_own_timesheet') %}
<li class="messages-menu-empty" style="{% if entries is not empty %}display:none{% endif %}">
<a href="{{ path('timesheet_create') }}" class="ddt-large modal-ajax-form">
<i class="{{ 'start'|icon }} fa-2x"></i>
</a>
</li>
{% endif %}

View File

@@ -117,7 +117,6 @@ class SystemConfigurationTest extends TestCase
(new Configuration())->setName('timesheet.markdown_content')->setValue('1'), (new Configuration())->setName('timesheet.markdown_content')->setValue('1'),
(new Configuration())->setName('timesheet.default_begin')->setValue('07:00'), (new Configuration())->setName('timesheet.default_begin')->setValue('07:00'),
(new Configuration())->setName('timesheet.active_entries.hard_limit')->setValue('7'), (new Configuration())->setName('timesheet.active_entries.hard_limit')->setValue('7'),
(new Configuration())->setName('timesheet.active_entries.soft_limit')->setValue('3'),
(new Configuration())->setName('theme.colors_limited')->setValue(false), (new Configuration())->setName('theme.colors_limited')->setValue(false),
]; ];
} }
@@ -230,7 +229,7 @@ class SystemConfigurationTest extends TestCase
{ {
$sut = $this->getSut($this->getDefaultSettings(), []); $sut = $this->getSut($this->getDefaultSettings(), []);
$this->assertEquals(99, $sut->getTimesheetActiveEntriesHardLimit()); $this->assertEquals(99, $sut->getTimesheetActiveEntriesHardLimit());
$this->assertEquals(15, $sut->getTimesheetActiveEntriesSoftLimit()); $this->assertEquals(99, $sut->getTimesheetActiveEntriesSoftLimit());
$this->assertFalse($sut->isTimesheetAllowFutureTimes()); $this->assertFalse($sut->isTimesheetAllowFutureTimes());
$this->assertFalse($sut->isTimesheetMarkdownEnabled()); $this->assertFalse($sut->isTimesheetMarkdownEnabled());
$this->assertEquals('duration_only', $sut->getTimesheetTrackingMode()); $this->assertEquals('duration_only', $sut->getTimesheetTrackingMode());
@@ -254,7 +253,7 @@ class SystemConfigurationTest extends TestCase
{ {
$sut = $this->getSut($this->getDefaultSettings(), $this->getDefaultLoaderSettings()); $sut = $this->getSut($this->getDefaultSettings(), $this->getDefaultLoaderSettings());
$this->assertEquals(7, $sut->getTimesheetActiveEntriesHardLimit()); $this->assertEquals(7, $sut->getTimesheetActiveEntriesHardLimit());
$this->assertEquals(3, $sut->getTimesheetActiveEntriesSoftLimit()); $this->assertEquals(7, $sut->getTimesheetActiveEntriesSoftLimit());
$this->assertTrue($sut->isTimesheetAllowFutureTimes()); $this->assertTrue($sut->isTimesheetAllowFutureTimes());
$this->assertTrue($sut->isTimesheetMarkdownEnabled()); $this->assertTrue($sut->isTimesheetMarkdownEnabled());
$this->assertEquals('default', $sut->getTimesheetTrackingMode()); $this->assertEquals('default', $sut->getTimesheetTrackingMode());

View File

@@ -47,7 +47,6 @@ class TimesheetConfigurationTest extends TestCase
'markdown_content' => false, 'markdown_content' => false,
'active_entries' => [ 'active_entries' => [
'hard_limit' => 99, 'hard_limit' => 99,
'soft_limit' => 15,
], ],
'default_begin' => 'now', 'default_begin' => 'now',
]; ];
@@ -64,7 +63,6 @@ class TimesheetConfigurationTest extends TestCase
(new Configuration())->setName('timesheet.markdown_content')->setValue('1'), (new Configuration())->setName('timesheet.markdown_content')->setValue('1'),
(new Configuration())->setName('timesheet.default_begin')->setValue('07:00'), (new Configuration())->setName('timesheet.default_begin')->setValue('07:00'),
(new Configuration())->setName('timesheet.active_entries.hard_limit')->setValue('7'), (new Configuration())->setName('timesheet.active_entries.hard_limit')->setValue('7'),
(new Configuration())->setName('timesheet.active_entries.soft_limit')->setValue('3'),
]; ];
} }
@@ -79,7 +77,7 @@ class TimesheetConfigurationTest extends TestCase
$sut = $this->getSut($this->getDefaultSettings(), []); $sut = $this->getSut($this->getDefaultSettings(), []);
$this->assertEquals(99, $sut->getActiveEntriesHardLimit()); $this->assertEquals(99, $sut->getActiveEntriesHardLimit());
$this->assertEquals(15, $sut->getActiveEntriesSoftLimit()); $this->assertEquals(99, $sut->getActiveEntriesSoftLimit());
$this->assertFalse($sut->isAllowFutureTimes()); $this->assertFalse($sut->isAllowFutureTimes());
$this->assertFalse($sut->isMarkdownEnabled()); $this->assertFalse($sut->isMarkdownEnabled());
$this->assertEquals('duration_only', $sut->getTrackingMode()); $this->assertEquals('duration_only', $sut->getTrackingMode());
@@ -100,7 +98,7 @@ class TimesheetConfigurationTest extends TestCase
{ {
$sut = $this->getSut($this->getDefaultSettings(), $this->getDefaultLoaderSettings()); $sut = $this->getSut($this->getDefaultSettings(), $this->getDefaultLoaderSettings());
$this->assertEquals(7, $sut->getActiveEntriesHardLimit()); $this->assertEquals(7, $sut->getActiveEntriesHardLimit());
$this->assertEquals(3, $sut->getActiveEntriesSoftLimit()); $this->assertEquals(7, $sut->getActiveEntriesSoftLimit());
$this->assertTrue($sut->isAllowFutureTimes()); $this->assertTrue($sut->isAllowFutureTimes());
$this->assertTrue($sut->isMarkdownEnabled()); $this->assertTrue($sut->isMarkdownEnabled());
$this->assertEquals('default', $sut->getTrackingMode()); $this->assertEquals('default', $sut->getTrackingMode());

View File

@@ -93,7 +93,6 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
$this->assertEquals('default', $configService->find('timesheet.mode')); $this->assertEquals('default', $configService->find('timesheet.mode'));
$this->assertTrue($configService->find('timesheet.rules.allow_future_times')); $this->assertTrue($configService->find('timesheet.rules.allow_future_times'));
$this->assertEquals(1, $configService->find('timesheet.active_entries.hard_limit')); $this->assertEquals(1, $configService->find('timesheet.active_entries.hard_limit'));
$this->assertEquals(1, $configService->find('timesheet.active_entries.soft_limit'));
$form = $client->getCrawler()->filter('form[name=system_configuration_form_timesheet]')->form(); $form = $client->getCrawler()->filter('form[name=system_configuration_form_timesheet]')->form();
$client->submit($form, [ $client->submit($form, [
@@ -105,7 +104,6 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
['name' => 'timesheet.rules.allow_overlapping_records', 'value' => false], ['name' => 'timesheet.rules.allow_overlapping_records', 'value' => false],
['name' => 'timesheet.rules.allow_overbooking_budget', 'value' => false], ['name' => 'timesheet.rules.allow_overbooking_budget', 'value' => false],
['name' => 'timesheet.active_entries.hard_limit', 'value' => 99], ['name' => 'timesheet.active_entries.hard_limit', 'value' => 99],
['name' => 'timesheet.active_entries.soft_limit', 'value' => 77],
] ]
] ]
]); ]);
@@ -120,7 +118,6 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
$this->assertFalse($configService->find('timesheet.rules.allow_future_times')); $this->assertFalse($configService->find('timesheet.rules.allow_future_times'));
$this->assertFalse($configService->find('timesheet.rules.allow_overlapping_records')); $this->assertFalse($configService->find('timesheet.rules.allow_overlapping_records'));
$this->assertEquals(99, $configService->find('timesheet.active_entries.hard_limit')); $this->assertEquals(99, $configService->find('timesheet.active_entries.hard_limit'));
$this->assertEquals(77, $configService->find('timesheet.active_entries.soft_limit'));
} }
public function testUpdateLockdownPeriodConfig() public function testUpdateLockdownPeriodConfig()
@@ -173,14 +170,12 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
['name' => 'timesheet.rules.allow_overlapping_records', 'value' => 1], ['name' => 'timesheet.rules.allow_overlapping_records', 'value' => 1],
['name' => 'timesheet.rules.allow_overbooking_budget', 'value' => 1], ['name' => 'timesheet.rules.allow_overbooking_budget', 'value' => 1],
['name' => 'timesheet.active_entries.hard_limit', 'value' => -1], ['name' => 'timesheet.active_entries.hard_limit', 'value' => -1],
['name' => 'timesheet.active_entries.soft_limit', 'value' => -1],
] ]
] ]
], ],
[ [
'#system_configuration_form_timesheet_configuration_0_value', // mode '#system_configuration_form_timesheet_configuration_0_value', // mode
'#system_configuration_form_timesheet_configuration_5_value', // hard_limit '#system_configuration_form_timesheet_configuration_5_value', // hard_limit
'#system_configuration_form_timesheet_configuration_6_value', // soft_limit
], ],
true true
); );

View File

@@ -376,7 +376,6 @@ class TimesheetControllerTest extends ControllerBaseTest
['name' => 'timesheet.rules.allow_overlapping_records', 'value' => false], ['name' => 'timesheet.rules.allow_overlapping_records', 'value' => false],
['name' => 'timesheet.rules.allow_overbooking_budget', 'value' => true], ['name' => 'timesheet.rules.allow_overbooking_budget', 'value' => true],
['name' => 'timesheet.active_entries.hard_limit', 'value' => 1], ['name' => 'timesheet.active_entries.hard_limit', 'value' => 1],
['name' => 'timesheet.active_entries.soft_limit', 'value' => 1],
] ]
] ]
]); ]);

View File

@@ -9,6 +9,7 @@
namespace App\Tests\EventSubscriber; namespace App\Tests\EventSubscriber;
use App\Configuration\MailConfiguration;
use App\Entity\User; use App\Entity\User;
use App\Event\DashboardEvent; use App\Event\DashboardEvent;
use App\Event\EmailEvent; use App\Event\EmailEvent;
@@ -20,6 +21,7 @@ use App\Repository\CustomerRepository;
use App\Repository\ProjectRepository; use App\Repository\ProjectRepository;
use App\Repository\UserRepository; use App\Repository\UserRepository;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email; use Symfony\Component\Mime\Email;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
@@ -38,9 +40,14 @@ class EmailSubscriberTest extends TestCase
public function testSendIsTriggered() public function testSendIsTriggered()
{ {
$mailer = $this->createMock(KimaiMailer::class); $mailer = $this->createMock(MailerInterface::class);
$mailer->expects($this->once())->method('send'); $mailer->expects($this->once())->method('send');
$mailer = new KimaiMailer(
new MailConfiguration('test@example.com'),
$mailer
);
$sut = new EmailSubscriber($mailer); $sut = new EmailSubscriber($mailer);
$event = new EmailEvent(new Email()); $event = new EmailEvent(new Email());

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Povolený počet současně spuštěných položek v jednu dobu</target> <target>Povolený počet současně spuštěných položek v jednu dobu</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Počet záznamů o době provozu, z nichž se zobrazí varování</target>
</trans-unit>
<trans-unit id="label.calendar.week_numbers"> <trans-unit id="label.calendar.week_numbers">
<source>label.calendar.week_numbers</source> <source>label.calendar.week_numbers</source>
<target>Zobrazit čísla týdnů</target> <target>Zobrazit čísla týdnů</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Tilladt antal af samtidigt kørende tidsregistreringer</target> <target>Tilladt antal af samtidigt kørende tidsregistreringer</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Antal af kørende tidsregistreringer fra hvilket en advarsel vises</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>Minimum antal af bogstaver for at starte autofulførelse</target> <target>Minimum antal af bogstaver for at starte autofulførelse</target>

View File

@@ -98,10 +98,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Erlaubte Anzahl an gleichzeitig laufenden Zeiteinträgen</target> <target>Erlaubte Anzahl an gleichzeitig laufenden Zeiteinträgen</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Anzahl an laufenden Zeiteinträgen ab denen einen Warnung angezeigt wird</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>Minimale Anzahl Buchstaben für den Start der Autovervollständigung</target> <target>Minimale Anzahl Buchstaben für den Start der Autovervollständigung</target>

View File

@@ -90,10 +90,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Επιτρεπόμενος αριθμός ταυτόχρονων ενεργών καταχωρήσεων ωρών</target> <target>Επιτρεπόμενος αριθμός ταυτόχρονων ενεργών καταχωρήσεων ωρών</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Πλήθος των ενεργών καταχωρήσεων ωρών, όπου ειδοποιήσεις θα εμφανίζονται</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>Ελάχιστος αριθμός γραμμάτων για έναρξη αυτόματης συμπλήρωσης</target> <target>Ελάχιστος αριθμός γραμμάτων για έναρξη αυτόματης συμπλήρωσης</target>

View File

@@ -98,10 +98,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Permitted number of simultaneously running time entries</target> <target>Permitted number of simultaneously running time entries</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Number of running time entries from which a warning is displayed</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>Minimum number of letters to start auto-completion</target> <target>Minimum number of letters to start auto-completion</target>

View File

@@ -70,10 +70,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Permesita nombro de samtempaj ŝaltitaj tempaj registraĵoj</target> <target>Permesita nombro de samtempaj ŝaltitaj tempaj registraĵoj</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Nombro de samtempaj ŝaltitaj tempaj registraĵoj de kiuj atentigo estas montrita</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>Minimuma nombro de literoj por komenci aŭtomatan kompletigon</target> <target>Minimuma nombro de literoj por komenci aŭtomatan kompletigon</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Número máximo de registros activos simultáneos permitidos</target> <target>Número máximo de registros activos simultáneos permitidos</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Número de registros activos simultáneos para que se muestre una advertencia</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>Número mínimo de letras para iniciar la compleción automática</target> <target>Número mínimo de letras para iniciar la compleción automática</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Gehinezko sarrera kopurua aldi berean</target> <target>Gehinezko sarrera kopurua aldi berean</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Aldibereko gehinezko sarrera kopurua oharra bota aurretik</target>
</trans-unit>
<trans-unit id="label.theme.select_type"> <trans-unit id="label.theme.select_type">
<source>label.theme.select_type</source> <source>label.theme.select_type</source>
<target>Formulariotako aukeraketa kutxa mota</target> <target>Formulariotako aukeraketa kutxa mota</target>

View File

@@ -86,10 +86,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target state="translated">Sallittu määrä samanaikaisesti suoritettavia aikamerkintöjä</target> <target state="translated">Sallittu määrä samanaikaisesti suoritettavia aikamerkintöjä</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target state="translated">Aikamerkintöjen määrä joista näytetään varoitus</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target state="translated">Minimi määrä kirjaimia ennen automaattisen täyttämisen aloitusta</target> <target state="translated">Minimi määrä kirjaimia ennen automaattisen täyttämisen aloitusta</target>

View File

@@ -54,10 +54,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Nombre autorisé de relevés d'activité simultanées</target> <target>Nombre autorisé de relevés d'activité simultanées</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Nombre de relevés de temps d'activité à partir duquel un message d'avertissement est affiché</target>
</trans-unit>
<trans-unit id="label.calendar.week_numbers"> <trans-unit id="label.calendar.week_numbers">
<source>label.calendar.week_numbers</source> <source>label.calendar.week_numbers</source>
<target>Afficher les numéros de semaine</target> <target>Afficher les numéros de semaine</target>

View File

@@ -73,10 +73,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>כמות מותרת לרשומות זמן פעילות במקביל</target> <target>כמות מותרת לרשומות זמן פעילות במקביל</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>מספר רשומות זמן פעילות במקביל להצגת אזהרה</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>מספר תווים מינימלי כדי להתחיל השלמה אוטומטית</target> <target>מספר תווים מינימלי כדי להתחיל השלמה אוטומטית</target>

View File

@@ -30,10 +30,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Egyszerre futtatható rögzítések száma</target> <target>Egyszerre futtatható rögzítések száma</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Figyelmeztetés megjelenítése ennyi rögzítés elérésekor</target>
</trans-unit>
<trans-unit id="form_user"> <trans-unit id="form_user">
<source>form_user</source> <source>form_user</source>
<target>Felhasználó—alapértelmezett értékek</target> <target>Felhasználó—alapértelmezett értékek</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Numero di attività simultanee permesse</target> <target>Numero di attività simultanee permesse</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Numero di attività in corso per cui visualizzare un avvertimento</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>Numero minimo di caratteri per iniziare l'autocompletamento</target> <target>Numero minimo di caratteri per iniziare l'autocompletamento</target>

View File

@@ -58,10 +58,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>同じ期間内に同時進行のものとして記録可能とする明細の上限数</target> <target>同じ期間内に同時進行のものとして記録可能とする明細の上限数</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>同時進行の明細記録がこちらの数を超える場合に警告を表示する</target>
</trans-unit>
<trans-unit id="label.calendar.week_numbers"> <trans-unit id="label.calendar.week_numbers">
<source>label.calendar.week_numbers</source> <source>label.calendar.week_numbers</source>
<target>週番号を表示する</target> <target>週番号を表示する</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target state="translated">허용되는 동시 실행 시간 항목 수</target> <target state="translated">허용되는 동시 실행 시간 항목 수</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target state="translated">경고가 표시되는 실행 시간 항목 수</target>
</trans-unit>
<trans-unit id="label.calendar.week_numbers"> <trans-unit id="label.calendar.week_numbers">
<source>label.calendar.week_numbers</source> <source>label.calendar.week_numbers</source>
<target state="translated">주수 디스프레이</target> <target state="translated">주수 디스프레이</target>

View File

@@ -86,10 +86,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Toegestane aantal gelijktijdige tijdregistratie opnames</target> <target>Toegestane aantal gelijktijdige tijdregistratie opnames</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Aantal gelijktijdige tijdregistratie opnames wanneer een waarschuwing wordt weergegeven</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>Minimum aantal letters om de auto-completion te starten</target> <target>Minimum aantal letters om de auto-completion te starten</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Dozwolona maksymalna ilość jednoczesnych czynności (pomiarów)</target> <target>Dozwolona maksymalna ilość jednoczesnych czynności (pomiarów)</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Ilość jednoczesnych czynności (pomiarów) po której zostanie wyświetlone ostrzeżenie</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>Minimalna ilość liter do auto-uzupełniania</target> <target>Minimalna ilość liter do auto-uzupełniania</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Quantidade permitida de entradas de tempo de execução simultâneas</target> <target>Quantidade permitida de entradas de tempo de execução simultâneas</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Quantidade de entradas de tempo de execução a partir das quais um aviso é exibido</target>
</trans-unit>
<trans-unit id="label.calendar.week_numbers"> <trans-unit id="label.calendar.week_numbers">
<source>label.calendar.week_numbers</source> <source>label.calendar.week_numbers</source>
<target>Mostrar números de semanas</target> <target>Mostrar números de semanas</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Número permitido de entradas de tempo de execução simultâneas</target> <target>Número permitido de entradas de tempo de execução simultâneas</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Número de entradas de tempo de execução a partir das quais um aviso é exibido</target>
</trans-unit>
<trans-unit id="label.calendar.week_numbers"> <trans-unit id="label.calendar.week_numbers">
<source>label.calendar.week_numbers</source> <source>label.calendar.week_numbers</source>
<target>Mostrar números de semanas</target> <target>Mostrar números de semanas</target>

View File

@@ -69,10 +69,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Numarul permis de inregistrari care ruleaza simultan</target> <target>Numarul permis de inregistrari care ruleaza simultan</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Numarul inregistrarilor active simultan pentru care este afisat un avertisment</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>Numarul minim de litere pentru care incepe auto-completarea</target> <target>Numarul minim de litere pentru care incepe auto-completarea</target>

View File

@@ -74,10 +74,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Разрешенное количество одновременно запущенных таймеров</target> <target>Разрешенное количество одновременно запущенных таймеров</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Количество запущенных таймеров, после которого отображается предупреждение</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>Минимальное количество букв для старта автозавершения</target> <target>Минимальное количество букв для старта автозавершения</target>

View File

@@ -42,10 +42,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Povolený počet súčasne prebiehajúcich časových záznamov</target> <target>Povolený počet súčasne prebiehajúcich časových záznamov</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Počet spustených časových záznamov, po ktorých sa zobrazí upozornenie</target>
</trans-unit>
<trans-unit id="Closest"> <trans-unit id="Closest">
<source>Closest</source> <source>Closest</source>
<target>Najbližšie: matematické zaokrúhľovanie k najbližšej hodnote</target> <target>Najbližšie: matematické zaokrúhľovanie k najbližšej hodnote</target>

View File

@@ -58,10 +58,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target state="translated">Tillåtet antal aktiva tidsinspelningar</target> <target state="translated">Tillåtet antal aktiva tidsinspelningar</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target state="translated">Antal aktiva tidsinspelningar då en varning ska visas</target>
</trans-unit>
<trans-unit id="label.calendar.week_numbers"> <trans-unit id="label.calendar.week_numbers">
<source>label.calendar.week_numbers</source> <source>label.calendar.week_numbers</source>
<target state="translated">Visa veckonummer</target> <target state="translated">Visa veckonummer</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target state="translated">İzin verilen eşzamanlı zaman kaydı sayısı</target> <target state="translated">İzin verilen eşzamanlı zaman kaydı sayısı</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target state="translated">Bir uyarı görüntülenmeden önce çalışan zaman çizelgesi kayıtlarının sayısı</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target state="translated">Otomatik tamamlama için gerekli en az harf adedi</target> <target state="translated">Otomatik tamamlama için gerekli en az harf adedi</target>

View File

@@ -70,10 +70,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>Số lượng cho phép của các mục thời gian chạy đồng thời</target> <target>Số lượng cho phép của các mục thời gian chạy đồng thời</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Số mục thời gian chạy mà cảnh báo được hiển thị</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>Số lượng chữ cái tối thiểu để bắt đầu tự động hoàn thành</target> <target>Số lượng chữ cái tối thiểu để bắt đầu tự động hoàn thành</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source> <source>label.timesheet.active_entries.hard_limit</source>
<target>允许可同时运行的时间条目数量</target> <target>允许可同时运行的时间条目数量</target>
</trans-unit> </trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>展示警告信息的运行时间条目数量</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars"> <trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source> <source>label.theme.autocomplete_chars</source>
<target>开启自动完成需达到的最少字母数</target> <target>开启自动完成需达到的最少字母数</target>