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
# 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:
# - 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
# and the user has to stop an active entry first
# active_entries:
# soft_limit: 1
# hard_limit: 3
# Rules that define timesheet validation and behaviour

View File

@@ -249,7 +249,9 @@ class SystemConfiguration implements SystemBundleConfiguration
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

View File

@@ -17,15 +17,15 @@ class Constants
/**
* The current release version
*/
public const VERSION = '1.14.1';
public const VERSION = '1.15';
/**
* 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"
*/
public const STATUS = 'stable';
public const STATUS = 'dev';
/**
* The software name
*/

View File

@@ -350,13 +350,6 @@ final class SystemConfigurationController extends AbstractController
->setConstraints([
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())
->setName('timesheet.time_increment')
->setType(MinuteIncrementType::class)

View File

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

View File

@@ -41,6 +41,8 @@ final class ConfigExtension extends AbstractExtension
*/
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) {
case 'auto_reload_datatable':
@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;
case 'soft_limit':
return $this->configuration->getTimesheetActiveEntriesSoftLimit();
return $this->configuration->getTimesheetActiveEntriesHardLimit();
default:
$name = 'theme.' . $name;

View File

@@ -119,11 +119,11 @@
{% endif %}
{% block navbar_extensions %}{% endblock %}
{% 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 %}">
<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 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>
<ul class="dropdown-menu"
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.default_begin')->setValue('07:00'),
(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),
];
}
@@ -230,7 +229,7 @@ class SystemConfigurationTest extends TestCase
{
$sut = $this->getSut($this->getDefaultSettings(), []);
$this->assertEquals(99, $sut->getTimesheetActiveEntriesHardLimit());
$this->assertEquals(15, $sut->getTimesheetActiveEntriesSoftLimit());
$this->assertEquals(99, $sut->getTimesheetActiveEntriesSoftLimit());
$this->assertFalse($sut->isTimesheetAllowFutureTimes());
$this->assertFalse($sut->isTimesheetMarkdownEnabled());
$this->assertEquals('duration_only', $sut->getTimesheetTrackingMode());
@@ -254,7 +253,7 @@ class SystemConfigurationTest extends TestCase
{
$sut = $this->getSut($this->getDefaultSettings(), $this->getDefaultLoaderSettings());
$this->assertEquals(7, $sut->getTimesheetActiveEntriesHardLimit());
$this->assertEquals(3, $sut->getTimesheetActiveEntriesSoftLimit());
$this->assertEquals(7, $sut->getTimesheetActiveEntriesSoftLimit());
$this->assertTrue($sut->isTimesheetAllowFutureTimes());
$this->assertTrue($sut->isTimesheetMarkdownEnabled());
$this->assertEquals('default', $sut->getTimesheetTrackingMode());

View File

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

View File

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

View File

@@ -376,7 +376,6 @@ class TimesheetControllerTest extends ControllerBaseTest
['name' => 'timesheet.rules.allow_overlapping_records', 'value' => false],
['name' => 'timesheet.rules.allow_overbooking_budget', 'value' => true],
['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;
use App\Configuration\MailConfiguration;
use App\Entity\User;
use App\Event\DashboardEvent;
use App\Event\EmailEvent;
@@ -20,6 +21,7 @@ use App\Repository\CustomerRepository;
use App\Repository\ProjectRepository;
use App\Repository\UserRepository;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
@@ -38,9 +40,14 @@ class EmailSubscriberTest extends TestCase
public function testSendIsTriggered()
{
$mailer = $this->createMock(KimaiMailer::class);
$mailer = $this->createMock(MailerInterface::class);
$mailer->expects($this->once())->method('send');
$mailer = new KimaiMailer(
new MailConfiguration('test@example.com'),
$mailer
);
$sut = new EmailSubscriber($mailer);
$event = new EmailEvent(new Email());

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>Povolený počet současně spuštěných položek v jednu dobu</target>
</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">
<source>label.calendar.week_numbers</source>
<target>Zobrazit čísla týdnů</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>Tilladt antal af samtidigt kørende tidsregistreringer</target>
</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">
<source>label.theme.autocomplete_chars</source>
<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>
<target>Erlaubte Anzahl an gleichzeitig laufenden Zeiteinträgen</target>
</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">
<source>label.theme.autocomplete_chars</source>
<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>
<target>Επιτρεπόμενος αριθμός ταυτόχρονων ενεργών καταχωρήσεων ωρών</target>
</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">
<source>label.theme.autocomplete_chars</source>
<target>Ελάχιστος αριθμός γραμμάτων για έναρξη αυτόματης συμπλήρωσης</target>

View File

@@ -98,10 +98,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>Permitted number of simultaneously running time entries</target>
</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">
<source>label.theme.autocomplete_chars</source>
<target>Minimum number of letters to start auto-completion</target>

View File

@@ -70,10 +70,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>Permesita nombro de samtempaj ŝaltitaj tempaj registraĵoj</target>
</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">
<source>label.theme.autocomplete_chars</source>
<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>
<target>Número máximo de registros activos simultáneos permitidos</target>
</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">
<source>label.theme.autocomplete_chars</source>
<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>
<target>Gehinezko sarrera kopurua aldi berean</target>
</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">
<source>label.theme.select_type</source>
<target>Formulariotako aukeraketa kutxa mota</target>

View File

@@ -86,10 +86,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target state="translated">Sallittu määrä samanaikaisesti suoritettavia aikamerkintöjä</target>
</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">
<source>label.theme.autocomplete_chars</source>
<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>
<target>Nombre autorisé de relevés d'activité simultanées</target>
</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">
<source>label.calendar.week_numbers</source>
<target>Afficher les numéros de semaine</target>

View File

@@ -73,10 +73,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>כמות מותרת לרשומות זמן פעילות במקביל</target>
</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">
<source>label.theme.autocomplete_chars</source>
<target>מספר תווים מינימלי כדי להתחיל השלמה אוטומטית</target>

View File

@@ -30,10 +30,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>Egyszerre futtatható rögzítések száma</target>
</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">
<source>form_user</source>
<target>Felhasználó—alapértelmezett értékek</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>Numero di attività simultanee permesse</target>
</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">
<source>label.theme.autocomplete_chars</source>
<target>Numero minimo di caratteri per iniziare l'autocompletamento</target>

View File

@@ -58,10 +58,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>同じ期間内に同時進行のものとして記録可能とする明細の上限数</target>
</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">
<source>label.calendar.week_numbers</source>
<target>週番号を表示する</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target state="translated">허용되는 동시 실행 시간 항목 수</target>
</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">
<source>label.calendar.week_numbers</source>
<target state="translated">주수 디스프레이</target>

View File

@@ -86,10 +86,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>Toegestane aantal gelijktijdige tijdregistratie opnames</target>
</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">
<source>label.theme.autocomplete_chars</source>
<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>
<target>Dozwolona maksymalna ilość jednoczesnych czynności (pomiarów)</target>
</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">
<source>label.theme.autocomplete_chars</source>
<target>Minimalna ilość liter do auto-uzupełniania</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>Quantidade permitida de entradas de tempo de execução simultâneas</target>
</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">
<source>label.calendar.week_numbers</source>
<target>Mostrar números de semanas</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>Número permitido de entradas de tempo de execução simultâneas</target>
</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">
<source>label.calendar.week_numbers</source>
<target>Mostrar números de semanas</target>

View File

@@ -69,10 +69,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>Numarul permis de inregistrari care ruleaza simultan</target>
</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">
<source>label.theme.autocomplete_chars</source>
<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>
<target>Разрешенное количество одновременно запущенных таймеров</target>
</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">
<source>label.theme.autocomplete_chars</source>
<target>Минимальное количество букв для старта автозавершения</target>

View File

@@ -42,10 +42,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>Povolený počet súčasne prebiehajúcich časových záznamov</target>
</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">
<source>Closest</source>
<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>
<target state="translated">Tillåtet antal aktiva tidsinspelningar</target>
</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">
<source>label.calendar.week_numbers</source>
<target state="translated">Visa veckonummer</target>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target state="translated">İzin verilen eşzamanlı zaman kaydı sayısı</target>
</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">
<source>label.theme.autocomplete_chars</source>
<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>
<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 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">
<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>

View File

@@ -62,10 +62,6 @@
<source>label.timesheet.active_entries.hard_limit</source>
<target>允许可同时运行的时间条目数量</target>
</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">
<source>label.theme.autocomplete_chars</source>
<target>开启自动完成需达到的最少字母数</target>