diff --git a/.env.example b/.env.example index 702c98dee6..ac57d64723 100644 --- a/.env.example +++ b/.env.example @@ -14,7 +14,6 @@ PUSHER_APP_SECRET= PUSHER_CLUSTER= PUSHER_TLS=TRUE PUSHER_DEBUG=FALSE -APP_TIMEZONE=UTC DATE_FORMAT="m/d/Y H:i" API_TIMEOUT=5000 DB_HOSTNAME=localhost diff --git a/.gitignore b/.gitignore index fcf4007765..848317c369 100644 --- a/.gitignore +++ b/.gitignore @@ -4,10 +4,12 @@ /public/js /public/css /storage/*.key +/storage/pail /storage/*.index /storage/tenant_* /vendor /.idea +/.nova /.vscode /.vagrant npm-debug.log diff --git a/ProcessMaker/Console/Commands/AuthSetPassword.php b/ProcessMaker/Console/Commands/AuthSetPassword.php index 884407b27f..c700b9a20d 100644 --- a/ProcessMaker/Console/Commands/AuthSetPassword.php +++ b/ProcessMaker/Console/Commands/AuthSetPassword.php @@ -38,7 +38,7 @@ public function __construct() * * @return mixed */ - public function handle() + public function handle(): void { $identifier = $this->ask("Enter the user's id or email address"); diff --git a/ProcessMaker/Console/Commands/BpmnTimer.php b/ProcessMaker/Console/Commands/BpmnTimer.php index 8c64f54de3..97036ad41a 100644 --- a/ProcessMaker/Console/Commands/BpmnTimer.php +++ b/ProcessMaker/Console/Commands/BpmnTimer.php @@ -26,7 +26,7 @@ class BpmnTimer extends Command * * @return mixed */ - public function handle() + public function handle(): void { $scheduleManager = new TaskSchedulerManager(); $scheduleManager->scheduleTasks(); diff --git a/ProcessMaker/Console/Commands/BuildScriptExecutors.php b/ProcessMaker/Console/Commands/BuildScriptExecutors.php index 6b745fcb9e..b41cbbe374 100644 --- a/ProcessMaker/Console/Commands/BuildScriptExecutors.php +++ b/ProcessMaker/Console/Commands/BuildScriptExecutors.php @@ -63,7 +63,7 @@ public function __construct() * * @return mixed */ - public function handle() + public function handle(): void { if (env('PM_CI', false)) { // Do not run in CI environment diff --git a/ProcessMaker/Console/Commands/CacheMetricsClearCommand.php b/ProcessMaker/Console/Commands/CacheMetricsClearCommand.php index 0046859679..8f9427272c 100644 --- a/ProcessMaker/Console/Commands/CacheMetricsClearCommand.php +++ b/ProcessMaker/Console/Commands/CacheMetricsClearCommand.php @@ -19,7 +19,7 @@ public function __construct(RedisMetricsManager $metrics) $this->metrics = $metrics; } - public function handle() + public function handle(): int { if (!$this->confirm('Are you sure you want to clear all cache metrics? This action cannot be undone.')) { $this->info('Operation cancelled.'); diff --git a/ProcessMaker/Console/Commands/CacheMetricsCommand.php b/ProcessMaker/Console/Commands/CacheMetricsCommand.php index d78ecfd1ee..33cb35835c 100644 --- a/ProcessMaker/Console/Commands/CacheMetricsCommand.php +++ b/ProcessMaker/Console/Commands/CacheMetricsCommand.php @@ -23,7 +23,7 @@ public function __construct(RedisMetricsManager $metrics) $this->metrics = $metrics; } - public function handle() + public function handle(): int { $key = $this->option('key'); $type = $this->option('type'); diff --git a/ProcessMaker/Console/Commands/CacheMetricsPopulateCommand.php b/ProcessMaker/Console/Commands/CacheMetricsPopulateCommand.php index 95cf3a1f43..48394bf794 100644 --- a/ProcessMaker/Console/Commands/CacheMetricsPopulateCommand.php +++ b/ProcessMaker/Console/Commands/CacheMetricsPopulateCommand.php @@ -21,7 +21,7 @@ public function __construct(RedisMetricsManager $metrics) $this->metrics = $metrics; } - public function handle() + public function handle(): void { $numKeys = (int) $this->option('keys'); $type = $this->option('type'); diff --git a/ProcessMaker/Console/Commands/CacheMetricsSummaryCommand.php b/ProcessMaker/Console/Commands/CacheMetricsSummaryCommand.php index 11d65c1cdf..abb042930e 100644 --- a/ProcessMaker/Console/Commands/CacheMetricsSummaryCommand.php +++ b/ProcessMaker/Console/Commands/CacheMetricsSummaryCommand.php @@ -25,7 +25,7 @@ public function __construct(RedisMetricsManager $metrics) $this->metrics = $metrics; } - public function handle() + public function handle(): void { $days = (int) $this->option('days'); $type = $this->option('type'); diff --git a/ProcessMaker/Console/Commands/CacheScreensClear.php b/ProcessMaker/Console/Commands/CacheScreensClear.php index e6bd54cb5f..845ef19b47 100644 --- a/ProcessMaker/Console/Commands/CacheScreensClear.php +++ b/ProcessMaker/Console/Commands/CacheScreensClear.php @@ -24,7 +24,7 @@ class CacheScreensClear extends Command /** * Execute the console command. */ - public function handle() + public function handle(): void { $screenCache = ScreenCacheFactory::getScreenCache(); $screenCache->clearCompiledAssets(); diff --git a/ProcessMaker/Console/Commands/CacheSettingClear.php b/ProcessMaker/Console/Commands/CacheSettingClear.php index 86afc59556..fe47176796 100644 --- a/ProcessMaker/Console/Commands/CacheSettingClear.php +++ b/ProcessMaker/Console/Commands/CacheSettingClear.php @@ -23,7 +23,7 @@ class CacheSettingClear extends Command /** * Execute the console command. */ - public function handle() + public function handle(): void { \SettingCache::clear(); diff --git a/ProcessMaker/Console/Commands/CasesSync.php b/ProcessMaker/Console/Commands/CasesSync.php index e23d9ce0d4..c2e1a7204f 100644 --- a/ProcessMaker/Console/Commands/CasesSync.php +++ b/ProcessMaker/Console/Commands/CasesSync.php @@ -25,7 +25,7 @@ class CasesSync extends Command /** * Execute the console command. */ - public function handle() + public function handle(): void { $requestIds = $this->option('request_ids'); $requestIds = $requestIds ? explode(',', $requestIds) : []; diff --git a/ProcessMaker/Console/Commands/ChangeKeyEncryptedData.php b/ProcessMaker/Console/Commands/ChangeKeyEncryptedData.php index feab536017..061dc5f438 100644 --- a/ProcessMaker/Console/Commands/ChangeKeyEncryptedData.php +++ b/ProcessMaker/Console/Commands/ChangeKeyEncryptedData.php @@ -4,8 +4,8 @@ use Exception; use Illuminate\Console\Command; -use ProcessMaker\Facades\EncryptedData; use Illuminate\Support\Facades\Log; +use ProcessMaker\Facades\EncryptedData; class ChangeKeyEncryptedData extends Command { @@ -38,7 +38,7 @@ public function __construct() /** * Execute the console command. */ - public function handle() + public function handle(): void { try { if ($this->confirm(self::message, false)) { diff --git a/ProcessMaker/Console/Commands/Check.php b/ProcessMaker/Console/Commands/Check.php index 79232d1726..cb6ac76d85 100644 --- a/ProcessMaker/Console/Commands/Check.php +++ b/ProcessMaker/Console/Commands/Check.php @@ -36,7 +36,7 @@ public function __construct() * * @return mixed */ - public function handle() + public function handle(): void { $name = $this->argument('name'); $checker = new PackageChecker($name); diff --git a/ProcessMaker/Console/Commands/Consumer.php b/ProcessMaker/Console/Commands/Consumer.php index 8adaed13f6..a6461956ea 100644 --- a/ProcessMaker/Console/Commands/Consumer.php +++ b/ProcessMaker/Console/Commands/Consumer.php @@ -36,7 +36,7 @@ public function __construct() /** * Execute the console command. */ - public function handle() + public function handle(): void { try { MessageBrokerService::worker(); diff --git a/ProcessMaker/Console/Commands/CreateSamlCertificate.php b/ProcessMaker/Console/Commands/CreateSamlCertificate.php index edfc5c34e9..99b0bf5433 100644 --- a/ProcessMaker/Console/Commands/CreateSamlCertificate.php +++ b/ProcessMaker/Console/Commands/CreateSamlCertificate.php @@ -16,7 +16,7 @@ class CreateSamlCertificate extends CreateCertificate {--keyname=key.pem : Full name of the certificate key file} {--certname=cert.pem : Full name to the certificate file} {--subject= : Set subject of request or cert ' - . '(e.g. /C=US/ST=New York/L=New York City/O=Example Inc/CN=example.com)}'; + . '(e.g. /C=US/ST=New York/L=New York City/O=Example Inc/CN=example.com)}'; /** * The console command description. diff --git a/ProcessMaker/Console/Commands/CreateTestDBs.php b/ProcessMaker/Console/Commands/CreateTestDBs.php index 5cdd54383c..243f4b3a14 100644 --- a/ProcessMaker/Console/Commands/CreateTestDBs.php +++ b/ProcessMaker/Console/Commands/CreateTestDBs.php @@ -37,7 +37,7 @@ public function __construct() * * @return mixed */ - public function handle() + public function handle(): void { $processes = env('PARALLEL_TEST_PROCESSES'); if (!$processes) { diff --git a/ProcessMaker/Console/Commands/DataSchema.php b/ProcessMaker/Console/Commands/DataSchema.php index 3c3ff3537d..87d3e0fd2d 100644 --- a/ProcessMaker/Console/Commands/DataSchema.php +++ b/ProcessMaker/Console/Commands/DataSchema.php @@ -26,7 +26,7 @@ class DataSchema extends Command * * @return mixed */ - public function handle() + public function handle(): int { $this->info(__('The ProcessMaker data tables will be installed.')); diff --git a/ProcessMaker/Console/Commands/DockerExecutorPhpNayra.php b/ProcessMaker/Console/Commands/DockerExecutorPhpNayra.php index 08586bc99f..1ac8a08435 100644 --- a/ProcessMaker/Console/Commands/DockerExecutorPhpNayra.php +++ b/ProcessMaker/Console/Commands/DockerExecutorPhpNayra.php @@ -28,7 +28,7 @@ class DockerExecutorPhpNayra extends Command * * @return mixed */ - public function handle() + public function handle(): void { $exists = ScriptExecutor::where('language', Base::NAYRA_LANG)->exists(); if (!$exists) { diff --git a/ProcessMaker/Console/Commands/GarbageCollector.php b/ProcessMaker/Console/Commands/GarbageCollector.php index 18ae9b38fa..2818c4797f 100644 --- a/ProcessMaker/Console/Commands/GarbageCollector.php +++ b/ProcessMaker/Console/Commands/GarbageCollector.php @@ -48,7 +48,7 @@ public function __construct() * * @return mixed */ - public function handle() + public function handle(): void { $this->writeln("Running Garbage Collector\n", 'info', true); diff --git a/ProcessMaker/Console/Commands/GenerateSdk.php b/ProcessMaker/Console/Commands/GenerateSdk.php index bbd1f11461..976f7707d9 100644 --- a/ProcessMaker/Console/Commands/GenerateSdk.php +++ b/ProcessMaker/Console/Commands/GenerateSdk.php @@ -38,7 +38,7 @@ public function __construct() * * @return mixed */ - public function handle() + public function handle(): void { $jsonPath = storage_path('api-docs/api-docs.json'); $builder = new BuildSdk($jsonPath, $this->argument('output')); diff --git a/ProcessMaker/Console/Commands/IndexedSearchDisable.php b/ProcessMaker/Console/Commands/IndexedSearchDisable.php index ed28e20acf..4a54e73b28 100644 --- a/ProcessMaker/Console/Commands/IndexedSearchDisable.php +++ b/ProcessMaker/Console/Commands/IndexedSearchDisable.php @@ -39,7 +39,7 @@ public function __construct() * * @return mixed */ - public function handle() + public function handle(): void { if ($this->interactive()) { $confirmed = $this->confirm('Are you sure you wish to disable indexed search?'); diff --git a/ProcessMaker/Console/Commands/IndexedSearchEnable.php b/ProcessMaker/Console/Commands/IndexedSearchEnable.php index b71f1f6df6..d9eaad33dd 100644 --- a/ProcessMaker/Console/Commands/IndexedSearchEnable.php +++ b/ProcessMaker/Console/Commands/IndexedSearchEnable.php @@ -184,7 +184,7 @@ private function promptForInput() * * @return mixed */ - public function handle() + public function handle(): void { if ($this->interactive()) { $confirmed = $this->confirm( diff --git a/ProcessMaker/Console/Commands/InitializeScriptMicroservice.php b/ProcessMaker/Console/Commands/InitializeScriptMicroservice.php index f45be81e26..ffc9eb1fa2 100644 --- a/ProcessMaker/Console/Commands/InitializeScriptMicroservice.php +++ b/ProcessMaker/Console/Commands/InitializeScriptMicroservice.php @@ -25,7 +25,7 @@ class InitializeScriptMicroservice extends Command /** * Execute the console command. */ - public function handle() + public function handle(): void { if (config('script-runner-microservice.enabled')) { // Start with an array of all microservice languages diff --git a/ProcessMaker/Console/Commands/Install.php b/ProcessMaker/Console/Commands/Install.php index ec719c993b..e511d815de 100644 --- a/ProcessMaker/Console/Commands/Install.php +++ b/ProcessMaker/Console/Commands/Install.php @@ -95,7 +95,7 @@ class Install extends Command * * @return mixed If the command succeeds, true */ - public function handle() + public function handle(): int { // Setup our initial encryption key and set our running laravel app key to it $this->key = 'base64:' . base64_encode(Encrypter::generateKey($this->laravel['config']['app.cipher'])); diff --git a/ProcessMaker/Console/Commands/InstallPreCommitHooks.php b/ProcessMaker/Console/Commands/InstallPreCommitHooks.php index b850f58a9b..3ecf35f3cf 100644 --- a/ProcessMaker/Console/Commands/InstallPreCommitHooks.php +++ b/ProcessMaker/Console/Commands/InstallPreCommitHooks.php @@ -37,7 +37,7 @@ public function __construct() * * @return mixed */ - public function handle() + public function handle(): void { $coreHooksPath = base_path('.git/hooks'); if (!is_dir($coreHooksPath)) { diff --git a/ProcessMaker/Console/Commands/MissingFilesUploadId.php b/ProcessMaker/Console/Commands/MissingFilesUploadId.php index f25ecf6ce6..ad94187ecb 100644 --- a/ProcessMaker/Console/Commands/MissingFilesUploadId.php +++ b/ProcessMaker/Console/Commands/MissingFilesUploadId.php @@ -40,7 +40,7 @@ public function __construct() * * @return mixed */ - public function handle() + public function handle(): void { $this->writeln("Searching for request with calls to sub-process\n", 'info', true); $aux = ''; diff --git a/ProcessMaker/Console/Commands/PopulateAvatarColumn.php b/ProcessMaker/Console/Commands/PopulateAvatarColumn.php index 6b26a08901..ccfd0864d0 100644 --- a/ProcessMaker/Console/Commands/PopulateAvatarColumn.php +++ b/ProcessMaker/Console/Commands/PopulateAvatarColumn.php @@ -36,7 +36,7 @@ public function __construct() * * @return int */ - public function handle() + public function handle(): int { // Fetch all users $users = User::cursor(); diff --git a/ProcessMaker/Console/Commands/ProcessMakerActivateUser.php b/ProcessMaker/Console/Commands/ProcessMakerActivateUser.php index 096dd10cc1..a9c02c83da 100644 --- a/ProcessMaker/Console/Commands/ProcessMakerActivateUser.php +++ b/ProcessMaker/Console/Commands/ProcessMakerActivateUser.php @@ -25,7 +25,7 @@ class ProcessMakerActivateUser extends Command /** * Execute the console command. */ - public function handle() + public function handle(): void { $username = $this->option('username'); diff --git a/ProcessMaker/Console/Commands/ProcessMakerLicenseRemove.php b/ProcessMaker/Console/Commands/ProcessMakerLicenseRemove.php index fd01a81ef8..acf83467a8 100644 --- a/ProcessMaker/Console/Commands/ProcessMakerLicenseRemove.php +++ b/ProcessMaker/Console/Commands/ProcessMakerLicenseRemove.php @@ -32,7 +32,7 @@ class ProcessMakerLicenseRemove extends Command * * @return int */ - public function handle() + public function handle(): int { if (Storage::disk('local')->exists('license.json')) { if ($this->option('force') || $this->confirm('Are you sure you want to remove the license.json file?')) { diff --git a/ProcessMaker/Console/Commands/ProcessMakerLicenseUpdate.php b/ProcessMaker/Console/Commands/ProcessMakerLicenseUpdate.php index 83c1a72a5d..c27065a5be 100644 --- a/ProcessMaker/Console/Commands/ProcessMakerLicenseUpdate.php +++ b/ProcessMaker/Console/Commands/ProcessMakerLicenseUpdate.php @@ -30,7 +30,7 @@ class ProcessMakerLicenseUpdate extends Command * * @return int */ - public function handle() + public function handle(): int { $input = $this->argument('licenseFile'); diff --git a/ProcessMaker/Console/Commands/ProcessMakerTest.php b/ProcessMaker/Console/Commands/ProcessMakerTest.php index 070a44d3d0..693a1daff5 100644 --- a/ProcessMaker/Console/Commands/ProcessMakerTest.php +++ b/ProcessMaker/Console/Commands/ProcessMakerTest.php @@ -44,7 +44,7 @@ public function __construct() * * @return mixed */ - public function handle() + public function handle(): void { $this->test('DBConnection', [$this, 'testDBConnection']); $this->test('Horizon', [$this, 'testHorizonService']); diff --git a/ProcessMaker/Console/Commands/ProcessMakerValidateProcesses.php b/ProcessMaker/Console/Commands/ProcessMakerValidateProcesses.php index 34ac8a0b93..0754f77e4f 100644 --- a/ProcessMaker/Console/Commands/ProcessMakerValidateProcesses.php +++ b/ProcessMaker/Console/Commands/ProcessMakerValidateProcesses.php @@ -35,7 +35,7 @@ class ProcessMakerValidateProcesses extends Command * * @return mixed */ - public function handle() + public function handle(): void { $this->info('Starting ProcessMaker Validate Processes...'); $processes = Process::nonSystem()->get(); diff --git a/ProcessMaker/Console/Commands/ProcessmakerClearRequests.php b/ProcessMaker/Console/Commands/ProcessmakerClearRequests.php index e134454e02..e88c5c5973 100644 --- a/ProcessMaker/Console/Commands/ProcessmakerClearRequests.php +++ b/ProcessMaker/Console/Commands/ProcessmakerClearRequests.php @@ -36,7 +36,7 @@ class ProcessmakerClearRequests extends Command * * @return mixed */ - public function handle() + public function handle(): void { if ($this->confirm(self::message, false)) { ScheduledTask::query()->truncate(); diff --git a/ProcessMaker/Console/Commands/RegenerateCss.php b/ProcessMaker/Console/Commands/RegenerateCss.php index c39e1ef92d..f5046c6040 100644 --- a/ProcessMaker/Console/Commands/RegenerateCss.php +++ b/ProcessMaker/Console/Commands/RegenerateCss.php @@ -42,7 +42,7 @@ public function __construct() * * @return mixed */ - public function handle() + public function handle(): void { $this->info("\nStarting CSS compiling..."); (new CompileUI())->handle(); diff --git a/ProcessMaker/Console/Commands/RetryScriptTasks.php b/ProcessMaker/Console/Commands/RetryScriptTasks.php index 91afceef8a..344c198852 100644 --- a/ProcessMaker/Console/Commands/RetryScriptTasks.php +++ b/ProcessMaker/Console/Commands/RetryScriptTasks.php @@ -43,7 +43,7 @@ public function __construct() * * @return mixed */ - public function handle() + public function handle(): void { $tasks = $this->retrieveTaskList(); diff --git a/ProcessMaker/Console/Commands/ReviewCategoryNull.php b/ProcessMaker/Console/Commands/ReviewCategoryNull.php index ad224f3139..6c4c064c7e 100644 --- a/ProcessMaker/Console/Commands/ReviewCategoryNull.php +++ b/ProcessMaker/Console/Commands/ReviewCategoryNull.php @@ -38,7 +38,7 @@ public function __construct() * * @return int */ - public function handle() + public function handle(): int { $table = 'screens'; $field = 'screen_category_id'; diff --git a/ProcessMaker/Console/Commands/RevokeOauthAccessTokens.php b/ProcessMaker/Console/Commands/RevokeOauthAccessTokens.php index c353097921..0ea16b87c5 100644 --- a/ProcessMaker/Console/Commands/RevokeOauthAccessTokens.php +++ b/ProcessMaker/Console/Commands/RevokeOauthAccessTokens.php @@ -28,7 +28,7 @@ class RevokeOauthAccessTokens extends Command * * @return mixed */ - public function handle() + public function handle(): void { $name = $this->option('name'); $after = $this->option('after'); diff --git a/ProcessMaker/Console/Commands/SeedPerformanceData.php b/ProcessMaker/Console/Commands/SeedPerformanceData.php index d735d4471c..dedf72819e 100644 --- a/ProcessMaker/Console/Commands/SeedPerformanceData.php +++ b/ProcessMaker/Console/Commands/SeedPerformanceData.php @@ -36,7 +36,7 @@ public function __construct() * * @return int */ - public function handle() + public function handle(): int { $seeder = new RequestListingPerformanceData(); $seeder->requestCount = 100_000; diff --git a/ProcessMaker/Console/Commands/SyncDefaultTemplates.php b/ProcessMaker/Console/Commands/SyncDefaultTemplates.php index 59fafbd6e1..1699189c60 100644 --- a/ProcessMaker/Console/Commands/SyncDefaultTemplates.php +++ b/ProcessMaker/Console/Commands/SyncDefaultTemplates.php @@ -37,7 +37,7 @@ public function __construct() * * @return int */ - public function handle() + public function handle(): int { if ($this->option('queue')) { $randomDelay = random_int(10, 120); diff --git a/ProcessMaker/Console/Commands/SyncPackageTranslations.php b/ProcessMaker/Console/Commands/SyncPackageTranslations.php index 1ada7bbdf1..d2bc1f0c11 100644 --- a/ProcessMaker/Console/Commands/SyncPackageTranslations.php +++ b/ProcessMaker/Console/Commands/SyncPackageTranslations.php @@ -29,7 +29,7 @@ class SyncPackageTranslations extends Command * * @return int */ - public function handle() + public function handle(): int { $this->info('Synchronize translations of packages to CORE'); // get All packages installed diff --git a/ProcessMaker/Console/Commands/SyncScreenTemplate.php b/ProcessMaker/Console/Commands/SyncScreenTemplate.php index 461d714f7d..258fae6030 100644 --- a/ProcessMaker/Console/Commands/SyncScreenTemplate.php +++ b/ProcessMaker/Console/Commands/SyncScreenTemplate.php @@ -37,7 +37,7 @@ public function __construct() * * @return int */ - public function handle() + public function handle(): int { if ($this->option('queue')) { $randomDelay = random_int(10, 120); diff --git a/ProcessMaker/Console/Commands/SyncTranslations.php b/ProcessMaker/Console/Commands/SyncTranslations.php index 2789a4b5cc..88f47a6e97 100644 --- a/ProcessMaker/Console/Commands/SyncTranslations.php +++ b/ProcessMaker/Console/Commands/SyncTranslations.php @@ -32,7 +32,7 @@ class SyncTranslations extends Command * * @return int */ - public function handle() + public function handle(): int { $this->info('Starting translation synchronization...'); $this->newLine(); diff --git a/ProcessMaker/Console/Commands/TenantStorageLink.php b/ProcessMaker/Console/Commands/TenantStorageLink.php index 5e46c449c6..3004afab97 100644 --- a/ProcessMaker/Console/Commands/TenantStorageLink.php +++ b/ProcessMaker/Console/Commands/TenantStorageLink.php @@ -24,7 +24,7 @@ class TenantStorageLink extends Command /** * Execute the console command. */ - public function handle() + public function handle(): int { $tenant = app('currentTenant'); diff --git a/ProcessMaker/Console/Commands/TenantsAddScheduleTask.php b/ProcessMaker/Console/Commands/TenantsAddScheduleTask.php index de771faa81..f9cace5f15 100644 --- a/ProcessMaker/Console/Commands/TenantsAddScheduleTask.php +++ b/ProcessMaker/Console/Commands/TenantsAddScheduleTask.php @@ -31,7 +31,7 @@ class TenantsAddScheduleTask extends Command * * @return int */ - public function handle() + public function handle(): int { $tenantId = $this->option('tenant'); $command = $this->option('command'); diff --git a/ProcessMaker/Console/Commands/TenantsCreate.php b/ProcessMaker/Console/Commands/TenantsCreate.php index 43635aea58..eaab477ae6 100644 --- a/ProcessMaker/Console/Commands/TenantsCreate.php +++ b/ProcessMaker/Console/Commands/TenantsCreate.php @@ -40,7 +40,7 @@ class TenantsCreate extends Command /** * Execute the console command. */ - public function handle() + public function handle(): int { $infoCallback = function ($type, $message) { if ($type === 'out') { diff --git a/ProcessMaker/Console/Commands/TenantsEnable.php b/ProcessMaker/Console/Commands/TenantsEnable.php index 02714a1ba3..7f3e3ec9c6 100644 --- a/ProcessMaker/Console/Commands/TenantsEnable.php +++ b/ProcessMaker/Console/Commands/TenantsEnable.php @@ -27,7 +27,7 @@ class TenantsEnable extends Command /** * Execute the console command. */ - public function handle() + public function handle(): int { $migrate = $this->option('migrate', false); diff --git a/ProcessMaker/Console/Commands/TenantsList.php b/ProcessMaker/Console/Commands/TenantsList.php index 0971536155..c40dc18e4f 100644 --- a/ProcessMaker/Console/Commands/TenantsList.php +++ b/ProcessMaker/Console/Commands/TenantsList.php @@ -27,7 +27,7 @@ class TenantsList extends Command /** * Execute the console command. */ - public function handle() + public function handle(): void { $tenants = Tenant::all(); diff --git a/ProcessMaker/Console/Commands/TenantsListScheduleTasks.php b/ProcessMaker/Console/Commands/TenantsListScheduleTasks.php index c404b6ba77..93f89a4ee4 100644 --- a/ProcessMaker/Console/Commands/TenantsListScheduleTasks.php +++ b/ProcessMaker/Console/Commands/TenantsListScheduleTasks.php @@ -26,7 +26,7 @@ class TenantsListScheduleTasks extends Command * * @return int */ - public function handle() + public function handle(): int { $tenantId = $this->option('tenant'); diff --git a/ProcessMaker/Console/Commands/TenantsRemoveScheduleTask.php b/ProcessMaker/Console/Commands/TenantsRemoveScheduleTask.php index ae6505432f..7227716b88 100644 --- a/ProcessMaker/Console/Commands/TenantsRemoveScheduleTask.php +++ b/ProcessMaker/Console/Commands/TenantsRemoveScheduleTask.php @@ -28,7 +28,7 @@ class TenantsRemoveScheduleTask extends Command * * @return int */ - public function handle() + public function handle(): int { $tenantId = $this->option('tenant'); $command = $this->option('command'); diff --git a/ProcessMaker/Console/Commands/TenantsRunScheduler.php b/ProcessMaker/Console/Commands/TenantsRunScheduler.php index c228a527ab..023cc8fa11 100644 --- a/ProcessMaker/Console/Commands/TenantsRunScheduler.php +++ b/ProcessMaker/Console/Commands/TenantsRunScheduler.php @@ -57,7 +57,7 @@ public function __construct(Schedule $schedule, TenantSchedulingService $service * * @return int */ - public function handle() + public function handle(): int { $tenantId = $this->option('tenant'); diff --git a/ProcessMaker/Console/Commands/TenantsTransition.php b/ProcessMaker/Console/Commands/TenantsTransition.php index 9e58220111..5572e740ae 100644 --- a/ProcessMaker/Console/Commands/TenantsTransition.php +++ b/ProcessMaker/Console/Commands/TenantsTransition.php @@ -34,7 +34,7 @@ class TenantsTransition extends Command /** * Execute the console command. */ - public function handle() + public function handle(): int { // Check if multitenancy is enabled if (!config('app.multitenancy')) { diff --git a/ProcessMaker/Console/Commands/TenantsVerify.php b/ProcessMaker/Console/Commands/TenantsVerify.php index 46cd1e224c..d49ebbbb68 100644 --- a/ProcessMaker/Console/Commands/TenantsVerify.php +++ b/ProcessMaker/Console/Commands/TenantsVerify.php @@ -35,7 +35,7 @@ class TenantsVerify extends Command */ private $jsonData = []; - public function handle() + public function handle(): void { if (!config('app.multitenancy')) { $this->info('Multitenancy is disabled'); @@ -78,7 +78,7 @@ public function handle() 'logging.channels.daily.path' => base_path() . '/storage/tenant_{tenant_id}/logs/processmaker.log', 'filesystems.disks.public.root' => base_path() . '/storage/tenant_{tenant_id}/app/public', 'filesystems.disks.local.root' => base_path() . '/storage/tenant_{tenant_id}/app', - 'filesystems.disks.lang.root' => base_path() . '/resources/lang/tenant_{tenant_id}', + 'filesystems.disks.lang.root' => base_path() . '/lang/tenant_{tenant_id}', ]; $configs = array_map(function ($config) use ($configs, $currentTenant, &$errors) { diff --git a/ProcessMaker/Console/Commands/TranslateEmptyStrings.php b/ProcessMaker/Console/Commands/TranslateEmptyStrings.php index 411aba9eff..433e55bdc3 100644 --- a/ProcessMaker/Console/Commands/TranslateEmptyStrings.php +++ b/ProcessMaker/Console/Commands/TranslateEmptyStrings.php @@ -31,7 +31,7 @@ class TranslateEmptyStrings extends Command * * @return int */ - public function handle() + public function handle(): int { if (env('OPENAI_API_KEY') === null) { $this->error('OPENAI_API_KEY is not set'); @@ -55,7 +55,7 @@ public function handle() private function translateCoreEmptyStrings($langCode) { $this->files = []; - $translationsCore = app()->basePath() . '/resources/lang'; + $translationsCore = app()->basePath() . '/lang'; $this->listFiles($translationsCore); $filesIgnore = ['/en/', '.gitignore', '/en.json', '.php', '.DS_Store']; diff --git a/ProcessMaker/Console/Commands/UpdateCommentsCaseNumber.php b/ProcessMaker/Console/Commands/UpdateCommentsCaseNumber.php index 4f0ae7f986..de516411db 100644 --- a/ProcessMaker/Console/Commands/UpdateCommentsCaseNumber.php +++ b/ProcessMaker/Console/Commands/UpdateCommentsCaseNumber.php @@ -28,7 +28,7 @@ class UpdateCommentsCaseNumber extends Command * * @return mixed */ - public function handle() + public function handle(): int { // Update the case_number with the corresponding value in the table comments $chunkSize = self::CHUNK_SIZE; diff --git a/ProcessMaker/Console/Commands/UpdateSettingsGroupId.php b/ProcessMaker/Console/Commands/UpdateSettingsGroupId.php index 02804f9ccb..ba063cc07e 100644 --- a/ProcessMaker/Console/Commands/UpdateSettingsGroupId.php +++ b/ProcessMaker/Console/Commands/UpdateSettingsGroupId.php @@ -28,10 +28,11 @@ class UpdateSettingsGroupId extends Command * * @return mixed */ - public function handle() + public function handle(): void { // Update the setting.group_id with the corresponding category created in settings_menus Setting::updateAllSettingsGroupId(); - return $this->info("Settings group_id updated successfully"); + + return $this->info('Settings group_id updated successfully'); } } diff --git a/ProcessMaker/Console/PackageInstallCommand.php b/ProcessMaker/Console/PackageInstallCommand.php index ab165dac3d..b0e900c6ed 100644 --- a/ProcessMaker/Console/PackageInstallCommand.php +++ b/ProcessMaker/Console/PackageInstallCommand.php @@ -59,7 +59,7 @@ abstract protected function postinstall(); * * @return mixed */ - public function handle() + public function handle(): void { if ($this->isFullInstall()) { $this->preinstall(); diff --git a/ProcessMaker/Events/ActivityAssigned.php b/ProcessMaker/Events/ActivityAssigned.php index 75c51c5fde..418b4eb8b7 100644 --- a/ProcessMaker/Events/ActivityAssigned.php +++ b/ProcessMaker/Events/ActivityAssigned.php @@ -54,7 +54,7 @@ public function broadcastOn() /** * Return the process request. * - * @return \ProcessMaker\Models\ProcessRequestToken + * @return ProcessRequestToken */ public function getProcessRequestToken() { diff --git a/ProcessMaker/Events/ActivityCompleted.php b/ProcessMaker/Events/ActivityCompleted.php index 83e99c8b36..7e69679741 100644 --- a/ProcessMaker/Events/ActivityCompleted.php +++ b/ProcessMaker/Events/ActivityCompleted.php @@ -51,7 +51,7 @@ public function broadcastOn() /** * Return the process request. * - * @return \ProcessMaker\Models\ProcessRequestToken + * @return ProcessRequestToken */ public function getProcessRequestToken() { diff --git a/ProcessMaker/Events/CustomizeUiUpdated.php b/ProcessMaker/Events/CustomizeUiUpdated.php index 17137eade7..86db58a684 100644 --- a/ProcessMaker/Events/CustomizeUiUpdated.php +++ b/ProcessMaker/Events/CustomizeUiUpdated.php @@ -31,7 +31,7 @@ class CustomizeUiUpdated implements SecurityLogEventInterface private function defaultVariables(): string { $defaults = config('app.default_colors'); - + $objects = []; foreach ($defaults as $name => $value) { $objects[] = [ @@ -40,10 +40,10 @@ private function defaultVariables(): string 'title' => ucfirst($name), ]; } - + return json_encode($objects); } - + /** * Create a new event instance. * diff --git a/ProcessMaker/Events/ProcessCompleted.php b/ProcessMaker/Events/ProcessCompleted.php index 566fd59730..af37cbd0cb 100644 --- a/ProcessMaker/Events/ProcessCompleted.php +++ b/ProcessMaker/Events/ProcessCompleted.php @@ -57,7 +57,7 @@ public function broadcastOn() /** * Return the process request. * - * @return \ProcessMaker\Models\ProcessRequest + * @return ProcessRequest */ public function getProcessRequest() { diff --git a/ProcessMaker/Events/RedirectToEvent.php b/ProcessMaker/Events/RedirectToEvent.php index df05b8b010..4b2e1b6639 100644 --- a/ProcessMaker/Events/RedirectToEvent.php +++ b/ProcessMaker/Events/RedirectToEvent.php @@ -45,16 +45,17 @@ public function broadcastOn(): array { $channels = [ // Current request - new PrivateChannel('ProcessMaker.Models.ProcessRequest.' . $this->processRequest->getKey()) + new PrivateChannel('ProcessMaker.Models.ProcessRequest.' . $this->processRequest->getKey()), ]; // include child requests if any - foreach($this->processRequest->childRequests()->pluck('id') as $childRequestId) { + foreach ($this->processRequest->childRequests()->pluck('id') as $childRequestId) { $channels[] = new PrivateChannel('ProcessMaker.Models.ProcessRequest.' . $childRequestId); } // include parent request if any if ($this->processRequest->parent_request_id) { $channels[] = new PrivateChannel('ProcessMaker.Models.ProcessRequest.' . $this->processRequest->parent_request_id); } + return $channels; } } diff --git a/ProcessMaker/Events/SessionStarted.php b/ProcessMaker/Events/SessionStarted.php index c55631656c..9ee5aa96ac 100644 --- a/ProcessMaker/Events/SessionStarted.php +++ b/ProcessMaker/Events/SessionStarted.php @@ -32,7 +32,7 @@ public function __construct(User $user) /** * Get the channels the event should broadcast on. * - * @return \Illuminate\Broadcasting\Channel|array + * @return Channel|array */ public function broadcastOn() { diff --git a/ProcessMaker/Facades/Docker.php b/ProcessMaker/Facades/Docker.php index 4ebe691cf8..2a4c18fca9 100644 --- a/ProcessMaker/Facades/Docker.php +++ b/ProcessMaker/Facades/Docker.php @@ -6,7 +6,7 @@ use ProcessMaker\Managers\DockerManager; /** - * @see \ProcessMaker\Managers\DockerManager + * @see DockerManager * * @method bool hasRemoteDocker() * @method string getDockerHost() diff --git a/ProcessMaker/Facades/MatchingTasks.php b/ProcessMaker/Facades/MatchingTasks.php index 3f3d27d821..6f95adf898 100644 --- a/ProcessMaker/Facades/MatchingTasks.php +++ b/ProcessMaker/Facades/MatchingTasks.php @@ -16,6 +16,6 @@ class MatchingTasks extends Facade */ protected static function getFacadeAccessor() { - return MatchingTasks::class; + return self::class; } } diff --git a/ProcessMaker/Facades/RequestDevice.php b/ProcessMaker/Facades/RequestDevice.php index 1b7be10c4c..8941a976cb 100644 --- a/ProcessMaker/Facades/RequestDevice.php +++ b/ProcessMaker/Facades/RequestDevice.php @@ -6,7 +6,7 @@ use ProcessMaker\Models\RequestDevice as RequestDeviceModel; /** - * @see \ProcessMaker\Models\RequestDevice + * @see RequestDeviceModel * * @method static string getVariableName() * @method static string getId() diff --git a/ProcessMaker/Http/Controllers/Api/CommentController.php b/ProcessMaker/Http/Controllers/Api/CommentController.php index 3814b5c02e..398439aa6b 100644 --- a/ProcessMaker/Http/Controllers/Api/CommentController.php +++ b/ProcessMaker/Http/Controllers/Api/CommentController.php @@ -5,6 +5,7 @@ use Comment as GlobalComment; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Gate; use ProcessMaker\Http\Controllers\Controller; use ProcessMaker\Http\Resources\ApiCollection; use ProcessMaker\Http\Resources\Comment as CommentResource; @@ -138,7 +139,7 @@ private function authorizeComment(Request $request) $commentable_id = $request->input('commentable_id'); $commentable_type = $request->input('commentable_type'); $commentable = $commentable_type::findOrFail($commentable_id); - $this->authorize('view', $commentable); + Gate::authorize('view', $commentable); } /** @@ -180,7 +181,7 @@ public function store(Request $request) */ public function show(Comment $comment) { - $this->authorize('view', $comment->commentable); + Gate::authorize('view', $comment->commentable); return new CommentResource($comment); } diff --git a/ProcessMaker/Http/Controllers/Api/CssOverrideController.php b/ProcessMaker/Http/Controllers/Api/CssOverrideController.php index 30202cdeb5..a0893e67f0 100644 --- a/ProcessMaker/Http/Controllers/Api/CssOverrideController.php +++ b/ProcessMaker/Http/Controllers/Api/CssOverrideController.php @@ -239,7 +239,7 @@ private function uploadFile(Setting $setting, Request $request, $filename, $coll ->toMediaCollection($collectionName, $diskName); } elseif (isset($data[$filename]) && !empty($data[$filename]) && $data[$filename] != 'null') { $customMessage = ['mimes' => __('The :attribute must be a file of type: jpg, jpeg, png, or gif.')]; - $this->validate($request, [$filename => ' mimes:jpg,jpeg,png,gif'], $customMessage); + $request->validate([$filename => ' mimes:jpg,jpeg,png,gif'], $customMessage); $setting->addMedia($request->file($filename)) ->toMediaCollection($collectionName, $diskName); } diff --git a/ProcessMaker/Http/Controllers/Api/DevLinkController.php b/ProcessMaker/Http/Controllers/Api/DevLinkController.php index 8994184d1a..bf9d9e709c 100644 --- a/ProcessMaker/Http/Controllers/Api/DevLinkController.php +++ b/ProcessMaker/Http/Controllers/Api/DevLinkController.php @@ -447,23 +447,23 @@ private function writeFonts($sansSerif) private function compileSass($userId) { // Compile the Sass files - $this->dispatch(new CompileSass([ + CompileSass::dispatch([ 'tag' => 'sidebar', 'origin' => 'resources/sass/sidebar/sidebar.scss', 'target' => 'public/css/sidebar.css', 'user' => $userId, - ])); - $this->dispatch(new CompileSass([ + ]); + CompileSass::dispatch([ 'tag' => 'app', 'origin' => 'resources/sass/app.scss', 'target' => 'public/css/app.css', 'user' => $userId, - ])); - $this->dispatch(new CompileSass([ + ]); + CompileSass::dispatch([ 'tag' => 'queues', 'origin' => 'resources/sass/admin/queues.scss', 'target' => 'public/css/admin/queues.css', 'user' => $userId, - ])); + ]); } } diff --git a/ProcessMaker/Http/Controllers/Api/GroupMemberController.php b/ProcessMaker/Http/Controllers/Api/GroupMemberController.php index b5b95207f1..face7d9e48 100644 --- a/ProcessMaker/Http/Controllers/Api/GroupMemberController.php +++ b/ProcessMaker/Http/Controllers/Api/GroupMemberController.php @@ -214,7 +214,7 @@ public function destroy(GroupMember $group_member) /** * Display a listing of groups available * - * @param \Illuminate\Http\Request $request + * @param Request $request * @return ApiCollection * * @OA\Get( @@ -338,7 +338,7 @@ public function groupsAvailable(Request $request) /** * Display a listing of users available * - * @param \Illuminate\Http\Request $request + * @param Request $request * @return ApiCollection * * @OA\Get( diff --git a/ProcessMaker/Http/Controllers/Api/ScriptController.php b/ProcessMaker/Http/Controllers/Api/ScriptController.php index 2e7fc5c5dc..26a07546b6 100644 --- a/ProcessMaker/Http/Controllers/Api/ScriptController.php +++ b/ProcessMaker/Http/Controllers/Api/ScriptController.php @@ -4,6 +4,7 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\Gate; use ProcessMaker\Events\ScriptCreated; use ProcessMaker\Events\ScriptDeleted; use ProcessMaker\Events\ScriptDuplicated; @@ -240,7 +241,7 @@ public function preview(Request $request, Script $script) public function execute(Request $request, ...$scriptKey) { $script = count($scriptKey) === 1 && is_numeric($scriptKey[0]) ? Script::find($scriptKey[0]) : Script::where('key', implode('/', $scriptKey))->first(); - $this->authorize('execute', $script); + Gate::authorize('execute', $script); if ($request->task_id) { $processRequest = ProcessRequestToken::findOrFail($request->task_id)->processRequest; $script = $script->versionFor($processRequest); diff --git a/ProcessMaker/Http/Controllers/Api/SignalController.php b/ProcessMaker/Http/Controllers/Api/SignalController.php index b4432e8fa0..798b642838 100644 --- a/ProcessMaker/Http/Controllers/Api/SignalController.php +++ b/ProcessMaker/Http/Controllers/Api/SignalController.php @@ -24,7 +24,7 @@ class SignalController extends Controller * * @param Request $request * - * @return \Illuminate\Http\Response + * @return Response * * @OA\Get( * path="/signals", diff --git a/ProcessMaker/Http/Controllers/Api/TaskController.php b/ProcessMaker/Http/Controllers/Api/TaskController.php index 2c2647cc40..45e248e00e 100644 --- a/ProcessMaker/Http/Controllers/Api/TaskController.php +++ b/ProcessMaker/Http/Controllers/Api/TaskController.php @@ -324,7 +324,7 @@ public function show(ProcessRequestToken $task) */ public function update(Request $request, ProcessRequestToken $task) { - $this->authorize('update', $task); + Gate::authorize('update', $task); if ($request->input('status') === 'COMPLETED') { if ($task->status === 'CLOSED') { return abort(422, __('Task already closed')); diff --git a/ProcessMaker/Http/Controllers/Auth/ClientController.php b/ProcessMaker/Http/Controllers/Auth/ClientController.php index e38c9f2288..94996f717c 100644 --- a/ProcessMaker/Http/Controllers/Auth/ClientController.php +++ b/ProcessMaker/Http/Controllers/Auth/ClientController.php @@ -14,7 +14,7 @@ class ClientController extends PassportClientController /** * List auth clients * - * @param \Illuminate\Http\Request $request + * @param Request $request * @return array */ public function index(Request $request) @@ -27,7 +27,7 @@ public function index(Request $request) /** * Get an individual auth client * - * @param \Illuminate\Http\Request $request + * @param Request $request * @param string $clientId * @return array */ @@ -42,7 +42,7 @@ public function show(Request $request, $clientId) /** * Store a new client. * - * @param \Illuminate\Http\Request $request + * @param Request $request * @return \Laravel\Passport\Client */ public function store(Request $request) @@ -70,7 +70,7 @@ public function store(Request $request) /** * Update the given client. * - * @param \Illuminate\Http\Request $request + * @param Request $request * @param string $clientId * @return \Illuminate\Http\Response|\Laravel\Passport\Client */ @@ -108,7 +108,7 @@ public function update(Request $request, $clientId) /** * Delete the given client. * - * @param \Illuminate\Http\Request $request + * @param Request $request * @param string $clientId * @return null */ diff --git a/ProcessMaker/Http/Controllers/Auth/ForgotPasswordController.php b/ProcessMaker/Http/Controllers/Auth/ForgotPasswordController.php index 8d2cc2cc9b..29c19b9f91 100644 --- a/ProcessMaker/Http/Controllers/Auth/ForgotPasswordController.php +++ b/ProcessMaker/Http/Controllers/Auth/ForgotPasswordController.php @@ -3,9 +3,11 @@ namespace ProcessMaker\Http\Controllers\Auth; use Illuminate\Foundation\Auth\SendsPasswordResetEmails; +use Illuminate\Routing\Controllers\HasMiddleware; +use Illuminate\Routing\Controllers\Middleware; use ProcessMaker\Http\Controllers\Controller; -class ForgotPasswordController extends Controller +class ForgotPasswordController extends Controller implements HasMiddleware { /* |-------------------------------------------------------------------------- @@ -20,13 +22,10 @@ class ForgotPasswordController extends Controller use SendsPasswordResetEmails; - /** - * Create a new controller instance. - * - * @return void - */ - public function __construct() + public static function middleware(): array { - $this->middleware('guest'); + return [ + 'guest', + ]; } } diff --git a/ProcessMaker/Http/Controllers/Auth/LoginController.php b/ProcessMaker/Http/Controllers/Auth/LoginController.php index 6be170ac5b..fc0053c02e 100644 --- a/ProcessMaker/Http/Controllers/Auth/LoginController.php +++ b/ProcessMaker/Http/Controllers/Auth/LoginController.php @@ -5,6 +5,8 @@ use App; use Illuminate\Foundation\Auth\AuthenticatesUsers; use Illuminate\Http\Request; +use Illuminate\Routing\Controllers\HasMiddleware; +use Illuminate\Routing\Controllers\Middleware; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cookie; @@ -18,7 +20,7 @@ use ProcessMaker\Package\Auth\Database\Seeds\AuthDefaultSeeder; use ProcessMaker\Traits\HasControllerAddons; -class LoginController extends Controller +class LoginController extends Controller implements HasMiddleware { use HasControllerAddons; /* @@ -51,9 +53,6 @@ class LoginController extends Controller public function __construct() { // Set middle wares - $this->middleware('session_block')->only('loginWithIntendedCheck'); - $this->middleware('guest')->except(['logout', 'beforeLogout', 'keepAlive']); - $this->middleware('saml_request')->only('showLoginForm'); // Set login attempts $loginAttempts = (int) config('password-policies.login_attempts', PHP_INT_MAX); @@ -63,6 +62,15 @@ public function __construct() $this->maxAttempts = $loginAttempts; } + public static function middleware(): array + { + return [ + new Middleware('session_block', only: ['loginWithIntendedCheck']), + new Middleware('guest', except: ['logout', 'beforeLogout', 'keepAlive']), + new Middleware('saml_request', only: ['showLoginForm']), + ]; + } + /** * Show the application's login form. * diff --git a/ProcessMaker/Http/Controllers/Auth/ResetPasswordController.php b/ProcessMaker/Http/Controllers/Auth/ResetPasswordController.php index d1e0efa770..eb16bd755c 100644 --- a/ProcessMaker/Http/Controllers/Auth/ResetPasswordController.php +++ b/ProcessMaker/Http/Controllers/Auth/ResetPasswordController.php @@ -4,10 +4,12 @@ use Illuminate\Foundation\Auth\ResetsPasswords; use Illuminate\Http\Request; +use Illuminate\Routing\Controllers\HasMiddleware; +use Illuminate\Routing\Controllers\Middleware; use ProcessMaker\Http\Controllers\Controller; use ProcessMaker\Models\User; -class ResetPasswordController extends Controller +class ResetPasswordController extends Controller implements HasMiddleware { /* |-------------------------------------------------------------------------- @@ -29,14 +31,11 @@ class ResetPasswordController extends Controller */ protected $redirectTo = '/password/success'; - /** - * Create a new controller instance. - * - * @return void - */ - public function __construct() + public static function middleware(): array { - $this->middleware('guest'); + return [ + 'guest', + ]; } /** diff --git a/ProcessMaker/Http/Controllers/Auth/TwoFactorAuthController.php b/ProcessMaker/Http/Controllers/Auth/TwoFactorAuthController.php index ed50fda849..17109c562c 100644 --- a/ProcessMaker/Http/Controllers/Auth/TwoFactorAuthController.php +++ b/ProcessMaker/Http/Controllers/Auth/TwoFactorAuthController.php @@ -153,7 +153,7 @@ public function testSettings(Request $request) if (count($enabled) === 0) { $message = [ 'status' => 'error', - 'message' => __('The two-step method must be selected.') + 'message' => __('The two-step method must be selected.'), ]; $status = 500; } @@ -237,6 +237,7 @@ public static function check2faByGroups() { try { $user = Auth::user(); + return $user->in2FAGroupOrIndependent(); } catch (Exception $e) { session()->put(self::TFA_ERROR, $e->getMessage()); diff --git a/ProcessMaker/Http/Controllers/CasesController.php b/ProcessMaker/Http/Controllers/CasesController.php index c179bad86f..4b0c79009f 100644 --- a/ProcessMaker/Http/Controllers/CasesController.php +++ b/ProcessMaker/Http/Controllers/CasesController.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Http\Controllers; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Gate; use ProcessMaker\Events\ModelerStarting; use ProcessMaker\Events\ScreenBuilderStarting; use ProcessMaker\Http\Controllers\Controller; @@ -99,7 +100,7 @@ public function show($case_number) // Check if the user has permission print for request $canPrintScreens = $canOpenCase = $this->canUserCanOpenCase($allRequests); if (!$canOpenCase && !$isProcessManager) { - $this->authorize('view', $request); + Gate::authorize('view', $request); } // Get the summary screen tranlations diff --git a/ProcessMaker/Http/Controllers/Controller.php b/ProcessMaker/Http/Controllers/Controller.php index 7d3cadfe99..d4b7bb6da2 100644 --- a/ProcessMaker/Http/Controllers/Controller.php +++ b/ProcessMaker/Http/Controllers/Controller.php @@ -2,9 +2,6 @@ namespace ProcessMaker\Http\Controllers; -use Illuminate\Foundation\Auth\Access\AuthorizesRequests; -use Illuminate\Foundation\Bus\DispatchesJobs; -use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Routing\Controller as BaseController; use ProcessMaker\Traits\HasControllerAddons; @@ -13,8 +10,6 @@ */ class Controller extends BaseController { - use AuthorizesRequests, DispatchesJobs, ValidatesRequests; - /** * Our overridden callAction unsets the parameters used by our middleware since * controllers don't care about them diff --git a/ProcessMaker/Http/Controllers/Process/ScreenController.php b/ProcessMaker/Http/Controllers/Process/ScreenController.php index 65ba86dbb3..182a130400 100644 --- a/ProcessMaker/Http/Controllers/Process/ScreenController.php +++ b/ProcessMaker/Http/Controllers/Process/ScreenController.php @@ -83,7 +83,7 @@ public function edit(Screen $screen) { $addons = $this->getPluginAddons('edit', compact(['screen'])); $assignedProjects = json_decode($screen->projects, true); - + $lastDraftOrPublishedVersion = $screen->getDraftOrPublishedLatestVersion(); $isDraft = 0; @@ -92,11 +92,11 @@ public function edit(Screen $screen) } return view('processes.screens.edit', compact( - 'screen', - 'addons', - 'assignedProjects', - 'isDraft' - ) + 'screen', + 'addons', + 'assignedProjects', + 'isDraft' + ) ); } diff --git a/ProcessMaker/Http/Controllers/Process/SignalController.php b/ProcessMaker/Http/Controllers/Process/SignalController.php index d248e832b3..a632bc7561 100644 --- a/ProcessMaker/Http/Controllers/Process/SignalController.php +++ b/ProcessMaker/Http/Controllers/Process/SignalController.php @@ -28,7 +28,7 @@ public function index(Request $request) /** * Get a specific signal * - * @return \Illuminate\View\View|\Illuminate\Contracts\View + * @return View|\Illuminate\Contracts\View */ public function edit($id) { diff --git a/ProcessMaker/Http/Controllers/RequestController.php b/ProcessMaker/Http/Controllers/RequestController.php index 37723a2918..8d5cb667f5 100644 --- a/ProcessMaker/Http/Controllers/RequestController.php +++ b/ProcessMaker/Http/Controllers/RequestController.php @@ -5,6 +5,7 @@ use Facades\ProcessMaker\RollbackProcessRequest; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Route; use ProcessMaker\Cache\CacheRemember; use ProcessMaker\Events\FilesDownloaded; @@ -49,7 +50,7 @@ class RequestController extends Controller public function index($type = null) { if ($type === 'all') { - $this->authorize('view-all_requests'); + Gate::authorize('view-all_requests'); } $title = 'My Request'; @@ -136,7 +137,7 @@ public function show(ProcessRequest $request, Media $mediaItems) ->count() > 0; if (!$userHasCommentsForMedia && !$userHasCommentsForRequest) { - $this->authorize('view', $request); + Gate::authorize('view', $request); } // Get the case number of parent request if the case number is null // The case_number is null when the subprocess is related to the system like [ActionByEmail] @@ -257,7 +258,7 @@ public function show(ProcessRequest $request, Media $mediaItems) public function screenPreview(ProcessRequest $request, ProcessRequestToken $task, ScreenVersion $screen) { - $this->authorize('view', $request); + Gate::authorize('view', $request); if (!$this->canUserPrintScreen($request)) { //user without permissions return redirect('403'); diff --git a/ProcessMaker/Http/Controllers/TaskController.php b/ProcessMaker/Http/Controllers/TaskController.php index d920c27dbc..256853e3b6 100755 --- a/ProcessMaker/Http/Controllers/TaskController.php +++ b/ProcessMaker/Http/Controllers/TaskController.php @@ -6,6 +6,7 @@ use Illuminate\Auth\Events\Login; use Illuminate\Http\Request as HttpRequest; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Request; use ProcessMaker\Events\ScreenBuilderStarting; use ProcessMaker\Facades\WorkflowManager; @@ -114,7 +115,7 @@ public function edit(ProcessRequestToken $task, string $preview = '') ->count() > 0; if (!\Auth::user()->can('update', $task) && !$userHasComments) { - $this->authorize('update', $task); + Gate::authorize('update', $task); } //Mark notification as read diff --git a/ProcessMaker/Http/Middleware/AuthenticateSession.php b/ProcessMaker/Http/Middleware/AuthenticateSession.php index 4d03e83c64..e38be2124e 100644 --- a/ProcessMaker/Http/Middleware/AuthenticateSession.php +++ b/ProcessMaker/Http/Middleware/AuthenticateSession.php @@ -12,7 +12,7 @@ class AuthenticateSession extends BaseAuthenticateSession * Handle an incoming request. * * @param \Illuminate\Http\Request $request - * @param \Closure $next + * @param Closure $next * * @return mixed * @throws \Illuminate\Auth\AuthenticationException diff --git a/ProcessMaker/Http/Middleware/BrowserCache.php b/ProcessMaker/Http/Middleware/BrowserCache.php index 4f632f86f2..1a30f6554d 100644 --- a/ProcessMaker/Http/Middleware/BrowserCache.php +++ b/ProcessMaker/Http/Middleware/BrowserCache.php @@ -10,7 +10,7 @@ class BrowserCache * Handle an incoming request. * * @param \Illuminate\Http\Request $request - * @param \Closure $next + * @param Closure $next * @return mixed */ public function handle($request, Closure $next) diff --git a/ProcessMaker/Http/Middleware/EncryptCookies.php b/ProcessMaker/Http/Middleware/EncryptCookies.php index 56273fb944..a242982d36 100644 --- a/ProcessMaker/Http/Middleware/EncryptCookies.php +++ b/ProcessMaker/Http/Middleware/EncryptCookies.php @@ -21,6 +21,6 @@ class EncryptCookies extends BaseEncrypter */ 'device_id', 'fromTriggerStartEvent', - 'language' + 'language', ]; } diff --git a/ProcessMaker/Http/Middleware/HideServerHeaders.php b/ProcessMaker/Http/Middleware/HideServerHeaders.php index 31a9258648..34db52d56a 100644 --- a/ProcessMaker/Http/Middleware/HideServerHeaders.php +++ b/ProcessMaker/Http/Middleware/HideServerHeaders.php @@ -55,7 +55,7 @@ class HideServerHeaders /** * Handle an incoming request. * - * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next + * @param Closure(Request): (Response) $next */ public function handle(Request $request, Closure $next): Response { diff --git a/ProcessMaker/Http/Middleware/IgnoreMapFiles.php b/ProcessMaker/Http/Middleware/IgnoreMapFiles.php index 46ed2eaee0..1fdeab0388 100644 --- a/ProcessMaker/Http/Middleware/IgnoreMapFiles.php +++ b/ProcessMaker/Http/Middleware/IgnoreMapFiles.php @@ -10,7 +10,7 @@ class IgnoreMapFiles * Handle an incoming request. * * @param \Illuminate\Http\Request $request - * @param \Closure $next + * @param Closure $next * @return mixed */ public function handle($request, Closure $next) diff --git a/ProcessMaker/Http/Middleware/IsAdmin.php b/ProcessMaker/Http/Middleware/IsAdmin.php index 232347f356..5e52f70156 100644 --- a/ProcessMaker/Http/Middleware/IsAdmin.php +++ b/ProcessMaker/Http/Middleware/IsAdmin.php @@ -11,7 +11,7 @@ class IsAdmin /** * Handle an incoming request. * - * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next + * @param Closure(Request): (Response) $next */ public function handle(Request $request, Closure $next): Response { diff --git a/ProcessMaker/Http/Middleware/IsManager.php b/ProcessMaker/Http/Middleware/IsManager.php index 638072f2be..f43580842a 100644 --- a/ProcessMaker/Http/Middleware/IsManager.php +++ b/ProcessMaker/Http/Middleware/IsManager.php @@ -13,7 +13,7 @@ class IsManager /** * Handle an incoming request. * - * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next + * @param Closure(Request): (Response) $next */ public function handle(Request $request, Closure $next): Response { diff --git a/ProcessMaker/Http/Middleware/NoCache.php b/ProcessMaker/Http/Middleware/NoCache.php index d85df5ff3b..ca7694ecbf 100644 --- a/ProcessMaker/Http/Middleware/NoCache.php +++ b/ProcessMaker/Http/Middleware/NoCache.php @@ -11,7 +11,7 @@ class NoCache /** * Handle an incoming request. * - * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next + * @param Closure(Request): (Response) $next */ public function handle(Request $request, Closure $next): Response { diff --git a/ProcessMaker/Http/Middleware/PermissionCheck.php b/ProcessMaker/Http/Middleware/PermissionCheck.php index 8b55c9348b..40d2154ac0 100644 --- a/ProcessMaker/Http/Middleware/PermissionCheck.php +++ b/ProcessMaker/Http/Middleware/PermissionCheck.php @@ -14,22 +14,22 @@ class PermissionCheck /** * The authentication factory instance. * - * @var \Illuminate\Contracts\Auth\Factory + * @var Auth */ protected $auth; /** * The gate instance. * - * @var \Illuminate\Contracts\Auth\Access\Gate + * @var Gate */ protected $gate; /** * Create a new middleware instance. * - * @param \Illuminate\Contracts\Auth\Factory $auth - * @param \Illuminate\Contracts\Auth\Access\Gate $gate + * @param Auth $auth + * @param Gate $gate * @return void */ public function __construct(Auth $auth, Gate $gate) @@ -42,7 +42,7 @@ public function __construct(Auth $auth, Gate $gate) * Handle an incoming request. * * @param \Illuminate\Http\Request $request - * @param \Closure $next + * @param Closure $next * @param string $ability * @param array|null $models * @return mixed diff --git a/ProcessMaker/Http/Middleware/RedirectIfAuthenticated.php b/ProcessMaker/Http/Middleware/RedirectIfAuthenticated.php index 390d42bbd5..e80eae30ea 100644 --- a/ProcessMaker/Http/Middleware/RedirectIfAuthenticated.php +++ b/ProcessMaker/Http/Middleware/RedirectIfAuthenticated.php @@ -11,7 +11,7 @@ class RedirectIfAuthenticated * Handle an incoming request. * * @param \Illuminate\Http\Request $request - * @param \Closure $next + * @param Closure $next * @param string|null $guard * @return mixed */ diff --git a/ProcessMaker/Http/Middleware/SamlRequest.php b/ProcessMaker/Http/Middleware/SamlRequest.php index 1ab1b40740..65f3ecb763 100644 --- a/ProcessMaker/Http/Middleware/SamlRequest.php +++ b/ProcessMaker/Http/Middleware/SamlRequest.php @@ -12,7 +12,7 @@ class SamlRequest /** * Handle an incoming request. * - * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next + * @param Closure(Request): (Response) $next */ public function handle(Request $request, Closure $next): Response { diff --git a/ProcessMaker/Http/Middleware/ServerTimingMiddleware.php b/ProcessMaker/Http/Middleware/ServerTimingMiddleware.php index 96ade2bded..e379e84e8a 100644 --- a/ProcessMaker/Http/Middleware/ServerTimingMiddleware.php +++ b/ProcessMaker/Http/Middleware/ServerTimingMiddleware.php @@ -20,7 +20,7 @@ public function __construct() /** * Handle an incoming request. * - * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next + * @param Closure(Request): (Response) $next */ public function handle(Request $request, Closure $next): Response { diff --git a/ProcessMaker/Http/Middleware/SessionControlBlock.php b/ProcessMaker/Http/Middleware/SessionControlBlock.php index 40cc8d9b7c..94d8ad7782 100644 --- a/ProcessMaker/Http/Middleware/SessionControlBlock.php +++ b/ProcessMaker/Http/Middleware/SessionControlBlock.php @@ -21,7 +21,7 @@ class SessionControlBlock /** * Handle an incoming request. * - * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next + * @param Closure(Request): (Response) $next */ public function handle(Request $request, Closure $next): Response { diff --git a/ProcessMaker/Http/Middleware/SessionControlKill.php b/ProcessMaker/Http/Middleware/SessionControlKill.php index 30646faf1b..687d8b3082 100644 --- a/ProcessMaker/Http/Middleware/SessionControlKill.php +++ b/ProcessMaker/Http/Middleware/SessionControlKill.php @@ -21,7 +21,7 @@ class SessionControlKill /** * Handle an incoming request. * - * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next + * @param Closure(Request): (Response) $next */ public function handle(Request $request, Closure $next): Response { diff --git a/ProcessMaker/Http/Middleware/TrustHosts.php b/ProcessMaker/Http/Middleware/TrustHosts.php index 68330a6e89..d518ea7b39 100644 --- a/ProcessMaker/Http/Middleware/TrustHosts.php +++ b/ProcessMaker/Http/Middleware/TrustHosts.php @@ -2,8 +2,8 @@ namespace ProcessMaker\Http\Middleware; -use Illuminate\Http\Middleware\TrustHosts as Middleware; use Closure; +use Illuminate\Http\Middleware\TrustHosts as Middleware; use Illuminate\Http\Request; class TrustHosts extends Middleware @@ -11,6 +11,7 @@ class TrustHosts extends Middleware public function hosts(): array { $trustedHost = $this->allSubdomainsOfApplicationUrl(); + return [$trustedHost]; } @@ -19,11 +20,11 @@ public function handle(Request $request, $next) if ($request->hasHeader('X-Forwarded-Host')) { $forwardedHost = $request->header('X-Forwarded-Host'); $trustedPattern = $this->allSubdomainsOfApplicationUrl(); - + if (!$this->hostIsValid($forwardedHost, $trustedPattern)) { \Log::warning('Rejected request with untrusted X-Forwarded-Host', [ 'forwarded_host' => $forwardedHost, - 'trusted_pattern' => $trustedPattern + 'trusted_pattern' => $trustedPattern, ]); abort(400, 'Invalid Host Header'); } @@ -36,4 +37,4 @@ protected function hostIsValid(string $host, string $pattern): bool { return preg_match('/' . str_replace('/', '\/', $pattern) . '/', $host) === 1; } -} \ No newline at end of file +} diff --git a/ProcessMaker/Http/Middleware/TwoFactorAuthentication.php b/ProcessMaker/Http/Middleware/TwoFactorAuthentication.php index 2dd7f74042..ca9fa124b8 100644 --- a/ProcessMaker/Http/Middleware/TwoFactorAuthentication.php +++ b/ProcessMaker/Http/Middleware/TwoFactorAuthentication.php @@ -11,7 +11,7 @@ class TwoFactorAuthentication * Handle an incoming request. * * @param \Illuminate\Http\Request $request - * @param \Closure $next + * @param Closure $next * @return mixed */ public function handle($request, Closure $next) diff --git a/ProcessMaker/Http/Middleware/VerifyChangePasswordNeeded.php b/ProcessMaker/Http/Middleware/VerifyChangePasswordNeeded.php index 1305992f8e..797a1cc78b 100644 --- a/ProcessMaker/Http/Middleware/VerifyChangePasswordNeeded.php +++ b/ProcessMaker/Http/Middleware/VerifyChangePasswordNeeded.php @@ -12,7 +12,7 @@ class VerifyChangePasswordNeeded * Handle an incoming request. * * @param \Illuminate\Http\Request $request - * @param \Closure $next + * @param Closure $next * @return mixed */ public function handle($request, Closure $next) diff --git a/ProcessMaker/Http/Resources/ApiCollection.php b/ProcessMaker/Http/Resources/ApiCollection.php index 07f3b7d529..21c4d9d7a1 100644 --- a/ProcessMaker/Http/Resources/ApiCollection.php +++ b/ProcessMaker/Http/Resources/ApiCollection.php @@ -62,10 +62,10 @@ public function __construct($resource, $total = null) /** * Generic collection to add sorting and filtering metadata. * - * @param \Illuminate\Http\Request $request + * @param Request $request * @return array */ - public function toArray($request) + public function toArray($request): array { UserResourceView::addToResourceCollection($this->collection, $request->user()); @@ -92,7 +92,7 @@ public function toArray($request) /** * Create an HTTP response that represents the object. * - * @param \Illuminate\Http\Request $request + * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function toResponse($request) @@ -109,9 +109,9 @@ public function toResponse($request) /** * Convert a Collection to a LengthAwarePaginator * - * @param \Illuminate\Support\Collection $collection - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Pagination\LengthAwarePaginator + * @param Collection $collection + * @param Request $request + * @return LengthAwarePaginator */ public function collectionToPaginator(Collection $collection, Request $request) { diff --git a/ProcessMaker/Http/Resources/ApiResource.php b/ProcessMaker/Http/Resources/ApiResource.php index d7f0c14251..6698489505 100644 --- a/ProcessMaker/Http/Resources/ApiResource.php +++ b/ProcessMaker/Http/Resources/ApiResource.php @@ -14,7 +14,7 @@ class ApiResource extends JsonResource */ public static $wrap = null; - public function toArray($request) + public function toArray($request): array { return parent::toArray($request); } diff --git a/ProcessMaker/Http/Resources/Task.php b/ProcessMaker/Http/Resources/Task.php index cde9101604..7772a2f9f7 100644 --- a/ProcessMaker/Http/Resources/Task.php +++ b/ProcessMaker/Http/Resources/Task.php @@ -131,7 +131,7 @@ private function addActiveAssignedUsers(array $users, array $assignedUsers) ->whereNotIn('status', Process::NOT_ASSIGNABLE_USER_STATUS) ->whereIn('id', $chunk) ->pluck('id')->toArray(); - $assignedUsers = array_merge($assignedUsers,$activeUsers); + $assignedUsers = array_merge($assignedUsers, $activeUsers); } return $assignedUsers; diff --git a/ProcessMaker/Jobs/BoundaryEvent.php b/ProcessMaker/Jobs/BoundaryEvent.php index d5a56a7f0c..c42276a306 100644 --- a/ProcessMaker/Jobs/BoundaryEvent.php +++ b/ProcessMaker/Jobs/BoundaryEvent.php @@ -42,7 +42,7 @@ public function __construct(Definitions $definitions, ExecutionInstanceInterface * * @param TokenInterface $token * @param CatchEventInterface $element - * @return \ProcessMaker\Nayra\Contracts\Engine\ExecutionInstanceInterface + * @return ExecutionInstanceInterface */ public function action(BpmnDocumentInterface $definitions, TokenInterface $token = null) { diff --git a/ProcessMaker/Jobs/CatchEvent.php b/ProcessMaker/Jobs/CatchEvent.php index bd0aefd676..961580bbfc 100644 --- a/ProcessMaker/Jobs/CatchEvent.php +++ b/ProcessMaker/Jobs/CatchEvent.php @@ -37,7 +37,7 @@ public function __construct(Definitions $definitions, ExecutionInstanceInterface * * @param TokenInterface $token * @param CatchEventInterface $element - * @return \ProcessMaker\Nayra\Contracts\Engine\ExecutionInstanceInterface + * @return ExecutionInstanceInterface */ public function action(TokenInterface $token, CatchEventInterface $element) { diff --git a/ProcessMaker/Jobs/CatchSignalEventInRequest.php b/ProcessMaker/Jobs/CatchSignalEventInRequest.php index ca8c0c4f0b..f177113ee3 100644 --- a/ProcessMaker/Jobs/CatchSignalEventInRequest.php +++ b/ProcessMaker/Jobs/CatchSignalEventInRequest.php @@ -27,7 +27,7 @@ class CatchSignalEventInRequest extends BpmnAction implements ShouldQueue /** * Create a new job instance. * - * @param \ProcessMaker\Models\ProcessRequest $instance + * @param ProcessRequest $instance * @param array $data * @param string $signalRef */ diff --git a/ProcessMaker/Jobs/ExecuteScript.php b/ProcessMaker/Jobs/ExecuteScript.php index f82147a07c..e57eb6427f 100644 --- a/ProcessMaker/Jobs/ExecuteScript.php +++ b/ProcessMaker/Jobs/ExecuteScript.php @@ -115,6 +115,7 @@ public function handleNayraDocker() ]); $result = curl_exec($ch); curl_close($ch); + return $result; } diff --git a/ProcessMaker/Jobs/ImportProcess.php b/ProcessMaker/Jobs/ImportProcess.php index 51ca215d7c..7a49114e62 100644 --- a/ProcessMaker/Jobs/ImportProcess.php +++ b/ProcessMaker/Jobs/ImportProcess.php @@ -518,6 +518,7 @@ protected function saveScreen($screen) return $new; } catch (\Exception $e) { Log::error('Import Screen: ' . $e->getMessage()); + return false; } } diff --git a/ProcessMaker/Jobs/RunNayraScriptTask.php b/ProcessMaker/Jobs/RunNayraScriptTask.php index ceea72f896..bc4fec29a5 100644 --- a/ProcessMaker/Jobs/RunNayraScriptTask.php +++ b/ProcessMaker/Jobs/RunNayraScriptTask.php @@ -36,7 +36,7 @@ class RunNayraScriptTask implements ShouldQueue /** * Create a new job instance. * - * @param \ProcessMaker\Models\ProcessRequestToken $token + * @param ProcessRequestToken $token * @param array $data */ public function __construct(TokenInterface $token) diff --git a/ProcessMaker/Jobs/RunNayraServiceTask.php b/ProcessMaker/Jobs/RunNayraServiceTask.php index 5cd7583234..b1f7d15bb5 100644 --- a/ProcessMaker/Jobs/RunNayraServiceTask.php +++ b/ProcessMaker/Jobs/RunNayraServiceTask.php @@ -25,7 +25,7 @@ class RunNayraServiceTask implements ShouldQueue /** * Create a new job instance. * - * @param \ProcessMaker\Models\ProcessRequestToken $token + * @param ProcessRequestToken $token * @param array $data */ public function __construct(TokenInterface $token) diff --git a/ProcessMaker/Jobs/RunServiceTask.php b/ProcessMaker/Jobs/RunServiceTask.php index 76ce0c9746..22281ce800 100644 --- a/ProcessMaker/Jobs/RunServiceTask.php +++ b/ProcessMaker/Jobs/RunServiceTask.php @@ -36,9 +36,9 @@ class RunServiceTask extends BpmnAction implements ShouldQueue /** * Create a new job instance. * - * @param \ProcessMaker\Models\Process $definitions - * @param \ProcessMaker\Models\ProcessRequest $instance - * @param \ProcessMaker\Models\ProcessRequestToken $token + * @param Definitions $definitions + * @param ProcessRequest $instance + * @param ProcessRequestToken $token * @param array $data */ public function __construct(Definitions $definitions, ProcessRequest $instance, ProcessRequestToken $token, array $data, $attemptNum = 1) diff --git a/ProcessMaker/Jobs/SmartInboxExistingTasks.php b/ProcessMaker/Jobs/SmartInboxExistingTasks.php index 371596b7f4..6f50d306ed 100644 --- a/ProcessMaker/Jobs/SmartInboxExistingTasks.php +++ b/ProcessMaker/Jobs/SmartInboxExistingTasks.php @@ -2,22 +2,23 @@ namespace ProcessMaker\Jobs; +use Facades\ProcessMaker\InboxRules\ApplyAction; +use Facades\ProcessMaker\InboxRules\MatchingTasks; +use Facades\ProcessMaker\Models\InboxRule; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldBeUnique; use Illuminate\Contracts\Queue\ShouldQueue; +use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; -use Facades\ProcessMaker\InboxRules\MatchingTasks; -use Facades\ProcessMaker\InboxRules\ApplyAction; -use Facades\ProcessMaker\Models\InboxRule; -use Illuminate\Database\Eloquent\ModelNotFoundException; class SmartInboxExistingTasks implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; public int $inboxRuleId; + /** * Create a new job instance. */ diff --git a/ProcessMaker/JsonColumnIndex.php b/ProcessMaker/JsonColumnIndex.php index bcdae6e57d..a7322dfe10 100644 --- a/ProcessMaker/JsonColumnIndex.php +++ b/ProcessMaker/JsonColumnIndex.php @@ -23,6 +23,7 @@ public function add(string $table, string $column, string $path) if (!config('database.enable_index_json_columns')) { Log::warning('Indexing JSON columns is disabled. The following index was not created: ' . $sql); + return false; } diff --git a/ProcessMaker/Listeners/HandleActivityCompletedRedirect.php b/ProcessMaker/Listeners/HandleActivityCompletedRedirect.php index 95c9cd253f..91ad7e2a57 100644 --- a/ProcessMaker/Listeners/HandleActivityCompletedRedirect.php +++ b/ProcessMaker/Listeners/HandleActivityCompletedRedirect.php @@ -6,7 +6,6 @@ class HandleActivityCompletedRedirect extends HandleRedirectListener { - /** * Handle the event. */ diff --git a/ProcessMaker/Logging/CreateTestLogger.php b/ProcessMaker/Logging/CreateTestLogger.php index b73409d56d..3ddce5a3c7 100644 --- a/ProcessMaker/Logging/CreateTestLogger.php +++ b/ProcessMaker/Logging/CreateTestLogger.php @@ -11,7 +11,7 @@ class CreateTestLogger * Create a custom Monolog instance. * * @param array $config - * @return \Monolog\Logger + * @return Logger */ public function __invoke(array $config) { diff --git a/ProcessMaker/Models/Bookmark.php b/ProcessMaker/Models/Bookmark.php index 597a9bad2d..8a036c0a67 100644 --- a/ProcessMaker/Models/Bookmark.php +++ b/ProcessMaker/Models/Bookmark.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\HasMany; use ProcessMaker\Models\ProcessMakerModel; use ProcessMaker\Models\User; @@ -32,7 +33,7 @@ public static function rules(): array ]; } - public function users() + public function users(): HasMany { return $this->hasMany(User::class, 'id'); } diff --git a/ProcessMaker/Models/Bundle.php b/ProcessMaker/Models/Bundle.php index a62545e499..7bb8147832 100644 --- a/ProcessMaker/Models/Bundle.php +++ b/ProcessMaker/Models/Bundle.php @@ -2,7 +2,10 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Facades\Http; use ProcessMaker\Exception\ExporterNotSupported; use ProcessMaker\Exception\ValidationException; @@ -24,12 +27,16 @@ class Bundle extends ProcessMakerModel implements HasMedia protected $appends = ['asset_count']; - protected $casts = [ - 'published' => 'boolean', - 'webhook_token' => 'encrypted', - ]; + protected function casts(): array + { + return [ + 'published' => 'boolean', + 'webhook_token' => 'encrypted', + ]; + } - public function scopePublished($query) + #[Scope] + protected function published($query) { return $query->where('published', true); } @@ -44,22 +51,22 @@ public function editable() : bool return $this->dev_link_id === null; } - public function assets() + public function assets(): HasMany { return $this->hasMany(BundleAsset::class); } - public function settings() + public function settings(): HasMany { return $this->hasMany(BundleSetting::class); } - public function instances() + public function instances(): HasMany { return $this->hasMany(BundleInstance::class); } - public function devLink() + public function devLink(): BelongsTo { return $this->belongsTo(DevLink::class, 'dev_link_id'); } diff --git a/ProcessMaker/Models/BundleAsset.php b/ProcessMaker/Models/BundleAsset.php index d0af2d536b..4b8cb3c420 100644 --- a/ProcessMaker/Models/BundleAsset.php +++ b/ProcessMaker/Models/BundleAsset.php @@ -3,6 +3,8 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\MorphTo; use ProcessMaker\Enums\ExporterMap; class BundleAsset extends ProcessMakerModel @@ -28,12 +30,12 @@ public static function canExport(ProcessMakerModel $asset) return method_exists($asset, 'export') && ExporterMap::getExporterClassForModel($asset); } - public function bundle() + public function bundle(): BelongsTo { return $this->belongsTo(Bundle::class); } - public function asset() + public function asset(): MorphTo { return $this->morphTo(); } diff --git a/ProcessMaker/Models/BundleInstance.php b/ProcessMaker/Models/BundleInstance.php index b5b438bc47..c63d508ce7 100644 --- a/ProcessMaker/Models/BundleInstance.php +++ b/ProcessMaker/Models/BundleInstance.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Models\ProcessMakerModel; class BundleInstance extends ProcessMakerModel @@ -14,7 +15,7 @@ class BundleInstance extends ProcessMakerModel 'instance_url', ]; - public function bundle() + public function bundle(): BelongsTo { return $this->belongsTo(Bundle::class); } diff --git a/ProcessMaker/Models/BundleSetting.php b/ProcessMaker/Models/BundleSetting.php index 316ee37bb4..16cd8ec3a0 100644 --- a/ProcessMaker/Models/BundleSetting.php +++ b/ProcessMaker/Models/BundleSetting.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Enums\ExporterMap; use ProcessMaker\ImportExport\Exporter; use ProcessMaker\ImportExport\Exporters\GroupExporter; @@ -27,11 +28,14 @@ class BundleSetting extends ProcessMakerModel 'config', ]; - protected $casts = [ - 'config' => 'array', - ]; + protected function casts(): array + { + return [ + 'config' => 'array', + ]; + } - public function bundle() + public function bundle(): BelongsTo { return $this->belongsTo(Bundle::class); } diff --git a/ProcessMaker/Models/CaseParticipated.php b/ProcessMaker/Models/CaseParticipated.php index 88304a6a68..fabb0011f2 100644 --- a/ProcessMaker/Models/CaseParticipated.php +++ b/ProcessMaker/Models/CaseParticipated.php @@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Casts\AsCollection; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Models\ProcessMakerModel; use ProcessMaker\Traits\HandlesValueAliasStatus; @@ -35,20 +36,23 @@ class CaseParticipated extends ProcessMakerModel 'progress', ]; - protected $casts = [ - 'processes' => AsCollection::class, - 'requests' => AsCollection::class, - 'request_tokens' => AsCollection::class, - 'tasks' => AsCollection::class, - 'participants' => AsCollection::class, - 'completed_at' => 'datetime:c', - 'initiated_at' => 'datetime:c', - ]; - protected $attributes = [ 'keywords' => '', ]; + protected function casts(): array + { + return [ + 'processes' => AsCollection::class, + 'requests' => AsCollection::class, + 'request_tokens' => AsCollection::class, + 'tasks' => AsCollection::class, + 'participants' => AsCollection::class, + 'completed_at' => 'datetime:c', + 'initiated_at' => 'datetime:c', + ]; + } + protected static function newFactory(): Factory { return CaseParticipatedFactory::new(); @@ -57,7 +61,7 @@ protected static function newFactory(): Factory /** * Get the user that owns the case. */ - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class); } diff --git a/ProcessMaker/Models/CaseStarted.php b/ProcessMaker/Models/CaseStarted.php index 060e33f591..d0d8ff13b7 100644 --- a/ProcessMaker/Models/CaseStarted.php +++ b/ProcessMaker/Models/CaseStarted.php @@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Casts\AsCollection; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Models\ProcessMakerModel; use ProcessMaker\Traits\HandlesValueAliasStatus; @@ -35,15 +36,18 @@ class CaseStarted extends ProcessMakerModel 'progress', ]; - protected $casts = [ - 'processes' => AsCollection::class, - 'requests' => AsCollection::class, - 'request_tokens' => AsCollection::class, - 'tasks' => AsCollection::class, - 'participants' => AsCollection::class, - 'completed_at' => 'datetime:c', - 'initiated_at' => 'datetime:c', - ]; + protected function casts(): array + { + return [ + 'processes' => AsCollection::class, + 'requests' => AsCollection::class, + 'request_tokens' => AsCollection::class, + 'tasks' => AsCollection::class, + 'participants' => AsCollection::class, + 'completed_at' => 'datetime:c', + 'initiated_at' => 'datetime:c', + ]; + } protected static function newFactory(): Factory { @@ -53,7 +57,7 @@ protected static function newFactory(): Factory /** * Get the user that owns the case. */ - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class); } diff --git a/ProcessMaker/Models/CategoryAssignment.php b/ProcessMaker/Models/CategoryAssignment.php index 3e24d826d0..4c51a1dfad 100644 --- a/ProcessMaker/Models/CategoryAssignment.php +++ b/ProcessMaker/Models/CategoryAssignment.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Database\Eloquent\Relations\Pivot; class CategoryAssignment extends Pivot @@ -34,12 +35,12 @@ public static function boot() }); } - public function assignable() + public function assignable(): MorphTo { return $this->morphTo('assignable'); } - public function category() + public function category(): MorphTo { return $this->morphTo('category'); } diff --git a/ProcessMaker/Models/Clipboard.php b/ProcessMaker/Models/Clipboard.php index b39ee2b13d..c66578fef4 100644 --- a/ProcessMaker/Models/Clipboard.php +++ b/ProcessMaker/Models/Clipboard.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Models\ProcessMakerModel; class Clipboard extends ProcessMakerModel @@ -27,15 +28,18 @@ class Clipboard extends ProcessMakerModel ]; /** - * The attributes that should be cast to native types. + * Get the attributes that should be cast. * - * @var array + * @return array */ - protected $casts = [ - 'config' => 'array', - ]; + protected function casts(): array + { + return [ + 'config' => 'array', + ]; + } - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class); } diff --git a/ProcessMaker/Models/Comment.php b/ProcessMaker/Models/Comment.php index e67b754630..ec624a2307 100644 --- a/ProcessMaker/Models/Comment.php +++ b/ProcessMaker/Models/Comment.php @@ -2,6 +2,11 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; +use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\HasOne; +use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Database\Eloquent\SoftDeletes; use ProcessMaker\Traits\SerializeToIso8601; use ProcessMaker\Traits\SqlsrvSupportTrait; @@ -62,10 +67,13 @@ class Comment extends ProcessMakerModel 'case_number', ]; - protected $casts = [ - 'up' => 'array', - 'down' => 'array', - ]; + protected function casts(): array + { + return [ + 'up' => 'array', + 'down' => 'array', + ]; + } public static function rules() { @@ -88,7 +96,8 @@ public static function rules() * * @return mixed */ - public function scopeHidden($query, $parameter) + #[Scope] + protected function hidden($query, $parameter) { switch ($parameter) { case 'visible': @@ -104,17 +113,17 @@ public function scopeHidden($query, $parameter) } /** - * @return \Illuminate\Database\Eloquent\Relations\MorphTo + * @return MorphTo */ - public function commentable() + public function commentable(): MorphTo { return $this->morphTo(null, null, 'commentable_id'); } /** - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + * @return BelongsTo */ - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class); } @@ -122,7 +131,7 @@ public function user() /** * Children comments with user */ - public function children() + public function children(): HasMany { return $this->hasMany(self::class, 'commentable_id', 'id') ->where('commentable_type', self::class) @@ -132,7 +141,7 @@ public function children() /** * Replied message. */ - public function repliedMessage() + public function repliedMessage(): HasOne { return $this->hasOne(self::class, 'id', 'parent_id') ->with('user'); diff --git a/ProcessMaker/Models/DevLink.php b/ProcessMaker/Models/DevLink.php index e7ad53939d..df8f5d51b2 100644 --- a/ProcessMaker/Models/DevLink.php +++ b/ProcessMaker/Models/DevLink.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Facades\Http; use Illuminate\Support\Str; use ProcessMaker\ImportExport\Importer; @@ -28,12 +29,6 @@ class DevLink extends ProcessMakerModel protected $appends = ['redirect_uri']; - protected $casts = [ - 'client_secret' => 'encrypted', - 'access_token' => 'encrypted', - 'refresh_token' => 'encrypted', - ]; - public static function boot() { parent::boot(); @@ -45,6 +40,15 @@ public static function boot() }); } + protected function casts(): array + { + return [ + 'client_secret' => 'encrypted', + 'access_token' => 'encrypted', + 'refresh_token' => 'encrypted', + ]; + } + public function getRedirectUriAttribute() { return route('devlink.index'); @@ -210,7 +214,7 @@ public function installRemoteAsset(string $class, int $id, string $updateType, L return $model; } - public function bundles() + public function bundles(): HasMany { return $this->hasMany(Bundle::class); } diff --git a/ProcessMaker/Models/Embed.php b/ProcessMaker/Models/Embed.php index 8a69e92821..5cec2b9b35 100644 --- a/ProcessMaker/Models/Embed.php +++ b/ProcessMaker/Models/Embed.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\HasMany; use ProcessMaker\Models\ProcessMakerModel; use ProcessMaker\Traits\Exportable; use ProcessMaker\Traits\HasUuids; @@ -51,7 +52,7 @@ public static function rules(): array ]; } - public function process() + public function process(): HasMany { return $this->hasMany(Process::class, 'id'); } diff --git a/ProcessMaker/Models/Group.php b/ProcessMaker/Models/Group.php index 6d7948debe..e6328314c9 100644 --- a/ProcessMaker/Models/Group.php +++ b/ProcessMaker/Models/Group.php @@ -2,6 +2,11 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; +use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\MorphMany; +use Illuminate\Database\Eloquent\Relations\MorphToMany; use Illuminate\Validation\Rule; use ProcessMaker\Models\EmptyModel; use ProcessMaker\Query\Traits\PMQL; @@ -53,9 +58,12 @@ class Group extends ProcessMakerModel 'enabled_2fa', ]; - protected $casts = [ - 'enabled_2fa' => 'boolean', - ]; + protected function casts(): array + { + return [ + 'enabled_2fa' => 'boolean', + ]; + } public static function rules($existing = null) { @@ -67,22 +75,22 @@ public static function rules($existing = null) ]; } - public function permissions() + public function permissions(): MorphToMany { return $this->morphToMany('ProcessMaker\Models\Permission', 'assignable'); } - public function processesFromProcessable() + public function processesFromProcessable(): MorphToMany { return $this->morphToMany('ProcessMaker\Models\Process', 'processable'); } - public function groupMembersFromMemberable() + public function groupMembersFromMemberable(): MorphMany { return $this->morphMany(GroupMember::class, 'member', null, 'member_id'); } - public function groupMembers() + public function groupMembers(): HasMany { return $this->hasMany(GroupMember::class); } @@ -97,14 +105,14 @@ public function getUsersAttribute() /** * Manager of the group. * - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + * @return BelongsTo */ - public function manager() + public function manager(): BelongsTo { return $this->belongsTo(User::class, 'manager_id'); } - public function projectMembers() + public function projectMembers(): HasMany { if (class_exists('ProcessMaker\Package\Projects\Models\ProjectMember')) { return $this->hasMany('ProcessMaker\Package\Projects\Models\ProjectMember', 'member_id', 'id')->where('member_type', self::class); @@ -142,7 +150,8 @@ public function getRecursiveUsersAttribute(self $parent = null) * * @var Builder */ - public function scopeActive($query) + #[Scope] + protected function active($query) { return $query->where('status', 'ACTIVE'); } @@ -150,9 +159,9 @@ public function scopeActive($query) /** * Group as assigned. * - * @return \Illuminate\Database\Eloquent\Relations\MorphMany + * @return MorphMany */ - public function assigned() + public function assigned(): MorphMany { return $this->morphMany(ProcessTaskAssignment::class, 'assigned', 'assignment_type', 'assignment_id'); } diff --git a/ProcessMaker/Models/GroupMember.php b/ProcessMaker/Models/GroupMember.php index 8303513aca..050dba4130 100644 --- a/ProcessMaker/Models/GroupMember.php +++ b/ProcessMaker/Models/GroupMember.php @@ -2,6 +2,8 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\MorphTo; use ProcessMaker\Observers\GroupMemberObserver; /** @@ -118,12 +120,12 @@ public static function rules() ]; } - public function member() + public function member(): MorphTo { return $this->morphTo(null, null, 'member_id'); } - public function group() + public function group(): BelongsTo { return $this->belongsTo(Group::class); } diff --git a/ProcessMaker/Models/InboxRule.php b/ProcessMaker/Models/InboxRule.php index 59107b38f9..9bc721f3b5 100644 --- a/ProcessMaker/Models/InboxRule.php +++ b/ProcessMaker/Models/InboxRule.php @@ -15,18 +15,21 @@ class InboxRule extends ProcessMakerModel protected $table = 'inbox_rules'; - protected $casts = [ - 'data' => 'array', - 'submit_button' => 'array', - 'end_date' => 'datetime', - 'active' => 'boolean', - 'mark_as_priority' => 'boolean', - 'make_draft' => 'boolean', - 'submit_data' => 'boolean', - ]; - protected $guarded = ['id', 'created_at', 'updated_at']; + protected function casts(): array + { + return [ + 'data' => 'array', + 'submit_button' => 'array', + 'end_date' => 'datetime', + 'active' => 'boolean', + 'mark_as_priority' => 'boolean', + 'make_draft' => 'boolean', + 'submit_data' => 'boolean', + ]; + } + /** * Delete the saved search when deleting an inbox rule * diff --git a/ProcessMaker/Models/InboxRuleLog.php b/ProcessMaker/Models/InboxRuleLog.php index 1a68e36308..707e10891b 100644 --- a/ProcessMaker/Models/InboxRuleLog.php +++ b/ProcessMaker/Models/InboxRuleLog.php @@ -13,9 +13,12 @@ class InboxRuleLog extends ProcessMakerModel protected $guarded = []; - protected $casts = [ - 'inbox_rule_attributes' => 'array', - ]; + protected function casts(): array + { + return [ + 'inbox_rule_attributes' => 'array', + ]; + } public function task(): BelongsTo { diff --git a/ProcessMaker/Models/MediaLog.php b/ProcessMaker/Models/MediaLog.php index 6a24403930..24ec1decc5 100644 --- a/ProcessMaker/Models/MediaLog.php +++ b/ProcessMaker/Models/MediaLog.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Models\ProcessMakerModel; class MediaLog extends ProcessMakerModel @@ -21,12 +22,12 @@ class MediaLog extends ProcessMakerModel 'event_type', ]; - public function media() + public function media(): BelongsTo { return $this->belongsTo(Media::class, 'media_id'); } - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id'); } diff --git a/ProcessMaker/Models/MediaPathGenerator.php b/ProcessMaker/Models/MediaPathGenerator.php index 732b4b1f25..15ea3e97b2 100644 --- a/ProcessMaker/Models/MediaPathGenerator.php +++ b/ProcessMaker/Models/MediaPathGenerator.php @@ -1,4 +1,5 @@ morphedByMany('ProcessMaker\Models\User', 'assignable'); } - public function groups() + public function groups(): MorphToMany { return $this->morphedByMany('ProcessMaker\Models\Group', 'assignable'); } @@ -139,7 +140,7 @@ public static function getUsersByGroup(array $groups) ->on('assignables.assignable_id', '=', 'users.id'); }) ->select('users.*') - ->union(\ProcessMaker\Models\User::where('is_administrator', '=', true)) + ->union(User::where('is_administrator', '=', true)) ->groupBy('users.id') ->get(); diff --git a/ProcessMaker/Models/Process.php b/ProcessMaker/Models/Process.php index fd27d18af9..7bbe6ff773 100644 --- a/ProcessMaker/Models/Process.php +++ b/ProcessMaker/Models/Process.php @@ -4,7 +4,12 @@ use DOMElement; use Exception; +use Illuminate\Database\Eloquent\Attributes\ObservedBy; +use Illuminate\Database\Eloquent\Attributes\Scope; +use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Auth; @@ -31,6 +36,7 @@ use ProcessMaker\Nayra\Contracts\Storage\BpmnDocumentInterface; use ProcessMaker\Nayra\Managers\WorkflowManagerDefault; use ProcessMaker\Nayra\Storage\BpmnDocument; +use ProcessMaker\Observers\ProcessObserver; use ProcessMaker\Package\WebEntry\Models\WebentryRoute; use ProcessMaker\Rules\BPMNValidation; use ProcessMaker\Traits\Exportable; @@ -143,6 +149,7 @@ * @OA\Property(property="edit_data", type="object"), * ) */ +#[ObservedBy([Observers\ProcessObserver::class])] class Process extends ProcessMakerModel implements HasMedia, ProcessModelInterface { use InteractsWithMedia; @@ -234,16 +241,6 @@ class Process extends ProcessMakerModel implements HasMedia, ProcessModelInterfa 'projects', ]; - protected $casts = [ - 'start_events' => 'array', - 'warnings' => 'array', - 'self_service_tasks' => 'array', - 'signal_events' => 'array', - 'conditional_events' => 'array', - 'properties' => 'array', - 'stages' => 'array', - ]; - public static function boot() { parent::boot(); @@ -260,12 +257,25 @@ public static function boot() }); } + protected function casts(): array + { + return [ + 'start_events' => 'array', + 'warnings' => 'array', + 'self_service_tasks' => 'array', + 'signal_events' => 'array', + 'conditional_events' => 'array', + 'properties' => 'array', + 'stages' => 'array', + ]; + } + /** * Category of the process. * * @return BelongsTo */ - public function category() + public function category(): BelongsTo { return $this->belongsTo(ProcessCategory::class, 'process_category_id')->withDefault(); } @@ -273,7 +283,7 @@ public function category() /** * Get the associated projects */ - public function projects() + public function projects(): BelongsToMany { if (!class_exists('ProcessMaker\Package\Projects\Models\Project')) { // return an empty collection @@ -290,7 +300,7 @@ public function projects() } // Define the relationship with the ProjectAsset model - public function projectAssets() + public function projectAssets(): BelongsToMany { return $this->belongsToMany('ProcessMaker\Package\Projects\Models\ProjectAsset', 'project_assets', 'asset_id', 'project_id') @@ -298,7 +308,7 @@ public function projectAssets() ->wherePivot('asset_type', static::class)->withTimestamps(); } - public function projectAsset() + public function projectAsset(): BelongsToMany { return $this->belongsToMany('ProcessMaker\Package\Projects\Models\ProjectAsset', 'project_assets', @@ -310,7 +320,7 @@ public function projectAsset() /** * Returns a single record from the `Alternative` model */ - public function alternativeInfo() + public function alternativeInfo(): HasOne { return $this->hasOne('ProcessMaker\Package\PackageABTesting\Models\Alternative', 'process_id', 'id'); } @@ -320,7 +330,7 @@ public function alternativeInfo() * * @return HasMany */ - public function notification_settings() + public function notification_settings(): HasMany { return $this->hasMany(ProcessNotificationSetting::class); } @@ -328,7 +338,7 @@ public function notification_settings() /** * Get the associated embed */ - public function embed() + public function embed(): HasMany { return $this->hasMany(Embed::class, 'model_id', 'id'); } @@ -401,7 +411,7 @@ public function getTaskNotificationsAttribute() * * @return BelongsTo */ - public function cancelScreen() + public function cancelScreen(): BelongsTo { return $this->belongsTo(Screen::class, 'cancel_screen_id'); } @@ -431,7 +441,7 @@ public static function rules($existing = null) /** * Get the creator/author of this process. */ - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id'); } @@ -439,7 +449,7 @@ public function user() /** * Get the last user that updated the process */ - public function updatedByUser() + public function updatedByUser(): BelongsTo { return $this->belongsTo(User::class, 'updated_by'); } @@ -473,7 +483,8 @@ public function groupsCanStart($node = null) /** * Scope a query to include only active and inactive but not archived processes */ - public function scopeNotArchived($query) + #[Scope] + protected function notArchived($query) { return $query->whereIn('processes.status', ['ACTIVE', 'INACTIVE']); } @@ -481,7 +492,8 @@ public function scopeNotArchived($query) /** * Scope a query to include only active processes */ - public function scopeActive($query) + #[Scope] + protected function active($query) { return $query->where('processes.status', 'ACTIVE'); } @@ -489,7 +501,8 @@ public function scopeActive($query) /** * Scope a query to include only inactive processes */ - public function scopeInactive($query) + #[Scope] + protected function inactive($query) { return $query->where('processes.status', 'INACTIVE'); } @@ -497,7 +510,8 @@ public function scopeInactive($query) /** * Scope a query to include only archived processes */ - public function scopeArchived($query) + #[Scope] + protected function archived($query) { return $query->where('processes.status', 'ARCHIVED'); } @@ -505,7 +519,8 @@ public function scopeArchived($query) /** * Scope a query to include a specific category */ - public function scopeProcessCategory($query, int $id) + #[Scope] + protected function processCategory($query, int $id) { return $query->whereHas('categories', function ($query) use ($id) { $query->where('process_categories.id', $id); @@ -516,7 +531,8 @@ public function scopeProcessCategory($query, int $id) * Scope a query to include a specific category * @param string $status */ - public function scopeCategoryStatus($query, $status) + #[Scope] + protected function categoryStatus($query, $status) { if (!empty($status)) { return $query->whereHas('categories', function ($query) use ($status) { @@ -570,7 +586,7 @@ public static function getProcessTemplate($name) * * @return BelongsTo */ - public function requests() + public function requests(): HasMany { return $this->hasMany(ProcessRequest::class); } @@ -580,7 +596,7 @@ public function requests() * * @return BelongsTo */ - public function collaborations() + public function collaborations(): HasMany { return $this->hasMany(ProcessCollaboration::class); } @@ -1396,7 +1412,7 @@ public function events() /** * Get the associated versions */ - public function versions() + public function versions(): HasMany { return $this->hasMany(ProcessVersion::class); } @@ -1404,7 +1420,7 @@ public function versions() /** * Get the associated webEntryRoute */ - public function webentryRoute() + public function webentryRoute(): HasOne { return $this->hasOne(WebentryRoute::class); } @@ -1412,7 +1428,7 @@ public function webentryRoute() /** * Get the associated launchpad */ - public function launchpad() + public function launchpad(): HasOne { return $this->hasOne(ProcessLaunchpad::class, 'process_id', 'id'); } @@ -1422,7 +1438,7 @@ public function launchpad() * * @return HasMany */ - public function assignments() + public function assignments(): HasMany { return $this->hasMany(ProcessTaskAssignment::class); } @@ -1876,7 +1892,8 @@ public function valueAliasCategory($value, $expression) * * @param $filter string */ - public function scopeFilter($query, $filterStr) + #[Scope] + protected function filter($query, $filterStr) { $filter = '%' . mb_strtolower($filterStr) . '%'; $query->where(function ($query) use ($filter, $filterStr) { @@ -1905,7 +1922,7 @@ public function scopeFilter($query, $filterStr) /** * Define the "belongsTo" relationship between the Process model and the PmBlock model. */ - public function pmBlock() + public function pmBlock(): BelongsTo { return $this->belongsTo('ProcessMaker\Package\PackagePmBlocks\Models\PmBlock', 'id', 'editing_process_id'); } @@ -2159,7 +2176,8 @@ public static function formatMetrics(self $process, $format = 'student'): array return $metrics; } - public function scopeOrderByRecentRequests($query) + #[Scope] + protected function orderByRecentRequests($query) { return $query->orderByDesc( ProcessRequest::select('id') diff --git a/ProcessMaker/Models/ProcessCategory.php b/ProcessMaker/Models/ProcessCategory.php index 693b407b0b..2f34016c47 100644 --- a/ProcessMaker/Models/ProcessCategory.php +++ b/ProcessMaker/Models/ProcessCategory.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Relations\MorphToMany; use Illuminate\Validation\Rule; use ProcessMaker\Models\Process; use ProcessMaker\Traits\Exportable; @@ -64,7 +65,7 @@ public static function rules($existing = null) * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ - public function processes() + public function processes(): MorphToMany { return $this->morphedByMany(Process::class, 'assignable', 'category_assignments', 'category_id'); } diff --git a/ProcessMaker/Models/ProcessCollaboration.php b/ProcessMaker/Models/ProcessCollaboration.php index bfd893c405..df7a927097 100644 --- a/ProcessMaker/Models/ProcessCollaboration.php +++ b/ProcessMaker/Models/ProcessCollaboration.php @@ -2,6 +2,9 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\ObservedBy; +use Illuminate\Database\Eloquent\Relations\HasMany; +use ProcessMaker\Observers\ProcessCollaborationObserver; use ProcessMaker\Traits\HasUuids; /** @@ -12,6 +15,7 @@ * @property \Carbon\Carbon $updated_at * @property \Carbon\Carbon $created_at */ +#[ObservedBy([Observers\ProcessCollaborationObserver::class])] class ProcessCollaboration extends ProcessMakerModel { use HasUuids; @@ -51,7 +55,7 @@ class ProcessCollaboration extends ProcessMakerModel /** * Get requests in the collaboration. */ - public function requests() + public function requests(): HasMany { return $this->hasMany(ProcessRequest::class); } diff --git a/ProcessMaker/Models/ProcessEvents.php b/ProcessMaker/Models/ProcessEvents.php index bb4fc2ea95..87a2335491 100644 --- a/ProcessMaker/Models/ProcessEvents.php +++ b/ProcessMaker/Models/ProcessEvents.php @@ -62,7 +62,7 @@ public function initRelation(array $models, $relation) * Match the eagerly loaded results to their parents. * * @param Process[] $models - * @param \Illuminate\Database\Eloquent\Collection $results + * @param Collection $results * @param string $relation * @return array */ diff --git a/ProcessMaker/Models/ProcessLaunchpad.php b/ProcessMaker/Models/ProcessLaunchpad.php index 3f9fda1d5f..9492ddab69 100644 --- a/ProcessMaker/Models/ProcessLaunchpad.php +++ b/ProcessMaker/Models/ProcessLaunchpad.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Traits\Exportable; use ProcessMaker\Traits\HasUuids; @@ -48,12 +49,12 @@ public static function rules(): array ]; } - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id'); } - public function process() + public function process(): BelongsTo { return $this->belongsTo(Process::class, 'process_id'); } diff --git a/ProcessMaker/Models/ProcessMakerModel.php b/ProcessMaker/Models/ProcessMakerModel.php index 1fb77d2728..11640b56af 100644 --- a/ProcessMaker/Models/ProcessMakerModel.php +++ b/ProcessMaker/Models/ProcessMakerModel.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use DateTimeInterface; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Arr; @@ -28,7 +29,8 @@ protected function serializeDate(DateTimeInterface $date) return $date->format('Y-m-d H:i:s'); } - public function scopeExclude($query, array $columns) + #[Scope] + protected function exclude($query, array $columns) { if (empty($columns)) { return $query; diff --git a/ProcessMaker/Models/ProcessPermission.php b/ProcessMaker/Models/ProcessPermission.php index 28d72aa8a2..a81e2f96a1 100644 --- a/ProcessMaker/Models/ProcessPermission.php +++ b/ProcessMaker/Models/ProcessPermission.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Relations\MorphTo; use ProcessMaker\Traits\SerializeToIso8601; /** @@ -43,7 +44,7 @@ class ProcessPermission extends ProcessMakerModel 'assignable_type', ]; - public function assignable() + public function assignable(): MorphTo { return $this->morphTo(null, null, 'assignable_id'); } diff --git a/ProcessMaker/Models/ProcessRequest.php b/ProcessMaker/Models/ProcessRequest.php index 57509fe823..a22a555671 100644 --- a/ProcessMaker/Models/ProcessRequest.php +++ b/ProcessMaker/Models/ProcessRequest.php @@ -4,6 +4,12 @@ use Carbon\Carbon; use DB; +use Illuminate\Database\Eloquent\Attributes\ObservedBy; +use Illuminate\Database\Eloquent\Attributes\Scope; +use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\HasManyThrough; +use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Storage; use Illuminate\Validation\Rule; @@ -21,6 +27,7 @@ use ProcessMaker\Nayra\Contracts\Bpmn\TokenInterface; use ProcessMaker\Nayra\Contracts\Engine\ExecutionInstanceInterface; use ProcessMaker\Nayra\Engine\ExecutionInstanceTrait; +use ProcessMaker\Observers\ProcessRequestObserver; use ProcessMaker\Query\Expression; use ProcessMaker\Repositories\BpmnDocument; use ProcessMaker\Traits\ExtendedPMQL; @@ -95,6 +102,7 @@ * }, * ) */ +#[ObservedBy([Observers\ProcessRequestObserver::class])] class ProcessRequest extends ProcessMakerModel implements ExecutionInstanceInterface, HasMedia { use ExecutionInstanceTrait; @@ -142,21 +150,6 @@ class ProcessRequest extends ProcessMakerModel implements ExecutionInstanceInter 'user_id', ]; - /** - * The attributes that should be cast to native types. - * - * @var array - */ - protected $casts = [ - 'completed_at' => 'datetime:c', - 'initiated_at' => 'datetime:c', - 'data' => 'array', - 'errors' => 'array', - 'do_not_sanitize' => 'array', - 'signal_events' => 'array', - 'locked_at' => 'datetime:c', - ]; - /** * Associated records that can be included with this model * @@ -168,6 +161,24 @@ class ProcessRequest extends ProcessMakerModel implements ExecutionInstanceInter 'participants', ]; + /** + * Get the attributes that should be cast. + * + * @return array + */ + protected function casts(): array + { + return [ + 'completed_at' => 'datetime:c', + 'initiated_at' => 'datetime:c', + 'data' => 'array', + 'errors' => 'array', + 'do_not_sanitize' => 'array', + 'signal_events' => 'array', + 'locked_at' => 'datetime:c', + ]; + } + /** * Determine whether the item should be indexed. * @@ -397,7 +408,7 @@ public function getScreensRequested() /** * Get tokens of the request. */ - public function tokens() + public function tokens(): HasMany { return $this->hasMany(ProcessRequestToken::class); } @@ -405,7 +416,7 @@ public function tokens() /** * Get the creator/author of this request. */ - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id'); } @@ -413,7 +424,7 @@ public function user() /** * Get collaboration of this request. */ - public function collaboration() + public function collaboration(): BelongsTo { return $this->belongsTo( ProcessCollaboration::class, @@ -424,7 +435,7 @@ public function collaboration() /** * Get the creator/author of this request. */ - public function process() + public function process(): BelongsTo { return $this->belongsTo(Process::class, 'process_id'); } @@ -432,7 +443,7 @@ public function process() /** * Get users of the request. */ - public function assigned() + public function assigned(): HasMany { return $this->hasMany(ProcessRequestToken::class) ->with('user') @@ -446,7 +457,8 @@ public function assigned() * * @param $filter string */ - public function scopeFilter($query, $filter) + #[Scope] + protected function filter($query, $filter) { $setting = Setting::byKey('indexed-search'); if ($setting && $setting->config['enabled'] === true) { @@ -479,7 +491,8 @@ public function scopeFilter($query, $filter) * * @param $id User id */ - public function scopeStartedMe($query, $id) + #[Scope] + protected function startedMe($query, $id) { $query->where('user_id', '=', $id); } @@ -489,7 +502,8 @@ public function scopeStartedMe($query, $id) * * @param $query */ - public function scopeInProgress($query) + #[Scope] + protected function inProgress($query) { $query->where('status', '=', 'ACTIVE'); } @@ -499,7 +513,8 @@ public function scopeInProgress($query) * * @param $query */ - public function scopeCompleted($query) + #[Scope] + protected function completed($query) { $query->where(function ($query) { $query->where('status', '=', 'COMPLETED'); @@ -511,7 +526,8 @@ public function scopeCompleted($query) * * @param $query */ - public function scopeNotCompleted($query) + #[Scope] + protected function notCompleted($query) { $query->where('status', '!=', 'COMPLETED'); $query->where('status', '!=', 'CANCELED'); @@ -520,9 +536,9 @@ public function scopeNotCompleted($query) /** * Returns the list of users that have participated in the request * - * @return \Illuminate\Database\Eloquent\Relations\HasManyThrough + * @return HasManyThrough */ - public function participants() + public function participants(): HasManyThrough { return $this->hasManyThrough( User::class, @@ -594,12 +610,12 @@ public function logError(Throwable $exception, FlowElementInterface $element = n } } - public function childRequests() + public function childRequests(): HasMany { return $this->hasMany(self::class, 'parent_request_id'); } - public function parentRequest() + public function parentRequest(): BelongsTo { return $this->belongsTo(self::class, 'parent_request_id'); } @@ -607,9 +623,9 @@ public function parentRequest() /** * Scheduled task of the request. * - * @return \Illuminate\Database\Eloquent\Relations\HasMany + * @return HasMany */ - public function scheduledTasks() + public function scheduledTasks(): HasMany { return $this->hasMany(ScheduledTask::class, 'process_request_id'); } @@ -795,7 +811,7 @@ public function valueAliasAlternative(string $value, Expression | stdClass $expr * * @return ProcessVersion */ - public function processVersion() + public function processVersion(): BelongsTo { return $this->belongsTo(ProcessVersion::class, 'process_version_id'); } @@ -926,9 +942,9 @@ public function notifyProcessUpdated($eventName, TokenInterface $token = null) /** * Owner task of the sub process * - * @return \Illuminate\Database\Eloquent\Relations\HasOne + * @return HasOne */ - public function ownerTask() + public function ownerTask(): HasOne { return $this->hasOne(ProcessRequestToken::class, 'subprocess_request_id', 'id'); } @@ -1106,7 +1122,8 @@ public function getElementDestination(): ?array /** * Scope apply order */ - public function scopeApplyOrdering($query, $request) + #[Scope] + protected function applyOrdering($query, $request) { $orderBy = $request->input('order_by', 'name'); $orderDirection = $request->input('order_direction', 'asc'); @@ -1117,7 +1134,8 @@ public function scopeApplyOrdering($query, $request) /** * Scope apply pagination */ - public function scopeApplyPagination($query, $request) + #[Scope] + protected function applyPagination($query, $request) { $page = $request->input('page', 1); $perPage = $request->input('per_page', 10); @@ -1128,7 +1146,8 @@ public function scopeApplyPagination($query, $request) /** * Scope to filter by case_number */ - public function scopeFilterByCaseNumber($query, $request) + #[Scope] + protected function filterByCaseNumber($query, $request) { $caseNumber = $request->input('case_number'); diff --git a/ProcessMaker/Models/ProcessRequestLock.php b/ProcessMaker/Models/ProcessRequestLock.php index dda4f0a1e7..42c8996c2c 100644 --- a/ProcessMaker/Models/ProcessRequestLock.php +++ b/ProcessMaker/Models/ProcessRequestLock.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use ProcessMaker\Traits\SqlsrvSupportTrait; /** @@ -31,10 +32,13 @@ class ProcessRequestLock extends ProcessMakerModel 'due_at', ]; - protected $casts = [ - 'due_at' => 'datetime', - 'request_ids' => 'array', - ]; + protected function casts(): array + { + return [ + 'due_at' => 'datetime', + 'request_ids' => 'array', + ]; + } /** * Active block that did not overcome. @@ -42,7 +46,8 @@ class ProcessRequestLock extends ProcessMakerModel * @param \Illuminate\Database\Eloquent\Builder $query * @return \Illuminate\Database\Eloquent\Builder */ - public function scopeWhereNotDue($query) + #[Scope] + protected function whereNotDue($query) { return $query->where(function ($query) { return $query->whereNull('due_at') diff --git a/ProcessMaker/Models/ProcessRequestToken.php b/ProcessMaker/Models/ProcessRequestToken.php index 06b9251607..8bce0b3ced 100644 --- a/ProcessMaker/Models/ProcessRequestToken.php +++ b/ProcessMaker/Models/ProcessRequestToken.php @@ -7,6 +7,11 @@ use DOMXPath; use Exception; use Illuminate\Auth\Access\AuthorizationException; +use Illuminate\Database\Eloquent\Attributes\ObservedBy; +use Illuminate\Database\Eloquent\Attributes\Scope; +use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Notification; @@ -25,6 +30,7 @@ use ProcessMaker\Nayra\Storage\BpmnDocument; use ProcessMaker\Notifications\ActivityActivatedNotification; use ProcessMaker\Notifications\TaskReassignmentNotification; +use ProcessMaker\Observers\ProcessRequestTokenObserver; use ProcessMaker\Query\Expression; use ProcessMaker\Traits\ExtendedPMQL; use ProcessMaker\Traits\HasUuids; @@ -89,6 +95,7 @@ * * @method ProcessRequest getInstance() */ +#[ObservedBy([Observers\ProcessRequestTokenObserver::class])] class ProcessRequestToken extends ProcessMakerModel implements TokenInterface { use ExtendedPMQL; @@ -146,24 +153,27 @@ class ProcessRequestToken extends ProcessMakerModel implements TokenInterface ]; /** - * The attributes that should be cast to native types. + * Get the attributes that should be cast. * - * @var array + * @return array */ - protected $casts = [ - 'completed_at' => 'datetime', - 'due_at' => 'datetime', - 'initiated_at' => 'datetime', - 'riskchanges_at' => 'datetime', - 'data' => 'array', - 'self_service_groups' => 'array', - 'token_properties' => 'array', - 'is_priority' => 'boolean', - 'is_actionbyemail' => 'boolean', - 'created_at_ms' => MillisecondsToDateCast::class, - 'completed_at_ms' => MillisecondsToDateCast::class, - 'is_emailsent' => 'boolean', - ]; + protected function casts(): array + { + return [ + 'completed_at' => 'datetime', + 'due_at' => 'datetime', + 'initiated_at' => 'datetime', + 'riskchanges_at' => 'datetime', + 'data' => 'array', + 'self_service_groups' => 'array', + 'token_properties' => 'array', + 'is_priority' => 'boolean', + 'is_actionbyemail' => 'boolean', + 'created_at_ms' => MillisecondsToDateCast::class, + 'completed_at_ms' => MillisecondsToDateCast::class, + 'is_emailsent' => 'boolean', + ]; + } /** * Get the indexable data array for the model. @@ -267,7 +277,7 @@ public function getNotifiableUserIds($notifiableType) /** * Get the process to which this version points to. */ - public function process() + public function process(): BelongsTo { return $this->belongsTo(Process::class, 'process_id'); } @@ -275,7 +285,7 @@ public function process() /** * Get the request of the token. */ - public function processRequest() + public function processRequest(): BelongsTo { return $this->belongsTo(ProcessRequest::class, 'process_request_id'); } @@ -283,7 +293,7 @@ public function processRequest() /** * Get the creator/author of this request. */ - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id'); } @@ -301,7 +311,8 @@ public function assignableUsers() /** * Scope to filter by case_number through the processRequest relationship */ - public function scopeFilterByCaseNumber($query, $request) + #[Scope] + protected function filterByCaseNumber($query, $request) { $caseNumber = $request->input('case_number'); @@ -313,7 +324,8 @@ public function scopeFilterByCaseNumber($query, $request) /** * Scope to filter by status */ - public function scopeFilterByStatus($query, $request) + #[Scope] + protected function filterByStatus($query, $request) { $status = $request->input('status', 'ACTIVE'); @@ -323,7 +335,8 @@ public function scopeFilterByStatus($query, $request) /** * Scope get process information */ - public function scopeGetProcess($query) + #[Scope] + protected function getProcess($query) { return $query->with(['process' => function ($query) { $query->select('id', 'name'); @@ -333,7 +346,8 @@ public function scopeGetProcess($query) /** * Scope get user information */ - public function scopeGetUser($query) + #[Scope] + protected function getUser($query) { return $query->with(['user' => function ($query) { $query->select('id', 'firstname', 'lastname', 'username', 'avatar'); @@ -343,7 +357,8 @@ public function scopeGetUser($query) /** * Scope apply order */ - public function scopeApplyOrdering($query, $request) + #[Scope] + protected function applyOrdering($query, $request) { $orderBy = $request->input('order_by', 'due_at'); $orderDirection = $request->input('order_direction', 'asc'); @@ -354,7 +369,8 @@ public function scopeApplyOrdering($query, $request) /** * Scope apply pagination */ - public function scopeApplyPagination($query, $request) + #[Scope] + protected function applyPagination($query, $request) { $page = $request->input('page', 1); $perPage = $request->input('per_page', 10); @@ -593,14 +609,14 @@ public function authorizeAssigneeEscalateToManager() /** * Scheduled task for this token * - * @return \Illuminate\Database\Eloquent\Relations\HasMany + * @return HasMany */ - public function scheduledTasks() + public function scheduledTasks(): HasMany { return $this->hasMany(ScheduledTask::class, 'process_request_token_id'); } - public function draft() + public function draft(): HasOne { return $this->hasOne(TaskDraft::class, 'task_id'); } @@ -608,7 +624,7 @@ public function draft() /** * Get the sub-process request associated to the token. */ - public function subProcessRequest() + public function subProcessRequest(): BelongsTo { return $this->belongsTo(ProcessRequest::class, 'subprocess_request_id'); } @@ -618,7 +634,8 @@ public function subProcessRequest() * * @var Builder */ - public function scopeOverdue($query, $overdue = '') + #[Scope] + protected function overdue($query, $overdue = '') { if (!empty($overdue)) { return $query->where('due_at', '<', Carbon::now()); @@ -632,7 +649,8 @@ public function scopeOverdue($query, $overdue = '') * * @param $filter string */ - public function scopeFilter($query, $filter) + #[Scope] + protected function filter($query, $filter) { $setting = Setting::byKey('indexed-search'); if ($setting && $setting->config['enabled'] === true) { @@ -1471,7 +1489,8 @@ public function getElementDestinationAttribute(): ?array * @param mixed $userId ID of the user * @return mixed */ - public static function scopeWhereUserAssigned($query, $userId) + #[Scope] + public static function whereUserAssigned($query, $userId) { $userColumn = 'user_id'; $query->where(function ($query) use ($userColumn, $userId) { diff --git a/ProcessMaker/Models/ProcessTaskAssignment.php b/ProcessMaker/Models/ProcessTaskAssignment.php index f2b123de40..ed29318f1d 100644 --- a/ProcessMaker/Models/ProcessTaskAssignment.php +++ b/ProcessMaker/Models/ProcessTaskAssignment.php @@ -2,6 +2,8 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Relations\MorphTo; + /** * Represents a business process task assignment definition. * @@ -67,7 +69,7 @@ public static function rules() * * @return \Illuminate\Database\Eloquent\Relations\MorphOne */ - public function assigned() + public function assigned(): MorphTo { return $this->morphTo('assigned', 'assignment_type', 'assignment_id'); } diff --git a/ProcessMaker/Models/ProcessTemplates.php b/ProcessMaker/Models/ProcessTemplates.php index 11bf37e794..475c00cbda 100644 --- a/ProcessMaker/Models/ProcessTemplates.php +++ b/ProcessMaker/Models/ProcessTemplates.php @@ -2,8 +2,10 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Traits\HasCategories; use ProcessMaker\Traits\HideSystemResources; use ProcessMaker\Traits\ProcessTrait; @@ -26,7 +28,7 @@ class ProcessTemplates extends Template * * @return BelongsTo */ - public function category() + public function category(): BelongsTo { return $this->belongsTo(ProcessCategory::class, 'process_category_id')->withDefault(); } @@ -54,7 +56,8 @@ public function getProcessCategoryIdAttribute($value) /** * Apply filters to the query based on the given filter string. */ - public function scopeWithFilters(Builder $query, $filter): void + #[Scope] + protected function withFilters(Builder $query, $filter): void { $query->where(function ($query) use ($filter) { $query->where('process_templates.name', 'like', '%' . $filter . '%') diff --git a/ProcessMaker/Models/ProcessVersion.php b/ProcessMaker/Models/ProcessVersion.php index 1d5265669d..3bb983fca6 100644 --- a/ProcessMaker/Models/ProcessVersion.php +++ b/ProcessMaker/Models/ProcessVersion.php @@ -2,7 +2,9 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Contracts\ProcessModelInterface; use ProcessMaker\Traits\HasCategories; use ProcessMaker\Traits\HasSelfServiceTasks; @@ -42,16 +44,6 @@ class ProcessVersion extends ProcessMakerModel implements ProcessModelInterface 'updated_at', ]; - protected $casts = [ - 'start_events' => 'array', - 'warnings' => 'array', - 'self_service_tasks' => 'array', - 'signal_events' => 'array', - 'conditional_events' => 'array', - 'properties' => 'array', - 'stages' => 'array', - ]; - /** * The attributes that should be hidden for serialization. * @@ -73,6 +65,19 @@ protected static function boot() parent::boot(); } + protected function casts(): array + { + return [ + 'start_events' => 'array', + 'warnings' => 'array', + 'self_service_tasks' => 'array', + 'signal_events' => 'array', + 'conditional_events' => 'array', + 'properties' => 'array', + 'stages' => 'array', + ]; + } + /** * Ensures there is a matching processable for each process version * @@ -122,7 +127,7 @@ public function setProcessCategoryIdAttribute($value) * * @return Process */ - public function process() + public function process(): BelongsTo { return $this->belongsTo(Process::class); } @@ -130,9 +135,9 @@ public function process() /** * Get the associated process * - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + * @return BelongsTo */ - public function parent() + public function parent(): BelongsTo { return $this->belongsTo(Process::class, 'process_id', 'id'); } @@ -140,7 +145,8 @@ public function parent() /** * Scope to only return draft versions. */ - public function scopeDraft(Builder $query) + #[Scope] + protected function draft(Builder $query) { return $query->where('draft', true); } @@ -148,7 +154,8 @@ public function scopeDraft(Builder $query) /** * Scope to only return published versions. */ - public function scopePublished(Builder $query) + #[Scope] + protected function published(Builder $query) { return $query->where('draft', false); } diff --git a/ProcessMaker/Models/Recommendation.php b/ProcessMaker/Models/Recommendation.php index 3094177be2..0fe7c3490f 100644 --- a/ProcessMaker/Models/Recommendation.php +++ b/ProcessMaker/Models/Recommendation.php @@ -2,7 +2,9 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Relations\HasMany; use ProcessMaker\Filters\Filter; class Recommendation extends ProcessMakerModel @@ -11,13 +13,6 @@ class Recommendation extends ProcessMakerModel protected $guarded = []; - protected $casts = [ - 'min_matches' => 'integer', - 'dismiss_for_secs' => 'integer', - 'actions' => 'array', - 'advanced_filter' => 'array', - ]; - protected $attributes = [ 'status' => 'ACTIVE', 'actions' => '[]', @@ -39,12 +34,23 @@ protected static function boot(): void parent::boot(); } - public function recommendationUsers() + protected function casts(): array + { + return [ + 'min_matches' => 'integer', + 'dismiss_for_secs' => 'integer', + 'actions' => 'array', + 'advanced_filter' => 'array', + ]; + } + + public function recommendationUsers(): HasMany { return $this->hasMany(RecommendationUser::class, 'recommendation_id'); } - public function scopeActive(Builder $query): void + #[Scope] + protected function active(Builder $query): void { $query->where('status', '=', 'ACTIVE'); } diff --git a/ProcessMaker/Models/RecommendationUser.php b/ProcessMaker/Models/RecommendationUser.php index b2a96b9a9d..e5d349cc52 100644 --- a/ProcessMaker/Models/RecommendationUser.php +++ b/ProcessMaker/Models/RecommendationUser.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Support\Carbon; class RecommendationUser extends ProcessMakerModel @@ -10,17 +11,20 @@ class RecommendationUser extends ProcessMakerModel protected $guarded = []; - protected $casts = [ - 'dismissed_until' => 'datetime', - 'count' => 'integer', - ]; + protected function casts(): array + { + return [ + 'dismissed_until' => 'datetime', + 'count' => 'integer', + ]; + } - public function recommendation() + public function recommendation(): BelongsTo { return $this->belongsTo(Recommendation::class); } - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class); } diff --git a/ProcessMaker/Models/ScheduledTask.php b/ProcessMaker/Models/ScheduledTask.php index b5d3e1b481..4789d72608 100644 --- a/ProcessMaker/Models/ScheduledTask.php +++ b/ProcessMaker/Models/ScheduledTask.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Traits\SerializeToIso8601; /** @@ -25,25 +26,25 @@ public static function rules() } /** - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + * @return BelongsTo */ - public function process() + public function process(): BelongsTo { return $this->belongsTo(Process::class); } /** - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + * @return BelongsTo */ - public function processRequest() + public function processRequest(): BelongsTo { return $this->belongsTo(ProcessRequest::class); } /** - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + * @return BelongsTo */ - public function processRequestToken() + public function processRequestToken(): BelongsTo { return $this->belongsTo(ProcessRequestToken::class); } diff --git a/ProcessMaker/Models/Screen.php b/ProcessMaker/Models/Screen.php index 734af25e52..ecd92375e9 100644 --- a/ProcessMaker/Models/Screen.php +++ b/ProcessMaker/Models/Screen.php @@ -3,6 +3,10 @@ namespace ProcessMaker\Models; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Attributes\Scope; +use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\BelongsToMany; +use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Facades\DB; use Illuminate\Validation\Rule; use ProcessMaker\Assets\ScreensInScreen; @@ -85,13 +89,6 @@ class Screen extends ProcessMakerModel implements ScreenInterface, PrometheusMet */ protected $table = 'screens'; - protected $casts = [ - 'config' => 'array', - 'computed' => 'array', - 'watchers' => 'array', - 'translations' => 'array', - ]; - protected $appends = [ 'projects', ]; @@ -119,6 +116,16 @@ public static function boot() static::deleting($clearCacheCallback); } + protected function casts(): array + { + return [ + 'config' => 'array', + 'computed' => 'array', + 'watchers' => 'array', + 'translations' => 'array', + ]; + } + /** * Validation rules * @@ -141,7 +148,7 @@ public static function rules($existing = null) /** * Get the associated versions */ - public function versions() + public function versions(): HasMany { return $this->hasMany(ScreenVersion::class); } @@ -149,7 +156,7 @@ public function versions() /** * Get the associated category */ - public function category() + public function category(): BelongsTo { return $this->belongsTo(ScreenCategory::class, 'screen_category_id'); } @@ -157,7 +164,7 @@ public function category() /** * Get the associated projects */ - public function projects() + public function projects(): BelongsToMany { return $this->belongsToMany('ProcessMaker\Package\Projects\Models\Project', 'project_assets', @@ -169,7 +176,7 @@ public function projects() } // Define the relationship with the ProjectAsset model - public function projectAssets() + public function projectAssets(): BelongsToMany { return $this->belongsToMany('ProcessMaker\Package\Projects\Models\ProjectAsset', 'project_assets', 'asset_id', 'project_id') @@ -263,7 +270,8 @@ public function valueAliasFullText($value, $expression) * * @param $filter string */ - public function scopeFilter($query, $filterStr) + #[Scope] + protected function filter($query, $filterStr) { $filter = '%' . mb_strtolower($filterStr) . '%'; $query->where(function ($query) use ($filter, $filterStr) { diff --git a/ProcessMaker/Models/ScreenCategory.php b/ProcessMaker/Models/ScreenCategory.php index 9c8221944c..5ca87de254 100644 --- a/ProcessMaker/Models/ScreenCategory.php +++ b/ProcessMaker/Models/ScreenCategory.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Relations\MorphToMany; use Illuminate\Validation\Rule; use ProcessMaker\Models\Screen; use ProcessMaker\Traits\Exportable; @@ -63,7 +64,7 @@ public static function rules($existing = null) * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ - public function screens() + public function screens(): MorphToMany { return $this->morphedByMany(Screen::class, 'assignable', 'category_assignments', 'category_id'); } diff --git a/ProcessMaker/Models/ScreenTemplates.php b/ProcessMaker/Models/ScreenTemplates.php index b3d138df6f..a467cc195a 100644 --- a/ProcessMaker/Models/ScreenTemplates.php +++ b/ProcessMaker/Models/ScreenTemplates.php @@ -2,7 +2,9 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Exception\PmqlMethodException; use ProcessMaker\Traits\ExtendedPMQL; use ProcessMaker\Traits\HasCategories; @@ -33,7 +35,7 @@ class ScreenTemplates extends Template implements HasMedia * * @return BelongsTo */ - public function category() + public function category(): BelongsTo { return $this->belongsTo(ScreenCategory::class, 'screen_category_id')->withDefault(); } @@ -164,7 +166,8 @@ private function valueAliasOwner($value, $expression) * * @param $filter string */ - public function scopeFilter($query, $filterStr) + #[Scope] + protected function filter($query, $filterStr) { $filter = '%' . mb_strtolower($filterStr) . '%'; $query->where(function ($query) use ($filter) { diff --git a/ProcessMaker/Models/ScreenVersion.php b/ProcessMaker/Models/ScreenVersion.php index ead25ce27b..adfc4bf48f 100644 --- a/ProcessMaker/Models/ScreenVersion.php +++ b/ProcessMaker/Models/ScreenVersion.php @@ -2,7 +2,9 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Contracts\PrometheusMetricInterface; use ProcessMaker\Contracts\ScreenInterface; use ProcessMaker\Events\TranslationChanged; @@ -28,13 +30,6 @@ class ScreenVersion extends ProcessMakerModel implements ScreenInterface, Promet 'updated_at', ]; - protected $casts = [ - 'config' => 'array', - 'computed' => 'array', - 'watchers' => 'array', - 'translations' => 'array', - ]; - /** * Boot the model and its events */ @@ -43,6 +38,16 @@ public static function boot() parent::boot(); } + protected function casts(): array + { + return [ + 'config' => 'array', + 'computed' => 'array', + 'watchers' => 'array', + 'translations' => 'array', + ]; + } + /** * Set multiple|single categories to the screen * @@ -56,9 +61,9 @@ public function setScreenCategoryIdAttribute($value) /** * Get the associated screen * - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + * @return BelongsTo */ - public function parent() + public function parent(): BelongsTo { return $this->belongsTo(Screen::class, 'screen_id', 'id'); } @@ -66,7 +71,8 @@ public function parent() /** * Scope to only return draft versions. */ - public function scopeDraft(Builder $query) + #[Scope] + protected function draft(Builder $query) { return $query->where('draft', true); } @@ -74,7 +80,8 @@ public function scopeDraft(Builder $query) /** * Scope to only return published versions. */ - public function scopePublished(Builder $query) + #[Scope] + protected function published(Builder $query) { return $query->where('draft', false); } diff --git a/ProcessMaker/Models/Script.php b/ProcessMaker/Models/Script.php index f01c7f4492..2b79a0bee6 100644 --- a/ProcessMaker/Models/Script.php +++ b/ProcessMaker/Models/Script.php @@ -2,6 +2,10 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; +use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\BelongsToMany; +use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Validation\Rule; use ProcessMaker\Contracts\ScriptInterface; use ProcessMaker\Exception\ConfigurationException; @@ -83,12 +87,6 @@ class Script extends ProcessMakerModel implements ScriptInterface 'updated_at', ]; - protected $casts = [ - 'timeout' => 'integer', - 'retry_attempts' => 'integer', - 'retry_wait_time' => 'integer', - ]; - protected $appends = [ 'projects', ]; @@ -119,6 +117,15 @@ public static function boot() static::deleting($clearCacheCallback); } + protected function casts(): array + { + return [ + 'timeout' => 'integer', + 'retry_attempts' => 'integer', + 'retry_wait_time' => 'integer', + ]; + } + /** * Validation rules * @@ -287,7 +294,7 @@ public function getLanguageNameAttribute() /** * Get the associated versions */ - public function versions() + public function versions(): HasMany { return $this->hasMany(ScriptVersion::class); } @@ -295,7 +302,7 @@ public function versions() /** * Get the associated run_as_user */ - public function runAsUser() + public function runAsUser(): BelongsTo { return $this->belongsTo(User::class, 'run_as_user_id'); } @@ -303,7 +310,7 @@ public function runAsUser() /** * Get the associated projects */ - public function projects() + public function projects(): BelongsToMany { return $this->belongsToMany('ProcessMaker\Package\Projects\Models\Project', 'project_assets', @@ -315,7 +322,7 @@ public function projects() } // Define the relationship with the ProjectAsset model - public function projectAssets() + public function projectAssets(): BelongsToMany { return $this->belongsToMany('ProcessMaker\Package\Projects\Models\ProjectAsset', 'project_assets', 'asset_id', 'project_id') @@ -337,7 +344,7 @@ public static function defaultRunAsUser() /** * Get the associated category */ - public function category() + public function category(): BelongsTo { return $this->belongsTo(ScriptCategory::class, 'script_category_id'); } @@ -365,7 +372,7 @@ public function getScriptCategoryIdAttribute($value) /** * Get the associated executor */ - public function scriptExecutor() + public function scriptExecutor(): BelongsTo { return $this->belongsTo(ScriptExecutor::class, 'script_executor_id'); } @@ -407,7 +414,8 @@ public function valueAliasFullText($value, $expression) * * @param $filter string */ - public function scopeFilter($query, $filterStr) + #[Scope] + protected function filter($query, $filterStr) { $filter = '%' . mb_strtolower($filterStr) . '%'; $query->where(function ($query) use ($filter, $filterStr) { diff --git a/ProcessMaker/Models/ScriptCategory.php b/ProcessMaker/Models/ScriptCategory.php index d043f4c784..2857cc6bb7 100644 --- a/ProcessMaker/Models/ScriptCategory.php +++ b/ProcessMaker/Models/ScriptCategory.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Relations\MorphToMany; use Illuminate\Validation\Rule; use ProcessMaker\Models\Script; use ProcessMaker\Traits\Exportable; @@ -63,7 +64,7 @@ public static function rules($existing = null) * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ - public function scripts() + public function scripts(): MorphToMany { return $this->morphedByMany(Script::class, 'assignable', 'category_assignments', 'category_id'); } diff --git a/ProcessMaker/Models/ScriptDockerNayraTrait.php b/ProcessMaker/Models/ScriptDockerNayraTrait.php index 83c38bcc55..cc3760f6ea 100644 --- a/ProcessMaker/Models/ScriptDockerNayraTrait.php +++ b/ProcessMaker/Models/ScriptDockerNayraTrait.php @@ -11,9 +11,9 @@ use ProcessMaker\Exception\ScriptException; use ProcessMaker\Facades\Docker; use ProcessMaker\ScriptRunners\Base; -use RuntimeException; -use Psr\Container\NotFoundExceptionInterface; use Psr\Container\ContainerExceptionInterface; +use Psr\Container\NotFoundExceptionInterface; +use RuntimeException; use UnexpectedValueException; /** @@ -21,8 +21,8 @@ */ trait ScriptDockerNayraTrait { - private $schema = 'http'; + public static $nayraPort = 8080; /** @@ -76,12 +76,14 @@ public function handleNayraDocker(string $code, array $data, array $config, $tim ]); throw new ScriptException($result); } + return $result; } private function getNayraInstanceUrl() { $servers = self::getNayraAddresses(); + return $this->schema . '://' . $servers[0] . ':' . static::$nayraPort; } @@ -93,6 +95,7 @@ private function getDockerLogs($instanceName) if ($status) { return 'Error getting logs from Nayra Docker: ' . implode("\n", $logs); } + return implode("\n", $logs); } @@ -131,7 +134,6 @@ private function bringUpNayra($restart = false) if ($status) { $this->bringUpNayraContainer(); } else { - exec($docker . " stop {$instanceName}_nayra 2>&1 || true"); exec($docker . " rm {$instanceName}_nayra 2>&1 || true"); exec( @@ -204,7 +206,7 @@ private static function findNayraAddresses($docker, $instanceName, $times): bool . ($nayraDockerNetwork ? "'{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'" : "'{{ .NetworkSettings.IPAddress }}'" - ) + ) . " {$instanceName}_nayra 2>/dev/null", $output, $status @@ -215,6 +217,7 @@ private static function findNayraAddresses($docker, $instanceName, $times): bool } if ($ip) { self::setNayraAddresses([$ip]); + return true; } } @@ -278,6 +281,7 @@ public static function clearNayraAddresses() private static function isCacheArrayStore(): bool { $cacheDriver = Cache::getFacadeRoot()->getStore(); + return $cacheDriver instanceof ArrayStore; } diff --git a/ProcessMaker/Models/ScriptExecutor.php b/ProcessMaker/Models/ScriptExecutor.php index 6e5438f279..5e013184ba 100644 --- a/ProcessMaker/Models/ScriptExecutor.php +++ b/ProcessMaker/Models/ScriptExecutor.php @@ -2,7 +2,9 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\ModelNotFoundException; +use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Facades\Log; use Illuminate\Validation\Rule; use Illuminate\Validation\Rules\Enum; @@ -71,13 +73,17 @@ class ScriptExecutor extends ProcessMakerModel 'title', 'description', 'language', 'config', 'is_system', 'type', ]; - protected $casts = [ - 'type' => ScriptExecutorType::class, - ]; + protected function casts(): array + { + return [ + 'type' => ScriptExecutorType::class, + ]; + } // Lua and R are deprecated. This scope can be removed // when they are removed permanently. - public function scopeActive($query) + #[Scope] + protected function active($query) { return $query->whereNotIn('language', Script::deprecatedLanguages); } @@ -120,7 +126,7 @@ public static function initialExecutor($language) return $initialExecutor; } - public function versions() + public function versions(): HasMany { return $this->hasMany(ScriptExecutorVersion::class); } @@ -243,7 +249,7 @@ public function imageTag() return $tag; } - public function scripts() + public function scripts(): HasMany { return $this->hasMany(Script::class); } diff --git a/ProcessMaker/Models/ScriptExecutorVersion.php b/ProcessMaker/Models/ScriptExecutorVersion.php index f73aa39944..71eea2e4f8 100644 --- a/ProcessMaker/Models/ScriptExecutorVersion.php +++ b/ProcessMaker/Models/ScriptExecutorVersion.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Builder; use ProcessMaker\Enums\ScriptExecutorType; @@ -11,14 +12,18 @@ class ScriptExecutorVersion extends ProcessMakerModel 'title', 'description', 'language', 'config', 'draft', 'is_system', 'type', ]; - protected $casts = [ - 'type' => ScriptExecutorType::class, - ]; + protected function casts(): array + { + return [ + 'type' => ScriptExecutorType::class, + ]; + } /** * Scope to only return draft versions. */ - public function scopeDraft(Builder $query) + #[Scope] + protected function draft(Builder $query) { return $query->where('draft', true); } @@ -26,7 +31,8 @@ public function scopeDraft(Builder $query) /** * Scope to only return published versions. */ - public function scopePublished(Builder $query) + #[Scope] + protected function published(Builder $query) { return $query->where('draft', false); } diff --git a/ProcessMaker/Models/ScriptVersion.php b/ProcessMaker/Models/ScriptVersion.php index d6b8e9e838..d863ce5bbf 100644 --- a/ProcessMaker/Models/ScriptVersion.php +++ b/ProcessMaker/Models/ScriptVersion.php @@ -2,7 +2,9 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Contracts\ScriptInterface; use ProcessMaker\Traits\HasCategories; @@ -37,9 +39,9 @@ public function setScriptCategoryIdAttribute($value) /** * Get the associated script * - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + * @return BelongsTo */ - public function parent() + public function parent(): BelongsTo { return $this->belongsTo(Script::class, 'script_id', 'id'); } @@ -64,7 +66,8 @@ public function runScript(array $data, array $config, $tokenId = '', $timeout = /** * Scope to only return draft versions. */ - public function scopeDraft(Builder $query) + #[Scope] + protected function draft(Builder $query) { return $query->where('draft', true); } @@ -72,7 +75,8 @@ public function scopeDraft(Builder $query) /** * Scope to only return published versions. */ - public function scopePublished(Builder $query) + #[Scope] + protected function published(Builder $query) { return $query->where('draft', false); } diff --git a/ProcessMaker/Models/SecurityLog.php b/ProcessMaker/Models/SecurityLog.php index e4107ec1ae..9d4db4b678 100644 --- a/ProcessMaker/Models/SecurityLog.php +++ b/ProcessMaker/Models/SecurityLog.php @@ -2,6 +2,8 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Support\Facades\DB; use ProcessMaker\Traits\ExtendedPMQL; @@ -57,27 +59,30 @@ class SecurityLog extends ProcessMakerModel ]; /** - * The attributes that should be cast to native types. + * The attributes that should be hidden for arrays. * * @var array */ - protected $casts = [ - 'data' => 'object', - 'changes' => 'object', - 'meta' => 'object', - ]; + protected $hidden = ['changes']; /** - * The attributes that should be hidden for arrays. + * Get the attributes that should be cast. * - * @var array + * @return array */ - protected $hidden = ['changes']; + protected function casts(): array + { + return [ + 'data' => 'object', + 'changes' => 'object', + 'meta' => 'object', + ]; + } /** * Get the associated user, if any. */ - public function user() + public function user(): BelongsTo { return $this->belongsTo('ProcessMaker\Models\User'); } @@ -103,7 +108,8 @@ public function valueAliasFullText($value, $expression) * * @param $filter string */ - public function scopeFilter($query, $filter) + #[Scope] + protected function filter($query, $filter) { $filter = '%' . mb_strtolower($filter) . '%'; diff --git a/ProcessMaker/Models/Setting.php b/ProcessMaker/Models/Setting.php index 87395b44d8..bac020e350 100644 --- a/ProcessMaker/Models/Setting.php +++ b/ProcessMaker/Models/Setting.php @@ -3,6 +3,8 @@ namespace ProcessMaker\Models; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Attributes\ObservedBy; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Redis; @@ -11,6 +13,7 @@ use Log; use ProcessMaker\Cache\Settings\SettingCacheFactory; use ProcessMaker\Contracts\PrometheusMetricInterface; +use ProcessMaker\Observers\SettingObserver; use ProcessMaker\Traits\ExtendedPMQL; use ProcessMaker\Traits\SerializeToIso8601; use Spatie\MediaLibrary\HasMedia; @@ -51,6 +54,7 @@ * }, * ) */ +#[ObservedBy([Observers\SettingObserver::class])] class Setting extends ProcessMakerModel implements HasMedia, PrometheusMetricInterface { use ExtendedPMQL; @@ -110,15 +114,18 @@ class Setting extends ProcessMakerModel implements HasMedia, PrometheusMetricInt ]; /** - * The attributes that should be cast to native types. + * Get the attributes that should be cast. * - * @var array + * @return array */ - protected $casts = [ - 'hidden' => 'boolean', - 'readonly' => 'boolean', - 'ui' => 'object', - ]; + protected function casts(): array + { + return [ + 'hidden' => 'boolean', + 'readonly' => 'boolean', + 'ui' => 'object', + ]; + } /** * Validation rules @@ -194,12 +201,14 @@ public static function configByKey($key) return $setting instanceof self ? $setting->config : null; } - public function scopeHidden($query) + #[Scope] + protected function hidden($query) { return $query->where('hidden', true); } - public function scopeNotHidden($query) + #[Scope] + protected function notHidden($query) { return $query->where('hidden', false); } @@ -262,7 +271,8 @@ public function valueAliasFullText($value, $expression) * * @param $filter string */ - public function scopeFilter($query, $filter) + #[Scope] + protected function filter($query, $filter) { $filter = '%' . mb_strtolower($filter) . '%'; diff --git a/ProcessMaker/Models/SettingsMenus.php b/ProcessMaker/Models/SettingsMenus.php index f24aa2f2aa..258463eac9 100644 --- a/ProcessMaker/Models/SettingsMenus.php +++ b/ProcessMaker/Models/SettingsMenus.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\HasMany; use ProcessMaker\Models\ProcessMakerModel; use ProcessMaker\Models\Setting; @@ -67,7 +68,7 @@ public static function rules(): array ]; } - public function groups() + public function groups(): HasMany { return $this->hasMany(Setting::class, 'group_id'); } @@ -77,38 +78,38 @@ public function groups() */ public static function getId($menuName) { - return SettingsMenus::where('menu_group', $menuName)->pluck('id')->first(); + return self::where('menu_group', $menuName)->pluck('id')->first(); } public static function populateSettingMenus() { // Menu 1. Email SettingsMenus::EMAIL_GROUP_ID = 1 - SettingsMenus::firstOrCreate([ - 'menu_group' => SettingsMenus::EMAIL_MENU_GROUP + self::firstOrCreate([ + 'menu_group' => self::EMAIL_MENU_GROUP, ], [ - 'menu_group_order' => SettingsMenus::EMAIL_MENU_ORDER, - 'ui' => json_encode(["icon" => SettingsMenus::EMAIL_MENU_ICON]), + 'menu_group_order' => self::EMAIL_MENU_ORDER, + 'ui' => json_encode(['icon' => self::EMAIL_MENU_ICON]), ]); // Menu 2. Integrations SettingsMenus::INTEGRATIONS_GROUP_ID = 2 - SettingsMenus::firstOrCreate([ - 'menu_group' => SettingsMenus::INTEGRATIONS_MENU_GROUP + self::firstOrCreate([ + 'menu_group' => self::INTEGRATIONS_MENU_GROUP, ], [ - 'menu_group_order' => SettingsMenus::INTEGRATIONS_MENU_ORDER, - 'ui' => json_encode(["icon" => SettingsMenus::INTEGRATIONS_MENU_ICON]), + 'menu_group_order' => self::INTEGRATIONS_MENU_ORDER, + 'ui' => json_encode(['icon' => self::INTEGRATIONS_MENU_ICON]), ]); // Menu 3. Log-in & Auth SettingsMenus::LOG_IN_AUTH_GROUP_ID = 3 - SettingsMenus::firstOrCreate([ - 'menu_group' => SettingsMenus::LOG_IN_AUTH_MENU_GROUP + self::firstOrCreate([ + 'menu_group' => self::LOG_IN_AUTH_MENU_GROUP, ], [ - 'menu_group_order' => SettingsMenus::LOG_IN_AUTH_MENU_ORDER, - 'ui' => json_encode(["icon" => SettingsMenus::LOG_IN_AUTH_MENU_ICON]), + 'menu_group_order' => self::LOG_IN_AUTH_MENU_ORDER, + 'ui' => json_encode(['icon' => self::LOG_IN_AUTH_MENU_ICON]), ]); // Menu 4. Users Settings SettingsMenus::USER_SETTINGS_GROUP_ID = 4 - SettingsMenus::firstOrCreate([ - 'menu_group' => SettingsMenus::USER_SETTINGS_MENU_GROUP + self::firstOrCreate([ + 'menu_group' => self::USER_SETTINGS_MENU_GROUP, ], [ - 'menu_group_order' => SettingsMenus::USER_SETTINGS_MENU_ORDER, - 'ui' => json_encode(["icon" => SettingsMenus::USER_SETTINGS_MENU_ICON]), + 'menu_group_order' => self::USER_SETTINGS_MENU_ORDER, + 'ui' => json_encode(['icon' => self::USER_SETTINGS_MENU_ICON]), ]); } } diff --git a/ProcessMaker/Models/TaskDraft.php b/ProcessMaker/Models/TaskDraft.php index 2524f85ad7..9c92e5bf9e 100644 --- a/ProcessMaker/Models/TaskDraft.php +++ b/ProcessMaker/Models/TaskDraft.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Support\Arr; use ProcessMaker\Models\ProcessMakerModel; use Spatie\MediaLibrary\HasMedia; @@ -24,11 +25,14 @@ class TaskDraft extends ProcessMakerModel implements HasMedia 'data', ]; - protected $casts = [ - 'data' => 'array', - ]; + protected function casts(): array + { + return [ + 'data' => 'array', + ]; + } - public function processRequestToken() + public function processRequestToken(): BelongsTo { return $this->belongsTo(ProcessRequestToken::class, 'task_id'); } diff --git a/ProcessMaker/Models/Template.php b/ProcessMaker/Models/Template.php index 96f9069ec1..739a195479 100644 --- a/ProcessMaker/Models/Template.php +++ b/ProcessMaker/Models/Template.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Validation\Rule; @@ -106,12 +107,12 @@ public function applyTemplate(string $type, Request $request) return (new $this->types[$type][1])->applyTemplate($request); } - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id'); } - public function categories() + public function categories(): BelongsTo { $categoryClass = $this->types[$type][2]; $categoryColumn = $this->types[$type][3]; diff --git a/ProcessMaker/Models/User.php b/ProcessMaker/Models/User.php index aeec77ed1f..7fa1afb582 100644 --- a/ProcessMaker/Models/User.php +++ b/ProcessMaker/Models/User.php @@ -4,8 +4,13 @@ use Exception; use Illuminate\Container\Container; +use Illuminate\Database\Eloquent\Attributes\ObservedBy; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\MorphMany; +use Illuminate\Database\Eloquent\Relations\MorphToMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; @@ -15,6 +20,7 @@ use Laravel\Passport\HasApiTokens; use ProcessMaker\Models\EmptyModel; use ProcessMaker\Notifications\ResetPassword as ResetPasswordNotification; +use ProcessMaker\Observers\UserObserver; use ProcessMaker\Query\Traits\PMQL; use ProcessMaker\Rules\StringHasAtLeastOneUpperCaseCharacter; use ProcessMaker\Traits\Exportable; @@ -24,6 +30,7 @@ use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; +#[ObservedBy([Observers\UserObserver::class])] class User extends Authenticatable implements HasMedia { use PMQL; @@ -136,15 +143,6 @@ class User extends Authenticatable implements HasMedia 'fullname', ]; - protected $casts = [ - 'is_administrator' => 'bool', - 'meta' => 'object', - 'active_at' => 'datetime', - 'loggedin_at' => 'datetime', - 'schedule' => 'array', - 'preferences_2fa' => 'array', - ]; - /** * Register any model events * @@ -170,6 +168,18 @@ public static function boot() }); } + protected function casts(): array + { + return [ + 'is_administrator' => 'bool', + 'meta' => 'object', + 'active_at' => 'datetime', + 'loggedin_at' => 'datetime', + 'schedule' => 'array', + 'preferences_2fa' => 'array', + ]; + } + /** * Validation rules * @@ -245,7 +255,8 @@ public static function passwordRules(self $existing = null) * * @var Builder */ - public function scopeActive($query) + #[Scope] + protected function active($query) { return $query->where('status', 'ACTIVE'); } @@ -288,17 +299,17 @@ public function hasPermissionsFor(...$resources) return $filtered->values(); } - public function groupMembersFromMemberable() + public function groupMembersFromMemberable(): MorphMany { return $this->morphMany(GroupMember::class, 'member', null, 'member_id'); } - public function groups() + public function groups(): MorphToMany { return $this->morphToMany('ProcessMaker\Models\Group', 'member', 'group_members'); } - public function projectMembers() + public function projectMembers(): HasMany { if (class_exists('ProcessMaker\Package\Projects\Models\ProjectMember')) { return $this->hasMany('ProcessMaker\Package\Projects\Models\ProjectMember', 'member_id', 'id')->where('member_type', self::class); @@ -308,12 +319,12 @@ public function projectMembers() } } - public function permissions() + public function permissions(): MorphToMany { return $this->morphToMany('ProcessMaker\Models\Permission', 'assignable'); } - public function processesFromProcessable() + public function processesFromProcessable(): MorphToMany { return $this->morphToMany('ProcessMaker\Models\Process', 'processable'); } @@ -391,9 +402,9 @@ public function activeNotifications() /** * User as assigned. * - * @return \Illuminate\Database\Eloquent\Relations\MorphMany + * @return MorphMany */ - public function assigned() + public function assigned(): MorphMany { return $this->morphMany(ProcessTaskAssignment::class, 'assigned', 'assignment_type', 'assignment_id'); } @@ -498,7 +509,7 @@ public function availableSelfServiceTaskIds() * * @return User */ - public function delegationUser() + public function delegationUser(): BelongsTo { return $this->belongsTo(self::class); } @@ -508,7 +519,7 @@ public function delegationUser() * * @return User */ - public function manager() + public function manager(): BelongsTo { return $this->belongsTo(self::class); } @@ -592,7 +603,7 @@ public function refresh() return $this; } - public function activeTasks() + public function activeTasks(): HasMany { return $this->hasMany(ProcessRequestToken::class, 'user_id') ->where('status', 'ACTIVE') diff --git a/ProcessMaker/Models/UserConfiguration.php b/ProcessMaker/Models/UserConfiguration.php index d060858695..3a06ef9716 100644 --- a/ProcessMaker/Models/UserConfiguration.php +++ b/ProcessMaker/Models/UserConfiguration.php @@ -2,7 +2,9 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Traits\Exportable; use ProcessMaker\Traits\HasUuids; @@ -42,7 +44,7 @@ public static function rules(): array ]; } - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id'); } @@ -50,7 +52,8 @@ public function user() /** * Get the launchpad related */ - public function scopeUserConfiguration($query, $userId) + #[Scope] + protected function userConfiguration($query, $userId) { return $query->where('user_id', $userId); } diff --git a/ProcessMaker/Models/UserResourceView.php b/ProcessMaker/Models/UserResourceView.php index 42ab1ce8ac..847f60879a 100644 --- a/ProcessMaker/Models/UserResourceView.php +++ b/ProcessMaker/Models/UserResourceView.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Support\Collection; use ProcessMaker\Models\ProcessMakerModel; @@ -16,7 +17,7 @@ class UserResourceView extends ProcessMakerModel 'viewable_type', ]; - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class); } diff --git a/ProcessMaker/Models/UserSession.php b/ProcessMaker/Models/UserSession.php index dd1dc5c8d7..8e4c26ec2e 100644 --- a/ProcessMaker/Models/UserSession.php +++ b/ProcessMaker/Models/UserSession.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Models\ProcessMakerModel; class UserSession extends ProcessMakerModel @@ -21,12 +22,15 @@ class UserSession extends ProcessMakerModel 'expired_date', ]; - protected $casts = [ - 'is_active' => 'boolean', - 'expired_date' => 'datetime', - ]; + protected function casts(): array + { + return [ + 'is_active' => 'boolean', + 'expired_date' => 'datetime', + ]; + } - public function user() + public function user(): BelongsTo { return $this->belongsTo(User::class); } diff --git a/ProcessMaker/Models/WizardTemplate.php b/ProcessMaker/Models/WizardTemplate.php index 0e09ff546e..97d0a4e1f4 100644 --- a/ProcessMaker/Models/WizardTemplate.php +++ b/ProcessMaker/Models/WizardTemplate.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Support\Facades\File; @@ -56,7 +57,8 @@ public function process_template(): BelongsTo * * @param $filter string */ - public function scopeFilter($query, $filterStr) + #[Scope] + protected function filter($query, $filterStr) { $filter = '%' . mb_strtolower($filterStr) . '%'; $query->where(function ($query) use ($filter) { diff --git a/ProcessMaker/Multitenancy/Tenant.php b/ProcessMaker/Multitenancy/Tenant.php index 4b2b9f091a..67a06b28f7 100644 --- a/ProcessMaker/Multitenancy/Tenant.php +++ b/ProcessMaker/Multitenancy/Tenant.php @@ -15,10 +15,13 @@ class Tenant extends SpatieTenant // Non-persistent public $originalValues = null; - protected $casts = [ - 'config' => 'array', - 'password' => 'encrypted', - ]; + protected function casts(): array + { + return [ + 'config' => 'array', + 'password' => 'encrypted', + ]; + } public static function setBootstrappedTenant(Application $app, ?array $tenantData) { diff --git a/ProcessMaker/Nayra/Services/FixBpmnSchemaService.php b/ProcessMaker/Nayra/Services/FixBpmnSchemaService.php index 4c3cf3ffff..46d5ae14eb 100644 --- a/ProcessMaker/Nayra/Services/FixBpmnSchemaService.php +++ b/ProcessMaker/Nayra/Services/FixBpmnSchemaService.php @@ -13,7 +13,7 @@ class FixBpmnSchemaService * * @param string $bpmn * @return string - * @throws \Exception + * @throws Exception */ public static function fix(string $bpmn): string { @@ -47,7 +47,7 @@ public static function fix(string $bpmn): string $taskNodes = $xpath->query('//*[local-name()="task"]'); foreach ($taskNodes as $task) { - $taskId = $task->getAttribute("id"); + $taskId = $task->getAttribute('id'); $taskPrefix = !empty($task->prefix) ? "$task->prefix:" : ''; $taskNS = $task->namespaceURI; @@ -72,22 +72,22 @@ public static function fix(string $bpmn): string // Create ioSpecification and children $ioSpec = $document->createElementNS($taskNS, "{$taskPrefix}ioSpecification"); $ioSpecId = "{$taskId}_inner_" . round(microtime(true) * 1000); - $ioSpec->setAttribute("id", $ioSpecId); + $ioSpec->setAttribute('id', $ioSpecId); $dataInputId = "data_input_{$sourceId}"; $dataInput = $document->createElementNS($taskNS, "{$taskPrefix}dataInput"); - $dataInput->setAttribute("id", $dataInputId); - $dataInput->setAttribute("name", "Template for protocol"); + $dataInput->setAttribute('id', $dataInputId); + $dataInput->setAttribute('name', 'Template for protocol'); $ioSpec->appendChild($dataInput); $inputSet = $document->createElementNS($taskNS, "{$taskPrefix}inputSet"); - $inputSet->setAttribute("id", "{$taskId}_inner_" . (round(microtime(true) * 1000) + 2)); + $inputSet->setAttribute('id', "{$taskId}_inner_" . (round(microtime(true) * 1000) + 2)); $dataInputRefs = $document->createElementNS($taskNS, "{$taskPrefix}dataInputRefs", $dataInputId); $inputSet->appendChild($dataInputRefs); $ioSpec->appendChild($inputSet); $outputSet = $document->createElementNS($taskNS, "{$taskPrefix}outputSet"); - $outputSet->setAttribute("id", "{$taskId}_inner_" . (round(microtime(true) * 1000) + 3)); + $outputSet->setAttribute('id', "{$taskId}_inner_" . (round(microtime(true) * 1000) + 3)); $ioSpec->appendChild($outputSet); $task->insertBefore($ioSpec, $dataInputAssociation); @@ -99,7 +99,7 @@ public static function fix(string $bpmn): string // Add BPMNEdge to BPMNDiagram $diagramNodes = $xpath->query('//*[local-name() = "BPMNDiagram"]'); if ($diagramNodes->length === 0) { - throw new Exception("No BPMNDiagram node found in the BPMN file."); + throw new Exception('No BPMNDiagram node found in the BPMN file.'); } $bpmnDiagram = $diagramNodes->item(0); $diagramPrefix = $bpmnDiagram->prefix; @@ -107,23 +107,23 @@ public static function fix(string $bpmn): string $bpmnPlaneNodes = $xpath->query('.//*[local-name() = "BPMNPlane"]', $bpmnDiagram); if ($bpmnPlaneNodes->length === 0) { - throw new Exception("No BPMNPlane found inside BPMNDiagram."); + throw new Exception('No BPMNPlane found inside BPMNDiagram.'); } $bpmnPlane = $bpmnPlaneNodes->item(0); - $edgeId = 'BPMNEdge_' . $dataInputAssociation->getAttribute("id"); + $edgeId = 'BPMNEdge_' . $dataInputAssociation->getAttribute('id'); $bpmnEdge = $document->createElementNS($diagramNS, "{$diagramPrefix}:BPMNEdge"); - $bpmnEdge->setAttribute("id", $edgeId); - $bpmnEdge->setAttribute("bpmnElement", $dataInputAssociation->getAttribute("id")); + $bpmnEdge->setAttribute('id', $edgeId); + $bpmnEdge->setAttribute('bpmnElement', $dataInputAssociation->getAttribute('id')); $diNS = 'http://www.omg.org/spec/DD/20100524/DI'; - $waypoint1 = $document->createElementNS($diNS, "di:waypoint"); - $waypoint1->setAttribute("x", "100"); - $waypoint1->setAttribute("y", "100"); + $waypoint1 = $document->createElementNS($diNS, 'di:waypoint'); + $waypoint1->setAttribute('x', '100'); + $waypoint1->setAttribute('y', '100'); - $waypoint2 = $document->createElementNS($diNS, "di:waypoint"); - $waypoint2->setAttribute("x", "200"); - $waypoint2->setAttribute("y", "200"); + $waypoint2 = $document->createElementNS($diNS, 'di:waypoint'); + $waypoint2->setAttribute('x', '200'); + $waypoint2->setAttribute('y', '200'); $bpmnEdge->appendChild($waypoint1); $bpmnEdge->appendChild($waypoint2); diff --git a/ProcessMaker/Notifications/ActivityActivatedNotification.php b/ProcessMaker/Notifications/ActivityActivatedNotification.php index 457fd8b542..051bed33ee 100644 --- a/ProcessMaker/Notifications/ActivityActivatedNotification.php +++ b/ProcessMaker/Notifications/ActivityActivatedNotification.php @@ -44,7 +44,7 @@ public function __construct(TokenInterface $token) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast', NotificationChannel::class]; } @@ -53,9 +53,9 @@ public function via($notifiable) * Get the mail representation of the notification. * * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\MailMessage + * @return MailMessage */ - public function toMail($notifiable) + public function toMail($notifiable): MailMessage { return (new MailMessage) ->line('The introduction to the notification.') @@ -80,7 +80,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { $process = Process::find($this->processUid); $definitions = $process->getDefinitions(); diff --git a/ProcessMaker/Notifications/ActivityCompletedNotification.php b/ProcessMaker/Notifications/ActivityCompletedNotification.php index 55e42de096..634b4e9418 100644 --- a/ProcessMaker/Notifications/ActivityCompletedNotification.php +++ b/ProcessMaker/Notifications/ActivityCompletedNotification.php @@ -44,7 +44,7 @@ public function __construct(TokenInterface $token) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast', NotificationChannel::class]; } @@ -53,9 +53,9 @@ public function via($notifiable) * Get the mail representation of the notification. * * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\MailMessage + * @return MailMessage */ - public function toMail($notifiable) + public function toMail($notifiable): MailMessage { return (new MailMessage) ->line('The introduction to the notification.') @@ -80,7 +80,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { $process = Process::find($this->processUid); $definitions = $process->getDefinitions(); diff --git a/ProcessMaker/Notifications/ApplyActionNotification.php b/ProcessMaker/Notifications/ApplyActionNotification.php index abfeed26ff..cc7464a589 100644 --- a/ProcessMaker/Notifications/ApplyActionNotification.php +++ b/ProcessMaker/Notifications/ApplyActionNotification.php @@ -29,7 +29,7 @@ public function __construct(public $message) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast', 'database']; } @@ -56,7 +56,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { return [ 'type' => 'MESSAGE', diff --git a/ProcessMaker/Notifications/BundleUpdatedNotification.php b/ProcessMaker/Notifications/BundleUpdatedNotification.php index 482399cf81..dd10cf7eb7 100644 --- a/ProcessMaker/Notifications/BundleUpdatedNotification.php +++ b/ProcessMaker/Notifications/BundleUpdatedNotification.php @@ -52,7 +52,7 @@ public function toMail(object $notifiable): MailMessage * * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { $bundle = Bundle::find($this->bundleUid); diff --git a/ProcessMaker/Notifications/ErrorExecutionNotification.php b/ProcessMaker/Notifications/ErrorExecutionNotification.php index b470618875..76fab5f87f 100644 --- a/ProcessMaker/Notifications/ErrorExecutionNotification.php +++ b/ProcessMaker/Notifications/ErrorExecutionNotification.php @@ -37,7 +37,7 @@ public function __construct(TokenInterface $tokenInterface, $message = '', $erro * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { $via = []; if (Arr::get($this->errorHandling, 'inapp_notification') === true) { @@ -55,9 +55,9 @@ public function via($notifiable) * Get the mail representation of the notification. * * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\MailMessage + * @return MailMessage */ - public function toMail($notifiable) + public function toMail($notifiable): MailMessage { $data = $this->toArray($notifiable); @@ -77,7 +77,7 @@ public function toMail($notifiable) * Get the broadcast representation of the notification. * * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\BroadcastMessage + * @return BroadcastMessage */ public function toBroadcast($notifiable) { @@ -101,7 +101,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { $processRequest = $this->tokenInterface->processRequest; diff --git a/ProcessMaker/Notifications/FileReadyNotification.php b/ProcessMaker/Notifications/FileReadyNotification.php index 625df4d63a..ef0af18286 100644 --- a/ProcessMaker/Notifications/FileReadyNotification.php +++ b/ProcessMaker/Notifications/FileReadyNotification.php @@ -41,7 +41,7 @@ public function __construct($url, $name, $fileType, $fileId) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast', 'database']; } @@ -63,7 +63,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { return [ 'type' => 'FILE_READY', diff --git a/ProcessMaker/Notifications/ImportReady.php b/ProcessMaker/Notifications/ImportReady.php index a408eb651f..851e36794c 100644 --- a/ProcessMaker/Notifications/ImportReady.php +++ b/ProcessMaker/Notifications/ImportReady.php @@ -41,7 +41,7 @@ public function __construct($code, array $data = []) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast', 'database']; } @@ -52,7 +52,7 @@ public function via($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { return [ 'code' => $this->code, @@ -67,7 +67,7 @@ public function toArray($notifiable) * * @param mixed $notifiable * - * @return \Illuminate\Notifications\Messages\BroadcastMessage + * @return BroadcastMessage */ public function toBroadcast($notifiable) { diff --git a/ProcessMaker/Notifications/InboxRulesNotification.php b/ProcessMaker/Notifications/InboxRulesNotification.php index f51baf6975..1195deca92 100644 --- a/ProcessMaker/Notifications/InboxRulesNotification.php +++ b/ProcessMaker/Notifications/InboxRulesNotification.php @@ -29,7 +29,7 @@ public function __construct(public $previousLoggedInAt) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast', 'database']; } @@ -56,7 +56,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { $changesSinceLogin = InboxRuleLog::changesSince($notifiable->id, $this->previousLoggedInAt); diff --git a/ProcessMaker/Notifications/ProcessCanceledNotification.php b/ProcessMaker/Notifications/ProcessCanceledNotification.php index 38fb616989..7afd3030ee 100644 --- a/ProcessMaker/Notifications/ProcessCanceledNotification.php +++ b/ProcessMaker/Notifications/ProcessCanceledNotification.php @@ -37,7 +37,7 @@ public function __construct(ExecutionInstanceInterface $instance) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast', NotificationChannel::class]; } @@ -46,9 +46,9 @@ public function via($notifiable) * Get the mail representation of the notification. * * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\MailMessage + * @return MailMessage */ - public function toMail($notifiable) + public function toMail($notifiable): MailMessage { return (new MailMessage) ->line('The introduction to the notification.') @@ -67,7 +67,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { $instance = Instance::find($this->instanceUid); diff --git a/ProcessMaker/Notifications/ProcessCompletedNotification.php b/ProcessMaker/Notifications/ProcessCompletedNotification.php index c3cc0e655b..da12f98d3c 100644 --- a/ProcessMaker/Notifications/ProcessCompletedNotification.php +++ b/ProcessMaker/Notifications/ProcessCompletedNotification.php @@ -37,7 +37,7 @@ public function __construct(ExecutionInstanceInterface $instance) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast', NotificationChannel::class]; } @@ -46,9 +46,9 @@ public function via($notifiable) * Get the mail representation of the notification. * * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\MailMessage + * @return MailMessage */ - public function toMail($notifiable) + public function toMail($notifiable): MailMessage { return (new MailMessage) ->line('The introduction to the notification.') @@ -67,7 +67,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { $instance = Instance::find($this->instanceUid); diff --git a/ProcessMaker/Notifications/ProcessCreatedNotification.php b/ProcessMaker/Notifications/ProcessCreatedNotification.php index c5cc3ccf7c..93f6c6abc0 100644 --- a/ProcessMaker/Notifications/ProcessCreatedNotification.php +++ b/ProcessMaker/Notifications/ProcessCreatedNotification.php @@ -37,7 +37,7 @@ public function __construct(ExecutionInstanceInterface $instance) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast', NotificationChannel::class]; } @@ -46,9 +46,9 @@ public function via($notifiable) * Get the mail representation of the notification. * * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\MailMessage + * @return MailMessage */ - public function toMail($notifiable) + public function toMail($notifiable): MailMessage { return (new MailMessage) ->line('The introduction to the notification.') @@ -67,7 +67,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { $instance = Instance::find($this->instanceUid); diff --git a/ProcessMaker/Notifications/ProcessTranslationReady.php b/ProcessMaker/Notifications/ProcessTranslationReady.php index 5bdb8b9b92..be66a958ef 100644 --- a/ProcessMaker/Notifications/ProcessTranslationReady.php +++ b/ProcessMaker/Notifications/ProcessTranslationReady.php @@ -34,7 +34,7 @@ public function __construct($code, $process, $targetLanguage) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast', 'database']; } @@ -45,7 +45,7 @@ public function via($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { $data = [ 'humanLanguage' => $this->targetLanguage['humanLanguage'], @@ -68,7 +68,7 @@ public function toArray($notifiable) * * @param mixed $notifiable * - * @return \Illuminate\Notifications\Messages\BroadcastMessage + * @return BroadcastMessage */ public function toBroadcast($notifiable) { diff --git a/ProcessMaker/Notifications/ResetPassword.php b/ProcessMaker/Notifications/ResetPassword.php index 4bd4a1828c..8a26b617b0 100644 --- a/ProcessMaker/Notifications/ResetPassword.php +++ b/ProcessMaker/Notifications/ResetPassword.php @@ -12,7 +12,7 @@ class ResetPassword extends LaravelResetPassword * Get the reset password notification mail message for the given URL. * * @param string $url - * @return \Illuminate\Notifications\Messages\MailMessage + * @return MailMessage */ protected function buildMailMessage($url) { diff --git a/ProcessMaker/Notifications/SassCompiledNotification.php b/ProcessMaker/Notifications/SassCompiledNotification.php index ccb747521c..0327964b72 100644 --- a/ProcessMaker/Notifications/SassCompiledNotification.php +++ b/ProcessMaker/Notifications/SassCompiledNotification.php @@ -35,7 +35,7 @@ public function __construct() * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast']; } @@ -44,9 +44,9 @@ public function via($notifiable) * Get the mail representation of the notification. * * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\MailMessage + * @return MailMessage */ - public function toMail($notifiable) + public function toMail($notifiable): MailMessage { return (new MailMessage) ->line('The introduction to the notification.') @@ -65,7 +65,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { return [ 'type' => 'SASS_COMPILE_COMPLETED', diff --git a/ProcessMaker/Notifications/ScriptResponseNotification.php b/ProcessMaker/Notifications/ScriptResponseNotification.php index 31e880da27..5b7f4554b4 100644 --- a/ProcessMaker/Notifications/ScriptResponseNotification.php +++ b/ProcessMaker/Notifications/ScriptResponseNotification.php @@ -44,7 +44,7 @@ public function __construct($status, array $response, $watcher = null, $nonce = * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast']; } @@ -55,7 +55,7 @@ public function via($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { $date = new Carbon(); $response = $this->cacheResponse($this->response); @@ -76,7 +76,7 @@ public function toArray($notifiable) * * @param mixed $notifiable * - * @return \Illuminate\Notifications\Messages\BroadcastMessage + * @return BroadcastMessage */ public function toBroadcast($notifiable) { diff --git a/ProcessMaker/Notifications/TaskOverdueNotification.php b/ProcessMaker/Notifications/TaskOverdueNotification.php index c1a62e7b24..e2816b737d 100644 --- a/ProcessMaker/Notifications/TaskOverdueNotification.php +++ b/ProcessMaker/Notifications/TaskOverdueNotification.php @@ -46,7 +46,7 @@ public function __construct(TokenInterface $token) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast', NotificationChannel::class]; } @@ -57,7 +57,7 @@ public function via($notifiable) * @param mixed $notifiable * @return MailMessage */ - public function toMail($notifiable) + public function toMail($notifiable): MailMessage { return (new MailMessage) ->line('The introduction to the notification.') @@ -82,7 +82,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { $process = Process::find($this->processUid); $definitions = $process->getDefinitions(); diff --git a/ProcessMaker/Notifications/TaskReassignmentNotification.php b/ProcessMaker/Notifications/TaskReassignmentNotification.php index c2d59867f9..71b9442e81 100644 --- a/ProcessMaker/Notifications/TaskReassignmentNotification.php +++ b/ProcessMaker/Notifications/TaskReassignmentNotification.php @@ -44,7 +44,7 @@ public function __construct(TokenInterface $token) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['broadcast', NotificationChannel::class]; } @@ -53,9 +53,9 @@ public function via($notifiable) * Get the mail representation of the notification. * * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\MailMessage + * @return MailMessage */ - public function toMail($notifiable) + public function toMail($notifiable): MailMessage { return (new MailMessage) ->line('The introduction to the notification.') @@ -80,7 +80,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { $process = Process::find($this->processUid); $definitions = $process->getDefinitions(); diff --git a/ProcessMaker/Notifications/TwoFactorAuthNotification.php b/ProcessMaker/Notifications/TwoFactorAuthNotification.php index 2b36e3953a..77e3af167e 100644 --- a/ProcessMaker/Notifications/TwoFactorAuthNotification.php +++ b/ProcessMaker/Notifications/TwoFactorAuthNotification.php @@ -19,7 +19,7 @@ class TwoFactorAuthNotification extends Notification /** * Create a new notification instance. * - * @param \ProcessMaker\Models\User $user + * @param User $user * @param string $code */ public function __construct(User $user, string $code) @@ -34,7 +34,7 @@ public function __construct(User $user, string $code) * @param mixed $notifiable * @return array */ - public function via($notifiable) + public function via($notifiable): array { return ['mail']; } @@ -43,9 +43,9 @@ public function via($notifiable) * Get the mail representation of the notification. * * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\MailMessage + * @return MailMessage */ - public function toMail($notifiable) + public function toMail($notifiable): MailMessage { return (new MailMessage) ->subject(_('Security Code')) @@ -70,7 +70,7 @@ public function toDatabase($notifiable) * @param mixed $notifiable * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { return [ 'username' => $this->user->username, diff --git a/ProcessMaker/Policies/MediaPolicy.php b/ProcessMaker/Policies/MediaPolicy.php index 627ae09835..dd7de7be7a 100644 --- a/ProcessMaker/Policies/MediaPolicy.php +++ b/ProcessMaker/Policies/MediaPolicy.php @@ -14,7 +14,7 @@ class MediaPolicy * Run before all methods to determine if the * user is an admin and can do everything. * - * @param \ProcessMaker\Models\User $user + * @param User $user * @return mixed */ public function before(User $user) @@ -27,8 +27,8 @@ public function before(User $user) /** * Determine whether the user can view the media. * - * @param \ProcessMaker\Models\User $user - * @param \ProcessMaker\Models\Media $media + * @param User $user + * @param Media $media * @return mixed */ public function view(User $user, Media $media) @@ -43,7 +43,7 @@ public function view(User $user, Media $media) /** * Determine whether the user can create media. * - * @param \ProcessMaker\Models\User $user + * @param User $user * @return mixed */ public function create(User $user) @@ -78,8 +78,8 @@ public function create(User $user) /** * Determine whether the user can update the media. * - * @param \ProcessMaker\Models\User $user - * @param \ProcessMaker\Models\Media $media + * @param User $user + * @param Media $media * @return mixed */ public function update(User $user, Media $media) @@ -94,8 +94,8 @@ public function update(User $user, Media $media) /** * Determine whether the user can delete the media. * - * @param \ProcessMaker\Models\User $user - * @param \ProcessMaker\Models\Media $media + * @param User $user + * @param Media $media * @return mixed */ public function delete(User $user, Media $media) diff --git a/ProcessMaker/Policies/ProcessRequestPolicy.php b/ProcessMaker/Policies/ProcessRequestPolicy.php index 7d42766194..43ac776666 100644 --- a/ProcessMaker/Policies/ProcessRequestPolicy.php +++ b/ProcessMaker/Policies/ProcessRequestPolicy.php @@ -14,7 +14,7 @@ class ProcessRequestPolicy * Run before all methods to determine if the * user is an admin and can do everything. * - * @param \ProcessMaker\Models\User $user + * @param User $user * @return mixed */ public function before(User $user) @@ -27,8 +27,8 @@ public function before(User $user) /** * Determine whether the user can view the process request. * - * @param \ProcessMaker\Models\User $user - * @param \ProcessMaker\Models\ProcessRequest $processRequest + * @param User $user + * @param ProcessRequest $processRequest * @return mixed */ public function view(User $user, ProcessRequest $processRequest) @@ -42,8 +42,8 @@ public function view(User $user, ProcessRequest $processRequest) /** * Determine whether the user can update the process request. * - * @param \ProcessMaker\Models\User $user - * @param \ProcessMaker\Models\ProcessRequest $processRequest + * @param User $user + * @param ProcessRequest $processRequest * @return mixed */ public function update(User $user, ProcessRequest $processRequest) @@ -60,8 +60,8 @@ public function update(User $user, ProcessRequest $processRequest) /** * Determine whether the user can update the process request. * - * @param \ProcessMaker\Models\User $user - * @param \ProcessMaker\Models\ProcessRequest $processRequest + * @param User $user + * @param ProcessRequest $processRequest * @return mixed */ public function destroy(User $user, ProcessRequest $processRequest) @@ -74,7 +74,7 @@ public function destroy(User $user, ProcessRequest $processRequest) /** * Determine whether the user can edit request data. * - * @param \ProcessMaker\Models\User $user + * @param User $user * @param \ProcessMaker\Process $process * @return bool */ @@ -94,8 +94,8 @@ public function editData(User $user, ProcessRequest $request) /** * User has access if participates in the request. * - * @param \ProcessMaker\Models\User $user - * @param \ProcessMaker\Models\ProcessRequest $processRequest + * @param User $user + * @param ProcessRequest $processRequest * * @return mixed */ diff --git a/ProcessMaker/Policies/ScreenPolicy.php b/ProcessMaker/Policies/ScreenPolicy.php index 37c24c1217..367f1acbd7 100644 --- a/ProcessMaker/Policies/ScreenPolicy.php +++ b/ProcessMaker/Policies/ScreenPolicy.php @@ -15,7 +15,7 @@ class ScreenPolicy /** * Determine whether the user can view the screen. * - * @param \ProcessMaker\Models\User $user + * @param User $user * @param \ProcessMaker\Screen $screen * @return mixed */ diff --git a/ProcessMaker/Policies/UserPolicy.php b/ProcessMaker/Policies/UserPolicy.php index d84995f07a..d3cf2785f5 100644 --- a/ProcessMaker/Policies/UserPolicy.php +++ b/ProcessMaker/Policies/UserPolicy.php @@ -13,7 +13,7 @@ class UserPolicy * Run before all methods to determine if the * user is an admin and can do everything. * - * @param \ProcessMaker\Models\User $user + * @param User $user * @return mixed */ public function before(User $user) @@ -26,8 +26,8 @@ public function before(User $user) /** * Determine whether the user can view the user. * - * @param \ProcessMaker\Models\User $user - * @param \ProcessMaker\Models\User $targetUser + * @param User $user + * @param User $targetUser * @return mixed */ public function view(User $user, User $targetUser) @@ -42,8 +42,8 @@ public function view(User $user, User $targetUser) /** * Determine whether the user can update the user. * - * @param \ProcessMaker\Models\User $user - * @param \ProcessMaker\Models\User $targetUser + * @param User $user + * @param User $targetUser * @return mixed */ public function edit(User $user, User $targetUser) @@ -58,8 +58,8 @@ public function edit(User $user, User $targetUser) /** * Determine whether the user can update the user. * - * @param \ProcessMaker\Models\User $user - * @param \ProcessMaker\Models\User $targetUser + * @param User $user + * @param User $targetUser * @return mixed */ public function destroy(User $user, User $targetUser) diff --git a/ProcessMaker/Providers/AuthServiceProvider.php b/ProcessMaker/Providers/AuthServiceProvider.php index 6f0572a392..c2d4dfc37e 100644 --- a/ProcessMaker/Providers/AuthServiceProvider.php +++ b/ProcessMaker/Providers/AuthServiceProvider.php @@ -57,7 +57,7 @@ class AuthServiceProvider extends ServiceProvider * * @return void */ - public function boot() + public function boot(): void { $this->registerPolicies(); @@ -106,7 +106,7 @@ public function defineGates() } } - public function register() + public function register(): void { Event::listen(TenantResolved::class, function ($tenant) { $this->defineGates(); diff --git a/ProcessMaker/Providers/BroadcastServiceProvider.php b/ProcessMaker/Providers/BroadcastServiceProvider.php index 233252f282..ca0b527499 100644 --- a/ProcessMaker/Providers/BroadcastServiceProvider.php +++ b/ProcessMaker/Providers/BroadcastServiceProvider.php @@ -12,7 +12,7 @@ class BroadcastServiceProvider extends ServiceProvider * * @return void */ - public function boot() + public function boot(): void { Broadcast::routes(['middleware'=>['web', 'auth:anon']]); require base_path('routes/channels.php'); diff --git a/ProcessMaker/Providers/EventServiceProvider.php b/ProcessMaker/Providers/EventServiceProvider.php index f2cc0c0832..1ed6aa3b29 100644 --- a/ProcessMaker/Providers/EventServiceProvider.php +++ b/ProcessMaker/Providers/EventServiceProvider.php @@ -129,7 +129,7 @@ class EventServiceProvider extends ServiceProvider * Register any events for your application. * @return void */ - public function boot() + public function boot(): void { parent::boot(); diff --git a/ProcessMaker/Providers/OpenAiServiceProvider.php b/ProcessMaker/Providers/OpenAiServiceProvider.php index ea41516ef2..0a93fa3182 100644 --- a/ProcessMaker/Providers/OpenAiServiceProvider.php +++ b/ProcessMaker/Providers/OpenAiServiceProvider.php @@ -11,7 +11,7 @@ class OpenAiServiceProvider extends ServiceProvider * * @return void */ - public function register() + public function register(): void { $this->app->bind(\OpenAI\Client::class, function () { return \OpenAI::client(config('services.open_ai.secret')); diff --git a/ProcessMaker/Providers/ProcessMakerServiceProvider.php b/ProcessMaker/Providers/ProcessMakerServiceProvider.php index fb43aa18ed..85f5ec7e53 100644 --- a/ProcessMaker/Providers/ProcessMakerServiceProvider.php +++ b/ProcessMaker/Providers/ProcessMakerServiceProvider.php @@ -9,26 +9,17 @@ use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; use Illuminate\Notifications\Events\BroadcastNotificationCreated; use Illuminate\Notifications\Events\NotificationSent; -use Illuminate\Queue\Events\JobAttempted; -use Illuminate\Queue\Events\JobProcessing; -use Illuminate\Queue\Events\JobRetryRequested; -use Illuminate\Queue\Listener; -use Illuminate\Support\Arr; use Illuminate\Support\Env; use Illuminate\Support\Facades; use Illuminate\Support\Facades\Artisan; -use Illuminate\Support\Facades\Context; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\URL; use Laravel\Dusk\DuskServiceProvider; use Laravel\Horizon\Horizon; -use Laravel\Horizon\SystemProcessCounter; -use Laravel\Horizon\WorkerCommandString; use Lavary\Menu\Menu; use ProcessMaker\Cache\Settings\SettingCacheManager; -use ProcessMaker\Console\Commands\HorizonListen; use ProcessMaker\Console\Migration\ExtendedMigrateCommand; use ProcessMaker\Events\ActivityAssigned; use ProcessMaker\Events\ScreenBuilderStarting; @@ -48,12 +39,10 @@ use ProcessMaker\Multitenancy\Tenant; use ProcessMaker\Observers; use ProcessMaker\PolicyExtension; -use ProcessMaker\Providers\PermissionServiceProvider; use ProcessMaker\Repositories\SettingsConfigRepository; use RuntimeException; use Spatie\Multitenancy\Events\MadeTenantCurrentEvent; use Spatie\Multitenancy\Events\TenantNotFoundForRequestEvent; -use Spatie\Multitenancy\TenantCollection; /** * Provide our ProcessMaker specific services. @@ -330,17 +319,6 @@ protected static function registerEvents(): void */ protected static function bootObservers(): void { - Models\User::observe(Observers\UserObserver::class); - - Models\Setting::observe(Observers\SettingObserver::class); - - Models\Process::observe(Observers\ProcessObserver::class); - - Models\ProcessRequest::observe(Observers\ProcessRequestObserver::class); - - Models\ProcessRequestToken::observe(Observers\ProcessRequestTokenObserver::class); - - Models\ProcessCollaboration::observe(Observers\ProcessCollaborationObserver::class); } /** diff --git a/ProcessMaker/Providers/RouteServiceProvider.php b/ProcessMaker/Providers/RouteServiceProvider.php index e12823a721..c312bfbfa2 100644 --- a/ProcessMaker/Providers/RouteServiceProvider.php +++ b/ProcessMaker/Providers/RouteServiceProvider.php @@ -24,7 +24,7 @@ class RouteServiceProvider extends ServiceProvider * * @return void */ - public function boot() + public function boot(): void { Route::pattern('user', '[0-9]+'); Route::pattern('group', '[0-9]+'); diff --git a/ProcessMaker/Providers/UpgradeServiceProvider.php b/ProcessMaker/Providers/UpgradeServiceProvider.php index 23f3e69f1d..f358e50570 100755 --- a/ProcessMaker/Providers/UpgradeServiceProvider.php +++ b/ProcessMaker/Providers/UpgradeServiceProvider.php @@ -38,7 +38,7 @@ class UpgradeServiceProvider extends ServiceProvider implements DeferrableProvid * * @return void */ - public function register() + public function register(): void { $this->registerListeners(); diff --git a/ProcessMaker/Providers/WorkflowServiceProvider.php b/ProcessMaker/Providers/WorkflowServiceProvider.php index 7bdbc78c28..c783704a2b 100644 --- a/ProcessMaker/Providers/WorkflowServiceProvider.php +++ b/ProcessMaker/Providers/WorkflowServiceProvider.php @@ -66,7 +66,7 @@ class WorkflowServiceProvider extends ServiceProvider * * @return void */ - public function register() + public function register(): void { /** * BPMN Workflow Manager diff --git a/ProcessMaker/Rules/SortBy.php b/ProcessMaker/Rules/SortBy.php index 2fb3398141..610e3b92e4 100644 --- a/ProcessMaker/Rules/SortBy.php +++ b/ProcessMaker/Rules/SortBy.php @@ -10,7 +10,7 @@ class SortBy implements ValidationRule /** * Run the validation rule. * - * @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail + * @param Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail */ public function validate(string $attribute, mixed $value, Closure $fail): void { diff --git a/ProcessMaker/Traits/HasCategories.php b/ProcessMaker/Traits/HasCategories.php index a49288f9d7..457b8fa771 100644 --- a/ProcessMaker/Traits/HasCategories.php +++ b/ProcessMaker/Traits/HasCategories.php @@ -5,12 +5,13 @@ use App\Events\Relations\Attached; use App\Events\Relations\Detached; use App\Events\Relations\Syncing; +use Illuminate\Database\Eloquent\Relations\MorphToMany; use Illuminate\Database\Eloquent\Relations\Pivot; use ProcessMaker\Models\CategoryAssignment; trait HasCategories { - public function assignable() + public function assignable(): MorphToMany { return $this->morphedByMany(CategoryAssignment::class, 'assignable'); } diff --git a/ProcessMaker/Traits/HasComments.php b/ProcessMaker/Traits/HasComments.php index e0a0969f76..cb1a37d332 100644 --- a/ProcessMaker/Traits/HasComments.php +++ b/ProcessMaker/Traits/HasComments.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Traits; +use Illuminate\Database\Eloquent\Relations\MorphMany; use ProcessMaker\Models\Comment; use ProcessMaker\Models\User; @@ -10,9 +11,9 @@ trait HasComments /** * Get all comments for the model. * - * @return \Illuminate\Database\Eloquent\Relations\MorphMany + * @return MorphMany */ - public function comments() + public function comments(): MorphMany { return $this->morphMany(Comment::class, 'commentable'); } diff --git a/ProcessMaker/Traits/ProcessTrait.php b/ProcessMaker/Traits/ProcessTrait.php index 739cba645e..330134ffc8 100644 --- a/ProcessMaker/Traits/ProcessTrait.php +++ b/ProcessMaker/Traits/ProcessTrait.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Traits; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use ProcessMaker\Models\Group; use ProcessMaker\Models\Process; use ProcessMaker\Models\ProcessVersion; @@ -120,9 +121,9 @@ public function getManagerIdAttribute() * Note: This returns the first manager from the JSON properties->manager_id array * For multiple managers, use getManagers() method instead * - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + * @return BelongsTo */ - public function manager() + public function manager(): BelongsTo { $managerIds = $this->getManagerIdAttribute(); diff --git a/ProcessMaker/Upgrades/Commands/UpgradeInstallCommand.php b/ProcessMaker/Upgrades/Commands/UpgradeInstallCommand.php index 1058babf98..405bdbc7b8 100755 --- a/ProcessMaker/Upgrades/Commands/UpgradeInstallCommand.php +++ b/ProcessMaker/Upgrades/Commands/UpgradeInstallCommand.php @@ -24,14 +24,14 @@ class UpgradeInstallCommand extends BaseCommand /** * The repository instance. * - * @var \Illuminate\Database\Migrations\MigrationRepositoryInterface + * @var MigrationRepositoryInterface */ protected $repository; /** * Create a new migration install command instance. * - * @param \Illuminate\Database\Migrations\MigrationRepositoryInterface $repository + * @param MigrationRepositoryInterface $repository * @return void */ public function __construct(MigrationRepositoryInterface $repository) diff --git a/ProcessMaker/Upgrades/Commands/UpgradeMakeCommand.php b/ProcessMaker/Upgrades/Commands/UpgradeMakeCommand.php index 5471586e81..45bbb7bf15 100644 --- a/ProcessMaker/Upgrades/Commands/UpgradeMakeCommand.php +++ b/ProcessMaker/Upgrades/Commands/UpgradeMakeCommand.php @@ -33,7 +33,7 @@ class UpgradeMakeCommand extends BaseCommand /** * The Composer instance. * - * @var \Illuminate\Support\Composer + * @var Composer */ protected $composer; @@ -41,7 +41,7 @@ class UpgradeMakeCommand extends BaseCommand * Create a new migration install command instance. * * @param \Illuminate\Database\Migrations\MigrationCreator $creator - * @param \Illuminate\Support\Composer $composer + * @param Composer $composer * @return void */ public function __construct(UpgradeCreator $creator, Composer $composer) diff --git a/ProcessMaker/Upgrades/Commands/UpgradeStatusCommand.php b/ProcessMaker/Upgrades/Commands/UpgradeStatusCommand.php index 121882cbed..c21f45e7ed 100644 --- a/ProcessMaker/Upgrades/Commands/UpgradeStatusCommand.php +++ b/ProcessMaker/Upgrades/Commands/UpgradeStatusCommand.php @@ -64,7 +64,7 @@ public function handle() * * @param array $ran * @param array $batches - * @return \Illuminate\Support\Collection + * @return Collection */ protected function getStatusFor(array $ran, array $batches) { diff --git a/ProcessMaker/Upgrades/UpgradeCreator.php b/ProcessMaker/Upgrades/UpgradeCreator.php index bad23a27b2..076e340938 100644 --- a/ProcessMaker/Upgrades/UpgradeCreator.php +++ b/ProcessMaker/Upgrades/UpgradeCreator.php @@ -17,7 +17,7 @@ class UpgradeCreator extends MigrationCreator * * @return string * - * @throws \ProcessMaker\Exception\InvalidSemanticVersion + * @throws InvalidSemanticVersion */ public function createUpgrade($name, $path) { diff --git a/ProcessMaker/Upgrades/UpgradeMigration.php b/ProcessMaker/Upgrades/UpgradeMigration.php index 9cb0efb601..eb9d707ba1 100644 --- a/ProcessMaker/Upgrades/UpgradeMigration.php +++ b/ProcessMaker/Upgrades/UpgradeMigration.php @@ -31,7 +31,7 @@ public function preflightChecks() * * @return void */ - public function up() + public function up(): void { // } @@ -41,7 +41,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { // } diff --git a/composer.json b/composer.json index 0eb53f2d41..04ac936a3f 100644 --- a/composer.json +++ b/composer.json @@ -7,14 +7,14 @@ ], "homepage": "http://processmaker.com", "license": "GAGPL-3.0-or-later", - "minimum-stability": "dev", + "minimum-stability": "stable", "prefer-stable": true, "require": { "php": "^8.3", "aws/aws-sdk-php": "3.337.3", "babenkoivan/elastic-scout-driver": "^4.0", "bacon/bacon-qr-code": "^2.0", - "codegreencreative/laravel-samlidp": "^5.2", + "codegreencreative/laravel-samlidp": "^5.3", "composer/semver": "^3.4", "darkaonline/l5-swagger": "^8.6", "doctrine/dbal": "^4.2", @@ -23,24 +23,24 @@ "guzzlehttp/guzzle": "^7.9", "igaster/laravel-theme": "^2.0", "jenssegers/agent": "^2.6", - "laravel/framework": "^11.44.1", + "laravel/framework": "^12.44", "laravel/horizon": "^5.30", - "laravel/pail": "^1.2", - "laravel/passport": "^12.3", - "laravel/scout": "^10.11", - "laravel/telescope": "^5.2", - "laravel/tinker": "^2.10", + "laravel/pail": "^1.2.2", + "laravel/passport": "^12.4", + "laravel/scout": "^10.12", + "laravel/telescope": "^5.5", + "laravel/tinker": "^2.10.1", "laravel/ui": "^4.6", "lavary/laravel-menu": "^1.8", - "lcobucci/jwt": "^4.2", + "lcobucci/jwt": "^5.1", "league/commonmark": "^2.7", "league/flysystem-aws-s3-v3": "^3.29", - "mateusjunges/laravel-kafka": "^2.4", - "mittwald/vault-php": "^2.1", + "mateusjunges/laravel-kafka": "^2.5", + "mittwald/vault-php": "^3.0", "moontoast/math": "^1.2", "mustache/mustache": "^2.14", "openai-php/client": "^0.10.3", - "openai-php/laravel": "^0.10.2", + "openai-php/laravel": "^0.11", "php-amqplib/php-amqplib": "^3.7", "php-http/promise": "~1.2.0", "pion/laravel-chunk-upload": "^1.5", @@ -61,12 +61,12 @@ "simplesoftwareio/simple-qrcode": "*", "spatie/laravel-fractal": "^6.3", "spatie/laravel-html": "^3.11", - "spatie/laravel-medialibrary": "^11.11", + "spatie/laravel-medialibrary": "^11.12", "spatie/laravel-multitenancy": "^4.0", "spomky-labs/otphp": "^11.3", "symfony/expression-language": "^7.2", "symfony/http-foundation": "^7.3", - "teamtnt/laravel-scout-tntsearch-driver": "^14.0", + "teamtnt/laravel-scout-tntsearch-driver": "^15.0", "twilio/sdk": "^8.3", "typo3/class-alias-loader": "^1.2", "whichbrowser/parser": "^2.1" @@ -79,7 +79,8 @@ "phpunit/phpunit": "^12", "spatie/laravel-ignition": "^2.9", "squizlabs/php_codesniffer": "^3.11", - "symfony/dom-crawler": "^7.2" + "symfony/dom-crawler": "^7.2", + "nunomaduro/collision": "^8.6" }, "autoload": { "files": [ @@ -213,6 +214,25 @@ "post-update-cmd": [ "@php artisan vendor:publish --tag=laravel-assets --ansi --force", "@php artisan vendor:publish --provider=\"OpenAI\\Laravel\\ServiceProvider\"" + ], + "dev": [ + "Composer\\Config::disableProcessTimeout", + "npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite --kill-others" + ], + "setup": [ + "composer install", + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"", + "@php artisan key:generate", + "@php artisan migrate --force", + "npm install", + "npm run build" + ], + "test": [ + "@php artisan config:clear --ansi", + "@php artisan test" + ], + "pre-package-uninstall": [ + "Illuminate\\Foundation\\ComposerScripts::prePackageUninstall" ] }, "repositories": [ @@ -232,4 +252,4 @@ "tbachert/spi": true } } -} \ No newline at end of file +} diff --git a/config/broadcasting.php b/config/broadcasting.php index d5a71197ce..1bf28c9d22 100644 --- a/config/broadcasting.php +++ b/config/broadcasting.php @@ -22,11 +22,11 @@ | framework when an event needs to be broadcast. You may set this to | any of the connections defined in the "connections" array below. | - | Supported: "pusher", "ably", "redis", "log", "null" + | Supported: "reverb", "pusher", "ably", "redis", "log", "null" | */ - 'default' => env('BROADCAST_DRIVER', 'null'), + 'default' => env('BROADCAST_CONNECTION', 'null'), /* |-------------------------------------------------------------------------- @@ -34,18 +34,34 @@ |-------------------------------------------------------------------------- | | Here you may define all of the broadcast connections that will be used - | to broadcast events to other systems or over websockets. Samples of + | to broadcast events to other systems or over WebSockets. Samples of | each available type of connection are provided inside this array. | */ 'connections' => [ + 'reverb' => [ + 'driver' => 'reverb', + 'key' => env('REVERB_APP_KEY'), + 'secret' => env('REVERB_APP_SECRET'), + 'app_id' => env('REVERB_APP_ID'), + 'options' => [ + 'host' => env('REVERB_HOST'), + 'port' => env('REVERB_PORT', 443), + 'scheme' => env('REVERB_SCHEME', 'https'), + 'useTLS' => env('REVERB_SCHEME', 'https') === 'https', + ], + 'client_options' => [ + // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html + ], + ], + 'pusher' => [ 'driver' => 'pusher', - 'key' => env('PUSHER_APP_KEY', 'app-key'), - 'secret' => env('PUSHER_APP_SECRET', 'app-secret'), - 'app_id' => env('PUSHER_APP_ID', 'app-id'), + 'key' => env('PUSHER_APP_KEY'), + 'secret' => env('PUSHER_APP_SECRET'), + 'app_id' => env('PUSHER_APP_ID'), 'options' => array_merge([ 'cluster' => env('PUSHER_CLUSTER', 'mt1'), 'debug' => env('PUSHER_DEBUG', false), @@ -53,6 +69,8 @@ ], $soketi_settings), 'client_options' => [ 'verify' => env('PUSHER_SSL_VERIFY', true), + + // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html ], ], diff --git a/config/cache.php b/config/cache.php index b0eb4f2696..c50f68eedd 100644 --- a/config/cache.php +++ b/config/cache.php @@ -9,13 +9,13 @@ | Default Cache Store |-------------------------------------------------------------------------- | - | This option controls the default cache connection that gets used while - | using this caching library. This connection is used when another is - | not explicitly specified when executing a given caching function. + | This option controls the default cache store that will be used by the + | framework. This connection is utilized if another isn't explicitly + | specified when running a cache operation inside the application. | */ - 'default' => env('CACHE_DRIVER', 'redis'), + 'default' => env('CACHE_STORE', 'database'), /* |-------------------------------------------------------------------------- @@ -26,13 +26,13 @@ | well as their drivers. You may even define multiple stores for the | same cache driver to group types of items stored in your caches. | - | Supported drivers: "apc", "array", "database", "file", - | "memcached", "redis", "dynamodb", "octane", "null" + | Supported drivers: "array", "database", "file", "memcached", + | "redis", "dynamodb", "octane", + | "failover", "null" | */ 'stores' => [ - 'apc' => [ 'driver' => 'apc', ], @@ -44,9 +44,10 @@ 'database' => [ 'driver' => 'database', - 'table' => 'cache', - 'connection' => null, - 'lock_connection' => null, + 'connection' => env('DB_CACHE_CONNECTION'), + 'table' => env('DB_CACHE_TABLE', 'cache'), + 'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'), + 'lock_table' => env('DB_CACHE_LOCK_TABLE'), ], 'file' => [ @@ -82,8 +83,8 @@ 'redis' => [ 'driver' => 'redis', - 'connection' => 'default', - 'lock_connection' => 'default', + 'connection' => env('REDIS_CACHE_CONNECTION', 'cache'), + 'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'), ], 'dynamodb' => [ @@ -106,6 +107,14 @@ 'prefix' => env('CACHE_SETTING_PREFIX', 'settings:'), ], + 'failover' => [ + 'driver' => 'failover', + 'stores' => [ + 'database', + 'array', + ], + ], + ], /* @@ -113,12 +122,12 @@ | Cache Key Prefix |-------------------------------------------------------------------------- | - | When utilizing the APC, database, memcached, Redis, or DynamoDB cache - | stores there might be other applications using the same cache. For + | When utilizing the APC, database, memcached, Redis, and DynamoDB cache + | stores, there might be other applications using the same cache. For | that reason, you may prefix every cache key to avoid collisions. | */ - 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_cache_'), + 'prefix' => env('CACHE_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')) . '-cache-'), ]; diff --git a/config/database.php b/config/database.php index 5f015dd528..6b0b43fd59 100644 --- a/config/database.php +++ b/config/database.php @@ -10,26 +10,22 @@ |-------------------------------------------------------------------------- | | Here you may specify which of the database connections below you wish - | to use as your default connection for all database work. Of course - | you may use many connections at once using the Database library. + | to use as your default connection for database operations. This is + | the connection which will be utilized unless another connection + | is explicitly specified when you execute a query / statement. | */ - 'default' => env('DB_CONNECTION', 'processmaker'), + 'default' => env('DB_CONNECTION', 'sqlite'), /* |-------------------------------------------------------------------------- | Database Connections |-------------------------------------------------------------------------- | - | Here are each of the database connections setup for your application. - | Of course, examples of configuring each database platform that is - | supported by Laravel is shown below to make development simple. - | - | - | All database work in Laravel is done through the PHP PDO facilities - | so make sure you have the driver for your particular database of - | choice installed on your machine before you begin development. + | Below are all of the database connections defined for your application. + | An example configuration is provided for each database system which + | is supported by Laravel. You're free to add / remove connections. | */ @@ -65,6 +61,89 @@ 'engine' => 'InnoDB', 'timezone' => env('DB_TIMEZONE'), ], + + 'sqlite' => [ + 'driver' => 'sqlite', + 'url' => env('DB_URL'), + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + 'busy_timeout' => null, + 'journal_mode' => null, + 'synchronous' => null, + 'transaction_mode' => 'DEFERRED', + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => env('DB_CHARSET', 'utf8mb4'), + 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'mariadb' => [ + 'driver' => 'mariadb', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => env('DB_CHARSET', 'utf8mb4'), + 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => env('DB_CHARSET', 'utf8'), + 'prefix' => '', + 'prefix_indexes' => true, + 'search_path' => 'public', + 'sslmode' => 'prefer', + ], + + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => env('DB_CHARSET', 'utf8'), + 'prefix' => '', + 'prefix_indexes' => true, + // 'encrypt' => env('DB_ENCRYPT', 'yes'), + // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), + ], + ], /* @@ -74,7 +153,7 @@ | | This table keeps track of all the migrations that have already run for | your application. Using this information, we can determine which of - | the migrations on disk haven't actually been run in the database. + | the migrations on disk haven't actually been run on the database. | */ @@ -91,7 +170,7 @@ | | Redis is an open source, fast, and advanced key-value store that also | provides a richer body of commands than a typical key-value system - | such as APC or Memcached. Laravel makes it easy to dig right in. + | such as Memcached. You may define your connection settings here. | */ @@ -101,7 +180,8 @@ 'options' => [ 'cluster' => env('REDIS_CLUSTER', 'redis'), - 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'), + 'prefix' => env('REDIS_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')) . '-database-'), + 'persistent' => env('REDIS_PERSISTENT', false), ], 'default' => [ @@ -111,6 +191,10 @@ 'password' => env('REDIS_PASSWORD'), 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_DB', '0'), + 'max_retries' => env('REDIS_MAX_RETRIES', 3), + 'backoff_algorithm' => env('REDIS_BACKOFF_ALGORITHM', 'decorrelated_jitter'), + 'backoff_base' => env('REDIS_BACKOFF_BASE', 100), + 'backoff_cap' => env('REDIS_BACKOFF_CAP', 1000), ], 'cache' => [ @@ -120,6 +204,10 @@ 'password' => env('REDIS_PASSWORD'), 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_CACHE_DB', '1'), + 'max_retries' => env('REDIS_MAX_RETRIES', 3), + 'backoff_algorithm' => env('REDIS_BACKOFF_ALGORITHM', 'decorrelated_jitter'), + 'backoff_base' => env('REDIS_BACKOFF_BASE', 100), + 'backoff_cap' => env('REDIS_BACKOFF_CAP', 1000), ], 'cache_settings' => [ @@ -130,6 +218,7 @@ 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_CACHE_SETTING_DB', '2'), ], + ], ]; diff --git a/config/filesystems.php b/config/filesystems.php index ba60def6ff..0b74c4533e 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -9,7 +9,7 @@ | | Here you may specify the default filesystem disk that should be used | by the framework. The "local" disk, as well as a variety of cloud - | based disks are available to your application. Just store away! + | based disks are available to your application for file storage. | */ @@ -20,20 +20,22 @@ | Filesystem Disks |-------------------------------------------------------------------------- | - | Here you may configure as many filesystem "disks" as you wish, and you - | may even configure multiple disks of the same driver. Defaults have - | been set up for each driver as an example of the required values. + | Below you may configure as many filesystem disks as necessary, and you + | may even configure multiple disks for the same driver. Examples for + | most supported storage drivers are configured here for reference. | - | Supported Drivers: "local", "ftp", "sftp", "s3" + | Supported drivers: "local", "ftp", "sftp", "s3" | */ 'disks' => [ - 'local' => [ // used throught the system + 'local' => [ 'driver' => 'local', 'root' => storage_path('app'), + 'serve' => true, 'throw' => false, + 'report' => false, ], 'imports' => [ // does not appear to be used any more @@ -56,15 +58,16 @@ 'root' => env('PROCESS_TEMPLATES_PATH') ? base_path(env('PROCESS_TEMPLATES_PATH')) : database_path('processes/templates'), ], - 'public' => [ // used throught the system + 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL') . '/storage', 'visibility' => 'public', 'throw' => false, + 'report' => false, ], - 's3' => [ // DownloadSecurityLog + 's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), @@ -74,6 +77,7 @@ 'endpoint' => env('AWS_ENDPOINT'), 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), 'throw' => false, + 'report' => false, ], 'profile' => [ @@ -126,9 +130,6 @@ 'root' => lang_path(), ], - // Others declared in packages - // - translations - package-translations - // - 'filesystems.disks.install' configured on the fly ], /* diff --git a/config/hashing.php b/config/hashing.php index bcd3be4c28..356ec108db 100644 --- a/config/hashing.php +++ b/config/hashing.php @@ -15,7 +15,7 @@ | */ - 'driver' => 'bcrypt', + 'driver' => env('HASH_DRIVER', 'bcrypt'), /* |-------------------------------------------------------------------------- @@ -29,7 +29,9 @@ */ 'bcrypt' => [ - 'rounds' => env('BCRYPT_ROUNDS', 10), + 'rounds' => env('BCRYPT_ROUNDS', 12), + 'verify' => env('HASH_VERIFY', true), + 'limit' => env('BCRYPT_LIMIT', null), ], /* @@ -44,9 +46,23 @@ */ 'argon' => [ - 'memory' => 65536, - 'threads' => 1, - 'time' => 4, + 'memory' => env('ARGON_MEMORY', 65536), + 'threads' => env('ARGON_THREADS', 1), + 'time' => env('ARGON_TIME', 4), + 'verify' => env('HASH_VERIFY', true), ], + /* + |-------------------------------------------------------------------------- + | Rehash On Login + |-------------------------------------------------------------------------- + | + | Setting this option to true will tell Laravel to automatically rehash + | the user's password during login if the configured work factor for + | the algorithm has changed, allowing graceful upgrades of hashes. + | + */ + + 'rehash_on_login' => true, + ]; diff --git a/config/kafka.php b/config/kafka.php index 5a1dfc5d86..ce97f99724 100644 --- a/config/kafka.php +++ b/config/kafka.php @@ -49,7 +49,7 @@ | Repository for batching messages together | Implement BatchRepositoryInterface to save batches in different storage */ - 'batch_repository' => env('KAFKA_BATCH_REPOSITORY', \Junges\Kafka\BatchRepositories\InMemoryBatchRepository::class), + 'batch_repository' => env('KAFKA_BATCH_REPOSITORY', Junges\Kafka\BatchRepositories\InMemoryBatchRepository::class), /* | The sleep time in milliseconds that will be used when retrying flush diff --git a/config/l5-swagger.php b/config/l5-swagger.php index 22df63a6cc..5d30b7e9b7 100644 --- a/config/l5-swagger.php +++ b/config/l5-swagger.php @@ -2,12 +2,12 @@ // Middlewares required to use swagger with authentication $authMiddleware = [ - \ProcessMaker\Http\Middleware\EncryptCookies::class, - \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, - \Illuminate\Session\Middleware\StartSession::class, - \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, - \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class, + ProcessMaker\Http\Middleware\EncryptCookies::class, + Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + Illuminate\Session\Middleware\StartSession::class, + Illuminate\View\Middleware\ShareErrorsFromSession::class, + Illuminate\Routing\Middleware\SubstituteBindings::class, + Laravel\Passport\Http\Middleware\CreateFreshApiToken::class, 'auth', ]; @@ -120,14 +120,14 @@ /** * analyser: defaults to \OpenApi\StaticAnalyser . * - * @see \OpenApi\scan + * @see OpenApi\scan */ 'analyser' => null, /** * analysis: defaults to a new \OpenApi\Analysis . * - * @see \OpenApi\scan + * @see OpenApi\scan */ 'analysis' => null, @@ -135,7 +135,7 @@ * Custom query path processors classes. * * @link https://github.com/zircote/swagger-php/tree/master/Examples/schema-query-parameter-processor - * @see \OpenApi\scan + * @see OpenApi\scan */ 'processors' => [ // new \App\SwaggerProcessors\SchemaQueryParameter(), @@ -144,7 +144,7 @@ /** * pattern: string $pattern File pattern(s) to scan (default: *.php) . * - * @see \OpenApi\scan + * @see OpenApi\scan */ 'pattern' => null, diff --git a/config/logging.php b/config/logging.php index 075376e46c..4054c1cb94 100644 --- a/config/logging.php +++ b/config/logging.php @@ -12,9 +12,9 @@ | Default Log Channel |-------------------------------------------------------------------------- | - | This option defines the default log channel that gets used when writing - | messages to the logs. The name specified in this option should match - | one of the channels defined in the "channels" configuration array. + | This option defines the default log channel that is utilized to write + | messages to your logs. The value provided here should match one of + | the channels present in the list of "channels" configured below. | */ @@ -38,13 +38,12 @@ | Log Channels |-------------------------------------------------------------------------- | - | Here you may configure the log channels for your application. Out of - | the box, Laravel uses the Monolog PHP logging library. This gives - | you a variety of powerful log handlers / formatters to utilize. + | Here you may configure the log channels for your application. Laravel + | utilizes the Monolog PHP logging library, which includes a variety + | of powerful log handlers and formatters that you're free to use. | - | Available Drivers: "single", "daily", "slack", "syslog", - | "errorlog", "monolog", - | "custom", "stack" + | Available drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", "custom", "stack" | */ @@ -56,7 +55,7 @@ 'stack' => [ 'driver' => 'stack', - 'channels' => ['daily'], + 'channels' => explode(',', (string) env('LOG_STACK', 'single')), 'ignore_exceptions' => false, ], @@ -71,15 +70,15 @@ 'driver' => 'daily', 'path' => env('LOG_PATH', base_path('storage/logs/processmaker.log')), 'level' => env('LOG_LEVEL', 'debug'), - 'days' => 7, + 'days' => env('LOG_DAILY_DAYS', 14), 'replace_placeholders' => true, ], 'slack' => [ 'driver' => 'slack', 'url' => env('LOG_SLACK_WEBHOOK_URL'), - 'username' => 'Laravel Log', - 'emoji' => ':boom:', + 'username' => env('LOG_SLACK_USERNAME', 'Laravel Log'), + 'emoji' => env('LOG_SLACK_EMOJI', ':boom:'), 'level' => env('LOG_LEVEL', 'critical'), 'replace_placeholders' => true, ], @@ -100,17 +99,17 @@ 'driver' => 'monolog', 'level' => env('LOG_LEVEL', 'debug'), 'handler' => StreamHandler::class, - 'formatter' => env('LOG_STDERR_FORMATTER'), - 'with' => [ + 'handler_with' => [ 'stream' => 'php://stderr', ], + 'formatter' => env('LOG_STDERR_FORMATTER'), 'processors' => [PsrLogMessageProcessor::class], ], 'syslog' => [ 'driver' => 'syslog', 'level' => env('LOG_LEVEL', 'debug'), - 'facility' => LOG_USER, + 'facility' => env('LOG_SYSLOG_FACILITY', LOG_USER), 'replace_placeholders' => true, ], @@ -135,6 +134,7 @@ 'level' => 'debug', 'days' => env('DATA_SOURCE_CLEAR_LOG', 7), ], + ], ]; diff --git a/config/mail.php b/config/mail.php index d78ea38d62..16d1ae0f71 100644 --- a/config/mail.php +++ b/config/mail.php @@ -13,13 +13,14 @@ | Default Mailer |-------------------------------------------------------------------------- | - | This option controls the default mailer that is used to send any email - | messages sent by your application. Alternative mailers may be setup - | and used as needed; however, this mailer will be used by default. + | This option controls the default mailer that is used to send all email + | messages unless another mailer is explicitly specified when sending + | the message. All additional mailers can be configured within the + | "mailers" array. Examples of each type of mailer are provided. | */ - 'default' => env('MAIL_MAILER', 'smtp'), + 'default' => env('MAIL_MAILER', 'log'), /* |-------------------------------------------------------------------------- @@ -30,26 +31,28 @@ | their respective settings. Several examples have been configured for | you and you are free to add your own as your application requires. | - | Laravel supports a variety of mail "transport" drivers to be used while - | sending an e-mail. You will specify which one you are using for your - | mailers below. You are free to add additional mailers as required. + | Laravel supports a variety of mail "transport" drivers that can be used + | when delivering an email. You may specify which one you're using for + | your mailers below. You may also add additional mailers if needed. | | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2", - | "postmark", "log", "array", "failover" + | "postmark", "resend", "log", "array", + | "failover", "roundrobin" | */ 'mailers' => [ + 'smtp' => [ 'transport' => 'smtp', + 'scheme' => env('MAIL_SCHEME'), 'url' => env('MAIL_URL'), - 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), - 'port' => env('MAIL_PORT', 587), - 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + 'host' => env('MAIL_HOST', '127.0.0.1'), + 'port' => env('MAIL_PORT', 2525), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'timeout' => null, - 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url(env('APP_URL', 'http://localhost'))['host']), + 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url((string) env('APP_URL', 'http://localhost'), PHP_URL_HOST)), 'auth_mode' => null, 'verify_peer' => env('VERIFY_PEER', false), ], @@ -67,11 +70,16 @@ 'postmark' => [ 'transport' => 'postmark', + // 'message_stream_id' => env('POSTMARK_MESSAGE_STREAM_ID'), // 'client' => [ // 'timeout' => 5, // ], ], + 'resend' => [ + 'transport' => 'resend', + ], + 'sendmail' => [ 'transport' => 'sendmail', 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), @@ -92,7 +100,18 @@ 'smtp', 'log', ], + 'retry_after' => 60, + ], + + 'roundrobin' => [ + 'transport' => 'roundrobin', + 'mailers' => [ + 'ses', + 'postmark', + ], + 'retry_after' => 60, ], + ], /* @@ -100,18 +119,18 @@ | Global "From" Address |-------------------------------------------------------------------------- | - | You may wish for all e-mails sent by your application to be sent from - | the same address. Here, you may specify a name and address that is - | used globally for all e-mails that are sent by your application. + | You may wish for all emails sent by your application to be sent from + | the same address. Here you may specify a name and address that is + | used globally for all emails that are sent by your application. | */ 'from' => [ - 'address' => env('MAIL_FROM_ADDRESS', 'admin@example.com'), - 'name' => env('MAIL_FROM_NAME', 'ProcessMaker'), + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), ], - 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + 'encryption' => env('MAIL_SCHEME', 'tls'), 'username' => env('MAIL_USERNAME'), @@ -119,17 +138,6 @@ 'sendmail' => '/usr/sbin/sendmail -bs', - /* - |-------------------------------------------------------------------------- - | Markdown Mail Settings - |-------------------------------------------------------------------------- - | - | If you are using Markdown based email rendering, you may configure your - | theme and component paths here, allowing you to customize the design - | of the emails. Or, you may simply stick with the Laravel defaults! - | - */ - 'markdown' => [ 'theme' => 'default', diff --git a/config/queue.php b/config/queue.php index c5029a5baa..297338f4ba 100644 --- a/config/queue.php +++ b/config/queue.php @@ -40,6 +40,7 @@ 'queue' => 'default', 'retry_after' => 90, 'after_commit' => false, + 'connection' => env('DB_QUEUE_CONNECTION'), ], 'beanstalkd' => [ diff --git a/config/rabbitmq.php b/config/rabbitmq.php index 71fcaa7e0c..d71947d4b0 100644 --- a/config/rabbitmq.php +++ b/config/rabbitmq.php @@ -48,7 +48,7 @@ * Read more about possible values at https://www.rabbitmq.com/tutorials/amqp-concepts.html */ - 'type' => env('RABBITMQ_EXCHANGE_TYPE', \PhpAmqpLib\Exchange\AMQPExchangeType::DIRECT), + 'type' => env('RABBITMQ_EXCHANGE_TYPE', PhpAmqpLib\Exchange\AMQPExchangeType::DIRECT), 'passive' => env('RABBITMQ_EXCHANGE_PASSIVE', false), 'durable' => env('RABBITMQ_EXCHANGE_DURABLE', true), 'auto_delete' => env('RABBITMQ_EXCHANGE_AUTODELETE', false), diff --git a/config/samlidp.php b/config/samlidp.php index 2373f0697a..f4280682dd 100644 --- a/config/samlidp.php +++ b/config/samlidp.php @@ -34,7 +34,7 @@ // Make sure messages are signed 'messages_signed' => true, // Defind what digital algorithm you want to use - 'digest_algorithm' => \RobRichards\XMLSecLibs\XMLSecurityDSig::SHA1, + 'digest_algorithm' => RobRichards\XMLSecLibs\XMLSecurityDSig::SHA1, // list of all service providers 'sp' => [ // Base64 encoded ACS URL diff --git a/config/trustedproxy.php b/config/trustedproxy.php index 0cb1d72bf8..ef299f01d3 100644 --- a/config/trustedproxy.php +++ b/config/trustedproxy.php @@ -41,5 +41,5 @@ * * @link https://symfony.com/doc/current/deployment/proxies.html */ - 'headers' => env('PROXIES_AWS', false) ? Illuminate\Http\Request::HEADER_X_FORWARDED_AWS_ELB : Illuminate\Http\Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_AWS_ELB, + 'headers' => env('PROXIES_AWS', false) ? Request::HEADER_X_FORWARDED_AWS_ELB : Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_AWS_ELB, ]; diff --git a/database/factories/ProcessMaker/Models/BookmarkFactory.php b/database/factories/ProcessMaker/Models/BookmarkFactory.php index 5e16710f54..3efaacd1f6 100644 --- a/database/factories/ProcessMaker/Models/BookmarkFactory.php +++ b/database/factories/ProcessMaker/Models/BookmarkFactory.php @@ -16,7 +16,7 @@ class BookmarkFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'user_id' => function () { diff --git a/database/factories/ProcessMaker/Models/CommentFactory.php b/database/factories/ProcessMaker/Models/CommentFactory.php index 3cd09d265c..c13aa34af2 100644 --- a/database/factories/ProcessMaker/Models/CommentFactory.php +++ b/database/factories/ProcessMaker/Models/CommentFactory.php @@ -18,7 +18,7 @@ class CommentFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { $model = $this->faker->randomElement([ ProcessRequestToken::class, diff --git a/database/factories/ProcessMaker/Models/EncryptedDataFactory.php b/database/factories/ProcessMaker/Models/EncryptedDataFactory.php index c1943e4bf5..49ffa2a099 100644 --- a/database/factories/ProcessMaker/Models/EncryptedDataFactory.php +++ b/database/factories/ProcessMaker/Models/EncryptedDataFactory.php @@ -15,12 +15,13 @@ class EncryptedDataFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { // Get configured driver for encrypted data $driver = config('app.encrypted_data.driver'); $cipherText = EncryptedData::driver($driver)->encryptText($this->faker->sentence(3)); + return [ 'field_name' => $this->faker->word(), 'iv' => base64_encode(EncryptedData::driver($driver)->getIv()), diff --git a/database/factories/ProcessMaker/Models/EnvironmentVariableFactory.php b/database/factories/ProcessMaker/Models/EnvironmentVariableFactory.php index 9c63ccdf2f..a87866e851 100644 --- a/database/factories/ProcessMaker/Models/EnvironmentVariableFactory.php +++ b/database/factories/ProcessMaker/Models/EnvironmentVariableFactory.php @@ -12,7 +12,7 @@ class EnvironmentVariableFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'name' => $this->faker->word(), diff --git a/database/factories/ProcessMaker/Models/GroupFactory.php b/database/factories/ProcessMaker/Models/GroupFactory.php index 9c99a83109..0bb4728913 100644 --- a/database/factories/ProcessMaker/Models/GroupFactory.php +++ b/database/factories/ProcessMaker/Models/GroupFactory.php @@ -16,7 +16,7 @@ class GroupFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'name' => $this->faker->sentence(3), diff --git a/database/factories/ProcessMaker/Models/GroupMemberFactory.php b/database/factories/ProcessMaker/Models/GroupMemberFactory.php index 0abc25d58b..f740940033 100644 --- a/database/factories/ProcessMaker/Models/GroupMemberFactory.php +++ b/database/factories/ProcessMaker/Models/GroupMemberFactory.php @@ -17,7 +17,7 @@ class GroupMemberFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'member_id' => function () { diff --git a/database/factories/ProcessMaker/Models/InboxRuleFactory.php b/database/factories/ProcessMaker/Models/InboxRuleFactory.php index e09e6615b5..d93dacd295 100644 --- a/database/factories/ProcessMaker/Models/InboxRuleFactory.php +++ b/database/factories/ProcessMaker/Models/InboxRuleFactory.php @@ -13,12 +13,12 @@ class InboxRuleFactory extends Factory { protected $model = InboxRule::class; - public function definition() + public function definition(): array { //Generates random saved_search_id and process_request_token_id even with null values //But never both null return [ - 'name' => $this->faker->word, + 'name' => $this->faker->word(), 'user_id' => function () { return User::factory()->create()->id; }, diff --git a/database/factories/ProcessMaker/Models/InboxRuleLogFactory.php b/database/factories/ProcessMaker/Models/InboxRuleLogFactory.php index 1099e9e308..93085eaac6 100644 --- a/database/factories/ProcessMaker/Models/InboxRuleLogFactory.php +++ b/database/factories/ProcessMaker/Models/InboxRuleLogFactory.php @@ -2,8 +2,8 @@ namespace Database\Factories\ProcessMaker\Models; -use ProcessMaker\Models\InboxRuleLog; use Illuminate\Database\Eloquent\Factories\Factory; +use ProcessMaker\Models\InboxRuleLog; /** * @extends \Illuminate\Database\Eloquent\Factories\Factory<\ProcessMaker\Models\InboxRule> @@ -12,7 +12,7 @@ class InboxRuleLogFactory extends Factory { protected $model = InboxRuleLog::class; - public function definition() + public function definition(): array { return [ 'inbox_rule_id' => null, diff --git a/database/factories/ProcessMaker/Models/MediaFactory.php b/database/factories/ProcessMaker/Models/MediaFactory.php index c05a6dd247..2c595f9408 100644 --- a/database/factories/ProcessMaker/Models/MediaFactory.php +++ b/database/factories/ProcessMaker/Models/MediaFactory.php @@ -16,7 +16,7 @@ class MediaFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'model_id' => 1, diff --git a/database/factories/ProcessMaker/Models/NotificationFactory.php b/database/factories/ProcessMaker/Models/NotificationFactory.php index e11227aceb..6cbf5c1361 100644 --- a/database/factories/ProcessMaker/Models/NotificationFactory.php +++ b/database/factories/ProcessMaker/Models/NotificationFactory.php @@ -16,7 +16,7 @@ class NotificationFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'type' => $this->faker->word(), diff --git a/database/factories/ProcessMaker/Models/PermissionFactory.php b/database/factories/ProcessMaker/Models/PermissionFactory.php index 0fbc840e9c..b7155674d4 100644 --- a/database/factories/ProcessMaker/Models/PermissionFactory.php +++ b/database/factories/ProcessMaker/Models/PermissionFactory.php @@ -11,7 +11,7 @@ class PermissionFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'title' => $this->faker->sentence(2), diff --git a/database/factories/ProcessMaker/Models/ProcessAbeRequestTokenFactory.php b/database/factories/ProcessMaker/Models/ProcessAbeRequestTokenFactory.php index 2e31b4c71f..524164ceda 100644 --- a/database/factories/ProcessMaker/Models/ProcessAbeRequestTokenFactory.php +++ b/database/factories/ProcessMaker/Models/ProcessAbeRequestTokenFactory.php @@ -18,7 +18,7 @@ class ProcessAbeRequestTokenFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { $screen = Screen::factory()->create(); $process = Process::factory()->create(); @@ -27,7 +27,7 @@ public function definition() ]); $processRequestToken = ProcessRequestToken::factory()->create([ 'process_id' => $process->getKey(), - 'process_request_id' => $processRequest->getKey() + 'process_request_id' => $processRequest->getKey(), ]); return [ @@ -35,7 +35,7 @@ public function definition() 'process_request_token_id' => $processRequestToken->getKey(), 'completed_screen_id' => $screen->getKey(), 'is_answered' => 0, - 'require_login' => 0 + 'require_login' => 0, ]; } } diff --git a/database/factories/ProcessMaker/Models/ProcessCategoryFactory.php b/database/factories/ProcessMaker/Models/ProcessCategoryFactory.php index 938e8db013..a8b2f3e702 100644 --- a/database/factories/ProcessMaker/Models/ProcessCategoryFactory.php +++ b/database/factories/ProcessMaker/Models/ProcessCategoryFactory.php @@ -15,7 +15,7 @@ class ProcessCategoryFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'name' => $this->faker->unique()->sentence(), diff --git a/database/factories/ProcessMaker/Models/ProcessCollaborationFactory.php b/database/factories/ProcessMaker/Models/ProcessCollaborationFactory.php index ac5d880d8c..393a6c2ec4 100644 --- a/database/factories/ProcessMaker/Models/ProcessCollaborationFactory.php +++ b/database/factories/ProcessMaker/Models/ProcessCollaborationFactory.php @@ -16,7 +16,7 @@ class ProcessCollaborationFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'process_id' => function () { diff --git a/database/factories/ProcessMaker/Models/ProcessFactory.php b/database/factories/ProcessMaker/Models/ProcessFactory.php index 53ac18d029..18b79e0785 100644 --- a/database/factories/ProcessMaker/Models/ProcessFactory.php +++ b/database/factories/ProcessMaker/Models/ProcessFactory.php @@ -17,7 +17,7 @@ class ProcessFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'name' => $this->faker->unique()->sentence(3), diff --git a/database/factories/ProcessMaker/Models/ProcessLaunchpadFactory.php b/database/factories/ProcessMaker/Models/ProcessLaunchpadFactory.php index d91f3e337f..79d68f2c05 100644 --- a/database/factories/ProcessMaker/Models/ProcessLaunchpadFactory.php +++ b/database/factories/ProcessMaker/Models/ProcessLaunchpadFactory.php @@ -13,10 +13,10 @@ class ProcessLaunchpadFactory extends Factory /** * Define the model's default state. */ - public function definition() + public function definition(): array { return [ - 'uuid' => $this->faker->uuid, + 'uuid' => $this->faker->uuid(), 'process_id' => function () { return Process::factory()->create()->getKey(); }, diff --git a/database/factories/ProcessMaker/Models/ProcessNotificationSettingFactory.php b/database/factories/ProcessMaker/Models/ProcessNotificationSettingFactory.php index c812ddec95..0c26869d3f 100644 --- a/database/factories/ProcessMaker/Models/ProcessNotificationSettingFactory.php +++ b/database/factories/ProcessMaker/Models/ProcessNotificationSettingFactory.php @@ -16,7 +16,7 @@ class ProcessNotificationSettingFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'process_id' => function () { diff --git a/database/factories/ProcessMaker/Models/ProcessRequestFactory.php b/database/factories/ProcessMaker/Models/ProcessRequestFactory.php index 9c9ab875b3..b40d5a9492 100644 --- a/database/factories/ProcessMaker/Models/ProcessRequestFactory.php +++ b/database/factories/ProcessMaker/Models/ProcessRequestFactory.php @@ -19,7 +19,7 @@ class ProcessRequestFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'name' => $this->faker->sentence(3), diff --git a/database/factories/ProcessMaker/Models/ProcessTaskAssignmentFactory.php b/database/factories/ProcessMaker/Models/ProcessTaskAssignmentFactory.php index b207405ae1..e6638033a9 100644 --- a/database/factories/ProcessMaker/Models/ProcessTaskAssignmentFactory.php +++ b/database/factories/ProcessMaker/Models/ProcessTaskAssignmentFactory.php @@ -18,7 +18,7 @@ class ProcessTaskAssignmentFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { $model = $this->faker->randomElement([ User::class, diff --git a/database/factories/ProcessMaker/Models/ProcessTemplatesFactory.php b/database/factories/ProcessMaker/Models/ProcessTemplatesFactory.php index 1aa2e58558..94058e6067 100644 --- a/database/factories/ProcessMaker/Models/ProcessTemplatesFactory.php +++ b/database/factories/ProcessMaker/Models/ProcessTemplatesFactory.php @@ -19,7 +19,7 @@ class ProcessTemplatesFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { $process = Process::factory()->create(); diff --git a/database/factories/ProcessMaker/Models/ProcessVersionFactory.php b/database/factories/ProcessMaker/Models/ProcessVersionFactory.php index 59c417d6fc..0f6c470b0b 100644 --- a/database/factories/ProcessMaker/Models/ProcessVersionFactory.php +++ b/database/factories/ProcessMaker/Models/ProcessVersionFactory.php @@ -19,7 +19,7 @@ class ProcessVersionFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { $emptyProcess = Arr::random(glob(Process::getProcessTemplatesPath() . '/*.bpmn')); $process = Process::factory()->make(); diff --git a/database/factories/ProcessMaker/Models/RecommendationFactory.php b/database/factories/ProcessMaker/Models/RecommendationFactory.php index 37507d3794..24e06b80cd 100644 --- a/database/factories/ProcessMaker/Models/RecommendationFactory.php +++ b/database/factories/ProcessMaker/Models/RecommendationFactory.php @@ -2,8 +2,8 @@ namespace Database\Factories\ProcessMaker\Models; -use Illuminate\Support\Str; use Illuminate\Database\Eloquent\Factories\Factory; +use Illuminate\Support\Str; /** * @extends \Illuminate\Database\Eloquent\Factories\Factory<\ProcessMaker\Models\Recommendation> diff --git a/database/factories/ProcessMaker/Models/ScheduledTaskFactory.php b/database/factories/ProcessMaker/Models/ScheduledTaskFactory.php index 8c017adaf6..0d722fbe5b 100644 --- a/database/factories/ProcessMaker/Models/ScheduledTaskFactory.php +++ b/database/factories/ProcessMaker/Models/ScheduledTaskFactory.php @@ -13,7 +13,7 @@ class ScheduledTaskFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { $token = ProcessRequestToken::factory()->make([]); diff --git a/database/factories/ProcessMaker/Models/ScreenCategoryFactory.php b/database/factories/ProcessMaker/Models/ScreenCategoryFactory.php index e76c0786f7..af0d8fc1f5 100644 --- a/database/factories/ProcessMaker/Models/ScreenCategoryFactory.php +++ b/database/factories/ProcessMaker/Models/ScreenCategoryFactory.php @@ -15,7 +15,7 @@ class ScreenCategoryFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'name' => $this->faker->unique()->sentence(), diff --git a/database/factories/ProcessMaker/Models/ScreenFactory.php b/database/factories/ProcessMaker/Models/ScreenFactory.php index 163d086f66..efda72c66c 100644 --- a/database/factories/ProcessMaker/Models/ScreenFactory.php +++ b/database/factories/ProcessMaker/Models/ScreenFactory.php @@ -16,7 +16,7 @@ class ScreenFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'title' => $this->faker->sentence(3), diff --git a/database/factories/ProcessMaker/Models/ScreenTemplatesFactory.php b/database/factories/ProcessMaker/Models/ScreenTemplatesFactory.php index 1188ab2407..be2bc49ce1 100644 --- a/database/factories/ProcessMaker/Models/ScreenTemplatesFactory.php +++ b/database/factories/ProcessMaker/Models/ScreenTemplatesFactory.php @@ -18,7 +18,7 @@ class ScreenTemplatesFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { $screen = Screen::factory()->create(); $response = (new ExportController)->manifest('screen', $screen->id); diff --git a/database/factories/ProcessMaker/Models/ScreenTypeFactory.php b/database/factories/ProcessMaker/Models/ScreenTypeFactory.php index 9648894ff7..4e103f911e 100644 --- a/database/factories/ProcessMaker/Models/ScreenTypeFactory.php +++ b/database/factories/ProcessMaker/Models/ScreenTypeFactory.php @@ -15,7 +15,7 @@ class ScreenTypeFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'name' => $this->faker->unique()->sentence(), diff --git a/database/factories/ProcessMaker/Models/ScreenVersionFactory.php b/database/factories/ProcessMaker/Models/ScreenVersionFactory.php index 25fb28d93f..f3a4209280 100644 --- a/database/factories/ProcessMaker/Models/ScreenVersionFactory.php +++ b/database/factories/ProcessMaker/Models/ScreenVersionFactory.php @@ -17,7 +17,7 @@ class ScreenVersionFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { $screen = Screen::factory()->create(); diff --git a/database/factories/ProcessMaker/Models/ScriptCategoryFactory.php b/database/factories/ProcessMaker/Models/ScriptCategoryFactory.php index 22e1b1e667..30b511e661 100644 --- a/database/factories/ProcessMaker/Models/ScriptCategoryFactory.php +++ b/database/factories/ProcessMaker/Models/ScriptCategoryFactory.php @@ -15,7 +15,7 @@ class ScriptCategoryFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'name' => $this->faker->unique()->sentence(), diff --git a/database/factories/ProcessMaker/Models/ScriptExecutorFactory.php b/database/factories/ProcessMaker/Models/ScriptExecutorFactory.php index b0e744961f..6ff31eb04f 100644 --- a/database/factories/ProcessMaker/Models/ScriptExecutorFactory.php +++ b/database/factories/ProcessMaker/Models/ScriptExecutorFactory.php @@ -12,7 +12,7 @@ class ScriptExecutorFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'title' => $this->faker->sentence(), diff --git a/database/factories/ProcessMaker/Models/ScriptFactory.php b/database/factories/ProcessMaker/Models/ScriptFactory.php index 9774b1733f..bbe543f870 100644 --- a/database/factories/ProcessMaker/Models/ScriptFactory.php +++ b/database/factories/ProcessMaker/Models/ScriptFactory.php @@ -14,7 +14,7 @@ class ScriptFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'key' => null, diff --git a/database/factories/ProcessMaker/Models/SecurityLogFactory.php b/database/factories/ProcessMaker/Models/SecurityLogFactory.php index e775b40b15..3d8ca55b58 100644 --- a/database/factories/ProcessMaker/Models/SecurityLogFactory.php +++ b/database/factories/ProcessMaker/Models/SecurityLogFactory.php @@ -12,7 +12,7 @@ class SecurityLogFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ 'event' => $this->faker->word(), diff --git a/database/factories/ProcessMaker/Models/SettingFactory.php b/database/factories/ProcessMaker/Models/SettingFactory.php index a4cf9dab4f..b234030680 100644 --- a/database/factories/ProcessMaker/Models/SettingFactory.php +++ b/database/factories/ProcessMaker/Models/SettingFactory.php @@ -14,7 +14,7 @@ class SettingFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { $format = $this->faker->randomElement([ 'text', diff --git a/database/factories/ProcessMaker/Models/SettingsMenusFactory.php b/database/factories/ProcessMaker/Models/SettingsMenusFactory.php index a1fcbd81c9..2e69796b5b 100644 --- a/database/factories/ProcessMaker/Models/SettingsMenusFactory.php +++ b/database/factories/ProcessMaker/Models/SettingsMenusFactory.php @@ -14,7 +14,7 @@ class SettingsMenusFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { $menus = $this->faker->randomElement([ 'Email', @@ -22,10 +22,11 @@ public function definition() 'Log-In & Auth', 'User Settings', ]); + return [ 'menu_group' => $menus, 'menu_group_order' => 1, - 'ui' => json_encode(["icon" => "envelope-open-text"]), + 'ui' => json_encode(['icon' => 'envelope-open-text']), ]; } } diff --git a/database/factories/ProcessMaker/Models/TaskDraftFactory.php b/database/factories/ProcessMaker/Models/TaskDraftFactory.php index bed5e26e10..ee342dc89e 100644 --- a/database/factories/ProcessMaker/Models/TaskDraftFactory.php +++ b/database/factories/ProcessMaker/Models/TaskDraftFactory.php @@ -2,12 +2,11 @@ namespace Database\Factories\ProcessMaker\Models; -use ProcessMaker\Models\TaskDraft; use Illuminate\Database\Eloquent\Factories\Factory; +use ProcessMaker\Models\TaskDraft; class TaskDraftFactory extends Factory { - protected $model = TaskDraft::class; /** diff --git a/database/factories/ProcessMaker/Models/UserResourceViewFactory.php b/database/factories/ProcessMaker/Models/UserResourceViewFactory.php index 51b9de9342..30ebd50074 100644 --- a/database/factories/ProcessMaker/Models/UserResourceViewFactory.php +++ b/database/factories/ProcessMaker/Models/UserResourceViewFactory.php @@ -14,7 +14,7 @@ class UserResourceViewFactory extends Factory * * @return array */ - public function definition() + public function definition(): array { return [ ]; diff --git a/database/factories/ProcessMaker/Models/WizardTemplateFactory.php b/database/factories/ProcessMaker/Models/WizardTemplateFactory.php index 6860dabca3..7a79e6af62 100644 --- a/database/factories/ProcessMaker/Models/WizardTemplateFactory.php +++ b/database/factories/ProcessMaker/Models/WizardTemplateFactory.php @@ -10,11 +10,11 @@ class WizardTemplateFactory extends Factory { protected $model = WizardTemplate::class; - public function definition() + public function definition(): array { return [ - 'uuid' => $this->faker->uuid, - 'unique_template_id' => $this->faker->uuid, + 'uuid' => $this->faker->uuid(), + 'unique_template_id' => $this->faker->uuid(), 'process_template_id' => null, 'name' => $this->faker->unique()->name(), 'description' => $this->faker->unique()->name(), diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index 4a96708e3e..d23f55beab 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('users', function (Blueprint $table) { $table->increments('id'); @@ -54,7 +54,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('users'); } diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php index 440f4741cd..7c84e6aebc 100644 --- a/database/migrations/2014_10_12_100000_create_password_resets_table.php +++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('password_resets', function (Blueprint $table) { $table->string('email')->index(); @@ -24,7 +24,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('password_resets'); } diff --git a/database/migrations/2016_06_01_000001_create_oauth_auth_codes_table.php b/database/migrations/2016_06_01_000001_create_oauth_auth_codes_table.php index af6cab3f23..5923c5e480 100644 --- a/database/migrations/2016_06_01_000001_create_oauth_auth_codes_table.php +++ b/database/migrations/2016_06_01_000001_create_oauth_auth_codes_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('oauth_auth_codes', function (Blueprint $table) { $table->string('id', 100)->primary(); @@ -27,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('oauth_auth_codes'); } diff --git a/database/migrations/2016_06_01_000002_create_oauth_access_tokens_table.php b/database/migrations/2016_06_01_000002_create_oauth_access_tokens_table.php index 6888b31643..10d3a17603 100644 --- a/database/migrations/2016_06_01_000002_create_oauth_access_tokens_table.php +++ b/database/migrations/2016_06_01_000002_create_oauth_access_tokens_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('oauth_access_tokens', function (Blueprint $table) { $table->string('id', 100)->primary(); @@ -29,7 +29,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('oauth_access_tokens'); } diff --git a/database/migrations/2016_06_01_000003_create_oauth_refresh_tokens_table.php b/database/migrations/2016_06_01_000003_create_oauth_refresh_tokens_table.php index 4586301494..fe49634096 100644 --- a/database/migrations/2016_06_01_000003_create_oauth_refresh_tokens_table.php +++ b/database/migrations/2016_06_01_000003_create_oauth_refresh_tokens_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('oauth_refresh_tokens', function (Blueprint $table) { $table->string('id', 100)->primary(); @@ -25,7 +25,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('oauth_refresh_tokens'); } diff --git a/database/migrations/2016_06_01_000004_create_oauth_clients_table.php b/database/migrations/2016_06_01_000004_create_oauth_clients_table.php index 21b924b22b..5ccae567ad 100644 --- a/database/migrations/2016_06_01_000004_create_oauth_clients_table.php +++ b/database/migrations/2016_06_01_000004_create_oauth_clients_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('oauth_clients', function (Blueprint $table) { $table->increments('id'); @@ -30,7 +30,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('oauth_clients'); } diff --git a/database/migrations/2016_06_01_000005_create_oauth_personal_access_clients_table.php b/database/migrations/2016_06_01_000005_create_oauth_personal_access_clients_table.php index 8cc90d8ac7..4d82607e46 100644 --- a/database/migrations/2016_06_01_000005_create_oauth_personal_access_clients_table.php +++ b/database/migrations/2016_06_01_000005_create_oauth_personal_access_clients_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('oauth_personal_access_clients', function (Blueprint $table) { $table->increments('id'); @@ -24,7 +24,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('oauth_personal_access_clients'); } diff --git a/database/migrations/2018_08_21_174540_create_environment_variables_table.php b/database/migrations/2018_08_21_174540_create_environment_variables_table.php index 1f5bd0e4bb..fa344b594d 100644 --- a/database/migrations/2018_08_21_174540_create_environment_variables_table.php +++ b/database/migrations/2018_08_21_174540_create_environment_variables_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('environment_variables', function (Blueprint $table) { $table->increments('id'); @@ -26,7 +26,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('environment_variables'); } diff --git a/database/migrations/2018_09_07_154851_create_media_table.php b/database/migrations/2018_09_07_154851_create_media_table.php index e735034484..a889ea2641 100644 --- a/database/migrations/2018_09_07_154851_create_media_table.php +++ b/database/migrations/2018_09_07_154851_create_media_table.php @@ -8,7 +8,7 @@ /** * Run the migrations. */ - public function up() + public function up(): void { Schema::create('media', function (Blueprint $table) { $table->increments('id'); @@ -30,7 +30,7 @@ public function up() /** * Reverse the migrations. */ - public function down() + public function down(): void { Schema::dropIfExists('media'); } diff --git a/database/migrations/2018_09_07_161956_create_process_categories_table.php b/database/migrations/2018_09_07_161956_create_process_categories_table.php index ec685ad009..bd020dd881 100644 --- a/database/migrations/2018_09_07_161956_create_process_categories_table.php +++ b/database/migrations/2018_09_07_161956_create_process_categories_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('process_categories', function (Blueprint $table) { // columns @@ -26,7 +26,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('process_categories'); } diff --git a/database/migrations/2018_09_07_170019_create_process_table.php b/database/migrations/2018_09_07_170019_create_process_table.php index 285ef02f01..112854a0f7 100644 --- a/database/migrations/2018_09_07_170019_create_process_table.php +++ b/database/migrations/2018_09_07_170019_create_process_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('processes', function (Blueprint $table) { // Columns @@ -40,7 +40,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('processes'); } diff --git a/database/migrations/2018_09_07_171508_create_screens_table.php b/database/migrations/2018_09_07_171508_create_screens_table.php index b3f0d1334f..cd3bd62c5c 100644 --- a/database/migrations/2018_09_07_171508_create_screens_table.php +++ b/database/migrations/2018_09_07_171508_create_screens_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('screens', function (Blueprint $table) { // NOTE: Remember to update ScreenVersions when updating this table @@ -37,7 +37,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('processes', function ($table) { $table->dropForeign(['cancel_screen_id']); diff --git a/database/migrations/2018_09_07_173703_create_process_collaborations_table.php b/database/migrations/2018_09_07_173703_create_process_collaborations_table.php index cdcf7fc8fd..cb2d3ef21c 100644 --- a/database/migrations/2018_09_07_173703_create_process_collaborations_table.php +++ b/database/migrations/2018_09_07_173703_create_process_collaborations_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('process_collaborations', function (Blueprint $table) { //Columns @@ -34,7 +34,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('process_collaborations'); } diff --git a/database/migrations/2018_09_07_173804_create_screen_versions_table.php b/database/migrations/2018_09_07_173804_create_screen_versions_table.php index 2a57265bc0..ab4f2730f8 100644 --- a/database/migrations/2018_09_07_173804_create_screen_versions_table.php +++ b/database/migrations/2018_09_07_173804_create_screen_versions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('screen_versions', function (Blueprint $table) { $table->increments('id'); @@ -33,7 +33,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('screen_versions'); } diff --git a/database/migrations/2018_09_07_174154_create_process_requests_table.php b/database/migrations/2018_09_07_174154_create_process_requests_table.php index 99f7496ca8..6f5598e5fc 100644 --- a/database/migrations/2018_09_07_174154_create_process_requests_table.php +++ b/database/migrations/2018_09_07_174154_create_process_requests_table.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new ProcessRequest; Schema::connection($model->getConnectionName())->create('process_requests', function (Blueprint $table) { @@ -46,7 +46,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { $model = new ProcessRequest; Schema::connection($model->getConnectionName())->dropIfExists('process_requests'); diff --git a/database/migrations/2018_09_07_174216_create_scripts_table.php b/database/migrations/2018_09_07_174216_create_scripts_table.php index 888a3d068a..8c73023f55 100644 --- a/database/migrations/2018_09_07_174216_create_scripts_table.php +++ b/database/migrations/2018_09_07_174216_create_scripts_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('scripts', function (Blueprint $table) { // NOTE: Remember to update ScriptVersions when updating this table @@ -33,7 +33,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('scripts'); } diff --git a/database/migrations/2018_09_07_174703_create_script_versions_table.php b/database/migrations/2018_09_07_174703_create_script_versions_table.php index aba5ab3676..194f5c555f 100644 --- a/database/migrations/2018_09_07_174703_create_script_versions_table.php +++ b/database/migrations/2018_09_07_174703_create_script_versions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('script_versions', function (Blueprint $table) { $table->increments('id'); @@ -33,7 +33,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('script_versions'); } diff --git a/database/migrations/2018_09_07_175156_create_process_versions_table.php b/database/migrations/2018_09_07_175156_create_process_versions_table.php index 8c9aa53d17..8276a50d80 100644 --- a/database/migrations/2018_09_07_175156_create_process_versions_table.php +++ b/database/migrations/2018_09_07_175156_create_process_versions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('process_versions', function (Blueprint $table) { // NOTE: Remember to update ProcessVersions when updating this table @@ -38,7 +38,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('process_versions'); } diff --git a/database/migrations/2018_09_07_180640_create_process_request_tokens.php b/database/migrations/2018_09_07_180640_create_process_request_tokens.php index 8e695dd346..88bacd98a4 100644 --- a/database/migrations/2018_09_07_180640_create_process_request_tokens.php +++ b/database/migrations/2018_09_07_180640_create_process_request_tokens.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('process_request_tokens', function (Blueprint $table) { // Columns @@ -52,7 +52,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('process_request_tokens'); } diff --git a/database/migrations/2018_09_07_180801_create_groups_table.php b/database/migrations/2018_09_07_180801_create_groups_table.php index e98a41f38b..439907f388 100644 --- a/database/migrations/2018_09_07_180801_create_groups_table.php +++ b/database/migrations/2018_09_07_180801_create_groups_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('groups', function (Blueprint $table) { $table->increments('id'); @@ -26,7 +26,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('groups'); } diff --git a/database/migrations/2018_09_07_180830_create_process_task_assignments.php b/database/migrations/2018_09_07_180830_create_process_task_assignments.php index 499c72ca6c..3642fcda81 100644 --- a/database/migrations/2018_09_07_180830_create_process_task_assignments.php +++ b/database/migrations/2018_09_07_180830_create_process_task_assignments.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('process_task_assignments', function (Blueprint $table) { // columns @@ -36,7 +36,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('process_task_assignments'); } diff --git a/database/migrations/2018_09_07_180903_create_group_members_table.php b/database/migrations/2018_09_07_180903_create_group_members_table.php index 82061a0ec7..df1104f9f3 100644 --- a/database/migrations/2018_09_07_180903_create_group_members_table.php +++ b/database/migrations/2018_09_07_180903_create_group_members_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('group_members', function (Blueprint $table) { $table->increments('id'); @@ -30,7 +30,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('group_members'); } diff --git a/database/migrations/2018_09_10_170636_create_permissions_table.php b/database/migrations/2018_09_10_170636_create_permissions_table.php index 286419d5f0..f4877686c0 100644 --- a/database/migrations/2018_09_10_170636_create_permissions_table.php +++ b/database/migrations/2018_09_10_170636_create_permissions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('permissions', function (Blueprint $table) { $table->increments('id'); @@ -27,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('permissions'); } diff --git a/database/migrations/2018_09_10_204130_create_permission_assignments_table.php b/database/migrations/2018_09_10_204130_create_permission_assignments_table.php index b01c9afd3a..c0d44fc263 100644 --- a/database/migrations/2018_09_10_204130_create_permission_assignments_table.php +++ b/database/migrations/2018_09_10_204130_create_permission_assignments_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('permission_assignments', function (Blueprint $table) { $table->increments('id'); @@ -27,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('permission_assignments'); } diff --git a/database/migrations/2018_10_24_201610_create_notifications_table.php b/database/migrations/2018_10_24_201610_create_notifications_table.php index 3d6cbf7f8f..0049cde6dc 100644 --- a/database/migrations/2018_10_24_201610_create_notifications_table.php +++ b/database/migrations/2018_10_24_201610_create_notifications_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('notifications', function (Blueprint $table) { $table->uuid('id')->primary(); @@ -27,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('notifications'); } diff --git a/database/migrations/2018_10_24_231951_create_screen_categories_table.php b/database/migrations/2018_10_24_231951_create_screen_categories_table.php index 1054ff997c..3efc5d863e 100644 --- a/database/migrations/2018_10_24_231951_create_screen_categories_table.php +++ b/database/migrations/2018_10_24_231951_create_screen_categories_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('screen_categories', function (Blueprint $table) { $table->increments('id'); @@ -29,7 +29,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('screens', function (Blueprint $table) { $table->dropForeign(['screen_category_id']); diff --git a/database/migrations/2018_11_22_231951_create_process_permissions_table.php b/database/migrations/2018_11_22_231951_create_process_permissions_table.php index 5792adb425..8136c4e758 100644 --- a/database/migrations/2018_11_22_231951_create_process_permissions_table.php +++ b/database/migrations/2018_11_22_231951_create_process_permissions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('process_permissions', function (Blueprint $table) { $table->increments('id'); @@ -29,7 +29,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('process_permissions'); } diff --git a/database/migrations/2019_01_02_210148_create_failed_jobs_table.php b/database/migrations/2019_01_02_210148_create_failed_jobs_table.php index 025a7076d5..d18b3dc676 100644 --- a/database/migrations/2019_01_02_210148_create_failed_jobs_table.php +++ b/database/migrations/2019_01_02_210148_create_failed_jobs_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('failed_jobs', function (Blueprint $table) { $table->bigIncrements('id'); @@ -27,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('failed_jobs'); } diff --git a/database/migrations/2019_01_07_220428_delete_permissions_tables.php b/database/migrations/2019_01_07_220428_delete_permissions_tables.php index 041e54d997..7523a333a2 100644 --- a/database/migrations/2019_01_07_220428_delete_permissions_tables.php +++ b/database/migrations/2019_01_07_220428_delete_permissions_tables.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::drop('process_permissions'); Schema::drop('permission_assignments'); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::create('permissions', function (Blueprint $table) { $table->increments('id'); diff --git a/database/migrations/2019_01_07_221159_recreate_permissions_table.php b/database/migrations/2019_01_07_221159_recreate_permissions_table.php index e0695f9e15..ce05949f5c 100644 --- a/database/migrations/2019_01_07_221159_recreate_permissions_table.php +++ b/database/migrations/2019_01_07_221159_recreate_permissions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('permissions', function (Blueprint $table) { $table->increments('id'); @@ -25,7 +25,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::drop('permissions'); } diff --git a/database/migrations/2019_01_07_221241_create_assignables_table.php b/database/migrations/2019_01_07_221241_create_assignables_table.php index c95e2c69ad..f30192d416 100644 --- a/database/migrations/2019_01_07_221241_create_assignables_table.php +++ b/database/migrations/2019_01_07_221241_create_assignables_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('assignables', function (Blueprint $table) { $table->unsignedInteger('permission_id'); @@ -25,7 +25,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::drop('assignables'); } diff --git a/database/migrations/2019_01_10_192038_create_processables_table.php b/database/migrations/2019_01_10_192038_create_processables_table.php index cbc12ecd61..dddfd06205 100644 --- a/database/migrations/2019_01_10_192038_create_processables_table.php +++ b/database/migrations/2019_01_10_192038_create_processables_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('processables', function (Blueprint $table) { $table->unsignedInteger('process_id'); @@ -28,7 +28,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('processables'); } diff --git a/database/migrations/2019_01_14_201209_create_comments_table.php b/database/migrations/2019_01_14_201209_create_comments_table.php index cd9138115d..4f0818bc4e 100644 --- a/database/migrations/2019_01_14_201209_create_comments_table.php +++ b/database/migrations/2019_01_14_201209_create_comments_table.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new Comment(); Schema::connection($model->getConnectionName())->create('comments', function (Blueprint $table) { @@ -34,7 +34,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { $model = new Comment(); Schema::connection($model->getConnectionName())->dropIfExists('comments'); diff --git a/database/migrations/2019_01_14_201209_create_scheduled_tasks_table.php b/database/migrations/2019_01_14_201209_create_scheduled_tasks_table.php index 85c63e8555..595a5a905c 100644 --- a/database/migrations/2019_01_14_201209_create_scheduled_tasks_table.php +++ b/database/migrations/2019_01_14_201209_create_scheduled_tasks_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('scheduled_tasks', function (Blueprint $table) { $table->increments('id'); @@ -36,7 +36,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('scheduled_tasks'); } diff --git a/database/migrations/2019_02_13_201340_create_process_notification_settings_table.php b/database/migrations/2019_02_13_201340_create_process_notification_settings_table.php index 93a650b6a9..86526d9813 100644 --- a/database/migrations/2019_02_13_201340_create_process_notification_settings_table.php +++ b/database/migrations/2019_02_13_201340_create_process_notification_settings_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('process_notification_settings', function (Blueprint $table) { $table->unsignedInteger('process_id'); @@ -27,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('process_notification_settings'); } diff --git a/database/migrations/2019_03_07_002827_add_timeout_field_to_scripts_table.php b/database/migrations/2019_03_07_002827_add_timeout_field_to_scripts_table.php index 20dfe6cbea..89b9725ef9 100644 --- a/database/migrations/2019_03_07_002827_add_timeout_field_to_scripts_table.php +++ b/database/migrations/2019_03_07_002827_add_timeout_field_to_scripts_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('scripts', function (Blueprint $table) { $table->unsignedSmallInteger('timeout')->after('code')->default(60); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('scripts', function (Blueprint $table) { $table->dropColumn('timeout'); diff --git a/database/migrations/2019_03_07_002905_add_timeout_field_to_script_versions_table.php b/database/migrations/2019_03_07_002905_add_timeout_field_to_script_versions_table.php index b68c4c2c6d..712fb4f9f1 100644 --- a/database/migrations/2019_03_07_002905_add_timeout_field_to_script_versions_table.php +++ b/database/migrations/2019_03_07_002905_add_timeout_field_to_script_versions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('script_versions', function (Blueprint $table) { $table->unsignedSmallInteger('timeout')->after('code')->default(60); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('script_versions', function (Blueprint $table) { $table->dropColumn('timeout'); diff --git a/database/migrations/2019_03_20_214047_add_group_field_to_permissions_table.php b/database/migrations/2019_03_20_214047_add_group_field_to_permissions_table.php index 1c5ab482c5..6a688cfd3b 100644 --- a/database/migrations/2019_03_20_214047_add_group_field_to_permissions_table.php +++ b/database/migrations/2019_03_20_214047_add_group_field_to_permissions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('permissions', function (Blueprint $table) { $table->string('group')->after('name')->nullable(true); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('permissions', function (Blueprint $table) { $table->dropColumn('group'); diff --git a/database/migrations/2019_05_02_115631_create_screen_types_table.php b/database/migrations/2019_05_02_115631_create_screen_types_table.php index a5d957e7df..fa383e8eec 100644 --- a/database/migrations/2019_05_02_115631_create_screen_types_table.php +++ b/database/migrations/2019_05_02_115631_create_screen_types_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('screen_types', function (Blueprint $table) { $table->increments('id'); @@ -23,7 +23,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('screen_types'); } diff --git a/database/migrations/2019_07_03_174209_update_bpmn_column_to_mediumtext.php b/database/migrations/2019_07_03_174209_update_bpmn_column_to_mediumtext.php index 49547722af..ddf303d579 100644 --- a/database/migrations/2019_07_03_174209_update_bpmn_column_to_mediumtext.php +++ b/database/migrations/2019_07_03_174209_update_bpmn_column_to_mediumtext.php @@ -8,7 +8,6 @@ return new class extends Migration { public function __construct() { - } /** @@ -16,7 +15,7 @@ public function __construct() * * @return void */ - public function up() + public function up(): void { $model = new Process; Schema::connection($model->getConnectionName())->table('processes', function (Blueprint $table) { @@ -31,7 +30,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { $model = new Process; Schema::connection($model->getConnectionName())->table('processes', function (Blueprint $table) { diff --git a/database/migrations/2019_07_19_181033_add_request_detail_screen_id_to_process.php b/database/migrations/2019_07_19_181033_add_request_detail_screen_id_to_process.php index 63be82058e..47e7bbe4e7 100644 --- a/database/migrations/2019_07_19_181033_add_request_detail_screen_id_to_process.php +++ b/database/migrations/2019_07_19_181033_add_request_detail_screen_id_to_process.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('processes', function (Blueprint $table) { $table->unsignedInteger('request_detail_screen_id')->nullable()->after('cancel_screen_id'); @@ -27,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_versions', function (Blueprint $table) { $table->dropColumn('request_detail_screen_id'); diff --git a/database/migrations/2019_07_23_185536_create_settings_table.php b/database/migrations/2019_07_23_185536_create_settings_table.php index 8cd88d7084..dd1acf497f 100644 --- a/database/migrations/2019_07_23_185536_create_settings_table.php +++ b/database/migrations/2019_07_23_185536_create_settings_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('settings', function (Blueprint $table) { $table->increments('id'); @@ -25,7 +25,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('settings'); } diff --git a/database/migrations/2019_07_31_103534_add_process_key.php b/database/migrations/2019_07_31_103534_add_process_key.php index 3ea434d0f4..e67ebc8adb 100644 --- a/database/migrations/2019_07_31_103534_add_process_key.php +++ b/database/migrations/2019_07_31_103534_add_process_key.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('processes', function (Blueprint $table) { $table->boolean('is_valid')->after('status')->default(true); @@ -32,7 +32,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { } }; diff --git a/database/migrations/2019_07_31_103634_add_script_category.php b/database/migrations/2019_07_31_103634_add_script_category.php index c2362e5761..68a159ba2a 100644 --- a/database/migrations/2019_07_31_103634_add_script_category.php +++ b/database/migrations/2019_07_31_103634_add_script_category.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('scripts', function (Blueprint $table) { $table->enum('status', ['ACTIVE', 'INACTIVE'])->default('ACTIVE'); @@ -28,7 +28,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { } }; diff --git a/database/migrations/2019_07_31_103652_add_screen_category.php b/database/migrations/2019_07_31_103652_add_screen_category.php index b3e72b787e..74f7ccc31e 100644 --- a/database/migrations/2019_07_31_103652_add_screen_category.php +++ b/database/migrations/2019_07_31_103652_add_screen_category.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('screens', function (Blueprint $table) { $table->enum('status', ['ACTIVE', 'INACTIVE'])->default('ACTIVE'); @@ -28,7 +28,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { } }; diff --git a/database/migrations/2019_07_31_175014_create_script_categories.php b/database/migrations/2019_07_31_175014_create_script_categories.php index 9253639b79..4eb746ba57 100644 --- a/database/migrations/2019_07_31_175014_create_script_categories.php +++ b/database/migrations/2019_07_31_175014_create_script_categories.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('script_categories', function (Blueprint $table) { $table->increments('id'); @@ -33,7 +33,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('script_categories'); } diff --git a/database/migrations/2019_08_02_165506_add_is_process_to_script_and_screen_categories.php b/database/migrations/2019_08_02_165506_add_is_process_to_script_and_screen_categories.php index 04a1204675..e69efab199 100644 --- a/database/migrations/2019_08_02_165506_add_is_process_to_script_and_screen_categories.php +++ b/database/migrations/2019_08_02_165506_add_is_process_to_script_and_screen_categories.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('script_categories', function (Blueprint $table) { $table->boolean('is_system')->after('status')->default(false); @@ -34,7 +34,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('', function (Blueprint $table) { // diff --git a/database/migrations/2019_08_12_113456_add_start_events_to_process.php b/database/migrations/2019_08_12_113456_add_start_events_to_process.php index d828574868..fb6fc93e8b 100644 --- a/database/migrations/2019_08_12_113456_add_start_events_to_process.php +++ b/database/migrations/2019_08_12_113456_add_start_events_to_process.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('processes', function (Blueprint $table) { $table->json('start_events'); @@ -30,7 +30,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('processes', function (Blueprint $table) { $table->dropColumn('start_events'); diff --git a/database/migrations/2019_08_12_143758_add_process_request_indexes.php b/database/migrations/2019_08_12_143758_add_process_request_indexes.php index 2fb5fe9be1..a6e499ed2a 100644 --- a/database/migrations/2019_08_12_143758_add_process_request_indexes.php +++ b/database/migrations/2019_08_12_143758_add_process_request_indexes.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new ProcessRequest; Schema::connection($model->getConnectionName())->table('process_requests', function (Blueprint $table) { @@ -25,7 +25,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { $model = new ProcessRequest; Schema::connection($model->getConnectionName())->table('process_requests', function (Blueprint $table) { diff --git a/database/migrations/2019_08_12_144133_add_notifications_indexes.php b/database/migrations/2019_08_12_144133_add_notifications_indexes.php index 3575d27582..ea97d8cf6f 100644 --- a/database/migrations/2019_08_12_144133_add_notifications_indexes.php +++ b/database/migrations/2019_08_12_144133_add_notifications_indexes.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('notifications', function (Blueprint $table) { $table->index(['notifiable_type', 'notifiable_id', 'read_at']); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('notifications', function (Blueprint $table) { $table->dropIndex('notifications_notifiable_type_notifiable_id_read_at_index'); diff --git a/database/migrations/2019_08_15_160606_add_data_to_process_request_tokens.php b/database/migrations/2019_08_15_160606_add_data_to_process_request_tokens.php index 73523c7df6..d693fae343 100644 --- a/database/migrations/2019_08_15_160606_add_data_to_process_request_tokens.php +++ b/database/migrations/2019_08_15_160606_add_data_to_process_request_tokens.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_request_tokens', function (Blueprint $table) { $table->json('data')->nullable(); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_request_tokens', function (Blueprint $table) { $table->dropColumn('data'); diff --git a/database/migrations/2019_08_28_221332_remove_field_category_screen_script.php b/database/migrations/2019_08_28_221332_remove_field_category_screen_script.php index c17e6500e7..92426ad916 100644 --- a/database/migrations/2019_08_28_221332_remove_field_category_screen_script.php +++ b/database/migrations/2019_08_28_221332_remove_field_category_screen_script.php @@ -14,7 +14,7 @@ * * @return void */ - public function up() + public function up(): void { foreach (Script::all() as $script) { if ($script->category) { @@ -50,7 +50,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('scripts', function (Blueprint $table) { $table->string('category', '100')->after('status')->nullable()->default(null); diff --git a/database/migrations/2019_09_03_190137_add_warnings_to_processes.php b/database/migrations/2019_09_03_190137_add_warnings_to_processes.php index 88eff84b48..895b788fe5 100644 --- a/database/migrations/2019_09_03_190137_add_warnings_to_processes.php +++ b/database/migrations/2019_09_03_190137_add_warnings_to_processes.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('processes', function (Blueprint $table) { $table->text('warnings')->nullable(); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('processes', function (Blueprint $table) { $table->dropColumn('warnings'); diff --git a/database/migrations/2019_09_03_212228_add_warnings_to_process_versions_table.php b/database/migrations/2019_09_03_212228_add_warnings_to_process_versions_table.php index 85e1352692..84bd395a6c 100644 --- a/database/migrations/2019_09_03_212228_add_warnings_to_process_versions_table.php +++ b/database/migrations/2019_09_03_212228_add_warnings_to_process_versions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_versions', function (Blueprint $table) { $table->text('warnings')->nullable(); @@ -23,7 +23,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_versions', function (Blueprint $table) { DB::statement('ALTER TABLE process_versions CHANGE bpmn bpmn TEXT'); diff --git a/database/migrations/2019_09_30_192339_create_category_assignments_table.php b/database/migrations/2019_09_30_192339_create_category_assignments_table.php index 6619195db3..fabf033428 100644 --- a/database/migrations/2019_09_30_192339_create_category_assignments_table.php +++ b/database/migrations/2019_09_30_192339_create_category_assignments_table.php @@ -16,7 +16,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('category_assignments', function (Blueprint $table) { $table->bigIncrements('id'); @@ -42,7 +42,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('category_assignments'); } diff --git a/database/migrations/2019_10_22_070524_register_versions_by_request.php b/database/migrations/2019_10_22_070524_register_versions_by_request.php index 06f8cfda1a..778fa57ff5 100644 --- a/database/migrations/2019_10_22_070524_register_versions_by_request.php +++ b/database/migrations/2019_10_22_070524_register_versions_by_request.php @@ -13,7 +13,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new ProcessRequest(); Schema::connection($model->getConnectionName())->table('process_requests', function (Blueprint $table) { @@ -30,7 +30,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { $model = new ProcessRequest(); Schema::connection($model->getConnectionName())->table('process_requests', function (Blueprint $table) { diff --git a/database/migrations/2019_11_05_143358_add_watcher_to_screens.php b/database/migrations/2019_11_05_143358_add_watcher_to_screens.php index 5dafe14a7f..b8d1ff2998 100644 --- a/database/migrations/2019_11_05_143358_add_watcher_to_screens.php +++ b/database/migrations/2019_11_05_143358_add_watcher_to_screens.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('screens', function (Blueprint $table) { $table->text('watchers')->nullable(); @@ -26,7 +26,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('screen_versions', function (Blueprint $table) { $table->dropColumn('watchers'); diff --git a/database/migrations/2019_11_20_100044_add_version_by_request_token.php b/database/migrations/2019_11_20_100044_add_version_by_request_token.php index 42f5311d18..1ca6cdb192 100644 --- a/database/migrations/2019_11_20_100044_add_version_by_request_token.php +++ b/database/migrations/2019_11_20_100044_add_version_by_request_token.php @@ -15,7 +15,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new ProcessRequest(); Schema::connection($model->getConnectionName())->table('process_requests', function (Blueprint $table) { @@ -48,7 +48,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { $model = new ProcessRequest(); Schema::table('process_request_tokens', function (Blueprint $table) { diff --git a/database/migrations/2019_12_04_104049_add_is_self_service_to_process_request_tokens.php b/database/migrations/2019_12_04_104049_add_is_self_service_to_process_request_tokens.php index 4d89976473..caed62698a 100644 --- a/database/migrations/2019_12_04_104049_add_is_self_service_to_process_request_tokens.php +++ b/database/migrations/2019_12_04_104049_add_is_self_service_to_process_request_tokens.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_request_tokens', function (Blueprint $table) { $table->boolean('is_self_service')->default(false); @@ -23,7 +23,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_request_tokens', function (Blueprint $table) { $table->dropColumn(['is_self_service', 'self_service_groups']); diff --git a/database/migrations/2019_12_06_045645_add_self_service_tasks_to_processes.php b/database/migrations/2019_12_06_045645_add_self_service_tasks_to_processes.php index c59563cd45..3323085f85 100644 --- a/database/migrations/2019_12_06_045645_add_self_service_tasks_to_processes.php +++ b/database/migrations/2019_12_06_045645_add_self_service_tasks_to_processes.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('processes', function (Blueprint $table) { $table->json('self_service_tasks')->nullable(); @@ -25,7 +25,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('processes', function (Blueprint $table) { $table->dropColumn(['self_service_tasks']); diff --git a/database/migrations/2020_02_05_112349_update_processes_whithout_version.php b/database/migrations/2020_02_05_112349_update_processes_whithout_version.php index b0c45b529b..d7f3b3e719 100644 --- a/database/migrations/2020_02_05_112349_update_processes_whithout_version.php +++ b/database/migrations/2020_02_05_112349_update_processes_whithout_version.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { // Update processes without any version saved foreach (Process::has('versions', 0)->get() as $process) { @@ -24,7 +24,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { // } diff --git a/database/migrations/2020_03_03_100305_create_request_user_permissions_table.php b/database/migrations/2020_03_03_100305_create_request_user_permissions_table.php index 4e72e1494c..288b854e6f 100644 --- a/database/migrations/2020_03_03_100305_create_request_user_permissions_table.php +++ b/database/migrations/2020_03_03_100305_create_request_user_permissions_table.php @@ -12,7 +12,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new ProcessRequest(); Schema::connection($model->getConnectionName()) @@ -37,7 +37,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('request_user_permissions'); } diff --git a/database/migrations/2020_03_03_181316_update_env_var_value_column.php b/database/migrations/2020_03_03_181316_update_env_var_value_column.php index 0069ad68d1..2061487fca 100644 --- a/database/migrations/2020_03_03_181316_update_env_var_value_column.php +++ b/database/migrations/2020_03_03_181316_update_env_var_value_column.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('environment_variables', function (Blueprint $table) { $table->longText('value')->change(); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('environment_variables', function (Blueprint $table) { $table->text('value')->change(); diff --git a/database/migrations/2020_03_04_130859_add_meta_field_to_users_table.php b/database/migrations/2020_03_04_130859_add_meta_field_to_users_table.php index 5a60327f5e..d0e5761290 100644 --- a/database/migrations/2020_03_04_130859_add_meta_field_to_users_table.php +++ b/database/migrations/2020_03_04_130859_add_meta_field_to_users_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('users', function (Blueprint $table) { $table->json('meta')->after('language')->nullable(); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('users', function (Blueprint $table) { $table->dropColumn('meta'); diff --git a/database/migrations/2020_03_11_122412_add_signal_events_process_requests_table.php b/database/migrations/2020_03_11_122412_add_signal_events_process_requests_table.php index 319ce25dc3..5663737ea1 100644 --- a/database/migrations/2020_03_11_122412_add_signal_events_process_requests_table.php +++ b/database/migrations/2020_03_11_122412_add_signal_events_process_requests_table.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new ProcessRequest(); Schema::connection($model->getConnectionName())->table('process_requests', function (Blueprint $table) { @@ -30,7 +30,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { $model = new ProcessRequest(); Schema::connection($model->getConnectionName())->table('process_requests', function (Blueprint $table) { diff --git a/database/migrations/2020_03_16_124924_add_id_request_user_permissions_table.php b/database/migrations/2020_03_16_124924_add_id_request_user_permissions_table.php index c26bd6fbb4..bb9e4383f6 100644 --- a/database/migrations/2020_03_16_124924_add_id_request_user_permissions_table.php +++ b/database/migrations/2020_03_16_124924_add_id_request_user_permissions_table.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new ProcessRequest(); Schema::connection($model->getConnectionName())->table('request_user_permissions', function (Blueprint $table) { @@ -27,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::connection($model->getConnectionName())->table('request_user_permissions', function (Blueprint $table) { $table->dropColumn(['id']); diff --git a/database/migrations/2020_03_19_154826_create_script_executors_table.php b/database/migrations/2020_03_19_154826_create_script_executors_table.php index 8f911b2f30..090931c475 100644 --- a/database/migrations/2020_03_19_154826_create_script_executors_table.php +++ b/database/migrations/2020_03_19_154826_create_script_executors_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('script_executors', function (Blueprint $table) { $table->increments('id'); @@ -27,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('script_executors'); } diff --git a/database/migrations/2020_03_19_155045_create_script_executor_versions_table.php b/database/migrations/2020_03_19_155045_create_script_executor_versions_table.php index ff054d648d..fc3bd5a87d 100644 --- a/database/migrations/2020_03_19_155045_create_script_executor_versions_table.php +++ b/database/migrations/2020_03_19_155045_create_script_executor_versions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('script_executor_versions', function (Blueprint $table) { $table->increments('id'); @@ -34,7 +34,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('script_executor_versions'); } diff --git a/database/migrations/2020_03_19_160105_add_executor_to_scripts_table.php b/database/migrations/2020_03_19_160105_add_executor_to_scripts_table.php index 5d04aa1609..0c6a68e9bf 100644 --- a/database/migrations/2020_03_19_160105_add_executor_to_scripts_table.php +++ b/database/migrations/2020_03_19_160105_add_executor_to_scripts_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('scripts', function (Blueprint $table) { $table->unsignedInteger('script_executor_id')->nullable(); @@ -26,7 +26,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('scripts', function (Blueprint $table) { $table->dropColumn('script_executor_id'); diff --git a/database/migrations/2020_03_19_195055_add_svg_column_to_processes_table.php b/database/migrations/2020_03_19_195055_add_svg_column_to_processes_table.php index 3e0a63093d..6e01ed636c 100644 --- a/database/migrations/2020_03_19_195055_add_svg_column_to_processes_table.php +++ b/database/migrations/2020_03_19_195055_add_svg_column_to_processes_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('processes', function (Blueprint $table) { $table->longText('svg')->after('self_service_tasks')->nullable(); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('processes', function (Blueprint $table) { $table->dropColumn('svg'); diff --git a/database/migrations/2020_03_19_195524_add_svg_column_to_process_versions_table.php b/database/migrations/2020_03_19_195524_add_svg_column_to_process_versions_table.php index 86fbabc53e..70e66f8797 100644 --- a/database/migrations/2020_03_19_195524_add_svg_column_to_process_versions_table.php +++ b/database/migrations/2020_03_19_195524_add_svg_column_to_process_versions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_versions', function (Blueprint $table) { $table->longText('svg')->after('self_service_tasks')->nullable(); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_versions', function (Blueprint $table) { $table->dropColumn('svg'); diff --git a/database/migrations/2020_04_06_003326_add_active_at_field_to_users_table.php b/database/migrations/2020_04_06_003326_add_active_at_field_to_users_table.php index 168b24d8ff..e9bb112b19 100644 --- a/database/migrations/2020_04_06_003326_add_active_at_field_to_users_table.php +++ b/database/migrations/2020_04_06_003326_add_active_at_field_to_users_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('users', function (Blueprint $table) { $table->dateTime('active_at')->nullable()->after('loggedin_at'); @@ -23,7 +23,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('users', function (Blueprint $table) { $table->dropColumn('active_at'); diff --git a/database/migrations/2020_04_20_114503_change_type_comments.php b/database/migrations/2020_04_20_114503_change_type_comments.php index d576d11e13..3c3445b979 100644 --- a/database/migrations/2020_04_20_114503_change_type_comments.php +++ b/database/migrations/2020_04_20_114503_change_type_comments.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new Comment(); $schema = Schema::connection($model->getConnectionName()); @@ -26,7 +26,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { } }; diff --git a/database/migrations/2020_06_04_060736_create_process_request_locks_table.php b/database/migrations/2020_06_04_060736_create_process_request_locks_table.php index 59da2dcbb9..752070f157 100644 --- a/database/migrations/2020_06_04_060736_create_process_request_locks_table.php +++ b/database/migrations/2020_06_04_060736_create_process_request_locks_table.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new ProcessRequest(); Schema::connection($model->getConnectionName())->create('process_request_locks', function (Blueprint $table) { @@ -27,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { $model = new ProcessRequest; Schema::connection($model->getConnectionName())->dropIfExists('process_request_locks'); diff --git a/database/migrations/2020_06_04_121416_add_soft_delete_comments.php b/database/migrations/2020_06_04_121416_add_soft_delete_comments.php index a79f0327e2..0b26b0c583 100644 --- a/database/migrations/2020_06_04_121416_add_soft_delete_comments.php +++ b/database/migrations/2020_06_04_121416_add_soft_delete_comments.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new Comment(); Schema::connection($model->getConnectionName())->table('comments', function (Blueprint $table) { @@ -26,7 +26,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { $model = new Comment(); Schema::connection($model->getConnectionName())->table('comments', function (Blueprint $table) { diff --git a/database/migrations/2020_09_17_232518_add_anonymous_user.php b/database/migrations/2020_09_17_232518_add_anonymous_user.php index f3c3bad526..ccf52460b9 100644 --- a/database/migrations/2020_09_17_232518_add_anonymous_user.php +++ b/database/migrations/2020_09_17_232518_add_anonymous_user.php @@ -12,7 +12,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('users', function (Blueprint $table) { $table->boolean('is_system')->after('is_administrator')->default(false); @@ -26,7 +26,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { User::where('username', AnonymousUser::ANONYMOUS_USERNAME)->forceDelete(); diff --git a/database/migrations/2020_09_23_150042_add_conditional_events_process_table.php b/database/migrations/2020_09_23_150042_add_conditional_events_process_table.php index 349522c781..077ae8188a 100644 --- a/database/migrations/2020_09_23_150042_add_conditional_events_process_table.php +++ b/database/migrations/2020_09_23_150042_add_conditional_events_process_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('processes', function (Blueprint $table) { $table->json('conditional_events')->nullable(); @@ -36,7 +36,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('processes', function (Blueprint $table) { $table->dropColumn(['conditional_events']); diff --git a/database/migrations/2020_10_14_002913_add_provider_to_oauth_clients.php b/database/migrations/2020_10_14_002913_add_provider_to_oauth_clients.php index e1d1d71b9e..92c03f9c76 100644 --- a/database/migrations/2020_10_14_002913_add_provider_to_oauth_clients.php +++ b/database/migrations/2020_10_14_002913_add_provider_to_oauth_clients.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('oauth_clients', function (Blueprint $table) { $table->string('provider')->after('secret')->nullable(); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('oauth_clients', function (Blueprint $table) { $table->dropColumn('provider'); diff --git a/database/migrations/2020_10_19_184045_add_interactive_column_to_screen_types_table.php b/database/migrations/2020_10_19_184045_add_interactive_column_to_screen_types_table.php index 004252aa33..8c313fcb4f 100644 --- a/database/migrations/2020_10_19_184045_add_interactive_column_to_screen_types_table.php +++ b/database/migrations/2020_10_19_184045_add_interactive_column_to_screen_types_table.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('screen_types', function (Blueprint $table) { $table->boolean('is_interactive')->default(false); @@ -34,7 +34,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('screen_types', function (Blueprint $table) { $table->dropColumn('is_interactive'); diff --git a/database/migrations/2020_11_16_215424_create_security_logs_table.php b/database/migrations/2020_11_16_215424_create_security_logs_table.php index 2222f7e2ac..2cd02b472d 100644 --- a/database/migrations/2020_11_16_215424_create_security_logs_table.php +++ b/database/migrations/2020_11_16_215424_create_security_logs_table.php @@ -12,7 +12,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new SecurityLog; Schema::connection($model->getConnectionName())->create('security_logs', function (Blueprint $table) { @@ -38,7 +38,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('security_logs'); diff --git a/database/migrations/2021_01_19_185956_add_fields_to_settings_table.php b/database/migrations/2021_01_19_185956_add_fields_to_settings_table.php index 0a2107dfea..cdc7092f23 100644 --- a/database/migrations/2021_01_19_185956_add_fields_to_settings_table.php +++ b/database/migrations/2021_01_19_185956_add_fields_to_settings_table.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('settings', function (Blueprint $table) { $table->string('name', 32)->after('config')->nullable(); @@ -45,7 +45,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('settings', function (Blueprint $table) { $table->dropColumn(['name', 'helper', 'group', 'format', 'hidden', 'readonly', 'ui']); diff --git a/database/migrations/2021_02_17_095337_add_delegation_manager_users.php b/database/migrations/2021_02_17_095337_add_delegation_manager_users.php index d0c5ab5c9f..7595a0762a 100644 --- a/database/migrations/2021_02_17_095337_add_delegation_manager_users.php +++ b/database/migrations/2021_02_17_095337_add_delegation_manager_users.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('users', function (Blueprint $table) { $table->unsignedInteger('delegation_user_id')->nullable(); @@ -28,7 +28,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('users', function (Blueprint $table) { $table->dropForeign('users_delegation_user_id_foreign'); diff --git a/database/migrations/2021_03_30_101736_create_test_status_table.php b/database/migrations/2021_03_30_101736_create_test_status_table.php index 4fd9bfd0b2..5763b97e20 100644 --- a/database/migrations/2021_03_30_101736_create_test_status_table.php +++ b/database/migrations/2021_03_30_101736_create_test_status_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('test_status', function (Blueprint $table) { $table->increments('id'); @@ -24,7 +24,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('test_status'); } diff --git a/database/migrations/2021_06_28_115443_add_due_at_process_request_locks.php b/database/migrations/2021_06_28_115443_add_due_at_process_request_locks.php index 6778992011..627c22f4e3 100644 --- a/database/migrations/2021_06_28_115443_add_due_at_process_request_locks.php +++ b/database/migrations/2021_06_28_115443_add_due_at_process_request_locks.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new ProcessRequest(); Schema::connection($model->getConnectionName())->table('process_request_locks', function (Blueprint $table) { @@ -25,7 +25,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { $model = new ProcessRequest(); Schema::connection($model->getConnectionName())->table('process_request_locks', function (Blueprint $table) { diff --git a/database/migrations/2021_08_24_064310_add_manager_id_on_groups_table.php b/database/migrations/2021_08_24_064310_add_manager_id_on_groups_table.php index 9c471453ee..f714a04d87 100644 --- a/database/migrations/2021_08_24_064310_add_manager_id_on_groups_table.php +++ b/database/migrations/2021_08_24_064310_add_manager_id_on_groups_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('groups', function (Blueprint $table) { $table->unsignedInteger('manager_id') @@ -26,7 +26,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('groups', function (Blueprint $table) { $table->dropForeign('groups_manager_id_foreign'); diff --git a/database/migrations/2021_09_10_132727_change_user_table_email_unique.php b/database/migrations/2021_09_10_132727_change_user_table_email_unique.php index 750024deee..954b777c99 100644 --- a/database/migrations/2021_09_10_132727_change_user_table_email_unique.php +++ b/database/migrations/2021_09_10_132727_change_user_table_email_unique.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('users', function (Blueprint $table) { $table->dropUnique('users_email_unique'); @@ -23,7 +23,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { // } diff --git a/database/migrations/2021_09_20_152502_add_force_change_password_to_users_table.php b/database/migrations/2021_09_20_152502_add_force_change_password_to_users_table.php index ef767ed01e..c8073c575d 100644 --- a/database/migrations/2021_09_20_152502_add_force_change_password_to_users_table.php +++ b/database/migrations/2021_09_20_152502_add_force_change_password_to_users_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('users', function (Blueprint $table) { $table->boolean('force_change_password')->default(0); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('users', function (Blueprint $table) { $table->dropColumn('force_change_password'); diff --git a/database/migrations/2021_09_28_162655_change_status_processes_table.php b/database/migrations/2021_09_28_162655_change_status_processes_table.php index 197d6deeb8..e7d19af7bf 100644 --- a/database/migrations/2021_09_28_162655_change_status_processes_table.php +++ b/database/migrations/2021_09_28_162655_change_status_processes_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { DB::statement("ALTER TABLE processes MODIFY COLUMN status ENUM('ACTIVE', 'INACTIVE', 'ARCHIVED') DEFAULT 'ACTIVE' NOT NULL"); @@ -24,7 +24,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { DB::table('processes') ->where('status', 'ARCHIVED') diff --git a/database/migrations/2021_09_28_181624_change_status_process_versions_table.php b/database/migrations/2021_09_28_181624_change_status_process_versions_table.php index 89fe04eb6e..d5a2b0ec30 100644 --- a/database/migrations/2021_09_28_181624_change_status_process_versions_table.php +++ b/database/migrations/2021_09_28_181624_change_status_process_versions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { DB::statement("ALTER TABLE process_versions MODIFY COLUMN status ENUM('ACTIVE', 'INACTIVE', 'ARCHIVED') DEFAULT 'ACTIVE' NOT NULL"); @@ -24,7 +24,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { DB::table('process_versions') ->where('status', 'ARCHIVED') diff --git a/database/migrations/2021_09_28_202132_add_process_version_to_processables_table.php b/database/migrations/2021_09_28_202132_add_process_version_to_processables_table.php index 37fd76346a..9d07085df9 100644 --- a/database/migrations/2021_09_28_202132_add_process_version_to_processables_table.php +++ b/database/migrations/2021_09_28_202132_add_process_version_to_processables_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('processables', function (Blueprint $table) { $table->integer('process_version_id') @@ -30,7 +30,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('processables', function (Blueprint $table) { $table->dropIfExists('process_version_id'); diff --git a/database/migrations/2021_11_23_022810_add_multiple_to_process_request_locks.php b/database/migrations/2021_11_23_022810_add_multiple_to_process_request_locks.php index f606c7c3e9..350ce3366b 100644 --- a/database/migrations/2021_11_23_022810_add_multiple_to_process_request_locks.php +++ b/database/migrations/2021_11_23_022810_add_multiple_to_process_request_locks.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $model = new ProcessRequest(); Schema::connection($model->getConnectionName())->table('process_request_locks', function (Blueprint $table) { @@ -24,7 +24,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { $model = new ProcessRequest(); Schema::connection($model->getConnectionName())->table('process_request_locks', function (Blueprint $table) { diff --git a/database/migrations/2022_02_03_133619_add_notifications_index_to_process_request_tokens.php b/database/migrations/2022_02_03_133619_add_notifications_index_to_process_request_tokens.php index a76b6989e3..b9f82ef288 100644 --- a/database/migrations/2022_02_03_133619_add_notifications_index_to_process_request_tokens.php +++ b/database/migrations/2022_02_03_133619_add_notifications_index_to_process_request_tokens.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_request_tokens', function (Blueprint $table) { // Add index by: user_id, status, due_at, due_notified @@ -23,7 +23,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_request_tokens', function (Blueprint $table) { // Remove index by: user_id, status, due_at, due_notified diff --git a/database/migrations/2022_02_15_161839_add_do_not_sanitize_to_process_requests_table.php b/database/migrations/2022_02_15_161839_add_do_not_sanitize_to_process_requests_table.php index ec42a012f1..0318f6ebb8 100644 --- a/database/migrations/2022_02_15_161839_add_do_not_sanitize_to_process_requests_table.php +++ b/database/migrations/2022_02_15_161839_add_do_not_sanitize_to_process_requests_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_requests', function (Blueprint $table) { $table->json('do_not_sanitize')->after('name')->nullable(); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_requests', function (Blueprint $table) { $table->dropColumn('do_not_sanitize'); diff --git a/database/migrations/2022_05_24_122028_create_webentry_routes_table.php b/database/migrations/2022_05_24_122028_create_webentry_routes_table.php index b15328ec27..b2f0e67f7e 100644 --- a/database/migrations/2022_05_24_122028_create_webentry_routes_table.php +++ b/database/migrations/2022_05_24_122028_create_webentry_routes_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('webentry_routes', function (Blueprint $table) { $table->bigIncrements('id'); @@ -31,7 +31,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('webentry_routes'); Schema::table('process_request_tokens', function (Blueprint $table) { diff --git a/database/migrations/2022_06_22_160857_update_ui_in_settings_table.php b/database/migrations/2022_06_22_160857_update_ui_in_settings_table.php index 2a3340ae36..de1c9fb248 100644 --- a/database/migrations/2022_06_22_160857_update_ui_in_settings_table.php +++ b/database/migrations/2022_06_22_160857_update_ui_in_settings_table.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $this->updateEmailServerUi(); $this->updateAbeUi(); @@ -24,7 +24,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { $this->revertEmailServerUi(); $this->revertAbeUi(); diff --git a/database/migrations/2022_07_11_000000_add_uuids_to_core.php b/database/migrations/2022_07_11_000000_add_uuids_to_core.php index d916156409..3c708d37d5 100644 --- a/database/migrations/2022_07_11_000000_add_uuids_to_core.php +++ b/database/migrations/2022_07_11_000000_add_uuids_to_core.php @@ -24,7 +24,7 @@ * * @return void */ - public function up() + public function up(): void { MigrationHelper::addUuidsToTables(self::TABLES); MigrationHelper::populateUuids(self::TABLES); @@ -35,7 +35,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { MigrationHelper::removeUuidsFromTables(self::TABLES); } diff --git a/database/migrations/2022_08_09_220519_upgrade_media_library.php b/database/migrations/2022_08_09_220519_upgrade_media_library.php index e828b2103d..84bfd452c7 100644 --- a/database/migrations/2022_08_09_220519_upgrade_media_library.php +++ b/database/migrations/2022_08_09_220519_upgrade_media_library.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { // add conversions_disk field to the media table ( varchar 255 nullable ) Schema::table('media', function (Blueprint $table) { @@ -40,7 +40,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { // remove conversions_disk field from the media table Schema::table('media', function (Blueprint $table) { diff --git a/database/migrations/2022_08_24_000000_add_uuid_to_failed_jobs_table.php b/database/migrations/2022_08_24_000000_add_uuid_to_failed_jobs_table.php index 82a6b1cba1..ede61ca6ac 100755 --- a/database/migrations/2022_08_24_000000_add_uuid_to_failed_jobs_table.php +++ b/database/migrations/2022_08_24_000000_add_uuid_to_failed_jobs_table.php @@ -12,7 +12,7 @@ * * @return void */ - public function up() + public function up(): void { if (!Schema::hasColumn('failed_jobs', 'uuid')) { Schema::table('failed_jobs', function (Blueprint $table) { @@ -34,7 +34,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('failed_jobs', function (Blueprint $table) { $table->dropColumn('uuid'); diff --git a/database/migrations/2022_12_15_014415_add_is_self_service_index_to_process_request_tokens_table.php b/database/migrations/2022_12_15_014415_add_is_self_service_index_to_process_request_tokens_table.php index 2a44237d21..7bfa820401 100644 --- a/database/migrations/2022_12_15_014415_add_is_self_service_index_to_process_request_tokens_table.php +++ b/database/migrations/2022_12_15_014415_add_is_self_service_index_to_process_request_tokens_table.php @@ -20,10 +20,9 @@ public function __construct() { - } - public function up() + public function up(): void { Schema::table($this->table, function (Blueprint $table) { if (!Schema::hasIndex($this->table, $this->indexName)) { @@ -37,7 +36,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_request_tokens', function (Blueprint $table) { if (Schema::hasIndex($this->table, $this->indexName)) { diff --git a/database/migrations/2023_01_20_184154_create_notification_virtual_column_url.php b/database/migrations/2023_01_20_184154_create_notification_virtual_column_url.php index 52e3c3a927..c3c281f819 100644 --- a/database/migrations/2023_01_20_184154_create_notification_virtual_column_url.php +++ b/database/migrations/2023_01_20_184154_create_notification_virtual_column_url.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('notifications', function (Blueprint $table) { $table->string('url')->nullable()->index(); @@ -33,7 +33,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('notifications', function (Blueprint $table) { $table->dropColumn('url'); diff --git a/database/migrations/2023_02_27_130520_add_draft_column_to_versions_tables.php b/database/migrations/2023_02_27_130520_add_draft_column_to_versions_tables.php index 04cf0d4b77..a1f2cb471b 100644 --- a/database/migrations/2023_02_27_130520_add_draft_column_to_versions_tables.php +++ b/database/migrations/2023_02_27_130520_add_draft_column_to_versions_tables.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_versions', function (Blueprint $table) { $table->boolean('draft')->default(false)->after('user_id'); @@ -31,7 +31,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_versions', function (Blueprint $table) { $table->dropColumn('draft'); diff --git a/database/migrations/2023_03_09_023511_create_process_templates_table.php b/database/migrations/2023_03_09_023511_create_process_templates_table.php index c80dd5aa36..74c84fcae3 100644 --- a/database/migrations/2023_03_09_023511_create_process_templates_table.php +++ b/database/migrations/2023_03_09_023511_create_process_templates_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('process_templates', function (Blueprint $table) { $table->id(); @@ -41,7 +41,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('process_templates'); } diff --git a/database/migrations/2023_03_13_172619_create_data_lake_views.php b/database/migrations/2023_03_13_172619_create_data_lake_views.php index c1fbbc953a..a7dec4e06e 100644 --- a/database/migrations/2023_03_13_172619_create_data_lake_views.php +++ b/database/migrations/2023_03_13_172619_create_data_lake_views.php @@ -9,7 +9,7 @@ * * @return void */ - public function up() + public function up(): void { Artisan::call('processmaker:create-data-lake-views'); } @@ -19,7 +19,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Artisan::call('processmaker:create-data-lake-views --drop'); } diff --git a/database/migrations/2023_03_21_155232_add_process_template_permissions_to_permissions_table.php b/database/migrations/2023_03_21_155232_add_process_template_permissions_to_permissions_table.php index 5422f1f2a2..7d803b2747 100644 --- a/database/migrations/2023_03_21_155232_add_process_template_permissions_to_permissions_table.php +++ b/database/migrations/2023_03_21_155232_add_process_template_permissions_to_permissions_table.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $permissions = [ ['Create Process Templates', 'create-process-templates'], @@ -36,7 +36,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Permission::where('group', 'Process Templates')->delete(); } diff --git a/database/migrations/2023_04_04_191215_create_ai_searches_table.php b/database/migrations/2023_04_04_191215_create_ai_searches_table.php index ebfbc4fa83..e9da13e0bd 100644 --- a/database/migrations/2023_04_04_191215_create_ai_searches_table.php +++ b/database/migrations/2023_04_04_191215_create_ai_searches_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('ai_searches', function (Blueprint $table) { $table->id(); @@ -26,7 +26,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('ai_searches'); } diff --git a/database/migrations/2023_04_06_002637_add_is_template_column_to_specific_tables.php b/database/migrations/2023_04_06_002637_add_is_template_column_to_specific_tables.php index 60e7776593..4a0c0d1b0f 100644 --- a/database/migrations/2023_04_06_002637_add_is_template_column_to_specific_tables.php +++ b/database/migrations/2023_04_06_002637_add_is_template_column_to_specific_tables.php @@ -5,7 +5,7 @@ use Illuminate\Support\Facades\Schema; return new class extends Migration { - public function up() + public function up(): void { // Add the names of the tables you want to modify here $tables_to_modify = ['processes', 'screens', 'scripts', 'data_sources', 'collections', 'saved_searches']; @@ -19,7 +19,7 @@ public function up() } } - public function down() + public function down(): void { // Add the names of the tables you want to modify here $tables_to_modify = ['processes', 'screens', 'scripts', 'data_sources', 'collections', 'saved_searches']; diff --git a/database/migrations/2023_04_11_184245_add_user_id_to_ai_searches_table.php b/database/migrations/2023_04_11_184245_add_user_id_to_ai_searches_table.php index 80a304c84b..724d1a6f3f 100644 --- a/database/migrations/2023_04_11_184245_add_user_id_to_ai_searches_table.php +++ b/database/migrations/2023_04_11_184245_add_user_id_to_ai_searches_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('ai_searches', function (Blueprint $table) { $table->unsignedInteger('user_id'); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('ai_searches', function (Blueprint $table) { $table->dropColumn('user_id'); diff --git a/database/migrations/2023_04_11_191032_add_soft_deletes_to_ai_searches_table.php b/database/migrations/2023_04_11_191032_add_soft_deletes_to_ai_searches_table.php index 9dd3b58170..9173d84869 100644 --- a/database/migrations/2023_04_11_191032_add_soft_deletes_to_ai_searches_table.php +++ b/database/migrations/2023_04_11_191032_add_soft_deletes_to_ai_searches_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('ai_searches', function (Blueprint $table) { $table->softDeletes(); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('ai_searches', function (Blueprint $table) { $table->dropSoftDeletes(); diff --git a/database/migrations/2023_04_26_164247_add_is_template_column_to_specific_version_tables.php b/database/migrations/2023_04_26_164247_add_is_template_column_to_specific_version_tables.php index cfd639dfde..793fafe1b1 100644 --- a/database/migrations/2023_04_26_164247_add_is_template_column_to_specific_version_tables.php +++ b/database/migrations/2023_04_26_164247_add_is_template_column_to_specific_version_tables.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { // Add the names of the tables you want to modify here $tables_to_modify = ['process_versions', 'screen_versions', 'script_versions']; @@ -29,7 +29,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { // Add the names of the tables you want to modify here $tables_to_modify = ['process_versions', 'screen_versions', 'script_versions']; diff --git a/database/migrations/2023_05_02_183152_add_order_column_index_to_media_table.php b/database/migrations/2023_05_02_183152_add_order_column_index_to_media_table.php index 284ee39108..43c5f9d6cb 100644 --- a/database/migrations/2023_05_02_183152_add_order_column_index_to_media_table.php +++ b/database/migrations/2023_05_02_183152_add_order_column_index_to_media_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('media', function (Blueprint $table) { $table->index('order_column', 'media_order_column_index'); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('media', function (Blueprint $table) { $table->dropIndex('media_order_column_index'); diff --git a/database/migrations/2023_05_02_184218_add_indexes_to_process_request_tokens.php b/database/migrations/2023_05_02_184218_add_indexes_to_process_request_tokens.php index ae1c377de4..3aa2eab027 100644 --- a/database/migrations/2023_05_02_184218_add_indexes_to_process_request_tokens.php +++ b/database/migrations/2023_05_02_184218_add_indexes_to_process_request_tokens.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_request_tokens', function (Blueprint $table) { $table->index('status'); @@ -24,7 +24,7 @@ public function up() *rt mi * @return void */ - public function down() + public function down(): void { Schema::table('process_request_tokens', function (Blueprint $table) { $table->dropIndex(['status']); diff --git a/database/migrations/2023_05_03_131855_add_avatar_to_users_table.php b/database/migrations/2023_05_03_131855_add_avatar_to_users_table.php index c907ed8c0a..c43e0be808 100644 --- a/database/migrations/2023_05_03_131855_add_avatar_to_users_table.php +++ b/database/migrations/2023_05_03_131855_add_avatar_to_users_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('users', function (Blueprint $table) { $table->string('avatar')->nullable(); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('users', function (Blueprint $table) { $table->dropColumn('avatar'); diff --git a/database/migrations/2023_05_08_151045_add_translations_to_screens_table.php b/database/migrations/2023_05_08_151045_add_translations_to_screens_table.php index 77c97e4b58..3a4e594406 100644 --- a/database/migrations/2023_05_08_151045_add_translations_to_screens_table.php +++ b/database/migrations/2023_05_08_151045_add_translations_to_screens_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('screens', function (Blueprint $table) { $table->json('translations')->nullable()->after('watchers'); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('screens', function (Blueprint $table) { $table->dropColumn('translations'); diff --git a/database/migrations/2023_05_10_143850_add_iso27001_columns_for_security_logs_table.php b/database/migrations/2023_05_10_143850_add_iso27001_columns_for_security_logs_table.php index 6a2713a94f..38cb819ab9 100644 --- a/database/migrations/2023_05_10_143850_add_iso27001_columns_for_security_logs_table.php +++ b/database/migrations/2023_05_10_143850_add_iso27001_columns_for_security_logs_table.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('security_logs', function (Blueprint $table) { $table->json('data')->nullable(); @@ -32,7 +32,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('security_logs', function (Blueprint $table) { $table->dropColumn('data'); diff --git a/database/migrations/2023_05_12_164554_add_translations_to_screen_versions_table.php b/database/migrations/2023_05_12_164554_add_translations_to_screen_versions_table.php index 71e4146e6f..13d7126901 100644 --- a/database/migrations/2023_05_12_164554_add_translations_to_screen_versions_table.php +++ b/database/migrations/2023_05_12_164554_add_translations_to_screen_versions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('screen_versions', function (Blueprint $table) { $table->json('translations')->nullable()->after('watchers'); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('screen_versions', function (Blueprint $table) { $table->dropColumn('translations'); diff --git a/database/migrations/2023_05_16_193822_create_process_translation_tokens_table.php b/database/migrations/2023_05_16_193822_create_process_translation_tokens_table.php index aa77943546..cb898e9e23 100644 --- a/database/migrations/2023_05_16_193822_create_process_translation_tokens_table.php +++ b/database/migrations/2023_05_16_193822_create_process_translation_tokens_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('process_translation_tokens', function (Blueprint $table) { $table->id(); @@ -26,7 +26,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('process_translation_tokens'); } diff --git a/database/migrations/2023_05_17_171812_add_uuids_to_process_requests_tables.php b/database/migrations/2023_05_17_171812_add_uuids_to_process_requests_tables.php index 3d7d1c8280..bb5c74297a 100644 --- a/database/migrations/2023_05_17_171812_add_uuids_to_process_requests_tables.php +++ b/database/migrations/2023_05_17_171812_add_uuids_to_process_requests_tables.php @@ -16,7 +16,7 @@ * * @return void */ - public function up() + public function up(): void { MigrationHelper::addUuidsToTables(self::TABLES); MigrationHelper::populateUuids(self::TABLES); @@ -27,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { MigrationHelper::removeUuidsFromTables(self::TABLES); } diff --git a/database/migrations/2023_05_17_171847_add_indexes_to_process_requests_table.php b/database/migrations/2023_05_17_171847_add_indexes_to_process_requests_table.php index 9a03426ade..366042b4b8 100644 --- a/database/migrations/2023_05_17_171847_add_indexes_to_process_requests_table.php +++ b/database/migrations/2023_05_17_171847_add_indexes_to_process_requests_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_requests', function (Blueprint $table) { $table->index('uuid'); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_requests', function (Blueprint $table) { $table->dropIndex(['uuid']); diff --git a/database/migrations/2023_05_17_171917_add_indexes_to_process_request_tokens_table.php b/database/migrations/2023_05_17_171917_add_indexes_to_process_request_tokens_table.php index 42d10f4984..a228c18c76 100644 --- a/database/migrations/2023_05_17_171917_add_indexes_to_process_request_tokens_table.php +++ b/database/migrations/2023_05_17_171917_add_indexes_to_process_request_tokens_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_request_tokens', function (Blueprint $table) { $table->index('uuid'); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_request_tokens', function (Blueprint $table) { $table->dropIndex(['uuid']); diff --git a/database/migrations/2023_05_22_161025_add_changes_column_to_security_logs_table.php b/database/migrations/2023_05_22_161025_add_changes_column_to_security_logs_table.php index 08b9f713dc..8dabb08b00 100644 --- a/database/migrations/2023_05_22_161025_add_changes_column_to_security_logs_table.php +++ b/database/migrations/2023_05_22_161025_add_changes_column_to_security_logs_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('security_logs', function (Blueprint $table) { $table->json('changes')->nullable(); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('security_logs', function (Blueprint $table) { $table->dropColumn('changes'); diff --git a/database/migrations/2023_05_30_164538_add_retry_attempts_and_retry_wait_time_field_to_scripts_table.php b/database/migrations/2023_05_30_164538_add_retry_attempts_and_retry_wait_time_field_to_scripts_table.php index 4d60a5b6d6..11eed7fde3 100644 --- a/database/migrations/2023_05_30_164538_add_retry_attempts_and_retry_wait_time_field_to_scripts_table.php +++ b/database/migrations/2023_05_30_164538_add_retry_attempts_and_retry_wait_time_field_to_scripts_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('scripts', function (Blueprint $table) { $table->unsignedSmallInteger('retry_attempts')->after('code')->default(0); @@ -23,7 +23,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('scripts', function (Blueprint $table) { $table->dropColumn('retry_attempts'); diff --git a/database/migrations/2023_05_30_164747_add_retry_attempts_and_retry_wait_time_field_to_script_versions_table.php b/database/migrations/2023_05_30_164747_add_retry_attempts_and_retry_wait_time_field_to_script_versions_table.php index ac6dadd6b6..60bd2c289a 100644 --- a/database/migrations/2023_05_30_164747_add_retry_attempts_and_retry_wait_time_field_to_script_versions_table.php +++ b/database/migrations/2023_05_30_164747_add_retry_attempts_and_retry_wait_time_field_to_script_versions_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('script_versions', function (Blueprint $table) { $table->unsignedSmallInteger('retry_attempts')->after('code')->default(0); @@ -23,7 +23,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('script_versions', function (Blueprint $table) { $table->dropColumn('retry_attempts'); diff --git a/database/migrations/2023_05_30_173341_create_job_batches_table.php b/database/migrations/2023_05_30_173341_create_job_batches_table.php index c9959a2a1b..6d052200d2 100644 --- a/database/migrations/2023_05_30_173341_create_job_batches_table.php +++ b/database/migrations/2023_05_30_173341_create_job_batches_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('job_batches', function (Blueprint $table) { $table->string('id')->primary(); @@ -31,7 +31,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('job_batches'); } diff --git a/database/migrations/2023_06_06_183042_add_process_uuid_column_in_process_templates_table.php b/database/migrations/2023_06_06_183042_add_process_uuid_column_in_process_templates_table.php index a96d511c61..0e716af101 100644 --- a/database/migrations/2023_06_06_183042_add_process_uuid_column_in_process_templates_table.php +++ b/database/migrations/2023_06_06_183042_add_process_uuid_column_in_process_templates_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_templates', function (Blueprint $table) { $table->string('editing_process_uuid')->after('process_id')->nullable()->unique(); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_templates', function (Blueprint $table) { $table->dropColumn('editing_process_uuid'); diff --git a/database/migrations/2023_06_07_132922_add_process_translation_permissions_to_permissions_table.php b/database/migrations/2023_06_07_132922_add_process_translation_permissions_to_permissions_table.php index 2bfd37ecc0..0e07ba100a 100644 --- a/database/migrations/2023_06_07_132922_add_process_translation_permissions_to_permissions_table.php +++ b/database/migrations/2023_06_07_132922_add_process_translation_permissions_to_permissions_table.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { $permissions = [ ['Create Process Translations', 'create-process-translations'], @@ -37,7 +37,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Permission::where('group', 'Process Translations')->delete(); } diff --git a/database/migrations/2023_06_29_110207_add_collaboration_uuid_to_process_requests_table.php b/database/migrations/2023_06_29_110207_add_collaboration_uuid_to_process_requests_table.php index 4f4c303ee3..0bb7fd5e09 100644 --- a/database/migrations/2023_06_29_110207_add_collaboration_uuid_to_process_requests_table.php +++ b/database/migrations/2023_06_29_110207_add_collaboration_uuid_to_process_requests_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_requests', function (Blueprint $table) { // add collaboration_uuid column @@ -24,7 +24,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_requests', function (Blueprint $table) { // drop collaboration_uuid column diff --git a/database/migrations/2023_06_29_110207_add_uuid_to_process_collaborations_table.php b/database/migrations/2023_06_29_110207_add_uuid_to_process_collaborations_table.php index 5a46cba39d..25168fceeb 100644 --- a/database/migrations/2023_06_29_110207_add_uuid_to_process_collaborations_table.php +++ b/database/migrations/2023_06_29_110207_add_uuid_to_process_collaborations_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_collaborations', function (Blueprint $table) { // add uuid column @@ -24,7 +24,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_collaborations', function (Blueprint $table) { // drop collaboration_uuid column diff --git a/database/migrations/2023_07_13_110125_add_index_by_model_id_to_media_table.php b/database/migrations/2023_07_13_110125_add_index_by_model_id_to_media_table.php index 9bb2c2d8cc..df78825069 100644 --- a/database/migrations/2023_07_13_110125_add_index_by_model_id_to_media_table.php +++ b/database/migrations/2023_07_13_110125_add_index_by_model_id_to_media_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('media', function (Blueprint $table) { // Create index by model_id @@ -23,7 +23,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('media', function (Blueprint $table) { // Drop index by model_id diff --git a/database/migrations/2023_07_13_131811_create_process_collaboration_locks_table.php b/database/migrations/2023_07_13_131811_create_process_collaboration_locks_table.php index 6c79a457b2..3d45582e7c 100644 --- a/database/migrations/2023_07_13_131811_create_process_collaboration_locks_table.php +++ b/database/migrations/2023_07_13_131811_create_process_collaboration_locks_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::create('process_collaboration_locks', function (Blueprint $table) { $table->string('uuid', 36); @@ -23,7 +23,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('process_collaboration_locks'); } diff --git a/database/migrations/2023_07_14_123928_add_index_by_name_to_process_requests_table.php b/database/migrations/2023_07_14_123928_add_index_by_name_to_process_requests_table.php index d97f2d58f4..d3aced513a 100644 --- a/database/migrations/2023_07_14_123928_add_index_by_name_to_process_requests_table.php +++ b/database/migrations/2023_07_14_123928_add_index_by_name_to_process_requests_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_requests', function (Blueprint $table) { // Create index by name @@ -23,7 +23,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_requests', function (Blueprint $table) { // Drop index diff --git a/database/migrations/2023_08_08_223446_add_version_column_to_process_templates.php b/database/migrations/2023_08_08_223446_add_version_column_to_process_templates.php index e4869430b4..3652f7fcd6 100644 --- a/database/migrations/2023_08_08_223446_add_version_column_to_process_templates.php +++ b/database/migrations/2023_08_08_223446_add_version_column_to_process_templates.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('process_templates', function (Blueprint $table) { $table->string('version')->nullable()->after('description'); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('process_templates', function (Blueprint $table) { $table->dropColumn('version'); diff --git a/database/migrations/2023_08_10_152955_add_versions_to_default_templates_in_process_templates.php b/database/migrations/2023_08_10_152955_add_versions_to_default_templates_in_process_templates.php index 46ef846a00..5d20fa1304 100644 --- a/database/migrations/2023_08_10_152955_add_versions_to_default_templates_in_process_templates.php +++ b/database/migrations/2023_08_10_152955_add_versions_to_default_templates_in_process_templates.php @@ -11,7 +11,7 @@ * * @return void */ - public function up() + public function up(): void { ProcessTemplates::where('user_id', null) ->where('version', null) @@ -23,7 +23,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { ProcessTemplates::where('user_id', null) ->where('version', '1.0.0') diff --git a/database/migrations/2023_08_16_000000_rename_password_resets_table.php b/database/migrations/2023_08_16_000000_rename_password_resets_table.php index 597a79e200..d2f7e43164 100644 --- a/database/migrations/2023_08_16_000000_rename_password_resets_table.php +++ b/database/migrations/2023_08_16_000000_rename_password_resets_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::rename('password_resets', 'password_reset_tokens'); } @@ -20,7 +20,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::rename('password_reset_tokens', 'password_resets'); } diff --git a/database/migrations/2023_11_27_215150_create_wizard_templates_table.php b/database/migrations/2023_11_27_215150_create_wizard_templates_table.php index d7a34c4789..fc6bfcd974 100644 --- a/database/migrations/2023_11_27_215150_create_wizard_templates_table.php +++ b/database/migrations/2023_11_27_215150_create_wizard_templates_table.php @@ -4,9 +4,8 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateWizardTemplatesTable extends Migration -{ - public function up() +return new class extends Migration { + public function up(): void { Schema::create('wizard_templates', function (Blueprint $table) { $table->id(); @@ -25,8 +24,8 @@ public function up() }); } - public function down() + public function down(): void { Schema::dropIfExists('wizard_templates'); } -} +}; diff --git a/database/migrations/2023_12_04_210217_modify_wizard_templates_table.php b/database/migrations/2023_12_04_210217_modify_wizard_templates_table.php index 776d4e4b20..78fc2d4ef0 100644 --- a/database/migrations/2023_12_04_210217_modify_wizard_templates_table.php +++ b/database/migrations/2023_12_04_210217_modify_wizard_templates_table.php @@ -4,9 +4,8 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class ModifyWizardTemplatesTable extends Migration -{ - public function up() +return new class extends Migration { + public function up(): void { // Change the process_id column to helper_process_id Schema::table('wizard_templates', function (Blueprint $table) { @@ -36,7 +35,7 @@ public function up() }); } - public function down() + public function down(): void { // Reverse the changes in the down method if needed Schema::table('wizard_templates', function (Blueprint $table) { @@ -52,4 +51,4 @@ public function down() $table->dropColumn('config_collection_id'); }); } -} +}; diff --git a/database/migrations/2023_12_06_200306_create_user_resource_views_table.php b/database/migrations/2023_12_06_200306_create_user_resource_views_table.php index fa64160c2e..d8c7b619f8 100644 --- a/database/migrations/2023_12_06_200306_create_user_resource_views_table.php +++ b/database/migrations/2023_12_06_200306_create_user_resource_views_table.php @@ -4,9 +4,8 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateUserResourceViewsTable extends Migration -{ - public function up() +return new class extends Migration { + public function up(): void { Schema::create('user_resource_views', function (Blueprint $table) { $table->id(); @@ -25,8 +24,8 @@ public function up() }); } - public function down() + public function down(): void { Schema::dropIfExists('user_resource_views'); } -} +}; diff --git a/database/migrations/2024_01_17_183702_add_2fa_field_to_groups_table.php b/database/migrations/2024_01_17_183702_add_2fa_field_to_groups_table.php index f19ab100a9..f49cb5ddb3 100644 --- a/database/migrations/2024_01_17_183702_add_2fa_field_to_groups_table.php +++ b/database/migrations/2024_01_17_183702_add_2fa_field_to_groups_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_02_14_140435_add_is_priority_to_process_request_tokens_table.php b/database/migrations/2024_02_14_140435_add_is_priority_to_process_request_tokens_table.php index 0da26463f0..b46670bd6b 100644 --- a/database/migrations/2024_02_14_140435_add_is_priority_to_process_request_tokens_table.php +++ b/database/migrations/2024_02_14_140435_add_is_priority_to_process_request_tokens_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_02_26_182828_create_settings_menus_table.php b/database/migrations/2024_02_26_182828_create_settings_menus_table.php index 52da8e67f1..4d64c4103a 100644 --- a/database/migrations/2024_02_26_182828_create_settings_menus_table.php +++ b/database/migrations/2024_02_26_182828_create_settings_menus_table.php @@ -5,14 +5,13 @@ use Illuminate\Support\Facades\Schema; use ProcessMaker\Models\SettingsMenus; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. * * @return void */ - public function up() + public function up(): void { Schema::create('settings_menus', function (Blueprint $table) { $table->increments('id'); @@ -28,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('settings_menus'); } diff --git a/database/migrations/2024_02_27_182828_add_group_id_column_to_settings_table.php b/database/migrations/2024_02_27_182828_add_group_id_column_to_settings_table.php index 1b60071c86..c11e082728 100644 --- a/database/migrations/2024_02_27_182828_add_group_id_column_to_settings_table.php +++ b/database/migrations/2024_02_27_182828_add_group_id_column_to_settings_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_03_06_213416_create_alternatives_table.php b/database/migrations/2024_03_06_213416_create_alternatives_table.php index ea54f147fa..9f42f340d8 100644 --- a/database/migrations/2024_03_06_213416_create_alternatives_table.php +++ b/database/migrations/2024_03_06_213416_create_alternatives_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_03_28_164852_create_embed_table.php b/database/migrations/2024_03_28_164852_create_embed_table.php index 68a5a66231..a257b5f5ba 100644 --- a/database/migrations/2024_03_28_164852_create_embed_table.php +++ b/database/migrations/2024_03_28_164852_create_embed_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_04_01_161132_create_process_launchpad.php b/database/migrations/2024_04_01_161132_create_process_launchpad.php index 5d56b758bd..5fea7668e3 100644 --- a/database/migrations/2024_04_01_161132_create_process_launchpad.php +++ b/database/migrations/2024_04_01_161132_create_process_launchpad.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_04_17_110215_add_index_bookmarks_and_launchpad_table.php b/database/migrations/2024_04_17_110215_add_index_bookmarks_and_launchpad_table.php index b3552a7f93..86a1e5853a 100644 --- a/database/migrations/2024_04_17_110215_add_index_bookmarks_and_launchpad_table.php +++ b/database/migrations/2024_04_17_110215_add_index_bookmarks_and_launchpad_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('user_process_bookmarks', function (Blueprint $table) { // Create index @@ -27,7 +27,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('user_process_bookmarks', function (Blueprint $table) { // Drop index diff --git a/database/migrations/2024_04_26_183624_add_index_to_case_number_column_in_process_requests_table.php b/database/migrations/2024_04_26_183624_add_index_to_case_number_column_in_process_requests_table.php index e195033835..64766267f6 100644 --- a/database/migrations/2024_04_26_183624_add_index_to_case_number_column_in_process_requests_table.php +++ b/database/migrations/2024_04_26_183624_add_index_to_case_number_column_in_process_requests_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_05_29_171650_create_recommendations_table.php b/database/migrations/2024_05_29_171650_create_recommendations_table.php index 7b23e9ab47..109e9fa72a 100644 --- a/database/migrations/2024_05_29_171650_create_recommendations_table.php +++ b/database/migrations/2024_05_29_171650_create_recommendations_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_05_29_171659_create_recommendation_users_table.php b/database/migrations/2024_05_29_171659_create_recommendation_users_table.php index dc0555f31f..dfd0730cff 100644 --- a/database/migrations/2024_05_29_171659_create_recommendation_users_table.php +++ b/database/migrations/2024_05_29_171659_create_recommendation_users_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_06_14_143814_add_index_to_updated_at_column_for_process_request_tokens_table.php b/database/migrations/2024_06_14_143814_add_index_to_updated_at_column_for_process_request_tokens_table.php index e96815257f..8eeb9d8483 100644 --- a/database/migrations/2024_06_14_143814_add_index_to_updated_at_column_for_process_request_tokens_table.php +++ b/database/migrations/2024_06_14_143814_add_index_to_updated_at_column_for_process_request_tokens_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_06_18_191149_create_process_slideshow.php b/database/migrations/2024_06_18_191149_create_process_slideshow.php index 081ed3f963..6a53c9f184 100644 --- a/database/migrations/2024_06_18_191149_create_process_slideshow.php +++ b/database/migrations/2024_06_18_191149_create_process_slideshow.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_07_02_122418_add_process_abe_request_tokens_table.php b/database/migrations/2024_07_02_122418_add_process_abe_request_tokens_table.php index 909ee3ea26..2e4b4b2de3 100644 --- a/database/migrations/2024_07_02_122418_add_process_abe_request_tokens_table.php +++ b/database/migrations/2024_07_02_122418_add_process_abe_request_tokens_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_07_30_120225_modify_watchers_column_in_screens_table.php b/database/migrations/2024_07_30_120225_modify_watchers_column_in_screens_table.php index 9d7d9046a8..b3fa159d4f 100644 --- a/database/migrations/2024_07_30_120225_modify_watchers_column_in_screens_table.php +++ b/database/migrations/2024_07_30_120225_modify_watchers_column_in_screens_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_07_30_203849_update_code_in_scripts_table.php b/database/migrations/2024_07_30_203849_update_code_in_scripts_table.php index e8b4103951..ad2df169bf 100644 --- a/database/migrations/2024_07_30_203849_update_code_in_scripts_table.php +++ b/database/migrations/2024_07_30_203849_update_code_in_scripts_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ @@ -26,4 +25,3 @@ public function down(): void }); } }; - diff --git a/database/migrations/2024_07_30_203903_update_code_in_script_versions_table.php b/database/migrations/2024_07_30_203903_update_code_in_script_versions_table.php index bada803947..b87eb929e5 100644 --- a/database/migrations/2024_07_30_203903_update_code_in_script_versions_table.php +++ b/database/migrations/2024_07_30_203903_update_code_in_script_versions_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_08_26_183754_create_dev_links_table.php b/database/migrations/2024_08_26_183754_create_dev_links_table.php index 9b58bff978..801f6f78f9 100644 --- a/database/migrations/2024_08_26_183754_create_dev_links_table.php +++ b/database/migrations/2024_08_26_183754_create_dev_links_table.php @@ -4,14 +4,13 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateDevLinksTable extends Migration -{ +return new class extends Migration { /** * Run the migrations. * * @return void */ - public function up() + public function up(): void { Schema::create('dev_links', function (Blueprint $table) { $table->id(); @@ -32,8 +31,8 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('dev_links'); } -} +}; diff --git a/database/migrations/2024_08_26_190935_create_encrypted_data.php b/database/migrations/2024_08_26_190935_create_encrypted_data.php index f64e4a369b..9a670da2b0 100644 --- a/database/migrations/2024_08_26_190935_create_encrypted_data.php +++ b/database/migrations/2024_08_26_190935_create_encrypted_data.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_09_12_172734_create_cases_participated_table.php b/database/migrations/2024_09_12_172734_create_cases_participated_table.php index 2d0eef7dc3..74d12af280 100644 --- a/database/migrations/2024_09_12_172734_create_cases_participated_table.php +++ b/database/migrations/2024_09_12_172734_create_cases_participated_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2024_11_14_214058_add_process_request_tokens_index.php b/database/migrations/2024_11_14_214058_add_process_request_tokens_index.php index da8c3296a0..74684e8af7 100644 --- a/database/migrations/2024_11_14_214058_add_process_request_tokens_index.php +++ b/database/migrations/2024_11_14_214058_add_process_request_tokens_index.php @@ -4,14 +4,13 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddProcessRequestTokensIndex extends Migration -{ +return new class extends Migration { /** * Run the migrations. * * @return void */ - public function up() + public function up(): void { DB::statement(' ALTER TABLE `process_request_tokens` @@ -24,11 +23,11 @@ public function up() * * @return void */ - public function down() + public function down(): void { DB::statement(' ALTER TABLE `process_request_tokens` DROP INDEX `process_request_tokens_proc_element_created_id` '); } -} +}; diff --git a/database/migrations/2025_01_09_210416_add_email_task_notification_to_users_table.php b/database/migrations/2025_01_09_210416_add_email_task_notification_to_users_table.php index 6173790e5d..92e1afbd52 100644 --- a/database/migrations/2025_01_09_210416_add_email_task_notification_to_users_table.php +++ b/database/migrations/2025_01_09_210416_add_email_task_notification_to_users_table.php @@ -10,7 +10,7 @@ * * @return void */ - public function up() + public function up(): void { Schema::table('users', function (Blueprint $table) { $table->boolean('email_task_notification')->default(0); @@ -22,7 +22,7 @@ public function up() * * @return void */ - public function down() + public function down(): void { Schema::table('users', function (Blueprint $table) { $table->dropColumn('email_task_notification'); diff --git a/database/migrations/2025_04_08_115507_add_the_comments_field_to_the_process_request_token_table.php b/database/migrations/2025_04_08_115507_add_the_comments_field_to_the_process_request_token_table.php index 69811599b1..4877eec6d9 100644 --- a/database/migrations/2025_04_08_115507_add_the_comments_field_to_the_process_request_token_table.php +++ b/database/migrations/2025_04_08_115507_add_the_comments_field_to_the_process_request_token_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ diff --git a/database/migrations/2025_10_28_130002_add_created_at_index_to_process_request_tokens.php b/database/migrations/2025_10_28_130002_add_created_at_index_to_process_request_tokens.php index e58652f7bd..d16082a18c 100644 --- a/database/migrations/2025_10_28_130002_add_created_at_index_to_process_request_tokens.php +++ b/database/migrations/2025_10_28_130002_add_created_at_index_to_process_request_tokens.php @@ -8,7 +8,7 @@ /** * Run the migrations. */ - public function up() + public function up(): void { // Create descending index on created_at for optimized queries DB::statement('CREATE INDEX idx_process_request_tokens_created_at_desc ON process_request_tokens (created_at DESC)'); diff --git a/database/migrations/landlord/2025_04_10_225123_create_landlord_tenants_table.php b/database/migrations/landlord/2025_04_10_225123_create_landlord_tenants_table.php index f5e910d980..67e3578245 100644 --- a/database/migrations/landlord/2025_04_10_225123_create_landlord_tenants_table.php +++ b/database/migrations/landlord/2025_04_10_225123_create_landlord_tenants_table.php @@ -8,7 +8,7 @@ /** * Run the migrations. */ - public function up() + public function up(): void { Schema::create('tenants', function (Blueprint $table) { $table->id(); diff --git a/database/migrations/landlord/2025_06_05_000000_add_credentials_to_landlord_tenants_table.php b/database/migrations/landlord/2025_06_05_000000_add_credentials_to_landlord_tenants_table.php index bec8da81a6..11de1cddf4 100644 --- a/database/migrations/landlord/2025_06_05_000000_add_credentials_to_landlord_tenants_table.php +++ b/database/migrations/landlord/2025_06_05_000000_add_credentials_to_landlord_tenants_table.php @@ -8,7 +8,7 @@ /** * Run the migrations. */ - public function up() + public function up(): void { Schema::table('tenants', function (Blueprint $table) { $table->string('username')->nullable()->after('database'); @@ -19,7 +19,7 @@ public function up() /** * Reverse the migrations. */ - public function down() + public function down(): void { Schema::table('tenants', function (Blueprint $table) { $table->dropColumn(['username', 'password']); diff --git a/database/seeders/AnonymousUserSeeder.php b/database/seeders/AnonymousUserSeeder.php index 00aeaf3ceb..ff277dfc0e 100644 --- a/database/seeders/AnonymousUserSeeder.php +++ b/database/seeders/AnonymousUserSeeder.php @@ -14,7 +14,7 @@ class AnonymousUserSeeder extends Seeder * * @return void */ - public function run() + public function run(): void { $user = User::updateOrCreate( ['username' => AnonymousUser::ANONYMOUS_USERNAME], diff --git a/database/seeders/CategorySystemSeeder.php b/database/seeders/CategorySystemSeeder.php index a23c340182..69c9dcf5e0 100644 --- a/database/seeders/CategorySystemSeeder.php +++ b/database/seeders/CategorySystemSeeder.php @@ -14,7 +14,7 @@ class CategorySystemSeeder extends Seeder * * @return void */ - public function run() + public function run(): void { ScreenCategory::factory()->create([ 'name' => __('Uncategorized'), diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d99cbf8465..1518f80af2 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -14,7 +14,7 @@ class DatabaseSeeder extends Seeder * * @return void */ - public function run() + public function run(): void { $this->call([ UserSeeder::class, diff --git a/database/seeders/GroupSeeder.php b/database/seeders/GroupSeeder.php index b44526268d..841a421fe4 100644 --- a/database/seeders/GroupSeeder.php +++ b/database/seeders/GroupSeeder.php @@ -79,7 +79,7 @@ public function setDefaults() * * @return void */ - public function run() + public function run(): void { $this->setDefaults(); diff --git a/database/seeders/MetricsApiEnvironmentVariableSeeder.php b/database/seeders/MetricsApiEnvironmentVariableSeeder.php index fbc7cf44be..d2ee8a6bd7 100644 --- a/database/seeders/MetricsApiEnvironmentVariableSeeder.php +++ b/database/seeders/MetricsApiEnvironmentVariableSeeder.php @@ -12,7 +12,7 @@ class MetricsApiEnvironmentVariableSeeder extends Seeder * * @return void */ - public function run() + public function run(): void { EnvironmentVariable::firstOrCreate( [ diff --git a/database/seeders/PermissionSeeder.php b/database/seeders/PermissionSeeder.php index 7ba4437677..0b58812441 100644 --- a/database/seeders/PermissionSeeder.php +++ b/database/seeders/PermissionSeeder.php @@ -116,7 +116,7 @@ class PermissionSeeder extends Seeder ], ]; - public function run($seedUser = null) + public function run($seedUser = null): void { foreach ($this->permissionGroups as $groupName => $permissions) { foreach ($permissions as $permissionString) { diff --git a/database/seeders/ProcessSeeder.php b/database/seeders/ProcessSeeder.php index 42a5e7d4c2..b1035a0f81 100644 --- a/database/seeders/ProcessSeeder.php +++ b/database/seeders/ProcessSeeder.php @@ -33,7 +33,7 @@ class ProcessSeeder extends Seeder * * @return void */ - public function run() + public function run(): void { if (Process::count() !== 0) { return; diff --git a/database/seeders/ProcessSystemCategorySeeder.php b/database/seeders/ProcessSystemCategorySeeder.php index 1cb6a16e6d..f58d611136 100644 --- a/database/seeders/ProcessSystemCategorySeeder.php +++ b/database/seeders/ProcessSystemCategorySeeder.php @@ -12,7 +12,7 @@ class ProcessSystemCategorySeeder extends Seeder * * @return void */ - public function run() + public function run(): void { ProcessCategory::factory()->create([ 'name' => 'System', diff --git a/database/seeders/ScreenEmailSeeder.php b/database/seeders/ScreenEmailSeeder.php index e72a4dbf17..cfcf3c1271 100644 --- a/database/seeders/ScreenEmailSeeder.php +++ b/database/seeders/ScreenEmailSeeder.php @@ -12,7 +12,7 @@ class ScreenEmailSeeder extends Seeder * * @return void */ - public function run() + public function run(): void { return Screen::getScreenByKeyPerDefault('default-email-task-notification'); } diff --git a/database/seeders/ScreenSystemSeeder.php b/database/seeders/ScreenSystemSeeder.php index f9fdd60b71..42286e6113 100644 --- a/database/seeders/ScreenSystemSeeder.php +++ b/database/seeders/ScreenSystemSeeder.php @@ -13,7 +13,7 @@ class ScreenSystemSeeder extends Seeder * * @return void */ - public function run() + public function run(): void { return Screen::getScreenByKey('interstitial'); } diff --git a/database/seeders/ScreenTypeSeeder.php b/database/seeders/ScreenTypeSeeder.php index 9a78da95f9..73f597f4e8 100644 --- a/database/seeders/ScreenTypeSeeder.php +++ b/database/seeders/ScreenTypeSeeder.php @@ -12,7 +12,7 @@ class ScreenTypeSeeder extends Seeder * * @return void */ - public function run() + public function run(): void { ScreenType::factory()->create([ 'name' => 'FORM', diff --git a/database/seeders/ScriptExecutorSeeder.php b/database/seeders/ScriptExecutorSeeder.php index 659f5a6650..2f6d062838 100644 --- a/database/seeders/ScriptExecutorSeeder.php +++ b/database/seeders/ScriptExecutorSeeder.php @@ -8,7 +8,7 @@ class ScriptExecutorSeeder extends Seeder { - public function run() + public function run(): void { foreach (config('script-runners') as $key => $config) { if ($key === 'javascript') { diff --git a/database/seeders/SettingsMenusSeeder.php b/database/seeders/SettingsMenusSeeder.php index 2878015c61..67fdd82e62 100644 --- a/database/seeders/SettingsMenusSeeder.php +++ b/database/seeders/SettingsMenusSeeder.php @@ -12,7 +12,7 @@ class SettingsMenusSeeder extends Seeder * * @return void */ - public function run() + public function run(): void { // Menu 1. Email SettingsMenus::EMAIL_GROUP_ID = 1 // Menu 2. Integrations SettingsMenus::INTEGRATIONS_GROUP_ID = 2 diff --git a/database/seeders/SignalSeeder.php b/database/seeders/SignalSeeder.php index 0ebbf26ce4..0616c05bf6 100644 --- a/database/seeders/SignalSeeder.php +++ b/database/seeders/SignalSeeder.php @@ -17,7 +17,7 @@ class SignalSeeder extends Seeder * * @return void */ - public function run() + public function run(): void { if ($this->signalProcessExists()) { return; diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php index acb3277817..4d2c2cfe45 100644 --- a/database/seeders/UserSeeder.php +++ b/database/seeders/UserSeeder.php @@ -26,7 +26,7 @@ class UserSeeder extends Seeder * * @return void */ - public function run(ClientRepository $clients) + public function run(ClientRepository $clients): void { //Create admin user $user = User::updateOrCreate([ diff --git a/resources/lang/.gitignore b/lang/.gitignore similarity index 100% rename from resources/lang/.gitignore rename to lang/.gitignore diff --git a/resources/lang/en.json b/lang/en.json similarity index 100% rename from resources/lang/en.json rename to lang/en.json diff --git a/package.json b/package.json index 02130abbc0..f6538068e7 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,8 @@ "tailwindcss": "^3.4.10", "vue-loader": "^15.10.0", "vue-template-compiler": "^2.7.16", - "webpack-bundle-analyzer": "^4.10.2" + "webpack-bundle-analyzer": "^4.10.2", + "concurrently": "^9.0.1" }, "dependencies": { "@babel/runtime": "^7.23.8", @@ -67,7 +68,7 @@ "@processmaker/vue-form-elements": "0.65.5", "@processmaker/vue-multiselect": "2.3.0", "@tinymce/tinymce-vue": "2.0.0", - "axios": "^0.27.2", + "axios": "^1.11.0", "bootstrap": "^4.5.3", "bootstrap-vue": "^2.18.1", "bpmn-font": "^0.10.0", diff --git a/phpunit.xml b/phpunit.xml index 81690f715b..963c90b5e6 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -23,6 +23,7 @@ + @@ -80,5 +81,6 @@ + diff --git a/public/index.php b/public/index.php index 1d69f3a289..ee8f07e993 100644 --- a/public/index.php +++ b/public/index.php @@ -1,55 +1,20 @@ make(Kernel::class); - -$response = $kernel->handle( - $request = Request::capture() -)->send(); - -$kernel->terminate($request, $response); +$app->handleRequest(Request::capture()); diff --git a/resources/lang/de.json b/resources/lang/de.json deleted file mode 100644 index 13fb9838e8..0000000000 --- a/resources/lang/de.json +++ /dev/null @@ -1,2460 +0,0 @@ -{ - "ProcessMaker": "ProcessMaker", - "Skip to Content": "Weiter zu Content", - " pending": " ausstehende", - ":user has completed the task :task_name": ":Benutzer hat folgende Aufgabe erledigt: :task_name", - "{{variable}} is running.": "{{variable}} wird ausgeführt.", - "? Any services using it will no longer have access.": "Jegliche Dienste, die das Token verwenden, haben dann keinen Zugriff mehr.", - "[Select Active Process]": "[Aktiven Prozess auswählen]", - "# Processes": "# Prozesse", - "# Users": "# Benutzer", - "¡ Whoops ! No results": "¡ Hoppla ! Keine Ergebnisse", - "+ Add Page": "+ Seite hinzufügen", - "72 hours": "72 Stunden", - "A .env file already exists. Stop the installation procedure, delete the existing .env file, and then restart the installation.": "Es existiert bereits eine .env-Datei. Beenden Sie den Installationsvorgang, löschen Sie die vorhandene .env-Datei und starten Sie die Installation erneut.", - "A valid Cell phone number is required for SMS two-factor authentication.": "A valid Cell phone number is required for SMS two-factor authentication.", - "A variable key name is a symbolic name to reference information.": "Ein Variablenschlüssel ist ein symbolischer Name, der als Referenz dient.", - "About ProcessMaker": "Über ProcessMaker", - "About": "Über", - "Access token generated successfully": "Zugriffstoken wurde erfolgreich generiert", - "Account Timeout": "Konto-Zeitüberschreitung", - "action": "Aktion", - "Actions": "Aktionen", - "Add a Task": "Aufgabe hinzufügen", - "Add Category": "Kategorie hinzufügen", - "Add Column": "Spalte hinzufügen", - "Add New Column": "Neue Spalte hinzufügen", - "Add New Option": "Neue Option hinzufügen", - "Add New Page": "Neue Seite hinzufügen", - "Add Option": "Option hinzufügen", - "Add Property": "Eigenschaft hinzufügen", - "Add Record": "Datensatz hinzufügen", - "Add Screen": "Ansicht hinzufügen", - "Add User To Group": "Benutzer zu Gruppe hinzufügen", - "Add Users": "Benutzer hinzufügen", - "Add to clipboard": "Zur Zwischenablage hinzufügen", - "Address": "Adresse", - "Admin": "Administrator", - "Advanced Search": "Erweiterte Suche", - "Advanced": "Erweitert", - "After importing, you can reassign users and groups to your Process.": "Nach dem Import können Sie Ihrem Prozess Benutzer und Gruppen neu zuweisen.", - "After": "Nach", - "All assignments were saved.": "Alle Zuweisungen wurden gespeichert.", - "All Notifications": "Alle Benachrichtigungen", - "All Requests": "Alle Anfragen", - "All Rights Reserved": "Alle Rechte vorbehalten", - "All the configurations of the screen will be exported.": "Alle Konfigurationen der Ansicht werden ebenfalls exportiert.", - "Allow Reassignment": "Neuzuweisung zulassen", - "Allows the Task assignee to reassign this Task": "Ermöglicht dem Verantwortlichen für die Aufgabe eine Neuzuweisung der Aufgabe", - "Allowed Group": "Zulässige Gruppe", - "Allowed Groups": "Zulässige Gruppen", - "Allowed User": "Zulässiger Benutzer", - "Allowed Users": "Zulässige Benutzer", - "An error occurred. Check the form for errors in red text.": "Ein Fehler ist aufgetreten. Überprüfen Sie das Formular auf Fehler (roter Text).", - "and click on +Process to get started.": "und klicken Sie auf „+Prozess“, um zu beginnen.", - "API Tokens": "API-Token", - "Apply": "Anwenden", - "Archive Processes": "Prozesse archivieren", - "Archive": "Archivieren", - "Archived Processes": "Archivierte Prozesse", - "Are you ready to begin?": "Sind Sie bereit?", - "Are you sure to delete the group ": "Möchten Sie die Gruppe wirklich löschen? ", - "Are you sure you want to delete the token ": "Möchten Sie das Token wirklich löschen? ", - "Are you sure you want to delete the calc ?:": "Sind Sie sicher, dass Sie die Berechnung löschen möchten?", - "Are you sure you want cancel this request ?": "Möchten Sie diese Anfrage wirklich abbrechen?", - "Are you sure you want to archive the process ": "Möchten Sie den Prozess wirklich archivieren? ", - "Are you sure you want to archive the process": "Möchten Sie den Prozess wirklich archivieren? ", - "Are you sure you want to complete this request?": "Möchten Sie diese Anfrage wirklich bearbeiten?", - "Are you sure you want to delete {{item}}?": "Möchten Sie {{item}} wirklich löschen?", - "Are you sure you want to delete {{item}}? Deleting this asset will break any active tasks that are assigned.": "Möchten Sie {{item}} wirklich löschen? Wenn Sie dieses Asset löschen, werden alle aktiven Aufgaben unterbrochen, die zugewiesen sind.", - "Are you sure you want to delete the auth client": "Möchten Sie den authentifizierten Kunden wirklich löschen?", - "Are you sure you want to delete the screen {{item}}? Deleting this asset will break any active tasks that are assigned.": "Möchten Sie die Ansicht {{item}} wirklich löschen? Wenn Sie dieses Asset löschen, werden alle aktiven Aufgaben unterbrochen, die zugewiesen sind.", - "Are you sure you want to delete the user": "Möchten Sie den Benutzer wirklich löschen?", - "Are you sure you want to remove the user from the group ": "Möchten Sie den Benutzer wirklich aus der Gruppe entfernen? ", - "Are you sure you want to remove this record?": "Möchten Sie diesen Datensatz wirklich löschen?", - "Are you sure you want to reset the UI styles?": "Möchten Sie die Benutzeroberflächenstile wirklich löschen?", - "Are you sure you want to escalate this task?": "Möchten Sie diese Aufgabe wirklich eskalieren?", - "as": "als", - "Assign all permissions to this group": "Weisen Sie dieser Gruppe alle Berechtigungen zu", - "Assign all permissions to this user": "Weisen Sie diesem Benutzer alle Berechtigungen zu", - "Assign by Expression Use a rule to assign this Task conditionally": "Via Ausdruck zuweisen: Verwenden Sie eine Regel, um diese Aufgabe vorbehaltlich zuzuweisen", - "Assign Call Activity": "Anrufaktivität zuweisen", - "Assign Start Event": "Startereignis zuweisen", - "Assign task": "Aufgabe zuweisen", - "Assign data source watcher in :screen": "Beobachter der Datenquelle in :screen zuweisen", - "Assign user to task": "Einen Benutzer der Aufgabe zuweisen", - "Assign": "Zuweisen", - "Assigned Group": "Zugewiesene Gruppe", - "Assigned To": "Zugewiesen an", - "Assigned User": "Zugewiesener Benutzer", - "Assigned": "Zugewiesen", - "Assignee Permissions": "Berechtigungen des Verantwortlichen", - "Assignee": "Bevollmächtigter", - "Assignment Options": "Optionen für die Zuweisung", - "Association Flow": "Assoziationsfluss", - "Association": "Verband", - "Auth Client": "Authentifizierter Kunde", - "Auth Clients": "Authentifizierter Kunde", - "Auth-Clients": "Authentifizierte Kunden", - "Auto validate": "Automatisch validieren", - "Avatar": "Avatar", - "Back to Login": "Zurück zur Anmeldung", - "Background Color": "Hintergrundfarbe", - "Basic Search": "Einfache Suche", - "Basic": "Einfach", - "Body of the text annotation": "Textkörper der Textanmerkung", - "Bold": "Fett", - "Boolean": "Boolesch", - "Boundary Events": "Grenzereignisse", - "Both": "Beide", - "Bottom": "Unten", - "BPMN": "BPMN", - "Browse": "Durchsuchen", - "Button Label": "Schaltflächenbezeichnung", - "Button Variant Style": "Schaltflächenvariantenstil", - "Calcs": "Berechnungen", - "Calculated Properties": "Berechnete Eigenschaften", - "Call Activity": "Anrufaktivität", - "Cancel Request": "Anfrage abbrechen", - "Cancel Screen": "Ansicht abbrechen", - "Cancel": "Abbrechen", - "Canceled": "Abgebrochen", - "CAPTCHA controls cannot be placed within a Loop control.": "CAPTCHA-Kontrollen können nicht in einer Schleife platziert werden.", - "Categories are required to create a process": "Zur Erstellung eines Prozesses werden Kategorien benötigt", - "Categories": "Kategorien", - "Category Name": "Kategoriename", - "Category": "Kategorie", - "Caution!": "Vorsicht!", - "Cell": "Mobiltelefon", - "Center": "Zentriert", - "Change Password": "Passwort ändern", - "Change Type": "Typ ändern", - "Changing this type will replace your current configuration": "Die Änderung dieses Typs wird Ihre aktuelle Konfiguration ersetzen", - "Checkbox": "Kontrollkästchen", - "Checked by default": "Standardmäßig überprüft", - "Choose icon image": "Symbol wählen", - "Choose logo image": "Logo wählen", - "City": "Stadt", - "Clear Color Selection": "Farbauswahl aufheben", - "Click After to enter how many occurrences to end the timer control": "Klicken Sie auf Nach, um einzugeben, wie viele Ereignisse die Timer-Steuerung beenden sollen", - "Click on the color value to use the color picker.": "Klicken Sie auf den Farbwert, um den Farbwähler zu verwenden.", - "Click On to select a date": "Klicken Sie auf Ein, um ein Datum auszuwählen", - "Click the browse button below to get started": "Klicken Sie auf die Schaltfläche „Durchsuchen“, um zu beginnen", - "Client ID": "Kunden-ID", - "Client Secret": "Kundengeheimnis", - "Clipboard Pasted Succesfully": "Zwischenablage erfolgreich eingefügt", - "Close": "SCHLIESSEN", - "Collection Select": "Sammlungsauswahl", - "Collections": "Sammlungen", - "Colspan": "Colspan", - "Column Width": "Spaltenbreite", - "Column Widths": "Spaltenbreite", - "Column": "Spalte", - "Column not found: ": "Spalte nicht gefunden: ", - "Comments": "Kommentare", - "Common file types: application/msword, image/gif, image/jpeg, application/pdf, application/vnd.ms-powerpoint, application/vnd.ms-excel, text/plain": "Gängige Dateitypen: application/msword, image/gif, image/jpeg, application/pdf, application/vnd.ms-powerpoint, application/vnd.ms-excel, text/plain", - "Completed Tasks": "Abgeschlossene Aufgaben", - "Completed": "Abgeschlossen", - "completed": "Abgeschlossen", - "Configuration": "Konfiguration", - "Configure Process": "Prozess konfigurieren", - "Configure Screen": "Ansicht konfigurieren", - "Configure Script": "Skript konfigurieren", - "Configure": "Konfigurieren", - "Confirm Password": "Passwort bestätigen", - "Confirm": "Bestätigen", - "Congratulations": "Herzlichen Glückwunsch", - "Contact Information": "Kontaktinformation", - "Contact your administrator for more information": "Wenden Sie sich an Ihren Administrator, um weitere Informationen zu erhalten", - "Content": "Inhalt", - "Continue": "Weiter", - "Control is read only": "Die Steuerung ist schreibgeschützt", - "Control Not Found": "Steuerelement wurde nicht gefunden", - "Controls": "Steuerungen", - "Converging": "Konversion läuft", - "Copied": "Kopiert", - "Copy Client Secret To Clipboard": "Kundengeheimnis in die Zwischenablage kopieren", - "Copy Screen": "Ansicht kopieren", - "Copy Script": "Skript kopieren", - "Copy Token To Clipboard": "Token in die Zwischenablage kopieren", - "Copy": "Kopieren", - "Count": "Anzahl", - "Country": "Land", - "Create An Auth-Client": "Einen authentifizierten Kunden erstellen", - "Create AuthClients": "Authentifizierte Kunden erstellen", - "Create Categories": "Kategorien erstellen", - "Create Category": "Kategorie erstellen", - "Create Comments": "Kommentare erstellen", - "Create Environment Variable": "Umgebungsvariable erstellen", - "Create Environment Variables": "Umgebungsvariablen erstellen", - "Create Files": "Dateien erstellen", - "Create Group": "Gruppe erstellen", - "Create Groups": "Gruppen erstellen", - "Create Notifications": "Benachrichtigungen erstellen", - "Create Process": "Prozess erstellen", - "Create Processes": "Prozesse erstellen", - "Create Screen": "Ansicht erstellen", - "Create Screens": "Ansichten erstellen", - "Create Script": "Skript erstellen", - "Create Scripts": "Skripte erstellen", - "Create Task Assignments": "Aufgabenzuweisungen erstellen", - "Create User": "Benutzer erstellen", - "Create Users": "Benutzer erstellen", - "Created At": "Erstellt am", - "Created": "Erstellt", - "CSS Selector Name": "Name des CSS-Selektors", - "CSS": "CSS", - "Currency": "Währung", - "Current Local Time": "Aktuelle Ortszeit", - "Custom Colors": "Benutzerdefinierte Farben", - "Custom CSS": "Benutzerdefinierte CSS", - "Custom Favicon": "Benutzerdefiniertes Favicon", - "Custom Icon": "Benutzerdefiniertes Symbol", - "Custom Logo": "Benutzerdefiniertes Logo", - "Custom Message to display when the panel has no data. Supports HTML and Mustache placeholders": "Benutzerdefinierter Text, der angezeigt wird, wenn der Bereich leer ist. Unterstützt HTML und Mustache-Platzhalter", - "Customize UI": "Benutzeroberfläche anpassen", - "Cycle": "Zyklus", - "danger": "achtung", - "dark": "dunkel", - "Data Input": "Dateneingabe", - "Data Name": "Datenname", - "Data Preview": "Vorschau der Daten", - "Data Source": "Datenquelle", - "Data Type": "Datentyp", - "Data": "Daten", - "Database connection failed. Check your database configuration and try again.": "Verbindung mit der Datenbank ist fehlgeschlagen. Überprüfen Sie Ihre Datenbankkonfiguration und versuchen Sie es erneut.", - "Date Format": "Datenformat", - "Date Picker": "Datumsauswahl", - "Date": "Datum", - "Date/Time": "Datum / Uhrzeit", - "Datetime": "Datum und Zeit", - "day": "Tag", - "Debugger": "Fehlersuchprogramm", - "Decimal": "Dezimal", - "Declare as global": "Als global deklarieren", - "Select default process status": "Standard-Prozessstatus wählen", - "Delay": "Verzögern", - "Delete Auth-Clients": "Authentifizierte Kunden löschen", - "Delete Categories": "Kategorien löschen", - "Delete Comments": "Kommentare löschen", - "Delete Control": "Steuerung löschen", - "Delete Environment Variables": "Umgebungsvariablen löschen", - "Delete Files": "Dateien löschen", - "Delete Groups": "Gruppen löschen", - "Delete Notifications": "Benachrichtigungen löschen", - "Delete Page": "Seite löschen", - "Delete Record": "Datensatz löschen", - "Delete Screens": "Ansichten löschen", - "Delete Scripts": "Skripte löschen", - "Delete Task Assignments": "Aufgabenzuweisungen löschen", - "Delete Users": "Benutzer löschen", - "Delete": "Löschen", - "Description": "Beschreibung", - "Design": "Design", - "Design Screen": "Design-Ansicht", - "Destination Screen": "Zielbildschirm", - "Destination": "Ziel", - "Details": "Informationen", - "Determine the URL where the request will end": "Bestimmen Sie die URL, unter der die Anfrage endet", - "Direction": "Pfad", - "Disabled": "Deaktiviert", - "Dismiss Alert": "Warnung verwerfen", - "Dismiss All": "Alle ablehnen", - "Dismiss": "Ablehnen", - "display": "anzeigen", - "Display Next Assigned Task to Task Assignee": "Dem Verantwortlichen für die Aufgabe seine nächste zugewiesene Aufgabe anzeigen", - "Diverging": "Divergierend", - "Docker not found.": "Docker nicht gefunden", - "Download Name": "Download-Name", - "Download XML": "XML herunterladen", - "Download": "Herunterladen", - "Drag an element here": "Ein Element hierher ziehen", - "Drop a file here to upload or": "Legen Sie Ihre Datei hier ab, um sie hochzuladen, oder", - "Due In": "Fällig in", - "due": "Fällig am", - "Duplicate": "Duplizieren", - "Duration": "Dauer", - "Edit as JSON": "Als JSON bearbeiten", - "Edit Auth Clients": "Authentifizierte Kunden bearbeiten", - "Edit Categories": "Kategorien bearbeiten", - "Edit Category": "Kategorie bearbeiten", - "Edit Comments": "Kommentare bearbeiten", - "Edit Data": "Daten bearbeiten", - "Edit Environment Variable": "Umgebungsvariable bearbeiten", - "Edit Environment Variables": "Umgebungsvariablen bearbeiten", - "Edit Files": "Dateien bearbeiten", - "Edit Group": "Gruppe bearbeiten", - "Edit Groups": "Gruppen bearbeiten", - "Edit Notifications": "Benachrichtigungen bearbeiten", - "Edit Option": "Option bearbeiten", - "Edit Page Title": "Titel der Seite bearbeiten", - "Edit Page": "Seite bearbeiten", - "Edit Process Category": "Prozesskategorie bearbeiten", - "Edit Process": "Prozess bearbeiten", - "Edit Processes": "Prozesse bearbeiten", - "Edit Profile": "Profil bearbeiten", - "Edit Record": "Datensatz bearbeiten", - "Edit Request Data": "Anfragedaten bearbeiten", - "Edit Screen": "Ansicht bearbeiten", - "Edit Screens": "Ansichten bearbeiten", - "Edit Script": "Skript bearbeiten", - "Edit Scripts": "Skripte bearbeiten", - "Edit Task Assignments": "Aufgabenzuweisungen bearbeiten", - "Edit Task Data": "Aufgabendaten bearbeiten", - "Edit Task": "Aufgabe bearbeiten", - "Edit Users": "Benutzer bearbeiten", - "Edit": "Bearbeiten", - "Editable?": "Bearbeitbar?", - "Editor": "Editor", - "Element Background color": "Hintergrundfarbe des Elements", - "Element has disallowed type": "Das Element hat einen unzulässigen Typ", - "Element is missing label/name": "Dem Element fehlt eine Bezeichnung oder ein Name", - "Element is not connected": "Das Element ist nicht verbunden", - "Element": "Element", - "Element Destination": "Elementziel", - "Email Address": "E-Mail-Adresse", - "Email": "E-Mail", - "Empty State Message": "Leerer Zustandsmeldung", - "Enable": "Aktivieren", - "Enabled": "Aktiviert", - "End date": "Enddatum", - "End Event": "Endereignis", - "Ends": "Enden", - "English (US)": "Englisch (USA)", - "Enter how many seconds the Script runs before timing out (0 is unlimited).": "Geben Sie ein, wie viele Sekunden lang das Skript maximal ausgeführt werden soll (0 ist unbegrenzt).", - "Enter the error name that is unique from all other elements in the diagram": "Geben Sie den Fehlernamen ein, der sich von allen anderen Elementen im Diagramm unterscheidet", - "Enter the expression that describes the workflow condition": "Geben Sie den Ausdruck ein, der die Arbeitsablaufbedingung beschreibt", - "Enter the expression to evaluate Task assignment": "Geben Sie den Ausdruck ein, um die Aufgabenzuweisung auszuwerten", - "Enter the hours until this Task is overdue": "Geben Sie die Stunden bis zur Fälligkeit der Aufgabe ein", - "Enter the id that is unique from all other elements in the diagram": "Geben Sie die ID ein, die sich von allen anderen Elementen im Diagramm unterscheidet", - "Enter the JSON to configure the Script": "Geben Sie die JSON ein, um das Skript zu konfigurieren", - "Enter the message name that is unique from all other elements in the diagram": "Geben Sie den Namen der Nachricht ein, der sich von allen anderen Elementen im Diagramm unterscheidet", - "Enter the name of this element": "Geben Sie den Namen dieses Elements ein", - "Enter the variable containing one or more numeric user IDs": "Geben Sie die Variable ein, die eine oder mehrere numerische Benutzer-IDs enthält", - "Enter the variable containing one or more numeric group IDs": "Geben Sie die Variable ein, die eine oder mehrere numerische Gruppen-IDs enthält", - "Enter your email address and we'll send you a reset link.": "Geben Sie Ihre E-Mail-Adresse ein, damit wir Ihnen einen Link zum Zurücksetzen zusenden können.", - "Enter your MySQL database name:": "Geben Sie den Namen Ihrer MySQL-Datenbank ein:", - "Enter your MySQL host:": "Geben Sie Ihren MySQL-Host ein:", - "Enter your MySQL password (input hidden):": "Geben Sie Ihr MySQL-Passwort ein (verborgene Eingabe):", - "Enter your MySQL port (usually 3306):": "Geben Sie Ihren MySQL-Port (normalerweise 3306) ein:", - "Enter your MySQL username:": "Geben Sie Ihren MySQL-Benutzernamen ein:", - "Environment Variable": "Umgebungsvariable", - "Environment Variables": "Umgebungsvariablen", - "Error": "Fehler", - "Error Name": "Fehlername", - "Errors": "Fehler", - "Event has multiple event definitions": "Das Ereignis hat mehrere Ereignisdefinitionen", - "Event-based Gateway": "Ereignis-basiertes Gateway", - "Event Based Gateway": "Ereignis-basiertes Gateway", - "Exclusive Gateway": "Exklusives Gateway", - "Expires At": "Läuft ab am", - "Export Process": "Prozess exportieren", - "Export Processes": "Prozesse exportieren", - "Export Screen": "Ansicht exportieren", - "Export": "Exportieren", - "Expression": "Ausdruck", - "F": "Fr.", - "Failed to connect to MySQL database. Ensure the database exists. Check your credentials and try again.": "Die Verbindung mit der MySQL-Datenbank ist fehlgeschlagen. Stellen Sie sicher, dass diese Datenbank existiert. Überprüfen Sie Ihre Zugangsdaten und versuchen Sie es erneut.", - "Fax": "Fax", - "Field Label": "Feldbezeichnung", - "Field Name": "Feldname", - "Field Type": "Feldtyp", - "Field Value": "Feldwert", - "Field:": "Feld:", - "Fields List": "Liste der Felder", - "File Accepted": "Datei akzeptiert", - "File Download": "Datei-Download", - "File Name": "Dateiname", - "File not allowed.": "Datei nicht zulässig", - "File Upload": "Datei-Upload", - "Files (API)": "Dateien (API)", - "Files": "Dateien", - "File ID does not exist": "Datei-ID existiert nicht", - "Filter Controls": "Filtersteuerung", - "Filter the column:": "Die Spalte filtern:", - "Filter": "Filter", - "Finding Requests available to you...": "Suche nach verfügbaren Anfragen ...", - "First Name": "Vorname", - "Flow splits implicitly": "Der Ablauf ist implizit aufgeteilt", - "Font Size": "Schriftgröße", - "Font Weight": "Schriftstärke", - "Font": "Schriftart", - "For security purposes, this field will always appear empty": "Aus Sicherheitsgründen wird dieses Feld immer leer angezeigt", - "Forgot Password?": "Passwort vergessen?", - "Forgot Your Password?": "Haben Sie Ihr Passwort vergessen?", - "Form": "Formular", - "Formula:": "Formel:", - "Formula": "Formel", - "Full Name": "Vor- und Nachname", - "Gateway forks and joins": "Das Gateway wird aufgespaltet und zusammengeführt", - "Gateway": "Gateway", - "Gateway :flow_label": "Gateway :flow_label", - "Generate New Token": "Neues Token generieren", - "Get Help": "Hilfe anfordern", - "global": "global", - "Group Details": "Gruppeninformationen", - "Group Members": "Gruppenmitglieder", - "Group name must be unique": "Gruppenname muss eindeutig sein", - "Group Permissions Updated Successfully": "Gruppenberechtigungen wurden erfolgreich aktualisiert", - "Group Permissions": "Gruppenberechtigungen", - "Group Manager": "Gruppenleiter", - "group": "Gruppe", - "Group": "Gruppe", - "Groups": "Gruppen", - "Height": "Höhe", - "Help text is meant to provide additional guidance on the field's value": "Der Hilfetext soll zusätzliche Informationen über den Wert des Feldes liefern.", - "Help Text": "Hilfetext", - "Help": "Hilfe", - "Helper Text": "Hilfetext", - "Hide Details": "Informationen verbergen", - "Hide Menus": "Menüs verbergen", - "Hide Mini-Map": "Minimap verbergen", - "Horizontal alignment of the text": "Horizontale Ausrichtung des Texts", - "hour": "Stunde", - "ID": "ID", - "Identifier": "Kennung (ID)", - "Image height": "Bildhöhe", - "Image id": "Bild-ID", - "Image name": "Bildname", - "image width": "Bildbreite", - "Image": "Bild", - "Image types accepted: .gif, .jpg, .jpeg, .png": "Akzeptierte Bildformate: .gif, .jpg, .jpeg, .png", - "Import Process": "Prozess importieren", - "Import Processes": "Prozesse importieren", - "Import Screen": "Ansicht importieren", - "Import": "Importieren", - "Importing": "Wird importiert ...", - "In Progress": "In Bearbeitung", - "Inclusive Gateway": "Inklusives Gateway", - "Incoming flows do not join": "Eingehende Abläufe werden nicht zusammengeführt", - "Incomplete import of": "Unvollständiger Import von", - "Indexed Search": "Indizierte Suche", - "info": "information", - "Information form": "Informationsformular", - "Information": "Informationen", - "initial": "anfänglich", - "Initially Checked?": "Erstmalig geprüft?", - "Input Data": "Daten eingeben", - "Inspector": "Inspektor", - "Installer completed. Consult ProcessMaker documentation on how to configure email, jobs and notifications.": "Installationsprogramm ist abgeschlossen. In der ProcessMaker-Dokumentation erfahren Sie, wie Sie E-Mails, Aufträge und Benachrichtigungen konfigurieren.", - "Installing ProcessMaker database, OAuth SSL keys and configuration file.": "Installation der ProcessMaker-Datenbank, OAuth-SSL-Verschlüsselung und Konfigurationsdatei.", - "Integer": "Ganze Zahl", - "Intermediate Event": "Zwischenzeitliches Ereignis", - "Intermediate Message Catch Event": "Ereignis für den Empfang von Zwischennachrichten", - "Intermediate Timer Event": "Zwischenzeitliches Timer-Ereignis", - "Interrupting": "Unterbrechen", - "Invalid JSON Data Object": "Ungültiges JSON-Datenobjekt", - "IP/Domain whitelist": "IP / Domain-Whitelist", - "It must be a correct json format": "Muss in einem korrekten JSON-Format angegeben werden", - "Job Title": "Auftragstitel", - "Json Options": "Json-Optionen", - "Justify": "Legitimieren", - "Key Name": "Name des Schlüssels", - "Key": "Schlüssel", - "Label": "Bezeichnung", - "Label Undefined": "Bezeichnung nicht definiert", - "Lane Above": "Spur darüber", - "Lane Below": "Spur darunter", - "Lane": "Spur", - "lang-de": "Deutsch", - "lang-en": "Englisch", - "lang-es": "Spanisch", - "lang-fr": "Französisch", - "Language:": "Sprache:", - "Language": "Sprache", - "Last Login": "Letzte Anmeldung", - "Last Name": "Nachname", - "Last Saved:": "Zuletzt gespeichert:", - "Leave the password blank to keep the current password:": "Lassen Sie das Passwortfeld leer, um Ihr aktuelles Passwort beizubehalten:", - "Left": "Linksbündig", - "light": "hell", - "Line Input": "Line-In-Eingang", - "Link": "Link", - "List Label": "Bezeichnung der Liste", - "List Name": "Name der Liste", - "List of fields to display in the record list": "Liste der Felder, die in der Datensatz-Liste angezeigt werden sollen", - "List of options available in the radio button group": "Liste der in der Radiobutton-Gruppe verfügbaren Optionen", - "List of options available in the select drop down": "Im Auswahlmenü steht Ihnen eine Liste von Optionen zur Verfügung", - "List Processes": "Prozesse auflisten", - "Loading...": "Ladevorgang läuft ...", - "Loading": "Ladevorgang läuft", - "Localization": "Lokalisierung", - "Lock task assignment to user": "Aufgabenzuweisung an Benutzer sperren", - "Log In": "Anmelden", - "Log Out": "Abmelden", - "Loop": "Schleife", - "M": "Mo.", - "Make sure you copy your access token now. You won't be able to see it again.": "Achten Sie darauf, dass Sie Ihren Zugriffstoken jetzt kopieren. Es wird Ihnen nicht mehr angezeigt werden.", - "Make this user a Super Admin": "Ernennen Sie diesen Benutzer zu einem Super-Administrator", - "Manual Task": "Manuelle Aufgabe", - "Manually Complete Request": "Anfrage manuell bearbeiten", - "Manually reconfigure the dashboard using an existing one in the environment.": "Konfigurieren Sie das Dashboard manuell neu, indem Sie ein vorhandenes in der Umgebung verwenden.", - "Message Event Identifier": "Kennung des Nachrichtenereignisses", - "Message Flow": "Nachrichtenfluss", - "Middle": "Mitte", - "MIME Type": "MIME-Typ", - "minute": "Minute", - "Modeler": "Modellierungsprogramm", - "Modified": "Modifiziert", - "month": "Monat", - "Must be unique": "Muss eindeutig sein", - "Multi Column": "Mehrere Spalten", - "Multicolumn / Table": "Mehrere Spalten / Tabelle", - "My Requests": "Meine Anfragen", - "Name must be unique": "Name muss eindeutig sein", - "Name of Variable to store the output": "Name der Variablen zum Speichern der Ausgabe", - "name": "Name", - "Name": "Name", - "Navigation": "Navigation", - "Never": "Nie", - "New Boundary Timer Event": "Neues Grenztimer-Ereignis", - "New Boundary Message Event": "Neues Grenznachricht-Ereignis", - "New Call Activity": "Neue Anrufaktivität", - "New Checkbox": "Neues Kontrollkästchen", - "New Collection Select": "Neue Sammlungsauswahl", - "New Date Picker": "Neue Datumsauswahl", - "New Event-Based Gateway": "Neues Ereignis-basiertes Gateway", - "New Exclusive Gateway": "Neues exklusives Gateway", - "New File Download": "Neuer Datei-Download", - "New File Upload": "Neuer Datei-Upload", - "New Inclusive Gateway": "Neues inklusives Gateway", - "New Input": "Neue Eingabe", - "New Manual Task": "Neue manuelle Aufgabe", - "New Option": "Neue Option", - "New Page Navigation": "Neue Seitennavigation", - "New Parallel Gateway": "Neues paralleles Gateway", - "New Password": "Neues Passwort", - "New Pool": "Neuer Pool", - "New Radio Button Group": "Neue Radiobutton-Gruppe", - "New Record List": "Neue Datensatz-Liste", - "New Request": "Neue Anfrage", - "New Script Task": "Neue Skript-Aufgabe", - "New Select": "Neue Auswahl", - "New Sequence Flow": "Neuer Reihenfolgeablauf", - "New Submit": "Neuer Versand", - "New Sub Process": "Neuer Unterprozess", - "New Task": "Neue Aufgabe", - "New Text Annotation": "Neue Textanmerkung", - "New Text": "Neuer Text", - "New Textarea": "Neuer Textbereich", - "No Data Available": "Keine Daten verfügbar", - "No data available for this dynamic panel": "Keine Daten verfügbar für diesen dynamischen Bereich", - "No Data Found": "Keine Daten gefunden", - "No elements found. Consider changing the search query.": "Keine Elemente gefunden. Passen Sie eventuell Ihre Suchanfrage an.", - "No Errors": "Keine Fehler", - "No files available for download": "Keine Dateien zum Download verfügbar", - "No Notifications Found": "Keine Benachrichtigungen gefunden", - "No permissions to access this content": "Keine Berechtigung zum Zugriff auf diesen Inhalt", - "no problems to report": "Es sind keine Probleme zu vermelden", - "No relevant data": "Keine relevanten Daten", - "No Results": "Keine Ergebnisse", - "Node Identifier": "Knotenkennung", - "None": "Keiner", - "Normal": "Normal", - "Not Authorized": "Nicht berechtigt", - "Notifications (API)": "Benachrichtigungen (API)", - "Notifications Inbox": "Benachrichtigungs-Eingang", - "Notifications": "Benachrichtigungen", - "Notify Participants": "Benachrichtigung an Teilnehmer senden", - "Notify Process Manager": "Benachrichtigung an Prozessmanager senden", - "Notify Requester": "Benachrichtigung an anfragende Person senden", - "occurrences": "Ereignisse", - "Ok": "OK", - "On": "Am", - "One": "Einer", - "Only the logged in user can create API tokens": "Nur angemeldete Benutzer können API-Token erstellen", - "Oops! No elements found. Consider changing the search query.": "Hoppla! Keine Elemente gefunden. Passen Sie eventuell Ihre Suchanfrage an.", - "Oops!": "Hoppla!", - "Open Console": "Konsole öffnen", - "Open Request": "Anfrage öffnen", - "Open Task": "Aufgabe öffnen", - "Options List": "Optionen-Liste", - "Options": "Optionen", - "organization": "Organisation", - "Output": "Ausgabe", - "Output Variable Name": "Variablen-Name der Ausgabe", - "Overdue": "überfällige", - "Owner": "Inhaber", - "Package installed": "Paket wurde installiert", - "Page": "Seite", - "Page Name": "Seitenname", - "Page Navigation": "Seitennavigation", - "Page not found - ProcessMaker": "Seite wurde nicht gefunden – ProcessMaker", - "Pagination": "Paginierung", - "Parallel Gateway": "Paralleles Gateway", - "Participants": "Teilnehmer", - "participants": "Teilnehmer", - "Password Grant Client ID": "Passwortgewährung Client-ID", - "Password Grant Secret": "Passwortgewährung Geheimnis", - "Password": "Passwort", - "Passwords must be at least six characters and match the confirmation.": "Die Passwörter müssen aus mindestens sechs Zeichen bestehen und mit der Sicherheitsabfrage übereinstimmen.", - "Pause Start Timer Events": "Timer für Ereignisstart pausieren", - "Pause Timer Start Events": "Timer für Ereignisstart pausieren", - "Permission To Start": "Berechtigung, zu beginnen", - "Permissions": "Berechtigungen", - "Phone": "Telefon", - "Placeholder Text": "Platzhaltertext", - "Placeholder": "Platzhalter", - "Please assign a run script user to: ": "Bitte weisen Sie einen „Skript ausführen“-Benutzer zu: ", - "Please change your account password": "Bitte ändern Sie Ihr Kontopasswort.", - "Please contact your administrator to get started.": "Bitte wenden Sie sich an Ihren Administrator, um zu beginnen.", - "Please log in to continue your work on this page.": "Bitte melden Sie sich an, um Ihre Arbeit auf dieser Seite fortzusetzen.", - "Please visit the Processes page": "Bitte besuchen Sie die „Prozess“-Seite", - "Please wait while the files are generated. The screen will be updated when finished.": "Einen Moment bitte, die Dateien werden jetzt generiert. Der Bildschirm wird aktualisiert, sobald dieser Vorgang abgeschlossen ist.", - "Please wait while your content is loaded": "Bitte warten Sie, während Ihre Inhalt laden", - "Pool": "Pool", - "Postal Code": "Postleitzahl", - "Preview Screen was Submitted": "Vorschau der Ansicht wurde wurde übermittelt", - "Preview": "Vorschau", - "Preview Screen": "Vorschau-Ansicht", - "Previous Task Assignee": "Bisheriger Verantwortlicher für die Aufgabe", - "primary": "primär", - "Print": "Drucken", - "Problems": "Probleme", - "Process Archive": "Prozessarchiv", - "Process Categories": "Prozesskategorien", - "Process Category": "Prozesskategorie", - "Process has multiple blank start events": "Der Prozess hat mehrere leere Startereignisse", - "Process is missing end event": "Dem Prozess fehlt das Endereignis", - "Process is missing start event": "Dem Prozess fehlt das Startereignis", - "Process": "Prozess", - "Processes Dashboard": "Prozess-Dashboard", - "processes": "Prozesse", - "ProcessMaker database installed successfully.": "Die ProcessMaker-Datenbank wurde erfolgreich installiert.", - "ProcessMaker does not import Environment Variables or Enterprise Packages. You must manually configure these features.": "ProcessMaker importiert keine Umgebungsvariablen oder Unternehmenspakete. Sie müssen diese Funktionen manuell konfigurieren.", - "ProcessMaker installation is complete. Please visit the URL in your browser to continue.": "Die Installation von ProcessMaker ist abgeschlossen. Bitte rufen Sie die URL in Ihrem Browser auf, um fortzufahren.", - "ProcessMaker Installer": "ProcessMaker-Installationsprogramm", - "ProcessMaker is busy processing your request.": "ProcessMaker bearbeitet derzeit Ihre Anfrage.", - "ProcessMaker Modeler": "ProcessMaker-Modellierungsprogramm", - "ProcessMaker requires a MySQL database created with appropriate credentials.": "ProcessMaker setzt eine MySQL-Datenbank voraus, die mit den entsprechenden Zugangsdaten angelegt wurde.", - "ProcessMaker v4.0 Beta 4": "ProcessMaker v4.0 Betaversion 4", - "Profile": "Profile", - "Property already exists": "Eigenschaft existiert bereits", - "Property deleted": "Eigenschaft wurde gelöscht", - "Property Edited": "Eigenschaft wurde bearbeitet", - "Property Name": "Name der Eigenschaft", - "Property Saved": "Eigenschaft wurde gespeichert", - "Queue Management": "Warteschlangenverwaltung", - "Radio Button Group": "Radiobutton-Gruppe", - "Radio Group": "Radiogruppe", - "Read Only": "Schreibgeschützt", - "Reassign to": "Neu zuweisen an", - "Reassign": "Neu zuweisen", - "Record Form": "Datensatz-Formular", - "Record List": "Datensatz-Liste", - "Recurring loop repeats at time interval set below": "Wiederkehrende Schleife wird dem unten festgelegten Zeitintervall entsprechend wiederholt", - "Redirect URL": "Weiterleitungs-URL", - "Redirect": "Weiterleiten", - "redirected to my next assigned task": "zur nächsten mir zugewiesenen Aufgabe weitergeleitet", - "Redo": "Wiederholen", - "Refresh": "Aktualisieren", - "Regenerating CSS Files": "CSS-Dateien werden neu generiert", - "Remember me": "Meine Daten speichern", - "Remove from clipboard": "Aus Zwischenablage entfernen", - "Remove from Group": "Aus Gruppe entfernen", - "Remove the .env file to perform a new installation.": "Entfernen Sie die .env-Datei, damit Sie eine neue Installation durchführen können.", - "Remove": "Entfernen", - "Render Options As": "Optionen rendern als", - "Repeat every": "Wiederholung: jede(n)", - "Repeat on": "Wiederholen am", - "Report an issue": "Ein Problem melden", - "Request All": "Alle Anfragen", - "Request Canceled": "Anfrage wurde abgebrochen", - "Request Completed": "Anfrage wurde abgeschlossen", - "Request Detail Screen": "Detailansicht anfragen", - "Request Detail": "Informationen anfragen", - "Request In Progress": "Anfrage wird bearbeitet", - "Request Received!": "Anfrage eingegangen!", - "Request Reset Link": "Link zum Zurücksetzen anfordern", - "Request Started": "Anfrage gestartet", - "Request": "Anfrage", - "Requested By": "Angefragt von", - "requester": "Anfragender", - "requesters": "Anfragende", - "Requests": "Anfragen", - "Request Variable Name": "Name der Anforderungsvariable", - "Non-array data will result in an error.": "Daten, die sich nicht in einem Array befinden, führen zu einem Fehler.", - "Output Data Variable": "Ausgabedaten-Variable", - "Exit Condition": "Exit-Bedingung", - "FEEL Syntax": "FEEL-Syntax", - "When the FEEL Expression evaluates to true then exit the loop": "Wird der FEEL-Ausdruck als wahr bewertet, Schleife verlassen.", - "Maximum Iterations": "Maximale Iterationen", - "Leave empty to continue until exit condition is satisfied": "Leer lassen, um fortzufahren, bis die Exit-Bedingung erfüllt ist.", - "When FEEL expression evaluates to true then exit loop": "Wird der FEEL-Ausdruck als wahr bewertet, Schleife verlassen.", - "Reset": "Zurücksetzen", - "Reset to initial scale": "Auf anfängliche Skala zurücksetzen", - "Restore": "Wiederherstellen", - "Rich Text Content": "Inhalt des Rich Texts", - "Rich Text": "Rich Text", - "Right": "Rechtsbündig", - "Rows": "Reihen", - "Rule": "Regel", - "Run Script As": "Skript ausführen als", - "Run script": "Skript ausführen", - "Run Synchronously": "Synchron ausführen", - "Run": "Ausführen", - "S": "So.", - "Sa": "Sa.", - "Sample Input": "Beispieleingabe", - "Save Property": "Eigenschaft speichern", - "Save Screen": "Ansicht speichern", - "Save": "Speichern", - "Screen for Input": "Eingabe-Ansicht", - "Screen Validation": "Validierung der Ansicht", - "Screen": "Ansicht", - "Screen Interstitial": "Zwischengitterplatz der Ansicht", - "Screens": "Ansichten", - "Screen Categories": "Ansichtskategorien", - "Script Config Editor": "Skriptkonfigurations-Editor", - "Script Configuration": "Skript-Konfiguration", - "Script Source": "Skript-Quelle", - "Script Task": "Skript-Aufgabe", - "Script": "Skript", - "Scripts": "Skripte", - "Search...": "Suche ...", - "Search": "Suche", - "Search variables...": "Variablen suchen...", - "secondary": "sekundär", - "Select a collection and fill the fields that will be used in the dropdownlist": "Wählen Sie eine Sammlung aus und füllen Sie die Felder aus, die in der Auswahlliste verwendet werden sollen", - "Select a user to set the API access of the Script": "Wählen Sie einen Benutzer aus, um den API-Zugriff des Skripts festzulegen.", - "Select All": "Alle auswählen", - "Select allowed group": "Zulässige Gruppe auswählen", - "Select allowed groups": "Zulässige Gruppen auswählen", - "Select allowed user": "Zulässigen Benutzer auswählen", - "Select allowed users": "Zulässige Benutzer auswählen", - "Select element destination": "Wählen Sie das Elementziel aus", - "Select Direction": "Pfad auswählen", - "Select Display-type Screen to show the summary of this Request when it completes": "Wählen Sie den Anzeigetyp Ansicht aus, um nach Abschluss dieser Anfrage eine Zusammenfassung derselben anzuzeigen", - "select file": "Datei wählen", - "Select from which Intermediate Message Throw or Message End event to listen": "Legen Sie fest, aus welchen Zwischennachrichten oder Nachrichtenenden Sie etwas hören möchten", - "Select List": "Liste auswählen", - "Select group or type here to search groups": "Wählen Sie die Gruppe aus oder geben Sie hier einen Begriff ein, um nach Benutzern zu suchen", - "Select Screen to display this Task": "Wählen Sie Ansicht aus, um diese Aufgabe anzuzeigen", - "Select the Script this element runs": "Wählen Sie das Skript aus, das dieses Element ausführt", - "Select the dashboard to show the summary of this request when it completes": "Wählen Sie das Dashboard aus, um die Zusammenfassung dieser Anfrage anzuzeigen, wenn sie abgeschlossen ist", - "Select the date to trigger this element": "Wählen Sie das Datum aus, an dem dieses Element ausgelöst werden soll", - "Select the day(s) of the week in which to trigger this element": "Wählen Sie den Wochentag oder die Wochentage aus, an dem/denen dieses Element ausgelöst werden soll", - "Select the direction of workflow for this element": "Wählen Sie den Pfad des Arbeitsablaufes für dieses Element aus", - "Select the duration of the timer": "Legen Sie die Dauer des Timers fest", - "Select the group from which any user may start a Request": "Wählen Sie eine Gruppe aus, von der jeder Benutzer eine Anfrage starten kann", - "Select the type of delay": "Wählen Sie den Verzögerungstyp aus", - "Select which Process this element calls": "Legen Sie fest, welchen Prozess dieses Element anruft", - "Select who may start a Request": "Legen Sie fest, wer eine Anfrage starten darf", - "Select who may start a Request of this Process": "Legen Sie fest, wer eine Anfrage für diesen Prozess starten darf", - "Select user or type here to search users": "Wählen Sie den Benutzer aus oder geben Sie hier einen Begriff ein, um nach Benutzern zu suchen", - "Select variables to submit, otherwise all variables will be submitted by default.": "Wählen Sie die Variablen aus, die übermittelt werden sollen, andernfalls werden alle Variablen standardmäßig übermittelt.", - "Select where to send users after this task. Any Non-default destination will disable the “Display Next Assigned Task” function.": "Wählen Sie aus, wohin Benutzer nach dieser Aufgabe gesendet werden sollen. Jedes nicht standardmäßige Ziel deaktiviert die Funktion „Nächste zugewiesene Aufgabe anzeigen“.", - "Select...": "Auswählen ...", - "Select": "Auswählen", - "Self Service": "Self-Service", - "Self-Service": "Self-Service", - "Set the periodic interval to trigger this element again": "Legen Sie das regelmäßige Intervall fest, in dem dieses Element neu ausgelöst werden soll", - "Sequence flow is missing condition": "Dem Sequenzfluss fehlt die Bedingung", - "Sequence Flow": "Reihenfolgeablauf", - "Server Error - ProcessMaker": "Serverfehler – ProcessMaker", - "Server Error": "Serverfehler", - "Service Task": "Serviceaufgabe", - "Set the element's background color": "Legen Sie die Hintergrundfarbe des Elements fest", - "Set the element's text color": "Legen Sie die Textfarbe des Elements fest", - "Should records be editable/removable and can new records be added": "Sollten die Datensätze bearbeitbar / entfernbar sein und können neue Datensätze hinzugefügt werden?", - "Should the checkbox be checked by default": "Sollte das Kontrollkästchen standardmäßig aktiviert sein?", - "Show in Json Format": "Im JSON-Format anzeigen", - "Show Menus": "Menüs anzeigen", - "Show Mini-Map": "Minimap anzeigen", - "Something has gone wrong.": "Etwas ist schief gelaufen.", - "Something went wrong and the file cannot be previewed or downloaded.": "Etwas ist schief gelaufen, und die Datei kann nicht angezeigt oder heruntergeladen werden.", - "Something went wrong. Try refreshing the application": "Etwas scheint schief gelaufen zu sein. Aktualisieren Sie bitte die Anwendung.", - "Sorry, this request doesn't contain any information.": "Diese Anfrage enthält leider keine Informationen.", - "Sorry! API failed to load": "Entschuldigung, leider konnte die API nicht geladen werden", - "Sorry but nothing matched your search. Try a new search.": "Entschuldigung, aber nichts entsprach Ihrer Suche. Versuchen Sie eine neue Suche.", - "Sort Ascending": "Aufsteigend sortieren", - "Sort Descending": "Absteigend sortieren", - "Source Type": "Quelltyp", - "Spanish": "Spanisch", - "Start date": "Startdatum", - "Start event is missing event definition": "Dem Startereignis fehlt die Ereignisdefinition", - "Start event must be blank": "Das Startereignis muss leer sein", - "Start Event": "Startereignis", - "Start Permissions": "Startberechtigungen", - "Start Sub Process As": "Unterprozess starten als", - "Start Timer Event": "Ereignis zum Starten des Timers", - "Started By Me": "Von mir begonnen", - "Started import of": "Import gestartet von:", - "Started": "Begonnen", - "STARTED": "Begonnen", - "Starting": "Start", - "State or Region": "Bundesland oder Region", - "Status": "Status", - "STATUS": "STATUS", - "statuses": "Status", - "Sub Process": "Unterprozess", - "Sub process has multiple blank start events": "Der Unterprozess hat mehrere leere Startereignisse", - "Sub process is missing end event": "Dem Unterprozess fehlt das Endereignis", - "Sub process is missing start event": "Dem Unterprozess fehlt das Startereignis", - "Subject": "Betreff", - "Submit Button": "„Senden“-Schaltfläche", - "Submit": "Übermitteln", - "success": "Erfolg", - "Successfully imported": "Erfolgreich importiert", - "Successfully saved": "Erfolgreich gespeichert", - "Summary Screen": "Zusammenfassungs-Ansicht", - "Summary": "Zusammenfassung", - "System is waiting for the scheduled timer: \":event\"": "Das System wartet auf den geplanten Timer: „:event“", - "System is waiting for the conditional event: \":event\"": "Das System wartet auf das bedingte Ereignis: „:event“", - "System is waiting to receive message \":event\"": "Das System wartet auf den Empfang der Nachricht: „:event“", - "T": "Di.", - "Table": "Tabelle", - "Task Assignment": "Aufgabenzuweisung", - "Select the Task assignee": "Wählen Sie den Verantwortlichen für die Aufgabe aus", - "Task Assignments (API)": "Aufgabenzuweisungen (API)", - "Task Completed Successfully": "Aufgabe wurde erfolgreich abgeschlossen", - "Task Notifications": "Benachrichtigungen zur Aufgabe", - "Task": "AUFGABE", - "Tasks": "Aufgaben", - "Text Annotation": "Textanmerkung", - "Text Box": "Textfeld", - "Text Color": "Textfarbe", - "Text Content": "Textinhalt", - "Text Horizontal Alignment": "Text horizontale Ausrichtung", - "Text Label": "Textbezeichnung", - "Text to Show": "Text, der angezeigt werden soll", - "Text Vertical Alignment": "Text vertikale Ausrichtung", - "Text": "Text", - "Textarea": "Textbereich", - "Th": "Do.", - "There are {{items}} validation errors in your form.": "Ihr Formular enthält {{items}} Validierungsfehler.", - "There is a validation error in your form.": "Ihr Formular enthält einen Validierungsfehler.", - "The :attribute must be a file of type: jpg, jpeg, png, or gif.": "Das :attribute muss eine Datei folgenden Typs sein: jpg, jpeg, png oder gif.", - "The Auth-Client must have at least :min item chosen.": "Für den authentifizierten Kunden muss mindestens :min Element ausgewählt werden.", - "The auth client was ": "Authentifizierter Kunden war ", - "The bpm definition is not valid": "Die bpm-Definition ist ungültig", - "The category field is required.": "Das Kategoriefeld ist erforderlich.", - "The category name must be unique.": "Der Kategoriename muss eindeutig sein.", - "The category was created.": "Die Kategorie wurde erstellt.", - "The category was saved.": "Die Kategorie wurde gespeichert.", - "The data name for this field": "Der Datenname für dieses Feld", - "The data name for this list": "Der Datenname für diese Liste", - "The data type specifies what kind of data is stored in the variable.": "Der Datentyp gibt an, welche Art von Daten in der Variable gespeichert sind.", - "The destination page to navigate to": "Die Zielseite, zu der navigiert werden soll", - "The environment variable name must be unique.": "Der Name der Umgebungsvariable muss eindeutig sein.", - "The environment variable was created.": "Die Umgebungsvariable wurde erstellt.", - "The environment variable was deleted.": "Die Umgebungsvariable wurde gelöscht.", - "The environment variable was saved.": "Die Umgebungsvariable wurde gespeichert.", - "The following items should be configured to ensure your process is functional.": "Die folgenden Elemente sollten konfiguriert werden, um sicherzustellen, dass Ihr Prozess funktionsfähig ist.", - "The following items should be configured to ensure your process is functional": "Die folgenden Elemente sollten konfiguriert werden, um sicherzustellen, dass Ihr Prozess funktionsfähig ist", - "The following required fields are not included in the submitted data.": "Die folgenden erforderlichen Felder sind nicht in den übermittelten Daten enthalten.", - "The form to be displayed is not assigned.": "Das anzuzeigende Formular ist nicht zugeordnet.", - "The form to use for adding/editing records": "Das Formular zum Hinzufügen / Bearbeiten von Datensätzen", - "The group was created.": "Die Gruppe wurde erstellt.", - "The group was deleted.": "Die Gruppe wurde gelöscht.", - "The HTML text to display": "Der HTML-Text, der angezeigt werden soll", - "The id field should be unique across all elements in the diagram, ex. id_1.": "Das ID-Feld sollte für alle Elemente im Diagramm eindeutig sein, zum Beispiel id_1.", - "The label describes the button's text": "Die Bezeichnung beschreibt den Text der Schaltfläche", - "The label describes the field's name": "Die Bezeichnung beschreibt den Feldnamen", - "The label describes the fields name": "Die Bezeichnung beschreibt den Feldnamen", - "The label describes this record list": "Die Bezeichnung beschreibt diese Datensatz-Liste", - "The name of the button": "Der Name der Schaltfläche", - "The Name of the data name": "Der Name des Datennamens", - "The name of the Download": "Der Name des Downloads", - "The Name of the Gateway": "Der Name des Gateways", - "The name of the group for the checkbox. All checkboxes which share the same name will work together.": "Der Name der Gruppe für das Kontrollkästchen. Alle Kontrollkästchen mit demselben Namen funktionieren gemeinsam.", - "The name of the image": "Der Name des Bilds", - "The name of the new page to add": "Der Name der neuen Seite, der hinzugefügt werden soll", - "The Name of the Process": "Der Name des Prozesses", - "The name of the upload": "Der Name des Uploads", - "The Name of the variable": "Der Name der Variablen", - "The new name of the page": "Der neue Name der Seite", - "The number of rows to provide for input": "Die Anzahl der Zeilen, die für die Eingabe bereitgestellt werden sollen", - "The package is not installed": "Das Paket ist nicht installiert", - "The page you are looking for could not be found": "Die von Ihnen gesuchte Seite konnte nicht gefunden werden", - "The placeholder is what is shown in the field when no value is provided yet": "Der Platzhalter wird im Feld angezeigt, wenn noch kein Wert angegeben ist.", - "The process name must be unique.": "Der Prozessname muss eindeutig sein.", - "The process was archived.": "Der Prozess wurde archiviert.", - "The process was created.": "Der Prozess wurde erstellt.", - "The process was exported.": "Der Prozess wurde exportiert.", - "The process was imported.": "Der Prozess wurde importiert.", - "The process was paused.": "Der Prozess wurde angehalten.", - "The process was restored.": "Der Prozess wurde wiederhergestellt.", - "The process was saved.": "Der Prozess wurde gespeichert.", - "The process was unpaused.": "Der Prozess wurde fortgesetzt.", - "The property formula field is required.": "Das Feld für die Eigenschaft-Formel muss ausgefüllt werden.", - "The Record List control is not allowed to reference other controls on its own page to add or edit records. Specify a secondary page with controls to enter records.": "Das Steuerelement „Datensatzliste“ darf nicht auf andere Steuerelemente auf seiner eigenen Seite verweisen, um Datensätze hinzuzufügen oder zu bearbeiten. Geben Sie eine sekundäre Seite mit Steuerelementen an, mithilfe derer Sie Datensätze eingeben können.", - "The request data was saved.": "Die Anfragedaten wurden gespeichert.", - "The request was canceled.": "Die Anfrage wurde abgebrochen.", - "The screen name must be unique.": "Der Ansichtsname muss eindeutig sein.", - "The screen was created.": "Die Ansicht wurde erstellt.", - "The screen was deleted.": "Die Ansicht wurde gelöscht.", - "The screen was duplicated.": "Die Ansicht wurde dupliziert.", - "The screen was exported.": "Die Ansicht wurde exportiert.", - "The screen was saved.": "Die Ansicht wurde gespeichert.", - "The script name must be unique.": "Der Skriptname muss eindeutig sein.", - "The script was created.": "Das Skript wurde erstellt.", - "The script was deleted.": "Das Skript wurde gelöscht.", - "The script was duplicated.": "Das Skript wurde dupliziert.", - "The script was saved.": "Das Skript wurde gespeichert.", - "The size of the text in em": "Die Textgröße in em", - "The specified requester username does not exist.": "Der angegebene Benutzername der anfragenden Person existiert nicht.", - "The specified participant username does not exist.": "Der angegebene Benutzername des Teilnehmers existiert nicht.", - "The styles were recompiled.": "Die Stile wurden neu kompiliert.", - "The System": "Das System", - "The text to display": "Der Text, der angezeigt werden soll", - "The type for this field": "Der Typ für dieses Feld", - "The URL you provided is invalid. Please provide the scheme, host and path without trailing slashes.": "Die von Ihnen angegebene URL ist ungültig. Bitte geben Sie das Schema, den Host und den Pfad ohne nachgestellte Schrägstriche an.", - "The user was deleted.": "Der Benutzer wurde gelöscht.", - "The user was removed from the group.": "Der Benutzer wurde aus der Gruppe entfernt.", - "The user was successfully created": "Der Benutzer wurde erfolgreich erstellt", - "The user will go here after completing the process.": "Der Benutzer wird hierhin geleitet, nachdem der Prozess abgeschlossen wurde", - "The user will go here after completing the task.": "Der Benutzer wird hierhin geleitet, nachdem die Aufgabe abgeschlossen wurde", - "The validation rules needed for this field": "Die für dieses Feld erforderlichen Validierungsregeln", - "The value being submitted": "Der übermittelte Wert", - "The variant determines the appearance of the button": "Die Variante bestimmt das Aussehen der Schaltfläche", - "The weight of the text": "Schriftstärke im Text", - "These credentials do not match our records.": "Diese Zugangsdaten stimmen nicht mit unseren Unterlagen überein.", - "This application installs a new version of ProcessMaker.": "Diese Anwendung installiert eine neue Version von ProcessMaker.", - "This control is hidden until this expression is true": "Dieser Befehl wird ausgeblendet, bis der Ausdruck wahr ist", - "This password reset token is invalid.": "Dieses Token zum Zurücksetzen des Passworts ist ungültig.", - "This Request is currently in progress.": "Diese Anfrage wird derzeit bearbeitet.", - "This screen has validation errors.": "In dieser Ansicht gibt es einen Validierungsfehler.", - "This screen will be populated once the Request is completed.": "Diese Anzeige wird ausgefüllt, sobald die Anfrage abgeschlossen ist.", - "This window will automatically close when complete.": "Dieses Fenster wird automatisch geschlossen, wenn der Vorgang abgeschlossen ist.", - "Time expression": "Uhrzeit-Ausdruck", - "Time Zone": "Zeitzone", - "Time": "Uhrzeit", - "Timeout": "Zeitüberschreitung", - "Timing Control": "Steuerung des Timers", - "To Do Tasks": "Zu erledigende Aufgaben", - "To Do": "Zu erledigen", - "to": "an", - "Toggle Style": "Auf Umschalttaste umstellen", - "Too many login attempts. Please try again in :seconds seconds.": "Zu viele Anmeldeversuche. Bitte versuchen Sie es in :Sekunden Sekunden erneut", - "Top": "Oben", - "type here to search": "Zum Suchen hier Suchbegriff eingeben", - "Type to search task": "Zum Suchen der Aufgabe Suchbegriff eingeben", - "Type to search": "Zum Suchen eingeben", - "Type": "Typ", - "Unable to import the process.": "Das Importieren des Prozesses ist fehlgeschlagen.", - "Unable to import": "Import nicht möglich", - "Unable to send email. Please check your email server settings.": "Unable to send email. Please check your email server settings.", - "Unable to send SMS. Please check your cell number and SMS server settings.": "Unable to send SMS. Please check your cell number and SMS server settings.", - "Unauthorized - ProcessMaker": "Nicht berechtigt – ProcessMaker", - "Undo": "Rückgängig", - "Unfortunately this screen has had an issue. We've notified the administrator.": "In dieser Ansicht gab es leider ein Problem. Wir haben den Administrator benachrichtigt.", - "Unpause Start Timer Events": "Zeitabhängiges Startereignis fortsetzen", - "Unread Notifications": "Ungelesene Benachrichtigungen", - "Update Group Successfully": "Gruppe wurde erfolgreich aktualisiert", - "Upload Avatar": "Avatar hochladen", - "Upload BPMN File (optional)": "BPMN-Datei hochladen (optional)", - "Upload BPMN File": "BPMN-Datei hochladen", - "Upload file": "Datei hochladen", - "Upload image": "Bild hochladen", - "Upload Name": "Upload-Name", - "Upload XML": "XML hochladen", - "Upload": "Hochladen", - "Use a transparent PNG at :size pixels for best results.": "Verwenden Sie eine transparente PNG-Datei mit :size Pixeln für ein optimales Ergebnis.", - "Use this in your custom css rules": "Verwenden Sie diesen in Ihren benutzerdefinierten CSS-Regeln", - "user": "Benutzer", - "User assignments and sensitive Environment Variables will not be exported.": "Benutzerzuweisungen und sensible Umgebungsvariablen werden nicht exportiert.", - "User assignments and sensitive Environment Variables will not be imported.": "Benutzerzuweisungen und sensible Umgebungsvariablen werden nicht importiert.", - "User has no tokens.": "Benutzer hat keine Token.", - "User Permissions Updated Successfully": "Benutzerberechtigungen wurden erfolgreich aktualisiert", - "User Updated Successfully ": "Benutzer wurde erfolgreich aktualisiert ", - "User Updated Successfully": "Benutzer wurde erfolgreich aktualisiert", - "User": "Benutzer", - "Username": "Benutzername", - "Users that should be notified about task events": "Benutzer, die über Aufgabenereignisse informiert werden sollen", - "Users": "Benutzer", - "Valid JSON Data Object": "Gültiges JSON-Datenobjekt", - "Valid JSON Object, Variables Supported": "Gültiges JSON-Objekt, Variablen unterstützt", - "Validation rules ensure the integrity and validity of the data.": "Validierungsregeln stellen die Integrität und Gültigkeit der Daten sicher.", - "Validation Rules": "Validierungsregeln", - "Validation": "Validierung", - "Value": "Wert", - "Variable": "Variable", - "Variables": "Variablen", - "Variable Name": "Variablen-Name", - "Invalid variable name": "Ungültiger Variablen-Name", - "Variable to Watch": "Variable, die beobachtet werden soll", - "Variant": "Variante", - "Vertical alignment of the text": "Vertikale Ausrichtung des Texts", - "View All Requests": "Alle Anfragen anzeigen", - "View All": "Alle anzeigen", - "View All Notifications": "Alle Benachrichtigungen anzeigen", - "View Auth Clients": "Authentifizierte Kunden anzeigen", - "View Categories": "Kategorien anzeigen", - "View Comments": "Kommentare anzeigen", - "View Environment Variables": "Umgebungsvariablen anzeigen", - "View Files": "Dateien anzeigen", - "View Groups": "Gruppen anzeigen", - "View Notifications": "Benachrichtigungen anzeigen", - "View Processes": "Prozesse anzeigen", - "View Screens": "Ansichten anzeigen", - "View Scripts": "Skripte anzeigen", - "View Task Assignments": "Aufgabenzuweisungen anzeigen", - "View Users": "Benutzer anzeigen", - "Visibility Rule": "Sichtbarkeitsregel", - "W": "Mi.", - "Watcher": "Beobachter", - "Watchers": "Beobachter", - "Watcher Name": "Name des Beobachters", - "Watcher Saved": "Beobachter gespeichert", - "Watcher Updated": "Beobachter aktualisiert", - "Watching": "Beobachtung im Gange", - "Wait until specific date/time": "Bis zu einem bestimmten Datum / Uhrzeit warten", - "warning": "warnung", - "We can't find a user with that e-mail address.": "Wir können keinen Benutzer mit dieser E-Mail-Adresse finden.", - "We have e-mailed your password reset link!": "Wir haben Ihnen eine E-Mail mit einem Link zum Zurücksetzen Ihres Passworts gesendet!", - "We recommended a transparent PNG at :size pixels.": "Wir empfehlen ein transparentes PNG mit :size Pixeln.", - "Select a Process below to get started.": "Wählen Sie einen Prozess aus, um Ihre Anfrage zu generieren.", - "Web Entry": "Web-Eintrag", - "week": "Woche", - "Welcome": "Willkommen", - "Welcome WebEntry": "Willkommen", - "What is the URL of this ProcessMaker installation? (Ex: https://pm.example.com, with no trailing slash)": "Wie lautet die URL für diese ProcessMaker-Installation? (Beispiel: https://pm.example.com, ohne nachgestellten Schrägstrich)", - "What Screen Should Be Used For Rendering This Interstitial": "Welche Ansicht soll für die Darstellung dieses Zwischengitterplatzes verwendet werden?", - "What Screen Should Be Used For Rendering This Task": "Welche Ansicht sollte für die Darstellung dieser Aufgabe verwendet werden?", - "whitelist": "Whitelist", - "Width": "Breite", - "year": "Jahr", - "Yes": "Ja", - "You are about to export a Process.": "Sie sind dabei, einen Prozess zu exportieren.", - "You are about to export a Screen.": "Sie sind dabei, eine Ansicht zu exportieren.", - "You are about to import a Process.": "Sie sind dabei, einen Prozess zu importieren.", - "You are about to import a Screen.": "Sie sind dabei, eine Ansicht zu importieren.", - "You are trying to place a nested screen within CAPTCHA elements inside a loop. CAPTCHA controls cannot be placed within a Loop control.": "Sie versuchen, eine verschachtelte Ansicht innerhalb von CAPTCHA-Elementen in einer Schleife zu platzieren. CAPTCHA-Kontrollen können nicht in einer Schleife platziert werden.", - "You can close this page.": "Sie können diese Seite schließen.", - "You can set CSS Selector names in the inspector. Use them here with [selector='my-selector']": "Sie können die Namen der CSS-Selektoren im Inspektor festlegen. Verwenden Sie sie hier mit [selector='my-selector']", - "You don't currently have any tasks assigned to you": "Derzeit sind Ihnen keine Aufgaben zugewiesen", - "You don't have any Processes.": "Sie haben keine Prozesse.", - "You have {{ inOverDue }} overdue {{ taskText }} pending": "Sie haben {{ inOverDue }} überfällige ausstehende {{ taskText }}", - "You must have your database credentials available in order to continue.": "Halten Sie Ihre Datenbank-Zugangsdaten bereit, um fortfahren zu können.", - "Your account has been timed out for security.": "Ihr Konto wurde aus Sicherheitsgründen zeitweise abgemeldet.", - "Your password has been reset!": "Ihr Passwort wurde zurückgesetzt!", - "Your PMQL contains invalid syntax.": "Ihr PMQL enthält eine ungültige Syntax.", - "Your PMQL search could not be completed.": "Ihre PMQL-Suche konnte nicht abgeschlossen werden.", - "Your profile was saved.": "Ihr Profil wurde gespeichert.", - "Zoom In": "Heranzoomen", - "Zoom Out": "Herauszoomen", - "Element Conversion": "Elementkonversion", - "SubProcess Conversion": "Der Unterprozess (SubProcess) mit dem Namen „:name“ wurde in eine Anrufaktivität (CallActivity) konvertiert.", - "SendTask Conversion": "Die Versand-Aufgabe (SendTask) mit dem Namen „:name“ wurde in eine Skript-Aufgabe (ScriptTask) konvertiert.", - "Designer": "Designer", - "add": "Hinzufügen", - "Processes": "Prozesse", - "Requester": "Anfragender", - "TASK": "AUFGABE", - "ASSIGNED": "ZUGEWIESEN", - "DUE": "FÄLLIG AM", - "Due": "Fällig am", - "Forms": "Formulare", - "Complete Task": "Aufgabe abschließen", - "Start": "Start", - "Task Completed": "Aufgabe abgeschlossen", - "Create Process Category": "Prozesskategorie erstellen", - "Active": "Aktiv", - "Inactive": "Inaktiv", - "Are you sure you want to delete the environment variable {{ name }} ?": "Möchten Sie die Umgebungsvariable {{ name }} wirklich löschen?", - "Deleted User Found": "Gelöschter Benutzer gefunden", - "An existing user has been found with the email {{ email }} would you like to save and reactivate their account?": "Es wurde ein bestehender Benutzer mit der E-Mail-Adresse {{ email }} gefunden. Möchten Sie das entsprechende Konto speichern und reaktivieren?", - "An existing user has been found with the email {{ username }} would you like to save and reactivate their account?": "Es wurde ein bestehender Benutzer mit dem Benutzernamen {{ username }} gefunden. Möchten Sie das entsprechende Konto speichern und reaktivieren?", - "Create Auth Clients": "Authentifizierte Kunden erstellen", - "Delete Auth Clients": "Authentifizierte Kunden löschen", - "Export Screens": "Ansichten exportieren", - "Import Screens": "Ansichten importieren", - "Tokens": "Token", - "Token": "Token", - "Delete Token": "Token löschen", - "Enable Authorization Code Grant": "Autorisierungscodegewährung aktivieren", - "Enable Password Grant": "Passwortgewährung aktivieren", - "Enable Personal Access Tokens": "Persönliche Zugriffstoken aktivieren", - "Edit Auth Client": "Authentifizierten Kunden bearbeiten", - "Custom Login Logo": "Benutzerdefiniertes Anmeldelogo", - "Choose a login logo image": "Anmeldelogo-Bild auswählen", - "Primary": "Primär", - "Secondary": "Sekundär", - "Success": "Erfolg", - "Info": "Information", - "Warning": "Warnung", - "Danger": "Achtung", - "Dark": "dunkel", - "Light": "hell", - "Custom Font": "Benutzerdefinierte Schriftart", - "Default Font": "Standardschriftart", - "Boundary Timer Event": "Grenztimer-Ereignis", - "Boundary Error Event": "Grenzfehler-Ereignis", - "New Boundary Error Event": "Neues Grenzfehler-Ereignis", - "Boundary Escalation Event": "Grenzeskalations-Ereignis", - "Nested Screen": "Geschachtelte Ansicht", - "New Boundary Escalation Event": "Neues Grenzeskalations-Ereignis", - "New Boundary New Message Event": "Neues Grenznachricht-Ereignis", - "Boundary Message Event": "Grenznachricht-Ereignis", - "Message End Event": "Nachrichtenendereignis", - "New Message End Event": "Neues Nachrichtenendereignis", - "Error End Event": "Fehlerendereignis", - "New Error End Event": "Neues Fehlerendereignis", - "Intermediate Message Throw Event": "Ereignis für das Auslösen von Zwischennachrichten", - "New Intermediate Message Throw Event": "Neues Ereignis für das Auslösen von Zwischennachrichten", - "Message Start Event": "Nachrichtenstartereignis", - "New Message Start Event": "Neues Nachrichtenstartereignis", - "Event-Based Gateway": "Ereignis-basiertes Gateway", - "Warnings": "Warnungen", - "no warnings to report": "Es sind keine Warnungen zu vermelden", - "Assignment Rules": "Zuweisungsregeln", - "Directs Task assignee to the next assigned Task": "Leitet Verantwortlichen für die Aufgabe zur nächsten zugewiesenen Aufgabe weiter", - "You must select at least one day.": "Sie müssen mindestens einen Tag auswählen.", - "Listen For Message": "Auf Nachricht hören", - "Message Name": "Name der Nachricht", - "Sass compile completed": "SASS-Kompilierung abgeschlossen", - "Title": "Titel", - "No results.": "Keine Ergebnisse", - "Display": "anzeigen", - "Created By": "Erstellt von", - "Documentation": "Dokumentation", - "Packages Installed": "Pakete installiert", - "Translations": "Übersetzungen", - "Create Translations": "Übersetzungen erstellen", - "Delete Translations": "Übersetzungen löschen", - "Edit Translations": "Übersetzungen bearbeiten", - "View Translations": "Übersetzungen anzeigen", - "String": "String", - "Reset To Default": "Auf Standardeinstellungen zurücksetzen", - "Translation": "Übersetzung", - "View Profile": "Profil anzeigen", - "Requests In Progress": "Anfrage werden bearbeitet", - "The variable, :variable, which equals \":value\", is not a valid User ID in the system": "Die Variable :variable, die gleich „:value“ ist, ist keine gültige Benutzer-ID im System", - "Variable Name of User ID Value": "Variablen-Name des Werts der Benutzer-ID", - "By User ID": "Nach Benutzer-ID", - "File uploads are unavailable in preview mode.": "Datei-Uploads sind im Vorschaumodus nicht verfügbar.", - "Download button for {{fileName}} will appear here.": "Die Schaltfläche für den Download von {{fileName}} wird hier angezeigt.", - "Edit Script Categories": "Skript-Kategorien bearbeiten", - "Create Script Categories": "Skript-Kategorien erstellen", - "Delete Script Categories": "Skript-Kategorien löschen", - "View Script Categories": "Skript-Kategorien anzeigen", - "Edit Screen Categories": "Ansichtskategorien bearbeiten", - "Create Screen Categories": "Ansichtskategorien erstellen", - "Delete Screen Categories": "Ansichtskategorien löschen", - "View Screen Categories": "Ansichtskategorien anzeigen", - "The task \":task\" has an incomplete assignment. You should select one user or group.": "Die Aufgabe \":task\" ist nicht vollständig zugewiesen. Sie sollten einen Benutzer oder eine Gruppe auswählen.", - "The \":language\" language is not supported": "Die Sprache \":language\" wird nicht unterstützt.", - "The expression \":body\" is invalid. Please contact the creator of this process to fix the issue. Original error: \":error\"": "Der Ausdruck \":body\" ist ungültig. Kontaktieren Sie bitte die Person, die diesen Prozess erstellt hat, um das Problem zu beheben. Ursprünglicher Fehler: \":error\"", - "Failed to evaluate expression. :error": "Ausdruck konnte nicht ausgewertet werden. :error", - "This process was started by an anonymous user so this task can not be assigned to the requester": "Dieser Prozess wurde von einem anonymen Benutzer erstellt und kann dem Anfragenden deshalb nicht zugewiesen werden.", - "Can not assign this task because there is no previous user assigned before this task": "Diese Aufgabe kann nicht zugewiesen werden, da vor dieser Aufgabe kein vorheriger Benutzer zugewiesen ist.", - "Task cannot be assigned since there is no Process Manager associated to the process.": "Die Aufgabe kann nicht zugewiesen werden, da dem Prozess kein Prozessmanager zugeordnet ist.", - "Default Value": "Standardwert", - "Takes precedence over value set in data.": "Hat Vorrang vor dem in Daten festgelegten Wert.", - "The default value is pre populated using the existing request data. This feature will allow you to modify the value displayed on screen load if needed.": "Der Standardwert wird anhand der vorhandenen Anfragedaten vorausgefüllt. Mit dieser Funktion können Sie bei Bedarf den Wert ändern, der beim Laden der Ansicht angezeigt wird.", - "Using watchers with Scripts can slow the performance of your screen.": "Die Verwendung von Beobachtern mit Skripten kann die Leistung Ihrer Ansicht beeinträchtigen.", - "We recommend using fewer than 25 form elements in your screen for optimal performance.": "Für eine optimale Leistung empfehlen wir, weniger als 25 Formularelemente in Ihrer Ansicht zu verwenden.", - "Source": "Quelle", - "Watching Variable": "Beobachtungsvariable", - "Output Variable": "Ausgabevariable", - "Output Variable Property Mapping": "Ausgabevariable – Eigenschaftsabbildung", - "New Key": "neuer Schlüssel", - "New Value": "Neuer Wert", - "Properties to map from the Data Connector into the output variable": "Eigenschaften, die vom Datenkonnektor auf die Output-Variable abgebildet werden sollen", - "(If empty, all data returned will be mapped to the output variable)": "(Falls dies leer ist, werden alle erhaltenen Daten auf die Ausgabevariable abgebildet)", - "Are you sure you want to delete the Watcher?": "Möchten Sie den Beobachter wirklich löschen?", - "A name to describe this Watcher": "Ein Name zur Beschreibung dieses Beobachters", - "The Variable to Watch field is required": "Das Feld „Beobachtungsvariable“ ist ein Pflichtfeld", - "Wait for the Watcher to run before accepting more input": "Warten, bis der Beobachter ausgeführt wurde, bevor weitere Eingaben akzeptiert werden", - "The source to access when this Watcher runs": "Die Quelle, auf die beim Ausführen dieses Beobachters zugegriffen werden soll", - "The Source field is required": "Das Feld „Quelle“ ist ein Pflichtfeld", - "Data to pass to the script (valid JSON object, variables supported)": "Daten, die an das Skript übermittelt werden sollen (gültiges JSON-Objekt, Variablen werden unterstützt)", - "The Input Data field is required": "Das Feld „Dateneingabe“ ist ein Pflichtfeld", - "This must be valid JSON": "Hierbei muss es sich um gültigen JSON-Code handeln", - "The variable that will store the output of the Watcher": "Die Variable, in der das Output des Beobachters gespeichert wird", - "The variable to watch on this screen": "Die Variable, die auf diesem Bildschirm beobachtet werden soll", - "Configuration data for the script (valid JSON object, variables supported)": "Konfigurationsdaten für das Skript (gültiges JSON-Objekt, Variablen werden unterstützt)", - "The Data Connector endpoint to access when this Watcher runs": "Der Datenkonnektor-Endpunkt, auf den beim Ausführen dieses Beobachters zugegriffen werden soll", - "Data to pass to the Data Connector (valid JSON object, variables supported)": "Daten, die an das Skript übermittelt werden sollen (gültiges JSON-Objekt, Variablen werden unterstützt)", - "The Script Configuration field is required": "Das Feld „Skriptkonfiguration“ ist ein Pflichtfeld", - "Property": "Eigenschaft", - "Deleted User": "Benutzer gelöscht", - "Deleted Users": "Benutzer gelöscht", - "Restore User": "Benutzer wiederherstellen", - "Are you sure you want to restore the user {{item}}?": "Möchten Sie den Benutzer {{item}} wirklich wiederherstellen?", - "The user was restored": "Der Benutzer wurde wiederhergestellt", - "Options Variable": "Optionenvariable", - "Get options from this variable. Must be an array.": "Optionen aus dieser Variable erhalten. Muss ein Array sein.", - "Option Label Shown": "Angezeigte Optionsbezeichnung", - "option has been moved to the task destination dropdown": "option wurde in die Dropdown-Liste „Aufgabenziel“ verschoben", - "Enter the property name from the Request data variable that displays to the user on the screen.": "Geben Sie den Namen der Eigenschaft aus der Anforderungsdatenvariable ein, die dem Benutzer auf dem Bildschirm angezeigt wird.", - "Show Control As": "Steuerung anzeigen als", - "Allow Multiple Selections": "Mehrfachauswahl zulassen", - "Selected Option Type": "Ausgewählter Optionstyp", - "Select 'Single Value' to use parts of the selected object. Select 'Object' to use the entire selected value.": "„Einzelner Wert“ auswählen, um Teile des ausgewählten Objekts zu verwenden. „Objekt“ auswählen, um den gesamten ausgewählten Wert zu verwenden.", - "Key name in the selected object to use as the value of this control. Leave blank to use the entire selected value.": "Schlüsselname im ausgewählten Objekt, der als Wert für dieses Steuerelement verwendet werden soll. Frei lassen, um den gesamten ausgewählten Wert zu verwenden.", - "Dropdown/Multiselect": "Drop-down-/Mehrfachauswahl", - "Radio/Checkbox Group": "Radio-/Kontrollkästchengruppe", - "Single Value": "Einzelner Wert", - "Object": "Objekt", - "Advanced data search": "Erweiterte Datensuche", - "A variable name is a symbolic name to reference information.": "Eine Variablenbezeichnung ist eine symbolische Bezeichnung, die als Referenz dient.", - "Percentage": "Prozentsatz", - "Data Format": "Datenformat", - "The data format for the selected type.": "Das Datenformat für den ausgewählten Typ.", - "Accepted": "Akzeptiert", - "The field under validation must be yes, on, 1 or true.": "Das Feld, das validiert werden soll, darf nur folgende Werte enthalten: ja, ein, 1 oder wahr.", - "Alpha": "Alpha", - "Copy Control": "Kopiersteuerung", - "The field under validation must be entirely alphabetic characters.": "Das Feld, das validiert werden soll, darf nur alphanumerische Werte enthalten.", - "Alpha-Numeric": "Alphanumerisch", - "The field under validation must be entirely alpha-numeric characters.": "Das Feld, das validiert werden soll, darf nur alphanumerische Werte enthalten.", - "Between Min & Max": "Zwischen Min & Max", - "The field under validation must have a size between the given min and max.": "Das Feld, das validiert werden soll, darf nur Werte enthalten, die zwischen den angegebenen Mindest- und Höchstwerten liegen.", - "Min": "Min", - "Max": "Max", - "The field under validation must be formatted as an e-mail address.": "Das Feld, das validiert werden soll, muss als E-Mail-Adresse formatiert sein.", - "In": "In", - "The field under validation must be included in the given list of values. The field can be an array or string.": "Das Feld, das validiert werden soll, darf nur Werte enthalten, die in der Liste angegeben sind. Das Feld kann ein Array oder eine Zeichenfolge sein.", - "Values": "Werte", - "Max Length": "Max Länge", - "Max Input": "Max Eingabe", - "Validate that an attribute is no greater than a given length.": "Bestätigen, dass ein Attribut die angegebene Länge nicht überschreitet.", - "Min Length": "Min Länge", - "Min Input": "Min Eingabe", - "Validate that an attribute is at least a given length.": "Bestätigen, dass ein Attribut die angegebene Länge nicht unterschreitet.", - "Not In": "Nicht in", - "The field under validation must not be included in the given list of values.": "Das Feld, das validiert werden soll, darf nur Werte enthalten, die nicht in der Liste angegeben sind.", - "Required": "Erforderlich", - "Checks if the length of the String representation of the value is >": "Überprüft, ob die Länge der String-Darstellung des Werts >", - "Required If": "Erforderlich, wenn", - "The field under validation must be present and not empty if the Variable Name field is equal to any value.": "Das Feld, das validiert werden soll, muss vorhanden und darf nicht leer sein, wenn die Eingabe im Feld „Variablen-Name“ einem Wert entspricht.", - "Variable Value": "Variablen-Wert", - "Required Unless": "Erforderlich, wenn nicht", - "The field under validation must be present and not empty unless the Variable Name field is equal to any value.": "Das Feld, das validiert werden soll, muss vorhanden und darf nicht leer sein, sofern die Eingabe im Feld „Variablen-Name“ nicht einem Wert entspricht.", - "Same": "Identisch", - "The given field must match the field under validation.": "Das angegebene Feld muss mit dem Feld identisch sein, das validiert werden soll.", - "Validate that an attribute has a valid URL format.": "Bestätigen, dass ein Attribut ein gültiges URL-Format hat.", - "Add Rule": "Regel hinzufügen", - "No validation rule(s)": "Keine Validierungsregel(n)", - "No variables match your search.": "Keine Variablen entsprechen Ihrer Suche.", - "No variables available. Variables will be available after you add form fields to your screen.": "Keine Variablen verfügbar. Variablen werden verfügbar, nachdem Sie Felder zum Bildschirm hinzugefügt haben.", - "New Select List": "Neue Auswahlliste", - "New Array of Objects": "Neues Objektarray", - "Existing Array": "Vorhandenes Array", - "This variable will contain an array of objects": "Diese Variable enthält ein Objektarray", - "Default Loop Count": "Standardanzahl Schleifen", - "Number of times to show the loop. Value must be greater than zero.": "Häufigkeit, mit der die Schleife angezeigt wird. Der Wert muss größer als Null sein.", - "Allow additional loops": "Zusätzliche Schleifen zulassen", - "Check this box to allow task assignee to add additional loops": "Durch Aktivieren dieses Kontrollkästchens wird dem für die Aufgabe Verantwortlichen die Genehmigung zum Hinzufügen zusätzlicher Schleifen erteilt", - "Select a screen to nest": "Ansicht zum Schachteln auswählen", - "Advanced Mode": "Erweiterter Modus", - "Basic Mode": "Einfacher Modus", - "Advanced Search (PMQL)": "Erweiterte Suche (PMQL)", - "Script Executor": "Skript-Ausführer", - "Script Executors": "Skript-Ausführer", - "Add New Script Executor": "Neuen Skript-Ausführer hinzufügen", - "Save And Rebuild": "Speichern und neu erstellen", - "Error Building Executor. See Output Above.": "Fehler beim Erstellen des Ausführers. Siehe Ausgabe oben.", - "Executor Successfully Built. You can now close this window. ": "Ausführer erfolgreich erstellt. Sie können dieses Fenster jetzt schließen. ", - "Build Command Output": "Befehlsausgabe zum Erstellen", - "Select a language": "Sprache auswählen", - "General Information": "Allgemeine Information", - "Form Task": "Formularaufgabe", - "Download BPMN": "BPMN herunterladen", - "Signal Start Event": "Startereignis melden", - "Open Color Palette": "Farbpalette öffnen", - "Copy Element": "Element kopieren", - "Signal End Event": "Endereignis melden", - "Terminate End Event": "Endereignis beenden", - "Align Left": "Linksbündig ausrichten", - "Center Horizontally": "Horizontal zentrieren", - "Align Right": "Rechtsbündig ausrichten", - "Align Bottom": "Nach unten ausrichten", - "Center Vertically": "Vertikal zentrieren", - "Align Top": "Nach oben ausrichten", - "Distribute Horizontally": "Horizontal verteilen", - "Distribute Vertically": "Vertikal verteilen", - "A screen selection is required": "Es muss eine Ansicht ausgewählt werden", - "Users / Groups": "Benutzer / Gruppen", - "running.": "wird ausgeführt.", - "The field under validation must be a valid date format which is acceptable by Javascript's Date object.": "Das Feld, das validiert werden soll, muss ein gültiges Datumsformat haben, das vom Datumsobjekt von Javascript akzeptiert wird.", - "After Date": "Nach Datum", - "The field under validation must be after the given date.": "Das Feld, das validiert werden soll, darf nur Werte enthalten, die nach dem angegebenen Datum liegen.", - "After or Equal to Date": "Nach oder gleich Datum", - "The field unter validation must be after or equal to the given field.": "Das Feld, das validiert werden soll, darf nur Werte enthalten, die nach dem angegebenen Datum liegen oder mit ihm identisch sind.", - "Before Date": "Vor Datum", - "The field unter validation must be before the given date.": "Das Feld, das validiert werden soll, darf nur Werte enthalten, die vor dem angegebenen Datum liegen.", - "Before or Equal to Date": "Vor oder gleich Datum", - "The field unter validation must be before or equal to the given field.": "Das Feld, das validiert werden soll, darf nur Werte enthalten, die vor dem angegebenen Datum liegen oder mit ihm identisch sind.", - "Regex": "RegEx", - "The field under validation must match the given regular expression.": "Das Feld, das validiert werden soll, darf nur Werte enthalten, die mit dem angegebenen regulären Ausdruck identisch sind.", - "Regex Pattern": "RegEx-Muster", - "Maximum Date": "Höchstwert Datum", - "Minimum Date": "Mindestwert Datum", - "Columns": "Spalten", - "List of columns to display in the record list": "Liste der Spalten, die in der Datensatz-Liste angezeigt werden sollen", - "Select a screen": "Ansicht auswählen", - "Not found": "Nicht gefunden", - "Are you sure you want to delete this?": "Möchten Sie dies wirklich löschen?", - "Signal that will trigger this start event": "Signal, das dieses Startereignis auslöst", - "Are you sure you want to reset all of your translations?": "Sollen wirklich alle Übersetzungen zurückgesetzt werden?", - "Save And Build": "Speichern und erstellen", - "This record list is empty or contains no data.": "Diese Datensatz-Liste ist leer oder enthält keine Daten.", - "Choose whether the button should submit the form": "Festlegen, ob die Schaltfläche zum Einreichen des Formulars verwendet werden soll.", - "Regular Button": "Reguläre Schaltfläche", - "This field accepts mustache syntax": "Dieses Feld akzeptiert Mustache-Syntax.", - "Type of Value Returned": "Ergebniswertetyp", - "Key name in the selected object to display to the user in the select list. Leave blank to show the entire selected value.": "Schlüsselname im ausgewählten Objekt, der dem Benutzer in der Auswahlliste angezeigt werden soll. Frei lassen, um den gesamten ausgewählten Wert anzuzeigen.", - "Variable Data Property": "Variablendateneigenschaft", - "Enter the property name from the Request data variable that will be passed as the value when selected.": "Geben Sie den Namen der Eigenschaft aus der Anforderungsdatenvariable ein, die als Wert übermittelt wird, wenn sie ausgewählt wurde.", - "Endpoint to populate select": "Zum Ausfüllen des Endpunkts bitte auswählen", - "Security Logs": "Sicherheitsprotokolle", - "View Security Logs": "Sicherheitsprotokolle anzeigen", - "View Other Users Profiles": "Andere Benutzerprofile anzeigen", - "Unidentified": "Unbekannt", - "Logged Event": "Protokolliertes Ereignis", - "Logged Events": "Protokollierte Ereignisse", - "Login Page Footer": "Fußnote Anmeldeseite", - "# Screens": "# Ansichten", - "# Scripts": "# Skripte", - "A user with the username {{username}} and email {{email}} was previously deleted.": "Ein Benutzer mit dem Benutzernamen :username und der E-Mail-Adresse :email wurde zuvor gelöscht.", - "Accepted Form Fields": "Akzeptierte Formularfelder", - "Accepted Method": "Akzeptierte Methode", - "Accepted methods": "Akzeptierte Methoden", - "Add Field Security": "Feld Sicherheit hinzufügen", - "Add URL Restriction": "URL-Beschränkung hinzufügen", - "Additional Details (optional)": "Weitere Angaben (optional)", - "All": "Alle", - "Allow Access From": "Zugriff erlauben von", - "Authentication": "Authentifizierung", - "BPMN Issues": "BPMN-Probleme", - "Boundary Conditional Event": "Grenzbedingtes Ereignis", - "Boundary Signal Event": "Grenz-Signalereignis", - "Browser": "Browser", - "Callback": "Callback", - "Case": "Case", - "Catch Events": "Catching-Ereignisse", - "Change Version Details": "Versionsdetails ändern", - "Check Flow": "Fluss prüfen", - "Commit Changes": "Änderungen übernehmen", - "Condition": "Regel", - "Conditional Start Event": "Regelabhängiges Startereignis", - "Confirm and Save": "Bestätigen und speichern", - "Copy to Clipboard": "In die Zwischenablage kopieren", - "Copy to Latest": "Zum/Zur Aktuellen kopieren", - "Create Process Categories": "Prozesskategorien erstellen", - "Create Vocabularies": "Vokabulare erstellen", - "Data Connector to use": "Zu verwendender Datenkonnektor", - "Data Connector": "Datenkonnektor", - "Data Mapping": "Datenmapping", - "Data Object": "Datenobjekt", - "Data Store": "Datenspeicher", - "Delete Process Categories": "Prozesskategorien löschen", - "Delete Vocabularies": "Vokabulare löschen", - "Edit Field Security": "Feld Sicherheit bearbeiten", - "Edit Process Categories": "Prozesskategorien bearbeiten", - "Edit Vocabularies": "Vokabulare bearbeiten", - "Enable Webhook Access": "Webhook-Zugriff aktivieren", - "End Point": "Endpunkt", - "Enter the request variable that will store the signal payload": "Geben Sie die Anforderungsvariable ein, die die Signalnutzlast speichern soll.", - "Event": "Ereignis", - "Expression to evaluate condition": "Ausdruck zur Bewertung der Regel", - "Flow Variable": "Stromvariable", - "Expression to evaluate. Mustache syntax supported.": "Zu bewertender Ausdruck. Mustache-Syntax wird unterstützt.", - "Field": "Feld", - "Flow completed": "Fluss abgeschlossen", - "Intermediate Signal Catch Event": "Signalabhängiges Catching-Zwischenereignis (Intermediate Signal Catch Event)", - "IP Address": "IP-Adresse", - "If the expression evaluates to true, create or update the following variable": "Wird der Ausdruck als wahr bewertet, folgende Variable erstellen oder aktualisieren", - "Intermediate Conditional Catch Event": "Regelabhängiges Catching-Zwischenereignis (Intermediate Conditional Catch Event)", - "Login Information": "Anmeldedaten", - "Message reference is required": "Nachrichtenreferenz erforderlich", - "Message that will catch this intermediate event": "Nachricht, die dieses Zwischenereignis empfängt", - "Intermediate Signal Throw Event": "Signalauslösendes Zwischenereignis", - "Webhook URL": "Webhook-URL", - "Message that will trigger this boundary event": "Nachricht, die dieses Grenzereignis auslöst", - "Message that will trigger this start event": "Nachricht, die dieses Startereignis auslöst", - "Message": "Nachricht", - "Midnight": "Mitternacht", - "New Signal": "Neues Signal", - "New Token": "Neues Token", - "Occurred At": "Vorgefallen bei/um", - "OUT_OF_OFFICE": "ABWESEND", - "Only show named versions": "Nur benannte Versionen anzeigen", - "Open Process": "Prozess öffnen", - "Operating System": "Betriebssystem", - "Provide Values": "Werte angeben", - "Render HTML from a Variable": "HTML aus einer Variable rendern", - "Save Versions": "Versionen speichern", - "Request Data": "Daten anfragen", - "Version Name": "Versionsname", - "Request Variable": "Variable anfragen", - "Response Variable Name": "Name der Antwortvariable", - "Restrict Access From": "Zugriff einschränken von", - "Save Script": "Skript speichern", - "Security Configuration": "Sicherheitskonfiguration", - "Select option": "Option auswählen", - "Select the message reference that this element throws": "Nachrichtenreferenz auswählen, die dieses Element auslöst", - "Whitelist": "Whitelist", - "Select the signal reference that this element throws": "Signalreferenz auswählen, die dieses Element auslöst", - "Version History": "Versionsverlauf", - "Set as Default Flow": "Als Standard-Fluss festlegen", - "Settings": "Einstellungen", - "Signal ID": "Signal-ID", - "Signal Name": "Signalname", - "Signal reference is required": "Signalreferenz erforderlich", - "Signal that will catch this intermediate event": "Signal, das dieses Zwischenereignis empfängt", - "Signal that will trigger this boundary event": "Signal, das dieses Grenzereignis auslöst", - "Signal": "Signal", - "Signals": "Signale", - "Subscriber": "Abonnent/in", - "Task Destination": "Ziel der Aufgabe", - "The process version was saved.": "The process version was saved.", - "The version was saved.": "Die Version wurde gespeichert.", - "The Process field is required.": "Das Feld Prozess ist ein Pflichtfeld.", - "The start event of the call activity is not a start event": "Das Startereignis der Aufrufaktivität ist kein Startereignis.", - "The start event of the call activity is not empty": "Das Startereignis der Aufrufaktivität ist nicht leer.", - "The start event of the call activity can not be a web entry": "Das Startereignis der Aufrufaktivität darf kein Web-Eintrag sein.", - "The start event with id \":node_id\" does not exist": "Das Startereignis mit der ID „:node_id“ existiert nicht.", - "Toggle Notifications": "Benachrichtigungen einschalten", - "Variable Name for Callback URL": "Name der Variable für die Callback-URL", - "View Process Categories": "Prozesskategorien anzeigen", - "View Vocabularies": "Vokabulare anzeigen", - "Warning: Screens without save buttons cannot be executed.": "Warnung: Ansichten ohne Schaltflächen zum Speichern können nicht ausgeführt werden.", - "Running": "Wird ausgeführt", - "Form Data": "Callback", - "Unreachable elements": "Unzugängliche Elemente", - "Wait for server callback": "Warten auf Server-Callback", - "View {{user}} Profile": "{{user}} Profil anzeigen", - "Edit {{user}} Profile": "Profil von {{user}} bearbeiten", - "If the FEEL Expression evaluates to true then": "Wird der FEEL-Ausdruck als wahr bewertet, dann", - "Rule Expression": "Regel-Ausdruck", - "If no evaluations are true": "Wenn keine Bewertungen wahr sind", - "Are you sure you want to delete expression {{item}}": "Möchten Sie den Ausdruck {{item}} wirklich löschen?", - "Are you sure you want to delete {{item}}": "Möchten Sie {{item}} wirklich löschen?", - "Assignment Type": "Falltyp", - "Request Starter": "Starter anfragen", - "FEEL expression": "FEEL-Ausdruck", - "Data Association Flow": "Datenassoziationsfluss", - "Select the date to initially trigger this element": "Wählen Sie das Datum aus, an dem dieses Element zum ersten Mal ausgelöst werden soll.", - "Signal ID is required": "Signal-ID ist erforderlich", - "Signal Name is required": "Signalname ist erforderlich", - "Assign to User": "Einem Benutzer zuweisen", - "Variable containing the numeric User ID": "Variable, die die numerische Benutzer-ID enthält", - "Assigned Users / Groups": "Zugewiesene Benutzer/Gruppen", - "Expressions": "Ausdrücke", - "Add": "Hinzufügen", - "Expressions are evaluated top to bottom": "Ausdrücke werden von oben nach unten bewertet", - "Add FEEL Expression": "FEEL-Ausdruck hinzufügen", - "Default Assignment": "Standardzuweisung", - "Flow in loop": "Fluss in Schleife", - "Flow not completed": "Fluss nicht abgeschlossen", - "Id": "ID", - "FEEL Expression": "FEEL-Ausdruck", - "Add Self Service": "Self-Service hinzufügen", - "User / Group": "Benutzer/Gruppe", - "Assign to User / Group": "Einem Benutzer/einer Gruppe zuweisen", - "Column Header": "Spaltenkopfzeile", - "Select to interrupt the current Request workflow and route to the alternate workflow, thereby preventing parallel workflow": "Wählen Sie diese Option aus, um den derzeitigen Arbeitsablauf der Anfrage zu unterbrechen und den alternativen Arbeitsablauf weiterzuleiten, wodurch ein paralleler Arbeitsablauf verhindert wird", - "Change": "Ändern", - "Clear": "Löschen", - "Record": "Datensatz", - "Write": "Schreiben", - "Authorizations": "Autorisierungen", - "Endpoints": "Endpunkte", - "Endpoint": "Endpunkt", - "Method": "Methode", - "List Endpoints": "Endpunkte auflisten", - "Data Connectors": "Datenkonnektoren", - "Reset Translations": "Übersetzungen zurücksetzen", - "Delete Version History": "Versionsverlauf löschen", - "Edit Version History": "Versionsverlauf bearbeiten", - "View Version History": "Versionsverlauf anzeigen", - "Vocabularies": "Vokabulare", - "Default": "Standard", - "Provider": "Provider", - "File Manager": "Dateimanager", - "Uncategorized": "Unkategorisiert", - "Comments Active Tasks": "Aktive Aufgaben – Kommentare", - "Modified By Tasks": "Modifiziert nach Aufgabe", - "The :file you requested is now ready for download.": "Die :file, die Sie angefordert haben, kann jetzt heruntergeladen werden.", - "of": "von", - "Edit Saved Searches": "Gespeicherte Suchen bearbeiten", - "Array": "Array", - "No Available Columns": "Es sind keine Spalten verfügbar.", - "Shared with Users": "Mit Benutzern geteilt", - "Shared with Groups": "Mit Gruppen geteilt", - "Icon": "Symbol", - "The name of this saved search.": "Der Name dieser gespeichterten Suche.", - "Share": "Teilen", - "Updated": "Aktualisiert", - "Resources": "Ressourcen", - "Resource": "Ressource", - "Params": "Parameter", - "Headers": "Überschriften", - "Body": "Textkörper", - "Response Mapping": "Antwort-Mapping", - "Response Body": "Antworttext", - "The authtype field is required.": "Das Feld „authtype“ ist ein Pflichtfeld.", - "The name field is required.": "Das Feld „Name“ ist ein Pflichtfeld.", - "The description field is required.": "Das Feld „Beschreibung“ ist ein Pflichtfeld.", - "Authentication Type": "Authentifizierungstyp", - "How many seconds the script should be allowed to run (0 is unlimited).": "Wie viele Sekunden soll das Skript ausgeführt werden dürfen (0 ist unbegrenzt).", - "Claim Task": "Aufgabe beanspruchen", - "Current Version": "Aktuelle Version", - "View Documentation": "Dokumentation anzeigen", - "Create Data Connector": "Datenkonnektor erstellen", - "Names must be unique.": "Namen müssen eindeutig sein.", - "This task is unassigned, click Claim Task to assign yourself.": "Diese Aufgabe ist nicht zugewiesen. Klicken Sie auf „Aufgabe beanspruchen“, um sich die Aufgabe zuzuweisen.", - "The task :task_name was skipped": "Die Aufgabe :task_name wurde übersprungen.", - "Color": "Farbe", - "Are you sure you want to delete this item?": "Möchten Sie dieses Element wirklich löschen?", - "This signal cannot be removed, it is used by": "Das Signal kann nicht entfernt werden, es wird verwendet von", - "Message ID is required": "Nachrichten-ID ist erforderlich", - "Message Name is required": "Nachrichtenname ist erforderlich", - "Message Name is duplicated": "Nachrichtenname ist doppelt vorhanden", - "Loop Activity": "Schleifenaktivität", - "Loop Mode": "Schleifenmodus", - "No Loop Mode": "Kein Schleifenmodus", - "Multi-Instance (Parallel)": "Multi-Instanz (parallel)", - "Multi-Instance (Sequential)": "Multi-Instanz (sequenziell)", - "For Compensation": "Für Kompensation", - "A script selection is required": "Eine Skriptauswahl ist erforderlich", - "Assigned Users/Groups": "Zugewiesene Benutzer/Gruppen", - "Lock Task Assignment to User": "Aufgabenzuweisung an Benutzer sperren", - "Render image from a variable name": "Bild aus einer Variable rendern", - "Display Options": "Ansichtsoptionen", - "Half": "Halb", - "Position": "Position", - "Standard": "Standard", - "Double": "Double", - "Vocabulary": "Vokabular", - "Saved Search": "Gespeicherte Suche", - "Docker file": "Docker-Datei", - "URL": "URL", - "Error Message": "Fehlermeldung", - "All Request Data": "Alle Anfragedaten", - "No Request Data": "Keine Anfragedaten", - "Specify Request Variable": "Datenvariable festlegen", - "Specify Expression": "Ausdruck festlegen", - "The Data Connector resource to access when this Watcher runs": "Die Datenkonnektor-Ressource, auf die beim Ausführen dieses Beobachters zugegriffen werden soll", - "The task must be claimed to enable manager escalation.": "Die Aufgabe muss beansprucht werden, um die Manager-Eskalation zu aktivieren.", - "Run Watcher on Screen Load": "Beobachter beim Laden der Ansicht ausführen", - "The Request variable is a new/existing variable": "Die Anforderungsvariable ist eine neue/bestehende Variable.", - "Leave blank to map all response data": "Leer lassen, um alle Antwortdaten zuzuordnen", - "Create Signals": "Signale erstellen", - "Delete Signals": "Signale löschen", - "Edit Signals": "Signale bearbeiten", - "View Signals": "Signale anzeigen", - "You do not have permission to add new signals": "Sie sind nicht zum Hinzufügen neuer Signale berechtigt.", - "You do not have permission to view signals": "Sie sind nicht zum Anzeigen von Signalen berechtigt.", - "You do not have permission to delete signals": "Sie sind nicht zum Löschen von Signalen berechtigt.", - "You do not have permission to edit signals": "Sie sind nicht zum Bearbeiten von Signalen berechtigt.", - "The value or source can be a string or a mustache expression": "Der Wert oder die Quelle kann ein String- oder ein Mustache-Ausdruck sein.", - "The value can be a string or a mustache expression.": "Der Wert kann ein String- oder ein Mustache-Ausdruck sein.", - "For example": "Zum Beispiel", - "will use the value stored in variable var1": "wird den in der Variable var1 gespeicherten Wert verwenden", - "Select the variable to watch on this screen or type any request variable name": "Wählen Sie eine Variable aus, die in dieser Ansicht beobachtet werden soll, oder geben Sie einen beliebigen Namen einer Anforderungsvariable ein.", - "Tooltip": "Tooltipp", - "Tooltip Contains": "Tooltipp enthält", - "HTML, Mustache support": "HTML, Mustache-Support", - "Top Left": "Oben links", - "Top Right": "Oben rechts", - "Right Top": "Rechts oben", - "Right Bottom": "Rechts unten", - "Bottom Left": "Unten links", - "Bottom Right": "Unten rechts", - "Left Top": "Links oben", - "Left Bottom": "Links unten", - "Claim the Task to continue.": "Beanspruchen Sie die Aufgabe, um fortzufahren.", - "View Collection": "Sammlung anzeigen", - "Enter the alt text that should accompany the logos and icon.": "Geben Sie den Alt-Text für die Logos und das Symbol ein.", - "Click on the color value to select custom colors.": "Klicken Sie auf den Farbwert, um benutzerdefinierte Farben auszuwählen.", - "Select which font to use throughout the system.": "Wählen Sie die Schriftart aus, die im gesamten System verwendet werden soll.", - "Enter footer HTML to display on the login page.": "Geben Sie die Fußzeilen-HTML ein, die auf der Anmeldeseite angezeigt werden soll.", - "Log": "Protokoll", - "Logs": "Protokolle", - "Tag": "Tag", - "Service": "Service", - "Toggle Show Password": "„Passwort anzeigen“ umschalten", - "Show": "Anzeigen", - "Hide": "Ausblenden", - "Run Simulation": "Simulation starten", - "Toggle Configuration": "Konfiguration umschalten", - "Javascript": "JavaScript", - "Expand Editor": "Editor erweitern", - "Homepage": "Startseite", - "Use the slider to select a range": "Wählen Sie den Bereich anhand des Schiebereglers aus.", - "Select a file": "Eine Datei wählen", - "Generated Token": "Generiertes Token", - "Per page": "Pro Seite", - "Search a user": "Nach Benutzer suchen", - "Search here": "Hier suchen", - "Search a group": "Nach Gruppe suchen", - "Search a screen": "Nach Ansicht suchen", - "Search a script": "Nach Skript suchen", - "{{count}} Item": "{{count}} Element", - "{{count}} Items": "{{count}} Elemente", - "Aria Label": "aria-label", - "Attribute designed to help assistive technology (e.g. screen readers) attach a label": "Attribut, das entworfen wurde, um unterstützende Technologien (z. B. Screenreader) beim Anhängen eines Labels zu unterstützen", - "Tab Order": "Tab-Reihenfolge", - "Order in which a user will move focus from one control to another by pressing the Tab key": "Reihenfolge, in der ein Benutzer durch Drücken der Tabulatortaste den Fokus von einem Steuerelement auf ein anderes verschiebt", - "A mouse and keyboard are required to use screen builder.": "Eine Maus und eine Tastatur sind erforderlich, um den Screen Builder zu verwenden.", - "A mouse and keyboard are required to use the modeler.": "Eine Maus und eine Tastatur sind erforderlich, um das Modellierungsprogramm zu verwenden.", - "{{name}} on page {{pageName}} is not accessible to screen readers. Please add a Label in the Variable section or an Aria Label in the Advanced section.": "{{name}} auf Seite {{pageName}} ist für Screenreader nicht zugänglich. Fügen Sie ein Label im Abschnitt Variable oder ein aria-label im erweiterten Abschnitt hinzu.", - "File uplodaded": "Datei wurde hochgeladen", - "Uploading...": "Wird hochgeladen …", - "Process Manager": "Prozessmanager", - "BPMN validation issues. Request cannot be started.": "BPMN-Validierungsprobleme. Die Anfrage konnte nicht gestartet werden.", - "Some bpmn elements do not comply with the validation": "Einige BPMN-Elemente erfüllen nicht die Anforderungen an die Validierung.", - "Process Manager not configured.": "Der Prozessmanager ist nicht konfiguriert.", - "Out of Office": "Abwesend", - "Scheduled": "Vorausgeplant", - "Lock User Assignment": "Benutzerzuordnung sperren", - "Assignee Manager Escalation": "Eskalation an bevollmächtigten Manager", - "Data Sources Package not installed.": "Datenquellenpaket nicht installiert.", - "Signal Payload": "Signalnutzlast", - "Signals present in processes and system processes cannot be deleted.": "Signale, die in Prozessen und Systemprozessen vorhanden sind, können nicht gelöscht werden.", - "System signals cannot be modified.": "Systemsignale können nicht modifiziert werden.", - "Cannot edit system signals.": "Systemsignale können nicht bearbeitet werden.", - "Cannot delete System signals.": "Systemsignale können nicht gelöscht werden.", - "Cannot delete signals present in a process.": "Signale, die in einem Prozess vorhanden sind, können nicht gelöscht werden.", - "Display contents of docker file that will be prepended to your customizations below.": "Inhalte der Docker-Datei anzeigen, die Ihren unten stehenden Anpassungen vorangestellt werden.", - "Downloading files is not available.": "Das Herunterladen von Dateien ist nicht verfügbar.", - "auth.failed": "Diese Zugangsdaten stimmen nicht mit unseren Unterlagen überein.", - "auth.throttle": "Zu viele Anmeldeversuche. Bitte versuchen Sie es in :Sekunden Sekunden erneut", - "passwords.password": "Die Passwörter müssen aus mindestens sechs Zeichen bestehen und mit der Sicherheitsabfrage übereinstimmen.", - "passwords.reset": "Ihr Passwort wurde zurückgesetzt!", - "passwords.sent": "Wir haben Ihnen eine E-Mail mit einem Link zum Zurücksetzen Ihres Passworts gesendet!", - "passwords.token": "Dieses Token zum Zurücksetzen des Passworts ist ungültig.", - "passwords.user": "Wir können keinen Benutzer mit dieser E-Mail-Adresse finden.", - "Password Reset": "Passwort zurücksetzen", - "All rights reserved.": "Alle Rechte vorbehalten.", - "Reset Your Password": "Setzen Sie Ihr Passwort zurück", - "Password Requirements": "Passwortanforderungen", - "Minimum of 8 characters in length": "Mindestlänge von 8 Zeichen", - "Contains an uppercase letter": "Enthält einen Großbuchstaben", - "Contains a number or symbol": "Enthält eine Zahl oder ein Sonderzeichen", - "Confirm New Password": "Neues Passwort bestätigen", - "Reset Password": "Passwort zurücksetzen", - "Success!": "Erledigt!", - "Your password has been updated.": "Ihr Passwort wurde aktualisiert.", - "Return to Login": "Zur Anmeldung zurückkehren", - "Login": "Anmelden", - "Reset Password Notification": "Benachrichtigung zum Zurücksetzen des Passworts", - "You are receiving this email because we received a password reset request for your account.": "Sie erhalten diese E-Mail, weil wir eine Anfrage zum Zurücksetzen des Passworts für Ihr Konto erhalten haben.", - "This password reset link will expire in :count minutes.": "Dieser Link zum Zurücksetzen des Passworts läuft in :count Minuten ab.", - "If you believe this is an error, please contact the system administrator or support team for assistance.": "Wenn Sie glauben, dass dies ein Fehler ist, wenden Sie sich bitte an den Systemadministrator oder das Support-Team, um Unterstützung zu erhalten.", - "If you did not request a password reset, please call us.": "Wenn Sie das Zurücksetzen Ihres Passworts nicht beantragt haben, rufen Sie uns bitte an.", - "If you do, you won’t be able to recover the Calc configuration.": "Andernfalls können Sie die Calc-Konfiguration nicht wiederherstellen.", - "Hello!": "Hallo!", - "Regards": "Mit freundlichen Grüßen", - "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "Wenn Sie Probleme haben, auf den Button „:actionText“ zu klicken, kopieren Sie die folgende URL\nin Ihren Webbrowser:", - "ProcessMaker Platform": "ProcessMaker-Plattform", - "Template Documentation": "Vorlagendokumentation", - "Edit Template": "Vorlage bearbeiten", - "Export Template": "Vorlage exportieren", - "Configure Template": "Vorlage konfigurieren", - "Delete Template": "Vorlage löschen", - "Import Process Template": "Prozessvorlage importieren", - "Import a Process Template and its associated assets into this ProcessMaker environment": "Importieren Sie eine Prozessvorlage und die zugehörigen Assets in Ihre ProcessMaker-Umgebung", - "Drag file here": "Datei hierher ziehen", - "or": "Oder", - "Select file from computer": "Datei vom Computer auswählen", - "Save as Template": "Als Vorlage speichern", - "Template": "Vorlage", - "Templates": "Vorlagen", - "Template Author": "Autor der Vorlage", - "Publish Template": "Vorlage veröffentlichen", - "This will create a re-usable template based on the :assetName :assetType": "Dadurch wird eine wiederverwendbare Vorlage auf Grundlage des :assetName :assetType", - "Template Name": "Vorlagenname", - "The template name must be unique.": "Der Vorlagenname muss eindeutig sein.", - "New Process": "Neuer Prozess", - "Delete Category": "Kategorie löschen", - "Save all assets": "Alle Assets speichern", - "Save process model only": "Nur Prozessmodell speichern", - "Expand sidebar": "Seitenleiste erweitern", - "The process name must be unique": "Der Prozessname muss eindeutig sein", - "Search Templates": "Vorlagen durchsuchen", - "Back": "Zurück", - "Enter Password": "Passwort eingeben", - "Import a Process and its associated assets into this ProcessMaker environment": "Importieren Sie einen Prozess und die zugehörigen Assets in Ihre ProcessMaker-Umgebung", - "This file is password protected. Enter the password below to continue with the import.": "Diese Datei ist passwortgeschützt. Geben Sie das Passwort unten ein, um mit dem Import fortzufahren.", - "Import As New": "Als „Neu“ importieren", - "Update": "Aktualisieren", - "The selected file is invalid or not supported for the Process importer. Please verify that this file is a Process.": "Die ausgewählte Datei ist ungültig oder wird für den Process-Importer nicht unterstützt. Bitte stellen Sie sicher, dass diese Datei ein Process ist.", - "The file you are importing was made with an older version of ProcessMaker. Advanced import is not available. All assets will be copied.": "Die Datei, die Sie importieren, wurde mit einer älteren Version von ProcessMaker erstellt. Erweiterter Import ist nicht verfügbar. Alle Assets werden kopiert.", - "Select Import Type": "Wählen Sie den Importtyp", - "Import all assets from the uploaded package.": "Importiere alle Assets aus dem hochgeladenen Paket.", - "Custom": "Benutzerdefiniert", - "Select which assets from the uploaded package should be imported to this environment.": "Wählen Sie, welche Assets aus dem hochgeladenen Paket in diese Umgebung importiert werden sollen.", - "You are about to import": "Sie sind im Begriff zu importieren", - "Process was successfully imported": "Prozess wurde erfolgreich importiert", - "The selected file is invalid or not supported for the Templates importer. Please verify that this file is a Template.": "Die ausgewählte Datei ist ungültig oder wird für den Vorlagen-Importeur nicht unterstützt. Bitte stellen Sie sicher, dass diese Datei eine Vorlage ist.", - "Host URL": "Host-URL", - "Enter the integration key from ProcessMaker IDP": "Geben Sie den Integrationsschlüssel von ProcessMaker IDP ein", - "Enter the secret key from ProcessMaker IDP": "Geben Sie den geheimen Schlüssel von ProcessMaker IDP ein", - "Enter the address of your ProcessMaker IDP server": "Geben Sie die Adresse Ihres ProcessMaker IDP-Servers ein", - "Select Available Folders": "Wähle verfügbare Ordner", - "You must authorize your account before configuring folders": "Sie müssen Ihr Konto autorisieren, bevor Sie Ordner konfigurieren", - "Token URL": "Token-URL", - "Enter your OAuth2 token URL": "Geben Sie Ihre OAuth2-Token-URL ein", - "Empty": "Leer", - "Select Destination": "Wähle Ziel", - "Use Request Variable": "Request Variable verwenden", - "Document Type": "Dokumenttyp", - "Intelligent Document Processing": "Intelligente Dokumentenverarbeitung", - "Variable containing the file to be sent": "Variable, die die zu sendende Datei enthält", - "Enter the destination...": "Geben Sie das Ziel ein...", - "Enter the document type": "Geben Sie den Dokumenttyp ein", - "Authorize Account": "Konto autorisieren", - "Search result": "Suchergebnis", - "Nothing searched yet": "Nichts bisher gesucht", - "Recently searched": "Kürzlich gesucht", - "The history is empty": "Die Geschichte ist leer", - "Powered by ProcessMaker AI": "Angetrieben von ProcessMaker AI", - "Accessed_at": "Zugegriffen um", - "Add Process Translation": "Prozessübersetzung hinzufügen", - "At": "Bei", - "Auth_client_id": "Auth Client ID", - "AuthClientCreated": "Auth Client erstellt", - "AuthClientDeleted": "Auth Client Gelöscht", - "AuthClientUpdated": "Auth Client Aktualisiert", - "Auto Translate": "Auto Übersetzen", - "By default, all process screens will be auto translated via our AI tooling.": "Standardmäßig werden alle Prozessbildschirme über unsere KI-Werkzeuge automatisch übersetzt.", - "CategoryCreated": "Kategorie erstellt", - "CategoryDeleted": "Kategorie Gelöscht", - "Category_name": "Kategoriename", - "CategoryUpdated": "Kategorie aktualisiert", - "Config": "Konfig", - "Created_at": "Erstellt am", - "CreatedGroup": "Gruppe erstellt", - "CustomizeUiUpdated": "Benutzeroberfläche Anpassung Aktualisiert", - "DashboardCreated": "Dashboard erstellt", - "DashboardDeleted": "Dashboard Gelöscht", - "DashboardUpdated": "Dashboard Aktualisiert", - "Data_source_category": "Datenquellenkategorie", - "Deleted_at": "Gelöscht am", - "Delete_at": "Löschen Bei", - "Disables auto translate and manually translate screen content.": "Deaktiviert die automatische Übersetzung und übersetzt Bildschirminhalte manuell.", - "Download the ": "Laden Sie die ", - "EnvironmentVariablesCreated": "Erstellte Umgebungsvariablen", - "EnvironmentVariablesDeleted": "Umgebungsvariablen Gelöscht", - "EnvironmentVariablesUpdated": "Umgebungsvariablen aktualisiert", - "FilesCreated": "Erstellte Dateien", - "FilesDeleted": "Dateien Gelöscht", - "FilesUpdated": "Aktualisierte Dateien", - "File_name": "Dateiname", - "FolderCreated": "Ordner erstellt", - "FolderUpdated": "Ordner aktualisiert", - "GroupDeleted": "Gruppe gelöscht", - "GroupMembersUpdated": "Gruppenmitglieder aktualisiert", - "Language the translator will translate to.": "Sprache, in die der Übersetzer übersetzen wird.", - "Last_modified": "Zuletzt geändert", - "Manager_id": "Manager-ID", - "Manual translation": "Manuelle Übersetzung", - "Method_of_creation": "Methode der Erstellung", - "No translations found": "Keine Übersetzungen gefunden", - "Password_client": "Passwort Client", - "PermissionUpdated": "Berechtigung aktualisiert", - "Personal_access_client": "Persönlicher Zugriffsclient", - "Please wait": "Bitte warten", - "Pm_block_category": "PM Block Kategorie", - "Preview Desktop": "Desktop-Vorschau", - "Preview Mobile": "Mobilvorschau", - "ProcessArchived": "Prozess archiviert", - "Process_category_id": "Prozesskategorie-ID", - "ProcessCreated": "Prozess erstellt", - "ProcessRestored": "Prozess Wiederhergestellt", - "ProcessUpdated": "Prozess aktualisiert", - "Process A Translate": "Prozess A Übersetzen", - "Process_manager": "Prozessmanager", - "QueueManagementAccessed": "Zugriff auf Warteschlangenverwaltung", - "Run_as_user_id": "Ausführen als Benutzer-ID", - "Screen_category_id": "Bildschirmkategorie-ID", - "Screen_category": "Bildschirmkategorie", - "ScreenCreated": "Bildschirm erstellt", - "ScreenDeleted": "Bildschirm gelöscht", - "ScreenUpdated": "Bildschirm aktualisiert", - "ScriptCreated": "Skript erstellt", - "ScriptDeleted": "Skript gelöscht", - "ScriptDuplicated": "Skript dupliziert", - "ScriptExecutorCreated": "Script Executor erstellt", - "ScriptExecutorDeleted": "Skriptausführer Gelöscht", - "Script_executor_id": "Skriptausführer-ID", - "ScriptExecutorUpdated": "Skript-Ausführer aktualisiert", - "ScriptUpdated": "Skript aktualisiert", - "Script_name": "Skriptname", - "Select a screen from the process to review and perform translations.": "Wählen Sie einen Bildschirm aus dem Prozess aus, um Übersetzungen zu überprüfen und durchzuführen.", - "Select a target language": "Wählen Sie eine Zielsprache", - "SettingsUpdated": "Einstellungen aktualisiert", - "TemplateCreated": "Vorlage erstellt", - "TemplateDeleted": "Vorlage gelöscht", - "TemplateUpdated": "Vorlage aktualisiert", - "TokenCreated": "Token erstellt", - "TokenDeleted": "Token Gelöscht", - "Token_id": "Token-ID", - "Translation in progress": "Übersetzung läuft", - "Translation Options": "Übersetzungsoptionen", - "Translate process screens to a desired language": "Übersetzen Sie Prozessbildschirme in eine gewünschte Sprache", - "translations for each screen associated to the process.": "Übersetzungen für jeden Bildschirm, der mit dem Prozess verbunden ist.", - "translations for the process": "Übersetzungen für den Prozess", - "UnauthorizedAccessAttempt": "Unberechtigter Zugriffsversuch", - "Updated_at": "Aktualisiert am", - "UserCreated": "Nutzer erstellt", - "UserDeleted": "Nutzer Gelöscht", - "UserGroupsUpdated": "Benutzergruppen aktualisiert", - "UserUpdated": "Benutzer aktualisiert", - "User_name": "Nutzername", - "You are about to export": "Sie sind dabei zu exportieren", - "No strings found to translate": "Keine Strings zum Übersetzen gefunden", - "Create a new Process": "Einen neuen Prozess erstellen", - "Your word is our command!": "Ihr Wort ist unser Befehl!", - "Use Artificial Intelligence in any natural language to create complex Processes, just like writing to a person. Even describe your Process in one language, but output your model in another.": "Verwenden Sie Künstliche Intelligenz in jeder natürlichen Sprache, um komplexe Prozesse zu erstellen, genau wie beim Schreiben an eine Person. Beschreiben Sie sogar Ihren Prozess in einer Sprache, aber geben Sie Ihr Modell in einer anderen aus.", - "Timeout: :timeout seconds": "Zeitüberschreitung: :timeout Sekunden", - "Set maximum run time in seconds. Leave empty to use script default. Set to 0 for no timeout.": "Maximale Laufzeit in Sekunden festlegen. Leer lassen, um den Skriptstandard zu verwenden. Auf 0 setzen für kein Timeout.", - "Set maximum run time in seconds. Leave empty to use data connector default. Set to 0 for no timeout.": "Maximale Laufzeit in Sekunden festlegen. Leer lassen, um den Standard des Datenconnectors zu verwenden. Auf 0 setzen für kein Timeout.", - "Retry Attempts": "Wiederholungsversuche", - "Set maximum run retry attempts in seconds. Leave empty to use script default. Set to 0 for no retry attempts.": "Maximale Wiederholungsversuche in Sekunden festlegen. Leer lassen, um den Skriptstandard zu verwenden. Auf 0 setzen, um keine Wiederholungsversuche zu unternehmen.", - "Set maximum run retry attempts in seconds. Leave empty to use data connector default. Set to 0 for no retry attempts.": "Maximale Wiederholungsversuche in Sekunden festlegen. Leer lassen, um den Standardwert des Datenconnectors zu verwenden. Auf 0 setzen, um keine Wiederholungsversuche zu unternehmen.", - "Retry Wait Time": "Wartezeit für erneuten Versuch", - "Set maximum run retry wait time in seconds. Leave empty to use script default. Set to 0 for no retry wait time.": "Maximale Wartezeit für erneutes Ausführen in Sekunden festlegen. Leer lassen, um den Skriptstandard zu verwenden. Auf 0 setzen, um keine Wartezeit für erneutes Ausführen zu haben.", - "Set maximum run retry wait time in seconds. Leave empty to use data connector default. Set to 0 for no retry wait time.": "Maximale Wartezeit für erneute Ausführung in Sekunden festlegen. Leer lassen, um den Standardwert des Datenconnectors zu verwenden. Auf 0 setzen, um keine Wartezeit für erneute Ausführung zu haben.", - "Script failed after :attempts total attempts": "Skript fehlgeschlagen nach :attempts Gesamtversuchen", - "Failed after :num total attempts": "Fehlgeschlagen nach :num Gesamtversuchen", - "Seconds to wait before retrying. Leave empty to use script default. Set to 0 for no retry wait time. This setting is only used when running a script task in a process.": "Sekunden zu warten, bevor erneut versucht wird. Lassen Sie es leer, um die Skriptstandard zu verwenden. Setzen Sie auf 0 für keine Wartezeit bei erneutem Versuch. Diese Einstellung wird nur verwendet, wenn eine Skriptaufgabe in einem Prozess ausgeführt wird.", - "Number of times to retry. Leave empty to use script default. Set to 0 for no retry attempts. This setting is only used when running a script task in a process.": "Anzahl der Wiederholungsversuche. Lassen Sie das Feld leer, um den Skriptstandard zu verwenden. Setzen Sie auf 0 für keine Wiederholungsversuche. Diese Einstellung wird nur verwendet, wenn eine Skriptaufgabe in einem Prozess ausgeführt wird.", - "View Request": "Anfrage anzeigen", - "Execution Error": "Ausführungsfehler", - "Task can not be rolled back": "Aufgabe kann nicht zurückgesetzt werden", - ":user rolled back :failed_task_name to :new_task_name": ":user hat :failed_task_name auf :new_task_name zurückgesetzt", - "Rollback Request": "Rücknahme Anfrage", - "Rollback": "Rückgängig machen", - "Rollback to task": "Zurücksetzen zur Aufgabe", - "Are you sure you want to rollback to the task @{{name}}? Warning! This request will continue as the current published process version.": "Sind Sie sicher, dass Sie zur Aufgabe @{{name}} zurückkehren möchten? Warnung! Diese Anforderung wird als die aktuelle veröffentlichte Prozessversion fortgesetzt.", - "Request Error": "Anforderungsfehler", - "UserRestored": "Benutzer Wiederhergestellt", - "Since there is no interface translation for this language, translations for these screens will only render for anonymous users in web entries.": "Da es keine Schnittstellenübersetzung für diese Sprache gibt, werden Übersetzungen für diese Bildschirme nur für anonyme Benutzer in Web-Einträgen gerendert.", - "Click on the link to download the log file. This link will be available until": "Klicken Sie auf den Link, um die Protokolldatei herunterzuladen. Dieser Link ist verfügbar bis", - "It was not possible to connect AWS S3 service. Please contact your Customer Success Manager to use it.": "Es war nicht möglich, den AWS S3-Dienst zu verbinden. Bitte kontaktieren Sie Ihren Customer Success Manager, um ihn zu nutzen.", - "Retry_attempts": "Wiederholungsversuche", - "Retry_wait_time": "Wartezeit erneut versuchen", - "Save assets mode": "Assets-Modus speichern", - "Script_category": "Kategorie", - "TemplatePublished": "Vorlage veröffentlicht", - "The file is processing. You may continue working while the log file compiles.": "Die Datei wird verarbeitet. Sie können weiterarbeiten, während die Protokolldatei kompiliert wird.", - "This feature requires the configured AWS S3 service. Please contact your Customer Success Manager to use it.": "Diese Funktion erfordert den konfigurierten AWS S3-Dienst. Bitte kontaktieren Sie Ihren Customer Success Manager, um sie zu nutzen.", - "Generate from Text": "Generieren aus Text", - "Build Your Own": "Bauen Sie Ihr Eigenes", - "Try our new Generative AI": "Probieren Sie unser neues Generative AI", - "Describe your process. Our AI will build the model for you. Use it immediately or tweak it as needed.": "Beschreiben Sie Ihren Prozess. Unsere KI wird das Modell für Sie erstellen. Verwenden Sie es sofort oder passen Sie es nach Bedarf an.", - "This environment already contains the {{ item }} named '{{ name }}.'": "Diese Umgebung enthält bereits das {{ item }} mit dem Namen '{{ name }}'.", - "This environment already contains a newer version of the {{ item }} named '{{ name }}.'": "Diese Umgebung enthält bereits eine neuere Version des {{ item }} namens '{{ name }}'.", - "This environment already contains an older version of the {{ item }} named '{{ name }}.'": "Diese Umgebung enthält bereits eine ältere Version des {{ item }} namens '{{ name }}'.", - "This environment already contains the same version of the {{ item }} named '{{ name }}.'": "Diese Umgebung enthält bereits die gleiche Version des {{ item }} namens '{{ name }}'.", - "Visit our Gallery for more Templates": "Besuchen Sie unsere Galerie für mehr Vorlagen", - "Start a new process from a blank canvas, a text description, or a preset template.": "Starten Sie einen neuen Prozess von einer leeren Leinwand, einer Textbeschreibung oder einer voreingestellten Vorlage.", - "Log-In Options": "Log-In Options", - "Your password has expired.": "Your password has expired.", - "Password set by user": "Password set by user", - "Allow to users to change their own password.": "Allow to users to change their own password.", - "Numeric characters": "Numeric characters", - "Passwords must contain minimum one numeric character.": "Passwords must contain minimum one numeric character.", - "Uppercase characters": "Uppercase characters", - "Passwords must contain minimum one uppercase character.": "Passwords must contain minimum one uppercase character.", - "Special characters": "Special characters", - "Passwords must contain minimum one special character.": "Passwords must contain minimum one special character.", - "Maximum length": "Maximum length", - "Maximum password length allowed.": "Maximum password length allowed.", - "Minimum length": "Minimum length", - "Minimum password length allowed.": "Minimum password length allowed.", - "Password expiration": "Password expiration", - "Password will expire in the days configured here.": "Password will expire in the days configured here.", - "Login failed": "Login failed", - "Number of consecutive unsuccessful login attempts before block the login action momentarily (0 for unlimited).": "Number of consecutive unsuccessful login attempts before block the login action momentarily (0 for unlimited).", - "The current value is empty but a value is required. Please provide a valid value.": "The current value is empty but a value is required. Please provide a valid value.", - "Require Two Step Authentication": "Require Two Step Authentication", - "Enhance security with an additional authentication step for user verification.": "Enhance security with an additional authentication step for user verification.", - "Two Step Authentication Method": "Two Step Authentication Method", - "A security code will be sent to all selected methods.": "A security code will be sent to all selected methods.", - "Enter the security code from :methods. If incorrect, please retry with the latest code provided.": "Enter the security code from :methods. If incorrect, please retry with the latest code provided.", - "SMS": "SMS", - "Google Authenticator": "Google Authenticator", - "Enter Security Code": "Enter Security Code", - "Enter your security code": "Enter your security code", - "Send Again": "Send Again", - "Invalid phone number. Please verify and update your phone number in your account settings.": "Invalid phone number. Please verify and update your phone number in your account settings.", - "You can also authenticate by :otherMethods.": "You can also authenticate by :otherMethods.", - "Invalid code.": "Invalid code.", - "Security Code": "Security Code", - "This is your security code: :code": "This is your security code: :code", - "This may cause validation errors during submission.": "Dies kann zu Validierungsfehlern während der Übermittlung führen.", - "Configure the authenticator app": "Configure the authenticator app", - "1.- Download the Google Authenticator App": "1.- Download the Google Authenticator App", - "2.- On the Google Authenticator app click on the + icon": "2.- On the Google Authenticator app click on the + icon", - "3.- Select \"Scan QR code\" option": "3.- Select \"Scan QR code\" option", - "Blocked": "Blocked", - "Account locked after too many failed attempts. Contact administrator.": "Account locked after too many failed attempts. Contact administrator.", - "Block duplicate session": "Block duplicate session", - "Kill existing session": "Kill existing session", - "Type value": "Geben Sie einen Wert ein", - "No new notifications at the moment.": "Keine neuen Benachrichtigungen im Moment.", - "All Clear": "Alles klar", - "Notifications, No New Messages": "Benachrichtigungen, Keine neuen Nachrichten", - "Case #": "Fall Nr.", - "Case title": "Falltitel", - "Task name": "Aufgabenname", - "TASK NAME": "Aufgabenname", - "Due date": "Fälligkeitsdatum", - "DUE DATE": "Fälligkeitsdatum", - "Inbox": "Posteingang", - "{{- subject }} caused an error": "{{- subject }} hat einen Fehler verursacht", - "{{- subject }} completed": "{{- subject }} abgeschlossen", - "{{- user}} commented on {{- subject}}": "{{- user}} hat einen Kommentar zu {{- subject}} abgegeben", - "{{- user}} started the process {{- subject }}": "{{- user}} hat den Prozess {{- subject }} gestartet", - "Add From Templates": "Aus Vorlagen hinzufügen", - "Add to a Project": "Zu einem Projekt hinzufügen", - "Add to My Bookmarks": "Zu meinen Lesezeichen hinzufügen", - "All Processes": "Alle Prozesse", - "All Templates": "Alle Vorlagen", - "All your requests will be shown here": "Alle Ihre Anfragen werden hier angezeigt", - "All your tasks related to this process will be shown here": "Alle Ihre Aufgaben, die mit diesem Prozess zusammenhängen, werden hier angezeigt", - "Analytics Chart": "Analytics-Diagramm", - "As Participant": "Als Teilnehmer", - "As Requester": "Als Anforderer", - "Assets": "Vermögenswerte", - "Available Processes": "Verfügbare Prozesse", - "By Creation Date": "Nach Erstellungsdatum", - "By Due Date": "Nach Fälligkeitsdatum", - "Check out your tasks and requests on your phone.": "Sehen Sie sich Ihre Aufgaben und Anfragen auf Ihrem Handy an.", - "Choose an Executor": "Wählen Sie einen Executor", - "Choose an icon for this PM Block.": "Wählen Sie ein Symbol für diesen PM Block.", - "Connecting Driver": "Verbindender Treiber", - "Connection Type": "Verbindungstyp", - "Create processes from a written description.": "Erstellen Sie Prozesse aus einer schriftlichen Beschreibung.", - "Currently, you don't have any processes created.": "Derzeit haben Sie keine Prozesse erstellt.", - "Default Icon": "Standard Icon", - "easier than ever": "einfacher als je zuvor", - "Edit in Launchpad": "Bei Launchpad bearbeiten", - "End": "Ende", - "Enter the name of the PM Block author.": "Geben Sie den Namen des PM Block-Autors ein.", - "Enter the version of this PM Block.": "Geben Sie die Version dieses PM Block ein.", - "Enter your password": "Geben Sie Ihr Passwort ein", - "Enter your username": "Geben Sie Ihren Benutzernamen ein", - "Explain": "Erklären", - "External Integrations": "Externe Integrationen", - "Filter by Type": "Filtern nach Typ", - "Got it!": "Habs verstanden!", - "Guided Templates": "Geführte Vorlagen", - "Have you tried the new AI Assistant?": "Haben Sie den neuen AI-Assistenten ausprobiert?", - "Home": "Zuhause", - "Images for carousel": "Bilder für Karussell", - "Imported {{- subject }}": "Importiert {{- subject }}", - "Integrate with the Plaid banking service": "Integrieren Sie den Plaid-Banking-Service", - "Launchpad Icon": "Startflächen-Symbol", - "List Table": "Listentabelle", - "My Bookmarks": "Meine Lesezeichen", - "My Projects": "Meine Projekte", - "My Tasks": "Meine Aufgaben", - "Name of the File": "Name der Datei", - "Name of the Task": "Name der Aufgabe", - "Nayra microservice is not available at this moment.": "Der Nayra-Microservice ist momentan nicht verfügbar.", - "New Collection": "Neue Sammlung", - "New Data Connector": "Neuer Datenanschluss", - "New Decision Table": "Neue Entscheidungstabelle", - "New Screen": "Neuer Bildschirm", - "New Script": "Neues Skript", - "Next": "Nächste", - "No assets to display here yet": "Noch keine Assets zur Anzeige hier", - "No results have been found": "Es wurden keine Ergebnisse gefunden", - "Not authorized to update the username and password.": "Nicht berechtigt, den Benutzernamen und das Passwort zu aktualisieren.", - "Notifications, {{count}} New Messages": "Benachrichtigungen, {{count}} neue Nachrichten", - "Once published, all new requests will use the new process model.": "Sobald veröffentlicht, werden alle neuen Anfragen das neue Prozessmodell verwenden.", - "Only PNG and JPG extensions are allowed.": "Nur PNG- und JPG-Erweiterungen sind erlaubt.", - "Open": "Öffnen", - "PM Block Name": "PM Blockname", - "Generate single fields or entire forms with our generative assistant": "Erzeugen Sie einzelne Felder oder ganze Formulare mit unserem generativen Assistenten", - "Collect a string of text and format it as one of several data types": "Sammeln Sie eine Textzeichenkette und formatieren Sie sie als einen von mehreren Datentypen", - "Collect options from a list, as radio butttons or dropdowns": "Sammeln Sie Optionen aus einer Liste, als Radiobuttons oder Dropdowns", - "Collect a multi-line string of text, to allow for extensive, richly formatted responses": "Sammeln Sie einen mehrzeiligen Textstring, um umfangreiche, reich formatierte Antworten zu ermöglichen", - "Collect a date or date/time": "Sammeln Sie ein Datum oder Datum/Uhrzeit", - "Add a checkbox or toggle for true/false responses": "Fügen Sie ein Kontrollkästchen oder einen Umschalter für true/false Antworten hinzu", - "Capture a photo or a Video straight from a camera device": "Machen Sie ein Foto oder ein Video direkt von einem Kamera-Gerät", - "Add a signature box to collect a hand-drawn signature image": "Fügen Sie ein Unterschriftenfeld hinzu, um ein handgezeichnetes Unterschriftenbild zu sammeln", - "Use a Rich Text Editor to add HTML-formatted": "Verwenden Sie einen Rich Text Editor, um HTML-formatierten hinzuzufügen", - "Organize and group your content in columns": "Organisieren und gruppieren Sie Ihren Inhalt in Spalten", - "Upload an image to your screen": "Laden Sie ein Bild auf Ihren Bildschirm hoch", - "Format content in a table structure": "Inhalte in einer Tabellenstruktur formatieren", - "Format content in a table structure and allow for adding rows": "Inhalte in einer Tabellenstruktur formatieren und das Hinzufügen von Zeilen ermöglichen", - "Add a repeatable section of content": "Fügen Sie einen wiederholbaren Inhaltsabschnitt hinzu", - "Add and reuse another Form within this Form": "Fügen Sie ein weiteres Formular in dieses Formular ein und verwenden Sie es erneut", - "Add special buttons that link between subpages within this Form ": "Fügen Sie spezielle Schaltflächen hinzu, die zwischen Unterseiten innerhalb dieses Formulars verlinken ", - "Add a chart from the Analytics Reports": "Fügen Sie ein Diagramm aus den Analytics-Berichten hinzu", - "Collect files uploaded into the Form": "Sammeln Sie Dateien, die in das Formular hochgeladen wurden", - "Offer a File download": "Bieten Sie einen Datei-Download an", - "Add a Preview section that displays the content of a File": "Fügen Sie einen Vorschau-Bereich hinzu, der den Inhalt einer Datei anzeigt", - "Create List Table": "Listentabelle erstellen", - "Add one of several Bootstrap Vue components": "Fügen Sie eine von mehreren Bootstrap Vue Komponenten hinzu", - "Wrap an existing subpage within this Form into a Bootstrap Vue component": "Verpacken Sie eine vorhandene Unterseite innerhalb dieses Formulars in eine Bootstrap Vue-Komponente", - "Add a Captcha box to your Form": "Fügen Sie ein Captcha-Feld zu Ihrem Formular hinzu", - "Collect an address using Google's location search": "Eine Adresse mit der Standortsuche von Google sammeln", - "Add a chart from one of your Saved Searches": "Fügen Sie ein Diagramm aus einer Ihrer gespeicherten Suchen hinzu", - "AI Assistant": "KI-Assistent", - "Input Fields": "Eingabefelder", - "Content Fields": "Inhaltsfelder", - "Dashboard": "Armaturenbrett", - "Dashboard configuration was not imported": "Die Dashboard-Konfiguration wurde nicht importiert", - "Dashboards": "Dashboards", - "Search faster.": "Schneller suchen.", - "Search Here": "Hier suchen", - "Search Processes": "Suchvorgänge", - "Prev": "Zurück", - "Process Browser": "Prozess-Browser", - "Processes Browser": "Prozesse-Browser", - "ProcessMaker Logo": "ProcessMaker Logo", - "Publish New Version": "Neue Version veröffentlichen", - "Publish PM Block": "PM-Block veröffentlichen", - "Open in Modeler": "In Modeler öffnen", - "Recent Assets": "Neueste Assets", - "Recent Assets from my Projects": "Neueste Assets aus meinen Projekten", - "Remove from My Bookmarks": "Entfernen aus Meine Lesezeichen", - "Repository Name": "Repository-Name", - "Request Commented": "Anfrage kommentiert", - "Requests of process": "Anfragen des Prozesses", - "Restrict query results by the repository name.": "Beschränken Sie die Abfrageergebnisse nach dem Repository-Namen.", - "Restrict query results by UserLogin.": "Beschränken Sie die Abfrageergebnisse nach UserLogin.", - "Save as PM Block": "Speichern als PM Block", - "Search Categories": "Suchkategorien", - "See All Collections": "Alle Sammlungen anzeigen", - "See All Data Connectors": "Alle Datenverbindungen anzeigen", - "See All Decision Tables": "Alle Entscheidungstabellen anzeigen", - "See All Processes": "Alle Prozesse anzeigen", - "See All Screens": "Alle Bildschirme anzeigen", - "See All Scripts": "Alle Skripte anzeigen", - "Select Chart Type": "Wählen Sie den Diagrammtyp", - "Select Project": "Projekt auswählen", - "Select the day(s) of the week in which to trigger this Unable to send email. Please check your email server settings.element": "Wählen Sie den/die Wochentag(e), an dem/denen dieses Element ausgelöst werden soll", - "Select the user to reassign to the task": "Wählen Sie den Benutzer aus, dem die Aufgabe neu zugewiesen werden soll", - "Show Me The Templates": "Zeige Mir Die Vorlagen", - "Sign In": "Anmelden", - "Smarter processes,": "Intelligentere Prozesse,", - "Specifies the file storage service, server, or file access protocol through which your Microsoft Excel files are stored and retreived.": "Gibt den Dateispeicherdienst, Server oder das Dateizugriffsprotokoll an, über das Ihre Microsoft Excel-Dateien gespeichert und abgerufen werden.", - "Start new Request": "Neue Anfrage starten", - "Start this process": "Starten Sie diesen Prozess", - "Starting events": "Startende Ereignisse", - "successfully authorized": "erfolgreich autorisiert", - "Supported formats are PNG and JPG.": "Unterstützte Formate sind PNG und JPG.", - "Task {{- subject }} completed by {{- user }}": "Aufgabe {{- subject }} abgeschlossen von {{- user }}", - "Task {{- subject }} is overdue. Originally due on {{- due }}": "Aufgabe {{- subject }} ist überfällig. Ursprünglich fällig am {{- due }}", - "Task {{- subject }} reassigned to {{- user }}": "Aufgabe {{- subject }} neu zugewiesen an {{- user }}", - "The image was deleted": "Das Bild wurde gelöscht", - "The PM Block name must be unique.": "Der PM-Blockname muss einzigartig sein.", - "The Uniform Resource Identifier (URI) for the Excel resource location.": "Der Uniform Resource Identifier (URI) für den Excel-Ressourcenstandort.", - "This will create a PM Block based on the Process": "Dies wird einen PM-Block basierend auf dem Prozess erstellen", - "To change the current username and password please contact your administrator.": "Um den aktuellen Benutzernamen und das Passwort zu ändern, kontaktieren Sie bitte Ihren Administrator.", - "To switch back to the previous interface, use \"Switch to Desktop View\" in the user menu.": "Um zur vorherigen Oberfläche zurückzukehren, verwenden Sie \"Switch to Desktop View\" im Benutzermenü.", - "Translate into multiple languages.": "Übersetzen Sie in mehrere Sprachen.", - "Unknown Process": "Unbekannter Prozess", - "Unknown User": "Unbekannter Benutzer", - "Uploaded": "Hochgeladen", - "Uploaded By": "Hochgeladen von", - "URI": "URI", - "Use a copy if you are planning on making changes to this asset.": "Verwenden Sie eine Kopie, wenn Sie vorhaben, Änderungen an diesem Asset vorzunehmen.", - "User Login": "Benutzeranmeldung", - "We apologize, but we were unable to find any results that match your search. \nPlease consider trying a different search. Thank you": "Wir entschuldigen uns, aber wir konnten keine Ergebnisse finden, die Ihrer Suche entsprechen. \nBitte versuchen Sie eine andere Suche. Danke", - "We encourage you to create new processes using our templates.": "Wir ermutigen Sie, neue Prozesse mit unseren Vorlagen zu erstellen.", - "Welcome Participant!": "Willkommen Teilnehmer!", - "Welcome Back": "Willkommen zurück", - "You are not part of a project yet": "Sie sind noch kein Teil eines Projekts", - "You have made no requests of this process.": "Sie haben keine Anfragen an diesen Prozess gestellt.", - "You have no tasks from this process.": "Sie haben keine Aufgaben aus diesem Prozess.", - "You seem to be missing access to this feature. Please contact ProcessMaker Support.": "Es scheint, dass Ihnen der Zugang zu dieser Funktion fehlt. Bitte kontaktieren Sie ProcessMaker Support.", - "Pan Tool": "Handwerkzeug", - "AI Generated": "KI Generiert", - "Photo/Video": "Foto/Video", - "Bootstrap Component": "Bootstrap-Komponente", - "Bootstrap Wrapper": "Bootstrap Wrapper", - "Captcha": "Captcha", - "Google Places": "Google Places", - "Add an action to submit your form or update a field": "Fügen Sie eine Aktion hinzu, um Ihr Formular abzusenden oder ein Feld zu aktualisieren", - "Add special buttons that link between subpages within this Form": "Fügen Sie spezielle Schaltflächen hinzu, die zwischen Unterseiten innerhalb dieses Formulars verlinken", - "input": "eingabe", - "View All Data Connectors": "Alle Datenverbindungen anzeigen", - "View All Decision Tables": "Alle Entscheidungstabellen anzeigen", - "View All Processes": "Alle Prozesse anzeigen", - "View All Screens": "Alle Bildschirme anzeigen", - "View All Scripts": "Alle Skripte anzeigen", - "Create a Project": "Ein Projekt erstellen", - "New Case": "Neuer Fall", - "No Request to Start": "Keine Anforderung zum Starten", - "No Requests to Show": "Keine Anfragen zum Anzeigen", - "No tasks in sight": "Keine Aufgaben in Sicht", - "PM Blocks": "PM-Blöcke", - "Projects": "Projekte", - "Recent Projects": "Letzte Projekte", - "View All Tasks": "Alle Aufgaben anzeigen", - "Well, it seems nothing in here": "Nun, es scheint hier drinnen nichts zu geben", - "Inbox Rules act as your personal task manager. You tell them what to look for, and they": "Inbox-Regeln fungieren als Ihr persönlicher Aufgabenmanager. Sie sagen ihnen, wonach sie suchen sollen, und sie", - "take care of things automatically.": "kümmern sich automatisch um die Dinge.", - "Add to Project": "Zum Projekt hinzufügen", - "All {{assets}} will be included in this export.": "Alle {{assets}} werden in diesen Export einbezogen.", - "All elements related to this process will be imported.": "Alle Elemente, die mit diesem Prozess in Verbindung stehen, werden importiert.", - "All Process Elements": "Alle Prozesselemente", - "By": "Von", - "COMPLETED": "Abgeschlossen", - "Created Date": "Erstellungsdatum", - "Define a password to protect your export file.": "Definieren Sie ein Passwort, um Ihre Exportdatei zu schützen.", - "Download a process model and its associated assets.": "Laden Sie ein Prozessmodell und die zugehörigen Assets herunter", - "Download all related assets.": "Laden Sie alle zugehörigen Assets herunter.", - "export": "exportieren", - "Full": "Voll", - "import": "importieren", - "Include all elements related to this process in your export file.": "Fügen Sie alle Elemente, die mit diesem Prozess in Zusammenhang stehen, in Ihre Exportdatei ein.", - "Last Modified Date": "Letztes Änderungsdatum", - "Linked Assets": "Verknüpfte Assets", - "may contain sensitive information.": "kann sensible Informationen enthalten.", - "No Processes Available": "Keine Prozesse verfügbar", - "Password must have at least 8 characters.": "Passwort muss mindestens 8 Zeichen haben.", - "Password Protect Export": "Passwortschutz für Export", - "Password protect is required because some assets may have sensitive data.": "Passwortschutz ist erforderlich, da einige Assets möglicherweise sensible Daten enthalten könnten.", - "Place your controls here.": "Platzieren Sie hier Ihre Steuerelemente.", - "RECENT ASSETS": "Neueste Assets", - "Return to Summary": "Zurück zur Zusammenfassung", - "Select which assets to include in the export file for a custom export package.": "Wählen Sie aus, welche Assets in die Exportdatei für ein benutzerdefiniertes Exportpaket aufgenommen werden sollen.", - "Select Export Type": "Wählen Sie den Exporttyp", - "Set Password": "Passwort festlegen", - "Start New Request": "Neue Anfrage starten", - "This column can not be sorted or filtered.": "Diese Spalte kann nicht sortiert oder gefiltert werden.", - "This password will be required when importing the exported package/process.": "Dieses Passwort wird benötigt, wenn das exportierte Paket/der exportierte Prozess importiert wird.", - "This process contains no dependent assets to": "Dieser Prozess enthält keine abhängigen Assets zu", - "To begin creating a screen, drag and drop items from the Controls Menu on the left.": "Um einen Bildschirm zu erstellen, ziehen Sie Elemente aus dem Steuerungsmenü auf der linken Seite per Drag-and-Drop.", - "Total Elements": "Gesamt Elemente", - "Verify Password": "Passwort überprüfen", - "What do you want to search?": "Was möchten Sie suchen?", - "will": "wird", - "will be included in this": "wird in diesem enthalten sein", - "CASE #": "Fall #", - "CASE TITLE": "FALLTITEL", - "Task Name": "Aufgabenname", - "Due Date": "Fälligkeitsdatum", - "Case Title": "Falltitel", - "Creation Date": "Erstellungsdatum", - "Deactivation Date": "Deaktivierungsdatum", - "Case Name": "Fallname", - "Run Date": "Ausführungsdatum", - "Applied Rule": "Angewandte Regel", - "Task due Date": "Fälligkeitsdatum der Aufgabe", - "Process Name": "Prozessname", - "Inbox Rules": "Posteingangsregeln", - "Rules": "Regeln", - "Execution Log": "Ausführungsprotokoll", - "Create Rule": "Regel erstellen", - "We apologize, but we were unable to find any results that match your search. Please consider trying a different search. Thank you": "Wir entschuldigen uns, aber wir konnten keine Ergebnisse finden, die Ihrer Suche entsprechen. Bitte versuchen Sie es mit einer anderen Suche. Vielen Dank", - "New Inbox Rule": "Neue Posteingangsregel", - "Task Due Date": "Fälligkeitsdatum der Aufgabe", - "No rules were executed yet": "Es wurden noch keine Regeln ausgeführt", - "Once rules start running, you can see the results here.": "Sobald Regeln ausgeführt werden, können Sie hier die Ergebnisse sehen.", - "15 items": "15 Artikel", - "30 items": "30 Artikel", - "50 items": "50 Artikel", - "Anonymous Web Link Copied": "Anonymer Web-Link kopiert", - "Cancel And Go Back": "Abbrechen Und Zurückgehen", - "Check your spelling or use other terms.": "Überprüfen Sie Ihre Rechtschreibung oder verwenden Sie andere Begriffe.", - "Clear Search": "Suche löschen", - "No new tasks at this moment.": "Keine neuen Aufgaben in diesem Moment.", - "No results to show": "Keine Ergebnisse zum Anzeigen", - "Please use this link when you are not logged into ProcessMaker": "Bitte verwenden Sie diesen Link, wenn Sie nicht bei ProcessMaker angemeldet sind", - "Quick Fill": "Schnellfüllen", - "Select a previous task to reuse its filled data on the current task.": "Wählen Sie eine vorherige Aufgabe aus, um deren ausgefüllte Daten in der aktuellen Aufgabe zu verwenden.", - "Sorry, we couldn't find any results for your search.": "Entschuldigung, wir konnten keine Ergebnisse für Ihre Suche finden.", - "Sorry, we couldn't find any results for your search. Check your spelling or use other terms.": "Entschuldigung, wir konnten keine Ergebnisse für Ihre Suche finden. Überprüfen Sie Ihre Rechtschreibung oder verwenden Sie andere Begriffe.", - "Task Filled successfully": "Aufgabe erfolgreich ausgefüllt", - "Unable to save. Verify your internet connection.": "Speichern nicht möglich. Überprüfen Sie Ihre Internetverbindung.", - "Unable to save: Verify your internet connection.": "Speichern nicht möglich: Überprüfen Sie Ihre Internetverbindung.", - "Use This Task Data": "Verwenden Sie diese Aufgabendaten", - "Inbox Rules act as your personal task manager. You tell them what to look for, and they take care of things automatically.": "Inbox-Regeln fungieren als Ihr persönlicher Aufgabenmanager. Sie sagen ihnen, wonach sie suchen sollen, und sie kümmern sich automatisch um Dinge.", - "Priority": "Priorität", - "Save As Draft": "Als Entwurf speichern", - "Do you want to delete this rule?": "Möchten Sie diese Regel löschen?", - "Define the filtering criteria": "Definieren Sie die Filterkriterien", - "Rule Configuration": "Regelkonfiguration", - "Clear unsaved filters": "Nicht gespeicherte Filter löschen", - "Mark as Priority": "Als Priorität markieren", - "Apply to current inbox matching tasks": "Auf aktuelle Posteingangsaufgaben anwenden, die übereinstimmen", - "Apply to Future tasks": "Auf zukünftige Aufgaben anwenden", - "This field is required!": "Dieses Feld ist erforderlich!", - "*=Required": "*=Erforderlich", - "What do we do with tasks that fit this filter?": "Was machen wir mit Aufgaben, die zu diesem Filter passen?", - "Rule Behavior": "Regelverhalten", - "Deactivation date": "Deaktivierungsdatum", - "Give this rule a name *": "Geben Sie dieser Regel einen Namen *", - "All clear": "Alles klar", - "Select a Person*": "Wählen Sie eine Person*", - "For a rule with no end date, leave the field empty": "Für eine Regel ohne Enddatum, lassen Sie das Feld leer", - "If you want to establish an automatic submit for this rule,": "Wenn Sie eine automatische Übermittlung für diese Regel einrichten möchten,", - "complete all the necessary fields and select you preferred submit action.": "Füllen Sie alle notwendigen Felder aus und wählen Sie Ihre bevorzugte Absendeaktion aus.", - "Submit after filling": "Absenden nach dem Ausfüllen", - "Submit Information": "Informationen einreichen", - "Choose the submit action you want to use by clicking on it in the form*": "Wählen Sie die Absendeaktion, die Sie verwenden möchten, indem Sie darauf im Formular* klicken", - "Submit action": "Aktion einreichen", - "Enter your name": "Geben Sie Ihren Namen ein", - "Waiting for selection": "Warten auf Auswahl", - "Step 1:": "Schritt 1:", - "Step 2:": "Schritt 2:", - "Step 3:": "Schritt 3:", - "Step 4:": "Schritt 4:", - "Load a saved search": "Eine gespeicherte Suche laden", - "Save and reuse filled data": "Gespeicherte Daten wiederverwenden und wiederverwenden", - "Enter form data": "Geben Sie Formulardaten ein", - "Submit Configuration": "Konfiguration einreichen", - "Reset Data": "Daten Zurücksetzen", - "Rule activated": "Regel aktiviert", - "Rule deactivated": "Regel deaktiviert", - "The operation cannot be performed. Please try again later.": "Der Vorgang kann nicht ausgeführt werden. Bitte versuchen Sie es später erneut.", - "Type here to search": "Geben Sie hier ein, um zu suchen", - "Select a saved search above.": "Wählen Sie oben eine gespeicherte Suche aus.", - "Select the Load a saved search control above.": "Wählen Sie oben die Steuerung zum Laden einer gespeicherten Suche aus.", - "Select the Load a saved search control above.": "Wählen Sie die Load a saved search Steuerung oben aus.", - "No saved searches available": "Keine gespeicherten Suchen verfügbar", - "Inbox rules empty": "Posteingangsregeln leer", - "You haven't set up any Inbox Rules yet": "Sie haben noch keine Posteingangsregeln eingerichtet", - "Inbox Rules act as your personal task manager. You tell them what to look for, and they take care of things automatically.": "Inbox-Regeln fungieren als Ihr persönlicher Aufgabenmanager. Sie sagen ihnen, wonach sie suchen sollen, und sie kümmern sich automatisch um Dinge.", - "Create an Inbox Rule Now": "Erstellen Sie jetzt eine Posteingangsregel", - "Filter the tasks for this rule": "Filtern Sie die Aufgaben für diese Regel", - "Please choose the tasks in your inbox that this new rule should apply to. Use the column filters to achieve this.": "Bitte wählen Sie die Aufgaben in Ihrem Posteingang aus, auf die diese neue Regel angewendet werden soll. Verwenden Sie die Spaltenfilter, um dies zu erreichen.", - "Your In-Progress {{title}} tasks": "Ihre in Bearbeitung befindlichen {{title}} Aufgaben", - "Quick fill Preview": "Schnellfüllvorschau", - "No Image": "Kein Bild", - "open": "öffnen", - "AUTOSAVE": "AUTOSICHERUNG", - "Last save: ": "Letzte Speicherung: ", - "Press enter to remove group": "Drücken Sie die Eingabetaste, um die Gruppe zu entfernen", - "Rule successfully created": "Regel erfolgreich erstellt", - "Rule successfully updated": "Regel erfolgreich aktualisiert", - "Check it out in the \"Rules\" section of your inbox.": "Schauen Sie es sich im Abschnitt \"Regeln\" Ihres Posteingangs an.", - "The inbox rule '{{name}}' was created.": "Die Posteingangsregel '{{name}}' wurde erstellt.", - "The inbox rule '{{name}}' was updated.": "Die Posteingangsregel '{{name}}' wurde aktualisiert.", - "Select a saved search.": "Wählen Sie eine gespeicherte Suche aus.", - "The Name has already been taken.": "Der Name wurde bereits vergeben.", - "Case by Status": "Fall nach Status", - "Cases Started": "Angefangene Fälle", - "Default Launchpad": "Standard Launchpad", - "Default Launchpad Chart": "Standard Launchpad Diagramm", - "Delete this embed media?": "Möchten Sie dieses eingebettete Medium löschen?", - "Do you want to delete this image?": "Möchten Sie dieses Bild löschen?", - "Drag or click here": "Ziehen oder klicken Sie hier", - "Edit Launchpad": "Launchpad bearbeiten", - "Embed Media": "Medien einbetten", - "Embed URL": "URL einbetten", - "Formats: PNG, JPG. 2 MB": "Formate: PNG, JPG. 2 MB", - "Generate from AI": "Generieren Sie aus KI", - "Here you can personalize how your process will be shown in the process browser": "Hier können Sie personalisieren, wie Ihr Prozess im Prozessbrowser angezeigt wird", - "Image not valid, try another": "Bild nicht gültig, versuchen Sie ein anderes", - "Invalid embed media": "Ungültige eingebettete Medien", - "Launchpad Carousel": "Launchpad-Karussell", - "Launch Screen": "Startbildschirm", - "Launchpad Settings": "Launchpad-Einstellungen", - "Load an Image": "Bild laden", - "Only images smaller than 2MB are allowed.": "Nur Bilder kleiner als 2MB sind erlaubt.", - "Please choose the tasks in your inbox that this
new rule should apply to. Use the column filters
to achieve this.": "Bitte wählen Sie die Aufgaben in Ihrem Posteingang aus, auf die diese
neue Regel angewendet werden soll. Verwenden Sie die Spaltenfilter
um dies zu erreichen.", - "Recommended: 1280 x 720 px": "Empfohlen: 1280 x 720 px", - "Select Chart": "Diagramm auswählen", - "Select Icon": "Symbol auswählen", - "Select Screen": "Bildschirm auswählen", - "The launchpad settings were saved.": "Die Einstellungen des Startpads wurden gespeichert.", - "The URL is required.": "Die URL ist erforderlich.", - "This is a Beta version and when using Quickfill, it may replace the pre-filled information in the form.": "Dies ist eine Beta-Version und bei Verwendung von Quickfill kann es vorgefüllte Informationen im Formular ersetzen.", - "to upload an image": "ein Bild hochladen", - "Please take a look at it in the 'Rules' section located within your Inbox.": "Bitte sehen Sie sich das in der 'Regeln'-Sektion an, die sich in Ihrem Posteingang befindet.", - "Clear Task": "Aufgabe löschen", - "Clear Draft": "Entwurf löschen", - "The task is loading": "Die Aufgabe wird geladen", - "Some assets can take some time to load": "Einige Assets können einige Zeit zum Laden benötigen", - "Task Filled succesfully": "Aufgabe erfolgreich ausgefüllt", - "Update Rule": "Regel aktualisieren", - "This is an AI feature and can provide inaccurate or biased responses.": "Dies ist eine KI-Funktion und kann ungenaue oder voreingenommene Antworten liefern.", - "ProcessMaker AI is currently offline. Please try again later.": "ProcessMaker AI ist derzeit offline. Bitte versuchen Sie es später erneut.", - "Clear All Fields In This Form": "Löschen Sie Alle Felder In Diesem Formular", - "Select at least one column.": "Wählen Sie mindestens eine Spalte aus.", - "Invalid value": "Ungültiger Wert", - "Field must be accepted": "Feld muss akzeptiert werden", - "Must have at most {max}": "Muss höchstens {max} haben", - "Must have a minimum value of {min}": "Muss einen Mindestwert von {min} haben", - "Must have a maximum value of {max}": "Muss einen Höchstwert von {max} haben", - "Must have a value between {min} and {max}": "Muss einen Wert zwischen {min} und {max} haben", - "Accepts only alphabet characters": "Akzeptiert nur Alphabet-Zeichen", - "Accepts only alphanumerics": "Akzeptiert nur alphanumerische Zeichen", - "Accepts only numerics": "Akzeptiert nur Zahlen", - "Must be a positive or negative integer": "Muss eine positive oder negative Ganzzahl sein", - "Must be a positive or negative decimal number": "Muss eine positive oder negative Dezimalzahl sein", - "Must be a valid email address": "Muss eine gültige E-Mail-Adresse sein", - "Must be a valid IPv4 address": "Muss eine gültige IPv4-Adresse sein", - "Must be a valid MAC address": "Muss eine gültige MAC-Adresse sein", - "Must be same as {field}": "Muss gleich sein wie {field}", - "Must be a valid URL": "Muss eine gültige URL sein", - "Must be after {after}": "Muss nach {after} sein", - "Must be equal or after {after_or_equal}": "Muss gleich oder nach {after_or_equal} sein", - "Must be before {before}": "Muss vor {before} sein", - "Must be equal or before {before_or_equal}": "Muss gleich oder vor {before_or_equal} sein", - "Invalid default value": "Ungültiger Standardwert", - "Must be a valid Date": "Muss ein gültiges Datum sein", - "Should NOT have more than {max} items": "Sollte NICHT mehr als {max} Artikel haben", - "Must have at least {min}": "Muss mindestens {min} haben", - "Invalid type": "Ungültiger Typ", - "Save and publish": "Speichern und veröffentlichen", - "You are about to publish a draft version. Are you sure you want to proceed?": "Sie sind dabei, eine Entwurfsversion zu veröffentlichen. Sind Sie sicher, dass Sie fortfahren möchten?", - "Your In-Progress tasks in the saved search {{title}}": "Ihre in Bearbeitung befindlichen Aufgaben in der gespeicherten Suche {{title}}", - "Choose a saved search to see the tasks that you can use with an Inbox Rule.": "Wählen Sie eine gespeicherte Suche aus, um die Aufgaben zu sehen, die Sie mit einer Inbox-Regel verwenden können.", - "No tasks to show.": "Keine Aufgaben zum Anzeigen.", - "But that's OK. You can still create this this Inbox Rule to apply to future tasks that match the above filters.": "Aber das ist in Ordnung. Sie können immer noch diese Inbox-Regel erstellen, die auf zukünftige Aufgaben angewendet wird, die den oben genannten Filtern entsprechen.", - "Another Process": "Ein anderer Prozess", - "Custom Dashboard": "Benutzerdefiniertes Dashboard", - "External URL": "Externe URL", - "Process Launchpad": "Prozess-Startbildschirm", - "Summary Screen (Default)": "Zusammenfassungsbildschirm (Standard)", - "Task List": "Aufgabenliste", - "Task Source (Default)": "Aufgabenquelle (Standard)", - "Welcome Screen": "Willkommensbildschirm", - "All Cases": "Alle Fälle", - "Cases": "Fälle", - "Currently, you don’t have any processes bookmarked.": "Derzeit haben Sie keine Prozesse als Lesezeichen markiert.", - "Finding Cases available to you...": "Verfügbare Fälle werden gesucht...", - "More": "Mehr", - "More Information": "Mehr Informationen", - "Must be mustache syntax": "Muss Schnurrbart-Syntax sein", - "My Cases": "Meine Fälle", - "No items to show.": "Keine Artikel zu zeigen.", - "Process Information": "Prozessinformationen", - "Show More": "Mehr anzeigen", - "The current user does not have permission to start this process": "Der aktuelle Benutzer hat keine Berechtigung, diesen Prozess zu starten", - "The Genie name must be unique.": "Der Genie-Name muss einzigartig sein.", - "Type a valid name": "Geben Sie einen gültigen Namen ein", - "Select a process below to get started.": "Wählen Sie unten einen Prozess aus, um zu beginnen.", - "You have to start a Case of this process.": "Sie müssen einen Case dieses Prozesses starten.", - "Document with AI": "Dokument mit AI", - "Generate Documentation from Scratch": "Dokumentation von Grund auf erstellen", - "Use current Documentation": "Verwenden Sie die aktuelle Dokumentation", - "Generate documentation with AI": "Dokumentation mit KI erstellen", - "We found some elements already documented, what whould you like to do?": "Wir haben einige bereits dokumentierte Elemente gefunden, was möchten Sie tun?", - "Generate Documentation": "Dokumentation erstellen", - "Current Documentation": "Aktuelle Dokumentation", - "AI Suggestion": "KI-Vorschlag", - "Apply Changes": "Änderungen übernehmen", - "Documenting...": "Dokumentiere...", - "The Two Step Authentication Method has not been set. Please contact your administrator.": "„Die Zwei-Faktor-Authentifizierungsmethode wurde nicht eingerichtet. Bitte wenden Sie sich an Ihren Administrator.“", - "The two-step method must be selected.": "Die Zwei-Schritt-Methode muss ausgewählt werden.", - "Configuration tested successfully.": "Konfiguration erfolgreich getestet.", - "Recent Cases": "Neueste Fälle", - "No results": "Keine Ergebnisse", - "Process Info": "Prozessinformationen", - "Process Chart": "Prozessdiagramm", - "Create Template": "Vorlage erstellen", - "This will create a PM Block based on the {{assetName}} Process": "Dies wird einen PM-Block basierend auf dem {{assetName}}-Prozess erstellen", - "Author": "Autor", - "Version": "Version", - "Type to search Screen": "Tippen, um den Bildschirm zu durchsuchen", - "Type to search Chart": "Zum Suchen tippen Chart", - "Open Case": "Fall öffnen", - "Alternative": "Alternative", - "No matching categories were found": "Keine passenden Kategorien wurden gefunden", - "Search categories and processes": "Kategorien und Prozesse durchsuchen", - "Started Cases": "Gestartete Fälle", - "Tab Name": "Tab-Name", - "Please enter Tab Name": "Bitte geben Sie den Tab-Namen ein", - "Select a Saved Search": "Wählen Sie eine gespeicherte Suche aus", - "Please select a Saved Search": "Bitte wählen Sie eine gespeicherte Suche aus", - "Search using natural language or PMQL": "Suche mit natürlicher Sprache oder PMQL", - "Enable Notifications": "Benachrichtigungen aktivieren", - "Tab Settings": "Tab-Einstellungen", - "Do you want to delete the tab {{name}}?": "Möchten Sie den Tab {{name}} löschen?", - "See this tab on mobile devices": "Diese Registerkarte auf mobilen Geräten anzeigen", - "Confirmation": "Bestätigung", - "The launchpad settings could not be saved due to an error.": "Die Startfeld-Einstellungen konnten aufgrund eines Fehlers nicht gespeichert werden.", - ":count tasks were not reassigned because the task settings prevent them from being reassigned": ":count Aufgaben wurden nicht neu zugewiesen, weil die Aufgabeneinstellungen verhindern, dass sie neu zugewiesen werden", - "Task :task_id could not be reassigned because the task settings prevent it from being reassigned": "Die Aufgabe :task_id konnte nicht neu zugewiesen werden, da die Aufgabeneinstellungen dies verhindern", - "No items to show": "Keine Artikel zu zeigen", - "Copy link": "Kopieren Link", - "This actions is taking longer than expected. We will continue updating your tasks in the background.": "Diese Aktion dauert länger als erwartet. Wir werden Ihre Aufgaben weiterhin im Hintergrund aktualisieren.", - "No user selected": "Kein Benutzer ausgewählt", - "Encrypted": "Verschlüsselt", - "Users/Groups to View Encrypted Fields": "Benutzer/Gruppen zum Anzeigen verschlüsselter Felder", - "Conceal": "Verbergen", - "Reveal": "Offenbaren", - "There is no field with the name ':fieldName'.": "Es gibt kein Feld mit dem Namen ':fieldName'.", - "Configuration related to encryption is not found for this field.": "Die Konfiguration in Bezug auf die Verschlüsselung wurde für dieses Feld nicht gefunden.", - "Encryption is not enabled for this field.": "Die Verschlüsselung ist für dieses Feld nicht aktiviert.", - "Configuration related to assignments is missing for this field.": "Die Konfiguration im Zusammenhang mit Zuordnungen fehlt für dieses Feld.", - "You are not assigned to this encrypted field.": "Sie sind diesem verschlüsselten Feld nicht zugeordnet.", - "Active vs Closed Cases": "Aktive vs Geschlossene Fälle", - "An error ocurred while importing the current PI Process.": "Beim Importieren des aktuellen PI-Prozesses ist ein Fehler aufgetreten.", - "Are you sure you want to delete {{name}}? The action is irreversible.": "Sind Sie sicher, dass Sie {{name}} löschen möchten? Die Aktion ist unwiderruflich.", - "Be the first to leave a comment and start a conversation": "Seien Sie der Erste, der einen Kommentar hinterlässt und eine Unterhaltung beginnt", - "Cancel Case": "Fall abbrechen", - "Collection Name": "Sammlungsname", - "Collection Record Control is not available for Anonymous Web Entry": "Sammlungssatzsteuerung ist für Anonymous Web Entry nicht verfügbar", - "Comment": "Kommentar", - "Completed & Form": "Abgeschlossen & Formular", - "Dangerous PDF file content": "Gefährlicher PDF-Dateiinhalt", - "Delete Confirmation": "Löschbestätigung", - "Download Document": "Dokument herunterladen", - "File Access": "Dateizugriff", - "History": "Geschichte", - "Import a PI Process": "PI-Prozess importieren", - "Import a process from Process Intelligence to this ProcessMaker environment": "Importieren Sie einen Prozess aus Process Intelligence in diese ProcessMaker-Umgebung", - "items": "Artikel", - "Last Modified": "Zuletzt geändert", - "Overview": "Übersicht", - "Participant": "Teilnehmer", - "per page": "pro Seite", - "This document has no preview": "Für dieses Dokument ist keine Vorschau verfügbar", - "Updated By": "Aktualisiert von", - "Yesterday": "Gestern", - "Linked Instances": "Verknüpfte Instanzen", - "Local Bundles": "Lokale Bundles", - "Shared Assets": "Gemeinsame Assets", - "Add Instance": "Instanz hinzufügen", - "Linked": "Verbunden", - "Not available": "Nicht verfügbar", - "Bundles": "Bündel", - "Are you sure you want to install this bundle?": "Möchten Sie dieses Paket wirklich installieren?", - "Initializing": "Initialisierung", - "Installation Progress": "Installationsfortschritt", - "Something went wrong": "Etwas ist schiefgelaufen", - "Downloading bundle from remote instance": "Bundle wird von der Remote-Instanz heruntergeladen", - "View": "Ansehen", - "Are you sure you want to install this asset onto this instance?": "Möchten Sie dieses Asset wirklich auf dieser Instanz installieren?", - "Are you sure you want to remote this asset from the bundle?": " Sind Sie sicher, dass Sie dieses Asset aus dem Bundle entfernen möchten? ", - "Asset successfully installed": "Asset erfolgreich installiert", - "Create Bundle": "Bundle erstellen", - "Origin": "Ursprung", - "Published": "Veröffentlicht", - "Are you sure you want to delete {{name}}?": "Möchten Sie {{name}} wirklich löschen?", - "Edit Bundle": "Bundle bearbeiten", - "Create New Bundle": "Neues Bundle erstellen", - "Decision Tables": "Entscheidungstabellen", - "FlowGenies": "FlowGenies", - "Invalid URL": "Ungültige URL", - "Create new DevLink": "Neuen DevLink erstellen", - "Edit DevLink": "DevLink bearbeiten", - "Instance URL": "Instanz-URL", - "Reconnect": "„Erneut verbinden“", - "Update Bundle": "Aktualisierungspaket", - "Update Bundle Assets": "Aktualisiere Bundle-Assets", - "Copy Bundle Assets": "Kopieren Sie Bundle-Assets", - "Create new copies of bundle assets.": "Neue Kopien von Bundle-Assets erstellen.", - "Existing assets on this instance will be updated. Warning: this will overwrite any changes you made to the assets on this instance.": "Vorhandene Assets auf dieser Instanz werden aktualisiert. Warnung: Dies wird alle Änderungen überschreiben, die Sie an den Assets auf dieser Instanz vorgenommen haben.", - "Select how you would like to update the bundle {{ selectedBundleName }}.": "Wählen Sie aus, wie Sie das Paket {{ selectedBundleName }} aktualisieren möchten.", - "Are you sure you increase the version of {{ selectedBundleName }}?": "Sind Sie sicher, dass Sie die Version von {{ selectedBundleName }} erhöhen?", - "Update Available": "Aktualisierung verfügbar", - "Reinstall This Bundle": "Dieses Paket neu installieren", - "Reinstall Bundle": "Bundle neu installieren", - "No linked instances of ProcessMaker": "„Keine verknüpften Instanzen von ProcessMaker“", - "Use the button Add Instance": "„Verwenden Sie die Schaltfläche Add Instance“", - "No bundles of assets to display": "„Keine Bündel von Assets anzuzeigen“", - "Create a bundle to easily share assets and settings between ProcessMaker instances.": "Erstellen Sie ein Bundle, um Assets und Einstellungen einfach zwischen ProcessMaker-Instanzen zu teilen.", - "In addition to the process manager, these users and groups will have permission to reassign any task in this process, regardless of the \"Allow Reassignment\" task setting.": "Zusätzlich zum Prozessmanager haben diese Benutzer und Gruppen die Berechtigung, jede Aufgabe in diesem Prozess neu zuzuweisen, unabhängig von der Einstellung \"Neuzuweisung zulassen\" der Aufgabe.", - "Reassignment Permission": "Neuzuweisungserlaubnis", - "This task can not be reassigned": "Diese Aufgabe kann nicht neu zugewiesen werden", - "Start New Case": "Neuen Fall starten", - "No Case to Start": "Kein Fall zu starten", - "No Cases to Show": "Keine Fälle anzuzeigen", - "Drafts": "Entwürfe", - "An error ocurred, please check the PI process file and try again.": "Ein Fehler ist aufgetreten, bitte überprüfen Sie die PI-Prozessdatei und versuchen Sie es erneut.", - "New": "Neu", - "New Genie": "Neuer Genie", - "View All Genies": "Alle Genies anzeigen", - "View All Collections": "Alle Kollektionen anzeigen", - "Collapse sidebar": "Seitenleiste einklappen" -} \ No newline at end of file diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php deleted file mode 100644 index 6598e2c060..0000000000 --- a/resources/lang/en/auth.php +++ /dev/null @@ -1,20 +0,0 @@ - 'These credentials do not match our records.', - 'password' => 'The provided password is incorrect.', - 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', - -]; diff --git a/resources/lang/en/environmentVariables.php b/resources/lang/en/environmentVariables.php deleted file mode 100644 index 6ccf15a249..0000000000 --- a/resources/lang/en/environmentVariables.php +++ /dev/null @@ -1,9 +0,0 @@ - [ - 'name' => [ - 'invalid_variable_name' => 'Name has to start with a letter and can contain only letters, numbers, and underscores (_).', - ], - ], -]; diff --git a/resources/lang/en/pagination.php b/resources/lang/en/pagination.php deleted file mode 100644 index d481411877..0000000000 --- a/resources/lang/en/pagination.php +++ /dev/null @@ -1,19 +0,0 @@ - '« Previous', - 'next' => 'Next »', - -]; diff --git a/resources/lang/en/passwords.php b/resources/lang/en/passwords.php deleted file mode 100644 index f1223bd726..0000000000 --- a/resources/lang/en/passwords.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Your password has been reset.', - 'sent' => 'We have emailed your password reset link.', - 'throttled' => 'Please wait before retrying.', - 'token' => 'This password reset token is invalid.', - 'user' => "We can't find a user with that email address.", - -]; diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php deleted file mode 100644 index 1a27e4250e..0000000000 --- a/resources/lang/en/validation.php +++ /dev/null @@ -1,187 +0,0 @@ - 'The :Attribute field must be accepted.', - 'accepted_if' => 'The :Attribute field must be accepted when :other is :value.', - 'active_url' => 'The :Attribute field must be a valid URL.', - 'after' => 'The :Attribute field must be a date after :date.', - 'after_or_equal' => 'The :Attribute field must be a date after or equal to :date.', - 'alpha' => 'The :Attribute field must only contain letters.', - 'alpha_dash' => 'The :Attribute field must only contain letters, numbers, dashes, and underscores.', - 'alpha_spaces' => 'The :Attribute may only contain alphanumeric characters.', - 'alpha_num' => 'The :Attribute field must only contain letters and numbers.', - 'array' => 'The :Attribute field must be an array.', - 'ascii' => 'The :Attribute field must only contain single-byte alphanumeric characters and symbols.', - 'before' => 'The :Attribute field must be a date before :date.', - 'before_or_equal' => 'The :Attribute field must be a date before or equal to :date.', - 'between' => [ - 'array' => 'The :Attribute field must have between :min and :max items.', - 'file' => 'The :Attribute field must be between :min and :max kilobytes.', - 'numeric' => 'The :Attribute field must be between :min and :max.', - 'string' => 'The :Attribute field must be between :min and :max characters.', - ], - 'boolean' => 'The :Attribute field must be true or false.', - 'can' => 'The :Attribute field contains an unauthorized value.', - 'confirmed' => 'The :Attribute field confirmation does not match.', - 'current_password' => 'The password is incorrect.', - 'date' => 'The :Attribute field must be a valid date.', - 'date_equals' => 'The :Attribute field must be a date equal to :date.', - 'date_format' => 'The :Attribute field must match the format :format.', - 'decimal' => 'The :Attribute field must have :decimal decimal places.', - 'declined' => 'The :Attribute field must be declined.', - 'declined_if' => 'The :Attribute field must be declined when :other is :value.', - 'different' => 'The :Attribute field and :other must be different.', - 'digits' => 'The :Attribute field must be :digits digits.', - 'digits_between' => 'The :Attribute field must be between :min and :max digits.', - 'dimensions' => 'The :Attribute field has invalid image dimensions.', - 'distinct' => 'The :Attribute field has a duplicate value.', - 'doesnt_end_with' => 'The :Attribute field must not end with one of the following: :values.', - 'doesnt_start_with' => 'The :Attribute field must not start with one of the following: :values.', - 'email' => 'The :Attribute field must be a valid email address.', - 'ends_with' => 'The :Attribute field must end with one of the following: :values.', - 'enum' => 'The selected :Attribute is invalid.', - 'exists' => 'The selected :Attribute is invalid.', - 'file' => 'The :Attribute field must be a file.', - 'filled' => 'The :Attribute field must have a value.', - 'gt' => [ - 'array' => 'The :Attribute field must have more than :value items.', - 'file' => 'The :Attribute field must be greater than :value kilobytes.', - 'numeric' => 'The :Attribute field must be greater than :value.', - 'string' => 'The :Attribute field must be greater than :value characters.', - ], - 'gte' => [ - 'array' => 'The :Attribute field must have :value items or more.', - 'file' => 'The :Attribute field must be greater than or equal to :value kilobytes.', - 'numeric' => 'The :Attribute field must be greater than or equal to :value.', - 'string' => 'The :Attribute field must be greater than or equal to :value characters.', - ], - 'image' => 'The :Attribute field must be an image.', - 'in' => 'The selected :Attribute is invalid.', - 'in_array' => 'The :Attribute field must exist in :other.', - 'integer' => 'The :Attribute field must be an integer.', - 'ip' => 'The :Attribute field must be a valid IP address.', - 'ipv4' => 'The :Attribute field must be a valid IPv4 address.', - 'ipv6' => 'The :Attribute field must be a valid IPv6 address.', - 'json' => 'The :Attribute field must be a valid JSON string.', - 'lowercase' => 'The :Attribute field must be lowercase.', - 'lt' => [ - 'array' => 'The :Attribute field must have less than :value items.', - 'file' => 'The :Attribute field must be less than :value kilobytes.', - 'numeric' => 'The :Attribute field must be less than :value.', - 'string' => 'The :Attribute field must be less than :value characters.', - ], - 'lte' => [ - 'array' => 'The :Attribute field must not have more than :value items.', - 'file' => 'The :Attribute field must be less than or equal to :value kilobytes.', - 'numeric' => 'The :Attribute field must be less than or equal to :value.', - 'string' => 'The :Attribute field must be less than or equal to :value characters.', - ], - 'mac_address' => 'The :Attribute field must be a valid MAC address.', - 'max' => [ - 'array' => 'The :Attribute field must not have more than :max items.', - 'file' => 'The :Attribute field must not be greater than :max kilobytes.', - 'numeric' => 'The :Attribute field must not be greater than :max.', - 'string' => 'The :Attribute field must not be greater than :max characters.', - ], - 'max_digits' => 'The :Attribute field must not have more than :max digits.', - 'mimes' => 'The :Attribute field must be a file of type: :values.', - 'mimetypes' => 'The :Attribute field must be a file of type: :values.', - 'min' => [ - 'array' => 'The :Attribute field must have at least :min items.', - 'file' => 'The :Attribute field must be at least :min kilobytes.', - 'numeric' => 'The :Attribute field must be at least :min.', - 'string' => 'The :Attribute field must be at least :min characters.', - ], - 'min_digits' => 'The :Attribute field must have at least :min digits.', - 'missing' => 'The :Attribute field must be missing.', - 'missing_if' => 'The :Attribute field must be missing when :other is :value.', - 'missing_unless' => 'The :Attribute field must be missing unless :other is :value.', - 'missing_with' => 'The :Attribute field must be missing when :values is present.', - 'missing_with_all' => 'The :Attribute field must be missing when :values are present.', - 'multiple_of' => 'The :Attribute field must be a multiple of :value.', - 'not_in' => 'The selected :Attribute is invalid.', - 'not_regex' => 'The :Attribute field format is invalid.', - 'numeric' => 'The :Attribute field must be a number.', - 'password' => [ - 'letters' => 'The :Attribute field must contain at least one letter.', - 'mixed' => 'The :Attribute field must contain at least one uppercase and one lowercase letter.', - 'numbers' => 'The :Attribute field must contain at least one number.', - 'symbols' => 'The :Attribute field must contain at least one symbol.', - 'uncompromised' => 'The given :Attribute has appeared in a data leak. Please choose a different :Attribute.', - ], - 'present' => 'The :Attribute field must be present.', - 'prohibited' => 'The :Attribute field is prohibited.', - 'prohibited_if' => 'The :Attribute field is prohibited when :other is :value.', - 'prohibited_unless' => 'The :Attribute field is prohibited unless :other is in :values.', - 'prohibits' => 'The :Attribute field prohibits :other from being present.', - 'regex' => 'The :Attribute field format is invalid.', - 'required' => 'The :Attribute field is required.', - 'required_array_keys' => 'The :Attribute field must contain entries for: :values.', - 'required_if' => 'The :Attribute field is required when :other is :value.', - 'required_if_accepted' => 'The :Attribute field is required when :other is accepted.', - 'required_unless' => 'The :Attribute field is required unless :other is in :values.', - 'required_with' => 'The :Attribute field is required when :values is present.', - 'required_with_all' => 'The :Attribute field is required when :values are present.', - 'required_without' => 'The :Attribute field is required when :values is not present.', - 'required_without_all' => 'The :Attribute field is required when none of :values are present.', - 'same' => 'The :Attribute field must match :other.', - 'size' => [ - 'array' => 'The :Attribute field must contain :size items.', - 'file' => 'The :Attribute field must be :size kilobytes.', - 'numeric' => 'The :Attribute field must be :size.', - 'string' => 'The :Attribute field must be :size characters.', - ], - 'starts_with' => 'The :Attribute field must start with one of the following: :values.', - 'string' => 'The :Attribute field must be a string.', - 'timezone' => 'The :Attribute field must be a valid timezone.', - 'unique' => 'The :Attribute has already been taken.', - 'uploaded' => 'The :Attribute failed to upload.', - 'uppercase' => 'The :Attribute field must be uppercase.', - 'url' => 'The :Attribute field must be a valid URL.', - 'ulid' => 'The :Attribute field must be a valid ULID.', - 'uuid' => 'The :Attribute field must be a valid UUID.', - - 'custom' => [ - 'path' => [ - 'filemanager.drive_from_path' => 'Invalid value specified for: :Attribute', - ], - 'filename' => [ - 'filemanager' => [ - 'filename_is_valid' => 'Invalid value specified for: :Attribute', - 'store_only_html_to_templates' => 'The file has an incorrect extension. Please check the file and upload again.', - 'do_not_store_exe_in_public' => 'The file has an incorrect extension. Please check the file and upload again.', - 'do_not_store_php_in_public' => 'The upload of php files was disabled.', - ], - ], - 'processFile' => [ - 'filemanager' => [ - 'file_is_not_used_at_email_events' => 'You can not delete the template :path because it has a relationship with Email Event', - 'file_is_not_used_as_routing_screen' => 'You can not delete the template :path because it is used as a routing screen.', - ], - ], - 'processCategory' => [ - 'process_category_manager' => [ - 'category_does_not_have_processes' => 'The category cannot be deleted while it is still assigned to processes.', - ], - ], - ], - - 'attributes' => [ - 'title' => 'name', - 'firstname' => 'First Name', - 'lastname' => 'Last Name', - 'config' => 'Config', - ], -]; diff --git a/resources/lang/es.json b/resources/lang/es.json deleted file mode 100644 index 5f954b5061..0000000000 --- a/resources/lang/es.json +++ /dev/null @@ -1,2615 +0,0 @@ -{ - " pending": " pendiente", - ":count tasks were not reassigned because the task settings prevent them from being reassigned": ":count tareas no fueron reasignadas porque la configuración de las tareas impide que sean reasignadas", - ":user has completed the task :task_name": ":user ha completado la tarea :task_name", - ":user rolled back :failed_task_name to :new_task_name": ":user retrocedió :failed_task_name a :new_task_name", - "¡ Whoops ! No results": "¡ Ups ! Sin resultados", - "? Any services using it will no longer have access.": "Cualquier servicio que lo use ya no tendrá acceso.", - "(If empty, all data returned will be mapped to the output variable)": "(Si están vacías, todos los datos devueltos se asignarán a la variable de salida)", - "[Select Active Process]": "[Seleccionar proceso activo]", - "{{- subject }} caused an error": "{{- subject }} causó un error", - "{{- subject }} completed": "{{- subject }} completado", - "{{- user}} commented on {{- subject}}": "{{- user}} comentó sobre {{- subject}}", - "{{- user}} started the process {{- subject }}": "{{- user}} inició el proceso {{- subject }}", - "{{count}} Item": "{{count}} artículo", - "{{count}} Items": "{{count}} artículos", - "{{name}} on page {{pageName}} is not accessible to screen readers. Please add a Label in the Variable section or an Aria Label in the Advanced section.": "Los lectores de pantalla no pueden acceder a {{name}} en la página {{pageName}}. Agregue una etiqueta en la sección Variable o una etiqueta Aria en la sección Avanzado.", - "{{variable}} is running.": "{{variable}} se está ejecutando.", - "*=Required": "*=Requerido", - "# Members": "# Miembros", - "# Processes": "Nro. de procesos", - "# Screens": "Nº de pantallas", - "# Scripts": "Nº de scripts", - "# Users": "Nro. de usuarios", - "+ Add Page": "+ Agregar página", - "1.- Download the Google Authenticator App": "1.- Download the Google Authenticator App", - "15 items": "15 artículos", - "2.- On the Google Authenticator app click on the + icon": "2.- On the Google Authenticator app click on the + icon", - "3.- Select \"Scan QR code\" option": "3.- Select \"Scan QR code\" option", - "30 items": "30 artículos", - "50 items": "50 artículos", - "72 hours": "72 horas", - "A .env file already exists. Stop the installation procedure, delete the existing .env file, and then restart the installation.": "Un archivo .env ya existe. Detenga el procedimiento de instalación, elimine el archivo .env existente y luego reinicie la instalación.", - "A mouse and keyboard are required to use screen builder.": "Se requiere un ratón y un teclado para utilizar el generador de pantalla.", - "A mouse and keyboard are required to use the modeler.": "Se requiere un ratón y un teclado para utilizar el modelador.", - "A name to describe this Watcher": "Un nombre para describir este observador", - "A screen selection is required": "Se requiere una selección de pantalla", - "A script selection is required": "Se requiere seleccionar un script", - "A security code will be sent to all selected methods.": "Se enviará un código de seguridad a todos los métodos seleccionados.", - "A user with the username {{username}} and email {{email}} was previously deleted.": "Un usuario con el nombre de usuario :username y correo electrónico :email fue eliminado anteriormente.", - "A valid Cell phone number is required for SMS two-factor authentication.": "Se requiere un número de teléfono celular válido para la autenticación de dos factores de SMS.", - "A variable key name is a symbolic name to reference information.": "Un nombre de clave variable es un nombre simbólico para hacer referencia a la información.", - "A variable name is a symbolic name to reference information.": "Un nombre de variable es un nombre simbólico para hacer referencia a la información.", - "About ProcessMaker": "Acerca de ProcessMaker", - "About": "Acerca de", - "Accepted Form Fields": "Campos de formulario aceptados", - "Accepted Method": "Método aceptado", - "Accepted methods": "Métodos aceptados", - "Accepted": "Aceptado", - "Accepts only alphabet characters": "Acepta solo caracteres del alfabeto", - "Accepts only alphanumerics": "Acepta solo alfanuméricos", - "Accepts only numerics": "Acepta solo numéricos", - "Access token generated successfully": "Token de acceso generado correctamente", - "Accessed_at": "Accedido en", - "Account locked after too many failed attempts. Contact administrator.": "Account locked after too many failed attempts. Contact administrator.", - "Account Timeout": "Tiempo de espera de la cuenta", - "action": "acción", - "Actions": "Acciones", - "Active vs Closed Cases": "Casos Activos vs Casos Cerrados", - "Active": "activo", - "Add a Captcha box to your Form": "Agrega una caja de Captcha a tu Formulario", - "Add a chart from one of your Saved Searches": "Agrega un gráfico de una de tus Búsquedas Guardadas", - "Add a chart from the Analytics Reports": "Agrega un gráfico desde los Informes de Análisis", - "Add a checkbox or toggle for true/false responses": "Agrega una casilla de verificación o interruptor para respuestas verdadero/falso", - "Add a Preview section that displays the content of a File": "Agrega una sección de Vista previa que muestra el contenido de un Archivo", - "Add a repeatable section of content": "Agrega una sección de contenido repetible", - "Add a signature box to collect a hand-drawn signature image": "Agregue un cuadro de firma para recoger una imagen de firma dibujada a mano", - "Add a Task": "Agregar una tarea", - "Add an action to submit your form or update a field": "Agregue una acción para enviar su formulario o actualizar un campo", - "Add and reuse another Form within this Form": "Agrega y reutiliza otro Formulario dentro de este Formulario", - "Add Category": "Agregar categoría", - "Add Column": "Agregar columna", - "Add FEEL Expression": "Agregar expresión FEEL", - "Add Field Security": "Agregar seguridad de campo", - "Add From Templates": "Agregar Desde Plantillas", - "Add Instance": "Agregar instancia", - "Add New Column": "Agregar nueva columna", - "Add New Option": "Agregar nueva opción", - "Add New Page": "Agregar nueva página", - "Add New Script Executor": "Agregar nuevo ejecutor de script", - "Add one of several Bootstrap Vue components": "Agrega uno de varios componentes de Bootstrap Vue", - "Add Option": "Agregar opción", - "Add Process Translation": "Agregar Traducción de Proceso", - "Add Property": "Agregar propiedad", - "Add Record": "Agregar registro", - "Add Rule": "Agregar regla", - "Add Screen": "Agregar pantalla", - "Add Self Service": "Agregar autoservicio", - "Add special buttons that link between subpages within this Form ": "Agrega botones especiales que enlazan entre subpáginas dentro de este Formulario ", - "Add special buttons that link between subpages within this Form": "Agregue botones especiales que enlacen entre subpáginas dentro de este Formulario", - "Add to a Project": "Agregar a un Proyecto", - "Add to clipboard": "Agregar al portapapeles", - "Add to My Bookmarks": "Agregar a Mis Marcadores", - "Add to Project": "Agregar al Proyecto", - "Add URL Restriction": "Agregar restricción de URL", - "Add User To Group": "Agregar usuario a grupo", - "Add Users": "Agregar usuarios", - "add": "Agregar", - "Add": "Agregar", - "Additional Details (optional)": "Detalles adicionales (opcional)", - "Address": "Dirección", - "Adds reference string to subject line of the reply email. For example, \"PMABEREF 1828 node_3\" would be added to the subject line.": "Agrega una cadena de referencia a la línea de asunto del correo de respuesta. Por ejemplo, \"PMABEREF 1828 node_3\" se agregaría a la línea de asunto.", - "Admin": "Administrador", - "Advanced data search": "Búsqueda avanzada de datos", - "Advanced Mode": "Modo avanzado", - "Advanced Search (PMQL)": "Búsqueda avanzada (PMQL)", - "Advanced Search": "Búsqueda avanzada", - "Advanced": "Avanzado", - "After Date": "Después de la fecha", - "After importing, you can reassign users and groups to your Process.": "Después de importar, puede reasignar usuarios y grupos a su Proceso.", - "After or Equal to Date": "Después o en la fecha", - "After": "Después", - "AI Assistant": "Asistente de IA", - "AI Generated": "Generado por IA", - "AI Suggestion": "Sugerencia de IA", - "Align Bottom": "Alinear parte inferior", - "Align Left": "Alinear a la izquierda", - "Align Right": "Alinear a la derecha", - "Align Top": "Alinear parte superior", - "All {{assets}} will be included in this export.": "Todos los {{assets}} se incluirán en esta exportación.", - "All assignments were saved.": "Todas las tareas fueron guardadas.", - "All Cases": "Todos los casos", - "All Clear": "Todo claro", - "All clear": "Todo claro", - "All elements related to this process will be imported.": "Todos los elementos relacionados con este proceso serán importados.", - "All Notifications": "Todas las notificaciones", - "All Process Elements": "Todos los Elementos del Proceso", - "All Processes": "Todos los Procesos", - "All Request Data": "Todos los datos de solicitudes", - "All Requests": "Todas las solicitudes", - "All rights reserved.": "Todos los derechos reservados.", - "All Rights Reserved": "Todos los derechos reservados", - "All Templates": "Todas las Plantillas", - "All the configurations of the screen will be exported.": "Se exportarán todas las configuraciones de la pantalla.", - "All your requests will be shown here": "Todas tus solicitudes se mostrarán aquí", - "All your tasks related to this process will be shown here": "Todos tus tareas relacionadas con este proceso se mostrarán aquí", - "All": "Todo", - "Allow Access From": "Permitir el acceso desde", - "Allow additional loops": "Permitir bucles adicionales", - "Allow Multiple Selections": "Permitir múltiples selecciones", - "Allow Reassignment": "Permitir reasignación", - "Allow Standard Login": "Permitir Inicio de Sesión Estándar", - "Allow to users to change their own password.": "Permitir a los usuarios cambiar su propia contraseña.", - "Allowed Group": "Grupo autorizado", - "Allowed Groups": "Grupos permitidos", - "Allowed User": "Usuario autorizado", - "Allowed Users": "Usuarios permitidos", - "Allows the Task assignee to reassign this Task": "Permite al destinatario de la tarea reasignar esta tarea", - "Alpha-Numeric": "Alfanumérico", - "Alpha": "Alfa", - "Alternative": "Alternativa", - "Amazon Access Key ID": "ID de Clave de Acceso de Amazon", - "Amazon Default Region": "Región Predeterminada de Amazon", - "Amazon Secret Access Key": "Clave de Acceso Secreta de Amazon", - "An error occurred. Check the form for errors in red text.": "Se produjo un error. Revise si hay errores en el texto en rojo del formulario.", - "An error ocurred while importing the current PI Process.": "Se produjo un error al importar el proceso PI actual.", - "An error ocurred, please check the PI process file and try again.": "Se produjo un error, por favor revise el archivo de proceso PI y vuelva a intentarlo.", - "An existing user has been found with the email {{ email }} would you like to save and reactivate their account?": "Se ha encontrado un usuario existente con el correo electrónico {{ email }} ¿Desea guardar y reactivar su cuenta?", - "An existing user has been found with the email {{ username }} would you like to save and reactivate their account?": "Se ha encontrado un usuario existente con el nombre de usuario {{ username }} ¿Desea guardar y reactivar su cuenta?", - "Analytics Chart": "Gráfico de Análisis", - "and click on +Process to get started.": "y haga clic en +Proceso para comenzar.", - "Anonymous Web Link Copied": "Enlace Web Anónimo Copiado", - "Another Process": "Otro Proceso", - "API Tokens": "Tokens de API", - "Applied Rule": "Regla Aplicada", - "Apply Changes": "Aplicar cambios", - "Apply to current inbox matching tasks": "Aplicar a las tareas correspondientes en el buzón actual", - "Apply to Future tasks": "Aplicar a tareas futuras", - "Apply": "Aplicar", - "Archive Processes": "Archivar procesos", - "Archive": "Archivar", - "Archived Processes": "Procesos archivados", - "Are you ready to begin?": "¿Esta listo para comenzar?", - "Are you sure to delete the group ": "Está seguro de que quiere eliminar el grupo ", - "Are you sure you increase the version of {{ selectedBundleName }}?": "¿Está seguro de que aumenta la versión de {{ selectedBundleName }}?", - "Are you sure you want cancel this request ?": "¿Está seguro de que desea cancelar esta solicitud?", - "Are you sure you want to archive the process ": "Está seguro de que quiere archivar el proceso ", - "Are you sure you want to archive the process": "Está seguro de que quiere archivar el proceso ", - "Are you sure you want to complete this request?": "¿Está seguro de que desea completar esta solicitud?", - "Are you sure you want to delete {{item}}? Deleting this asset will break any active tasks that are assigned.": "¿Está seguro de que desea eliminar {{item}}? Al eliminar este elemento, se romperán las tareas activas que están asignadas.", - "Are you sure you want to delete {{item}}?": "¿Está seguro de que desea eliminar {{item}}?", - "Are you sure you want to delete {{item}}": "¿Está seguro de que desea eliminar {{item}}?", - "Are you sure you want to delete {{name}}?": "¿Estás seguro de que deseas eliminar {{name}}?", - "Are you sure you want to delete {{name}}? The action is irreversible.": "¿Estás seguro de que deseas eliminar {{name}}? La acción es irreversible.", - "Are you sure you want to delete expression {{item}}": "¿Está seguro de que desea eliminar la expresión {{item}}?", - "Are you sure you want to delete the auth client": "Está seguro de que desea el cliente de autenticación", - "Are you sure you want to delete the calc ?:": "¿Estás segura de que quieres eliminar la calc?", - "Are you sure you want to delete the environment variable {{ name }} ?": "¿Está seguro de que desea eliminar la variable de entorno {{ name }}?", - "Are you sure you want to delete the screen {{item}}? Deleting this asset will break any active tasks that are assigned.": "¿Está seguro de que desea eliminar la pantalla {{item}}? Al eliminar este elemento, se romperán las tareas activas que están asignadas.", - "Are you sure you want to delete the token ": "¿Está seguro de que desea eliminar el token? ", - "Are you sure you want to delete the user": "Está seguro de que desea eliminar el usuario", - "Are you sure you want to delete the Watcher?": "¿Está seguro de que desea eliminar este observador?", - "Are you sure you want to delete this item?": "¿Está seguro de que desea eliminar elemento?", - "Are you sure you want to delete this?": "¿Está seguro de que desea eliminar esto?", - "Are you sure you want to escalate this task?": "¿Está seguro de que desea escalar esta tarea?", - "Are you sure you want to install this asset onto this instance?": "¿Estás seguro de que deseas instalar este activo en esta instancia?", - "Are you sure you want to install this bundle?": "¿Estás seguro de que quieres instalar este paquete?", - "Are you sure you want to remote this asset from the bundle?": "¿Estás seguro de que deseas eliminar este activo del paquete?", - "Are you sure you want to remove the user from the group ": "¿Está seguro de que quiere eliminar al usuario del grupo? ", - "Are you sure you want to remove this record?": "¿Está seguro de que desea eliminar este registro?", - "Are you sure you want to reset all of your translations?": "¿Está seguro de que desea restablecer todas sus traducciones?", - "Are you sure you want to reset the UI styles?": "¿Está seguro de que desea restablecer los estilos de la UI?", - "Are you sure you want to restore the user {{item}}?": "¿Está seguro de que desea restaurar el usuario {{item}}?", - "Are you sure you want to rollback to the task @{{name}}? Warning! This request will continue as the current published process version.": "¿Estás seguro de que quieres volver a la tarea @{{name}}? ¡Advertencia! Esta solicitud continuará como la versión actual del proceso publicado.", - "Aria Label": "etiqueta aria", - "Array": "Matriz", - "As Participant": "Como Participante", - "As Requester": "Como Solicitante", - "as": "como", - "Asset successfully installed": "Activo instalado con éxito", - "Assets": "Activos", - "Assign all permissions to this group": "Asignar todos los permisos a este grupo", - "Assign all permissions to this user": "Asignar todos los permisos a este usuario", - "Assign by Expression Use a rule to assign this Task conditionally": "Asignar por expresión: use una regla para asignar esta tarea condicionalmente", - "Assign Call Activity": "Asignar Actividad de llamadas", - "Assign data source watcher in :screen": "Asignar observador de fuentes de datos en: pantalla", - "Assign Start Event": "Asignar Evento de inicio", - "Assign task": "Asignar tarea", - "Assign to User / Group": "Asignar a usuario/grupo", - "Assign to User": "Asignar a usuario", - "Assign user to task": "Asignar usuario a tarea", - "Assign": "Asignar", - "Assigned Group": "Grupo asignado", - "Assigned To": "Asignado a", - "Assigned User": "Usuario asignado", - "Assigned Users / Groups": "Usuarios/grupos asignados", - "Assigned Users/Groups": "Usuarios/grupos asignados", - "ASSIGNED": "ASIGNADA", - "Assigned": "Asignado", - "Assignee Manager Escalation": "Escalamiento a administrador asignado", - "Assignee Permissions": "Permisos de cesionario", - "Assignee": "Cesionario", - "Assignment Options": "Opciones de asignación", - "Assignment Rules": "Reglas de asignación", - "Assignment Type": "Tipo de asignación", - "Association Flow": "Flujo de asociación", - "Association": "Asociación", - "At": "En", - "Attribute designed to help assistive technology (e.g. screen readers) attach a label": "Atributo diseñado para ayudar a la tecnología de asistencia (por ejemplo, lectores de pantalla) a adjuntar una etiqueta", - "Auth Client": "Cliente autenticado", - "Auth Clients": "Clientes autenticados", - "Auth_client_id": "ID de Cliente de Autenticación", - "Auth-Clients": "Clientes autenticados", - "auth.failed": "Estas credenciales no coinciden con nuestros registros.", - "auth.throttle": "Se han realizado demasiados intentos de inicio de sesión. Inténtelo de nuevo en: segundos segundos.", - "AuthClientCreated": "Cliente de Autenticación Creado", - "AuthClientDeleted": "Cliente de Autenticación Eliminado", - "AuthClientUpdated": "Cliente de Autenticación Actualizado", - "Authentication Context": "Contexto de Autenticación", - "Authentication Type": "Tipo de autenticación", - "Authentication": "Autenticación", - "Author": "Autor", - "Authorizations": "Autorizaciones", - "Authorize Account": "Autorizar Cuenta", - "Auto Translate": "Auto Traducir", - "Auto validate": "Validar automáticamente", - "Automatic Registration": "Registro Automático", - "AUTOSAVE": "AUTOGUARDADO", - "Available Processes": "Procesos Disponibles", - "Avatar": "Avatar", - "Back to Login": "Volver a inicio de sesión", - "Back": "Volver", - "Background Color": "Color de fondo", - "Basic Mode": "Modo básico", - "Basic Search": "Búsqueda básica", - "Basic": "Básico", - "Be the first to leave a comment and start a conversation": "Sea el primero en dejar un comentario y comenzar una conversación", - "Before Date": "Antes de la fecha", - "Before or Equal to Date": "Antes o en la fecha", - "Between Min & Max": "Entre mínimo y máximo", - "Block duplicate session": "Block duplicate session", - "Blocked": "Blocked", - "Body of the text annotation": "Cuerpo de la anotación de texto", - "Body": "Cuerpo", - "Bold": "Negrita", - "Boolean": "Booleano", - "Bootstrap Component": "Componente Bootstrap", - "Bootstrap Wrapper": "Contenedor Bootstrap", - "Both": "Ambas", - "Bottom Left": "Abajo a la izquierda", - "Bottom Right": "Abajo a la derecha", - "Bottom": "Abajo", - "Boundary Conditional Event": "Evento condicional de límite", - "Boundary Error Event": "Evento de error de límite", - "Boundary Escalation Event": "Evento de escalación de límite", - "Boundary Events": "Eventos de límite", - "Boundary Message Event": "Evento de mensaje de límite", - "Boundary Signal Event": "Evento de señal de límite", - "Boundary Timer Event": "Evento de temporizador de límite", - "BPMN Issues": "Problemas de BPMN", - "BPMN validation issues. Request cannot be started.": "Problemas de validación de BPMN. No se puede iniciar la solicitud.", - "BPMN": "BPMN", - "Browse": "Examinar", - "Browser": "Navegador", - "Build Command Output": "Generar salida de comando", - "Build Your Own": "Construye Tu Propio", - "Bundles": "Paquetes", - "But that's OK. You can still create this this Inbox Rule to apply to future tasks that match the above filters.": "Pero eso está bien. Aún puedes crear esta Regla de Bandeja de Entrada para aplicar a futuras tareas que coincidan con los filtros anteriores.", - "Button Label": "Etiqueta de botón", - "Button Variant Style": "Estilo de variante de botón", - "By Creation Date": "Por Fecha de Creación", - "By default, all process screens will be auto translated via our AI tooling.": "De forma predeterminada, todas las pantallas de proceso se traducirán automáticamente a través de nuestras herramientas de IA.", - "By Due Date": "Por Fecha de Vencimiento", - "By User ID": "Por ID de usuario", - "By": "Por", - "Calcs": "Calculadas", - "Calculated Properties": "Propiedades calculadas", - "Call Activity": "Actividad de llamadas", - "Callback": "Devolución de llamada", - "Can not assign this task because there is no previous user assigned before this task": "No puede asignar esta tarea porque no hay un usuario anterior al que se le haya asignado antes esta tarea", - "Cancel And Go Back": "Cancelar Y Volver Atrás", - "Cancel Case": "Cancelar caso", - "Cancel Request": "Cancelar solicitud", - "Cancel Screen": "Cancelar pantalla", - "Cancel": "Cancelar", - "Canceled": "Cancelado", - "Cannot delete signals present in a process.": "No se pueden eliminar las señales presentes en un proceso.", - "Cannot delete System signals.": "No se pueden eliminar las señales del sistema.", - "Cannot edit system signals.": "No se pueden editar las señales del sistema.", - "CAPTCHA controls cannot be placed within a Loop control.": "Los controles CAPTCHA no pueden colocarse dentro de un control de bucle.", - "Captcha": "Captcha", - "Capture a photo or a Video straight from a camera device": "Capture una foto o un Video directamente desde un dispositivo de cámara", - "CASE #": "Caso #", - "Case #": "Caso #", - "Case by Status": "Caso por Estado", - "Case Name": "Nombre del Caso", - "CASE TITLE": "Título del caso", - "Case Title": "Título del Caso", - "Case title": "Título del caso", - "Case": "Caso", - "Cases Started": "Casos Iniciados", - "Cases": "Casos", - "Catch Events": "Eventos de captura", - "Categories are required to create a process": "Se requieren categorías para crear un proceso", - "Categories": "Categorías", - "Category Name": "Nombre de categoría", - "Category_name": "Nombre de Categoría", - "Category": "Categoría", - "CategoryCreated": "Categoría Creada", - "CategoryDeleted": "Categoría Eliminada", - "CategoryUpdated": "Categoría Actualizada", - "Caution!": "¡Precaución!", - "Cell": "Celular", - "Center Horizontally": "Centrar horizontalmente", - "Center Vertically": "Centrar verticalmente", - "Center": "Centrar", - "Change Password": "Cambiar contraseña", - "Change Type": "Tipo de cambio", - "Change Version Details": "Cambiar detalles de la versión", - "Change": "Cambiar", - "Changing this type will replace your current configuration": "Cambiar este tipo reemplazará su configuración actual", - "Check Flow": "Comprobar flujo", - "Check it out in the \"Rules\" section of your inbox.": "Consulta en la sección de \"Reglas\" de tu bandeja de entrada.", - "Check out your tasks and requests on your phone.": "Revisa tus tareas y solicitudes en tu teléfono.", - "Check this box to allow task assignee to add additional loops": "Marque esta casilla para permitir que la persona asignada agregue bucles adicionales", - "Check your spelling or use other terms.": "Verifica tu ortografía o utiliza otros términos.", - "Checkbox": "Casilla de verificación", - "Checked by default": "Marcado por defecto", - "Checks if the length of the String representation of the value is >": "Comprueba si la longitud de la representación de cadena del valor es >", - "Choose a login logo image": "Elija una imagen de logotipo de inicio de sesión", - "Choose a saved search to see the tasks that you can use with an Inbox Rule.": "Elija una búsqueda guardada para ver las tareas que puede usar con una Regla de Bandeja de Entrada.", - "Choose an Executor": "Elija un Ejecutor", - "Choose an icon for this PM Block.": "Elija un icono para este Bloque PM.", - "Choose icon image": "Elegir imagen de icono", - "Choose logo image": "Elegir imagen del logotipo", - "Choose the submit action you want to use by clicking on it in the form*": "Elija la acción de enviar que desea usar haciendo clic en ella en el formulario*", - "Choose whether the button should submit the form": "Elija si el botón debe enviar el formulario", - "City": "Ciudad", - "Claim Task": "Reclamar tarea", - "Claim the Task to continue.": "Reclame la Tarea para continuar.", - "Clear All Fields In This Form": "Borrar Todos Los Campos En Este Formulario", - "Clear Color Selection": "Selección de color claro", - "Clear Draft": "Borrar Borrador", - "Clear Search": "Borrar Búsqueda", - "Clear Task": "Borrar Tarea", - "Clear unsaved filters": "Borrar filtros no guardados", - "Clear": "Borrar", - "Click After to enter how many occurrences to end the timer control": "Haga clic en Después para ingresar el número de ocurrencias para finalizar el control del temporizador", - "Click on the color value to select custom colors.": "Haga clic en el valor de color para seleccionar colores personalizados.", - "Click on the color value to use the color picker.": "Haga clic en el valor del color para usar el selector de color.", - "Click on the link to download the log file. This link will be available until": "Haz clic en el enlace para descargar el archivo de registro. Este enlace estará disponible hasta", - "Click On to select a date": "Haga clic para seleccionar una fecha", - "Click the browse button below to get started": "Haga clic en el botón de búsqueda a continuación para comenzar", - "Client ID": "ID de cliente", - "Client Secret": "Secreto del cliente", - "Clipboard Pasted Succesfully": "Portapapeles pegado correctamente", - "Close": "CERRAR", - "Collapse sidebar": "Colapsar barra lateral", - "Collect a date or date/time": "Recoge una fecha o fecha/hora", - "Collect a multi-line string of text, to allow for extensive, richly formatted responses": "Recopila una cadena de texto de varias líneas, para permitir respuestas extensas y ricamente formateadas", - "Collect a string of text and format it as one of several data types": "Recopilar una cadena de texto y formatearlo como uno de varios tipos de datos", - "Collect an address using Google's location search": "Recopila una dirección utilizando la búsqueda de ubicación de Google", - "Collect files uploaded into the Form": "Recopila los archivos cargados en el Formulario", - "Collect options from a list, as radio butttons or dropdowns": "Recopila opciones de una lista, como botones de radio o desplegables", - "Collection Name": "Nombre de la colección", - "Collection Record Control is not available for Anonymous Web Entry": "El Control de Registro de Colección no está disponible para la Entrada Web Anónima", - "Collection Select": "Selección de la colección", - "Collections": "Colecciones", - "Color": "Color", - "Colspan": "Colspan", - "Column Header": "Encabezado de columna", - "Column not found: ": "Columna no encontrada: ", - "Column Width": "Ancho de columna", - "Column Widths": "Anchos de columnas", - "Column": "Columna", - "Columns": "Columnas", - "Comment": "Comentario", - "Comments Active Tasks": "Tareas activas de comentarios", - "Comments": "Comentarios", - "Commit Changes": "Confirmar cambios", - "Common file types: application/msword, image/gif, image/jpeg, application/pdf, application/vnd.ms-powerpoint, application/vnd.ms-excel, text/plain": "Tipos de archivos comunes: aplicación/msword, imagen/ gif, imagen/ jpeg, aplicación/pdf, aplicación/vnd.ms-powerpoint, aplicación/vnd.ms-excel, texto/plano", - "complete all the necessary fields and select you preferred submit action.": "complete todos los campos necesarios y seleccione su acción de envío preferida.", - "Complete Task": "Finalizar tarea", - "Completed & Form": "Completado & Formulario", - "Completed Tasks": "Tareas terminadas", - "Completed": "Completado", - "COMPLETED": "Completado", - "completed": "completado", - "Conceal": "Ocultar", - "Condition": "Condición", - "Conditional Start Event": "Evento de inicio condicional", - "Config": "Config", - "Configuration data for the script (valid JSON object, variables supported)": "Datos de configuración para el script (objeto JSON válido, variables admitidas)", - "Configuration related to assignments is missing for this field.": "El campo no tiene configuración relacionada con asignaciones.", - "Configuration related to encryption is not found for this field.": "El campo no tiene configuración relacionada con encriptación.", - "Configuration tested successfully.": "La configuración se probó con éxito.", - "Configuration": "Configuración", - "Configure Process": "Configurar procesos", - "Configure Screen": "Configurar pantalla", - "Configure Script": "Configurar script", - "Configure Template": "Configurar plantilla", - "Configure the authenticator app": "Configure the authenticator app", - "Configure": "Configurar", - "Confirm and Save": "Confirmar y guardar", - "Confirm New Password": "Confirmar nueva contraseña", - "Confirm Password": "Confirmar contraseña", - "Confirm": "Confirmar", - "Confirmation": "Confirmación", - "Congratulations": "Felicitaciones", - "Connecting Driver": "Conectando Conductor", - "Connection Type": "Tipo de Conexión", - "Contact Information": "Información de contacto", - "Contact your administrator for more information": "Póngase en contacto con su administrador para obtener más información", - "Contains a number or symbol": "Contiene un número o símbolo", - "Contains an uppercase letter": "Contiene una letra mayúscula", - "Content Fields": "Campos de Contenido", - "Content": "Contenido", - "Continue": "Continuar", - "Control is read only": "El control es solo de lectura", - "Control Not Found": "Control no encontrado", - "Controls": "Controles", - "Converging": "Convergente", - "Copied": "Copiado", - "Copy Bundle Assets": "Copiar activos del paquete", - "Copy Client Secret To Clipboard": "Copiar secreto del cliente al portapapeles", - "Copy Control": "Control de copia", - "Copy Element": "Copiar elemento", - "Copy link": "Copiar enlace", - "Copy Screen": "Copiar pantalla", - "Copy Script": "Copiar script", - "Copy this URL into your Atlassian authorization settings": "Copie esta URL en su configuración de autorización de Atlassian", - "Copy this URL into your Auth0 app settings": "Copie esta URL en su configuración de aplicación de Auth0", - "Copy this URL into your Facebook Login settings": "Copie esta URL en su configuración de inicio de sesión de Facebook", - "Copy this URL into your Google app settings": "Copie esta URL en su configuración de aplicación de Google", - "Copy this URL into your Keycloak app settings": "Copie esta URL en su configuración de aplicación de Keycloak", - "Copy this URL into your Microsoft app settings": "Copie esta URL en su configuración de aplicación de Microsoft", - "Copy this URL into your SAML identity provider settings": "Copie esta URL en su configuración de proveedor de identidad SAML", - "Copy to Clipboard": "Copiar al portapapeles", - "Copy to Latest": "Copiar a la última versión", - "Copy Token To Clipboard": "Copiar token al portapapeles", - "Copy": "Copia", - "Count": "Recuento", - "Country": "País", - "Create a bundle to easily share assets and settings between ProcessMaker instances.": "Crear un paquete para compartir fácilmente activos y configuraciones entre instancias de ProcessMaker.", - "Create a new Process": "Crea un nuevo Proceso", - "Create a Project": "Crea un Proyecto", - "Create An Auth-Client": "Crear un cliente autenticado", - "Create an Inbox Rule Now": "Crea una Regla de Bandeja de Entrada Ahora", - "Create Auth Clients": "Crear clientes de autenticación", - "Create AuthClients": "Crear clientes autenticados", - "Create Bundle": "Crear paquete", - "Create Categories": "Crear categorías", - "Create Category": "Crear categoría", - "Create Comments": "Crear comentarios", - "Create Data Connector": "Crear conector de datos", - "Create Environment Variable": "Crear variable de entorno", - "Create Environment Variables": "Crear variables de entorno", - "Create Files": "Crear archivos", - "Create Group": "Crear grupo", - "Create Groups": "Crear grupos", - "Create List Table": "Crea Tabla de Lista", - "Create New Bundle": "Crear nuevo paquete", - "Create new copies of bundle assets.": "Crear nuevas copias de los activos del paquete.", - "Create new DevLink": "Crear nuevo DevLink", - "Create Notifications": "Crear notificaciones", - "Create Process Categories": "Crear categorías de procesos", - "Create Process Category": "Crear categoría de procesos", - "Create Process": "Crear proceso", - "Create processes from a written description.": "Crea procesos a partir de una descripción escrita.", - "Create Processes": "Crear procesos", - "Create Rule": "Crear Regla", - "Create Screen Categories": "Crear categorías de pantalla", - "Create Screen": "Crear pantalla", - "Create Screens": "Crear pantallas", - "Create Script Categories": "Crear categorías de script", - "Create Script": "Crear script", - "Create Scripts": "Crear scripts", - "Create Signals": "Crear señales", - "Create Task Assignments": "Crear asignaciones de tareas", - "Create Template": "Crear Plantilla", - "Create Translations": "Crear traducciones", - "Create User": "Crear usuario", - "Create Users": "Crear usuarios", - "Create Vocabularies": "Crear Vocabularios", - "Created At": "Creado en", - "Created By": "Creado por", - "Created Date": "Fecha de Creación", - "Created_at": "Creado En", - "Created": "Creado", - "CreatedGroup": "Grupo Creado", - "Creation Date": "Fecha de Creación", - "CSS Selector Name": "Nombre del selector CSS", - "CSS": "CSS", - "Currency": "Moneda", - "Current Documentation": "Documentación Actual", - "Current Local Time": "Hora local actual", - "Current Task": "Tarea Actual", - "Current Version": "Versión actual", - "Currently, you don’t have any processes bookmarked.": "Actualmente, no tienes ningún proceso marcado como favorito.", - "Currently, you don't have any processes created.": "Actualmente, no tienes ningún proceso creado.", - "Custom Colors": "Colores personalizados", - "Custom CSS": "CSS personalizado", - "Custom Dashboard": "Panel Personalizado", - "Custom Favicon": "Favicono personalizado", - "Custom Font": "Fuente personalizada", - "Custom Icon": "Icono personalizado", - "Custom Login Logo": "Logotipo de inicio de sesión personalizado", - "Custom Logo": "Logotipo personalizado", - "Custom": "Personalizado", - "Custom message to display when the panel has no data. Supports HTML and Mustache placeholders": "Mensaje personalizado para mostrar cuando el panel no tiene datos. Soporta HTML y placeholders Mustache", - "Customize UI": "Personalizar UI", - "CustomizeUiUpdated": "Personalizar UI Actualizada", - "Cycle": "Ciclo", - "danger": "peligro", - "Danger": "peligro", - "Dangerous PDF file content": "Contenido de archivo PDF peligroso", - "dark": "oscuro", - "Dark": "oscuro", - "Dashboard configuration was not imported": "La configuración del panel no fue importada", - "Dashboard": "Panel", - "DashboardCreated": "Tablero Creado", - "DashboardDeleted": "Tablero Eliminado", - "Dashboards": "Tableros de control", - "DashboardUpdated": "Tablero Actualizado", - "Data Association Flow": "Flujo de asociación de datos", - "Data Connector to use": "Conector de datos a utilizar", - "Data Connector": "Conector de datos", - "Data Connectors": "Conectores de datos", - "Data Format": "Formato de datos", - "Data Input": "Entrada de datos", - "Data Mapping": "Asignación de datos", - "Data Name": "Nombre de datos", - "Data Object": "Objeto de datos", - "Data Preview": "Vista previa de datos", - "Data Source": "Fuente de datos", - "Data Sources Package not installed.": "Paquete de fuentes de datos no instalado.", - "Data Store": "Almacenamiento de datos", - "Data to pass to the Data Connector (valid JSON object, variables supported)": "Datos que debe pasar al conector de datos (objeto JSON válido, variables admitidas)", - "Data to pass to the script (valid JSON object, variables supported)": "Datos que debe pasar al script (objeto JSON válido, variables admitidas)", - "Data Type": "Tipo de dato", - "Data_source_category": "Categoría de Fuente de Datos", - "Data": "Datos", - "Database connection failed. Check your database configuration and try again.": "Falló la conexión de la base de datos. Verifique la configuración de su base de datos y vuelva a intentarlo.", - "Date Format": "Formato de fecha", - "Date Picker": "Selector de fechas", - "Date": "Fecha", - "Date/Time": "Fecha/hora", - "Datetime": "Fecha y hora", - "day": "día", - "Deactivation Date": "Fecha de Desactivación", - "Deactivation date": "Fecha de desactivación", - "Debug Mode": "Modo de Depuración", - "Debugger": "Depurador", - "Decimal": "Decimal", - "Decision Tables": "Tablas de Decisión", - "Declare as global": "Declarar como global", - "Default Assignment": "Asignación por defecto", - "Default Font": "Fuente predeterminada", - "Default Icon": "Icono Predeterminado", - "Default Launchpad Chart": "Gráfico de Lanzamiento Predeterminado", - "Default Launchpad": "Lanzador predeterminado", - "Default Loop Count": "Recuento de bucles predeterminado", - "Default permissions and groups for users created using SSO": "Permisos y grupos predeterminados para usuarios creados mediante SSO", - "Default SSO Login": "Inicio de Sesión SSO Predeterminado", - "Default Value": "valor predeterminado", - "Default": "Predeterminado", - "Define a password to protect your export file.": "Defina una contraseña para proteger su archivo de exportación.", - "Define the filtering criteria": "Defina los criterios de filtrado", - "Delay": "Retrasar", - "Delete Auth Clients": "Eliminar clientes de autenticación", - "Delete Auth-Clients": "Eliminar clientes autenticados", - "Delete Categories": "Eliminar categorías", - "Delete Category": "Eliminar categoría", - "Delete Comments": "Eliminar comentarios", - "Delete Confirmation": "Confirmación de eliminación", - "Delete Control": "Eliminar control", - "Delete Environment Variables": "Eliminar variables de entorno", - "Delete Files": "Eliminar archivos", - "Delete Groups": "Eliminar grupos", - "Delete Notifications": "Eliminar notificaciones", - "Delete Page": "Eliminar página", - "Delete Process Categories": "Borrar las categorías de proceso", - "Delete Record": "Eliminar registro", - "Delete Screen Categories": "Eliminar categorías de pantalla", - "Delete Screens": "Eliminar pantallas", - "Delete Script Categories": "Eliminar categorías de script", - "Delete Scripts": "Eliminar scripts", - "Delete Signals": "Eliminar señales", - "Delete Task Assignments": "Eliminar asignaciones de tareas", - "Delete Template": "Eliminar plantilla", - "Delete this embed media?": "¿Eliminar este medio incrustado?", - "Delete Token": "Eliminar token", - "Delete Translations": "Eliminar traducciones", - "Delete Users": "Eliminar usuarios", - "Delete Version History": "Eliminar el historial de versiones", - "Delete Vocabularies": "Eliminar Vocabularios", - "Delete_at": "Eliminar En", - "Delete": "Eliminar", - "Deleted User Found": "Usuario eliminado encontrado", - "Deleted User": "Usuario eliminado", - "Deleted Users": "Usuarios eliminados", - "Deleted_at": "Eliminado En", - "Departments To Import": "Departamentos a importar", - "Describe your process. Our AI will build the model for you. Use it immediately or tweak it as needed.": "Describe tu proceso. Nuestra IA construirá el modelo para ti. Úsalo inmediatamente o ajústalo según sea necesario.", - "Description": "Descripción", - "Design Screen": "Pantalla de diseño", - "Design": "Diseño", - "Designer": "Diseñador", - "Destination Screen": "Pantalla de destino", - "Destination": "Destino", - "Details": "Detalles", - "Determine the URL where the request will end": "Determinar la URL donde terminará la solicitud", - "Direction": "Dirección", - "Directs Task assignee to the next assigned Task": "Dirige al destinatario de la tarea a la siguiente tarea asignada", - "Disabled": "Deshabilitado", - "Disables auto translate and manually translate screen content.": "Deshabilita la traducción automática y traduce manualmente el contenido de la pantalla.", - "Dismiss Alert": "Descartar alarma", - "Dismiss All": "Descartar todo", - "Dismiss": "Descartar", - "Display contents of docker file that will be prepended to your customizations below.": "Visualice a continuación el contenido del archivo docker que se antepondrá a sus personalizaciones.", - "Display Next Assigned Task to Task Assignee": "Mostrar la siguiente tarea asignada al destinatario de la tarea", - "Display Options": "Opciones de visualización", - "display": "mostrar", - "Display": "mostrar", - "Distribute Horizontally": "Distribuir horizontalmente", - "Distribute Vertically": "Distribuir verticalmente", - "Diverging": "Divergente", - "Do you want to delete the tab {{name}}?": "¿Quieres eliminar la pestaña {{name}}?", - "Do you want to delete this image?": "¿Quieres eliminar esta imagen?", - "Do you want to delete this rule?": "¿Quieres eliminar esta regla?", - "Docker file": "Archivo docker", - "Docker not found.": "Docker no encontrado.", - "Document Type": "Tipo de Documento", - "Document with AI": "Documento con AI", - "Documentation": "Documentación", - "Documenting...": "Documentando...", - "Double": "Doble", - "Download a process model and its associated assets.": "Descarga un modelo de proceso y sus activos asociados", - "Download all related assets.": "Descarga todos los activos relacionados.", - "Download BPMN": "Descargar BPMN", - "Download button for {{fileName}} will appear here.": "El botón de descarga para {{fileName}} aparecerá aquí.", - "Download Document": "Descargar Documento", - "Download Name": "Nombre de descarga", - "Download the ": "Descarga el ", - "Download XML": "Descargar XML", - "Download": "Descargar", - "Downloading bundle from remote instance": "Descargando paquete desde la instancia remota", - "Downloading files is not available.": "La descarga de archivos no está disponible.", - "Drafts": "Borradores", - "Drag an element here": "Arrastre un elemento aquí", - "Drag file here": "Arrastra el archivo aquí", - "Drag or click here": "Arrastra o haz clic aquí", - "Drop a file here to upload or": "Coloque un archivo aquí para cargar o", - "Dropdown/Multiselect": "Desplegable/multiselección", - "Due date": "Fecha de vencimiento", - "DUE DATE": "Fecha de vencimiento", - "Due Date": "Fecha de Vencimiento", - "Due In": "Vence en", - "Due": "Vence", - "due": "vencimiento", - "DUE": "VENCIMIENTO", - "Duplicate": "Duplicar", - "Duration": "Duración", - "easier than ever": "más fácil que nunca", - "Edit {{user}} Profile": "Editar el perfil de {{user}}", - "Edit as JSON": "Editar como JSON", - "Edit Auth Client": "Editar cliente de autenticación", - "Edit Auth Clients": "Editar clientes autenticados", - "Edit Bundle": "Editar paquete", - "Edit Categories": "Editar categorías", - "Edit Category": "Editar categoría", - "Edit Comments": "Editar comentarios", - "Edit Data": "Editar datos", - "Edit DevLink": "Editar DevLink", - "Edit Environment Variable": "Editar variable de entorno", - "Edit Environment Variables": "Editar variables de entorno", - "Edit Field Security": "Editar seguridad de campo", - "Edit Files": "Editar archivos", - "Edit Group": "Editar grupo", - "Edit Groups": "Editar grupos", - "Edit in Launchpad": "Editar en Launchpad", - "Edit Launchpad": "Editar Launchpad", - "Edit Notifications": "Editar notificaciones", - "Edit Option": "Editar opción", - "Edit Page Title": "Editar título de página", - "Edit Page": "Editar página", - "Edit Process Categories": "Editar categorías de procesos", - "Edit Process Category": "Editar categoría de procesos", - "Edit Process": "Editar proceso", - "Edit Processes": "Editar procesos", - "Edit Profile": "Editar perfil", - "Edit Record": "Editar registro", - "Edit Request Data": "Editar datos de solicitud", - "Edit Saved Searches": "Editar búsquedas guardadas", - "Edit Screen Categories": "Editar categorías de pantalla", - "Edit Screen": "Editar pantalla", - "Edit Screens": "Editar pantallas", - "Edit Script Categories": "Editar categorías de script", - "Edit Script": "Editar script", - "Edit Scripts": "Editar scripts", - "Edit Signals": "Editar señales", - "Edit Task Assignments": "Editar asignaciones de tareas", - "Edit Task Data": "Editar datos de tareas", - "Edit Task": "Editar tarea", - "Edit Template": "Editar plantilla", - "Edit Translations": "Editar traducciones", - "Edit Users": "Editar usuarios", - "Edit Version History": "Editar el historial de versiones", - "Edit Vocabularies": "Editar Vocabularios", - "Edit": "Editar", - "Editable?": "¿Es editable?", - "Editor": "Editor", - "Element Background color": "Color de fondo del elemento", - "Element Conversion": "Conversión de elementos", - "Element Destination": "Destino del elemento", - "Element has disallowed type": "El elemento es de un tipo no permitido", - "Element is missing label/name": "Al elemento le falta etiqueta/nombre", - "Element is not connected": "El elemento no está conectado", - "Element": "Elemento", - "Email Address": "Dirección de correo electrónico", - "Email": "Correo electrónico", - "Embed Media": "Incrustar Medios", - "Embed URL": "Incrustar URL", - "Empty": "Vacío", - "Empty State Message": "Mensaje de estado vacío", - "Enable Authorization Code Grant": "Habilitar asignación de código de autorización", - "Enable Notifications": "Habilitar Notificaciones", - "Enable Password Grant": "Habilitar asignación de contraseña", - "Enable Personal Access Tokens": "Habilitar tokens de acceso personal", - "Enable Webhook Access": "Habilitar acceso a webhook", - "Enable": "Habilitar", - "Enabled": "Habilitado", - "Encrypted": "Encriptado", - "Encryption is not enabled for this field.": "La encriptación no se encuentra habilitada para este campo.", - "Encryption Type": "Tipo de Cifrado", - "End date": "Fecha de finalización", - "End Event": "Evento de finalización", - "End Point": "Punto de conexión", - "End": "Fin", - "Endpoint to populate select": "Punto de conexión para rellenar la selección", - "Endpoint": "Punto de conexión", - "Endpoints": "Puntos finales", - "Ends": "Finalización", - "English (US)": "Inglés (EE. UU.)", - "Enhance security with an additional authentication step for user verification.": "Mejorar la seguridad con un paso adicional de autenticación para la verificación del usuario.", - "Enter additional properties that will be available for users": "Ingrese propiedades adicionales que estarán disponibles para los usuarios", - "Enter comma-separated values as an array.": "Ingrese valores separados por comas como un arreglo.", - "Enter footer HTML to display on the login page.": "Ingrese el HTML del pie de página que se mostrará en la página de inicio de sesión.", - "Enter form data": "Ingrese datos del formulario", - "Enter how many seconds the Script runs before timing out (0 is unlimited).": "Ingrese cuántos segundos se deben permitir para que se ejecute el script antes de que se agote el tiempo de espera (0 es ilimitado).", - "Enter how ProcessMaker user properties should be mapped to SAML attributes": "Ingrese cómo las propiedades de usuario de ProcessMaker deben ser mapeadas a los atributos SAML", - "Enter Password": "Ingresar la contraseña", - "Enter Security Code": "Enter Security Code", - "Enter the address of your DocuSign server": "Ingrese la dirección de su servidor DocuSign", - "Enter the address of your ProcessMaker IDP server": "Ingrese la dirección de su servidor IDP de ProcessMaker", - "Enter the alt text that should accompany the logos and icon.": "Ingrese el texto alternativo que debe acompañar a los logotipos y el icono.", - "Enter the app ID from your Facebook app settings page": "Ingrese el ID de aplicación desde su página de configuración de aplicación de Facebook", - "Enter the app secret from your Facebook app settings page": "Ingrese el secreto de aplicación desde su página de configuración de aplicación de Facebook", - "Enter the base distinguished name to use when connecting to this LDAP server": "Ingrese el nombre distinguido base para usar al conectarse a este servidor LDAP", - "Enter the base URL of your Keycloak server": "Ingrese la URL base de su servidor Keycloak", - "Enter the client ID from your Atlassian identity provider": "Ingrese el ID de cliente de su proveedor de identidad Atlassian", - "Enter the client ID from your Auth0 app settings": "Ingrese el ID de cliente desde su configuración de aplicación Auth0", - "Enter the client ID from your Google identity provider": "Ingrese el ID de cliente de su proveedor de identidad Google", - "Enter the client ID from your Keycloak identity provider": "Ingrese el ID de cliente de su proveedor de identidad Keycloak", - "Enter the client ID from your Microsoft identity provider": "Ingrese el ID de cliente de su proveedor de identidad Microsoft", - "Enter the Client ID provided from the external applications configuration.": "Ingrese el ID de Cliente proporcionado desde la configuración de aplicaciones externas.", - "Enter the client secret from your Atlassian identity provider": "Ingrese el secreto de cliente de su proveedor de identidad Atlassian", - "Enter the client secret from your Auth0 app settings": "Ingrese el secreto de cliente desde su configuración de aplicación Auth0", - "Enter the client secret from your Google identity provider": "Ingrese el secreto de cliente de su proveedor de identidad Google", - "Enter the client secret from your Keycloak identity provider": "Ingrese el secreto de cliente de su proveedor de identidad Keycloak", - "Enter the client secret from your Microsoft identity provider": "Ingrese el secreto de cliente de su proveedor de identidad Microsoft", - "Enter the Client Secret provided from the external application configuration.": "Ingrese el Secreto de Cliente proporcionado desde la configuración de aplicación externa.", - "Enter the destination...": "Introduce el destino...", - "Enter the document type": "Ingrese el tipo de documento", - "Enter the domain from your Auth0 app settings": "Ingrese el dominio desde su configuración de aplicación Auth0", - "Enter the endpoint URL from your SAML identity provider": "Ingrese la URL del punto de conexión de su proveedor de identidad SAML", - "Enter the error name that is unique from all other elements in the diagram": "Ingresar el nombre de error que es único de todos los demás elementos en el diagrama", - "Enter the expression that describes the workflow condition": "Ingrese la expresión que describe la condición del flujo de trabajo", - "Enter the expression to evaluate Task assignment": "Ingresar la expresión para evaluar la asignación de tarea", - "Enter the hours until this Task is overdue": "Ingresar las horas antes de que esta tarea esté atrasada", - "Enter the id that is unique from all other elements in the diagram": "Ingresar la ID que es única de todos los demás elementos en el diagrama", - "Enter the integration key from ProcessMaker IDP": "Ingrese la clave de integración de ProcessMaker IDP", - "Enter the identifier URL from your SAML identity provider": "Ingrese la URL identificadora de su proveedor de identidad SAML", - "Enter the IMAP server address (for example: imap.example.com).": "Ingrese la dirección del servidor IMAP (por ejemplo: imap.example.com).", - "Enter the integration key from DocuSign": "Ingrese la clave de integración de DocuSign", - "Enter the integration key from Plaid": "Ingrese la clave de integración de Plaid", - "Enter the IP address or hostname of the LDAP server": "Ingrese la dirección IP o nombre de host del servidor LDAP", - "Enter the JSON to configure the Script": "Ingresar el JSON para configurar el script", - "Enter the LDAP object class used to identify groups": "Ingrese la clase de objeto LDAP utilizada para identificar grupos", - "Enter the LDAP object class used to identify users": "Ingrese la clase de objeto LDAP utilizada para identificar usuarios", - "Enter the LDAP parameter used to identify groups": "Ingrese el parámetro LDAP utilizado para identificar grupos", - "Enter the LDAP parameter used to identify users": "Ingrese el parámetro LDAP utilizado para identificar usuarios", - "Enter the message name that is unique from all other elements in the diagram": "Ingresar el nombre del mensaje que es único de todos los demás elementos en el diagrama", - "Enter the name of the PM Block author.": "Ingrese el nombre del autor del PM Block.", - "Enter the name of this element": "Ingresar el nombre de este elemento", - "Enter the number of users that will be imported simultaneously": "Ingrese el número de usuarios que serán importados simultáneamente", - "Enter the Organization name.": "Ingrese el nombre de la Organización.", - "Enter the password to use when connecting to LDAP": "Ingrese la contraseña a usar cuando se conecte a LDAP", - "Enter the password used to authenticate with your IMAP server.": "Ingrese la contraseña utilizada para autenticarse con su servidor IMAP.", - "Enter the path to the IMAP folder you'd like to check (for example: INBOX).": "Ingrese la ruta a la carpeta IMAP que desea verificar (por ejemplo: INBOX).", - "Enter the port used on the LDAP server": "Ingrese el puerto utilizado en el servidor LDAP", - "Enter the port used to connect to your IMAP server (for example: 993).": "Ingrese el puerto utilizado para conectarse a su servidor IMAP (por ejemplo: 993).", - "Enter the property name from the Request data variable that displays to the user on the screen.": "Ingrese el nombre de la propiedad de la Variable de datos de la solicitud que se muestra al usuario en la pantalla.", - "Enter the property name from the Request data variable that will be passed as the value when selected.": "Ingrese el nombre de la propiedad de la variable de datos de la solicitud que se pasará como valor cuando se seleccione.", - "Enter the public certificate from your SAML identity provider": "Ingrese el certificado público de su proveedor de identidad SAML", - "Enter the realm name from your Keycloak server": "Ingrese el nombre del reino de su servidor Keycloak", - "Enter the request variable that will store the signal payload": "Ingrese la variable de solicitud que almacenará la carga útil de la señal", - "Enter the secret key from DocuSign": "Ingrese la clave secreta de DocuSign", - "Enter the secret key from Plaid": "Ingrese la clave secreta de Plaid", - "Enter the secret key from ProcessMaker IDP": "Ingrese la clave secreta de ProcessMaker IDP", - "Enter the security code from :methods. If incorrect, please retry with the latest code provided.": "Enter the security code from :methods. If incorrect, please retry with the latest code provided.", - "Enter the single logout URL from your SAML identity provider": "Ingrese la URL de cierre de sesión único de su proveedor de identidad SAML", - "Enter the Tenant ID.": "Ingrese el ID del Inquilino.", - "Enter the timezone that will be used for new users.": "Ingrese la zona horaria que se utilizará para nuevos usuarios.", - "Enter the user properties that must match a SAML attribute to login unknown users (defaults to email only)": "Ingrese las propiedades de usuario que deben coincidir con un atributo SAML para iniciar sesión de usuarios desconocidos (por defecto solo correo electrónico)", - "Enter the username to use when connecting to LDAP": "Ingrese el nombre de usuario para usar al conectarse a LDAP", - "Enter the username used to authenticate with your IMAP server.": "Ingrese el nombre de usuario utilizado para autenticarse con su servidor IMAP.", - "Enter the variable containing one or more numeric group IDs": "Ingrese la variable que contiene uno o más ID de grupo numérico", - "Enter the variable containing one or more numeric user IDs": "Ingrese la variable que contiene uno o más ID de usuario numéricos", - "Enter the version of this PM Block.": "Ingrese la versión de este PM Block.", - "Enter your email address and we'll send you a reset link.": "Ingrese su dirección de correo electrónico y le enviaremos un enlace de restablecimiento.", - "Enter your MySQL database name:": "Ingrese el nombre de su base de datos MySQL:", - "Enter your MySQL host:": "Ingrese su host MySQL:", - "Enter your MySQL password (input hidden):": "Ingrese su contraseña de MySQL (entrada oculta):", - "Enter your MySQL port (usually 3306):": "Ingrese su puerto MySQL (generalmente 3306):", - "Enter your MySQL username:": "Ingrese su nombre de usuario MySQL:", - "Enter your name": "Ingresa tu nombre", - "Enter your OAuth2 token URL": "Ingrese su URL de token OAuth2", - "Enter your password": "Ingresa tu contraseña", - "Enter your security code": "Enter your security code", - "Enter your username": "Ingrese su nombre de usuario", - "Environment Variable": "Variable de entorno", - "Environment Variables": "Variables de entorno", - "EnvironmentVariablesCreated": "Variables de Entorno Creadas", - "EnvironmentVariablesDeleted": "Variables de Entorno Eliminadas", - "EnvironmentVariablesUpdated": "Variables de Entorno Actualizadas", - "Error Building Executor. See Output Above.": "Error al ejecutar el ejecutor. Ver Salida más arriba.", - "Error End Event": "Evento de finalización de error", - "Error Message": "Mensaje de error", - "Error Name": "Nombre de error", - "Error": "Error", - "Errors": "Errores", - "Event Based Gateway": "Puerta de enlace basada en eventos", - "Event has multiple event definitions": "El evento tiene múltiples definiciones de eventos", - "Event-based Gateway": "Puerta de enlace basada en eventos", - "Event-Based Gateway": "Puerta de enlace basada en eventos", - "Event": "Evento", - "Exclusive Gateway": "Puerta de enlace exclusiva", - "Execution Error": "Error de Ejecución", - "Execution Log": "Registro de Ejecución", - "Executor Successfully Built. You can now close this window. ": "Ejecutor creado correctamente. Ahora puede cerrar esta ventana. ", - "Existing Array": "Matriz existente", - "Existing assets on this instance will be updated. Warning: this will overwrite any changes you made to the assets on this instance.": "Los activos existentes en esta instancia serán actualizados. Advertencia: esto sobrescribirá cualquier cambio que hayas hecho a los activos en esta instancia.", - "Exit Condition": "Condición de salida", - "Expand Editor": "Expandir el editor", - "Expand sidebar": "Expandir barra lateral", - "Expires At": "Vence el", - "Explain": "Explicar", - "Export Process": "Exportar proceso", - "Export Processes": "Exportar procesos", - "Export Screen": "Exportar pantalla", - "Export Screens": "Exportar pantallas", - "Export Template": "Exportar plantilla", - "Export": "Exportar", - "export": "exportar", - "Expression to evaluate condition": "Expresión para evaluar condición", - "Expression to evaluate. Mustache syntax supported.": "Expresión para evaluar. Sintaxis de llave doble compatible.", - "Expression": "Expresión", - "Expressions are evaluated top to bottom": "Las expresiones se evalúan de arriba hacia abajo", - "Expressions": "Expresiones", - "Extended Properties": "Propiedades Extendidas", - "External Integrations": "Integraciones Externas", - "External URL": "URL Externa", - "F": "V", - "Failed after :num total attempts": "Fallo después de :num intentos totales", - "Failed to connect to MySQL database. Ensure the database exists. Check your credentials and try again.": "Error al conectarse a la base de datos MySQL. Asegúrese de que la base de datos existe. Verifique sus credenciales y vuelva a intentarlo.", - "Failed to evaluate expression. :error": "Error al evaluar la expresión. :error", - "Fax": "Fax", - "FEEL expression": "Expresión FEEL", - "FEEL Expression": "Expresión FEEL", - "FEEL Syntax": "Sintaxis de FEEL", - "Field Label": "Etiqueta de campo", - "Field must be accepted": "El campo debe ser aceptado", - "Field Name": "Nombre del campo", - "Field Type": "Tipo de campo", - "Field Value": "Valor de campo", - "Field:": "Campo:", - "Field": "Campo", - "Fields List": "Lista de campos", - "File Accepted": "Archivo aceptado", - "File Access": "Acceso a archivos", - "File Download": "Descarga de archivo", - "File ID does not exist": "El ID del archivo no existe", - "File Manager": "Administrador de archivos", - "File Name": "Nombre de archivo", - "File not allowed.": "Archivo no permitido", - "File Upload": "Carga de archivo", - "File uploads are unavailable in preview mode.": "Las cargas de archivos no están disponibles en modo de vista previa.", - "File uplodaded": "Archivo cargado", - "File_name": "Nombre del Archivo", - "Files (API)": "Archivos (API)", - "Files": "Archivos", - "FilesCreated": "Archivos Creados", - "FilesDeleted": "Archivos Eliminados", - "FilesUpdated": "Archivos Actualizados", - "Filter by Type": "Filtrar por Tipo", - "Filter Controls": "Controles de filtro", - "Filter the column:": "Filtrar la columna:", - "Filter the tasks for this rule": "Filtrar las tareas para esta regla", - "Filter": "Filtrar", - "Finding Cases available to you...": "Buscando solicitudes disponibles para usted...", - "First Name": "Nombre de pila", - "Flow completed": "Flujo completado", - "Flow in loop": "Flujo en bucle", - "Flow not completed": "Flujo no completado", - "Flow splits implicitly": "El flujo se divide implícitamente", - "Flow Variable": "Variable de flujo", - "FlowGenies": "FlowGenies", - "FolderCreated": "Carpeta Creada", - "FolderUpdated": "Carpeta Actualizada", - "Font Size": "Tamaño de fuente", - "Font Weight": "Peso de la fuente", - "Font": "Fuente", - "For a rule with no end date, leave the field empty": "Para una regla sin fecha de finalización, deje el campo vacío", - "For Compensation": "Para compensación", - "For example": "Por ejemplo", - "For security purposes, this field will always appear empty": "Por razones de seguridad, este campo siempre aparecerá vacío", - "Forgot Password?": "¿Olvidó su contraseña?", - "Forgot Your Password?": "¿Olvidó su contraseña?", - "Form Data": "Devolución de llamada", - "Form Task": "Tarea de formulario", - "Form": "Formulario", - "Format content in a table structure and allow for adding rows": "Formatea el contenido en una estructura de tabla y permite agregar filas", - "Format content in a table structure": "Formatear contenido en una estructura de tabla", - "Formats: PNG, JPG. 2 MB": "Formatos: PNG, JPG. 2 MB", - "Forms": "Formularios", - "Formula:": "Fórmula:", - "Formula": "Fórmula", - "Full Name": "Nombre completo", - "Full": "Completo", - "Gateway :flow_label": "Puerta de enlace :flow_label", - "Gateway forks and joins": "La puerta de enlace se bifurca y une", - "Gateway": "Puerta de enlace", - "General Information": "Información general", - "Generate Documentation from Scratch": "Generar Documentación desde Cero", - "Generate documentation with AI": "Generar documentación con IA", - "Generate Documentation": "Generar Documentación", - "Generate from AI": "Generar desde AI", - "Generate from Text": "Generar desde Texto", - "Generate New Token": "Generar nuevo token", - "Generate single fields or entire forms with our generative assistant": "Genera campos individuales o formularios completos con nuestro asistente generativo", - "Generated Token": "Token generado", - "Get Help": "Obtener ayuda", - "Get options from this variable. Must be an array.": "Obtener opciones de esta variable. Debe ser una matriz.", - "Give this rule a name *": "Dale un nombre a esta regla *", - "global": "global", - "Google Authenticator": "Google Authenticator", - "Google Places": "Google Places", - "Got it!": "¡Lo tengo!", - "Group Class Identifier": "Identificador de Clase de Grupo", - "Group Details": "Detalles del grupo", - "Group Identifier": "Identificador de Grupo", - "Group Manager": "Administrador de grupo", - "Group Members": "Miembros del grupo", - "Group name must be unique": "El nombre del grupo debe ser único", - "Group Permissions Updated Successfully": "Permisos de grupo actualizados correctamente", - "Group Permissions": "Permisos de grupo", - "group": "Grupo", - "Group": "Grupo", - "GroupDeleted": "Grupo Eliminado", - "GroupMembersUpdated": "Miembros del Grupo Actualizados", - "Groups To Import": "Groups a importar", - "Groups": "Grupos", - "Guided Templates": "Plantillas Guiadas", - "Half": "Medio", - "Have you tried the new AI Assistant?": "¿Has probado el nuevo Asistente de IA?", - "Headers": "Encabezados", - "Height": "Altura", - "Hello!": "¡Hola!", - "Help text is meant to provide additional guidance on the field's value": "El texto de ayuda está destinado a proporcionar orientación adicional sobre el valor del campo", - "Help Text": "Texto de ayuda", - "Help": "Ayuda", - "Helper Text": "Texto auxiliar", - "Here you can personalize how your process will be shown in the process browser": "Aquí puedes personalizar cómo se mostrará tu proceso en el navegador de procesos", - "Hide Details": "Ocultar detalles", - "Hide Menus": "Ocultar menús", - "Hide Mini-Map": "Ocultar minimapa", - "Hide": "Ocultar", - "History": "Historia", - "Home": "Hogar", - "Homepage": "Página de inicio", - "Horizontal alignment of the text": "Alineación horizontal del texto", - "Host URL": "URL del anfitrión", - "hour": "hora", - "How many seconds the script should be allowed to run (0 is unlimited).": "Cuántos segundos se deben permitir que se ejecute el script (0 es ilimitado).", - "HTML, Mustache support": "HTML, compatibilidad con llaves dobles", - "Icon": "Icono", - "ID": "ID", - "Id": "Id", - "Identifier": "Identificador", - "If no evaluations are true": "Si ninguna evaluación es verdadera", - "If the expression evaluates to true, create or update the following variable": "Si la expresión se evalúa como verdadera, crear o actualizar la siguiente variable", - "If the FEEL Expression evaluates to true then": "Si la expresión FEEL se evalúa como verdadera entonces", - "If you believe this is an error, please contact the system administrator or support team for assistance.": "Si cree que esto es un error, póngase en contacto con el administrador del sistema o el equipo de soporte para obtener ayuda.", - "If you did not request a password reset, please call us.": "Si no solicitó un restablecimiento de contraseña, llámenos.", - "If you do, you won’t be able to recover the Calc configuration.": "Si lo hace, no podrá recuperar la configuración de Calc.", - "If you want to establish an automatic submit for this rule,": "Si desea establecer un envío automático para esta regla,", - "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "Si tiene problemas para hacer clic en el botón \":actionText\", copie y pegue la siguiente URL\nen su navegador web:", - "Image height": "Altura de la imagen", - "Image id": "Id de imagen", - "Image name": "Nombre de imagen", - "Image not valid, try another": "Imagen no válida, intenta otra", - "Image types accepted: .gif, .jpg, .jpeg, .png": "Tipos de imagen aceptados: .gif, .jpg, .jpeg, .png", - "image width": "ancho de la imagen", - "Image": "Imagen", - "Images for carousel": "Imágenes para carrusel", - "IMAP Authentication Method": "Método de Autenticación IMAP", - "IMAP Password": "Contraseña IMAP", - "IMAP Path": "Ruta IMAP", - "IMAP Polling Interval": "Intervalo de Sondeo IMAP", - "IMAP Port": "Puerto IMAP", - "IMAP Server": "Servidor IMAP", - "IMAP Username": "Nombre de Usuario IMAP", - "Import a PI Process": "Importar un PI Process", - "Import a Process and its associated assets into this ProcessMaker environment": "Importe un proceso y sus activos asociados a este entorno de ProcessMaker", - "Import a process from Process Intelligence to this ProcessMaker environment": "Importar un proceso desde Process Intelligence a este entorno de ProcessMaker", - "Import a Process Template and its associated assets into this ProcessMaker environment": "Importe una plantilla de proceso y sus activos asociados a este entorno de ProcessMaker", - "Import all assets from the uploaded package.": "Importar todos los activos del paquete subido.", - "Import As New": "Importar como nuevo", - "Import Process Template": "Importar plantilla de proceso", - "Import Process": "Importar proceso", - "Import Processes": "Importar procesos", - "Import Screen": "Importar pantalla", - "Import Screens": "Importar pantallas", - "Import": "Importar", - "import": "importar", - "Imported {{- subject }}": "Importado {{- subject }}", - "Importing": "Importando", - "In addition to the process manager, these users and groups will have permission to reassign any task in this process, regardless of the \"Allow Reassignment\" task setting.": "Además del gestor de procesos, estos usuarios y grupos tendrán permiso para reasignar cualquier tarea en este proceso, independientemente de la configuración de tarea \"Allow Reassignment\".", - "In Progress": "En proceso", - "In": "en", - "Inactive": "inactivo", - "Inbox Rules act as your personal task manager. You tell them what to look for, and they take care of things automatically.": "Las reglas de la bandeja de entrada actúan como tu administrador de tareas personal. Les dices qué buscar, y se encargan de las cosas automáticamente.", - "Inbox Rules act as your personal task manager. You tell them what to look for, and they take care of things automatically.": "Las reglas de la bandeja de entrada actúan como tu administrador de tareas personal. Les indicas qué buscar, y ellos se encargan de las cosas automáticamente.", - "Inbox Rules act as your personal task manager. You tell them what to look for, and they": "Las Reglas del Buzón actúan como tu administrador personal de tareas. Les indicas qué buscar, y ellos", - "Inbox rules empty": "Reglas de la bandeja de entrada vacías", - "Inbox Rules": "Reglas de Bandeja de Entrada", - "Inbox": "Bandeja de entrada", - "Include all elements related to this process in your export file.": "Incluye todos los elementos relacionados con este proceso en tu archivo de exportación.", - "Inclusive Gateway": "Puerta de enlace inclusiva", - "Incoming flows do not join": "Los flujos entrantes no se unen", - "Incomplete import of": "Importación incompleta de", - "Indexed Search": "Búsqueda indexada", - "info": "información", - "Info": "información", - "Information form": "Formulario de información", - "Information": "Información", - "initial": "inicial", - "Initializing": "Inicializando", - "Initially Checked?": "¿Revisado inicialmente?", - "Input Data": "Ingresar datos", - "Input Fields": "Campos de Entrada", - "input": "entrada", - "Inspector": "Inspector", - "Installation Progress": "Progreso de la Instalación", - "Installer completed. Consult ProcessMaker documentation on how to configure email, jobs and notifications.": "Instalador completado. Consulte la documentación de ProcessMaker sobre cómo configurar el correo electrónico, los trabajos y las notificaciones.", - "Installing ProcessMaker database, OAuth SSL keys and configuration file.": "Instalando la base de datos de ProcessMaker, claves SSL OAuth y el archivo de configuración.", - "Instance URL": "URL de la instancia", - "Integer": "Entero", - "Integrate with the Plaid banking service": "Integrarse con el servicio bancario de Plaid", - "Intelligent Document Processing": "Procesamiento Inteligente de Documentos", - "Intermediate Conditional Catch Event": "Evento de detección condicional intermedio", - "Intermediate Event": "Evento intermedio", - "Intermediate Message Catch Event": "Evento de detección de mensaje intermedio", - "Intermediate Message Throw Event": "Evento de lanzamiento de mensaje intermedio", - "Intermediate Signal Catch Event": "Evento de detección de señal intermedio", - "Intermediate Signal Throw Event": "Evento de lanzamiento de señal intermedio", - "Intermediate Timer Event": "Evento de temporizador intermedio", - "Interrupting": "Interrumpiendo", - "Invalid code.": "Invalid code.", - "Invalid default value": "Valor predeterminado inválido", - "Invalid embed media": "Medios incrustados no válidos", - "Invalid JSON Data Object": "Objeto de datos JSON no válido", - "Invalid phone number. Please verify and update your phone number in your account settings.": "Invalid phone number. Please verify and update your phone number in your account settings.", - "Invalid type": "Tipo inválido", - "Invalid URL": "URL no válida", - "Invalid value": "Valor inválido", - "Invalid variable name": "Nombre de variable no válido", - "IP Address": "Dirección IP", - "IP/Domain whitelist": "Lista blanca de IP/dominio", - "It must be a correct json format": "Debe estar en un formato json correcto", - "It was not possible to connect AWS S3 service. Please contact your Customer Success Manager to use it.": "No fue posible conectar el servicio AWS S3. Por favor, póngase en contacto con su Gerente de Éxito del Cliente para usarlo.", - "items": "artículos", - "Javascript": "javascript", - "Job Title": "Cargo laboral", - "Json Options": "Opciones de Json", - "Justify": "Justificar", - "Key name in the selected object to display to the user in the select list. Leave blank to show the entire selected value.": "Nombre clave en el objeto seleccionado para mostrar al usuario en la lista de selección. Deje en blanco para mostrar todo el valor seleccionado.", - "Key name in the selected object to use as the value of this control. Leave blank to use the entire selected value.": "Nombre clave en el objeto seleccionado para utilizarlo como valor de este control. Deje en blanco para usar todo el valor seleccionado.", - "Key Name": "Nombre clave", - "Key": "Clave", - "Kill existing session": "Kill existing session", - "Label Undefined": "Etiqueta indefinida", - "Label": "Etiqueta", - "Lane Above": "Pista arriba", - "Lane Below": "Pista abajo", - "Lane": "Pista", - "lang-de": "Alemán", - "lang-en": "Inglés", - "lang-es": "Español", - "lang-fr": "Francés", - "Language the translator will translate to.": "Idioma al que el traductor traducirá.", - "Language:": "Idioma:", - "Language": "Idioma", - "Last Login": "Último inicio de sesión", - "Last Modified Date": "Fecha de Última Modificación", - "Last Modified": "Última modificación", - "Last Name": "Apellido", - "Last save: ": "Último guardado: ", - "Last Saved:": "Guardado por última vez:", - "Last_modified": "Última Modificación", - "Launch Screen": "Pantalla de Inicio", - "Launchpad Carousel": "Carrusel de Lanzamiento", - "Launchpad Icon": "Icono de Launchpad", - "Launchpad Settings": "Configuración de Launchpad", - "Leave blank to map all response data": "Dejar en blanco para asignar todos los datos de respuesta", - "Leave empty to continue until exit condition is satisfied": "Dejar vacío para continuar hasta que se cumpla la condición de salida", - "Leave the password blank to keep the current password:": "Deje la contraseña en blanco para mantener la contraseña actual:", - "Left Bottom": "Inferior izquierdo", - "Left Top": "Superior izquierdo", - "Left": "Izquierda", - "light": "claro", - "Light": "claro", - "Line Input": "Entrada de línea", - "Link": "Vínculo", - "Linked Assets": "Activos Vinculados", - "Linked Instances": "Instancias vinculadas", - "Linked": "Vinculado", - "List Endpoints": "Puntos finales de listas", - "List Label": "Etiqueta de lista", - "List Name": "Nombre de lista", - "List of columns to display in the record list": "Lista de columnas para mostrar en la lista de registros", - "List of fields to display in the record list": "Lista de campos para mostrar en la lista de registros", - "List of options available in the radio button group": "Lista de opciones disponibles en el grupo de botones de radio", - "List of options available in the select drop down": "Lista de opciones disponibles en el menú desplegable de selección", - "List Processes": "Enumerar procesos", - "List Table": "Lista de Tabla", - "Listen For Message": "Escuche el mensaje", - "Load a saved search": "Cargar una búsqueda guardada", - "Load an Image": "Cargar una Imagen", - "Loading...": "Cargando...", - "Loading": "Cargando", - "Local Bundles": "Paquetes locales", - "Localization": "Ubicación", - "Lock task assignment to user": "Bloquear asignación de tarea al usuario", - "Lock Task Assignment to User": "Bloquear asignación de tarea al usuario", - "Lock User Assignment": "Bloquear asignación de usuario", - "Log In": "Iniciar sesión", - "Log Out": "Cerrar sesión", - "Log-In & Auth": "Log-In & Auth", - "Log-In Options": "Log-In Options", - "Log": "Registro", - "Logged Event": "Evento registrado", - "Logged Events": "Eventos registrados", - "Login failed": "Login failed", - "Login Information": "Información de inicio de sesión", - "Login Page Footer": "Pie de página de inicio de sesión", - "Login": "Iniciar sesión", - "Logs": "Registros", - "Loop Activity": "Actividad de bucle", - "Loop Mode": "Modo Bucle", - "Loop": "Bucle", - "M": "L", - "Mailer driver": "Controlador de correo", - "Mailgun Domain": "Dominio de Mailgun", - "Mailgun Secret": "Secreto de Mailgun", - "Make sure you copy your access token now. You won't be able to see it again.": "Asegúrese de copiar su token de acceso ahora. No podrá volver a verlo.", - "Make this user a Super Admin": "Convertir a este usuario en superadministrador", - "Manager_id": "ID del Gerente", - "Manual Task": "Tarea manual", - "Manual translation": "Traducción manual", - "Manually Complete Request": "Completar manualmente la tarea", - "Manually reconfigure the dashboard using an existing one in the environment.": "Reconfigure manualmente el panel utilizando uno existente en el entorno.", - "Mark as Priority": "Marcar como Prioridad", - "Max Input": "Entrada máxima", - "Max Length": "longitud máx", - "Max": "Máx", - "Maximum Date": "Fecha máxima", - "Maximum Iterations": "Máximo de iteraciones", - "Maximum length": "Longitud máxima", - "Maximum password length allowed.": "Maximum password length allowed.", - "may contain sensitive information.": "puede contener información sensible.", - "Message End Event": "Evento de finalización de mensaje", - "Message Event Identifier": "Identificador de evento de mensaje", - "Message Flow": "Flujo de mensajes", - "Message ID is required": "El ID de mensaje es obligatorio", - "Message Name is duplicated": "El Nombre de mensaje está duplicado", - "Message Name is required": "El Nombre de mensaje es obligatorio", - "Message Name": "Nombre del mensaje", - "Message reference is required": "Se requiere referencia de mensaje", - "Message Start Event": "Evento de inicio de mensaje", - "Message that will catch this intermediate event": "Mensaje que capturará este evento intermedio", - "Message that will trigger this boundary event": "Mensaje que desencadenará este evento límite", - "Message that will trigger this start event": "Mensaje que desencadenará este evento de inicio", - "Message": "Mensaje", - "Method_of_creation": "Método De Creación", - "Method": "Método", - "Middle": "Al medio", - "Midnight": "Medianoche", - "MIME Type": "Tipo MIME", - "Min Input": "Entrada mínima", - "Min Length": "Largo mínimo", - "Min": "Mín", - "Minimum Date": "Fecha mínima", - "Minimum length": "Longitud minima", - "Minimum of 8 characters in length": "Un mínimo de 8 caracteres", - "Minimum password length allowed.": "Minimum password length allowed.", - "minute": "minuto", - "Modeler": "Modelador", - "Modified By Tasks": "Modificados por tareas", - "Modified": "Modificado", - "month": "mes", - "More Information": "Más información", - "More": "Más", - "Multi Column": "Múltiples columnas", - "Multi-Instance (Parallel)": "Multi-instancia (en paralelo)", - "Multi-Instance (Sequential)": "Multi-instancia (secuencial)", - "Multicolumn / Table": "Columnas múltiples/tabla", - "Must be a positive or negative decimal number": "Debe ser un número decimal positivo o negativo", - "Must be a positive or negative integer": "Debe ser un entero positivo o negativo", - "Must be a valid Date": "Debe ser una Fecha válida", - "Must be a valid email address": "Debe ser una dirección de correo electrónico válida", - "Must be a valid IPv4 address": "Debe ser una dirección IPv4 válida", - "Must be a valid MAC address": "Debe ser una dirección MAC válida", - "Must be a valid URL": "Debe ser una URL válida", - "Must be after {after}": "Debe ser después de {after}", - "Must be before {before}": "Debe ser antes de {before}", - "Must be equal or after {after_or_equal}": "Debe ser igual o después de {after_or_equal}", - "Must be equal or before {before_or_equal}": "Debe ser igual o anterior a {before_or_equal}", - "Must be mustache syntax": "Debe ser sintaxis de bigote", - "Must be same as {field}": "Debe ser igual a {field}", - "Must be unique": "Debe ser único", - "Must have a maximum value of {max}": "Debe tener un valor máximo de {max}", - "Must have a minimum value of {min}": "Debe tener un valor mínimo de {min}", - "Must have a value between {min} and {max}": "Debe tener un valor entre {min} y {max}", - "Must have at least {min}": "Debe tener al menos {min}", - "Must have at most {max}": "Debe tener como máximo {max}", - "My Bookmarks": "Mis Marcadores", - "My cases" :"My casos", - "My Cases": "My Casos", - "My Projects": "My Proyectos", - "My requests": "Mis solicitudes", - "My Requests": "Mis Solicitudes", - "My Tasks": "Mis Tareas", - "Name ID Format": "Formato de ID de Nombre", - "Name must be unique": "El nombre debe ser único", - "Name of the File": "Nombre del Archivo", - "Name of the Task": "Nombre de la Tarea", - "Name of Variable to store the output": "Nombre de variable para almacenar la salida", - "name": "Nombre", - "Name": "Nombre", - "Names must be unique.": "Los nombres deben ser únicos.", - "Navigation": "Navegación", - "Nayra microservice is not available at this moment.": "El microservicio Nayra no está disponible en este momento.", - "Nested Screen": "Pantalla anidada", - "Never": "Nunca", - "New Array of Objects": "Nueva matriz de objetos", - "New Boundary Error Event": "Nuevo evento de error de límite", - "New Boundary Escalation Event": "Nuevo evento de escalación de límite", - "New Boundary Message Event": "Nuevo evento de mensaje de límite", - "New Boundary New Message Event": "Nuevo evento de mensaje de límite", - "New Boundary Timer Event": "Nuevo evento de temporizador de límite", - "New Call Activity": "Actividad de nuevas llamadas", - "New Case": "Nuevo Caso", - "New Checkbox": "Nueva casilla de verificación", - "New Collection Select": "Nueva selección de colección", - "New Collection": "Nueva Colección", - "New Data Connector": "Nuevo Conector de Datos", - "New Date Picker": "Nuevo selector de fecha", - "New Decision Table": "Nueva Tabla de Decisión", - "New Error End Event": "Nuevo evento de finalización de error", - "New Event-Based Gateway": "Nueva puerta de enlace basada en eventos", - "New Exclusive Gateway": "Nueva puerta de enlace exclusiva", - "New File Download": "Nueva descarga de archivo", - "New File Upload": "Nueva carga de archivo", - "New Genie": "Nuevo Genie", - "New Inbox Rule": "Nueva Regla de Bandeja de Entrada", - "New Inclusive Gateway": "Nueva puerta de enlace inclusiva", - "New Input": "Nueva entrada", - "New Intermediate Message Throw Event": "Nuevo evento de lanzamiento de mensaje intermedio", - "New Key": "nueva clave", - "New Manual Task": "Nueva tarea manual", - "New Message End Event": "Nuevo evento de finalización de mensaje", - "New Message Start Event": "Nuevo evento de inicio de mensaje", - "New Option": "Nueva opción", - "New Page Navigation": "Nueva navegación de página", - "New Parallel Gateway": "Nueva puerta de enlace paralela", - "New Password": "Nueva contraseña", - "New Pool": "Nuevo grupo", - "New Process": "Nuevo proceso", - "New Radio Button Group": "Nuevo grupo de botones de radio", - "New Record List": "Nueva lista de registros", - "New Request": "Nueva solicitud", - "New Screen": "Nueva Pantalla", - "New Script Task": "Nueva tarea de script", - "New Script": "Nuevo Guión", - "New Select List": "Nueva lista de selección", - "New Select": "Nueva selección", - "New Sequence Flow": "Nuevo flujo de secuencia", - "New Signal": "Nueva señal", - "New Sub Process": "Nuevo subproceso", - "New Submit": "Nuevo envío", - "New Task": "Nueva tarea", - "New Text Annotation": "Nueva anotación de texto", - "New Text": "Nuevo texto", - "New Textarea": "Nueva área de texto", - "New Token": "Nuevo token", - "New User Default Config": "Configuración Predeterminada de Nuevo Usuario", - "New Value": "Nuevo valor", - "New": "Nuevo", - "Next": "Siguiente", - "No assets to display here yet": "Aún no hay activos para mostrar aquí", - "No Available Columns": "No hay columnas disponibles", - "No bundles of assets to display": "No hay paquetes de activos para mostrar", - "No Case to Start": "No Case to Start", - "No Cases to Show": "No hay casos para mostrar", - "No Data Available": "No hay datos disponibles", - "No data available for this dynamic panel": "No hay datos disponibles para este panel dinámico", - "No Data Found": "Ne se encontraron datos", - "No elements found. Consider changing the search query.": "No se encontraron elementos. Considere cambiar la consulta de búsqueda.", - "No Errors": "Sin errores", - "No files available for download": "No hay archivos disponibles para descarga", - "No Image": "Sin Imagen", - "No items to show.": "No hay casos para mostrar.", - "No items to show": "No hay artículos para mostrar", - "No linked instances of ProcessMaker": "No hay instancias vinculadas de ProcessMaker", - "No Loop Mode": "Modo No bucle", - "No matching categories were found": "No se encontraron categorías coincidentes", - "No new notifications at the moment.": "No hay nuevas notificaciones en este momento.", - "No new tasks at this moment.": "No hay nuevas tareas en este momento.", - "No Notifications Found": "No se encontraron notificaciones", - "No permissions to access this content": "No tiene permisos para acceder a este contenido", - "no problems to report": "sin problemas que reportar", - "No Processes Available": "No hay Procesos Disponibles", - "No relevant data": "No hay datos relevantes", - "No Request Data": "No hay datos de solicitudes", - "No Request to Start": "No hay solicitud para comenzar", - "No Requests to Show": "No hay solicitudes para mostrar", - "No results have been found": "No se han encontrado resultados", - "No results to show": "No hay resultados para mostrar", - "No results.": "No hay resultados.", - "No Results": "No hay resultados", - "No results": "Sin resultados", - "No rules were executed yet": "Aún no se han ejecutado reglas", - "No saved searches available": "No hay búsquedas guardadas disponibles", - "No strings found to translate": "No se encontraron cadenas para traducir", - "No tasks in sight": "No hay tareas a la vista", - "No tasks to show.": "No hay tareas para mostrar.", - "No translations found": "No se encontraron traducciones", - "No user selected": "Ningún usuario seleccionado", - "No validation rule(s)": "Sin regla(s) de validación", - "No variables match your search.": "No se encontraron variables que coincidan con su búsqueda.", - "No variables available. Variables will be available after you add form fields to your screen.": "No hay variables disponibles. Las variables estarán disponibles después de agregar campos de formulario a su pantalla.", - "no warnings to report": "No hay advertencias para informar", - "Node Identifier": "Identificador de nodo", - "Non-array data will result in an error.": "Los datos que no sean de una matriz darán lugar a un error.", - "None": "Ninguna", - "Normal": "Normal", - "Not authorized to update the username and password.": "No autorizado para actualizar el nombre de usuario y la contraseña.", - "Not Authorized": "No autorizado", - "Not available": "No disponible", - "Not found": "No encontrado", - "Not In": "No en", - "Nothing searched yet": "Nada buscado aún", - "Notifications (API)": "Notificaciones (API)", - "Notifications Inbox": "Bandeja de entrada de notificaciones", - "Notifications, {{count}} New Messages": "Notificaciones, {{count}} Nuevos Mensajes", - "Notifications, No New Messages": "Notificaciones, No hay mensajes nuevos", - "Notifications": "Notificaciones", - "Notify Participants": "Notificar a los participantes", - "Notify Process Manager": "Notificar al administrador de procesos", - "Notify Requester": "Notificar al solicitante", - "Number of consecutive unsuccessful login attempts before block the login action momentarily (0 for unlimited).": "Number of consecutive unsuccessful login attempts before block the login action momentarily (0 for unlimited).", - "Number of times to retry. Leave empty to use script default. Set to 0 for no retry attempts. This setting is only used when running a script task in a process.": "Número de veces para reintentar. Deje vacío para usar el valor predeterminado del script. Establezca en 0 para no hacer intentos de reintentar. Esta configuración solo se utiliza al ejecutar una tarea de script en un proceso.", - "Number of times to show the loop. Value must be greater than zero.": "Número de veces que se muestra el bucle. El valor debe ser mayor que cero.", - "Numeric characters": "Numeric characters", - "Object": "Objeto", - "Occurred At": "Ocurrió en", - "occurrences": "instancias", - "of": "de", - "Offer a File download": "Ofrecer una descarga de archivo", - "Office 365 Client ID": "Office 365 Client ID", - "Office 365 Redirect URI": "Office 365 Redirect URI", - "Office 365 Secret": "Office 365 Secret", - "Office 365 Tenant ID": "Office 365 Tenant ID", - "Ok": "Aceptar", - "On": "En", - "Once published, all new requests will use the new process model.": "Una vez publicado, todas las nuevas solicitudes utilizarán el nuevo modelo de proceso.", - "Once rules start running, you can see the results here.": "Una vez que las reglas comiencen a ejecutarse, podrá ver los resultados aquí.", - "One": "Una", - "Only images smaller than 2MB are allowed.": "Solo se permiten imágenes menores de 2MB.", - "Only PNG and JPG extensions are allowed.": "Solo se permiten las extensiones PNG y JPG.", - "Only show named versions": "Sólo mostrar versiones con nombre", - "Only the logged in user can create API tokens": "Solo un usuario con inicio de sesión puede crear tokens de API", - "Oops! No elements found. Consider changing the search query.": "¡Vaya! No se encontraron elementos. Considere cambiar la consulta de búsqueda.", - "Oops!": "¡Uy!", - "Open Case": "Abierto Caso", - "Open Color Palette": "Abrir paleta de colores", - "Open Console": "Abrir consola", - "Open in Modeler": "Abrir en Modeler", - "Open Process": "Abrir proceso", - "Open Request": "Abrir solicitud", - "Open Task": "Abrir tarea", - "open": "abierto", - "Open": "Abrir", - "Operating System": "Sistema operativo", - "option has been moved to the task destination dropdown": "La opción se ha movido al menú desplegable de destino de la tarea.", - "Option Label Shown": "Etiqueta de opción mostrada", - "Options List": "Lista de opciones", - "Options Variable": "Variable de opciones", - "Options": "Opciones", - "or": "o", - "Order in which a user will move focus from one control to another by pressing the Tab key": "Orden en el que un usuario moverá el foco de un control a otro pulsando la tecla Tab", - "organization": "organización", - "Organize and group your content in columns": "Organiza y agrupa tu contenido en columnas", - "Origin": "Origen", - "Out of Office": "Fuera de la oficina", - "OUT_OF_OFFICE": "FUERA DE LA OFICINA", - "Output Data Variable": "Variable de datos de salida", - "Output Variable Name": "Nombre de variable de salida", - "Output Variable Property Mapping": "Asignación de propiedades de variable de salida", - "Output Variable": "Variable de salida", - "Output": "Salida", - "Overdue": "vencido", - "Overview": "Resumen", - "Owner": "Propietario", - "Package installed": "Paquete instalado", - "Packages Installed": "Paquetes instalados", - "Page Name": "Nombre de página", - "Page Navigation": "Navegación de página", - "Page not found - ProcessMaker": "Página no encontrada - ProcessMaker", - "Page": "Página", - "Pagination": "paginación", - "Pan Tool": "Herramienta de Pan", - "Parallel Gateway": "Puerta de enlace paralela", - "Params": "Parámetros", - "Participant": "Participante", - "PARTICIPANTS": "PARTICIPANTES", - "Participants": "Participantes", - "participants": "Participantes", - "Password expiration": "Vencimiento de contraseña", - "Password Grant Client ID": "ID de cliente para otorgamiento de contraseña", - "Password Grant Secret": "Secreto de otorgamiento de contraseña", - "Password must have at least 8 characters.": "La contraseña debe tener al menos 8 caracteres.", - "Password Protect Export": "Proteger Exportación con Contraseña", - "Password protect is required because some assets may have sensitive data.": "Se requiere protección con contraseña porque algunos activos pueden tener datos sensibles.", - "Password Requirements": "Requisitos de la contraseña", - "Password Reset": "Restablecimiento de contraseña", - "Password set by user": "Password set by user", - "Password will expire in the days configured here.": "La contraseña expirará en los días configurados aquí.", - "Password_client": "Cliente de Contraseña", - "Password": "Contraseña", - "Passwords must be at least six characters and match the confirmation.": "Las contraseñas deben tener al menos seis caracteres y deben coincidir con la confirmación.", - "Passwords must contain minimum one numeric character.": "Las contraseñas deben contener al menos un carácter numérico.", - "Passwords must contain minimum one special character.": "Las contraseñas deben contener al menos un carácter especial.", - "Passwords must contain minimum one uppercase character.": "Las contraseñas deben contener al menos una letra mayúscula.", - "passwords.reset": "¡Su contraseña ha sido restablecida!", - "passwords.sent": "¡Le hemos enviado por correo electrónico el enlace para restablecer su contraseña!", - "passwords.token": "Este token de restablecimiento de contraseña no es válido.", - "passwords.user": "No podemos encontrar un usuario con esa dirección de correo electrónico.", - "Pause Start Timer Events": "Pausar eventos de inicio del temporizador", - "Pause Timer Start Events": "Pausar eventos de inicio de temporizador", - "Per page": "Por página", - "per page": "por página", - "Percentage": "porcentaje", - "Permission To Start": "Autorización para comenzar", - "Permissions": "Permisos", - "PermissionUpdated": "Permiso Actualizado", - "Personal_access_client": "Cliente de Acceso Personal", - "Phone": "Teléfono", - "Photo/Video": "Foto/Video", - "Place your controls here.": "Coloca tus controles aquí.", - "Placeholder Text": "Texto de marcador de posición", - "Placeholder": "Marcador de posición", - "Please assign a run script user to: ": "Asigne un usuario de ejecución de scripts a: ", - "Please change your account password": "Cambie la contraseña de su cuenta", - "Please choose the tasks in your inbox that this
new rule should apply to. Use the column filters
to achieve this.": "Por favor, elija las tareas en su bandeja de entrada a las que se debe aplicar esta
nueva regla. Use los filtros de columna
para lograr esto.", - "Please choose the tasks in your inbox that this new rule should apply to. Use the column filters to achieve this.": "Por favor, elija las tareas en su bandeja de entrada a las que debería aplicarse esta nueva regla. Use los filtros de columna para lograr esto.", - "Please contact your administrator to get started.": "Póngase en contacto con su administrador para comenzar.", - "Please enter Tab Name": "Por favor, introduzca el nombre de la pestaña", - "Please log in to continue your work on this page.": "Inicie sesión para continuar trabajando en esta página.", - "Please select a Saved Search": "Por favor seleccione una Búsqueda Guardada", - "Please take a look at it in the 'Rules' section located within your Inbox.": "Por favor, eche un vistazo en la sección 'Reglas' ubicada dentro de su bandeja de entrada.", - "Please use this link when you are not logged into ProcessMaker": "Por favor, use este enlace cuando no haya iniciado sesión en ProcessMaker", - "Please visit the Processes page": "Visite la página Procesos", - "Please wait while the files are generated. The screen will be updated when finished.": "Espere mientras se generan los archivos. La pantalla se actualizará cuando termine.", - "Please wait while your content is loaded": "Espere mientras se carga su contenido", - "Please wait": "Por favor espera", - "PM Block Name": "Nombre del Bloque PM", - "PM Blocks": "Bloques PM", - "Pm_block_category": "Categoría de Bloque PM", - "Pool": "Grupo", - "Position": "Posición", - "Postal Code": "Código postal", - "Powered by ProcessMaker AI": "Desarrollado por ProcessMaker AI", - "Press enter to remove group": "Presione enter para eliminar el grupo", - "Prev": "Ant", - "Preview Desktop": "Vista Previa del Escritorio", - "Preview Mobile": "Vista Previa Móvil", - "Preview Screen was Submitted": "La pantalla de vista previa fue enviada", - "Preview Screen": "Pantalla de vista previa", - "Preview": "Vista previa", - "Previous Task Assignee": "Persona a la que se asignó la tarea anterior", - "primary": "primario", - "Primary": "primario", - "Print": "Imprimir", - "Priority": "Prioridad", - "Problems": "Problemas", - "Process A Translate": "Proceso A Traducir", - "Process Archive": "Archivo de procesos", - "Process Browser": "Navegador de Procesos", - "Process Categories": "Categorías de proceso", - "Process Category": "Categoría de proceso", - "Process Chart": "Diagrama de Proceso", - "Process has multiple blank start events": "El proceso tiene múltiples eventos de inicio en blanco", - "Process Info": "Información del proceso", - "Process Information": "Procesar Información", - "Process is missing end event": "Al proceso le falta el evento de finalización", - "Process is missing start event": "Al proceso le falta el evento de inicio", - "Process Launchpad": "Lanzador de Procesos", - "Process Manager not configured.": "El administrador de procesos no está configurado.", - "Process Manager": "Administrador de procesos", - "Process Owner": "Propietario del proceso", - "Process Name": "Nombre del Proceso", - "Process was successfully imported": "El proceso fue importado exitosamente", - "Process_category_id": "ID de Categoría de Proceso", - "Process_manager": "Administrador de Procesos", - "Process": "Proceso", - "ProcessArchived": "Proceso Archivado", - "ProcessCreated": "Proceso Creado", - "Processes Browser": "Navegador de Procesos", - "Processes Dashboard": "Tablero de procesos", - "processes": "Procesos", - "Processes": "Procesos", - "ProcessMaker AI is currently offline. Please try again later.": "ProcessMaker AI está actualmente fuera de línea. Por favor, inténtelo de nuevo más tarde.", - "ProcessMaker database installed successfully.": "La base de datos de ProcessMaker se instaló correctamente.", - "ProcessMaker does not import Environment Variables or Enterprise Packages. You must manually configure these features.": "ProcessMaker no importa Variables de entorno ni Paquetes empresariales. Debe configurar manualmente estas características.", - "ProcessMaker installation is complete. Please visit the URL in your browser to continue.": "Se ha completado la instalación de ProcessMaker. Visite el URL en su navegador para continuar.", - "ProcessMaker Installer": "Instalador de ProcessMaker", - "ProcessMaker is busy processing your request.": "ProcessMaker está ocupado procesando su solicitud.", - "ProcessMaker Logo": "Logo de ProcessMaker", - "ProcessMaker Modeler": "Modelador de ProcessMaker", - "ProcessMaker Platform": "Plataforma de ProcessMaker", - "ProcessMaker requires a MySQL database created with appropriate credentials.": "ProcessMaker requiere una base de datos MySQL creada con las credenciales adecuadas.", - "ProcessMaker v4.0 Beta 4": "ProcessMaker v4.0 Beta 4", - "ProcessMaker": "ProcessMaker", - "ProcessRestored": "Proceso Restaurado", - "ProcessUpdated": "Proceso Actualizado", - "Profile": "Perfil", - "Projects": "Proyectos", - "Properties to map from the Data Connector into the output variable": "Propiedades para asignar desde el conector de datos a la variable de salida", - "Property already exists": "La propiedad ya existe", - "Property deleted": "Propiedad eliminada", - "Property Edited": "Propiedad editada", - "Property Name": "Nombre de propiedad", - "Property Saved": "Propiedad guardada", - "Property": "Propiedad", - "Provide Values": "Proporcionar valores", - "Provider": "Proveedor", - "Public Certificate": "Certificado Público", - "Publish New Version": "Publicar Nueva Versión", - "Publish PM Block": "Publicar Bloque PM", - "Publish Template": "Publicar plantilla", - "Published": "Publicado", - "Queue Management": "Gestión de cola", - "QueueManagementAccessed": "Acceso a la Gestión de Colas", - "Quick fill Preview": "Vista previa de llenado rápido", - "Quick Fill": "Relleno Rápido", - "Radio Button Group": "Grupo de botones de radio", - "Radio Group": "Grupo de radio", - "Radio/Checkbox Group": "Grupo de casilla de verificación/radio", - "Read Only": "Solo de lectura", - "Reassign to": "Reasignar a", - "Reassign": "Reasignar", - "Reassignment Permission": "Permiso de reasignación", - "Recent Assets from my Projects": "Activos Recientes de mis Proyectos", - "Recent Assets": "Activos Recientes", - "RECENT ASSETS": "Activos Recientes", - "Recent Cases": "Casos Recientes", - "Recent Projects": "Proyectos Recientes", - "Recently searched": "Buscado recientemente", - "Recommended: 1280 x 720 px": "Recomendado: 1280 x 720 px", - "Reconnect": "Volver a conectar", - "Record Form": "Formulario de registro", - "Record List": "Lista de registros", - "Record": "Registro", - "Recurring loop repeats at time interval set below": "El ciclo recurrente se repite en el intervalo de tiempo establecido a continuación", - "Redirect URL": "URL de redireccionamiento", - "Redirect": "Redireccionar", - "redirected to my next assigned task": "redirigido a mi próxima tarea asignada", - "Redo": "Rehacer", - "Reference in Subject Line": "Referencia en Línea de Asunto", - "Refresh": "Refrescar", - "Regards": "Saludos", - "Regenerating CSS Files": "Volviendo a generar archivos CSS", - "Regex Pattern": "Patrón Regex", - "Regex": "Regex", - "Regular Button": "Botón regular", - "Reinstall Bundle": "Reinstalar Bundle", - "Reinstall This Bundle": "Reinstalar Este Paquete", - "Remember me": "Recordarme", - "Remove from clipboard": "Quitar del portapapeles", - "Remove from Group": "Eliminar de este grupo", - "Remove from My Bookmarks": "Eliminar de Mis Marcadores", - "Remove the .env file to perform a new installation.": "Elimine el archivo .env existente para realizar una nueva instalación.", - "Remove": "Eliminar", - "Render HTML from a Variable": "Representar HTML desde variable", - "Render image from a variable name": "Renderizar la imagen a partir de un nombre de variable", - "Render Options As": "Representar opciones como", - "Repeat every": "Repetir cada", - "Repeat on": "Repetir en", - "Report an issue": "Reportar un problema", - "Repository Name": "Nombre del Repositorio", - "Request All": "Todas las solicitudes", - "Request Canceled": "Solicitud cancelada", - "Request Commented": "Solicitud Comentada", - "Request Completed": "Solicitud completada", - "Request Data": "Solicitar datos", - "Request Detail Screen": "Solicitar pantalla de detalle", - "Request Detail": "Solicitar detalle", - "Request Error": "Error de Solicitud", - "Request In Progress": "Solicitud en proceso", - "Request Received!": "¡Solicitud recibida!", - "Request Reset Link": "Solicitar enlace de restablecimiento", - "Request Started": "Solicitud iniciada", - "Request Starter": "Iniciador de solicitud", - "Request Variable Name": "Solicitar nombre de variable", - "Request Variable": "Solicitar variable", - "Request": "Solicitud", - "Requested By": "Solicitado por", - "requester": "solicitante", - "Requester": "Solicitante", - "requesters": "solicitantes", - "Requests In Progress": "Solicitudes en curso", - "Requests of process": "Solicitudes de proceso", - "Requests": "Solicitudes", - "Require Two Step Authentication": "Require Two Step Authentication", - "Required If": "Requerido si", - "Required Unless": "Requerido a menos que", - "Required": "obligatorio", - "Reset Data": "Restablecer Datos", - "Reset Password Notification": "Notificación de restablecimiento de contraseña", - "Reset Password": "Restablecer contraseña", - "Reset Table": "Restablecer Tabla", - "Reset To Default": "Restablecer a predeterminado", - "Reset to initial scale": "Restablecer a escala inicial", - "Reset Translations": "Restablecer traducciones", - "Reset Your Password": "Restablecer su contraseña", - "Reset": "Restablecer", - "Resource": "Recurso", - "Resources": "Recursos", - "Response Body": "Cuerpo de la respuesta", - "Response Mapping": "Mapeo de respuestas", - "Response Variable Name": "Nombre de variable de respuesta", - "Restore User": "Restaurar usuario", - "Restore": "Restaurar", - "Restrict Access From": "Restringir acceso desde", - "Restrict logins made by the same user from the same IP.": "Restringir inicios de sesión realizados por el mismo usuario desde la misma IP.", - "Restrict query results by the repository name.": "Restringir los resultados de la consulta por el nombre del repositorio.", - "Restrict query results by UserLogin.": "Restringir los resultados de la consulta por UserLogin.", - "Restricts logins made by the same user from different devices.": "Restringe los inicios de sesión realizados por el mismo usuario desde diferentes dispositivos.", - "Retry Attempts": "Intentos de Reintentar", - "Retry Wait Time": "Tiempo de Espera para Reintentar", - "Retry_attempts": "Intentos de Reintentar", - "Retry_wait_time": "Tiempo de espera para reintentar", - "Return to Login": "Volver a Inicio de sesión", - "Return to Summary": "Regresar al Resumen", - "Reveal": "Revelar", - "Rich Text Content": "Contenido de texto enriquecido", - "Rich Text": "Texto enriquecido", - "Right Bottom": "Inferior derecho", - "Right Top": "Superior derecho", - "Right": "Derecha", - "Rollback Request": "Solicitud de Reversión", - "Rollback to task": "Revertir a la tarea", - "Rollback": "Reversión", - "Rows": "Filas", - "Rule activated": "Regla activada", - "Rule Behavior": "Comportamiento de Regla", - "Rule Configuration": "Configuración de Regla", - "Rule deactivated": "Regla desactivada", - "Rule Expression": "Expresión de regla", - "Rule successfully created": "Regla creada con éxito", - "Rule successfully updated": "Regla actualizada con éxito", - "Rule": "Regla", - "Rules": "Reglas", - "Run Date": "Fecha de Ejecución", - "Run Script As": "Ejecutar script como", - "Run script": "Ejecutar script", - "Run Simulation": "Ejecutar simulación", - "Run Synchronously": "Correr sincrónicamente", - "Run Watcher on Screen Load": "Ejecutar observador al cargar la pantalla", - "Run_as_user_id": "Ejecutar como ID de usuario", - "Run": "Ejecutar", - "running.": "en ejecución.", - "Running": "Ejecutando", - "S": "D", - "Sa": "S", - "Same": "Igual", - "Sample Input": "Entrada de muestra", - "Sass compile completed": "Compilación Sass terminada", - "Save all assets": "Guardar todos los activos", - "Save And Build": "Guardar y compilar", - "Save and publish": "Guardar y publicar", - "Save And Rebuild": "Guardar y recompilar", - "Save and reuse filled data": "Guardar y reutilizar datos rellenados", - "Save As Draft": "Guardar Como Borrador", - "Save as PM Block": "Guardar como Bloque PM", - "Save as Template": "Guardar como plantilla", - "Save assets mode": "Modo Guardar Activos", - "Save process model only": "Guardar modelo de proceso solamente", - "Save Property": "Guardar propiedad", - "Save Screen": "Guardar pantalla", - "Save Script": "Guardar script", - "Save Versions": "Guardar versiones", - "Save": "Guardar", - "Saved Search": "Búsqueda guardada", - "Scheduled": "Programado", - "Screen Categories": "Categorías de pantalla", - "Screen for Input": "Pantalla de entrada", - "Screen Interstitial": "Intersticial de pantalla", - "Screen Validation": "Validación de pantalla", - "Screen_category_id": "ID de Categoría de Pantalla", - "Screen_category": "Categoría de Pantalla", - "Screen": "Pantalla", - "ScreenCreated": "Pantalla Creada", - "ScreenDeleted": "Pantalla Eliminada", - "Screens": "Pantallas", - "ScreenUpdated": "Pantalla Actualizada", - "Script Config Editor": "Editor de configuración de script", - "Script Configuration": "Configuración de script", - "Script Executor": "Ejecutor de script", - "Script Executors": "Ejecutores de scripts", - "Script failed after :attempts total attempts": "El script falló después de :attempts intentos totales", - "Script Source": "Fuente de script", - "Script Task": "Tarea de script", - "Script_category": "Categoría", - "Script_executor_id": "ID del Ejecutor de Script", - "Script_name": "Nombre del Script", - "Script": "Script", - "ScriptCreated": "Script Creado", - "ScriptDeleted": "Script Eliminado", - "ScriptDuplicated": "Script Duplicado", - "ScriptExecutorCreated": "Creador de Script Ejecutor", - "ScriptExecutorDeleted": "Script Executor Eliminado", - "ScriptExecutorUpdated": "Script Executor Actualizado", - "Scripts": "Scripts", - "ScriptUpdated": "Script Actualizado", - "Search a group": "Buscar en un grupo", - "Search a screen": "Buscar en una pantalla", - "Search a script": "Buscar en un script", - "Search a user": "Buscar en un usuario", - "Search categories and processes": "Buscar categorías y procesos", - "Search Categories": "Categorías de Búsqueda", - "Search faster.": "Busca más rápido.", - "Search here": "Buscar aquí", - "Search Here": "Buscar Aquí", - "Search Processes": "Procesos de Búsqueda", - "Search result": "Resultado de búsqueda", - "Search Templates": "Plantillas de búsqueda", - "Search using natural language or PMQL": "Buscar usando lenguaje natural o PMQL", - "Search...": "Buscar...", - "Search": "Buscar", - "Search variables...": "Buscar variables...", - "secondary": "secundario", - "Secondary": "secundario", - "Seconds to wait before retrying. Leave empty to use script default. Set to 0 for no retry wait time. This setting is only used when running a script task in a process.": "Segundos a esperar antes de volver a intentar. Deje vacío para usar el valor predeterminado del script. Establezca en 0 para no esperar tiempo de reintento. Esta configuración solo se utiliza al ejecutar una tarea de script en un proceso.", - "Security Code": "Security Code", - "Security Configuration": "Configuración de seguridad", - "Security Logs": "Registros de seguridad", - "See All Collections": "Ver Todas las Colecciones", - "See All Data Connectors": "Ver Todos los Conectores de Datos", - "See All Decision Tables": "Ver Todas las Tablas de Decisión", - "See All Processes": "Ver Todos los Procesos", - "See All Screens": "Ver Todas las Pantallas", - "See All Scripts": "Ver Todos los Scripts", - "See this tab on mobile devices": "Ver esta pestaña en dispositivos móviles", - "Select 'Single Value' to use parts of the selected object. Select 'Object' to use the entire selected value.": "Seleccione \"Valor único\" para utilizar partes del objeto seleccionado. Seleccione \"Objeto\" para utilizar todo el valor seleccionado.", - "Select a collection and fill the fields that will be used in the dropdownlist": "Seleccione una colección y complete los campos que se utilizarán en la lista desplegable", - "Select a file": "Seleccionar un archivo", - "Select a language": "Seleccionar idioma", - "Select a Person*": "Seleccione una Persona*", - "Select a previous task to reuse its filled data on the current task.": "Seleccione una tarea anterior para reutilizar sus datos completados en la tarea actual.", - "Select a process below to get started.": "Seleccione un proceso para iniciar su solicitud.", - "Select a saved search above.": "Seleccione una búsqueda guardada arriba.", - "Select a saved search.": "Seleccione una búsqueda guardada.", - "Select a Saved Search": "Seleccionar una búsqueda guardada", - "Select a screen from the process to review and perform translations.": "Seleccione una pantalla del proceso para revisar y realizar traducciones.", - "Select a screen to nest": "Seleccionar una pantalla para anidar", - "Select a screen": "Seleccione una pantalla", - "Select a target language": "Seleccione un idioma objetivo", - "Select a user to set the API access of the Script": "Seleccione un usuario para configurar el acceso a la API del script", - "Select All": "Seleccionar Todo", - "Select allowed group": "Seleccionar el Grupo autorizado", - "Select allowed groups": "Seleccionar grupos permitidos", - "Select allowed user": "Seleccionar el Usuario autorizado", - "Select allowed users": "Seleccionar usuarios permitidos", - "Select at least one column.": "Seleccione al menos una columna.", - "Select Available Folders": "Seleccionar Carpetas Disponibles", - "Select Chart Type": "Seleccionar Tipo de Gráfico", - "Select Chart": "Seleccionar Gráfico", - "Select default process status": "Seleccionar estado predeterminado del proceso", - "Select Destination": "Seleccionar Destino", - "Select Direction": "Seleccionar dirección", - "Select Display-type Screen to show the summary of this Request when it completes": "Seleccionar la Pantalla de tipo de visualización para mostrar el resumen de esta solicitud cuando se complete", - "Select element destination": "Seleccionar destino del elemento", - "Select Export Type": "Seleccione Tipo de Exportación", - "Select file from computer": "Seleccionar archivo de la computadora", - "select file": "seleccionar archivo", - "Select from which Intermediate Message Throw or Message End event to listen": "Seleccionar el evento de lanzamiento de mensaje intermedio o de finalización de mensaje que se escuchará", - "Select group or type here to search groups": "Seleccionar un grupo o escribir aquí para buscar grupos", - "Select how often (in minutes) your IMAP server should be polled for responses.": "Seleccione con qué frecuencia (en minutos) se debe sondear su servidor IMAP en busca de respuestas.", - "Select how often users should be automatically synchronized in the background": "Seleccione con qué frecuencia los usuarios deben sincronizarse automáticamente en segundo plano", - "Select how you would like to update the bundle {{ selectedBundleName }}.": "Seleccione cómo le gustaría actualizar el paquete {{ selectedBundleName }}.", - "Select Icon": "Seleccionar Icono", - "Select Import Type": "Seleccionar tipo de importación", - "Select List": "Seleccionar lista", - "Select option": "Seleccione la opción", - "Select Project": "Seleccionar Proyecto", - "Select Screen to display this Task": "Seleccionar pantalla para mostrar esta tarea", - "Select Screen": "Seleccionar Pantalla", - "Select the Load a saved search control above.": "Seleccione el control Cargar una búsqueda guardada de arriba.", - "Select the dashboard to show the summary of this request when it completes": "Seleccione el panel para mostrar el resumen de esta solicitud cuando se complete", - "Select the date to initially trigger this element": "Seleccione la fecha en la que se activará inicialmente este elemento", - "Select the date to trigger this element": "Seleccionar la fecha para desencadenar este elemento", - "Select the day(s) of the week in which to trigger this element": "Seleccionar los días de la semana para desencadenar este elemento", - "Select the day(s) of the week in which to trigger this Unable to send email. Please check your email server settings.element": "Seleccione el/los día(s) de la semana en el que activar este elemento", - "Select the direction of workflow for this element": "Seleccionar la dirección del flujo de trabajo para este elemento", - "Select the duration of the timer": "Seleccionar la duración del temporizador", - "Select the group from which any user may start a Request": "Seleccionar el grupo desde el cual cualquier usuario puede iniciar una solicitud", - "Select the language for Plaid's user interface": "Seleccione el idioma para la interfaz de usuario de Plaid", - "Select the Load a saved search control above.": "Seleccione el control Cargar una búsqueda guardada de arriba.", - "Select the message reference that this element throws": "Seleccione la referencia del mensaje que este elemento arroja", - "Select the Script this element runs": "Seleccionar el script que ejecuta este elemento", - "Select the signal reference that this element throws": "Seleccione la referencia de señal que este elemento arroja", - "Select the SSO Login you want as default for the users": "Seleccione el inicio de sesión SSO que desea como predeterminado para los usuarios", - "Select the Task assignee": "Seleccionar el destinatario de la tarea", - "Select the type of delay": "Seleccionar el tipo de retraso", - "Select the user to reassign to the task": "Seleccione el usuario al que reasignar la tarea", - "Select the variable to watch on this screen or type any request variable name": "Seleccione la variable que se observará en esta pantalla o escriba cualquier nombre de variable de solicitud", - "Select to interrupt the current Request workflow and route to the alternate workflow, thereby preventing parallel workflow": "Seleccionar para interrumpir el flujo de trabajo de la solicitud actual y enrutar al flujo de trabajo alternativo, evitando así un flujo de trabajo en paralelo", - "Select user or type here to search users": "Seleccionar un usuario o escribir aquí para buscar usuarios", - "Select variables to submit, otherwise all variables will be submitted by default.": "Seleccione las variables que se enviarán, de lo contrario, se enviarán todas las variables por defecto.", - "Select where to send users after this task. Any Non-default destination will disable the “Display Next Assigned Task” function.": "Seleccionar a dónde enviar a los usuarios después de esta tarea. Cualquier destino no predeterminado deshabilitará la función “Mostrar la próxima tarea asignada”.", - "Select whether a signal should be thrown when a user is created": "Seleccione si se debe lanzar una señal cuando se crea un usuario", - "Select whether a signal should be thrown when a user is deleted": "Seleccione si se debe lanzar una señal cuando se elimina un usuario", - "Select whether a signal should be thrown when a user is read": "Seleccione si se debe lanzar una señal cuando se lee un usuario", - "Select whether a signal should be thrown when a user is updated": "Seleccione si se debe lanzar una señal cuando se actualiza un usuario", - "Select whether detailed SSO errors should be displayed (be sure to disable in production)": "Seleccione si se deben mostrar errores detallados de SSO (asegúrese de deshabilitarlo en producción)", - "Select whether or not to use TLS when connecting to LDAP": "Seleccione si usar o no TLS al conectarse a LDAP", - "Select whether SSO users should be automatically registered the first time they log in": "Seleccione si los usuarios SSO deben registrarse automáticamente la primera vez que inicien sesión", - "Select whether the IMAP server's SSL certificate should be validated. Disabling this option is less secure but improves compatibility with some IMAP services.": "Seleccione si se debe validar el certificado SSL del servidor IMAP. Deshabilitar esta opción es menos seguro pero mejora la compatibilidad con algunos servicios IMAP.", - "Select whether to allow standard login or only display SSO login options": "Seleccione si permitir el inicio de sesión estándar o mostrar solo opciones de inicio de sesión SSO", - "Select whether to enable directory synchronization via LDAP": "Seleccione si habilitar la sincronización de directorio vía LDAP", - "Select whether to enable directory synchronization via SCIM": "Seleccione si habilitar la sincronización de directorio vía SCIM", - "Select whether to enable single sign-on via Atlassian": "Seleccione si habilitar el inicio de sesión único vía Atlassian", - "Select whether to enable single sign-on via Auth0": "Seleccione si habilitar el inicio de sesión único vía Auth0", - "Select whether to enable single sign-on via Facebook": "Seleccione si habilitar el inicio de sesión único vía Facebook", - "Select whether to enable single sign-on via GitHub": "Seleccione si habilitar el inicio de sesión único vía GitHub", - "Select whether to enable single sign-on via Google": "Seleccione si habilitar el inicio de sesión único vía Google", - "Select whether to enable single sign-on via Keycloak": "Seleccione si habilitar el inicio de sesión único vía Keycloak", - "Select whether to enable single sign-on via Microsoft": "Seleccione si habilitar el inicio de sesión único vía Microsoft", - "Select whether to enable single sign-on via SAML": "Seleccione si habilitar el inicio de sesión único vía SAML", - "Select which assets from the uploaded package should be imported to this environment.": "Seleccione qué activos del paquete cargado deben importarse a este entorno.", - "Select which assets to include in the export file for a custom export package.": "Seleccione qué activos incluir en el archivo de exportación para un paquete de exportación personalizado.", - "Select which font to use throughout the system.": "Seleccione el tipo de letra que se utilizará en todo el sistema.", - "Select which LDAP departments to import": "Seleccione qué departamentos LDAP importar", - "Select which LDAP groups to import": "Seleccione qué grupos LDAP importar", - "Select which Process this element calls": "Seleccionar el proceso al que llama este elemento", - "Select which type of LDAP server you will connect to": "Seleccione a qué tipo de servidor LDAP se conectará", - "Select who may start a Request of this Process": "Seleccionar quién puede iniciar una solicitud de este proceso", - "Select who may start a Request": "Seleccionar quién puede iniciar una solicitud", - "Select...": "Seleccionar...", - "Select": "Seleccionar", - "Selected Option Type": "Tipo de opción seleccionado", - "Self Service": "Autoservicio", - "Self-Service": "Autoservicio", - "Send Again": "Send Again", - "Sender Email": "Correo del Remitente", - "Sender Name": "Nombre del Remitente", - "SendTask Conversion": "El subproceso de nombre ':name' fue convertido a Tarea de script.", - "Sequence flow is missing condition": "Al flujo de secuencia le falta la condición", - "Sequence Flow": "Flujo de secuencia", - "Server Address": "Dirección del Servidor", - "Server Error - ProcessMaker": "Error de servidor - ProcessMaker", - "Server Host": "Host del Servidor", - "Server Port": "Puerto del Servidor", - "Server": "Servidor", - "Service Task": "Tarea de Servicio", - "Session Inactivity": "Inactividad de Sesión", - "Service": "Servicio", - "Set as Default Flow": "Establecer como flujo predeterminado", - "Set maximum run retry attempts in seconds. Leave empty to use data connector default. Set to 0 for no retry attempts.": "Establezca el máximo de intentos de reintentos en segundos. Deje en blanco para usar el valor predeterminado del conector de datos. Establezca en 0 para no hacer intentos de reintentos.", - "Set maximum run retry attempts in seconds. Leave empty to use script default. Set to 0 for no retry attempts.": "Establezca el máximo de intentos de reintentos en segundos. Deje vacío para usar el valor predeterminado del script. Establezca en 0 para no hacer intentos de reintentos.", - "Set maximum run retry wait time in seconds. Leave empty to use data connector default. Set to 0 for no retry wait time.": "Establezca el tiempo máximo de espera de reintentos de ejecución en segundos. Deje en blanco para usar el valor predeterminado del conector de datos. Establezca en 0 para no tener tiempo de espera de reintentos.", - "Set maximum run retry wait time in seconds. Leave empty to use script default. Set to 0 for no retry wait time.": "Establezca el tiempo máximo de espera para reintentar la ejecución en segundos. Deje vacío para usar el valor predeterminado del script. Establezca en 0 para no tener tiempo de espera para reintentar.", - "Set maximum run time in seconds. Leave empty to use data connector default. Set to 0 for no timeout.": "Establezca el tiempo máximo de ejecución en segundos. Deje vacío para usar el valor predeterminado del conector de datos. Establezca en 0 para no tener tiempo de espera.", - "Set maximum run time in seconds. Leave empty to use script default. Set to 0 for no timeout.": "Establezca el tiempo máximo de ejecución en segundos. Deje vacío para usar el valor predeterminado del script. Establezca en 0 para no tener tiempo de espera.", - "Set Password": "Establecer Contraseña", - "Set the element's background color": "Establecer el color de fondo del elemento", - "Set the element's text color": "Establezca el color de texto del elemento", - "Set the periodic interval to trigger this element again": "Establecer el intervalo de período para activar este elemento nuevamente", - "Settings": "Configuración", - "SettingsUpdated": "Ajustes Actualizados", - "Share": "Compartir", - "Shared Assets": "Activos Compartidos", - "Shared with Groups": "Compartido con grupos", - "Shared with Users": "Compartido con usuarios", - "Should NOT have more than {max} items": "No debería tener más de {max} artículos", - "Should records be editable/removable and can new records be added": "Deben los registros ser editables/removibles y pueden agregarse nuevos registros", - "Should the checkbox be checked by default": "Si la casilla de verificación está marcada por defecto", - "Show Control As": "Mostrar control como", - "Show in Json Format": "Mostrar en formato Json", - "Show Me The Templates": "Muéstrame Las Plantillas", - "Show Menus": "Mostrar menús", - "Show Mini-Map": "Mostrar minimapa", - "Show More": "Mostrar más", - "Show": "mostrar", - "Sign In": "Iniciar Sesión", - "Signal End Event": "Señalar evento final", - "Signal ID is required": "El ID de señal es obligatorio", - "Signal ID": "ID de señal", - "Signal Name is required": "El Nombre de señal es obligatorio", - "Signal Name": "Nombre de señal", - "Signal Payload": "Carga útil de señales", - "Signal reference is required": "Se requiere referencia de señal", - "Signal Start Event": "Evento de inicio de señal", - "Signal that will catch this intermediate event": "Señal que capturará este evento intermedio", - "Signal that will trigger this boundary event": "Señal que desencadenará este evento límite", - "Signal that will trigger this start event": "Señal que activará este evento de inicio", - "Signal": "Señal", - "Signals present in processes and system processes cannot be deleted.": "Las señales presentes en los procesos y los procesos del sistema no se pueden eliminar.", - "Signals": "Señales", - "Since there is no interface translation for this language, translations for these screens will only render for anonymous users in web entries.": "Dado que no hay traducción de interfaz para este idioma, las traducciones para estas pantallas solo se mostrarán para usuarios anónimos en entradas web.", - "Single Logout URL": "URL de Cierre de Sesión Único", - "Single Value": "Valor único", - "Skip to Content": "Ir al contenido", - "Slack": "Slack", - "SLO Endpoint": "SLO Endpoint", - "Smarter processes,": "Procesos más inteligentes,", - "SMS": "SMS", - "SMTP Authentication Method": "Método de Autenticación SMTP", - "Some assets can take some time to load": "Algunos activos pueden tardar un tiempo en cargar", - "Some bpmn elements do not comply with the validation": "Algunos elementos bpmn no cumplen con la validación", - "Something has gone wrong.": "Algo ha salido mal.", - "Something went wrong and the file cannot be previewed or downloaded.": "Algo salió mal y no se puede previsualizar o descargar el archivo.", - "Something went wrong. Try refreshing the application": "Algo salió mal. Intente actualizar la aplicación", - "Something went wrong": "Algo salió mal", - "Sorry but nothing matched your search. Try a new search.": "Lo siento, pero no se encontraron coincidencias con tu búsqueda. Intenta con una nueva búsqueda.", - "Sorry, this request doesn't contain any information.": "Lo sentimos, esta solicitud no contiene ninguna información.", - "Sorry, we couldn't find any results for your search. Check your spelling or use other terms.": "Lo sentimos, no pudimos encontrar ningún resultado para su búsqueda. Verifique su ortografía o use otros términos.", - "Sorry, we couldn't find any results for your search.": "Lo sentimos, no pudimos encontrar ningún resultado para su búsqueda.", - "Sorry! API failed to load": "¡Lo sentimos! No se pudo cargar la API", - "Sort Ascending": "Ordenar de manera ascendente", - "Sort Descending": "Ordenar de manera descendente", - "Source Type": "Tipo de fuente", - "Source": "Origen", - "Spanish": "Español", - "Special characters": "Special characters", - "Specifies the file storage service, server, or file access protocol through which your Microsoft Excel files are stored and retreived.": "Especifica el servicio de almacenamiento de archivos, servidor o protocolo de acceso a archivos a través del cual se almacenan y recuperan sus archivos de Microsoft Excel.", - "Specify Expression": "Especificar la expresión", - "Specify Request Variable": "Especificar la variable de datos", - "SSO Endpoint": "Punto de Conexión SSO", - "SSO Identifier": "Identificador SSO", - "Standard": "Estándar", - "Start a new process from a blank canvas, a text description, or a preset template.": "Inicie un nuevo proceso desde un lienzo en blanco, una descripción de texto o una plantilla preestablecida.", - "Start date": "Fecha de inicio", - "Start event is missing event definition": "Al evento de inicio le falta la definición del evento", - "Start event must be blank": "El evento de inicio debe estar en blanco", - "Start Event": "Evento de inicio", - "Start New Case": "Iniciar Nuevo Caso", - "Start New Request": "Iniciar Nueva Solicitud", - "Start Permissions": "Iniciar permisos", - "Start Sub Process As": "Iniciar subproceso como", - "Start this process": "Inicia este proceso", - "Start Timer Event": "Iniciar el temporizador de eventos", - "Start": "Iniciar", - "STARTED BY": "STARTED BY", - "Started By Me": "Iniciado por mí", - "Started Cases": "Casos Iniciados", - "Started import of": "Se ha iniciado la importación de", - "Started": "Iniciado", - "STARTED": "Iniciado", - "Starting events": "Iniciando eventos", - "Starting": "Comenzando", - "State or Region": "Estado o Región", - "Status": "Estado", - "STATUS": "Estado", - "statuses": "estados", - "Step 1:": "Paso 1:", - "Step 2:": "Paso 2:", - "Step 3:": "Paso 3:", - "Step 4:": "Paso 4:", - "String": "Cadena", - "Sub process has multiple blank start events": "El subproceso tiene varios eventos de inicio en blanco", - "Sub process is missing end event": "Al subproceso le falta el evento de finalización", - "Sub process is missing start event": "Al subproceso le falta el evento de inicio", - "Sub Process": "Subproceso", - "Subject": "Asunto", - "Submit action": "Enviar acción", - "Submit after filling": "Envíe después de llenar", - "Submit Information": "Enviar Información", - "Submit Button": "Botón para enviar", - "Submit Configuration": "Enviar Configuración", - "Submit": "Enviar", - "SubProcess Conversion": "El subproceso de nombre ':name' fue convertido a Actividad de llamada.", - "Subscriber": "Suscriptor", - "Success!": "¡Éxito!", - "success": "correctamente", - "Success": "correctamente", - "successfully authorized": "autorizado con éxito", - "Successfully imported": "Se importó correctamente", - "Successfully saved": "Guardado correctamente", - "Summary Screen (Default)": "Pantalla de Resumen (Predeterminada)", - "Summary Screen": "Pantalla de resumen", - "Summary": "Resumen", - "Supported formats are PNG and JPG.": "Los formatos compatibles son PNG y JPG.", - "Synchronization Schedule": "Programación de Sincronización", - "System is waiting for the conditional event: \":event\"": "El sistema está esperando el evento condicional: \":event\"", - "System is waiting for the scheduled timer: \":event\"": "El sistema está esperando el temporizador programado: \":event\"", - "System is waiting to receive message \":event\"": "El sistema está a la espera de recibir el mensaje \":event\"", - "System signals cannot be modified.": "Las señales del sistema no se pueden modificar.", - "T": "M", - "Tab Name": "Nombre de la pestaña", - "Tab Order": "Orden de tabulación", - "Tab Settings": "Configuración de pestañas", - "Table": "Tabla", - "Table Prompt Suffix": "Sufijo del Mensaje de Tabla", - "Tag": "Etiqueta", - "take care of things automatically.": "se encargan de las cosas automáticamente.", - "Takes precedence over value set in data.": "Tiene prioridad sobre el conjunto de valores en los datos.", - "Task :task_id could not be reassigned because the task settings prevent it from being reassigned": "La tarea :task_id no pudo ser reasignada porque la configuración de la tarea lo impide", - "Task {{- subject }} completed by {{- user }}": "Tarea {{- subject }} completada por {{- user }}", - "Task {{- subject }} is overdue. Originally due on {{- due }}": "La tarea {{- subject }} está atrasada. Originalmente debía entregarse el {{- due }}", - "Task {{- subject }} reassigned to {{- user }}": "Tarea {{- subject }} reasignada a {{- user }}", - "Task Assignment": "Asignación de tarea", - "Task Assignments (API)": "Asignaciones de tareas (API)", - "Task can not be rolled back": "La tarea no se puede revertir", - "Task cannot be assigned since there is no Process Manager associated to the process.": "No se puede asignar la tarea porque no hay ningún administrador de procesos asociado al proceso.", - "Task Completed Successfully": "Tarea completada con éxito", - "Task Completed": "Tarea terminada", - "Task Destination": "Destino de la tarea", - "Task due Date": "Fecha de Vencimiento de la Tarea", - "Task Due Date": "Fecha de Vencimiento de la Tarea", - "Task Filled succesfully": "Tarea completada con éxito", - "Task Filled successfully": "Tarea completada con éxito", - "Task List": "Lista de Tareas", - "Task name": "Nombre de la tarea", - "TASK NAME": "Nombre de la tarea", - "Task Name": "Nombre de la Tarea", - "Task Notifications": "Notificaciones de tarea", - "Task Source (Default)": "Fuente de Tarea (Predeterminada)", - "Task": "TAREA", - "TASK": "TAREA", - "Tasks": "Tareas", - "Template Author": "Autor de la plantilla", - "Template Documentation": "Documentación de plantillas", - "Template Name": "Nombre de la plantilla", - "Template": "Plantilla", - "TemplateCreated": "Plantilla Creada", - "TemplateDeleted": "Plantilla Eliminada", - "TemplatePublished": "Plantilla Publicada", - "Templates": "Plantillas", - "TemplateUpdated": "Plantilla Actualizada", - "Terminate End Event": "Finalizar evento final", - "Text Annotation": "Anotación de texto", - "Text Box": "Casillero de texto", - "Text Color": "Color de texto", - "Text Content": "Contenido del texto", - "Text Horizontal Alignment": "Alineación horizontal del texto", - "Text JSON Prompt Suffix": "Sufijo del Mensaje JSON de Texto", - "Text Label": "Etiqueta de texto", - "Text Model Temperature": "Temperatura del Modelo de Texto", - "Text Model": "Modelo de Texto", - "Text System Prompt": "Mensaje del Sistema de Texto", - "Text to Show": "Texto para mostrar", - "Text Vertical Alignment": "Alineación vertical del texto", - "Text": "Texto", - "Textarea": "Área de texto", - "Th": "J", - "The :attribute must be a file of type: jpg, jpeg, png, or gif.": "El :attribute debe de un tipo de archivo: jpg, jpeg, png, or gif.", - "The :file you requested is now ready for download.": "El :file que solicitó ya está listo para ser descargado.", - "The \":language\" language is not supported": "El idioma \":language\" no se admite", - "The auth client was ": "Cliente autenticado ", - "The Auth-Client must have at least :min item chosen.": "El cliente de autenticación debe tener al menos el elemento :min seleccionado.", - "The authtype field is required.": "El campo authtype es obligatorio", - "The bpm definition is not valid": "La definición de bpm no es válida", - "The category field is required.": "El campo de categoría es obligatorio.", - "The category name must be unique.": "El nombre de la categoría debe ser único.", - "The category was created.": "La categoría fue creada.", - "The category was saved.": "La categoría fue guardada.", - "The current user does not have permission to start this process": "El usuario actual no tiene permiso para iniciar este proceso", - "The current value is empty but a value is required. Please provide a valid value.": "The current value is empty but a value is required. Please provide a valid value.", - "The Data Connector endpoint to access when this Watcher runs": "El punto de conexión del conector de datos para acceder cuando se ejecuta este observador", - "The Data Connector resource to access when this Watcher runs": "El recurso Conector de datos al que se accede cuando se ejecuta este observador", - "The data format for the selected type.": "El formato de datos para el tipo seleccionado.", - "The data name for this field": "El nombre de los datos para este campo", - "The data name for this list": "El nombre de los datos para esta lista", - "The data type specifies what kind of data is stored in the variable.": "El tipo de dato especifica qué tipo de datos se almacenan en la variable.", - "The default value is pre populated using the existing request data. This feature will allow you to modify the value displayed on screen load if needed.": "El valor predeterminado se rellena previamente con los datos existentes de la solicitud. Esta característica le permitirá modificar el valor que se muestra cuando se carga la pantalla si es necesario.", - "The description field is required.": "El campo de descripción es obligatorio.", - "The destination page to navigate to": "La página de destino hacia la que se navegará", - "The environment variable name must be unique.": "El nombre de la variable de entorno debe ser único.", - "The environment variable was created.": "La variable de entorno fue creada.", - "The environment variable was deleted.": "La variable de entorno fue eliminada.", - "The environment variable was saved.": "La variable de entorno fue guardada.", - "The expression \":body\" is invalid. Please contact the creator of this process to fix the issue. Original error: \":error\"": "La expresión \":body\" no es válida. Póngase en contacto con el creador de este proceso para resolver el problema. Error original: \":error\"", - "The field under validation must be a valid date format which is acceptable by Javascript's Date object.": "El campo bajo validación debe ser un formato de fecha válido que sea aceptable por el objeto de fecha de Javascript.", - "The field under validation must be after the given date.": "El campo bajo validación debe ser posterior a la fecha indicada.", - "The field under validation must be entirely alpha-numeric characters.": "El campo bajo validación debe estar compuesto íntegramente por caracteres alfanuméricos.", - "The field under validation must be entirely alphabetic characters.": "El campo bajo validación debe estar completamente compuesto por caracteres alfabéticos.", - "The field under validation must be formatted as an e-mail address.": "El campo bajo validación debe formatearse como una dirección de correo electrónico.", - "The field under validation must be included in the given list of values. The field can be an array or string.": "El campo bajo validación debe incluirse en la lista determinada de valores. El campo puede ser una matriz o una cadena.", - "The field under validation must be present and not empty if the Variable Name field is equal to any value.": "El campo bajo validación debe estar presente y no vacío si el campo Nombre de variable es igual a cualquier valor.", - "The field under validation must be present and not empty unless the Variable Name field is equal to any value.": "El campo bajo validación debe estar presente y no vacío a menos que el campo Nombre de variable es igual a cualquier valor.", - "The field under validation must be yes, on, 1 or true.": "El campo bajo validación debe ser: yes, on, 1 o true.", - "The field under validation must have a size between the given min and max.": "El campo bajo validación debe tener un tamaño entre el mínimo y el máximo determinados.", - "The field under validation must match the given regular expression.": "El campo bajo validación debe coincidir con la expresión regular determinada.", - "The field under validation must not be included in the given list of values.": "El campo bajo validación no debe incluirse en la lista determinada de valores.", - "The field unter validation must be after or equal to the given field.": "El campo bajo validación debe ser posterior o igual al campo determinado.", - "The field unter validation must be before or equal to the given field.": "El campo bajo validación debe ser anterior o igual al campo determinado.", - "The field unter validation must be before the given date.": "El campo bajo validación debe ser anterior a la fecha indicada.", - "The file is processing. You may continue working while the log file compiles.": "El archivo se está procesando. Puede continuar trabajando mientras se compila el archivo de registro.", - "The file you are importing was made with an older version of ProcessMaker. Advanced import is not available. All assets will be copied.": "El archivo que está importando se creó con una versión anterior de ProcessMaker. La importación avanzada no está disponible. Se copiarán todos los activos.", - "The following items should be configured to ensure your process is functional.": "Los siguientes elementos deben configurarse para garantizar que su proceso sea funcional.", - "The following items should be configured to ensure your process is functional": "Los siguientes elementos deben configurarse para garantizar que su proceso sea funcional", - "The following required fields are not included in the submitted data.": "Los siguientes campos requeridos no están incluidos en los datos enviados.", - "The form to be displayed is not assigned.": "El formulario a mostrar no está asignado.", - "The form to use for adding/editing records": "El formulario a utilizar para agregar/editar registros", - "The Genie name must be unique.": "El nombre Genie debe ser único.", - "The given field must match the field under validation.": "El campo determinado debe coincidir con el campo bajo validación.", - "The group was created.": "El grupo fue creado.", - "The group was deleted.": "El grupo fue eliminado.", - "The history is empty": "El historial está vacío", - "The HTML text to display": "El texto HTML para mostrar", - "The id field should be unique across all elements in the diagram, ex. id_1.": "El campo de identificación debe ser único para todos los elementos del diagrama, ex. id_1.", - "The image was deleted": "La imagen fue eliminada", - "The inbox rule '{{name}}' was created.": "La regla de bandeja de entrada '{{name}}' fue creada.", - "The inbox rule '{{name}}' was updated.": "La regla de bandeja de entrada '{{name}}' fue actualizada.", - "The Input Data field is required": "El campo Datos de entrada es obligatorio", - "The label describes the button's text": "La etiqueta describe el texto del botón", - "The label describes the field's name": "La etiqueta describe el nombre del campo", - "The label describes the fields name": "La etiqueta describe el nombre de los campos", - "The label describes this record list": "La etiqueta describe esta lista de registros", - "The launchpad settings could not be saved due to an error.": "Los ajustes de la plataforma de lanzamiento no se pudieron guardar debido a un error.", - "The launchpad settings were saved.": "El configuración de launchpad se ha guardado.", - "The name field is required.": "El campo de nombre es obligatorio.", - "The Name has already been taken.": "El Nombre ya ha sido tomado.", - "The name of the button": "El nombre del botón", - "The Name of the data name": "El nombre del Nombre de datos", - "The name of the Download": "El nombre de la descarga", - "The Name of the Gateway": "El nombre de la puerta de enlace", - "The name of the group for the checkbox. All checkboxes which share the same name will work together.": "El nombre del grupo para la casilla de verificación. Todas las casillas de verificación que comparten el mismo nombre funcionarán juntas.", - "The name of the image": "El nombre de la imagen", - "The name of the new page to add": "El nombre de la nueva página que se agregará", - "The Name of the Process": "El nombre del proceso", - "The name of the upload": "El nombre de la carga", - "The Name of the variable": "El nombre de la variable", - "The name of this saved search.": "El nombre de esta búsqueda guardada.", - "The new name of the page": "El nuevo nombre de la página", - "The number of rows to provide for input": "El número de filas que se proporcionarán para entradas", - "The operation cannot be performed. Please try again later.": "La operación no puede realizarse. Por favor, inténtelo de nuevo más tarde.", - "The package is not installed": "El paquete no esta instalado", - "The page you are looking for could not be found": "No se pudo encontrar la página que está buscando", - "The placeholder is what is shown in the field when no value is provided yet": "El marcador de posición es lo que se muestra en el campo cuando aún no se proporciona ningún valor", - "The PM Block name must be unique.": "El nombre del bloque PM debe ser único.", - "The Process field is required.": "El campo Proceso es obligatorio.", - "The process name must be unique.": "El nombre del proceso debe ser único.", - "The process name must be unique": "El nombre del proceso debe ser único", - "The process version was saved.": "La versión del proceso se ha guardado.", - "The process was archived.": "El proceso fue archivado.", - "The process was created.": "El proceso fue creado.", - "The process was exported.": "El proceso fue exportado.", - "The process was imported.": "El proceso fue importado.", - "The process was paused.": "El proceso fue pausado.", - "The process was restored.": "El proceso fue restaurado.", - "The process was saved.": "El proceso fue guardado.", - "The process was unpaused.": "El proceso fue reanudado.", - "The property formula field is required.": "El campo de fórmula de propiedad es obligatorio.", - "The Record List control is not allowed to reference other controls on its own page to add or edit records. Specify a secondary page with controls to enter records.": "El control de Lista de registros no tiene permitido hacer referencia a otros controles en su propia página para agregar o editar registros. Especifique una página secundaria con controles para ingresar registros.", - "The request data was saved.": "Se han guardado los datos de la solicitud.", - "The Request variable is a new/existing variable": "La variable Request es una variable nueva/existente", - "The request was canceled.": "La solicitud fue cancelada.", - "The screen name must be unique.": "El nombre de la pantalla debe ser único.", - "The screen was created.": "La pantalla fue creada.", - "The screen was deleted.": "La pantalla fue eliminada.", - "The screen was duplicated.": "La pantalla fue duplicada.", - "The screen was exported.": "La pantalla fue exportada.", - "The screen was saved.": "La pantalla fue guardada.", - "The Script Configuration field is required": "El campo Configuración de scripts es obligatorio", - "The script name must be unique.": "El nombre del script debe ser único.", - "The script was created.": "El script fue creado.", - "The script was deleted.": "El script fue eliminado.", - "The script was duplicated.": "El script fue duplicado.", - "The script was saved.": "El script fue guardado.", - "The selected file is invalid or not supported for the Process importer. Please verify that this file is a Process.": "El archivo seleccionado no es válido o no es compatible con el importador de Process. Por favor, verifica que este archivo sea un Process.", - "The selected file is invalid or not supported for the Templates importer. Please verify that this file is a Template.": "El archivo seleccionado no es válido o no es compatible con el importador de Plantillas. Por favor, verifica que este archivo sea una Plantilla.", - "The size of the text in em": "El tamaño del texto en em", - "The Source field is required": "El campo Origen es obligatorio", - "The source to access when this Watcher runs": "El origen de acceso cuando se ejecuta este observador", - "The specified participant username does not exist.": "El nombre de usuario del participante especificado no existe.", - "The specified requester username does not exist.": "El nombre de usuario del solicitante especificado no existe.", - "The start event of the call activity can not be a web entry": "El evento de inicio de la actividad de llamada no puede ser una entrada web", - "The start event of the call activity is not a start event": "El evento de inicio de la actividad de llamada no es un evento de inicio", - "The start event of the call activity is not empty": "El evento de inicio de la actividad de llamada no está vacío", - "The start event with id \":node_id\" does not exist": "El evento de inicio con el id \":node_id\" no existe", - "The styles were recompiled.": "Los estilos se volvieron a compilar.", - "The System": "El sistema", - "The task :task_name was skipped": "La tarea :task_name fue omitida", - "The task \":task\" has an incomplete assignment. You should select one user or group.": "La tarea \":task\" tiene una asignación incompleta. Debe seleccionar un usuario o un grupo.", - "The task is loading": "La tarea está cargando", - "The task must be claimed to enable manager escalation.": "La tarea debe ser reclamada para permitir el escalamiento al administrador.", - "The template name must be unique.": "El nombre de la plantilla debe ser único.", - "The text to display": "El texto a mostrar", - "The Two Step Authentication Method has not been set. Please contact your administrator.": "El método de autenticación en dos pasos no ha sido configurado. Por favor, contacte a su administrador.", - "The two-step method must be selected.": "Se debe seleccionar el método de dos pasos.", - "The type for this field": "El tipo para este campo", - "The Uniform Resource Identifier (URI) for the Excel resource location.": "El Identificador Uniforme de Recursos (URI) para la ubicación del recurso de Excel.", - "The URL is required.": "Se requiere la URL.", - "The URL you provided is invalid. Please provide the scheme, host and path without trailing slashes.": "El URL proporcionado no es válido. Proporcione el esquema, el host y la ruta sin barras diagonales.", - "The user was deleted.": "El usuario fue eliminado.", - "The user was removed from the group.": "El usuario fue eliminado del grupo.", - "The user was restored": "El usuario fue restaurado", - "The user was successfully created": "Usuario creado correctamente", - "The user will go here after completing the process.": "El usuario irá aquí después de completar el proceso.", - "The user will go here after completing the task.": "El usuario irá aquí después de completar la tarea.", - "The validation rules needed for this field": "Las reglas de validación necesarias para este campo", - "The value being submitted": "El valor que se está enviando", - "The value can be a string or a mustache expression.": "El valor puede ser una cadena o una expresión de llaves dobles.", - "The value or source can be a string or a mustache expression": "El valor o fuente puede ser una cadena o una expresión de llaves dobles", - "The variable that will store the output of the Watcher": "La variable que almacenará la salida del observador", - "The Variable to Watch field is required": "El campo Variable para observar es obligatorio", - "The variable to watch on this screen": "La variable para observar en esta pantalla", - "The variable, :variable, which equals \":value\", is not a valid User ID in the system": "La variable, :variable, que es igual a \":value\", no es una ID de usuario válida en el sistema", - "The variant determines the appearance of the button": "La variante determina el aspecto del botón", - "The version was saved.": "Se ha guardado la versión.", - "The weight of the text": "El peso del texto", - "There are {{items}} validation errors in your form.": "Hay {{items}} errores de validación en su formulario.", - "There is a validation error in your form.": "Hay un error de validación en su formulario.", - "There is no field with the name ':fieldName'.": "No hay un campo con el nombre ':fieldName'.", - "These credentials do not match our records.": "Estas credenciales no coinciden con nuestros registros.", - "This actions is taking longer than expected. We will continue updating your tasks in the background.": "Esta acción está tomando más tiempo de lo esperado. Continuaremos actualizando tus tareas en segundo plano.", - "This application installs a new version of ProcessMaker.": "Esta aplicación instala una nueva versión de ProcessMaker.", - "This column can not be sorted or filtered.": "Esta columna no puede ser ordenada o filtrada.", - "This control is hidden until this expression is true": "Este control está oculto hasta que esta expresión sea verdadera", - "This document has no preview": "Este documento no tiene vista previa", - "This environment already contains a newer version of the {{ item }} named '{{ name }}.'": "Este entorno ya contiene una versión más reciente del {{ item }} llamado '{{ name }}'.", - "This environment already contains an older version of the {{ item }} named '{{ name }}.'": "Este entorno ya contiene una versión más antigua del {{ item }} llamado '{{ name }}'.", - "This environment already contains the {{ item }} named '{{ name }}.'": "Este entorno ya contiene el {{ item }} llamado '{{ name }}'.", - "This environment already contains the same version of the {{ item }} named '{{ name }}.'": "Este entorno ya contiene la misma versión del {{ item }} llamado '{{ name }}'.", - "This feature requires the configured AWS S3 service. Please contact your Customer Success Manager to use it.": "Esta función requiere el servicio AWS S3 configurado. Por favor, póngase en contacto con su Gerente de Éxito del Cliente para usarlo.", - "This field accepts mustache syntax": "Este campo acepta sintaxis de llave doble", - "This field is required!": "¡Este campo es obligatorio!", - "This file is password protected. Enter the password below to continue with the import.": "Este archivo está protegido con contraseña. Ingrese la contraseña a continuación para continuar con la importación.", - "This is a Beta version and when using Quickfill, it may replace the pre-filled information in the form.": "Esta es una versión Beta y al usar Quickfill, puede reemplazar la información previamente llenada en el formulario.", - "This is an AI feature and can provide inaccurate or biased responses.": "Esta es una función de IA y puede proporcionar respuestas inexactas o sesgadas.", - "This is your security code: :code": "This is your security code: :code", - "This may cause validation errors during submission.": "Esto puede causar errores de validación durante la presentación.", - "This must be valid JSON": "Este debe ser un JSON válido", - "This password reset link will expire in :count minutes.": "Este enlace de restablecimiento de contraseña expirará en :count minutos.", - "This password reset token is invalid.": "Este token de restablecimiento de contraseña no es válido.", - "This password will be required when importing the exported package/process.": "Se requerirá esta contraseña al importar el paquete/proceso exportado.", - "This process contains no dependent assets to": "Este proceso no contiene activos dependientes para", - "This process was started by an anonymous user so this task can not be assigned to the requester": "Este proceso fue iniciado por un usuario anónimo, por lo que no puede asignar esta tarea al solicitante", - "This record list is empty or contains no data.": "Esta lista de registros está vacía o no contiene datos.", - "This Request is currently in progress.": "Esta solicitud está actualmente en proceso.", - "This screen has validation errors.": "Esta pantalla tiene errores de validación.", - "This screen will be populated once the Request is completed.": "Esta pantalla se rellenará una vez que se complete la solicitud.", - "This signal cannot be removed, it is used by": "Esta señal no se puede eliminar, ya que es utilizada por", - "This task can not be reassigned": "Esta tarea no se puede reasignar", - "This task is unassigned, click Claim Task to assign yourself.": "Esta tarea está sin asignar; haga clic en Reclamar tarea para autoasignársela.", - "This variable will contain an array of objects": "Esta variable contendrá una matriz de objetos", - "This will create a PM Block based on the Process": "Esto creará un bloque PM basado en el Proceso", - "This will create a PM Block based on the {{assetName}} Process": "Esto creará un Bloque PM basado en el Proceso {{assetName}}", - "This will create a re-usable template based on the :assetName :assetType": "Esto creará una plantilla reutilizable basada en el :assetName :assetType", - "This window will automatically close when complete.": "Esta ventana se cerrará automáticamente cuando se complete.", - "Time a session is allowed to be idle. This timing is measured in minutes.": "Tiempo que se permite que una sesión esté inactiva. Este tiempo se mide en minutos.", - "Time expression": "Expresión de tiempo", - "Time Zone": "Zona horaria", - "Time": "Hora", - "Timeout: :timeout seconds": "Tiempo de espera: :timeout segundos", - "Timeout": "Tiempo de espera", - "Timing Control": "Control de tiempo", - "Title": "Título", - "To begin creating a screen, drag and drop items from the Controls Menu on the left.": "Para comenzar a crear una pantalla, arrastre y suelte elementos del Menú de Controles a la izquierda.", - "To change the current username and password please contact your administrator.": "Para cambiar el nombre de usuario y la contraseña actuales, por favor contacte a su administrador.", - "To complete the import, select a ProcessMaker Property and link it to its respective LDAP Attribute. Users lacking any assigned properties will be excluded from the import. To address any import errors, please refer to the log": "Para completar la importación, seleccione una Propiedad de ProcessMaker y vincúlela con su respectivo Atributo LDAP. Los usuarios que no tengan propiedades asignadas serán excluidos de la importación. Para resolver cualquier error de importación, consulte el registro", - "To Do Tasks": "Tareas por hacer", - "To Do": "Por hacer", - "To switch back to the previous interface, use \"Switch to Desktop View\" in the user menu.": "Para volver a la interfaz anterior, use \"Switch to Desktop View\" en el menú de usuario.", - "to upload an image": "para subir una imagen", - "to": "a", - "Toggle Configuration": "Alternar configuración", - "Toggle Notifications": "Alternar notificaciones", - "Toggle Show Password": "Alternar Mostrar contraseña", - "Toggle Style": "Alternar estilo", - "Token URL": "URL del token", - "Token_id": "ID de Token", - "Token": "Token", - "TokenCreated": "Token Creado", - "TokenDeleted": "Token Eliminado", - "Tokens": "Tokens", - "Too many login attempts. Please try again in :seconds seconds.": "Se han realizado demasiados intentos de inicio de sesión. Inténtelo de nuevo en: segundos segundos.", - "Tooltip Contains": "La descripción emergente contiene", - "Tooltip": "Descripción emergente", - "Top Left": "Arriba a la izquierda", - "Top Right": "Arriba a la derecha", - "Top": "Arriba", - "Total Elements": "Elementos Totales", - "Translate into multiple languages.": "Traducir a varios idiomas.", - "Translate process screens to a desired language": "Traduce las pantallas de proceso a un idioma deseado", - "Translation in progress": "Traducción en progreso", - "Translation Options": "Opciones de Traducción", - "Translation": "Traducción", - "translations for each screen associated to the process.": "traducciones para cada pantalla asociada al proceso.", - "translations for the process": "traducciones para el proceso", - "Translations": "Traducciones", - "Try our new Generative AI": "Prueba nuestra nueva IA Generativa", - "Two Step Authentication Method": "Two Step Authentication Method", - "Type a valid name": "Escriba un nombre válido", - "type here to search": "escriba aquí para buscar", - "Type here to search": "Escribe aquí para buscar", - "Type of Value Returned": "Tipo de valor devuelto", - "Type to search Chart": "Escriba para buscar Chart", - "Type to search Screen": "Escribe para buscar Pantalla", - "Type to search task": "Escriba para buscar la tarea", - "Type to search": "Escribir para buscar", - "Type value": "Ingresa el valor", - "Type": "Tipo", - "Unable to import the process.": "No es posible importar el proceso.", - "Unable to import": "No es posible importar", - "Unable to save: Verify your internet connection.": "No se puede guardar: Verifica tu conexión a internet.", - "Unable to save. Verify your internet connection.": "No se puede guardar. Verifica tu conexión a internet.", - "Unable to send email. Please check your email server settings.": "No se puede enviar el correo electrónico. Por favor, compruebe la configuración del servidor de correo electrónico.", - "Unable to send SMS. Please check your cell number and SMS server settings.": "No se puede enviar SMS. Por favor, compruebe su número de teléfono celular y la configuración del servidor SMS.", - "Unauthorized - ProcessMaker": "No autorizado - ProcessMaker", - "UnauthorizedAccessAttempt": "Intento de Acceso No Autorizado", - "Uncategorized": "No categorizados", - "Undo": "Deshacer", - "Unfortunately this screen has had an issue. We've notified the administrator.": "Lamentablemente, ha ocurrido un problema con esta pantalla. Hemos notificado al administrador.", - "Unidentified": "No identificado", - "Unknown Process": "Proceso Desconocido", - "Unknown User": "Usuario Desconocido", - "Unpause Start Timer Events": "Reanudar eventos de inicio de temporizador", - "Unreachable elements": "Elementos no accesibles", - "Unread Notifications": "Notificaciones no leídas", - "Update Available": "Actualización Disponible", - "Update Bundle Assets": "Actualizar activos del paquete", - "Update Bundle": "Actualizar paquete", - "Update Group Successfully": "Actualización de grupo exitosa", - "Update Rule": "Actualizar Regla", - "Update": "Actualizar", - "Updated By": "Actualizado Por", - "Updated_at": "Actualizado En", - "Updated": "Actualizados", - "Upload an image to your screen": "Sube una imagen a tu pantalla", - "Upload Avatar": "Subir avatar", - "Upload BPMN File (optional)": "Cargar archivo BPMN (opcional)", - "Upload BPMN File": "Cargar archivo BPMN", - "Upload file": "Cargar archivo", - "Upload image": "Cargar imagen", - "Upload Name": "Nombre de la carga", - "Upload the certificate file that will be stored in the server": "Cargar el archivo de certificado que se almacenará en el servidor", - "Upload XML": "Cargar XML", - "Upload": "Cargar", - "Uploaded By": "Subido Por", - "Uploaded": "Subido", - "Uploading...": "Cargando...", - "Uppercase characters": "Uppercase characters", - "URI": "URI", - "URL": "URL", - "Use a copy if you are planning on making changes to this asset.": "Utiliza una copia si planeas hacer cambios en este activo.", - "Use a Rich Text Editor to add HTML-formatted": "Utilice un Editor de Texto Enriquecido para agregar HTML-formateado", - "Use a transparent PNG at :size pixels for best results.": "Utilice un PNG transparente en :size pixels para obtener los mejores resultados.", - "Use Artificial Intelligence in any natural language to create complex Processes, just like writing to a person. Even describe your Process in one language, but output your model in another.": "Utilice Inteligencia Artificial en cualquier lenguaje natural para crear Procesos complejos, igual que escribirle a una persona. Incluso describa su Proceso en un idioma, pero genere su modelo en otro.", - "Use current Documentation": "Usar la Documentación actual", - "Use Request Variable": "Usar Variable de Solicitud", - "Use secure connection": "Usar conexión segura", - "Use the button Add Instance": "Usa el botón Add Instance", - "Use the slider to select a range": "Utilice el control deslizante para seleccionar un rango", - "Use this in your custom css rules": "Use esto en sus reglas de css personalizadas", - "Use This Task Data": "Utiliza Esta Data de Tarea", - "User / Group": "Usuarios/grupo", - "User Account": "Cuenta de Usuario", - "User assignments and sensitive Environment Variables will not be exported.": "No se exportarán las asignaciones de usuario y las variables de entorno sensibles.", - "User assignments and sensitive Environment Variables will not be imported.": "No se importarán las asignaciones de usuario y las variables de entorno sensibles.", - "User Class Identifier": "Identificador de Clase de Usuario", - "User has no tokens.": "El usuario no tiene tokens.", - "User Identifier": "Identificador de Usuario", - "User Login": "Inicio de sesión de usuario", - "User Matching": "Coincidencia de Usuario", - "User Password": "Contraseña de Usuario", - "User Permissions Updated Successfully": "Permisos de usuario actualizados correctamente", - "User Updated Successfully ": "Usuario actualizado correctamente ", - "User Updated Successfully": "Usuario actualizado correctamente", - "User_name": "Nombre de usuario", - "user": "Usuario", - "User": "Usuario", - "UserCreated": "Usuario Creado", - "UserDeleted": "Usuario Eliminado", - "UserGroupsUpdated": "Grupos de Usuarios Actualizados", - "Username": "Nombre de usuario", - "UserRestored": "Usuario Restaurado", - "Users / Groups": "Usuarios/Grupos", - "Users that should be notified about task events": "Usuarios que deberían ser notificados sobre eventos de tareas", - "Users": "Usuarios", - "Users/Groups to View Encrypted Fields": "Usuarios/Grupos que pueden ver campos encriptados", - "UserUpdated": "Usuario Actualizado", - "Using watchers with Scripts can slow the performance of your screen.": "El uso de observadores con scripts puede ralentizar el rendimiento de la pantalla.", - "Valid JSON Data Object": "Objeto de datos JSON válido", - "Valid JSON Object, Variables Supported": "Objeto JSON válido, variables admitidas", - "Validate IMAP SSL Certificate": "Validar Certificado SSL IMAP", - "Validate that an attribute has a valid URL format.": "Valide que un atributo tenga un formato de URL válido.", - "Validate that an attribute is at least a given length.": "Valida que un atributo tenga al menos una longitud determinada.", - "Validate that an attribute is no greater than a given length.": "Valide que un atributo no sea mayor que una longitud determinada.", - "Validation rules ensure the integrity and validity of the data.": "Las reglas de validación aseguran la integridad y validez de los datos.", - "Validation Rules": "Reglas de validación", - "Validation": "Validación", - "Value": "Valor", - "Values": "Valores", - "Variable containing the file to be sent": "Variable que contiene el archivo a enviar", - "Variable containing the numeric User ID": "Variable que contiene el ID de usuario numérico", - "Variable Data Property": "Propiedad de datos variables", - "Variable Name for Callback URL": "Nombre de variable para URL de devolución de llamada", - "Variable Name of User ID Value": "Nombre de variable del valor de ID del usuario", - "Variable Name": "Nombre de variable", - "Variable Map": "Mapa de Variables", - "Variable to Watch": "Variable a observar", - "Variable Value": "Valor de variable", - "Variable": "Variable", - "Variables": "Variables", - "Variant": "Variante", - "Verify Password": "Verificar Contraseña", - "Version History": "Historial de versiones", - "Version Name": "Nombre de versión", - "Version": "Versión", - "Vertical alignment of the text": "Alineación vertical del texto", - "View {{user}} Profile": "Ver perfil de {{user}}", - "View All Collections": "Ver Todas las Colecciones", - "View All Data Connectors": "Ver Todos los Conectores de Datos", - "View All Decision Tables": "Ver Todas las Tablas de Decisión", - "View All Genies": "Ver todos los Genies", - "View All Notifications": "Ver todas las notificaciones", - "View All Processes": "Ver Todos los Procesos", - "View All Requests": "Ver todas las solicitudes", - "View All Screens": "Ver Todas las Pantallas", - "View All Scripts": "Ver Todos los Guiones", - "View All Tasks": "Ver Todas las Tareas", - "View All": "Ver todo", - "View Auth Clients": "Ver clientes autenticados", - "View Categories": "Ver categorías", - "View Collection": "Ver colección", - "View Comments": "Ver comentarios", - "View Documentation": "Ver documentación", - "View Environment Variables": "Ver variables de entorno", - "View Files": "Ver archivos", - "View Groups": "Ver grupos", - "View Notifications": "Ver notificaciones", - "View Other Users Profiles": "Ver perfiles de otros usuarios", - "View Process Categories": "Ver categorías de procesos", - "View Processes": "Ver procesos", - "View Profile": "Ver perfil", - "View Request": "Ver Solicitud", - "View Screen Categories": "Ver categorías de pantalla", - "View Screens": "Ver pantallas", - "View Script Categories": "Ver categorías de script", - "View Scripts": "Ver scripts", - "View Security Logs": "Ver registros de seguridad", - "View Signals": "Ver señales", - "View Task Assignments": "Ver asignaciones de tareas", - "View Translations": "Ver traducciones", - "View Users": "Ver usuarios", - "View Version History": "Ver el historial de versiones", - "View Vocabularies": "Ver Vocabularios", - "View": "Ver", - "Visibility Rule": "Regla de visibilidad", - "Vision JSON Prompt Suffix": "Sufijo del Mensaje JSON de Visión", - "Vision Model Temperature": "Temperatura del Modelo de Visión", - "Vision Model": "Modelo de Visión", - "Vision System Prompt": "Mensaje del Sistema de Visión", - "Visit our Gallery for more Templates": "Visita nuestra Galería para más Plantillas", - "Vocabularies": "Vocabularios", - "Vocabulary": "Vocabulario", - "W": "M", - "Wait for server callback": "Espere la devolución de llamada del servidor", - "Wait for the Watcher to run before accepting more input": "Espere hasta que el observador se ejecute antes de aceptar más entradas", - "Wait until specific date/time": "Esperar a la fecha/hora específica", - "Waiting for selection": "Esperando la selección", - "Warning: Screens without save buttons cannot be executed.": "Advertencia: No se pueden ejecutar las pantallas sin botones de guardar.", - "warning": "advertencia", - "Warning": "advertencia", - "Warnings": "Advertencias", - "Watcher Name": "Nombre de observador", - "Watcher Saved": "Observador guardado", - "Watcher Updated": "Observador actualizado", - "Watcher": "Observador", - "Watchers": "Observadores", - "Watching Variable": "Variable de observación", - "Watching": "Observando", - "We apologize, but we were unable to find any results that match your search. \nPlease consider trying a different search. Thank you": "Lamentamos, pero no pudimos encontrar ningún resultado que coincida con su búsqueda. \nPor favor, considere intentar una búsqueda diferente. Gracias", - "We apologize, but we were unable to find any results that match your search. Please consider trying a different search. Thank you": "Lo sentimos, pero no pudimos encontrar ningún resultado que coincida con su búsqueda. Por favor, considere intentar una búsqueda diferente. Gracias", - "We can't find a user with that e-mail address.": "No podemos encontrar un usuario con esa dirección de correo electrónico.", - "We encourage you to create new processes using our templates.": "Te animamos a crear nuevos procesos utilizando nuestras plantillas.", - "We found some elements already documented, what whould you like to do?": "Hemos encontrado algunos elementos ya documentados, ¿qué te gustaría hacer?", - "We have e-mailed your password reset link!": "¡Le hemos enviado por correo electrónico el enlace para restablecer su contraseña!", - "We recommend using fewer than 25 form elements in your screen for optimal performance.": "Recomendamos utilizar menos de 25 elementos de formulario en la pantalla para un rendimiento óptimo.", - "We recommended a transparent PNG at :size pixels.": "Recomendamos un PNG transparente en tamaño de píxeles:.", - "Web Entry": "Entrada web", - "Webhook URL": "URL de webhook", - "week": "semana", - "Welcome Back": "Bienvenido de Nuevo", - "Welcome Participant!": "¡Bienvenido Participante!", - "Welcome Screen": "Pantalla de Bienvenida", - "Welcome WebEntry": "Bienvenido", - "Welcome": "Bienvenido", - "Well, it seems nothing in here": "Bueno, parece que no hay nada aquí", - "What do we do with tasks that fit this filter?": "¿Qué hacemos con las tareas que se ajustan a este filtro?", - "What do you want to search?": "¿Qué quieres buscar?", - "What is the URL of this ProcessMaker installation? (Ex: https://pm.example.com, with no trailing slash)": "¿Cuál es el URL de esta instalación de ProcessMaker? (Por ejemplo: https://pm.example.com, sin barra diagonal)", - "What Screen Should Be Used For Rendering This Interstitial": "Qué pantalla debería usarse para representar este intersticial", - "What Screen Should Be Used For Rendering This Task": "Qué pantalla debería usarse para representar esta tarea", - "When FEEL expression evaluates to true then exit loop": "Cuando la expresión FEEL se evalúe como verdadera, entonces salir del bucle", - "When the FEEL Expression evaluates to true then exit the loop": "Cuando la expresión FEEL se evalúe como verdadera, entonces salir del bucle", - "whitelist": "lista blanca", - "Whitelist": "Lista blanca", - "Width": "Ancho", - "will be included in this": "será incluido en esto", - "will use the value stored in variable var1": "utilizará el valor almacenado en la variable var1", - "will": "voluntad", - "Wrap an existing subpage within this Form into a Bootstrap Vue component": "Envuelve una subpágina existente dentro de este Formulario en un componente Bootstrap Vue", - "Write": "Escribir", - "year": "año", - "Yes": "Sí", - "Yesterday": "Ayer", - "You are about to export a Process.": "Estás a punto de exportar un proceso.", - "You are about to export a Screen.": "Está por exportar una Pantalla.", - "You are about to export": "Estás a punto de exportar", - "You are about to import a Process.": "Está a punto de importar un proceso.", - "You are about to import a Screen.": "Está por importar una Pantalla.", - "You are about to import": "Estás a punto de importar", - "You are about to publish a draft version. Are you sure you want to proceed?": "Estás a punto de publicar una versión preliminar. ¿Estás seguro de que quieres proceder?", - "You are not assigned to this encrypted field.": "Tu no estás asignado a este campo encriptado.", - "You are not part of a project yet": "Aún no eres parte de un proyecto", - "You are receiving this email because we received a password reset request for your account.": "Está recibiendo este correo electrónico porque hemos recibido una solicitud de restablecimiento de contraseña para su cuenta.", - "You are trying to place a nested screen within CAPTCHA elements inside a loop. CAPTCHA controls cannot be placed within a Loop control.": "Está tratando de colocar una pantalla anidada dentro de elementos CAPTCHA dentro de un bucle. Los controles CAPTCHA no pueden colocarse dentro de un control de bucle.", - "You can also authenticate by :otherMethods.": "You can also authenticate by :otherMethods.", - "You can close this page.": "Puede cerrar esta página.", - "You can set CSS Selector names in the inspector. Use them here with [selector='my-selector']": "Puede establecer nombres de Selector de CSS en el inspector. Úselos aquí con [selector = 'my-selector']", - "You do not have permission to add new signals": "No tiene permiso para agregar nuevas señales", - "You do not have permission to delete signals": "No tiene permiso para eliminar señales", - "You do not have permission to edit signals": "No tiene permiso para editar señales", - "You do not have permission to view signals": "No tiene permiso para ver señales", - "You don't currently have any tasks assigned to you": "Actualmente no tiene tareas asignadas", - "You don't have any Processes.": "Usted no tiene ningún proceso.", - "You have {{ inOverDue }} overdue {{ taskText }} pending": "Tiene {{ inOverDue }} vencidos {{ taskText }} pendiente", - "You have made no requests of this process.": "No has hecho ninguna solicitud a este proceso.", - "You have no tasks from this process.": "No tienes tareas de este proceso.", - "You have to start a Case of this process.": "Usted tiene que iniciar un caso en este proceso", - "You haven't set up any Inbox Rules yet": "Aún no has configurado ninguna Regla de Bandeja de Entrada", - "You must authorize your account before configuring folders": "Debe autorizar su cuenta antes de configurar carpetas", - "You must have your database credentials available in order to continue.": "Debe tener las credenciales de su base de datos disponibles para poder continuar.", - "You must select at least one day.": "Debe seleccionar al menos un día.", - "You seem to be missing access to this feature. Please contact ProcessMaker Support.": "Parece que no tienes acceso a esta función. Por favor, contacta con el soporte de ProcessMaker.", - "Your account has been timed out for security.": "Se ha finalizado el tiempo de espera por motivos de seguridad.", - "Your In-Progress {{title}} tasks": "Tus tareas {{title}} en progreso", - "Your In-Progress tasks in the saved search {{title}}": "Tus tareas en progreso en la búsqueda guardada {{title}}", - "Your password has been reset!": "¡Su contraseña ha sido restablecida!", - "Your password has been updated.": "Su contraseña se ha actualizado.", - "Your password has expired.": "Tu contraseña ha expirado.", - "Your PMQL contains invalid syntax.": "Su PMQL contiene una sintaxis no válida.", - "Your PMQL search could not be completed.": "Su búsqueda de PMQL no se pudo completar.", - "Your profile was saved.": "Su perfil ha sido guardado.", - "Your word is our command!": "¡Tu palabra es nuestra orden!", - "Zoom In": "Acercar", - "Zoom Out": "Alejar" -} \ No newline at end of file diff --git a/resources/lang/fr.json b/resources/lang/fr.json deleted file mode 100644 index 3e9e53a248..0000000000 --- a/resources/lang/fr.json +++ /dev/null @@ -1,2459 +0,0 @@ -{ - "ProcessMaker": "ProcessMaker", - "Skip to Content": "Aller au contenu", - " pending": " en attente", - ":user has completed the task :task_name": "L'utilisateur :user a terminé la tâche :task_name", - "{{variable}} is running.": "{{variable}} est en cours d'exécution.", - "? Any services using it will no longer have access.": "Tous les services qui l'utilisent perdront leur accès.", - "[Select Active Process]": "[Sélectionner processus actif]", - "# Processes": "Nombre de processus", - "# Users": "Nombre d'utilisateurs", - "¡ Whoops ! No results": "Oops ! Aucun résultat", - "+ Add Page": "+ Ajouter page", - "72 hours": "72 heures", - "A .env file already exists. Stop the installation procedure, delete the existing .env file, and then restart the installation.": "Un fichier .env existe déjà. Arrêtez la procédure d'installation, supprimez le fichier .env existant, puis redémarrez l'installation.", - "A valid Cell phone number is required for SMS two-factor authentication.": "A valid Cell phone number is required for SMS two-factor authentication.", - "A variable key name is a symbolic name to reference information.": "Un nom de clé de variable est un nom symbolique qui permet de référencer l'information.", - "About ProcessMaker": "À propos de ProcessMaker", - "About": "À propos", - "Access token generated successfully": "Le jeton d'accès a bien été généré", - "Account Timeout": "Fin de session", - "action": "action", - "Actions": "Actions", - "Add a Task": "Ajouter une tâche", - "Add Category": "Ajouter une catégorie", - "Add Column": "Ajouter une colonne", - "Add New Column": "Ajouter une nouvelle colonne", - "Add New Option": "Ajouter une nouvelle option", - "Add New Page": "Ajouter une nouvelle page", - "Add Option": "Ajouter une option", - "Add Property": "Ajouter une propriété", - "Add Record": "Ajouter un enregistrement", - "Add Screen": "Ajouter un écran", - "Add User To Group": "Ajouter un utilisateur au groupe", - "Add Users": "Ajouter des utilisateurs", - "Add to clipboard": "Ajouter au presse-papier", - "Address": "Adresse", - "Admin": "Administrateur", - "Advanced Search": "Recherche avancée", - "Advanced": "Avancée", - "After importing, you can reassign users and groups to your Process.": "Après l'importation, vous pouvez réattribuer des utilisateurs et groupes à votre processus.", - "After": "Après", - "All assignments were saved.": "Toutes les attributions ont été sauvegardées", - "All Notifications": "Toutes les notifications", - "All Requests": "Toutes les demandes", - "All Rights Reserved": "Tous droits réservés", - "All the configurations of the screen will be exported.": "Toutes les configurations de l'écran seront exportées.", - "Allow Reassignment": "Autoriser la réaffectation", - "Allows the Task assignee to reassign this Task": "Permet au responsable de tâche de réaffecter cette tâche", - "Allowed Group": "Groupe autorisé", - "Allowed Groups": "Groupes autorisés", - "Allowed User": "Utilisateur autorisé", - "Allowed Users": "Utilisateurs autorisés", - "An error occurred. Check the form for errors in red text.": "Une erreur s’est produite. Vérifiez le formulaire pour connaître les erreurs (texte rouge).", - "and click on +Process to get started.": "et cliquez sur +Processus pour démarrer.", - "API Tokens": "Jetons API", - "Apply": "Appliquer", - "Archive Processes": "Archiver des processus", - "Archive": "Archiver", - "Archived Processes": "Processus archivés", - "Are you ready to begin?": "Êtes-vous prêt à commencer ?", - "Are you sure to delete the group ": "Voulez-vous vraiment supprimer le groupe ? ", - "Are you sure you want to delete the token ": "Voulez-vous vraiment supprimer ce jeton ", - "Are you sure you want to delete the calc ?:": "Etes-vous sûr de vouloir supprimer le calcul ?", - "Are you sure you want cancel this request ?": "Voulez-vous vraiment annuler cette demande ?", - "Are you sure you want to archive the process ": "Voulez-vous vraiment archiver le processus ? ", - "Are you sure you want to archive the process": "Voulez-vous vraiment archiver le processus ? ", - "Are you sure you want to complete this request?": "Voulez-vous vraiment compléter cette demande ?", - "Are you sure you want to delete {{item}}?": "Voulez-vous vraiment supprimer {{item}} ?", - "Are you sure you want to delete {{item}}? Deleting this asset will break any active tasks that are assigned.": "Voulez-vous vraiment supprimer {{item}} ? Supprimer cet élément interrompra toute tâche active attribuée.", - "Are you sure you want to delete the auth client": "Voulez-vous vraiment supprimer le client authentifié", - "Are you sure you want to delete the screen {{item}}? Deleting this asset will break any active tasks that are assigned.": "Voulez-vous vraiment supprimer l'écran {{item}} ? Supprimer cet élément interrompra toute tâche active attribuée.", - "Are you sure you want to delete the user": "Voulez-vous vraiment supprimer l'utilisateur", - "Are you sure you want to remove the user from the group ": "Voulez-vous vraiment retirer l'utilisateur du groupe ? ", - "Are you sure you want to remove this record?": "Voulez-vous vraiment supprimer l'enregistrement ?", - "Are you sure you want to reset the UI styles?": "Voulez-vous vraiment réinitialiser les styles de l'IU ?", - "Are you sure you want to escalate this task?": "Voulez-vous vraiment faire remonter cette tâche ?", - "as": "en tant que", - "Assign all permissions to this group": "Attribuer toutes les autorisations à ce groupe", - "Assign all permissions to this user": "Attribuer toutes les autorisations à cet utilisateur", - "Assign by Expression Use a rule to assign this Task conditionally": "Affecter par expression : utiliser une règle pour affecter cette tâche de manière conditionnelle", - "Assign Call Activity": "Attribuer une activité d'appel", - "Assign Start Event": "Attribuer un événement de début", - "Assign task": "Attribuer une tâche", - "Assign data source watcher in :screen": "Attribuer un observateur de source de données dans :screen", - "Assign user to task": "Affecter l'utilisateur à une tâche", - "Assign": "Attribuer", - "Assigned Group": "Groupe affecté", - "Assigned To": "Attribuée à", - "Assigned User": "Utilisateur affecté", - "Assigned": "Attribuée", - "Assignee Permissions": "Autorisations du responsable", - "Assignee": "Destinataire", - "Assignment Options": "Options d'affectation", - "Association Flow": "Flux d'association", - "Association": "Association", - "Auth Client": "Client authentifié", - "Auth Clients": "Clients authentifiés", - "Auth-Clients": "Clients authentifiés", - "Auto validate": "Valider automatiquement", - "Avatar": "Avatar", - "Back to Login": "Revenir à l'ouverture de session", - "Background Color": "Couleur de fond", - "Basic Search": "Recherche de base", - "Basic": "Base", - "Body of the text annotation": "Corps de texte de l'annotation", - "Bold": "Gras", - "Boolean": "Booléen", - "Boundary Events": "Événement de limite", - "Both": "Les deux", - "Bottom": "En bas", - "BPMN": "BPMN", - "Browse": "Parcourir", - "Button Label": "Étiquette de bouton", - "Button Variant Style": "Style de variante bouton", - "Calcs": "Calculs", - "Calculated Properties": "Propriétés calculées", - "Call Activity": "Activité d'appel", - "Cancel Request": "Annuler la demande", - "Cancel Screen": "Annuler l'écran", - "Cancel": "Annuler", - "Canceled": "Annulé", - "CAPTCHA controls cannot be placed within a Loop control.": "La vérification CAPTCHA ne peut pas être placée au sein d'une commande de boucle.", - "Categories are required to create a process": "Les catégories sont obligatoires pour créer un processus", - "Categories": "Catégories", - "Category Name": "Nom de catégorie", - "Category": "Catégorie", - "Caution!": "Attention !", - "Cell": "Mobile", - "Center": "Centré", - "Change Password": "Modifier le mot de passe", - "Change Type": "Modifier le type", - "Changing this type will replace your current configuration": "En modifiant ce type, votre configuration actuelle sera remplacée", - "Checkbox": "Case à cocher", - "Checked by default": "Coché par défaut", - "Choose icon image": "Choisir l'image de l'icône", - "Choose logo image": "Choisir l'image du logo", - "City": "Ville", - "Clear Color Selection": "Effacer la sélection de couleurs", - "Click After to enter how many occurrences to end the timer control": "Cliquer sur « Après » afin de renseigner le nombre d'occurrences nécessaires pour mettre fin au contrôle temporisateur", - "Click on the color value to use the color picker.": "Cliquez sur la couleur pour utiliser la pipette.", - "Click On to select a date": "Cliquer sur « Le » pour sélectionner une date", - "Click the browse button below to get started": "Cliquez sur le bouton Parcourir ci-dessous pour commencer", - "Client ID": "Identifiant client", - "Clipboard Pasted Succesfully": "Presse-papiers collé avec succès", - "Client Secret": "Clé secrète client", - "Close": "FERMER", - "Collection Select": "Sélection d'une collection", - "Collections": "Collections", - "Colspan": "Colspan", - "Column Width": "Largeur de colonne", - "Column Widths": "Largeurs de colonne", - "Column": "Colonne", - "Column not found: ": "Colonne introuvable : ", - "Comments": "Commentaires", - "Common file types: application/msword, image/gif, image/jpeg, application/pdf, application/vnd.ms-powerpoint, application/vnd.ms-excel, text/plain": "Types de fichier courants : application/msword, image/gif, image/jpeg, application/pdf, application/vnd.ms-powerpoint, application/vnd.ms-excel, text/plain", - "Completed Tasks": "Tâches terminées", - "Completed": "Terminée", - "completed": "terminée", - "Configuration": "Configuration", - "Configure Process": "Configurer le processus", - "Configure Screen": "Configurer l'écran", - "Configure Script": "Configurer le script", - "Configure": "Configurer", - "Confirm Password": "Confirmer le mot de passe", - "Confirm": "Confirmer", - "Congratulations": "Félicitations", - "Contact Information": "Coordonnées", - "Contact your administrator for more information": "Contactez votre administrateur pour en savoir plus", - "Content": "Contenu", - "Continue": "Continuer", - "Control is read only": "Cette commande est en lecture seule", - "Control Not Found": "Contrôle introuvable", - "Controls": "Commandes", - "Converging": "Convergent", - "Copied": "Copié", - "Copy Client Secret To Clipboard": "Copier la clé secrète client dans le presse-papiers", - "Copy Screen": "Copier l'écran", - "Copy Script": "Copier le script", - "Copy Token To Clipboard": "Copier le jeton dans le presse-papiers", - "Copy": "Copier", - "Count": "Nombre", - "Country": "Pays", - "Create An Auth-Client": "Créer un client authentifié", - "Create AuthClients": "Créer des clients authentifiés", - "Create Categories": "Créer des catégories", - "Create Category": "Créer une catégorie", - "Create Comments": "Créer des commentaires", - "Create Environment Variable": "Créer une variable d'environnement", - "Create Environment Variables": "Créer des variables d'environnement", - "Create Files": "Créer des fichiers", - "Create Group": "Créer un groupe", - "Create Groups": "Créer des groupes", - "Create Notifications": "Créer des notifications", - "Create Process": "Créer un processus", - "Create Processes": "Créer des processus", - "Create Screen": "Créer un écran", - "Create Screens": "Créer des écrans", - "Create Script": "Créer un script", - "Create Scripts": "Créer des scripts", - "Create Task Assignments": "Créer des attributions de tâches", - "Create User": "Créer un utilisateur", - "Create Users": "Créer des utilisateurs", - "Created At": "Créé à", - "Created": "Créé le", - "CSS Selector Name": "Nom du sélecteur CSS", - "CSS": "CSS", - "Currency": "Devise", - "Current Local Time": "Heure locale actuelle", - "Custom Colors": "Couleurs personnalisées", - "Custom CSS": "CSS personnalisé", - "Custom Favicon": "Favicon personnalisée", - "Custom Icon": "Icône personnalisée", - "Custom Logo": "Logo personnalisé", - "Custom Message to display when the panel has no data. Supports HTML and Mustache placeholders": "Message personnalisé à afficher lorsque le panneau n'a pas de données. Prend en charge le HTML et les placeholders Mustache", - "Customize UI": "Personnaliser l'IU", - "Cycle": "Cycle", - "danger": "danger", - "dark": "foncé", - "Data Input": "Entrée de données", - "Data Name": "Nom des données", - "Data Preview": "Aperçu des données", - "Data Source": "Source des données", - "Data Type": "Type de donnée", - "Data": "Données", - "Database connection failed. Check your database configuration and try again.": "La connexion à la base de données a échoué. Vérifiez la configuration de votre base de données et réessayez.", - "Date Format": "Format de date", - "Date Picker": "Sélecteur de dates", - "Date": "Date", - "Date/Time": "Date/heure", - "Datetime": "Date et heure", - "day": "jour", - "Debugger": "Débogueur", - "Decimal": "Décimal", - "Declare as global": "Déclarer comme global", - "Select default process status": "Sélectionnez un statut de processus par défaut", - "Delay": "Retarder", - "Delete Auth-Clients": "Supprimer des clients authentifiés", - "Delete Categories": "Supprimer des catégories", - "Delete Comments": "Supprimer des commentaires", - "Delete Control": "Supprimer la commande", - "Delete Environment Variables": "Supprimer des variables d'environnement", - "Delete Files": "Supprimer des fichiers", - "Delete Groups": "Supprimer des groupes", - "Delete Notifications": "Supprimer des notifications", - "Delete Page": "Supprimer la page", - "Delete Record": "Supprimer un enregistrement", - "Delete Screens": "Supprimer des écrans", - "Delete Scripts": "Supprimer des scripts", - "Delete Task Assignments": "Supprimer des attributions de tâches", - "Delete Users": "Supprimer des utilisateurs", - "Delete": "Supprimer", - "Description": "Description", - "Design": "Conception", - "Design Screen": "Écran de conception", - "Destination Screen": "Écran de destination", - "Destination": "Destination", - "Details": "Détails", - "Determine the URL where the request will end": "Déterminer l'URL où se terminera la demande", - "Direction": "Chemin", - "Disabled": "Désactivé", - "Dismiss Alert": "Rejeter l'alerte", - "Dismiss All": "Rejeter tout", - "Dismiss": "Rejeter", - "display": "afficher", - "Display Next Assigned Task to Task Assignee": "Afficher la prochaine tâche affectée au responsable de tâche", - "Diverging": "Divergent", - "Docker not found.": "Docker introuvable.", - "Download Name": "Nom du téléchargement", - "Download XML": "Télécharger un fichier XML", - "Download": "Télécharger", - "Drag an element here": "Faire glisser un élément ici", - "Drop a file here to upload or": "Déposez le fichier à importer ici ou", - "Due In": "Échéance dans", - "due": "due", - "Duplicate": "Dupliquer", - "Duration": "Durée", - "Edit as JSON": "Modifier en tant que JSON", - "Edit Auth Clients": "Modifier des clients authentifiés", - "Edit Categories": "Modifier des catégories", - "Edit Category": "Modifier la catégorie", - "Edit Comments": "Modifier des commentaires", - "Edit Data": "Modifier les données", - "Edit Environment Variable": "Modifier la variable d'environnement", - "Edit Environment Variables": "Modifier des variables d'environnement", - "Edit Files": "Modifier des fichiers", - "Edit Group": "Modifier le groupe", - "Edit Groups": "Modifier des groupes", - "Edit Notifications": "Modifier des notifications", - "Edit Option": "Modifier l'option", - "Edit Page Title": "Modifier le titre de la page", - "Edit Page": "Modifier la page", - "Edit Process Category": "Modifier la catégorie de processus", - "Edit Process": "Modifier le processus", - "Edit Processes": "Modifier des processus", - "Edit Profile": "Modifier le profil", - "Edit Record": "Modifier un enregistrement", - "Edit Request Data": "Modifier les données de la demande", - "Edit Screen": "Modifier l'écran", - "Edit Screens": "Modifier des écrans", - "Edit Script": "Modifier le script", - "Edit Scripts": "Modifier des scripts", - "Edit Task Assignments": "Modifier des attributions de tâches", - "Edit Task Data": "Modifier les données de la tâche", - "Edit Task": "Modifier une tâche", - "Edit Users": "Modifier des utilisateurs", - "Edit": "Modifier", - "Editable?": "Modifiable ?", - "Editor": "Éditeur", - "Element Background color": "Couleur de fond de l'élément", - "Element has disallowed type": "L'élément a interdit ce type", - "Element is missing label/name": "Étiquette/nom manquant(e) pour l'élément", - "Element is not connected": "L'élément n'est pas connecté", - "Element": "Élément", - "Element Destination": "Destination de l'élément", - "Email Address": "Adresse e-mail", - "Email": "E-mail", - "Empty State Message": "Message d'état vide", - "Enable": "Activer", - "Enabled": "Activé", - "End date": "Date de fin", - "End Event": "Événement de fin", - "Ends": "Fin", - "English (US)": "Anglais (US)", - "Enter how many seconds the Script runs before timing out (0 is unlimited).": "Veuillez saisir le nombre de secondes d'exécution du script avant l'expiration de la session (0 = illimité).", - "Enter the error name that is unique from all other elements in the diagram": "Saisir le nom d'erreur unique à tous les autres éléments du diagramme", - "Enter the expression that describes the workflow condition": "Saisissez l'expression correspondant à la condition du workflow", - "Enter the expression to evaluate Task assignment": "Saisir l'expression pour évaluer l'affectation à une tâche", - "Enter the hours until this Task is overdue": "Saisir le nombre d'heures restantes avant que cette tâche soit en retard", - "Enter the id that is unique from all other elements in the diagram": "Saisir l'identifiant unique à tous les autres éléments du diagramme", - "Enter the JSON to configure the Script": "Saisir le JSON pour configurer le script", - "Enter the message name that is unique from all other elements in the diagram": "Saisir le nom du message unique à tous les autres éléments du diagramme", - "Enter the name of this element": "Saisir le nom de cet élément", - "Enter the variable containing one or more numeric user IDs": "Saisissez la variable contenant un ou plusieurs identifiants d'utilisateur numériques", - "Enter the variable containing one or more numeric group IDs": "Saisissez la variable contenant un ou plusieurs identifiants de groupe numériques", - "Enter your email address and we'll send you a reset link.": "Entrez votre adresse e-mail et nous vous enverrons un lien de réinitialisation.", - "Enter your MySQL database name:": "Entrez le nom de votre base de données MySQL :", - "Enter your MySQL host:": "Entrez votre hôte MySQL :", - "Enter your MySQL password (input hidden):": "Entrez votre mot de passe MySQL (entrée masquée) :", - "Enter your MySQL port (usually 3306):": "Entrez votre port MySQL (généralement 3306) :", - "Enter your MySQL username:": "Entrez votre nom d'utilisateur MySQL :", - "Environment Variable": "Variable d'environnement", - "Environment Variables": "Variables d'environnement", - "Error": "Erreur", - "Error Name": "Nom d'erreur", - "Errors": "Erreurs", - "Event has multiple event definitions": "L'événement possède plusieurs définitions d'événement", - "Event-based Gateway": "Branchement basé sur des événements", - "Event Based Gateway": "Branchement basé sur des événements", - "Exclusive Gateway": "Branchement exclusif", - "Expires At": "Expire à", - "Export Process": "Exporter le processus", - "Export Processes": "Exporter des processus", - "Export Screen": "Exporter l'écran", - "Export": "Exporter", - "Expression": "Expression", - "F": "Ve", - "Failed to connect to MySQL database. Ensure the database exists. Check your credentials and try again.": "Échec de la connexion à la base de données MySQL. Assurez-vous que la base de données existe. Vérifiez vos informations d'identification et réessayez.", - "Fax": "Fax", - "Field Label": "Étiquette de champ", - "Field Name": "Nom du champ", - "Field Type": "Type de champ", - "Field Value": "Valeur du champ", - "Field:": "Champ :", - "Fields List": "Liste des champs", - "File Accepted": "Fichier accepté", - "File Download": "Téléchargement de fichiers", - "File Name": "Nom de fichier", - "File not allowed.": "Fichier non autorisé", - "File Upload": "Importation de fichiers", - "Files (API)": "Fichiers (API)", - "Files": "Fichiers", - "File ID does not exist": "Cet ID de fichier n'existe pas", - "Filter Controls": "Commandes de filtre", - "Filter the column:": "Filtrer la colonne:", - "Filter": "Filtrer", - "Finding Cases available to you...": "Trouver des demandes disponibles pour vous...", - "First Name": "Prénom", - "Flow splits implicitly": "Le flux se divise implicitement", - "Font Size": "Taille de police", - "Font Weight": "Épaisseur de police", - "Font": "Police", - "For security purposes, this field will always appear empty": "Pour des raisons de sécurité, ce champ apparaîtra toujours vide", - "Forgot Password?": "Mot de passe oublié ?", - "Forgot Your Password?": "Vous avez oublié votre mot de passe ?", - "Form": "Formulaire", - "Formula:": "Formule :", - "Formula": "Formule", - "Full Name": "Nom et prénom", - "Gateway forks and joins": "Le branchement se divise et se rejoint", - "Gateway": "Branchement", - "Gateway :flow_label": "Branchement :flow_label", - "Generate New Token": "Générer un nouveau jeton", - "Get Help": "Obtenir de l'aide", - "global": "mondial", - "Group Details": "Détails du groupe", - "Group Members": "Membres du groupe", - "Group name must be unique": "Le nom du groupe doit être unique", - "Group Permissions Updated Successfully": "Les autorisations du groupe ont bien été mises à jour", - "Group Permissions": "Autorisations du groupe", - "Group Manager": "Gestionnaire de groupe", - "group": "Groupe", - "Group": "Groupe", - "Groups": "Groupes", - "Height": "Hauteur", - "Help text is meant to provide additional guidance on the field's value": "Vise à fournir des indications supplémentaires sur la valeur du champ", - "Help Text": "Texte d'aide", - "Help": "Aide", - "Helper Text": "Texte de l'assistant", - "Hide Details": "Masquer les détails", - "Hide Menus": "Masquer les menus", - "Hide Mini-Map": "Masquer la carte miniature", - "Horizontal alignment of the text": "Alignement horizontal du texte", - "hour": "heure", - "ID": "Identifiant", - "Identifier": "Identifiant", - "Image height": "Hauteur de l'image", - "Image id": "Identifiant de l'image", - "Image name": "Nom de l'image", - "image width": "Largeur de l'image", - "Image": "Image", - "Image types accepted: .gif, .jpg, .jpeg, .png": "Types d'image acceptés : .gif, .jpg, .jpeg, .png", - "Import Process": "Importer un processus", - "Import Processes": "Importer des processus", - "Import Screen": "Importer l'écran", - "Import": "Importer", - "Importing": "Importation en cours", - "In Progress": "En cours", - "Inclusive Gateway": "Branchement inclusif", - "Incoming flows do not join": "Les flux entrants ne se rejoignent pas", - "Incomplete import of": "Importation incomplète de", - "Indexed Search": "Recherche indexée", - "info": "info", - "Information form": "Formulaire d'information", - "Information": "Informations", - "initial": "initial", - "Initially Checked?": "Déjà cochée ?", - "Input Data": "Données d'entrée", - "Inspector": "Inspecteur", - "Installer completed. Consult ProcessMaker documentation on how to configure email, jobs and notifications.": "Le programme d'installation est terminé. Consultez la documentation de ProcessMaker pour savoir comment configurer l'adresse e-mail, les tâches et les notifications.", - "Installing ProcessMaker database, OAuth SSL keys and configuration file.": "Installation de la base de données ProcessMaker, des clés SSL OAuth et du fichier de configuration.", - "Integer": "Entier", - "Intermediate Event": "Événement intermédiaire", - "Intermediate Message Catch Event": "Événement intermédiaire de réception de message", - "Intermediate Timer Event": "Événement intermédiaire temporisateur", - "Interrupting": "Interruption en cours", - "Invalid JSON Data Object": "Objet de données JSON non valide", - "IP/Domain whitelist": "Ajoutez l'adresse IP/le domaine sur liste blanche", - "It must be a correct json format": "Il doit s'agir d'un format JSON correct", - "Job Title": "Intitulé du poste", - "Json Options": "Options JSON", - "Justify": "Justifié", - "Key Name": "Nom de clé", - "Key": "Clé", - "Label": "Étiquette", - "Label Undefined": "Étiquette non définie", - "Lane Above": "Couloir du dessus", - "Lane Below": "Couloir du dessous", - "Lane": "Couloir", - "lang-de": "Allemand", - "lang-en": "Anglais", - "lang-es": "Espagnol", - "lang-fr": "Français", - "Language:": "Langue :", - "Language": "Langue", - "Last Login": "Dernière connexion", - "Last Name": "Nom", - "Last Saved:": "Dernière sauvegarde :", - "Leave the password blank to keep the current password:": "Laissez le mot de passe vide pour conserver le mot de passe actuel :", - "Left": "Gauche", - "light": "clair", - "Line Input": "Entrée de ligne", - "Link": "Lien", - "List Label": "Étiquette de liste", - "List Name": "Nom de la liste", - "List of fields to display in the record list": "Liste des champs à afficher dans la liste des enregistrements", - "List of options available in the radio button group": "Liste des options disponibles dans le groupe de boutons radio", - "List of options available in the select drop down": "Liste d'options disponibles dans la liste déroulante de sélection", - "List Processes": "Liste des processus", - "Loading...": "Chargement...", - "Loading": "Chargement", - "Localization": "Localisation", - "Lock task assignment to user": "Verrouiller les attributions de tâches à l'utilisateur", - "Log In": "Ouvrir une session", - "Log Out": "Fermer la session", - "Loop": "Boucle", - "M": "Lu", - "Make sure you copy your access token now. You won't be able to see it again.": "Assurez-vous de copier votre jeton d'accès. Vous ne pourrez plus le voir.", - "Make this user a Super Admin": "Faire de cet utilisateur un super administrateur", - "Manual Task": "Tâche manuelle", - "Manually Complete Request": "Compléter manuellement la requête", - "Manually reconfigure the dashboard using an existing one in the environment.": "Reconfigurez manuellement le tableau de bord en utilisant un tableau de bord existant dans l'environnement.", - "Message Event Identifier": "Identifiant de l'événement de message", - "Message Flow": "Flux de message", - "Middle": "Au milieu", - "MIME Type": "Type MIME", - "minute": "minute", - "Modeler": "Modélisateur", - "Modified": "Modifié le", - "month": "mois", - "Must be unique": "Doit être unique", - "Multi Column": "Plusieurs colonnes", - "Multicolumn / Table": "Tableau / Colonnes multiples", - "My Requests": "Mes demandes", - "Name must be unique": "Le nom doit être unique", - "Name of Variable to store the output": "Nom de la variable pour stocker la sortie", - "name": "Nom", - "Name": "Nom", - "Navigation": "Navigation", - "Never": "Jamais", - "New Boundary Timer Event": "Nouvel événement de limite temporisateur", - "New Boundary Message Event": "Nouvel événement de message de limite", - "New Call Activity": "Nouvelle activité d'appel", - "New Checkbox": "Nouvelle case à cocher", - "New Collection Select": "Nouvelle sélection de collection", - "New Date Picker": "Nouveau sélecteur de dates", - "New Event-Based Gateway": "Nouveau branchement basé sur des événements", - "New Exclusive Gateway": "Nouveau branchement exclusif", - "New File Download": "Nouveau téléchargement de fichiers", - "New File Upload": "Nouvelle importation de fichiers", - "New Inclusive Gateway": "Nouveau branchement inclusif", - "New Input": "Nouvelle entrée", - "New Manual Task": "Nouvelle tâche manuelle", - "New Option": "Nouvelle option", - "New Page Navigation": "Nouvelle navigation entre les pages", - "New Parallel Gateway": "Nouveau branchement parallèle", - "New Password": "Nouveau mot de passe", - "New Pool": "Nouveau groupement", - "New Radio Button Group": "Nouveau groupe de boutons radio", - "New Record List": "Nouvelle liste d'enregistrements", - "New Request": "Nouvelle demande", - "New Script Task": "Nouvelle tâche de script", - "New Select": "Nouvelle sélection", - "New Sequence Flow": "Nouveau flux de séquence", - "New Submit": "Nouvel envoi", - "New Sub Process": "Nouveau sous-processus", - "New Task": "Nouvelle tâche", - "New Text Annotation": "Nouvelle annotation textuelle", - "New Text": "Nouveau texte", - "New Textarea": "Nouvelle zone de texte", - "No Data Available": "Aucune donnée disponible", - "No data available for this dynamic panel": "Aucune donnée disponible pour ce panneau dynamique", - "No Data Found": "Aucune donnée trouvée", - "No elements found. Consider changing the search query.": "Aucun élément n'a été trouvé. Modifiez la requête de recherche.", - "No Errors": "Aucune erreur", - "No files available for download": "Aucun fichier à télécharger", - "No Notifications Found": "Aucune notification trouvée", - "No permissions to access this content": "Pas d'autorisation pour accéder à ce contenu", - "no problems to report": "Aucun problème à signaler", - "No relevant data": "Aucune donnée pertinente", - "No Results": "Aucun résultat", - "Node Identifier": "Identificateur de nœud", - "None": "Aucun", - "Normal": "Normal", - "Not Authorized": "Action non autorisée", - "Notifications (API)": "Notifications (API)", - "Notifications Inbox": "Boîte de réception des notifications", - "Notifications": "Notifications", - "Notify Participants": "Avertir les participants", - "Notify Process Manager": "Avertir le gestionnaire de processus", - "Notify Requester": "Avertir le demandeur", - "occurrences": "occurrences", - "Ok": "OK", - "On": "Le", - "One": "Un", - "Only the logged in user can create API tokens": "Seul l'utilisateur connecté peut créer des jetons API", - "Oops! No elements found. Consider changing the search query.": "Oups ! Aucun élément n'a été trouvé. Modifiez la requête de recherche.", - "Oops!": "Oups !", - "Open Console": "Ouvrir la console", - "Open Request": "Ouvrir la demande", - "Open Task": "Ouvrir la tâche", - "Options List": "Liste d'options", - "Options": "Options", - "organization": "entreprise", - "Output": "Sortie", - "Output Variable Name": "Nom de la variable de sortie", - "Overdue": "en retard", - "Owner": "Propriétaire", - "Package installed": "Package installé", - "Page": "Page", - "Page Name": "Nom de la page", - "Page Navigation": "Navigation entre les pages", - "Page not found - ProcessMaker": "Page introuvable - ProcessMaker", - "Pagination": "pagination", - "Parallel Gateway": "Branchement parallèle", - "Participants": "Participants", - "participants": "Participants", - "Password Grant Client ID": "ID Password Grant Client", - "Password Grant Secret": "Secret Password Grant", - "Password": "Mot de passe", - "Passwords must be at least six characters and match the confirmation.": "Les mots de passe doivent comporter au moins six caractères et correspondre à la confirmation du mot de passe.", - "Pause Start Timer Events": "Mettre en pause les événements de début temporisateur", - "Pause Timer Start Events": "Mettre en pause les événements de démarrage", - "Permission To Start": "Permission pour démarrer", - "Permissions": "Autorisations", - "Phone": "Téléphone", - "Placeholder Text": "Texte de remplacement", - "Placeholder": "Placeholder", - "Please assign a run script user to: ": "Veuillez attribuer un utilisateur de script d'exécution à : ", - "Please change your account password": "Veuillez modifier votre mot de passe", - "Please contact your administrator to get started.": "Contactez votre administrateur pour démarrer.", - "Please log in to continue your work on this page.": "Veuillez vous connecter de nouveau pour poursuivre votre travail sur cette page.", - "Please visit the Processes page": "Consultez la page des Processus", - "Please wait while the files are generated. The screen will be updated when finished.": "Merci de patienter pendant la génération des fichiers. L'écran sera actualisé une fois l'action terminée.", - "Please wait while your content is loaded": "Veuillez patienter pendant le chargement de votre contenu", - "Pool": "Groupement", - "Postal Code": "Code postal", - "Preview Screen was Submitted": "L'écran d'aperçu a été soumis", - "Preview": "Aperçu", - "Preview Screen": "Écran d'aperçu", - "Previous Task Assignee": "Précédent responsable de tâche", - "primary": "primaire", - "Print": "Imprimer", - "Problems": "Problèmes", - "Process Archive": "Archive des processus", - "Process Categories": "Catégories de processus", - "Process Category": "Catégorie du processus", - "Process has multiple blank start events": "Le processus comporte plusieurs événements de début vides", - "Process is missing end event": "Le processus ne comporte pas d'événement de fin", - "Process is missing start event": "Le processus ne comporte pas d'événement de début", - "Process": "Processus", - "Processes Dashboard": "Tableau de bord des processus", - "processes": "Processus", - "ProcessMaker database installed successfully.": "La base de données ProcessMaker a bien été installée.", - "ProcessMaker does not import Environment Variables or Enterprise Packages. You must manually configure these features.": "ProcessMaker n’importe pas de variables d’environnement ni de packages d’entreprise. Vous devez configurer ces fonctionnalités manuellement.", - "ProcessMaker installation is complete. Please visit the URL in your browser to continue.": "L'installation de ProcessMaker est terminée. Ouvrez l'URL dans votre navigateur pour continuer.", - "ProcessMaker Installer": "Programme d'installation de ProcessMaker", - "ProcessMaker is busy processing your request.": "ProcessMaker est en train de traiter votre demande.", - "ProcessMaker Modeler": "Modélisateur ProcessMaker", - "ProcessMaker requires a MySQL database created with appropriate credentials.": "ProcessMaker nécessite une base de données MySQL créée avec les informations d'identification appropriées.", - "ProcessMaker v4.0 Beta 4": "ProcessMaker v4.0 bêta 4", - "Profile": "Profil", - "Property already exists": "La propriété existe déjà", - "Property deleted": "Propriété supprimée", - "Property Edited": "Propriété modifiée", - "Property Name": "Nom de la propriété", - "Property Saved": "Propriété enregistrée", - "Queue Management": "Gestion de la file d'attente", - "Radio Button Group": "Groupe de boutons radio", - "Radio Group": "Groupe de boutons radio", - "Read Only": "Lecture seule", - "Reassign to": "Réattribuer à", - "Reassign": "Réattribuer", - "Record Form": "Formulaire d'enregistrement", - "Record List": "Liste d'enregistrements", - "Recurring loop repeats at time interval set below": "La boucle récurrente sera répétée à l'intervalle défini ci-dessous", - "Redirect URL": "URL de redirection", - "Redirect": "Rediriger", - "redirected to my next assigned task": "redirigé vers la prochaine tâche attribuée", - "Redo": "Rétablir", - "Refresh": "Actualiser", - "Regenerating CSS Files": "Nouvelle génération des fichiers CSS en cours", - "Remember me": "Mémoriser mes informations", - "Remove from clipboard": "Retirer du presse-papiers", - "Remove from Group": "Retirer du groupe", - "Remove the .env file to perform a new installation.": "Supprimez le fichier .env pour effectuer une nouvelle installation.", - "Remove": "Retirer", - "Render Options As": "Afficher les options comme", - "Repeat every": "Répéter tous les", - "Repeat on": "Répéter le", - "Report an issue": "Signaler un problème", - "Request All": "Toutes les demandes", - "Request Canceled": "Demande annulée", - "Request Completed": "Demande terminée", - "Request Detail Screen": "Écran des détails de la demande", - "Request Detail": "Détails de la demande", - "Request In Progress": "Demande en cours", - "Request Received!": "Demande reçue !", - "Request Reset Link": "Demander un lien de réinitialisation", - "Request Started": "Demande initiée", - "Request": "Demande", - "Requested By": "Demande effectuée par", - "requester": "demandeur", - "requesters": "demandeurs", - "Requests": "Demandes", - "Request Variable Name": "Nom de la variable de requête", - "Non-array data will result in an error.": "Les données hors tableau entraîneront une erreur.", - "Output Data Variable": "Variable de données de sortie", - "Exit Condition": "Condition de sortie", - "FEEL Syntax": "Syntaxe FEEL", - "When the FEEL Expression evaluates to true then exit the loop": "Lorsque l'évaluation indique que l'expression FEEL est vraie, l'utilisateur peut quitter la boucle", - "Maximum Iterations": "Itérations maximales", - "Leave empty to continue until exit condition is satisfied": "Laissez vide pour poursuivre jusqu'à ce que la condition de sortie soit satisfaite", - "When FEEL expression evaluates to true then exit loop": "Lorsque l'évaluation indique que l'expression FEEL est vraie, l'utilisateur peut quitter la boucle", - "Reset": "Réinitialiser", - "Reset to initial scale": "Réinitialiser à l'échelle initiale", - "Restore": "Restaurer", - "Rich Text Content": "Contenu en texte enrichi", - "Rich Text": "Texte enrichi", - "Right": "Droite", - "Rows": "Lignes", - "Rule": "Règle", - "Run Script As": "Exécuter le script en tant que", - "Run script": "Exécuter le script", - "Run Synchronously": "Exécuter de manière synchrone", - "Run": "Lancer", - "S": "Di", - "Sa": "Sa", - "Sample Input": "Exemple d'entrée", - "Save Property": "Enregistrer la propriété", - "Save Screen": "Enregistrer l'écran", - "Save": "Enregistrer", - "Screen for Input": "Écran pour affichage", - "Screen Validation": "Validation de l'écran", - "Screen": "Écran", - "Screen Interstitial": "Écran interstitiel", - "Screens": "Écrans", - "Screen Categories": "Catégories d'écran", - "Script Config Editor": "Éditeur de configuration du script", - "Script Configuration": "Configuration du script", - "Script Source": "Source du script", - "Script Task": "Tâche de script", - "Script": "Script", - "Scripts": "Scripts", - "Search...": "Rechercher...", - "Search": "Rechercher", - "Search variables...": "Rechercher des variables...", - "secondary": "secondaire", - "Select a collection and fill the fields that will be used in the dropdownlist": "Sélectionnez une collection et remplissez les champs qui seront utilisés dans le menu déroulant", - "Select a user to set the API access of the Script": "Sélectionnez un utilisateur pour définir l'accès API du script", - "Select All": "Sélectionner Tout", - "Select allowed group": "Sélectionner le groupe autorisé", - "Select allowed groups": "Sélectionnez les groupes autorisés", - "Select allowed user": "Sélectionner l'utilisateur autorisé", - "Select allowed users": "Sélectionnez les utilisateurs autorisés", - "Select element destination": "Sélectionner la destination de l'élément", - "Select Direction": "Sélectionnez un chemin", - "Select Display-type Screen to show the summary of this Request when it completes": "Sélectionner « Type d'affichage » pour afficher le résumé de cette demande une fois qu'elle sera terminée", - "select file": "Sélectionner le fichier", - "Select from which Intermediate Message Throw or Message End event to listen": "Sélectionner à partir de quel événement intermédiaire de lancement de message ou de fin de message vous souhaitez procéder à l'écoute", - "Select List": "Sélectionner une liste", - "Select group or type here to search groups": "Sélectionner un groupe ou entrer du texte ici pour rechercher des groupes", - "Select Screen to display this Task": "Sélectionner « Écran » pour afficher cette tâche", - "Select the Script this element runs": "Sélectionner le script exécuté par cet élément", - "Select the date to trigger this element": "Sélectionner la date de déclenchement de cet élément", - "Select the dashboard to show the summary of this request when it completes": "Sélectionnez le tableau de bord pour afficher le résumé de cette demande une fois celle-ci terminée", - "Select the day(s) of the week in which to trigger this element": "Sélectionner le ou les jours de la semaine au cours desquels cet élément doit être déclenché", - "Select the direction of workflow for this element": "Sélectionner le chemin du workflow de cet élément", - "Select the duration of the timer": "Sélectionner la durée du temporisateur", - "Select the group from which any user may start a Request": "Sélectionner le groupe depuis lequel les utilisateurs peuvent initier une demande", - "Select the type of delay": "Sélectionner le type de retard", - "Select which Process this element calls": "Sélectionner le processus qui sera appelé par cet élément", - "Select who may start a Request": "Sélectionner les utilisateurs pouvant initier une demande", - "Select who may start a Request of this Process": "Sélectionner les utilisateurs pouvant initier une demande de ce processus", - "Select user or type here to search users": "Sélectionner un utilisateur ou entrer du texte ici pour rechercher des utilisateurs", - "Select variables to submit, otherwise all variables will be submitted by default.": "Sélectionnez les variables à soumettre, sinon toutes les variables seront soumises par défaut.", - "Select where to send users after this task. Any Non-default destination will disable the “Display Next Assigned Task” function.": "Sélectionnez où envoyer les utilisateurs après cette tâche. Toute destination non par défaut désactivera la fonction “Afficher la prochaine tâche assignée”.", - "Select...": "Sélectionner...", - "Select": "Sélectionner", - "Self Service": "Libre service", - "Self-Service": "Libre service", - "Set the periodic interval to trigger this element again": "Définir l'intervalle pour répéter le déclenchement de cet élément de façon régulière", - "Sequence flow is missing condition": "Condition manquante pour le flux de séquence", - "Sequence Flow": "Flux de séquence", - "Server Error - ProcessMaker": "Erreur de serveur - ProcessMaker", - "Server Error": "Erreur de serveur", - "Service Task": "Tâche de service", - "Set the element's background color": "Définir la couleur de fond de l'élément", - "Set the element's text color": "Définir la couleur de texte de l'élément", - "Should records be editable/removable and can new records be added": "Est-il possible de modifier/supprimer des enregistrements, et d'en ajouter de nouveaux", - "Should the checkbox be checked by default": "La case est cochée par défaut", - "Show in Json Format": "Afficher au format JSON", - "Show Menus": "Afficher les menus", - "Show Mini-Map": "Afficher la carte miniature", - "Something has gone wrong.": "Une erreur est survenue.", - "Something went wrong and the file cannot be previewed or downloaded.": "Une erreur s'est produite et le fichier ne peut pas être prévisualisé ou téléchargé.", - "Something went wrong. Try refreshing the application": "Une erreur s'est produite. Essayez d'actualiser l'application", - "Sorry, this request doesn't contain any information.": "Désolé, cette demande ne contient aucune information.", - "Sorry! API failed to load": "Désolé ! Échec du chargement de l'API", - "Sorry but nothing matched your search. Try a new search.": "Désolé, mais rien ne correspond à votre recherche. Essayez une nouvelle recherche.", - "Sort Ascending": "Tri croissant", - "Sort Descending": "Tri décroissant", - "Source Type": "Type de source", - "Spanish": "Espagnol", - "Start date": "Date de début", - "Start event is missing event definition": "Définition d'événement manquante pour l'événement", - "Start event must be blank": "L'événement de début doit être vide", - "Start Event": "Événement de début", - "Start Permissions": "Permissions de démarrage", - "Start Sub Process As": "Démarrer le sous-processus en tant que", - "Start Timer Event": "Événement de début temporisateur", - "Started By Me": "Initiée par moi", - "Started import of": "Importation commencée de", - "Started": "Initiée", - "STARTED": "Initiée", - "Starting": "Début", - "State or Region": "État ou région", - "Status": "Statut", - "STATUS": "Statut", - "statuses": "statuts", - "Sub Process": "Sous-processus", - "Sub process has multiple blank start events": "Le sous-processus comporte plusieurs événements de début vides", - "Sub process is missing end event": "Le sous-processus ne comporte pas d'événement de fin", - "Sub process is missing start event": "Le sous-processus ne comporte pas d'événement de début", - "Subject": "Objet", - "Submit Button": "Bouton Envoyer", - "Submit": "Envoyer", - "success": "Opération réussie", - "Successfully imported": "Importation réussie", - "Successfully saved": "Enregistrement réussi", - "Summary Screen": "Écran récapitulatif", - "Summary": "Résumé", - "System is waiting for the scheduled timer: \":event\"": "Système en attente du temporisateur programmé : « :event »", - "System is waiting for the conditional event: \":event\"": "Système en attente de l'événement conditionnel : « :event »", - "System is waiting to receive message \":event\"": "Système en attente de la réception du message « :event »", - "T": "Ma", - "Table": "Tableau", - "Task Assignment": "Affectation à une tâche", - "Select the Task assignee": "Sélectionner le responsable de tâche", - "Task Assignments (API)": "Attributions de tâches (API)", - "Task Completed Successfully": "Tâche terminée", - "Task Notifications": "Notifications de tâches", - "Task": "TÂCHE", - "Tasks": "Tâches", - "Text Annotation": "Annotation textuelle", - "Text Box": "Zone de texte", - "Text Color": "Couleur du texte", - "Text Content": "Contenu du texte", - "Text Horizontal Alignment": "Alignement horizontal du texte", - "Text Label": "Étiquette de texte", - "Text to Show": "Texte à afficher", - "Text Vertical Alignment": "Alignement vertical du texte", - "Text": "Texte", - "Textarea": "Zone de texte", - "Task Destination": "Destination de la tâche", - "Th": "Je", - "There are {{items}} validation errors in your form.": "Votre formulaire contient {{items}} erreurs de validation.", - "There is a validation error in your form.": "Votre formulaire contient une erreur de validation.", - "The :attribute must be a file of type: jpg, jpeg, png, or gif.": ":attribute doit être au format : jpg, jpeg, png ou gif.", - "The Auth-Client must have at least :min item chosen.": "Le client authentifié doit avoir sélectionné au moins :min éléments.", - "The auth client was ": "Le client authentifié était ", - "The bpm definition is not valid": "La définition BPM n'est pas valide", - "The category field is required.": "Le champ Catégorie est obligatoire.", - "The category name must be unique.": "Le nom de la catégorie doit être unique.", - "The category was created.": "La catégorie a été créée.", - "The category was saved.": "La catégorie a été enregistrée.", - "The data name for this field": "Nom des données correspondant à ce champ", - "The data name for this list": "Nom des données correspondant à cette liste", - "The data type specifies what kind of data is stored in the variable.": "Le type de données indique quel genre de données est stocké dans la variable.", - "The destination page to navigate to": "Page de destination vers laquelle naviguer", - "The environment variable name must be unique.": "Le nom de la variable d'environnement doit être unique.", - "The environment variable was created.": "La variable d'environnement a été créée.", - "The environment variable was deleted.": "La variable d'environnement a été supprimée.", - "The environment variable was saved.": "La variable d'environnement a été enregistrée.", - "The following items should be configured to ensure your process is functional.": "Configurez les éléments suivants pour rendre votre processus fonctionnel.", - "The following items should be configured to ensure your process is functional": "Configurez les éléments suivants pour rendre votre processus fonctionnel", - "The following required fields are not included in the submitted data.": "Les champs requis suivants ne sont pas inclus dans les données soumises.", - "The form to be displayed is not assigned.": "Le formulaire à afficher n'a pas été attribué.", - "The form to use for adding/editing records": "Formulaire à utiliser pour ajouter/modifier des enregistrements", - "The group was created.": "Le groupe a été créé.", - "The group was deleted.": "Le groupe a été supprimé.", - "The HTML text to display": "Texte HTML à afficher", - "The id field should be unique across all elements in the diagram, ex. id_1.": "Le champ d'ID doit être unique à tous les éléments du diagramme, par exemple « id_1 ».", - "The label describes the button's text": "Étiquette décrivant le texte du bouton", - "The label describes the field's name": "Étiquette décrivant le nom du champ", - "The label describes the fields name": "Étiquette décrivant le nom du champ", - "The label describes this record list": "Étiquette décrivant cette liste d'enregistrements", - "The name of the button": "Nom du bouton", - "The Name of the data name": "Intitulé du nom des données", - "The name of the Download": "Nom du téléchargement", - "The Name of the Gateway": "Nom du branchement", - "The name of the group for the checkbox. All checkboxes which share the same name will work together.": "Nom du groupe pour la case à cocher. Toutes les cases à cocher partageant le même nom fonctionneront ensemble.", - "The name of the image": "Nom de l'image", - "The name of the new page to add": "Nom de la page à ajouter", - "The Name of the Process": "Nom du processus", - "The name of the upload": "Nom de l'importation", - "The Name of the variable": "Le nom de la variable", - "The new name of the page": "Nouveau nom de la page", - "The number of rows to provide for input": "Nombre de lignes pour l'entrée", - "The package is not installed": "Le package n'est pas installé", - "The page you are looking for could not be found": "La page que vous recherchez est introuvable", - "The placeholder is what is shown in the field when no value is provided yet": "Ce qui s'affiche dans le champ quand aucune valeur n'est encore fournie", - "The process name must be unique.": "Le nom du processus doit être unique.", - "The process was archived.": "Le processus a été archivé.", - "The process was created.": "Le processus a été créé.", - "The process was exported.": "Le processus a été exporté.", - "The process was imported.": "Le processus a été importé.", - "The process was paused.": "Le processus a été mis en pause.", - "The process was restored.": "Le processus a été restauré.", - "The process was saved.": "Le processus a été enregistré.", - "The process was unpaused.": "Le processus a été réactivé.", - "The property formula field is required.": "Le champ de formule de propriété est obligatoire.", - "The Record List control is not allowed to reference other controls on its own page to add or edit records. Specify a secondary page with controls to enter records.": "La commande de la liste d'enregistrements n'est pas autorisée à référencer d'autres commandes sur sa page pour l'ajout ou la modification d'enregistrements. Veuillez préciser une page de contrôles secondaire pour saisir les enregistrements.", - "The request data was saved.": "Les données de la demande ont été enregistrées.", - "The request was canceled.": "La demande a été annulée.", - "The screen name must be unique.": "Le nom de l'écran doit être unique.", - "The screen was created.": "L'écran a été créé.", - "The screen was deleted.": "L'écran a été supprimé.", - "The screen was duplicated.": "L'écran a été dupliqué.", - "The screen was exported.": "L'écran a été exporté.", - "The screen was saved.": "L'écran a été enregistré.", - "The script name must be unique.": "Le nom du script doit être unique.", - "The script was created.": "Le script a été créé.", - "The script was deleted.": "Le script a été supprimé.", - "The script was duplicated.": "Le script a été dupliqué.", - "The script was saved.": "Le script a été enregistré.", - "The size of the text in em": "Taille du texte en em", - "The specified requester username does not exist.": "Le nom d'utilisateur du demandeur spécifié n'existe pas.", - "The specified participant username does not exist.": "Le nom d'utilisateur du participant spécifié n'existe pas.", - "The styles were recompiled.": "Les styles ont été recompilés.", - "The System": "Le système", - "The text to display": "Texte à afficher", - "The type for this field": "Type correspondant à ce champ", - "The URL you provided is invalid. Please provide the scheme, host and path without trailing slashes.": "L'URL que vous avez fournie n'est pas valide. Veuillez fournir le mode, l'hôte et le chemin sans barres obliques.", - "The user was deleted.": "L'utilisateur a été supprimé.", - "The user was removed from the group.": "L'utilisateur a été retiré du groupe.", - "The user was successfully created": "L'utilisateur a bien été créé", - "The user will go here after completing the process.": "L'utilisateur sera redirigé ici après avoir terminé le processus.", - "The user will go here after completing the task.": "L'utilisateur sera redirigé ici après avoir terminé la tâche.", - "The validation rules needed for this field": "Règles de validation nécessaires pour ce champ", - "The value being submitted": "Valeur envoyée", - "The variant determines the appearance of the button": "Détermine l'apparence du bouton", - "The weight of the text": "Épaisseur du texte", - "These credentials do not match our records.": "Ces informations d'identification ne figurent pas dans notre système.", - "This application installs a new version of ProcessMaker.": "Cette application installe une nouvelle version de ProcessMaker.", - "This control is hidden until this expression is true": "Cette commande est masquée jusqu'à ce que l'expression soit vraie", - "This password reset token is invalid.": "Ce jeton de réinitialisation de mot de passe n'est pas valide.", - "This Request is currently in progress.": "Cette demande est actuellement en cours.", - "This screen has validation errors.": "Cet écran comporte des erreurs de validation.", - "This screen will be populated once the Request is completed.": "Cet écran se remplira une fois la demande terminée.", - "This window will automatically close when complete.": "Cette fenêtre se fermera automatiquement une fois l'action terminée.", - "Time expression": "Expression de l'heure", - "Time Zone": "Fuseau horaire", - "Time": "Heure", - "Timeout": "Délai d'expiration", - "Timing Control": "Commande d'horodatage", - "To Do Tasks": "Tâches à faire", - "To Do": "À faire", - "to": "à", - "Toggle Style": "Style de bascule", - "Too many login attempts. Please try again in :seconds seconds.": "Vous avez atteint le nombre maximum de tentatives de connexion. Veuillez réessayer dans :seconds secondes.", - "Top": "En haut", - "type here to search": "saisissez votre texte ici pour rechercher", - "Type to search task": "Saisir du texte pour rechercher une tâche", - "Type to search": "Entrer du texte pour rechercher", - "Type": "Type", - "Unable to import the process.": "Impossible d'importer le processus.", - "Unable to import": "Impossible d'importer", - "Unable to send email. Please check your email server settings.": "Unable to send email. Please check your email server settings.", - "Unable to send SMS. Please check your cell number and SMS server settings.": "Unable to send SMS. Please check your cell number and SMS server settings.", - "Unauthorized - ProcessMaker": "Action non autorisée - ProcessMaker", - "Undo": "Annuler", - "Unfortunately this screen has had an issue. We've notified the administrator.": "Désolé, cet écran a rencontré un problème. L'administrateur en a été informé.", - "Unpause Start Timer Events": "Réactiver les événements de début temporisateur", - "Unread Notifications": "Notifications non lues", - "Update Group Successfully": "Le groupe a bien été mis à jour", - "Upload Avatar": "Importer un avatar", - "Upload BPMN File (optional)": "Importer un fichier BPMN (facultatif)", - "Upload BPMN File": "Importer un fichier BPMN", - "Upload file": "Importer un fichier", - "Upload image": "Importer une image", - "Upload Name": "Nom de l'importation", - "Upload XML": "Importer un fichier XML", - "Upload": "Importer", - "Use a transparent PNG at :size pixels for best results.": "Pour un résultat optimal, utilisez un fichier PNG transparent de :size pixels.", - "Use this in your custom css rules": "À utiliser dans vos règles de CSS personnalisé", - "user": "Utilisateur", - "User assignments and sensitive Environment Variables will not be exported.": "Les attributions des utilisateurs et les variables d'environnement sensibles ne seront pas exportées.", - "User assignments and sensitive Environment Variables will not be imported.": "Les attributions des utilisateurs et les variables d'environnement sensibles ne seront pas importées.", - "User has no tokens.": "L'utilisateur n'a pas de jetons.", - "User Permissions Updated Successfully": "Les autorisations de l'utilisateur ont bien été mises à jour", - "User Updated Successfully ": "L'utilisateur a bien été mis à jour ", - "User Updated Successfully": "L'utilisateur a bien été mis à jour", - "User": "Utilisateur", - "Username": "Nom d'utilisateur", - "Users that should be notified about task events": "Utilisateurs à informer des événements de tâches", - "Users": "Utilisateurs", - "Valid JSON Data Object": "Objet de données JSON valide", - "Valid JSON Object, Variables Supported": "Objet JSON valide, variables prises en charge", - "Validation rules ensure the integrity and validity of the data.": "Les règles de validation assurent l'intégrité et la validité des données.", - "Validation Rules": "Règles de validation", - "Validation": "Validation", - "Value": "Valeur", - "Variable": "Variable", - "Variables": "Variables", - "Variable Name": "Nom de variable", - "Invalid variable name": "Nom de variable non valide", - "Variable to Watch": "Variable à surveiller", - "Variant": "Variante", - "Vertical alignment of the text": "Alignement vertical du texte", - "View All Requests": "Afficher toutes les demandes", - "View All": "Afficher tout", - "View All Notifications": "Voir toutes les notifications", - "View Auth Clients": "Afficher les clients authentifiés", - "View Categories": "Afficher les catégories", - "View Comments": "Afficher les commentaires", - "View Environment Variables": "Afficher les variables d'environnement", - "View Files": "Afficher les fichiers", - "View Groups": "Afficher les groupes", - "View Notifications": "Afficher les notifications", - "View Processes": "Afficher les processus", - "View Screens": "Afficher les écrans", - "View Scripts": "Afficher les scripts", - "View Task Assignments": "Afficher les attributions de tâches", - "View Users": "Afficher les utilisateurs", - "Visibility Rule": "Règle de visibilité", - "W": "Me", - "Watcher": "Observateur", - "Watchers": "Observateurs", - "Watcher Name": "Nom de l'observateur", - "Watcher Saved": "Observateur enregistré", - "Watcher Updated": "Observateur mis à jour", - "Watching": "Observation en cours", - "Wait until specific date/time": "Attendre jusqu'à une date/heure précise", - "warning": "avertissement", - "We can't find a user with that e-mail address.": "Cette adresse e-mail ne correspond à aucun utilisateur.", - "We have e-mailed your password reset link!": "Nous vous avons envoyé un e-mail contenant le lien de réinitialisation de votre mot de passe !", - "We recommended a transparent PNG at :size pixels.": "Nous recommandons l'utilisation d'un fichier PNG transparent de :size pixels.", - "Select a Process below to get started.": "Sélectionnez un processus pour créer votre demande.", - "Web Entry": "Page d'accès", - "week": "semaine", - "Welcome": "Bienvenue", - "Welcome WebEntry": "Bienvenue", - "What is the URL of this ProcessMaker installation? (Ex: https://pm.example.com, with no trailing slash)": "Quelle est l'URL de cette installation de ProcessMaker ? (Ex. : https://pm.example.com, sans barres obliques)", - "What Screen Should Be Used For Rendering This Interstitial": "Écran à utiliser pour l'affichage de cet interstitiel", - "What Screen Should Be Used For Rendering This Task": "Écran à utiliser pour l'affichage de cette tâche", - "whitelist": "Ajouter sur liste blanche", - "Width": "Largeur", - "year": "année", - "Yes": "Oui", - "You are about to export a Process.": "Vous allez exporter un processus.", - "You are about to export a Screen.": "Vous allez exporter un écran.", - "You are about to import a Process.": "Vous allez importer un processus.", - "You are about to import a Screen.": "Vous allez importer un écran.", - "You are trying to place a nested screen within CAPTCHA elements inside a loop. CAPTCHA controls cannot be placed within a Loop control.": "Vous tentez de placer un écran imbriqué parmi les éléments CAPTCHA au sein d'une boucle. La vérification CAPTCHA ne peut pas être placée au sein d'une commande de boucle.", - "You can close this page.": "Vous pouvez fermer cette page.", - "You can set CSS Selector names in the inspector. Use them here with [selector='my-selector']": "Vous pouvez définir des noms de sélecteurs CSS dans l'inspecteur. Utilisez-les ici avec [selector='my-selector']", - "You don't currently have any tasks assigned to you": "Aucune tâche ne vous est actuellement attribuée", - "You don't have any Processes.": "Vous n'avez aucun processus.", - "You have {{ inOverDue }} overdue {{ taskText }} pending": "Vous avez {{ inOverDue }} {{ taskText }} en retard en attente", - "You must have your database credentials available in order to continue.": "Vous devez disposer des informations d'identification de votre base de données pour continuer.", - "Your account has been timed out for security.": "Votre session a expiré pour des raisons de sécurité.", - "Your password has been reset!": "Votre mot de passe a été réinitialisé !", - "Your PMQL contains invalid syntax.": "Votre PMQL contient une syntaxe non valide.", - "Your PMQL search could not be completed.": "Votre recherche PMQL n'a pas pu aboutir.", - "Your profile was saved.": "Votre profil a été enregistré.", - "Zoom In": "Agrandir", - "Zoom Out": "Réduire", - "Element Conversion": "Conversion de l'élément", - "SubProcess Conversion": "Le sous-processus intitulé « :name » a été converti en activité d'appel.", - "SendTask Conversion": "La tâche d'envoi intitulée « :name » a été convertie en tâche de script.", - "Designer": "Concepteur", - "add": "ajouter", - "Processes": "Processus", - "Requester": "Demandeur", - "TASK": "TÂCHE", - "ASSIGNED": "ATTRIBUÉE", - "DUE": "DUE", - "Due": "Échéance", - "Forms": "Formulaires", - "Complete Task": "Terminer la tâche", - "Start": "Commencer", - "Task Completed": "Tâche terminée", - "Create Process Category": "Créer une catégorie de processus", - "Active": "actif", - "Inactive": "inactif", - "Are you sure you want to delete the environment variable {{ name }} ?": "Voulez-vous vraiment supprimer la variable d'environnement {{ name }} ?", - "Deleted User Found": "Utilisateur supprimé identifié", - "An existing user has been found with the email {{ email }} would you like to save and reactivate their account?": "Un utilisateur existant avec l'adresse e-mail {{ email }} a été identifié. Voulez-vous enregistrer et réactiver son compte ?", - "An existing user has been found with the email {{ username }} would you like to save and reactivate their account?": "Un utilisateur existant avec le nom d'utilisateur {{ username }} a été identifié. Voulez-vous enregistrer et réactiver son compte ?", - "Create Auth Clients": "Créer des clients authentifiés", - "Delete Auth Clients": "Supprimer des clients authentifiés", - "Export Screens": "Exporter des écrans", - "Import Screens": "Importer des écrans", - "Tokens": "Jetons", - "Token": "Jeton", - "Delete Token": "Supprimer le jeton", - "Enable Authorization Code Grant": "Activer l'attribution du code d'autorisation", - "Enable Password Grant": "Activer l'attribution du mot de passe", - "Enable Personal Access Tokens": "Activer les jetons d'accès personnels", - "Edit Auth Client": "Modifier le client authentifié", - "Custom Login Logo": "Logo de connexion personnalisé", - "Choose a login logo image": "Choisir l'image du logo de connexion", - "Primary": "primaire", - "Secondary": "secondaire", - "Success": "Opération réussie", - "Info": "info", - "Warning": "avertissement", - "Danger": "danger", - "Dark": "foncé", - "Light": "clair", - "Custom Font": "Police personnalisée", - "Default Font": "Police par défaut", - "Boundary Timer Event": "Événement de limite temporisateur", - "Boundary Error Event": "Événement d'erreur de limite", - "New Boundary Error Event": "Nouvel événement d'erreur de limite", - "Boundary Escalation Event": "Événement de réaffectation de limite", - "Nested Screen": "Écran imbriqué", - "New Boundary Escalation Event": "Nouvel événement de réaffectation de limite", - "New Boundary New Message Event": "Nouvel événement de message de limite", - "Boundary Message Event": "Événement de message de limite", - "Message End Event": "Événement de fin de message", - "New Message End Event": "Nouvel événement de fin de message", - "Error End Event": "Événement de fin de l'erreur", - "New Error End Event": "Nouvel événement de fin de l'erreur", - "Intermediate Message Throw Event": "Événement intermédiaire de lancement de message", - "New Intermediate Message Throw Event": "Nouvel événement intermédiaire de lancement de message", - "Message Start Event": "Événement de début de message", - "New Message Start Event": "Nouvel événement de début de message", - "Event-Based Gateway": "Branchement basé sur des événements", - "Warnings": "Avertissements", - "no warnings to report": "Aucun avertissement", - "Assignment Rules": "Règles d'affectation", - "Directs Task assignee to the next assigned Task": "Dirige le responsable de tâche vers la prochaine tâche affectée", - "You must select at least one day.": "Vous devez sélectionner au moins un jour.", - "Listen For Message": "Écouter le message", - "Message Name": "Nom du message", - "Sass compile completed": "Compilation Sass terminée", - "Title": "Titre", - "No results.": "Aucun résultat.", - "Display": "afficher", - "Created By": "Créé par", - "Documentation": "Documentation", - "Packages Installed": "Packages installés", - "Translations": "Traductions", - "Create Translations": "Créer les traductions", - "Delete Translations": "Supprimer les traductions", - "Edit Translations": "Modifier les traductions", - "View Translations": "Afficher les traductions", - "String": "Chaîne", - "Reset To Default": "Restaurer les paramètres par défaut", - "Translation": "Traduction", - "View Profile": "Afficher le profil", - "Requests In Progress": "Demandes en cours", - "The variable, :variable, which equals \":value\", is not a valid User ID in the system": "La variable « :variable », qui correspond à « :valeur », n'est pas un identifiant utilisateur valide dans le système", - "Variable Name of User ID Value": "Nom de variable ou valeur de l'identifiant utilisateur", - "By User ID": "Par l'identifiant utilisateur", - "File uploads are unavailable in preview mode.": "Les fichiers importés ne sont pas disponibles en mode aperçu.", - "Download button for {{fileName}} will appear here.": "Le bouton pour télécharger {{fileName}} apparaîtra ici.", - "Edit Script Categories": "Modifier les catégories de script", - "Create Script Categories": "Créer des catégories de script", - "Delete Script Categories": "Supprimer les catégories de script", - "View Script Categories": "Afficher les catégories de script", - "Edit Screen Categories": "Modifier les catégories d'écran", - "Create Screen Categories": "Créer des catégories d'écran", - "Delete Screen Categories": "Supprimer les catégories d'écran", - "View Screen Categories": "Afficher les catégories d'écran", - "The task \":task\" has an incomplete assignment. You should select one user or group.": "L'affectation de la tâche « :task » est incomplète. Veuillez sélectionner un utilisateur ou un groupe.", - "The \":language\" language is not supported": "La langue « :language » n'est pas prise en charge.", - "The expression \":body\" is invalid. Please contact the creator of this process to fix the issue. Original error: \":error\"": "L'expression « :body » n'est pas valide. Veuillez contacter le créateur de ce processus pour résoudre le problème. Erreur d'origine : « :error »", - "Failed to evaluate expression. :error": "Impossible d'évaluer l'expression. :error", - "This process was started by an anonymous user so this task can not be assigned to the requester": "Ce processus a été initié par un utilisateur anonyme. Cette tâche ne peut donc pas être attribuée au demandeur.", - "Can not assign this task because there is no previous user assigned before this task": "Cette tâche ne peut pas être attribuée car aucun utilisateur n'a été assigné avant cette tâche.", - "Task cannot be assigned since there is no Process Manager associated to the process.": "Impossible d'attribuer la tâche car il n'existe aucun gestionnaire de processus associé.", - "Default Value": "Valeur par défaut", - "Takes precedence over value set in data.": "Prévaut sur les valeurs définies dans les données.", - "The default value is pre populated using the existing request data. This feature will allow you to modify the value displayed on screen load if needed.": "La valeur par défaut est préremplie à l'aide des données de requête existantes. Cette fonctionnalité vous permettra de modifier au besoin la valeur affichée au chargement de l'écran.", - "Using watchers with Scripts can slow the performance of your screen.": "Le recours à des observateurs de scripts peut ralentir les performances de votre écran.", - "We recommend using fewer than 25 form elements in your screen for optimal performance.": "Pour une performance optimale, nous conseillons d'utiliser un maximum de 25 éléments de formulaire sur votre écran.", - "Source": "Source", - "Watching Variable": "Variable de surveillance", - "Output Variable": "Variable de sortie", - "Output Variable Property Mapping": "Mappage des propriétés à la variable de sortie", - "New Key": "nouvelle clé", - "New Value": "Nouvelle valeur", - "Properties to map from the Data Connector into the output variable": "Propriétés à mapper à la variable de sortie depuis le connecteur de données", - "(If empty, all data returned will be mapped to the output variable)": "(Si vide, toutes les données renvoyées seront mappées à la variable de sortie)", - "Are you sure you want to delete the Watcher?": "Voulez-vous vraiment supprimer l'observateur ?", - "A name to describe this Watcher": "Un nom pour décrire cet observateur", - "The Variable to Watch field is required": "Le champ Variable à surveiller est obligatoire", - "Wait for the Watcher to run before accepting more input": "Attendez que l'observateur s'exécute avant d'accepter plus d'entrées", - "The source to access when this Watcher runs": "La source à rejoindre lorsque cet observateur est en cours d'exécution", - "The Source field is required": "Le champ Source est obligatoire", - "Data to pass to the script (valid JSON object, variables supported)": "Données à passer au script (objet JSON valide, variables prises en charge)", - "The Input Data field is required": "Le champ Données d'entrée est obligatoire", - "This must be valid JSON": "Le JSON doit être valide", - "The variable that will store the output of the Watcher": "La variable qui stockera la sortie de l'observateur", - "The variable to watch on this screen": "La variable à surveiller sur cet écran", - "Configuration data for the script (valid JSON object, variables supported)": "Données de configuration pour le script (objet JSON valide, variables prises en charge)", - "The Data Connector endpoint to access when this Watcher runs": "Le point de terminaison du connecteur de données à rejoindre lorsque l'observateur est en cours d'exécution", - "Data to pass to the Data Connector (valid JSON object, variables supported)": "Données à passer au connecteur de données (objet JSON valide, variables prises en charge)", - "The Script Configuration field is required": "Le champ Configuration du script est obligatoire", - "Property": "Propriété", - "Deleted User": "Utilisateur supprimé", - "Deleted Users": "Utilisateurs supprimés", - "Restore User": "Restaurer l'utilisateur", - "Are you sure you want to restore the user {{item}}?": "Voulez-vous vraiment restaurer le {{item}} de l'utilisateur ?", - "The user was restored": "L'utilisateur a été restauré", - "Options Variable": "Options de la variable", - "Get options from this variable. Must be an array.": "Obtenir des options de cette variable. Doit être un tableau.", - "Option Label Shown": "Étiquette d'options affichée", - "option has been moved to the task destination dropdown": "l'option a été déplacée vers la liste déroulante de destination de la tâche", - "Enter the property name from the Request data variable that displays to the user on the screen.": "Saisir le nom de la propriété relative à la variable de données de la demande qui s'affiche sur l'écran de l'utilisateur.", - "Show Control As": "Afficher les commandes en tant que", - "Allow Multiple Selections": "Autoriser les sélections multiples", - "Selected Option Type": "Type d'option sélectionné", - "Select 'Single Value' to use parts of the selected object. Select 'Object' to use the entire selected value.": "Sélectionner « Valeur unique » pour utiliser des parties de l'objet sélectionné. Sélectionner « Objet » pour utiliser l'intégralité de la valeur sélectionnée.", - "Key name in the selected object to use as the value of this control. Leave blank to use the entire selected value.": "Nom clé dans l'objet sélectionné à utiliser comme valeur de cette commande. Laisser vide pour utiliser l'intégralité de la valeur sélectionnée.", - "Dropdown/Multiselect": "Menu déroulant/sélection multiple", - "Radio/Checkbox Group": "Groupe radio/case à cocher", - "Single Value": "Valeur unique", - "Object": "Objet", - "Advanced data search": "Recherche de données avancée", - "A variable name is a symbolic name to reference information.": "Un nom de variable est un nom symbolique qui permet de référencer l'information.", - "Percentage": "Pourcentage", - "Data Format": "Format de données", - "The data format for the selected type.": "Le format de données correspondant au type sélectionné.", - "Accepted": "Accepté", - "The field under validation must be yes, on, 1 or true.": "Le champ à valider doit être : oui, activé, 1 ou vrai.", - "Alpha": "Alpha", - "Copy Control": "Contrôle de copie", - "The field under validation must be entirely alphabetic characters.": "Le champ à valider doit être exclusivement composé de caractères alphabétiques.", - "Alpha-Numeric": "Alphanumérique", - "The field under validation must be entirely alpha-numeric characters.": "Le champ à valider doit être exclusivement composé de caractères alphanumériques.", - "Between Min & Max": "Entre le min. et le max.", - "The field under validation must have a size between the given min and max.": "Le champ à valider doit être compris entre le minimum et le maximum donnés.", - "Min": "Min.", - "Max": "Max.", - "The field under validation must be formatted as an e-mail address.": "Le champ à valider doit être formaté comme une adresse e-mail.", - "In": "Dans", - "The field under validation must be included in the given list of values. The field can be an array or string.": "Le champ à valider doit être compris dans la liste de valeurs spécifiée. Le champ peut être un tableau ou une chaîne.", - "Values": "Valeurs", - "Max Length": "Longueur max.", - "Max Input": "Entrée max.", - "Validate that an attribute is no greater than a given length.": "Contrôle qu'un attribut n'est pas supérieur à une longueur donnée.", - "Min Length": "Longueur min.", - "Min Input": "Entrée min.", - "Validate that an attribute is at least a given length.": "Contrôle qu'un attribut est au moins égal à une longueur donnée.", - "Not In": "Pas dans", - "The field under validation must not be included in the given list of values.": "Le champ à valider ne doit pas être compris dans la liste de valeurs spécifiée.", - "Required": "Obligatoire", - "Checks if the length of the String representation of the value is >": "Contrôle que la longueur de la représentation sous forme de chaîne de la valeur est >", - "Required If": "Requis si", - "The field under validation must be present and not empty if the Variable Name field is equal to any value.": "Le champ à valider doit être présent et non vide si le champ Nom de variable est égal à l'une des valeurs.", - "Variable Value": "Valeur de la variable", - "Required Unless": "Requis sauf si", - "The field under validation must be present and not empty unless the Variable Name field is equal to any value.": "Le champ à valider doit être présent et non vide à moins que le champ Nom de variable soit égal à l'une des valeurs.", - "Same": "Identique", - "The given field must match the field under validation.": "Le champ donné doit correspondre au champ à valider.", - "Validate that an attribute has a valid URL format.": "Contrôle qu'un attribut a un format d'URL valide.", - "Add Rule": "Ajouter une règle", - "No validation rule(s)": "Aucune règle de validation", - "No variables match your search.": "Aucune variable ne correspond à votre recherche.", - "No variables available. Variables will be available after you add form fields to your screen.": "Aucune variable disponible. Les variables seront disponibles après avoir ajouté des champs de formulaire à votre écran.", - "New Select List": "Nouvelle liste de sélection", - "New Array of Objects": "Nouveau tableau d'objets", - "Existing Array": "Tableau existant", - "This variable will contain an array of objects": "Cette variable contiendra un tableau d'objets", - "Default Loop Count": "Nombre de boucles par défaut", - "Number of times to show the loop. Value must be greater than zero.": "Nombre de fois où s'affiche la boucle. La valeur doit être supérieure à zéro.", - "Allow additional loops": "Autoriser les boucles supplémentaires", - "Check this box to allow task assignee to add additional loops": "Cochez cette case pour autoriser le responsable de tâche à ajouter des boucles supplémentaires", - "Select a screen to nest": "Sélectionner un écran à imbriquer", - "Advanced Mode": "Mode avancé", - "Basic Mode": "Mode de base", - "Advanced Search (PMQL)": "Recherche avancée (PMQL)", - "Script Executor": "Exécuteur de script", - "Script Executors": "Exécuteurs de script", - "Add New Script Executor": "Ajouter un nouvel exécuteur de script", - "Save And Rebuild": "Enregistrer et reconstruire", - "Error Building Executor. See Output Above.": "Erreur lors de la création de l'exécuteur. Voir la sortie ci-dessus.", - "Executor Successfully Built. You can now close this window. ": "Création de l'exécuteur terminée. Vous pouvez maintenant fermer cette fenêtre. ", - "Build Command Output": "Créer la sortie de commande", - "Select a language": "Sélectionner une langue", - "General Information": "Informations générales", - "Form Task": "Tâche de formulaire", - "Download BPMN": "Télécharger le BPMN", - "Signal Start Event": "Événement de début avec signal", - "Open Color Palette": "Ouvrir la palette de couleurs", - "Copy Element": "Copier l'élément", - "Signal End Event": "Événement de fin avec signal", - "Terminate End Event": "Événement de fin avec finalisation", - "Align Left": "Aligner à gauche", - "Center Horizontally": "Centrer horizontalement", - "Align Right": "Aligner à droite", - "Align Bottom": "Aligner en bas", - "Center Vertically": "Centrer verticalement", - "Align Top": "Aligner en haut", - "Distribute Horizontally": "Répartir horizontalement", - "Distribute Vertically": "Répartir verticalement", - "A screen selection is required": "Une sélection d'écrans est requise", - "Users / Groups": "Utilisateurs/groupes", - "running.": "en cours d'exécution.", - "The field under validation must be a valid date format which is acceptable by Javascript's Date object.": "Le champ à valider doit avoir un format de date valide et acceptable par l'objet de date Javascript.", - "After Date": "Après la date", - "The field under validation must be after the given date.": "Le champ à valider doit être ultérieur à la date donnée.", - "After or Equal to Date": "Ultérieur ou égal à la date", - "The field unter validation must be after or equal to the given field.": "Le champ à valider doit être ultérieur ou égal à la date donnée.", - "Before Date": "Avant la date", - "The field unter validation must be before the given date.": "Le champ à valider doit être antérieur à la date donnée.", - "Before or Equal to Date": "Antérieur ou égal à la date", - "The field unter validation must be before or equal to the given field.": "Le champ à valider doit être antérieur ou égal à la date donnée.", - "Regex": "Regex", - "The field under validation must match the given regular expression.": "Le champ à valider doit correspondre à l'expression régulière donnée.", - "Regex Pattern": "Modèle Regex", - "Maximum Date": "Date maximale", - "Minimum Date": "Date minimum", - "Columns": "Colonnes", - "List of columns to display in the record list": "Liste des colonnes à afficher dans la liste des enregistrements", - "Select a screen": "Sélectionner un écran", - "Not found": "Introuvable", - "Are you sure you want to delete this?": "Voulez-vous vraiment supprimer cet élément ?", - "Signal that will trigger this start event": "Le signal qui déclenchera cet événement de début", - "Are you sure you want to reset all of your translations?": "Voulez-vous vraiment réinitialiser toutes vos traductions ?", - "Save And Build": "Enregistrer et créer", - "This record list is empty or contains no data.": "La liste des enregistrements est vide ou ne contient aucune donnée.", - "Choose whether the button should submit the form": "Choisissez si le bouton doit soumettre le formulaire", - "Regular Button": "Bouton normal", - "This field accepts mustache syntax": "Ce champ accepte la syntaxe Mustache", - "Type of Value Returned": "Type de valeur renvoyée", - "Key name in the selected object to display to the user in the select list. Leave blank to show the entire selected value.": "Nom clé dans l'objet sélectionné à afficher à l'utilisateur dans la liste de sélection. Laisser vide pour afficher l'intégralité de la valeur sélectionnée.", - "Variable Data Property": "Propriété de la variable de données", - "Enter the property name from the Request data variable that will be passed as the value when selected.": "Saisir le nom de la propriété relative à la variable de données de la demande qui fera office de valeur une fois sélectionnée.", - "Endpoint to populate select": "Sélection d'un point de terminaison à remplir", - "Security Logs": "Journaux de sécurité", - "View Security Logs": "Voir les journaux de sécurité", - "View Other Users Profiles": "Voir d'autres profils d'utilisateurs", - "Unidentified": "Non identifié(e)", - "Logged Event": "Événement enregistré", - "Logged Events": "Événements enregistrés", - "Login Page Footer": "Pied de page de connexion", - "# Screens": "# écrans", - "# Scripts": "# scripts", - "A user with the username {{username}} and email {{email}} was previously deleted.": "Un utilisateur disposant du nom d'utilisateur :username et de l'adresse e-mail :email a déjà été supprimé.", - "Accepted Form Fields": "Champs de formulaire acceptés", - "Accepted Method": "Méthode acceptée", - "Accepted methods": "Méthodes acceptées", - "Add Field Security": "Ajouter une sécurité de champ", - "Add URL Restriction": "Ajouter une restriction d'URL", - "Additional Details (optional)": "Informations supplémentaires (facultatif)", - "All": "Tout", - "Allow Access From": "Autoriser l'accès depuis", - "Authentication": "Authentification", - "BPMN Issues": "Problèmes BPMN", - "Boundary Conditional Event": "Événement conditionnel de limite", - "Boundary Signal Event": "Événement de signal de limite", - "Browser": "Navigateur", - "Callback": "Rappel", - "Case": "Case", - "Catch Events": "Événements de réception", - "Change Version Details": "Modifier les informations de la version", - "Check Flow": "Vérifier le flux", - "Commit Changes": "Valider les modifications", - "Condition": "Condition", - "Conditional Start Event": "Événement de début conditionnel", - "Confirm and Save": "Confirmer et enregistrer", - "Copy to Clipboard": "Copier dans le presse-papiers", - "Copy to Latest": "Copier vers le/la plus récent(e)", - "Create Process Categories": "Créer des catégories de processus", - "Create Vocabularies": "Créer des vocabulaires", - "Data Connector to use": "Connecteur de données à utiliser", - "Data Connector": "Connecteur de données", - "Data Mapping": "Mappage de données", - "Data Object": "Objet de données", - "Data Store": "Data Store", - "Delete Process Categories": "Supprimer les catégories de processus", - "Delete Vocabularies": "Supprimer les vocabulaires", - "Edit Field Security": "Modifier la sécurité de champ", - "Edit Process Categories": "Modifier les catégories de processus", - "Edit Vocabularies": "Modifier les vocabulaires", - "Enable Webhook Access": "Autoriser l'accès à Webhook", - "End Point": "Point de terminaison", - "Enter the request variable that will store the signal payload": "Saisir la variable de demande qui stockera la charge utile du signal", - "Event": "Événement", - "Expression to evaluate condition": "Expression pour évaluer la condition", - "Flow Variable": "Variable de flux", - "Expression to evaluate. Mustache syntax supported.": "Expression pour évaluer. La syntaxe Mustache est prise en charge.", - "Field": "Champ", - "Flow completed": "Flux terminé", - "Intermediate Signal Catch Event": "Événement intermédiaire de réception de signal", - "IP Address": "Adresse IP", - "If the expression evaluates to true, create or update the following variable": "Si l'évaluation indique que l'expression est vraie, créez ou mettez à jour la variable suivante", - "Intermediate Conditional Catch Event": "Événement intermédiaire de réception conditionnelle", - "Login Information": "Informations de connexion", - "Message reference is required": "La référence du message est obligatoire", - "Message that will catch this intermediate event": "Le message qui réceptionnera cet événement intermédiaire", - "Intermediate Signal Throw Event": "Événement intermédiaire de lancement de signal", - "Webhook URL": "URL Webhook", - "Message that will trigger this boundary event": "Le message qui déclenchera cet événement de limite", - "Message that will trigger this start event": "Le message qui déclenchera cet événement de début", - "Message": "Message", - "Midnight": "Minuit", - "New Signal": "Nouveau signal", - "New Token": "Nouveau jeton", - "Occurred At": "S'est produit(e) à", - "OUT_OF_OFFICE": "ABSENT(E)", - "Only show named versions": "Afficher uniquement les versions nommées", - "Open Process": "Ouvrir le processus", - "Operating System": "Système d'exploitation", - "Provide Values": "Fournir des valeurs", - "Render HTML from a Variable": "Afficher le HTML à partir d'une variable", - "Save Versions": "Enregistrer les versions", - "Request Data": "Données de la demande", - "Version Name": "Nom de la version", - "Request Variable": "Variable de demande", - "Response Variable Name": "Nom de la variable de réponse", - "Restrict Access From": "Restreindre l'accès depuis", - "Save Script": "Enregistrer le script", - "Security Configuration": "Configuration de la sécurité", - "Select option": "Sélectionner une option", - "Select the message reference that this element throws": "Sélectionner la référence du message lancée par cet élément", - "Whitelist": "Ajouter sur liste blanche", - "Select the signal reference that this element throws": "Sélectionner la référence du signal lancée par cet élément", - "Version History": "Historique des versions", - "Set as Default Flow": "Définir comme flux par défaut", - "Settings": "Paramètres", - "Signal ID": "ID du signal", - "Signal Name": "Nom du signal", - "Signal reference is required": "La référence du signal est obligatoire", - "Signal that will catch this intermediate event": "Le signal qui réceptionnera cet événement intermédiaire", - "Signal that will trigger this boundary event": "Le signal qui déclenchera cet événement de limite", - "Signal": "Signal", - "Signals": "Signaux", - "Subscriber": "Abonné(e)", - "The process version was saved.": "The process version was saved.", - "The version was saved.": "La version a été enregistrée.", - "The Process field is required.": "Le champ Processus est obligatoire.", - "The start event of the call activity is not a start event": "L'événement de début de l'activité d'appel n'est pas un événement de début", - "The start event of the call activity is not empty": "L'événement de début de l'activité d'appel n'est pas vide", - "The start event of the call activity can not be a web entry": "L'événement de début de l'activité d'appel ne peut pas être une page d'accès", - "The start event with id \":node_id\" does not exist": "L'événement de début associé à l'ID « :node_id » n'existe pas", - "Toggle Notifications": "Activer/désactiver les notifications", - "Variable Name for Callback URL": "Nom de la variable pour l'URL du rappel", - "View Process Categories": "Voir les catégories de processus", - "View Vocabularies": "Consulter les vocabulaires", - "Warning: Screens without save buttons cannot be executed.": "Avertissement : les écrans sans boutons d'enregistrement ne peuvent pas être exécutés.", - "Running": "En cours d'exécution", - "Form Data": "Rappel", - "Unreachable elements": "Éléments inaccessibles", - "Wait for server callback": "Attendre le rappel du serveur", - "View {{user}} Profile": "Voir le profil de {{user}}", - "Edit {{user}} Profile": "Modifier le profil de {{user}}", - "If the FEEL Expression evaluates to true then": "Si l'évaluation indique que l'expression FEEL est vraie, alors", - "Rule Expression": "Expression de règle", - "If no evaluations are true": "Si aucune évaluation n'est vraie", - "Are you sure you want to delete expression {{item}}": "Voulez-vous vraiment supprimer l'expression {{item}} ?", - "Are you sure you want to delete {{item}}": "Voulez-vous vraiment supprimer {{item}} ?", - "Assignment Type": "Type d'affectation", - "Request Starter": "Initiateur de requête", - "FEEL expression": "Expression FEEL", - "Data Association Flow": "Flux d'association de données", - "Select the date to initially trigger this element": "Sélectionner la date de déclenchement initial de cet élément", - "Signal ID is required": "L'ID du signal est obligatoire", - "Signal Name is required": "Le nom du signal est obligatoire", - "Assign to User": "Attribuer à un utilisateur", - "Variable containing the numeric User ID": "Variable contenant l'ID utilisateur numérique", - "Assigned Users / Groups": "Utilisateurs/groupes affectés", - "Expressions": "Expressions", - "Add": "Ajouter", - "Expressions are evaluated top to bottom": "Les expressions sont évaluées de haut en bas", - "Add FEEL Expression": "Ajouter l'expression FEEL", - "Default Assignment": "Affectation par défaut", - "Flow in loop": "Flux dans la boucle", - "Flow not completed": "Flux non terminé", - "Id": "Identifiant", - "FEEL Expression": "Expression FEEL", - "Add Self Service": "Ajouter un libre-service", - "User / Group": "Utilisateur/groupe", - "Assign to User / Group": "Attribuer à un utilisateur/groupe", - "Column Header": "Titre de la colonne", - "Select to interrupt the current Request workflow and route to the alternate workflow, thereby preventing parallel workflow": "Sélectionner cette option pour interrompre la demande actuelle de workflow et l'acheminer vers un workflow différent afin d'empêcher les workflows parallèles", - "Change": "Modifier", - "Clear": "Effacer", - "Record": "Enregistrement", - "Write": "Rédiger", - "Authorizations": "Autorisations", - "Endpoints": "Points de terminaison", - "Endpoint": "Point de terminaison", - "Method": "Méthode", - "List Endpoints": "Énumérer les points de terminaison", - "Data Connectors": "Connecteurs de données", - "Reset Translations": "Réinitialiser les traductions", - "Delete Version History": "Supprimer l'historique des versions", - "Edit Version History": "Modifier l'historique des versions", - "View Version History": "Afficher l'historique des versions", - "Vocabularies": "Vocabulaires", - "Default": "Par défaut", - "Provider": "Fournisseur", - "File Manager": "Gestionnaire de fichiers", - "Uncategorized": "Non catégorisé", - "Comments Active Tasks": "Tâches actives – Commentaires", - "Modified By Tasks": "Tâches – Modifiée par", - "The :file you requested is now ready for download.": "Le :file demandé est désormais disponible au téléchargement.", - "of": "sur", - "Edit Saved Searches": "Modifier les recherches sauvegardées", - "Array": "Tableau", - "No Available Columns": "Aucune colonne disponible", - "Shared with Users": "Partagée avec des utilisateurs", - "Shared with Groups": "Partagée avec des groupes", - "Icon": "Icône", - "The name of this saved search.": "Le nom de cette recherche sauvegardée.", - "Share": "Partager", - "Updated": "Mise à jour effectuée", - "Resources": "Ressources", - "Resource": "Ressource", - "Params": "Paramètres", - "Headers": "En-têtes", - "Body": "Corps", - "Response Mapping": "Mappage des réponses", - "Response Body": "Corps de la réponse", - "The authtype field is required.": "Le champ Type d'authentification est obligatoire.", - "The name field is required.": "Le champ Nom est obligatoire.", - "The description field is required.": "Le champ Description est obligatoire.", - "Authentication Type": "Type d'authentification", - "How many seconds the script should be allowed to run (0 is unlimited).": "Pendant combien de secondes le script peut s'exécuter (0 = illimité).", - "Claim Task": "Revendiquer la tâche", - "Current Version": "Version actuelle", - "View Documentation": "Voir la documentation", - "Create Data Connector": "Créer un connecteur de données", - "Names must be unique.": "Les noms doivent être uniques.", - "This task is unassigned, click Claim Task to assign yourself.": "Cette tâche n'a pas été attribuée, cliquez sur Revendiquer la tâche pour l'attribuer vous-même.", - "The task :task_name was skipped": "La tâche :task_name a été ignorée", - "Color": "Couleur", - "Are you sure you want to delete this item?": "Voulez-vous vraiment supprimer cet élément ?", - "This signal cannot be removed, it is used by": "Ce signal ne peut pas être supprimé car il est utilisé par", - "Message ID is required": "L'ID du message est obligatoire", - "Message Name is required": "Le nom du message est obligatoire", - "Message Name is duplicated": "Le nom du message est dupliqué", - "Loop Activity": "Activité de boucle", - "Loop Mode": "Mode boucle", - "No Loop Mode": "Aucun mode boucle", - "Multi-Instance (Parallel)": "Multi-instance (en parallèle)", - "Multi-Instance (Sequential)": "Multi-instance (en séquentiel)", - "For Compensation": "Pour compensation", - "A script selection is required": "Une sélection de scripts est requise", - "Assigned Users/Groups": "Utilisateurs/groupes affectés", - "Lock Task Assignment to User": "Verrouiller les attributions de tâches à l'utilisateur", - "Render image from a variable name": "Afficher l'image à partir d'un nom de variable", - "Display Options": "Options d'affichage", - "Half": "Moitié", - "Position": "Position", - "Standard": "Standard", - "Double": "Double", - "Vocabulary": "Vocabulaire", - "Saved Search": "Recherche sauvegardée", - "Docker file": "Ficher Docker", - "URL": "URL", - "Error Message": "Message d'erreur", - "All Request Data": "Toutes les données de la demande", - "No Request Data": "Aucune donnée de demande", - "Specify Request Variable": "Spécifier une variable de données", - "Specify Expression": "Spécifier une expression", - "The Data Connector resource to access when this Watcher runs": "La ressource du connecteur de données à laquelle accéder lorsque l'observateur est en cours d'exécution", - "The task must be claimed to enable manager escalation.": "La tâche doit être revendiquée pour permettre la réaffectation du gestionnaire.", - "Run Watcher on Screen Load": "Exécuter l'observateur au chargement de l'écran", - "The Request variable is a new/existing variable": "La variable de requête est une variable nouvelle/existante", - "Leave blank to map all response data": "Laisser ce champ vide pour mapper toutes les données de réponse", - "Create Signals": "Créer des signaux", - "Delete Signals": "Supprimer des signaux", - "Edit Signals": "Modifier des signaux", - "View Signals": "Afficher les signaux", - "You do not have permission to add new signals": "Vous n'avez pas l'autorisation d'ajouter de nouveaux signaux", - "You do not have permission to view signals": "Vous n'avez pas l'autorisation d'afficher des signaux", - "You do not have permission to delete signals": "Vous n'avez pas l'autorisation de supprimer des signaux", - "You do not have permission to edit signals": "Vous n'avez pas l'autorisation de modifier des signaux", - "The value or source can be a string or a mustache expression": "La valeur ou la source peut être une chaîne ou une expression Mustache", - "The value can be a string or a mustache expression.": "La valeur peut être une chaîne ou une expression Mustache.", - "For example": "Par exemple", - "will use the value stored in variable var1": "utilisera la valeur enregistrée dans la variable var1", - "Select the variable to watch on this screen or type any request variable name": "Sélectionnez une variable à suivre sur cet écran ou saisissez un nom de variable de requête", - "Tooltip": "Info-bulle", - "Tooltip Contains": "L'info-bulle contient", - "HTML, Mustache support": "Aide HTML, Mustache", - "Top Left": "En haut à gauche", - "Top Right": "En haut à droite", - "Right Top": "En haut à droite", - "Right Bottom": "En bas à droite", - "Bottom Left": "En bas à gauche", - "Bottom Right": "En bas à droite", - "Left Top": "En haut à gauche", - "Left Bottom": "En bas à gauche", - "Claim the Task to continue.": "Revendiquez la tâche pour continuer.", - "View Collection": "Afficher la collection", - "Enter the alt text that should accompany the logos and icon.": "Saisissez le texte alternatif accompagnant les logos et l'icône.", - "Click on the color value to select custom colors.": "Cliquez sur la valeur de la couleur pour choisir des couleurs personnalisées.", - "Select which font to use throughout the system.": "Sélectionnez la police à utiliser sur l'ensemble du système.", - "Enter footer HTML to display on the login page.": "Saisissez le code HTML du pied de page à afficher sur la page de connexion.", - "Log": "Journal", - "Logs": "Journaux", - "Tag": "Balise", - "Service": "Service", - "Toggle Show Password": "Activer/désactiver l'option Afficher le mot de passe", - "Show": "afficher", - "Hide": "Masquer", - "Run Simulation": "Exécuter une simulation", - "Toggle Configuration": "Activer/désactiver la configuration", - "Javascript": "Javascript", - "Expand Editor": "Développer l'éditeur", - "Homepage": "Page d'accueil", - "Use the slider to select a range": "Utiliser le curseur pour sélectionner une plage", - "Select a file": "Sélectionner un fichier", - "Generated Token": "Jeton généré", - "Per page": "Par page", - "Search a user": "Rechercher un utilisateur", - "Search here": "Rechercher ici", - "Search a group": "Rechercher un groupe", - "Search a screen": "Rechercher un écran", - "Search a script": "Rechercher un script", - "{{count}} Item": "{{count}} élément", - "{{count}} Items": "{{count}} éléments", - "Aria Label": "Étiquette Aria", - "Attribute designed to help assistive technology (e.g. screen readers) attach a label": "Attribut conçu pour aider les technologies d'assistance (p. ex., les lecteurs d'écran) à joindre une étiquette", - "Tab Order": "Ordre Tab", - "Order in which a user will move focus from one control to another by pressing the Tab key": "L'ordre dans lequel un utilisateur déplacera le focus d'une commande à l'autre en appuyant sur la touche Tab", - "A mouse and keyboard are required to use screen builder.": "Une souris et un clavier sont nécessaires pour utiliser le générateur d'écran.", - "A mouse and keyboard are required to use the modeler.": "Une souris et un clavier sont nécessaires pour utiliser le modélisateur.", - "{{name}} on page {{pageName}} is not accessible to screen readers. Please add a Label in the Variable section or an Aria Label in the Advanced section.": "{{name}} sur la page {{pageName}} n'est pas accessible aux lecteurs d'écran. Veuillez ajouter une étiquette dans la section Variable, ou une étiquette Aria dans la section Avancé.", - "File uplodaded": "Fichier importé", - "Uploading...": "Importation…", - "Process Manager": "Gestionnaire de processus", - "BPMN validation issues. Request cannot be started.": "Erreurs de validation BPMN. Impossible de démarrer la requête.", - "Some bpmn elements do not comply with the validation": "Certains éléments BPMN ne sont pas conformes à la validation", - "Process Manager not configured.": "Gestionnaire de processus non configuré.", - "Out of Office": "Absent(e)", - "Scheduled": "Programmé", - "Lock User Assignment": "Verrouiller l'attribution à l'utilisateur", - "Assignee Manager Escalation": "Réaffectation du gestionnaire des attributions", - "Data Sources Package not installed.": "Le package de sources de données n'est pas installé.", - "Signal Payload": "Charge utile du signal", - "Signals present in processes and system processes cannot be deleted.": "Les signaux présents dans les processus et les processus système ne peuvent pas être supprimés.", - "System signals cannot be modified.": "Les signaux système ne peuvent pas être modifiés.", - "Cannot edit system signals.": "Impossible de modifier les signaux système.", - "Cannot delete System signals.": "Impossible de supprimer les signaux système.", - "Cannot delete signals present in a process.": "Impossible de supprimer les signaux présents dans un processus.", - "Display contents of docker file that will be prepended to your customizations below.": "Affichez les contenus d'un fichier Docker qui seront ajoutés avant les personnalisations ci-dessous.", - "Downloading files is not available.": "Le téléchargement des fichiers n'est pas disponible.", - "auth.failed": "Ces informations d'identification ne figurent pas dans notre système.", - "auth.throttle": "Vous avez atteint le nombre maximum de tentatives de connexion. Veuillez réessayer dans :seconds secondes.", - "passwords.password": "Les mots de passe doivent comporter au moins six caractères et correspondre à la confirmation du mot de passe.", - "passwords.reset": "Votre mot de passe a été réinitialisé !", - "passwords.sent": "Nous vous avons envoyé un e-mail contenant le lien de réinitialisation de votre mot de passe !", - "passwords.token": "Ce jeton de réinitialisation de mot de passe n'est pas valide.", - "passwords.user": "Cette adresse e-mail ne correspond à aucun utilisateur.", - "Password Reset": "Réinitialisation du mot de passe", - "All rights reserved.": "Tous droits réservés.", - "Reset Your Password": "Réinitialiser votre mot de passe", - "Password Requirements": "Exigences en matière de mot de passe", - "Minimum of 8 characters in length": "8 caractères minimum", - "Contains an uppercase letter": "Doit contenir une lettre majuscule", - "Contains a number or symbol": "Doit contenir un chiffre ou un symbole", - "Confirm New Password": "Confirmer le nouveau mot de passe", - "Reset Password": "Réinitialiser le mot de passe", - "Success!": "Opération réussie !", - "Your password has been updated.": "Votre mot de passe a été mis à jour.", - "Return to Login": "Revenir sur la page de connexion", - "Login": "Ouvrir une session", - "Reset Password Notification": "Notification de réinitialisation du mot de passe", - "You are receiving this email because we received a password reset request for your account.": "Vous recevez cet e-mail car une demande de réinitialisation de votre mot de passe a été émise.", - "This password reset link will expire in :count minutes.": "Ce lien de réinitialisation du mot de passe expirera dans :count minutes.", - "If you believe this is an error, please contact the system administrator or support team for assistance.": "Si vous pensez qu'il s'agit d'une erreur, veuillez contacter l'administrateur système ou l'équipe de support pour obtenir de l'aide.", - "If you did not request a password reset, please call us.": "Si vous n'avez pas demandé la réinitialisation de votre mot de passe, veuillez nous appeler.", - "If you do, you won’t be able to recover the Calc configuration.": "Si vous le faites, vous ne pourrez pas récupérer la configuration Calc.", - "Hello!": "Bonjour !", - "Regards": "Bien cordialement", - "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "Si vous rencontrez des difficultés avec le bouton « :actionText », copiez et collez l'URL ci-dessous\ndans votre navigateur Web :", - "ProcessMaker Platform": "Plateforme ProcessMaker", - "Template Documentation": "Documentation sur les modèles", - "Edit Template": "Modifier le modèle", - "Export Template": "Exporter le modèle", - "Configure Template": "Configurer le modèle", - "Delete Template": "Supprimer le modèle", - "Import Process Template": "Importer un modèle de processus", - "Import a Process Template and its associated assets into this ProcessMaker environment": "Importez un modèle de processus et ses éléments associés dans cet environnement ProcessMaker", - "Drag file here": "Faites glisser le fichier ici", - "or": "ou", - "Select file from computer": "Sélectionnez le fichier sur votre ordinateur", - "Save as Template": "Enregistrer en tant que modèle", - "Template": "Modèle", - "Templates": "Modèles", - "Template Author": "Auteur du modèle", - "Publish Template": "Publier le modèle", - "This will create a re-usable template based on the :assetName :assetType": "Cela permettra de créer un modèle réutilisable basé sur le :assetName :assetType", - "Template Name": "Nom du modèle", - "The template name must be unique.": "Le nom du modèle doit être unique.", - "New Process": "Nouveau processus", - "Delete Category": "Supprimer la catégorie", - "Save all assets": "Enregistrer tous les éléments", - "Save process model only": "Enregistrer le modèle de processus uniquement", - "Expand sidebar": "Développer la barre latérale", - "The process name must be unique": "Le nom du processus doit être unique", - "Search Templates": "Rechercher des modèles", - "Back": "Retour", - "Enter Password": "Saisissez le mot de passe", - "Import a Process and its associated assets into this ProcessMaker environment": "Importez un processus et ses éléments associés dans cet environnement ProcessMaker", - "This file is password protected. Enter the password below to continue with the import.": "Ce fichier est protégé par un mot de passe. Saisissez-le ci-dessous pour poursuivre l'importation.", - "Import As New": "Importer en tant que nouveau", - "Update": "Mettre à jour", - "The selected file is invalid or not supported for the Process importer. Please verify that this file is a Process.": "Le fichier sélectionné est invalide ou non pris en charge pour l'importateur de Processus. Veuillez vérifier que ce fichier est un Processus.", - "The file you are importing was made with an older version of ProcessMaker. Advanced import is not available. All assets will be copied.": "Le fichier que vous importez a été créé avec une version antérieure de ProcessMaker. L'importation avancée n'est pas disponible. Tous les actifs seront copiés.", - "Select Import Type": "Sélectionnez le type d'importation", - "Import all assets from the uploaded package.": "Importer tous les actifs du paquet téléchargé.", - "Custom": "Personnalisé", - "Select which assets from the uploaded package should be imported to this environment.": "Sélectionnez les ressources du package téléchargé qui doivent être importées dans cet environnement.", - "You are about to import": "Vous êtes sur le point d'importer", - "Process was successfully imported": "Le processus a été importé avec succès", - "The selected file is invalid or not supported for the Templates importer. Please verify that this file is a Template.": "Le fichier sélectionné est invalide ou non pris en charge pour l'importateur de modèles. Veuillez vérifier que ce fichier est un modèle.", - "Host URL": "URL de l'hôte", - "Enter the integration key from ProcessMaker IDP": "Saisissez la clé d'intégration de ProcessMaker IDP", - "Enter the secret key from ProcessMaker IDP": "Saisissez la clé secrète de ProcessMaker IDP", - "Enter the address of your ProcessMaker IDP server": "Saisissez l'adresse de votre serveur ProcessMaker IDP", - "Select Available Folders": "Sélectionnez les dossiers disponibles", - "You must authorize your account before configuring folders": "Vous devez autoriser votre compte avant de configurer les dossiers", - "Token URL": "URL du jeton", - "Enter your OAuth2 token URL": "Saisissez votre URL de jeton OAuth2", - "Empty": "Vide", - "Select Destination": "Sélectionner la destination", - "Use Request Variable": "Utiliser la variable de demande", - "Document Type": "Type de document", - "Intelligent Document Processing": "Traitement Intelligent de Documents", - "Variable containing the file to be sent": "Variable contenant le fichier à envoyer", - "Enter the destination...": "Entrez la destination...", - "Enter the document type": "Saisissez le type de document", - "Authorize Account": "Autoriser le compte", - "Search result": "Résultat de recherche", - "Nothing searched yet": "Rien recherché pour l'instant", - "Recently searched": "Recherches récentes", - "The history is empty": "L'historique est vide", - "Powered by ProcessMaker AI": "Propulsé par ProcessMaker AI", - "Accessed_at": "Accédé à", - "Add Process Translation": "Ajouter une traduction de processus", - "At": "À", - "Auth_client_id": "ID du client Auth", - "AuthClientCreated": "Client Auth Créé", - "AuthClientDeleted": "Client Auth Supprimé", - "AuthClientUpdated": "Client Auth Mis à Jour", - "Auto Translate": "Traduction Automatique", - "By default, all process screens will be auto translated via our AI tooling.": "Par défaut, tous les écrans de processus seront traduits automatiquement via nos outils IA.", - "CategoryCreated": "Catégorie Créée", - "CategoryDeleted": "Catégorie Supprimée", - "Category_name": "Nom de Catégorie", - "CategoryUpdated": "Catégorie mise à jour", - "Config": "Config", - "Created_at": "Créé à", - "CreatedGroup": "Groupe créé", - "CustomizeUiUpdated": "Personnalisation de l'UI mise à jour", - "DashboardCreated": "Tableau de bord créé", - "DashboardDeleted": "Tableau de bord supprimé", - "DashboardUpdated": "Tableau de bord mis à jour", - "Data_source_category": "Catégorie de Source de Données", - "Deleted_at": "Supprimé À", - "Delete_at": "Supprimer à", - "Disables auto translate and manually translate screen content.": "Désactive la traduction automatique et traduit manuellement le contenu de l'écran.", - "Download the ": "Téléchargez le ", - "EnvironmentVariablesCreated": "Variables d'environnement créées", - "EnvironmentVariablesDeleted": "Variables d'environnement supprimées", - "EnvironmentVariablesUpdated": "Variables d'environnement mises à jour", - "FilesCreated": "Fichiers Créés", - "FilesDeleted": "Fichiers Supprimés", - "FilesUpdated": "Fichiers Mis à Jour", - "File_name": "Nom de Fichier", - "FolderCreated": "Dossier Créé", - "FolderUpdated": "Dossier Mis à Jour", - "GroupDeleted": "Groupe Supprimé", - "GroupMembersUpdated": "Membres du Groupe Mis à Jour", - "Language the translator will translate to.": "Langue vers laquelle le traducteur va traduire.", - "Last_modified": "Dernière Modification", - "Manager_id": "ID du gestionnaire", - "Manual translation": "Traduction manuelle", - "Method_of_creation": "Méthode De Création", - "No translations found": "Aucune traduction trouvée", - "Password_client": "Client de mot de passe", - "PermissionUpdated": "Permission mise à jour", - "Personal_access_client": "Client d'Accès Personnel", - "Please wait": "Veuillez attendre", - "Pm_block_category": "Catégorie de Bloc PM", - "Preview Desktop": "Aperçu du Bureau", - "Preview Mobile": "Aperçu Mobile", - "ProcessArchived": "Processus Archivé", - "Process_category_id": "ID de catégorie de processus", - "ProcessCreated": "Processus Créé", - "ProcessRestored": "Processus Restauré", - "ProcessUpdated": "Processus Mis à Jour", - "Process A Translate": "Processus A Traduire", - "Process_manager": "Gestionnaire de processus", - "QueueManagementAccessed": "Gestion de File d'Attente Accédée", - "Run_as_user_id": "Exécuter en tant qu'ID utilisateur", - "Screen_category_id": "ID de Catégorie d'Écran", - "Screen_category": "Catégorie d'écran", - "ScreenCreated": "Écran Créé", - "ScreenDeleted": "Écran Supprimé", - "ScreenUpdated": "Écran Mis à Jour", - "ScriptCreated": "Script Créé", - "ScriptDeleted": "Script Supprimé", - "ScriptDuplicated": "Script Dupliqué", - "ScriptExecutorCreated": "Script Executor Créé", - "ScriptExecutorDeleted": "Script Executor Supprimé", - "Script_executor_id": "ID de l'exécuteur de script", - "ScriptExecutorUpdated": "Script Executor Mis à Jour", - "ScriptUpdated": "Script Mis à Jour", - "Script_name": "Nom du Script", - "Select a screen from the process to review and perform translations.": "Sélectionnez un écran du processus pour examiner et effectuer des traductions.", - "Select a target language": "Sélectionnez une langue cible", - "SettingsUpdated": "Paramètres mis à jour", - "TemplateCreated": "Modèle Créé", - "TemplateDeleted": "Modèle Supprimé", - "TemplateUpdated": "Modèle mis à jour", - "TokenCreated": "Jeton Créé", - "TokenDeleted": "Jeton Supprimé", - "Token_id": "ID de jeton", - "Translation in progress": "Traduction en cours", - "Translation Options": "Options de traduction", - "Translate process screens to a desired language": "Traduire les écrans de processus dans une langue souhaitée", - "translations for each screen associated to the process.": "traductions pour chaque écran associé au processus.", - "translations for the process": "traductions pour le processus", - "UnauthorizedAccessAttempt": "Tentative d'Accès Non Autorisée", - "Updated_at": "Mis à jour le", - "UserCreated": "Utilisateur Créé", - "UserDeleted": "Utilisateur Supprimé", - "UserGroupsUpdated": "Groupes d'utilisateurs mis à jour", - "UserUpdated": "Utilisateur Mis à Jour", - "User_name": "Nom d'utilisateur", - "You are about to export": "Vous êtes sur le point d'exporter", - "No strings found to translate": "Aucune chaîne trouvée à traduire", - "Create a new Process": "Créer un nouveau Processus", - "Your word is our command!": "Votre mot est notre commande !", - "Use Artificial Intelligence in any natural language to create complex Processes, just like writing to a person. Even describe your Process in one language, but output your model in another.": "Utilisez l'Intelligence Artificielle dans n'importe quelle langue naturelle pour créer des Processus complexes, tout comme écrire à une personne. Même décrivez votre Processus dans une langue, mais sortez votre modèle dans une autre.", - "Timeout: :timeout seconds": "Délai d'attente: :timeout secondes", - "Set maximum run time in seconds. Leave empty to use script default. Set to 0 for no timeout.": "Définir le temps d'exécution maximum en secondes. Laissez vide pour utiliser la valeur par défaut du script. Réglez sur 0 pour aucune limite de temps.", - "Set maximum run time in seconds. Leave empty to use data connector default. Set to 0 for no timeout.": "Définir le temps d'exécution maximum en secondes. Laissez vide pour utiliser la valeur par défaut du connecteur de données. Définir à 0 pour aucune limite de temps.", - "Retry Attempts": "Tentatives de Réessai", - "Set maximum run retry attempts in seconds. Leave empty to use script default. Set to 0 for no retry attempts.": "Définir le nombre maximum de tentatives de réexécution en secondes. Laisser vide pour utiliser la valeur par défaut du script. Définir à 0 pour aucune tentative de réexécution.", - "Set maximum run retry attempts in seconds. Leave empty to use data connector default. Set to 0 for no retry attempts.": "Définir le nombre maximum de tentatives de relance en secondes. Laissez vide pour utiliser la valeur par défaut du connecteur de données. Définir à 0 pour aucune tentative de relance.", - "Retry Wait Time": "Temps d'Attente de Nouvelle Tentative", - "Set maximum run retry wait time in seconds. Leave empty to use script default. Set to 0 for no retry wait time.": "Définir le temps d'attente maximum de réessai en secondes. Laissez vide pour utiliser la valeur par défaut du script. Définir à 0 pour aucun temps d'attente de réessai.", - "Set maximum run retry wait time in seconds. Leave empty to use data connector default. Set to 0 for no retry wait time.": "Définissez le temps d'attente maximum de nouvelle tentative en secondes. Laissez vide pour utiliser la valeur par défaut du connecteur de données. Définissez à 0 pour aucun temps d'attente de nouvelle tentative.", - "Script failed after :attempts total attempts": "Le script a échoué après :attempts tentatives totales", - "Failed after :num total attempts": "Échec après :num tentatives totales", - "Seconds to wait before retrying. Leave empty to use script default. Set to 0 for no retry wait time. This setting is only used when running a script task in a process.": "Secondes à attendre avant de réessayer. Laissez vide pour utiliser la valeur par défaut du script. Définissez sur 0 pour aucun temps d'attente de nouvelle tentative. Ce paramètre n'est utilisé que lors de l'exécution d'une tâche de script dans un processus.", - "Number of times to retry. Leave empty to use script default. Set to 0 for no retry attempts. This setting is only used when running a script task in a process.": "Nombre de fois à réessayer. Laissez vide pour utiliser la valeur par défaut du script. Définissez à 0 pour aucune tentative de réessai. Ce paramètre n'est utilisé que lors de l'exécution d'une tâche de script dans un processus.", - "View Request": "Voir la demande", - "Execution Error": "Erreur d'exécution", - "Task can not be rolled back": "La tâche ne peut pas être annulée", - ":user rolled back :failed_task_name to :new_task_name": ":user a rétabli :failed_task_name à :new_task_name", - "Rollback Request": "Demande de retour en arrière", - "Rollback": "Annuler", - "Rollback to task": "Retour à la tâche", - "Are you sure you want to rollback to the task @{{name}}? Warning! This request will continue as the current published process version.": "Êtes-vous sûr de vouloir revenir à la tâche @{{name}}? Attention! Cette demande se poursuivra comme la version actuelle du processus publié.", - "Request Error": "Erreur de Demande", - "UserRestored": "Utilisateur Restauré", - "Since there is no interface translation for this language, translations for these screens will only render for anonymous users in web entries.": "Comme il n'y a pas de traduction d'interface pour cette langue, les traductions pour ces écrans ne s'afficheront que pour les utilisateurs anonymes dans les entrées web.", - "Click on the link to download the log file. This link will be available until": "Cliquez sur le lien pour télécharger le fichier journal. Ce lien sera disponible jusqu'à", - "It was not possible to connect AWS S3 service. Please contact your Customer Success Manager to use it.": "Il n'était pas possible de se connecter au service AWS S3. Veuillez contacter votre Responsable du succès client pour l'utiliser.", - "Retry_attempts": "Tentatives de Réessai", - "Retry_wait_time": "Temps d'attente pour réessayer", - "Save assets mode": "Mode de Sauvegarde des Actifs", - "Script_category": "Catégorie", - "TemplatePublished": "Modèle Publié", - "The file is processing. You may continue working while the log file compiles.": "Le fichier est en cours de traitement. Vous pouvez continuer à travailler pendant que le fichier journal se compile.", - "This feature requires the configured AWS S3 service. Please contact your Customer Success Manager to use it.": "Cette fonctionnalité nécessite le service AWS S3 configuré. Veuillez contacter votre Gestionnaire de réussite client pour l'utiliser.", - "Generate from Text": "Générer à partir du Texte", - "Build Your Own": "Construisez le Vôtre", - "Try our new Generative AI": "Essayez notre nouvel IA génératif", - "Describe your process. Our AI will build the model for you. Use it immediately or tweak it as needed.": "Décrivez votre processus. Notre IA construira le modèle pour vous. Utilisez-le immédiatement ou ajustez-le selon vos besoins.", - "This environment already contains the {{ item }} named '{{ name }}.'": "Cet environnement contient déjà l'élément {{ item }} nommé '{{ name }}'.", - "This environment already contains a newer version of the {{ item }} named '{{ name }}.'": "Cet environnement contient déjà une version plus récente de l'{{ item }} nommé '{{ name }}'.", - "This environment already contains an older version of the {{ item }} named '{{ name }}.'": "Cet environnement contient déjà une version plus ancienne de {{ item }} nommé '{{ name }}'.", - "This environment already contains the same version of the {{ item }} named '{{ name }}.'": "Cet environnement contient déjà la même version de l'{{ item }} nommé '{{ name }}'.", - "Visit our Gallery for more Templates": "Visitez notre Galerie pour plus de Modèles", - "Start a new process from a blank canvas, a text description, or a preset template.": "Démarrez un nouveau processus à partir d'une toile vierge, d'une description textuelle ou d'un modèle prédéfini.", - "Log-In Options": "Log-In Options", - "Your password has expired.": "Your password has expired.", - "Password set by user": "Password set by user", - "Allow to users to change their own password.": "Allow to users to change their own password.", - "Numeric characters": "Numeric characters", - "Passwords must contain minimum one numeric character.": "Passwords must contain minimum one numeric character.", - "Uppercase characters": "Uppercase characters", - "Passwords must contain minimum one uppercase character.": "Passwords must contain minimum one uppercase character.", - "Special characters": "Special characters", - "Passwords must contain minimum one special character.": "Passwords must contain minimum one special character.", - "Maximum length": "Maximum length", - "Maximum password length allowed.": "Maximum password length allowed.", - "Minimum length": "Minimum length", - "Minimum password length allowed.": "Minimum password length allowed.", - "Password expiration": "Password expiration", - "Password will expire in the days configured here.": "Password will expire in the days configured here.", - "Login failed": "Login failed", - "Number of consecutive unsuccessful login attempts before block the login action momentarily (0 for unlimited).": "Number of consecutive unsuccessful login attempts before block the login action momentarily (0 for unlimited).", - "The current value is empty but a value is required. Please provide a valid value.": "The current value is empty but a value is required. Please provide a valid value.", - "Require Two Step Authentication": "Require Two Step Authentication", - "Enhance security with an additional authentication step for user verification.": "Enhance security with an additional authentication step for user verification.", - "Two Step Authentication Method": "Two Step Authentication Method", - "A security code will be sent to all selected methods.": "A security code will be sent to all selected methods.", - "Enter the security code from :methods. If incorrect, please retry with the latest code provided.": "Enter the security code from :methods. If incorrect, please retry with the latest code provided.", - "SMS": "SMS", - "Google Authenticator": "Google Authenticator", - "Enter Security Code": "Enter Security Code", - "Enter your security code": "Enter your security code", - "Send Again": "Send Again", - "Invalid phone number. Please verify and update your phone number in your account settings.": "Invalid phone number. Please verify and update your phone number in your account settings.", - "You can also authenticate by :otherMethods.": "You can also authenticate by :otherMethods.", - "Invalid code.": "Invalid code.", - "Security Code": "Security Code", - "This is your security code: :code": "This is your security code: :code", - "This may cause validation errors during submission.": "Cela peut provoquer des erreurs de validation lors de la soumission.", - "Configure the authenticator app": "Configure the authenticator app", - "1.- Download the Google Authenticator App": "1.- Download the Google Authenticator App", - "2.- On the Google Authenticator app click on the + icon": "2.- On the Google Authenticator app click on the + icon", - "3.- Select \"Scan QR code\" option": "3.- Select \"Scan QR code\" option", - "Blocked": "Blocked", - "Account locked after too many failed attempts. Contact administrator.": "Account locked after too many failed attempts. Contact administrator.", - "Block duplicate session": "Block duplicate session", - "Kill existing session": "Kill existing session", - "Type value": "Entrer une valeur", - "No new notifications at the moment.": "Pas de nouvelles notifications pour le moment.", - "All Clear": "Tout est clair", - "Notifications, No New Messages": "Notifications, Aucun Nouveau Message", - "Case #": "Cas n°", - "Case title": "Titre du cas", - "Task name": "Nom de la tâche", - "TASK NAME": "Nom de la tâche", - "Due date": "Date d'échéance", - "DUE DATE": "Date d'échéance", - "Inbox": "Boîte de réception", - "{{- subject }} caused an error": "{{- subject }} a provoqué une erreur", - "{{- subject }} completed": "{{- subject }} terminé", - "{{- user}} commented on {{- subject}}": "{{- user}} a commenté sur {{- subject}}", - "{{- user}} started the process {{- subject }}": "{{- user}} a commencé le processus {{- subject }}", - "Add From Templates": "Ajouter à partir des modèles", - "Add to a Project": "Ajouter à un Projet", - "Add to My Bookmarks": "Ajouter à Mes Marque-pages", - "All Processes": "Tous les processus", - "All Templates": "Tous les modèles", - "All your requests will be shown here": "Toutes vos demandes seront affichées ici", - "All your tasks related to this process will be shown here": "Toutes vos tâches liées à ce processus seront affichées ici", - "Analytics Chart": "Graphique d'analyse", - "As Participant": "En tant que Participant", - "As Requester": "En tant que Demandeur", - "Assets": "Actifs", - "Available Processes": "Processus Disponibles", - "By Creation Date": "Par Date de Création", - "By Due Date": "Par Date d'Échéance", - "Check out your tasks and requests on your phone.": "Consultez vos tâches et demandes sur votre téléphone.", - "Choose an Executor": "Choisissez un Exécuteur", - "Choose an icon for this PM Block.": "Choisissez une icône pour ce bloc PM.", - "Connecting Driver": "Connexion du pilote", - "Connection Type": "Type de Connexion", - "Create processes from a written description.": "Créez des processus à partir d'une description écrite.", - "Currently, you don't have any processes created.": "Actuellement, vous n'avez créé aucun processus.", - "Default Icon": "Icône par défaut", - "easier than ever": "plus facile que jamais", - "Edit in Launchpad": "Modifier dans Launchpad", - "End": "Fin", - "Enter the name of the PM Block author.": "Saisissez le nom de l'auteur du bloc PM.", - "Enter the version of this PM Block.": "Saisissez la version de ce bloc PM.", - "Enter your password": "Entrez votre mot de passe", - "Enter your username": "Saisissez votre nom d'utilisateur", - "Explain": "Expliquer", - "External Integrations": "Intégrations Externes", - "Filter by Type": "Filtrer par Type", - "Got it!": "Compris !", - "Guided Templates": "Modèles Guidés", - "Have you tried the new AI Assistant?": "Avez-vous essayé le nouvel Assistant IA ?", - "Home": "Accueil", - "Images for carousel": "Images pour carrousel", - "Imported {{- subject }}": "Importé {{- subject }}", - "Integrate with the Plaid banking service": "Intégrez avec le service bancaire Plaid", - "Launchpad Icon": "Icône de Launchpad", - "List Table": "Tableau Liste", - "My Bookmarks": "Mes Marque-pages", - "My Projects": "Mes Projets", - "My Tasks": "Mes Tâches", - "Name of the File": "Nom du Fichier", - "Name of the Task": "Nom de la Tâche", - "Nayra microservice is not available at this moment.": "Le microservice Nayra n'est pas disponible pour le moment.", - "New Collection": "Nouvelle Collection", - "New Data Connector": "Nouveau Connecteur de Données", - "New Decision Table": "Nouveau Tableau de Décision", - "New Screen": "Nouvel Écran", - "New Script": "Nouveau Script", - "Next": "Suivant", - "No assets to display here yet": "Aucun actif à afficher ici pour le moment", - "No results have been found": "Aucun résultat n'a été trouvé", - "Not authorized to update the username and password.": "Non autorisé à mettre à jour le nom d'utilisateur et le mot de passe.", - "Notifications, {{count}} New Messages": "Notifications, {{count}} Nouveaux Messages", - "Once published, all new requests will use the new process model.": "Une fois publié, toutes les nouvelles demandes utiliseront le nouveau modèle de processus.", - "Only PNG and JPG extensions are allowed.": "Seules les extensions PNG et JPG sont autorisées.", - "Open": "Ouvrir", - "PM Block Name": "Nom du Bloc PM", - "Generate single fields or entire forms with our generative assistant": "Générez des champs uniques ou des formulaires entiers avec notre assistant génératif", - "Collect a string of text and format it as one of several data types": "Collectez une chaîne de texte et formatez-la comme l'un des plusieurs types de données", - "Collect options from a list, as radio butttons or dropdowns": "Collectez des options à partir d'une liste, sous forme de boutons radio ou de listes déroulantes", - "Collect a multi-line string of text, to allow for extensive, richly formatted responses": "Collectez une chaîne de texte sur plusieurs lignes, pour permettre des réponses étendues et richement formatées", - "Collect a date or date/time": "Collectez une date ou une date/heure", - "Add a checkbox or toggle for true/false responses": "Ajoutez une case à cocher ou un bascule pour des réponses vrai/faux", - "Capture a photo or a Video straight from a camera device": "Prenez une photo ou une vidéo directement à partir d'un appareil photo", - "Add a signature box to collect a hand-drawn signature image": "Ajoutez une boîte de signature pour collecter une image de signature dessinée à la main", - "Use a Rich Text Editor to add HTML-formatted": "Utilisez un éditeur de texte enrichi pour ajouter du format HTML", - "Organize and group your content in columns": "Organisez et regroupez votre contenu en colonnes", - "Upload an image to your screen": "Téléchargez une image sur votre écran", - "Format content in a table structure": "Mettez le contenu en format de tableau", - "Format content in a table structure and allow for adding rows": "Mettez le contenu en format de tableau et permettez l'ajout de lignes", - "Add a repeatable section of content": "Ajoutez une section de contenu répétable", - "Add and reuse another Form within this Form": "Ajoutez et réutilisez un autre Formulaire dans ce Formulaire", - "Add special buttons that link between subpages within this Form ": "Ajouter des boutons spéciaux qui lient entre les sous-pages dans ce Formulaire ", - "Add a chart from the Analytics Reports": "Ajouter un graphique à partir des Rapports d'Analyse", - "Collect files uploaded into the Form": "Collectez les fichiers téléchargés dans le Form", - "Offer a File download": "Offrir un téléchargement de fichier", - "Add a Preview section that displays the content of a File": "Ajoutez une section Aperçu qui affiche le contenu d'un Fichier", - "Create List Table": "Créer Tableau de Liste", - "Add one of several Bootstrap Vue components": "Ajoutez l'un des plusieurs composants Bootstrap Vue", - "Wrap an existing subpage within this Form into a Bootstrap Vue component": "Intégrez une sous-page existante dans ce formulaire dans un composant Bootstrap Vue", - "Add a Captcha box to your Form": "Ajoutez une boîte Captcha à votre formulaire", - "Collect an address using Google's location search": "Collectez une adresse en utilisant la recherche de localisation de Google", - "Add a chart from one of your Saved Searches": "Ajoutez un graphique à partir de l'une de vos Recherches Enregistrées", - "AI Assistant": "Assistant IA", - "Input Fields": "Champs de saisie", - "Content Fields": "Champs de Contenu", - "Dashboard": "Tableau de bord", - "Dashboard configuration was not imported": "La configuration du tableau de bord n'a pas été importée", - "Dashboards": "Tableaux de bord", - "Search faster.": "Recherchez plus rapidement.", - "Search Here": "Recherchez Ici", - "Search Processes": "Rechercher des Processus", - "Prev": "Préc", - "Process Browser": "Navigateur de Processus", - "Processes Browser": "Navigateur de Processus", - "ProcessMaker Logo": "Logo de ProcessMaker", - "Publish New Version": "Publier Nouvelle Version", - "Publish PM Block": "Publier le bloc PM", - "Open in Modeler": "Ouvrir dans Modeler", - "Recent Assets": "Actifs Récents", - "Recent Assets from my Projects": "Actifs récents de mes Projets", - "Remove from My Bookmarks": "Supprimer de Mes Marque-pages", - "Repository Name": "Nom du Référentiel", - "Request Commented": "Commentaire de la demande", - "Requests of process": "Requêtes de processus", - "Restrict query results by the repository name.": "Limiter les résultats de la requête par le nom du dépôt.", - "Restrict query results by UserLogin.": "Limiter les résultats de la requête par UserLogin.", - "Save as PM Block": "Enregistrer comme Bloc PM", - "Search Categories": "Catégories de Recherche", - "See All Collections": "Voir Toutes les Collections", - "See All Data Connectors": "Voir tous les connecteurs de données", - "See All Decision Tables": "Voir tous les tableaux de décision", - "See All Processes": "Voir tous les processus", - "See All Screens": "Voir tous les écrans", - "See All Scripts": "Voir tous les scripts", - "Select Chart Type": "Sélectionnez le type de graphique", - "Select Project": "Sélectionner le projet", - "Select the day(s) of the week in which to trigger this Unable to send email. Please check your email server settings.element": "Sélectionnez le(s) jour(s) de la semaine pour déclencher cet élément", - "Select the user to reassign to the task": "Sélectionnez l'utilisateur à qui réaffecter la tâche", - "Show Me The Templates": "Montre-Moi Les Modèles", - "Sign In": "Se connecter", - "Smarter processes,": "Des processus plus intelligents,", - "Specifies the file storage service, server, or file access protocol through which your Microsoft Excel files are stored and retreived.": "Spécifie le service de stockage de fichiers, le serveur ou le protocole d'accès aux fichiers par lequel vos fichiers Microsoft Excel sont stockés et récupérés.", - "Start new Request": "Démarrer une nouvelle demande", - "Start this process": "Démarrez ce processus", - "Starting events": "Démarrage des événements", - "successfully authorized": "autorisation réussie", - "Supported formats are PNG and JPG.": "Les formats pris en charge sont PNG et JPG.", - "Task {{- subject }} completed by {{- user }}": "Tâche {{- subject }} accomplie par {{- user }}", - "Task {{- subject }} is overdue. Originally due on {{- due }}": "La tâche {{- subject }} est en retard. Initialement due le {{- due }}", - "Task {{- subject }} reassigned to {{- user }}": "Tâche {{- subject }} réaffectée à {{- user }}", - "The image was deleted": "L'image a été supprimée", - "The PM Block name must be unique.": "Le nom du bloc PM doit être unique.", - "The Uniform Resource Identifier (URI) for the Excel resource location.": "L'Identifiant Uniforme de Ressource (URI) pour l'emplacement de la ressource Excel.", - "This will create a PM Block based on the Process": "Cela créera un bloc PM basé sur le Processus", - "To change the current username and password please contact your administrator.": "Pour changer le nom d'utilisateur et le mot de passe actuels, veuillez contacter votre administrateur.", - "To switch back to the previous interface, use \"Switch to Desktop View\" in the user menu.": "Pour revenir à l'interface précédente, utilisez \"Switch to Desktop View\" dans le menu utilisateur.", - "Translate into multiple languages.": "Traduire dans plusieurs langues.", - "Unknown Process": "Processus Inconnu", - "Unknown User": "Utilisateur Inconnu", - "Uploaded": "Téléchargé", - "Uploaded By": "Téléchargé par", - "URI": "URI", - "Use a copy if you are planning on making changes to this asset.": "Utilisez une copie si vous prévoyez de faire des modifications à cet actif.", - "User Login": "Connexion utilisateur", - "We apologize, but we were unable to find any results that match your search. \nPlease consider trying a different search. Thank you": "Nous nous excusons, mais nous n'avons pas pu trouver de résultats correspondant à votre recherche. \nVeuillez envisager d'essayer une recherche différente. Merci", - "We encourage you to create new processes using our templates.": "Nous vous encourageons à créer de nouveaux processus en utilisant nos modèles.", - "Welcome Participant!": "Bienvenue Participant !", - "Welcome Back": "Bienvenue à nouveau", - "You are not part of a project yet": "Vous ne faites pas encore partie d'un projet", - "You have made no requests of this process.": "Vous n'avez fait aucune demande à ce processus.", - "You have no tasks from this process.": "Vous n'avez aucune tâche de ce processus.", - "You seem to be missing access to this feature. Please contact ProcessMaker Support.": "Il semble que vous n'ayez pas accès à cette fonctionnalité. Veuillez contacter le support de ProcessMaker.", - "Pan Tool": "Outil Pan", - "AI Generated": "Généré par IA", - "Photo/Video": "Photo/Vidéo", - "Bootstrap Component": "Composant Bootstrap", - "Bootstrap Wrapper": "Enveloppe Bootstrap", - "Captcha": "Captcha", - "Google Places": "Google Places", - "Add an action to submit your form or update a field": "Ajoutez une action pour soumettre votre formulaire ou mettre à jour un champ", - "Add special buttons that link between subpages within this Form": "Ajouter des boutons spéciaux qui lient entre les sous-pages au sein de ce Formulaire", - "input": "entrée", - "View All Data Connectors": "Voir tous les connecteurs de données", - "View All Decision Tables": "Voir tous les tableaux de décision", - "View All Processes": "Voir tous les processus", - "View All Screens": "Voir tous les écrans", - "View All Scripts": "Voir tous les scripts", - "Create a Project": "Créer un Projet", - "New Case": "Nouveau Cas", - "No Request to Start": "Aucune demande pour commencer", - "No Requests to Show": "Aucune demande à afficher", - "No tasks in sight": "Aucune tâche en vue", - "PM Blocks": "Blocs PM", - "Projects": "Projets", - "Recent Projects": "Projets Récents", - "View All Tasks": "Voir Toutes les Tâches", - "Well, it seems nothing in here": "Eh bien, il semble qu'il n'y ait rien ici", - "Inbox Rules act as your personal task manager. You tell them what to look for, and they": "Les règles de la boîte de réception agissent comme votre gestionnaire de tâches personnel. Vous leur dites ce qu'il faut rechercher, et ils", - "take care of things automatically.": "s'occupent des choses automatiquement.", - "Add to Project": "Ajouter au Projet", - "All {{assets}} will be included in this export.": "Tous les {{assets}} seront inclus dans cet export.", - "All elements related to this process will be imported.": "Tous les éléments liés à ce processus seront importés.", - "All Process Elements": "Tous les éléments de processus", - "By": "Par", - "COMPLETED": "Terminé", - "Created Date": "Date de création", - "Define a password to protect your export file.": "Définissez un mot de passe pour protéger votre fichier d'exportation.", - "Download a process model and its associated assets.": "Téléchargez un modèle de processus et ses actifs associés", - "Download all related assets.": "Télécharger tous les actifs associés.", - "export": "exporter", - "Full": "Plein", - "import": "importer", - "Include all elements related to this process in your export file.": "Incluez tous les éléments liés à ce processus dans votre fichier d'exportation.", - "Last Modified Date": "Dernière Date de Modification", - "Linked Assets": "Actifs Liés", - "may contain sensitive information.": "peut contenir des informations sensibles.", - "No Processes Available": "Aucun processus disponible", - "Password must have at least 8 characters.": "Le mot de passe doit comporter au moins 8 caractères.", - "Password Protect Export": "Protéger l'exportation par mot de passe", - "Password protect is required because some assets may have sensitive data.": "La protection par mot de passe est requise car certains actifs peuvent contenir des données sensibles.", - "Place your controls here.": "Mettez vos commandes ici.", - "RECENT ASSETS": "Actifs Récents", - "Return to Summary": "Retour au Résumé", - "Select which assets to include in the export file for a custom export package.": "Sélectionnez les actifs à inclure dans le fichier d'exportation pour un package d'exportation personnalisé.", - "Select Export Type": "Sélectionnez le type d'exportation", - "Set Password": "Définir le mot de passe", - "Start New Request": "Démarrer Nouvelle Demande", - "This column can not be sorted or filtered.": "Cette colonne ne peut pas être triée ou filtrée.", - "This password will be required when importing the exported package/process.": "Ce mot de passe sera requis lors de l'importation du package/processus exporté.", - "This process contains no dependent assets to": "Ce processus ne contient aucun actif dépendant à", - "To begin creating a screen, drag and drop items from the Controls Menu on the left.": "Pour commencer à créer un écran, glissez et déposez des éléments du Menu de Contrôles sur la gauche.", - "Total Elements": "Éléments Totals", - "Verify Password": "Vérifier le mot de passe", - "What do you want to search?": "Que voulez-vous rechercher?", - "will": "volonté", - "will be included in this": "sera inclus dans cela", - "CASE #": "Cas #", - "CASE TITLE": "TITRE DE L'AFFAIRE", - "Task Name": "Nom de la Tâche", - "Due Date": "Date d'échéance", - "Case Title": "Titre de l'affaire", - "Creation Date": "Date de création", - "Deactivation Date": "Date de désactivation", - "Case Name": "Nom de l'affaire", - "Run Date": "Date d'exécution", - "Applied Rule": "Règle appliquée", - "Task due Date": "Date d'échéance de la tâche", - "Process Name": "Nom du processus", - "Inbox Rules": "Règles de la boîte de réception", - "Rules": "Règles", - "Execution Log": "Journal d'exécution", - "Create Rule": "Créer une règle", - "We apologize, but we were unable to find any results that match your search. Please consider trying a different search. Thank you": "Nous sommes désolés, mais nous n'avons trouvé aucun résultat correspondant à votre recherche. Veuillez envisager d'essayer une recherche différente. Merci", - "New Inbox Rule": "Nouvelle règle de boîte de réception", - "Task Due Date": "Date d'échéance de la tâche", - "No rules were executed yet": "Aucune règle n'a encore été exécutée", - "Once rules start running, you can see the results here.": "Une fois que les règles commencent à s'exécuter, vous pouvez voir les résultats ici.", - "15 items": "15 articles", - "30 items": "30 articles", - "50 items": "50 articles", - "Anonymous Web Link Copied": "Lien Web Anonyme Copié", - "Cancel And Go Back": "Annuler Et Revenir En Arrière", - "Check your spelling or use other terms.": "Vérifiez votre orthographe ou utilisez d'autres termes.", - "Clear Search": "Effacer la recherche", - "No new tasks at this moment.": "Aucune nouvelle tâche pour le moment.", - "No results to show": "Aucun résultat à afficher", - "Please use this link when you are not logged into ProcessMaker": "Veuillez utiliser ce lien lorsque vous n'êtes pas connecté à ProcessMaker", - "Quick Fill": "Remplissage Rapide", - "Select a previous task to reuse its filled data on the current task.": "Sélectionnez une tâche précédente pour réutiliser ses données remplies sur la tâche actuelle.", - "Sorry, we couldn't find any results for your search.": "Désolé, nous n'avons trouvé aucun résultat pour votre recherche.", - "Sorry, we couldn't find any results for your search. Check your spelling or use other terms.": "Désolé, nous n'avons trouvé aucun résultat pour votre recherche. Vérifiez votre orthographe ou utilisez d'autres termes.", - "Task Filled successfully": "Tâche remplie avec succès", - "Unable to save. Verify your internet connection.": "Impossible de sauvegarder. Vérifiez votre connexion internet.", - "Unable to save: Verify your internet connection.": "Impossible de sauvegarder : Vérifiez votre connexion internet.", - "Use This Task Data": "Utilisez Ces Données de Tâche", - "Inbox Rules act as your personal task manager. You tell them what to look for, and they take care of things automatically.": "Les règles de la boîte de réception agissent comme votre gestionnaire de tâches personnel. Vous leur dites quoi chercher, et ils s'occupent des choses automatiquement.", - "Priority": "Priorité", - "Save As Draft": "Enregistrer en tant que brouillon", - "Do you want to delete this rule?": "Voulez-vous supprimer cette règle?", - "Define the filtering criteria": "Définir les critères de filtrage", - "Rule Configuration": "Configuration de règle", - "Clear unsaved filters": "Effacer les filtres non enregistrés", - "Mark as Priority": "Marquer comme Priorité", - "Apply to current inbox matching tasks": "Appliquer aux tâches correspondantes dans la boîte de réception actuelle", - "Apply to Future tasks": "Appliquer aux tâches futures", - "This field is required!": "Ce champ est requis !", - "*=Required": "*=Requis", - "What do we do with tasks that fit this filter?": "Que faisons-nous avec les tâches qui correspondent à ce filtre?", - "Rule Behavior": "Comportement de Règle", - "Deactivation date": "Date de désactivation", - "Give this rule a name *": "Donnez un nom à cette règle *", - "All clear": "Tout est clair", - "Select a Person*": "Sélectionnez une Personne*", - "For a rule with no end date, leave the field empty": "Pour une règle sans date de fin, laissez le champ vide", - "If you want to establish an automatic submit for this rule,": "Si vous souhaitez établir une soumission automatique pour cette règle,", - "complete all the necessary fields and select you preferred submit action.": "complétez tous les champs nécessaires et sélectionnez votre action de soumission préférée.", - "Submit after filling": "Soumettre après avoir rempli", - "Submit Information": "Soumettre les Informations", - "Choose the submit action you want to use by clicking on it in the form*": "Choisissez l'action de soumission que vous souhaitez utiliser en cliquant dessus dans le formulaire*", - "Submit action": "Action de soumission", - "Enter your name": "Entrez votre nom", - "Waiting for selection": "En attente de sélection", - "Step 1:": "Étape 1 :", - "Step 2:": "Étape 2 :", - "Step 3:": "Étape 3 :", - "Step 4:": "Étape 4:", - "Load a saved search": "Charger une recherche enregistrée", - "Save and reuse filled data": "Enregistrer et réutiliser les données remplies", - "Enter form data": "Saisir les données du formulaire", - "Submit Configuration": "Soumettre la Configuration", - "Reset Data": "Réinitialiser les données", - "Rule activated": "Règle activée", - "Rule deactivated": "Règle désactivée", - "The operation cannot be performed. Please try again later.": "L'opération ne peut pas être effectuée. Veuillez réessayer plus tard.", - "Type here to search": "Tapez ici pour rechercher", - "Select a saved search above.": "Sélectionnez une recherche enregistrée ci-dessus.", - "Select the Load a saved search control above.": "Sélectionnez le contrôle Charger une recherche enregistrée ci-dessus.", - "Select the Load a saved search control above.": "Sélectionnez le contrôle Charger une recherche enregistrée ci-dessus.", - "No saved searches available": "Aucune recherche enregistrée disponible", - "Inbox rules empty": "Règles de la boîte de réception vides", - "You haven't set up any Inbox Rules yet": "Vous n'avez pas encore configuré de Règles de Boîte de Réception", - "Inbox Rules act as your personal task manager. You tell them what to look for, and they take care of things automatically.": "Les règles de la boîte de réception agissent comme votre gestionnaire de tâches personnel. Vous leur dites quoi chercher, et elles s'occupent des choses automatiquement.", - "Create an Inbox Rule Now": "Créez une règle de boîte de réception maintenant", - "Filter the tasks for this rule": "Filtrez les tâches pour cette règle", - "Please choose the tasks in your inbox that this new rule should apply to. Use the column filters to achieve this.": "Veuillez choisir les tâches dans votre boîte de réception auxquelles cette nouvelle règle devrait s'appliquer. Utilisez les filtres de colonne pour y parvenir.", - "Your In-Progress {{title}} tasks": "Vos tâches {{title}} en cours", - "Quick fill Preview": "Aperçu de remplissage rapide", - "No Image": "Aucune image", - "open": "ouvert", - "AUTOSAVE": "ENREGISTREMENT AUTOMATIQUE", - "Last save: ": "Dernière sauvegarde : ", - "Press enter to remove group": "Appuyez sur Entrée pour supprimer le groupe", - "Rule successfully created": "Règle créée avec succès", - "Rule successfully updated": "Règle mise à jour avec succès", - "Check it out in the \"Rules\" section of your inbox.": "Consultez-le dans la section \"Règles\" de votre boîte de réception.", - "The inbox rule '{{name}}' was created.": "La règle de boîte de réception '{{name}}' a été créée.", - "The inbox rule '{{name}}' was updated.": "La règle de boîte de réception '{{name}}' a été mise à jour.", - "Select a saved search.": "Sélectionnez une recherche enregistrée.", - "The Name has already been taken.": "Le Nom a déjà été pris.", - "Case by Status": "Dossier par Statut", - "Cases Started": "Cas Commencés", - "Default Launchpad": "Lanceur par défaut", - "Default Launchpad Chart": "Graphique de lancement par défaut", - "Delete this embed media?": "Supprimer ce média intégré ?", - "Do you want to delete this image?": "Voulez-vous supprimer cette image?", - "Drag or click here": "Faites glisser ou cliquez ici", - "Edit Launchpad": "Modifier Launchpad", - "Embed Media": "Incorporer des Médias", - "Embed URL": "Incorporer l'URL", - "Formats: PNG, JPG. 2 MB": "Formats : PNG, JPG. 2 Mo", - "Generate from AI": "Générer à partir de l'IA", - "Here you can personalize how your process will be shown in the process browser": "Ici, vous pouvez personnaliser comment votre processus sera affiché dans le navigateur de processus", - "Image not valid, try another": "Image non valide, essayez-en une autre", - "Invalid embed media": "Média intégré invalide", - "Launchpad Carousel": "Carrousel de Launchpad", - "Launch Screen": "Écran de lancement", - "Launchpad Settings": "Paramètres de Launchpad", - "Load an Image": "Charger une Image", - "Only images smaller than 2MB are allowed.": "Seules les images de moins de 2 Mo sont autorisées.", - "Please choose the tasks in your inbox that this
new rule should apply to. Use the column filters
to achieve this.": "Veuillez choisir les tâches dans votre boîte de réception auxquelles cette
nouvelle règle devrait s'appliquer. Utilisez les filtres de colonne
pour y parvenir.", - "Recommended: 1280 x 720 px": "Recommandé : 1280 x 720 px", - "Select Chart": "Sélectionner Graphique", - "Select Icon": "Sélectionner l'icône", - "Select Screen": "Sélectionner l'écran", - "The launchpad settings were saved.": "Les paramètres de la plateforme de lancement ont été enregistrés.", - "The URL is required.": "L'URL est requis.", - "This is a Beta version and when using Quickfill, it may replace the pre-filled information in the form.": "C'est une version Beta et lors de l'utilisation de Quickfill, il peut remplacer les informations pré-remplies dans le formulaire.", - "to upload an image": "pour télécharger une image", - "Please take a look at it in the 'Rules' section located within your Inbox.": "Veuillez jeter un coup d'œil dans la section 'Règles' située dans votre Boîte de réception.", - "Clear Task": "Tâche Claire", - "Clear Draft": "Effacer le brouillon", - "The task is loading": "La tâche est en cours de chargement", - "Some assets can take some time to load": "Certaines ressources peuvent prendre un certain temps à charger", - "Task Filled succesfully": "Tâche remplie avec succès", - "Update Rule": "Mettre à jour la règle", - "This is an AI feature and can provide inaccurate or biased responses.": "C'est une fonctionnalité d'IA et peut fournir des réponses inexactes ou biaisées.", - "ProcessMaker AI is currently offline. Please try again later.": "ProcessMaker AI est actuellement hors ligne. Veuillez réessayer plus tard.", - "Clear All Fields In This Form": "Effacer tous les champs dans ce formulaire", - "Select at least one column.": "Sélectionnez au moins une colonne.", - "Invalid value": "Valeur invalide", - "Field must be accepted": "Le champ doit être accepté", - "Must have at most {max}": "Doit avoir au maximum {max}", - "Must have a minimum value of {min}": "Doit avoir une valeur minimale de {min}", - "Must have a maximum value of {max}": "Doit avoir une valeur maximale de {max}", - "Must have a value between {min} and {max}": "Doit avoir une valeur entre {min} et {max}", - "Accepts only alphabet characters": "Accepte uniquement les caractères alphabétiques", - "Accepts only alphanumerics": "Accepte uniquement les alphanumériques", - "Accepts only numerics": "Accepte uniquement les numériques", - "Must be a positive or negative integer": "Doit être un entier positif ou négatif", - "Must be a positive or negative decimal number": "Doit être un nombre décimal positif ou négatif", - "Must be a valid email address": "Doit être une adresse e-mail valide", - "Must be a valid IPv4 address": "Doit être une adresse IPv4 valide", - "Must be a valid MAC address": "Doit être une adresse MAC valide", - "Must be same as {field}": "Doit être identique à {field}", - "Must be a valid URL": "Doit être une URL valide", - "Must be after {after}": "Doit être après {after}", - "Must be equal or after {after_or_equal}": "Doit être égal ou après {after_or_equal}", - "Must be before {before}": "Doit être avant {before}", - "Must be equal or before {before_or_equal}": "Doit être égal ou avant {before_or_equal}", - "Invalid default value": "Valeur par défaut invalide", - "Must be a valid Date": "Doit être une Date valide", - "Should NOT have more than {max} items": "Ne devrait PAS avoir plus de {max} articles", - "Must have at least {min}": "Doit avoir au moins {min}", - "Invalid type": "Type invalide", - "Save and publish": "Enregistrer et publier", - "You are about to publish a draft version. Are you sure you want to proceed?": "Vous êtes sur le point de publier une version brouillon. Êtes-vous sûr de vouloir continuer?", - "Your In-Progress tasks in the saved search {{title}}": "Vos tâches en cours dans la recherche enregistrée {{title}}", - "Choose a saved search to see the tasks that you can use with an Inbox Rule.": "Choisissez une recherche enregistrée pour voir les tâches que vous pouvez utiliser avec une Règle de Boîte de réception.", - "No tasks to show.": "Aucune tâche à afficher.", - "But that's OK. You can still create this this Inbox Rule to apply to future tasks that match the above filters.": "Mais c'est OK. Vous pouvez toujours créer cette règle de boîte de réception pour l'appliquer aux futures tâches qui correspondent aux filtres ci-dessus.", - "Another Process": "Un Autre Processus", - "Custom Dashboard": "Tableau de Bord Personnalisé", - "External URL": "URL Externe", - "Process Launchpad": "Lanceur de Processus", - "Summary Screen (Default)": "Écran de Résumé (Par Défaut)", - "Task List": "Liste de Tâches", - "Task Source (Default)": "Source de Tâche (Par Défaut)", - "Welcome Screen": "Écran de Bienvenue", - "All Cases": "Tous les cas", - "Cases": "Cas", - "Currently, you don’t have any processes bookmarked.": "Actuellement, vous n’avez aucun processus mis en favori.", - "More": "Plus", - "More Information": "Plus d'informations", - "Must be mustache syntax": "Doit être une syntaxe de moustache", - "My Cases": "Mes Cas", - "No items to show.": "Aucun élément à afficher.", - "Process Information": "Informations sur le processus", - "Show More": "Afficher plus", - "The current user does not have permission to start this process": "L'utilisateur actuel n'a pas la permission de démarrer ce processus", - "The Genie name must be unique.": "Le nom Genie doit être unique.", - "Type a valid name": "Tapez un nom valide", - "Select a process below to get started.": "Sélectionnez un processus ci-dessous pour commencer.", - "You have to start a Case of this process.": "Vous devez démarrer un Dossier de ce processus.", - "Document with AI": "Document with AI", - "Generate Documentation from Scratch": "Créer la Documentation à Partir de Zéro", - "Use current Documentation": "Utiliser la Documentation actuelle", - "Generate documentation with AI": "Créer de la documentation avec l'IA", - "We found some elements already documented, what whould you like to do?": "Nous avons trouvé certains éléments déjà documentés, que souhaitez-vous faire ?", - "Generate Documentation": "Créer la Documentation", - "Current Documentation": "Documentation actuelle", - "AI Suggestion": "Suggestion d'IA", - "Apply Changes": "Appliquer les modifications", - "Documenting...": "Documentation en cours...", - "The Two Step Authentication Method has not been set. Please contact your administrator.": "La méthode d'authentification en deux étapes n'a pas été définie. Veuillez contacter votre administrateur.", - "The two-step method must be selected.": "La méthode en deux étapes doit être sélectionnée.", - "Configuration tested successfully.": "La configuration a été testée avec succès.", - "Recent Cases": "Recent Cases\" -> \"Cas récents", - "No results": "Aucun résultat", - "Process Info": "Informations sur le processus", - "Process Chart": "Diagramme de processus", - "Create Template": "Créer un modèle", - "This will create a PM Block based on the {{assetName}} Process": "Cette action créera un bloc PM basé sur le processus {{assetName}}", - "Author": "Auteur", - "Version": "Version", - "Type to search Screen": "Type to search Screen", - "Type to search Chart": "Tapez pour rechercher Chart", - "Open Case": "Ouvrir le dossier", - "Alternative": "Alternative", - "No matching categories were found": "Aucune catégorie correspondante n'a été trouvée", - "Search categories and processes": "Rechercher des catégories et des processus", - "Started Cases": "Affaires commencées", - "Tab Name": "Nom de l'onglet", - "Please enter Tab Name": "Veuillez entrer le nom de l'onglet", - "Select a Saved Search": "Sélectionner une recherche enregistrée", - "Please select a Saved Search": "Veuillez sélectionner une recherche enregistrée", - "Search using natural language or PMQL": "Rechercher en utilisant le langage naturel ou PMQL", - "Enable Notifications": "Activer les notifications", - "Tab Settings": "Paramètres des onglets", - "Do you want to delete the tab {{name}}?": "Voulez-vous supprimer l'onglet {{name}} ?", - "See this tab on mobile devices": "Voir cet onglet sur les appareils mobiles", - "Confirmation": "Confirmation", - "The launchpad settings could not be saved due to an error.": "Les paramètres du launchpad n'ont pas pu être enregistrés en raison d'une erreur.", - ":count tasks were not reassigned because the task settings prevent them from being reassigned": ":count tâches n'ont pas été réassignées car les paramètres de la tâche empêchent leur réassignation", - "Task :task_id could not be reassigned because the task settings prevent it from being reassigned": "La tâche :task_id n'a pas pu être réassignée car les paramètres de la tâche l'en empêchent", - "No items to show": "Aucun élément à afficher", - "Copy link": "Copier le lien", - "This actions is taking longer than expected. We will continue updating your tasks in the background.": "Cette action prend plus de temps que prévu. Nous continuerons à mettre à jour vos tâches en arrière-plan.", - "No user selected": "Aucun utilisateur sélectionné", - "Encrypted": "Chiffrée", - "Users/Groups to View Encrypted Fields": "Utilisateurs/Groupes pour afficher les champs chiffrés", - "Conceal": "Cacher", - "Reveal": "Révéler", - "There is no field with the name ':fieldName'.": "Il n'y a pas de champ avec le nom ':fieldName'.", - "Configuration related to encryption is not found for this field.": "La configuration relative au chiffrement est introuvable pour ce champ.", - "Encryption is not enabled for this field.": "Le chiffrement n'est pas activé pour ce champ.", - "Configuration related to assignments is missing for this field.": "La configuration relative aux attributions est manquante pour ce champ.", - "You are not assigned to this encrypted field.": "Vous n'êtes pas attribué à ce champ chiffré.", - "Active vs Closed Cases": "Cas Actifs vs Cas Fermés", - "An error ocurred while importing the current PI Process.": "Une erreur s'est produite lors de l'importation du processus PI actuel.", - "Are you sure you want to delete {{name}}? The action is irreversible.": "Êtes-vous sûr de vouloir supprimer {{name}} ? Cette action est irréversible.", - "Be the first to leave a comment and start a conversation": "Soyez le premier à laisser un commentaire et à commencer une conversation", - "Cancel Case": "Annuler le cas", - "Collection Name": "Nom de la collection", - "Collection Record Control is not available for Anonymous Web Entry": "La commande de l'enregistrement de collection n'est pas disponible pour l'entrée Web anonyme", - "Comment": "« Commentaire »", - "Completed & Form": "Terminé & Formulaire", - "Dangerous PDF file content": "Contenu de fichier PDF dangereux", - "Delete Confirmation": "Confirmation de suppression", - "Download Document": "Télécharger le document", - "File Access": "Accès au fichier", - "History": "Historique", - "Import a PI Process": "Importer un PI Process", - "Import a process from Process Intelligence to this ProcessMaker environment": "Importer un processus de Process Intelligence dans cet environnement ProcessMaker", - "items": "articles", - "Last Modified": "Dernière modification", - "Overview": "Vue d'ensemble", - "Participant": "Participant", - "per page": "« par page »", - "This document has no preview": "Ce document n'a pas d'aperçu", - "Updated By": "Mis à jour par", - "Yesterday": "Hier", - "Linked Instances": "Instances liées", - "Local Bundles": "Lots locaux", - "Shared Assets": "Actifs Partagés", - "Add Instance": "Ajouter une instance", - "Linked": "Lié", - "Not available": "Non disponible", - "Bundles": "« Bundles »", - "Are you sure you want to install this bundle?": "Êtes-vous sûr de vouloir installer ce bundle ?", - "Initializing": "Initialisation", - "Installation Progress": "Progression de l'installation", - "Something went wrong": "Quelque chose s'est mal passé", - "Downloading bundle from remote instance": "Téléchargement du bundle depuis l'instance distante", - "View": "Voir", - "Are you sure you want to install this asset onto this instance?": "Êtes-vous sûr de vouloir installer cet élément sur cet instance ?", - "Are you sure you want to remote this asset from the bundle?": "Êtes-vous sûr de vouloir supprimer cet asset du bundle ?", - "Asset successfully installed": "Actif installé avec succès", - "Create Bundle": "Créer un ensemble", - "Origin": "Origine", - "Published": "Publié", - "Are you sure you want to delete {{name}}?": "Êtes-vous sûr de vouloir supprimer {{name}} ?", - "Edit Bundle": "Modifier le bundle", - "Create New Bundle": "Créer un nouveau bundle", - "Decision Tables": "Tables de décision", - "FlowGenies": "FlowGenies", - "Invalid URL": "URL invalide", - "Create new DevLink": "Créer un nouveau DevLink", - "Edit DevLink": "Modifier DevLink", - "Instance URL": "Instance URL", - "Reconnect": "« Reconnect »", - "Update Bundle": "Mise à jour du Bundle", - "Update Bundle Assets": "Mise à jour des ressources du bundle", - "Copy Bundle Assets": "Copier les ressources du bundle", - "Create new copies of bundle assets.": "Créer de nouvelles copies des ressources du bundle.", - "Existing assets on this instance will be updated. Warning: this will overwrite any changes you made to the assets on this instance.": "Les actifs existants sur cette instance seront mis à jour. Avertissement : cela écrasera toutes les modifications que vous avez apportées aux actifs sur cette instance.", - "Select how you would like to update the bundle {{ selectedBundleName }}.": "Choisissez comment vous souhaitez mettre à jour le bundle {{ selectedBundleName }}.", - "Are you sure you increase the version of {{ selectedBundleName }}?": "Êtes-vous sûr d'augmenter la version de {{ selectedBundleName }} ?", - "Update Available": "Mise à jour disponible", - "Reinstall This Bundle": "Réinstaller Ce Bundle", - "Reinstall Bundle": "Réinstaller le Bundle", - "No linked instances of ProcessMaker": "Aucune instance liée de ProcessMaker", - "Use the button Add Instance": "Utilisez le bouton Add Instance", - "No bundles of assets to display": "Aucun lot d'actifs à afficher", - "Create a bundle to easily share assets and settings between ProcessMaker instances.": "Créez un bundle pour partager facilement des actifs et des paramètres entre les instances de ProcessMaker.", - "In addition to the process manager, these users and groups will have permission to reassign any task in this process, regardless of the \"Allow Reassignment\" task setting.": "En plus du gestionnaire de processus, ces utilisateurs et groupes auront la permission de réaffecter toute tâche dans ce processus, indépendamment du paramètre de tâche \"Allow Reassignment\".", - "Reassignment Permission": "Autorisation de réaffectation", - "This task can not be reassigned": "Cette tâche ne peut pas être réaffectée", - "Start New Case": "Démarrer un nouveau cas", - "No Case to Start": "Aucune affaire à commencer", - "No Cases to Show": "Aucun cas à afficher", - "Drafts": "Brouillons", - "An error ocurred, please check the PI process file and try again.": "Une erreur s'est produite, veuillez vérifier le fichier de processus PI et réessayer.", - "New": "Nouveau", - "New Genie": "New Genie", - "View All Genies": "Voir tous les Genies", - "View All Collections": "Voir toutes les collections", - "Collapse sidebar": "Réduire la barre latérale" -} \ No newline at end of file diff --git a/routes/channels.php b/routes/channels.php index 50c9ffd80b..64d6c9651d 100644 --- a/routes/channels.php +++ b/routes/channels.php @@ -1,4 +1,5 @@ name('test.email'); }); -Route::group([ - 'middleware' => ['web', 'auth:web,anon', 'sanitize', 'bindings'], -], function () { +Route::middleware('web', 'auth:web,anon', 'sanitize', 'bindings')->group(function () { Route::get('tasks/update_variable/{token_abe}', [TaskController::class, 'updateVariable'])->name('tasks.abe.update'); }); diff --git a/tests/Browser/LoginTest.php b/tests/Browser/LoginTest.php index 3dc994c34f..17348e913e 100644 --- a/tests/Browser/LoginTest.php +++ b/tests/Browser/LoginTest.php @@ -11,7 +11,7 @@ class LoginTest extends DuskTestCase { - public function test_login_page_loads() + public function test_login_page_loads(): void { $this->browse(function (Browser $browser) { $browser->visit(new LoginPage) @@ -19,7 +19,7 @@ public function test_login_page_loads() }); } - public function test_login_page_works() + public function test_login_page_works(): void { $user = User::factory()->create([ 'username' => 'testuser', @@ -37,7 +37,7 @@ public function test_login_page_works() }); } - public function test_inactive_user_login_fails() + public function test_inactive_user_login_fails(): void { $user = User::factory()->create([ 'username' => 'testuser', diff --git a/tests/Browser/RequestsSearchTest.php b/tests/Browser/RequestsSearchTest.php index 24f328088b..59b69b0ad6 100644 --- a/tests/Browser/RequestsSearchTest.php +++ b/tests/Browser/RequestsSearchTest.php @@ -12,7 +12,7 @@ class RequestsSearchTest extends DuskTestCase { - public function testPmqlErrors() + public function testPmqlErrors(): void { $this->markTestSkipped('Skipping due to Dusk issues...'); diff --git a/tests/Browser/RequestsTest.php b/tests/Browser/RequestsTest.php index 4d82ce5d40..42746deb95 100644 --- a/tests/Browser/RequestsTest.php +++ b/tests/Browser/RequestsTest.php @@ -27,7 +27,7 @@ private function setuser() return $user; } - public function test_request_route_protected() + public function test_request_route_protected(): void { $this->browse(function (Browser $browser) { $browser->visit('/requests') @@ -35,7 +35,7 @@ public function test_request_route_protected() }); } - public function test_request_route_loads() + public function test_request_route_loads(): void { $user = $this->setuser(); @@ -47,7 +47,7 @@ public function test_request_route_loads() }); } - public function test_pmql_initial_load() + public function test_pmql_initial_load(): void { $user = $this->setuser(); @@ -58,7 +58,7 @@ public function test_pmql_initial_load() }); } - public function test_vuetable_initial_load() + public function test_vuetable_initial_load(): void { // Initial load of the site would have no requests started $user = $this->setuser(); @@ -71,7 +71,7 @@ public function test_vuetable_initial_load() }); } - public function test_start_request() + public function test_start_request(): void { $user = $this->setuser(); diff --git a/tests/DuskTestCase.php b/tests/DuskTestCase.php index 2af55ba64f..4ab5816933 100644 --- a/tests/DuskTestCase.php +++ b/tests/DuskTestCase.php @@ -25,7 +25,7 @@ public static function prepare() /** * Create the RemoteWebDriver instance. * - * @return \Facebook\WebDriver\Remote\RemoteWebDriver + * @return RemoteWebDriver */ protected function driver() { diff --git a/tests/Feature/AboutTest.php b/tests/Feature/AboutTest.php index 5a29a18d67..6189d3e5b5 100644 --- a/tests/Feature/AboutTest.php +++ b/tests/Feature/AboutTest.php @@ -24,7 +24,7 @@ protected function tearDown(): void * * @return void */ - public function testIndexRoute() + public function testIndexRoute(): void { // user without any permissions $this->user = User::factory()->create(); diff --git a/tests/Feature/Admin/DashboardTest.php b/tests/Feature/Admin/DashboardTest.php index 166d5e394f..df3a54e2ef 100644 --- a/tests/Feature/Admin/DashboardTest.php +++ b/tests/Feature/Admin/DashboardTest.php @@ -26,7 +26,7 @@ protected function withUserSetup() $asp->boot(); } - public function testIndexRoute() + public function testIndexRoute(): void { $this->user = User::factory()->create(); $response = $this->webCall('GET', '/admin'); diff --git a/tests/Feature/Admin/DevLinkTest.php b/tests/Feature/Admin/DevLinkTest.php index d1d41b0fbc..1b6576da75 100644 --- a/tests/Feature/Admin/DevLinkTest.php +++ b/tests/Feature/Admin/DevLinkTest.php @@ -12,7 +12,7 @@ class DevLinkTest extends TestCase { use RequestHelper; - public function testIndexStoreClientCredentials() + public function testIndexStoreClientCredentials(): void { $devLink = DevLink::factory()->create(); @@ -39,7 +39,7 @@ public function testIndexStoreClientCredentials() $this->assertEquals($devLink->client_secret, $params['client_secret']); } - public function testIndexStoreOauthCredentials() + public function testIndexStoreOauthCredentials(): void { $devLink = DevLink::factory()->create([ 'url' => 'http://remote-instance.test', @@ -72,7 +72,7 @@ public function testIndexStoreOauthCredentials() $this->assertEquals($devLink->expires_in, 3600); } - public function testGetOauthClient() + public function testGetOauthClient(): void { $devLink = DevLink::factory()->create([ 'url' => 'http://placeholder.test', diff --git a/tests/Feature/Admin/GroupTest.php b/tests/Feature/Admin/GroupTest.php index d3f527fd68..c232741437 100644 --- a/tests/Feature/Admin/GroupTest.php +++ b/tests/Feature/Admin/GroupTest.php @@ -17,7 +17,7 @@ class GroupTest extends TestCase * * @return void */ - public function testIndexRoute() + public function testIndexRoute(): void { $response = $this->webCall('GET', '/admin/groups'); $response->assertStatus(200); @@ -29,7 +29,7 @@ public function testIndexRoute() * * @return void */ - public function testEditRoute() + public function testEditRoute(): void { $groupId = Group::factory()->create()->getKey(); // get the URL diff --git a/tests/Feature/Admin/SettingsControllerTest.php b/tests/Feature/Admin/SettingsControllerTest.php index a5e5bb0cf5..a059b9c0c2 100644 --- a/tests/Feature/Admin/SettingsControllerTest.php +++ b/tests/Feature/Admin/SettingsControllerTest.php @@ -26,7 +26,7 @@ protected function setUp(): void /** * Test storing a valid white_list setting with a valid URL */ - public function testStoreValidWhiteListUrl() + public function testStoreValidWhiteListUrl(): void { $setting = Setting::create([ 'key' => 'white_list.google', @@ -55,7 +55,7 @@ public function testStoreValidWhiteListUrl() /** * Test storing a white_list setting with an invalid URL */ - public function testStoreInvalidWhiteListUrl() + public function testStoreInvalidWhiteListUrl(): void { $setting = Setting::create([ 'key' => 'white_list.invalid', @@ -84,7 +84,7 @@ public function testStoreInvalidWhiteListUrl() /** * Test storing a white_list setting with a non-https URL */ - public function testStoreNonHttpsWhiteListUrl() + public function testStoreNonHttpsWhiteListUrl(): void { $setting = Setting::create([ 'key' => 'white_list.ftp', @@ -113,7 +113,7 @@ public function testStoreNonHttpsWhiteListUrl() /** * Test storing a non-white_list setting (should not validate URL) */ - public function testStoreNonWhiteListSetting() + public function testStoreNonWhiteListSetting(): void { $setting = Setting::create([ 'key' => 'other.setting', @@ -142,7 +142,7 @@ public function testStoreNonWhiteListSetting() /** * Test storing a duplicate white_list setting */ - public function testStoreDuplicateWhiteListSetting() + public function testStoreDuplicateWhiteListSetting(): void { Setting::create([ 'key' => 'white_list.duplicate', @@ -179,7 +179,7 @@ public function testStoreDuplicateWhiteListSetting() /** * Test storing a white_list setting with a valid URL including port */ - public function testStoreWhiteListUrlWithPort() + public function testStoreWhiteListUrlWithPort(): void { $setting = Setting::create([ 'key' => 'white_list.local', @@ -208,7 +208,7 @@ public function testStoreWhiteListUrlWithPort() /** * Test storing a white_list setting with a valid URL including subdomain */ - public function testStoreWhiteListUrlWithSubdomain() + public function testStoreWhiteListUrlWithSubdomain(): void { $setting = Setting::create([ 'key' => 'white_list.api', @@ -237,7 +237,7 @@ public function testStoreWhiteListUrlWithSubdomain() /** * Test storing a white_list setting with a URL containing special characters */ - public function testStoreWhiteListUrlWithSpecialCharacters() + public function testStoreWhiteListUrlWithSpecialCharacters(): void { $setting = Setting::create([ 'key' => 'white_list.special', @@ -266,7 +266,7 @@ public function testStoreWhiteListUrlWithSpecialCharacters() /** * Test storing a white_list setting with a URL containing query parameters */ - public function testStoreWhiteListUrlWithQueryParams() + public function testStoreWhiteListUrlWithQueryParams(): void { $setting = Setting::create([ 'key' => 'white_list.query', @@ -295,7 +295,7 @@ public function testStoreWhiteListUrlWithQueryParams() /** * Test storing a white_list setting with a URL containing wildcard subdomain */ - public function testStoreWhiteListUrlWithWildcardSubdomain() + public function testStoreWhiteListUrlWithWildcardSubdomain(): void { $setting = Setting::create([ 'key' => 'white_list.wildcard', @@ -324,7 +324,7 @@ public function testStoreWhiteListUrlWithWildcardSubdomain() /** * Test storing a white_list setting with an empty URL */ - public function testStoreWhiteListUrlWithEmptyValue() + public function testStoreWhiteListUrlWithEmptyValue(): void { $setting = Setting::create([ 'key' => 'white_list.empty', @@ -353,7 +353,7 @@ public function testStoreWhiteListUrlWithEmptyValue() /** * Test storing a white_list setting with a URL containing uppercase letters */ - public function testStoreWhiteListUrlWithUppercase() + public function testStoreWhiteListUrlWithUppercase(): void { $setting = Setting::create([ 'key' => 'white_list.uppercase', @@ -382,7 +382,7 @@ public function testStoreWhiteListUrlWithUppercase() /** * Test storing a white_list setting with a URL containing IP address */ - public function testStoreWhiteListUrlWithIpAddress() + public function testStoreWhiteListUrlWithIpAddress(): void { $this->actingAs($this->admin); @@ -413,7 +413,7 @@ public function testStoreWhiteListUrlWithIpAddress() /** * Test storing a white_list setting with a URL containing IP address */ - public function testStoreWhiteListUrlWithString() + public function testStoreWhiteListUrlWithString(): void { $this->actingAs($this->admin); diff --git a/tests/Feature/Admin/UserTest.php b/tests/Feature/Admin/UserTest.php index 6dd0f18530..ed927b69fa 100644 --- a/tests/Feature/Admin/UserTest.php +++ b/tests/Feature/Admin/UserTest.php @@ -17,7 +17,7 @@ class UserTest extends TestCase * * @return void */ - public function testIndexRoute() + public function testIndexRoute(): void { // get the URL $response = $this->webCall('GET', '/admin/users'); @@ -33,7 +33,7 @@ public function testIndexRoute() * * @return void */ - public function testEditRoute() + public function testEditRoute(): void { $user_id = User::factory()->create()->id; // get the URL @@ -49,7 +49,7 @@ public function testEditRoute() * Test to make sure the additional information shows in edit user * @return void */ - public function testCanSeeAditionalInformationInEditRoute() + public function testCanSeeAditionalInformationInEditRoute(): void { $user_id = User::factory()->create()->id; config(['users.properties' => ['MyVar' => 'Test Var']]); @@ -66,7 +66,7 @@ public function testCanSeeAditionalInformationInEditRoute() * Test to make sure the additional information not shows in profile * @return void */ - public function testCannotSeeAditionalInformationInProfileRoute() + public function testCannotSeeAditionalInformationInProfileRoute(): void { config(['users.properties' => ['MyVar' => 'Test Var']]); // get the URL diff --git a/tests/Feature/Api/BookmarkTest.php b/tests/Feature/Api/BookmarkTest.php index 118bb963ca..1b2b19c456 100644 --- a/tests/Feature/Api/BookmarkTest.php +++ b/tests/Feature/Api/BookmarkTest.php @@ -26,7 +26,7 @@ class BookmarkTest extends TestCase /** * Test get bookmarks */ - public function testGetBookmark() + public function testGetBookmark(): void { // Create data Bookmark::factory()->count(10)->create(); @@ -50,7 +50,7 @@ public function testGetBookmark() /** * Test store bookmarks */ - public function testStoreBookmark() + public function testStoreBookmark(): void { // Create data $process = Process::factory()->create(); @@ -72,7 +72,7 @@ public function testStoreBookmark() /** * Test delete bookmark */ - public function testDeleteBookmark() + public function testDeleteBookmark(): void { // Create data $bookmark = Bookmark::factory()->create(); diff --git a/tests/Feature/Api/BoundaryEventsTest.php b/tests/Feature/Api/BoundaryEventsTest.php index 7a63b0dbd4..725e6c02c8 100644 --- a/tests/Feature/Api/BoundaryEventsTest.php +++ b/tests/Feature/Api/BoundaryEventsTest.php @@ -17,7 +17,7 @@ class BoundaryEventsTest extends TestCase /** * Tests the a process with a signal boundary event */ - public function testSignalBoundaryEvent() + public function testSignalBoundaryEvent(): void { // Create a process $process = $this->createProcess(file_get_contents(__DIR__ . '/processes/Signal_BoundaryEvent.bpmn')); @@ -48,7 +48,7 @@ public function testSignalBoundaryEvent() * Tests a process with a timer boundary event * @group timer_events */ - public function testCycleTimerBoundaryEvent() + public function testCycleTimerBoundaryEvent(): void { // Mock current date for TaskSchedulerManager $now = TaskSchedulerManager::fakeToday('2018-05-01T00:00:00Z'); @@ -88,7 +88,7 @@ public function testCycleTimerBoundaryEvent() /** * Tests a process with a error boundary event in a script task */ - public function testErrorBoundaryEventScriptTask() + public function testErrorBoundaryEventScriptTask(): void { // Create a process $process = $this->createProcess(file_get_contents(__DIR__ . '/processes/Error_BoundaryEvent_ScriptTask.bpmn')); @@ -114,7 +114,7 @@ public function testErrorBoundaryEventScriptTask() /** * Tests a process with a error boundary event in a CallActivity */ - public function testErrorBoundaryEventCallActivity() + public function testErrorBoundaryEventCallActivity(): void { // Create a process $process = $this->createProcess(file_get_contents(__DIR__ . '/processes/Error_EndEvent_CallActivity.bpmn')); @@ -135,7 +135,7 @@ public function testErrorBoundaryEventCallActivity() * * @group timer_events */ - public function testCycleTimerBoundaryEventCallActivity() + public function testCycleTimerBoundaryEventCallActivity(): void { // Mock current date for TaskSchedulerManager $now = TaskSchedulerManager::fakeToday('2018-05-01T00:00:00Z'); @@ -181,7 +181,7 @@ public function testCycleTimerBoundaryEventCallActivity() /** * Tests the a process with a signal boundary event attached to a CallActivity */ - public function testSignalBoundaryEventCallActivity() + public function testSignalBoundaryEventCallActivity(): void { // Create a process $process = $this->createProcess(file_get_contents(__DIR__ . '/processes/Signal_BoundaryEvent_CallActivity.bpmn')); @@ -204,7 +204,7 @@ public function testSignalBoundaryEventCallActivity() * * @group timer_events */ - public function testCycleTimerBoundaryEventNonInterrupting() + public function testCycleTimerBoundaryEventNonInterrupting(): void { // Mock current date for TaskSchedulerManager $now = TaskSchedulerManager::fakeToday('2018-05-01T00:00:00Z'); @@ -239,7 +239,7 @@ public function testCycleTimerBoundaryEventNonInterrupting() /** * Tests a process with an error boundary non interrupting event attached to a script task */ - public function testErrorBoundaryEventScriptTaskNonInterrupting() + public function testErrorBoundaryEventScriptTaskNonInterrupting(): void { // Create a process $process = $this->createProcess(file_get_contents(__DIR__ . '/processes/Error_BoundaryEvent_ScriptTask_NonInterrupting.bpmn')); @@ -263,7 +263,7 @@ public function testErrorBoundaryEventScriptTaskNonInterrupting() /** * Tests a process with an error boundary non interrupting event attached to a CallActivity */ - public function testErrorBoundaryEventCallActivityNonInterrupting() + public function testErrorBoundaryEventCallActivityNonInterrupting(): void { // Create a process $process = $this->createProcess(file_get_contents(__DIR__ . '/processes/Error_BoundaryEvent_CallActivity_NonInterrupting.bpmn')); @@ -287,7 +287,7 @@ public function testErrorBoundaryEventCallActivityNonInterrupting() * * @group timer_events */ - public function testCycleTimerBoundaryEventCallActivityNonInterrupting() + public function testCycleTimerBoundaryEventCallActivityNonInterrupting(): void { // Mock current date for TaskSchedulerManager $now = TaskSchedulerManager::fakeToday('2018-05-01T00:00:00Z'); @@ -334,7 +334,7 @@ public function testCycleTimerBoundaryEventCallActivityNonInterrupting() /** * Tests the a process with a signal boundary non interrupting event attached to a CallActivity */ - public function testSignalBoundaryEventCallActivityNonInterrupting() + public function testSignalBoundaryEventCallActivityNonInterrupting(): void { // Create a process $process = $this->createProcess(file_get_contents(__DIR__ . '/processes/Signal_BoundaryEvent_CallActivity_NonInterrupting.bpmn')); @@ -356,7 +356,7 @@ public function testSignalBoundaryEventCallActivityNonInterrupting() * * @group timer_events */ - public function testConcurrentBoundaryEventCallActivityNonInterrupting() + public function testConcurrentBoundaryEventCallActivityNonInterrupting(): void { // Mock current date for TaskSchedulerManager $now = TaskSchedulerManager::fakeToday('2018-05-01T00:00:00Z'); @@ -399,7 +399,7 @@ public function testConcurrentBoundaryEventCallActivityNonInterrupting() /** * Tests the a process with a timer boundary event on a multi-instance task */ - public function testTimerBoundaryEventMultiInstance() + public function testTimerBoundaryEventMultiInstance(): void { $now = TaskSchedulerManager::fakeToday('2018-05-01T00:00:00Z'); // Create a process diff --git a/tests/Feature/Api/CallActivityMultilevelTest.php b/tests/Feature/Api/CallActivityMultilevelTest.php index 3f2dc3f7f3..abcffe9633 100644 --- a/tests/Feature/Api/CallActivityMultilevelTest.php +++ b/tests/Feature/Api/CallActivityMultilevelTest.php @@ -19,7 +19,7 @@ class CallActivityMultilevelTest extends TestCase * * @group process_tests */ - public function testCallActivity() + public function testCallActivity(): void { // Script task requires passport installed (oauth token) // Artisan::call('passport:install', ['-vvv' => true]); diff --git a/tests/Feature/Api/CallActivityTest.php b/tests/Feature/Api/CallActivityTest.php index 30c19afada..238e9ea78b 100644 --- a/tests/Feature/Api/CallActivityTest.php +++ b/tests/Feature/Api/CallActivityTest.php @@ -21,7 +21,7 @@ class CallActivityTest extends TestCase * * @group process_tests */ - public function testCallActivity() + public function testCallActivity(): void { // Create the processes $child = $this->createProcess([ @@ -53,7 +53,7 @@ public function testCallActivity() $this->assertEquals('COMPLETED', $subInstance->status); } - public function testCallActivityFiles() + public function testCallActivityFiles(): void { // Create the processes $child = $this->createProcess([ @@ -140,7 +140,7 @@ public function testCallActivityFiles() $this->assertEquals('overwrite.jpg', $file3->file_name); } - public function testCallActivityWithUpdateInProgress() + public function testCallActivityWithUpdateInProgress(): void { // Create the processes $child = $this->createProcess([ @@ -209,7 +209,7 @@ public function testCallActivityWithUpdateInProgress() $this->assertEquals('COMPLETED', $subInstance->status); } - public function testCallActivityValidation() + public function testCallActivityValidation(): void { $child = $this->createProcess([ 'id' => 29, @@ -226,7 +226,7 @@ public function testCallActivityValidation() ]], $parent->warnings); } - public function testCallActivityValidationToWebEntryStartEvent() + public function testCallActivityValidationToWebEntryStartEvent(): void { $child = $this->createProcess([ 'id' => 29, @@ -243,7 +243,7 @@ public function testCallActivityValidationToWebEntryStartEvent() ]], $parent->warnings); } - public function testCallActivityValidationToNonStartEventElement() + public function testCallActivityValidationToNonStartEventElement(): void { $child = $this->createProcess([ 'id' => 29, @@ -263,7 +263,7 @@ public function testCallActivityValidationToNonStartEventElement() ]], $parent->warnings); } - public function testCallActivityValidationToDeletedElement() + public function testCallActivityValidationToDeletedElement(): void { $child = $this->createProcess([ 'id' => 29, @@ -283,7 +283,7 @@ public function testCallActivityValidationToDeletedElement() ]], $parent->warnings); } - public function testProcessLoop() + public function testProcessLoop(): void { // Create the processes $process = $this->createProcess([ @@ -327,7 +327,7 @@ public function testProcessLoop() $this->assertEquals(['input_1' => 1, 'input_2' => 2, 'input_3' => 3], $data); } - public function testCallActivityWithError() + public function testCallActivityWithError(): void { $this->withPersonalAccessClient(); $child = $this->createProcess([ diff --git a/tests/Feature/Api/ChangePasswordTest.php b/tests/Feature/Api/ChangePasswordTest.php index 20429e25d6..638be015fa 100644 --- a/tests/Feature/Api/ChangePasswordTest.php +++ b/tests/Feature/Api/ChangePasswordTest.php @@ -13,7 +13,7 @@ class ChangePasswordTest extends TestCase const API_TEST_URL = '/password/change'; - public function testUserPasswordChangeWithInvalidPassword() + public function testUserPasswordChangeWithInvalidPassword(): void { $this->actingAs($this->user); @@ -64,7 +64,7 @@ public function testUserPasswordChangeWithInvalidPassword() /** * Once the user changes their password, the flag must set to false */ - public function testUserChangePasswordMustSetFlagToFalse() + public function testUserChangePasswordMustSetFlagToFalse(): void { $this->actingAs($this->user); @@ -95,7 +95,7 @@ public function testUserChangePasswordMustSetFlagToFalse() /** * When no password is sent, the flag must be set to true */ - public function testUserChangePasswordWithoutSendingPasswordMustKeepFlagInTrue() + public function testUserChangePasswordWithoutSendingPasswordMustKeepFlagInTrue(): void { $this->actingAs($this->user); diff --git a/tests/Feature/Api/CommentTest.php b/tests/Feature/Api/CommentTest.php index 26c26847bc..04485a8a09 100644 --- a/tests/Feature/Api/CommentTest.php +++ b/tests/Feature/Api/CommentTest.php @@ -48,7 +48,7 @@ protected function withUserSetup() $asp->boot(); } - public function testGetCommentListAdministrator() + public function testGetCommentListAdministrator(): void { $model = ProcessRequestToken::factory()->create(); @@ -72,7 +72,7 @@ public function testGetCommentListAdministrator() $this->assertCount(15, $json); } - public function testGetCommentListNoAdministrator() + public function testGetCommentListNoAdministrator(): void { $model = ProcessRequest::factory()->create(); @@ -108,7 +108,7 @@ public function testGetCommentListNoAdministrator() $this->assertCount(10, $json); } - public function testGetCommentByType() + public function testGetCommentByType(): void { $this->user = User::factory()->create([ 'password' => Hash::make('password'), @@ -155,7 +155,7 @@ public function testGetCommentByType() /** * Test verify the parameter required for create form */ - public function testNotCreatedForParameterRequired() + public function testNotCreatedForParameterRequired(): void { //Post should have the parameter required $response = $this->apiCall('POST', self::API_TEST_URL, []); @@ -165,7 +165,7 @@ public function testNotCreatedForParameterRequired() $this->assertArrayHasKey('message', $response->json()); } - public function testCreateComment() + public function testCreateComment(): void { $comment = Comment::factory()->make(); @@ -183,7 +183,7 @@ public function testCreateComment() /** * Get a comment */ - public function testGetComment() + public function testGetComment(): void { //get the id from the factory $comment = Comment::factory()->create()->id; @@ -201,7 +201,7 @@ public function testGetComment() /** * Delete comment */ - public function testDeleteComment() + public function testDeleteComment(): void { //Remove comment $url = self::API_TEST_URL . '/' . Comment::factory()->create(['user_id' => $this->user->getKey()])->id; @@ -214,7 +214,7 @@ public function testDeleteComment() /** * The comment does not exist */ - public function testDeleteCommentNotExist() + public function testDeleteCommentNotExist(): void { //Comment not exist $url = self::API_TEST_URL . '/' . Comment::factory()->make()->id; @@ -229,7 +229,7 @@ public function testDeleteCommentNotExist() * * @return void */ - public function testIndexCaseRequiresCaseNumber() + public function testIndexCaseRequiresCaseNumber(): void { // Call the endpoint without the 'case_number' parameter $response = $this->apiCall('GET', self::API_COMMENT_BY_CASE); @@ -242,7 +242,7 @@ public function testIndexCaseRequiresCaseNumber() /** * Test comments by case */ - public function testGetCommentByTypeByCase() + public function testGetCommentByTypeByCase(): void { $this->user = User::factory()->create([ 'password' => Hash::make('password'), @@ -301,7 +301,7 @@ public function testGetCommentByTypeByCase() /** * Test comments by case with pagination */ - public function testGetCommentByTypeByCasePagination() + public function testGetCommentByTypeByCasePagination(): void { $this->user = User::factory()->create([ 'password' => Hash::make('password'), diff --git a/tests/Feature/Api/ConditionalStartEventTest.php b/tests/Feature/Api/ConditionalStartEventTest.php index 4feb18e36a..e67dc62777 100644 --- a/tests/Feature/Api/ConditionalStartEventTest.php +++ b/tests/Feature/Api/ConditionalStartEventTest.php @@ -12,7 +12,7 @@ class ConditionalStartEventTest extends TestCase { - public function testConditionalEventMustTriggeredWhenActive() + public function testConditionalEventMustTriggeredWhenActive(): void { Bus::fake([ StartEventConditional::class, @@ -31,7 +31,7 @@ public function testConditionalEventMustTriggeredWhenActive() Bus::assertDispatched(StartEventConditional::class); } - public function testConditionalEventMustNotTriggeredWhenInactive() + public function testConditionalEventMustNotTriggeredWhenInactive(): void { Bus::fake([ StartEventConditional::class, diff --git a/tests/Feature/Api/ConvertBPMNTest.php b/tests/Feature/Api/ConvertBPMNTest.php index 4dd36be1ea..1a00c84961 100644 --- a/tests/Feature/Api/ConvertBPMNTest.php +++ b/tests/Feature/Api/ConvertBPMNTest.php @@ -26,7 +26,7 @@ class ConvertBPMNTest extends TestCase /** * Test convert subProcess to callActivity */ - public function testConvertSubProcess() + public function testConvertSubProcess(): void { $process = Process::factory()->create([ 'status' => 'ACTIVE', @@ -39,7 +39,7 @@ public function testConvertSubProcess() /** * Test convert sendTask to scriptTask */ - public function testConvertSendTask() + public function testConvertSendTask(): void { $process = Process::factory()->create([ 'status' => 'ACTIVE', diff --git a/tests/Feature/Api/CssOverrideTest.php b/tests/Feature/Api/CssOverrideTest.php index 2556c8b72b..b4418e4e54 100644 --- a/tests/Feature/Api/CssOverrideTest.php +++ b/tests/Feature/Api/CssOverrideTest.php @@ -28,7 +28,7 @@ class CssOverrideTest extends TestCase /** * Verifies that the bootstrap styles are validated */ - public function testEmptyParameters() + public function testEmptyParameters(): void { $response = $this->actingAs($this->user, 'api')->call('POST', '/api/1.0/customize-ui', []); @@ -38,7 +38,7 @@ public function testEmptyParameters() /** * Verifies that the bootstrap styles are validated */ - public function testWrongKeys() + public function testWrongKeys(): void { $response = $this->actingAs($this->user, 'api')->call('POST', '/api/1.0/customize-ui', ['wrongkey' => 'key']); @@ -48,7 +48,7 @@ public function testWrongKeys() /** * Verifies that the reset css works */ - public function testResetCss() + public function testResetCss(): void { $this->markTestSkipped('FOUR-6653'); // Create some css override setting with custom logos diff --git a/tests/Feature/Api/DesignerControllerTest.php b/tests/Feature/Api/DesignerControllerTest.php index 4b2700e849..c7d5daa3c1 100644 --- a/tests/Feature/Api/DesignerControllerTest.php +++ b/tests/Feature/Api/DesignerControllerTest.php @@ -13,7 +13,7 @@ class DesignerControllerTest extends TestCase * * @return void */ - public function testIndexMethod() + public function testIndexMethod(): void { $user = User::factory()->create([ 'is_administrator' => true, diff --git a/tests/Feature/Api/DevLinkTest.php b/tests/Feature/Api/DevLinkTest.php index 9bed587b88..9cb23d5e98 100644 --- a/tests/Feature/Api/DevLinkTest.php +++ b/tests/Feature/Api/DevLinkTest.php @@ -14,7 +14,7 @@ class DevLinkTest extends TestCase { use RequestHelper; - public function testShowBundle() + public function testShowBundle(): void { $bundle = Bundle::factory()->create(); $response = $this->apiCall('GET', route('api.devlink.local-bundle', ['bundle' => $bundle->id])); @@ -23,7 +23,7 @@ public function testShowBundle() $this->assertEquals($bundle->id, $response->json()['id']); } - public function testAddAssets() + public function testAddAssets(): void { $screen1 = Screen::factory()->create(); $screen2 = Screen::factory()->create(); @@ -43,7 +43,7 @@ public function testAddAssets() $this->assertEquals('Asset already exists in bundle', $response->json()['error']['message']); } - public function testInstallRemoteAsset() + public function testInstallRemoteAsset(): void { $screen = Screen::factory()->create(); $devLink = DevLink::factory()->create([ diff --git a/tests/Feature/Api/DocumentationTest.php b/tests/Feature/Api/DocumentationTest.php index 477c547f6c..75f373b03d 100644 --- a/tests/Feature/Api/DocumentationTest.php +++ b/tests/Feature/Api/DocumentationTest.php @@ -7,7 +7,7 @@ class DocumentationTest extends TestCase { - public function testGenerateSwaggerDocument() + public function testGenerateSwaggerDocument(): void { \Artisan::call('l5-swagger:generate'); $this->assertJson( diff --git a/tests/Feature/Api/EncryptedDataTest.php b/tests/Feature/Api/EncryptedDataTest.php index 954af69cd6..2e88af4207 100644 --- a/tests/Feature/Api/EncryptedDataTest.php +++ b/tests/Feature/Api/EncryptedDataTest.php @@ -21,7 +21,7 @@ public function setUpClearCache() $screenCache->clearCompiledAssets(); } - public function test_encrypt_text_ok() + public function test_encrypt_text_ok(): void { // Initialize Faker $faker = Faker::create(); @@ -50,7 +50,7 @@ public function test_encrypt_text_ok() $this->assertTrue(Str::isUuid($response->content())); } - public function test_encrypt_text_uuid() + public function test_encrypt_text_uuid(): void { // Initialize Faker $faker = Faker::create(); @@ -112,7 +112,7 @@ public function test_encrypt_text_uuid() $response->assertStatus(422); } - public function test_encrypt_text_field_name_empty() + public function test_encrypt_text_field_name_empty(): void { // Initialize Faker $faker = Faker::create(); @@ -138,7 +138,7 @@ public function test_encrypt_text_field_name_empty() $this->assertIsArray($responseData['errors']); } - public function test_encrypt_text_text_plain_empty() + public function test_encrypt_text_text_plain_empty(): void { // Initialize Faker $faker = Faker::create(); @@ -164,7 +164,7 @@ public function test_encrypt_text_text_plain_empty() $this->assertIsArray($responseData['errors']); } - public function test_encrypt_text_screen_id_not_found() + public function test_encrypt_text_screen_id_not_found(): void { // Initialize Faker $faker = Faker::create(); diff --git a/tests/Feature/Api/EnvironmentVariablesTest.php b/tests/Feature/Api/EnvironmentVariablesTest.php index eb6b17f28f..cc3dabc393 100644 --- a/tests/Feature/Api/EnvironmentVariablesTest.php +++ b/tests/Feature/Api/EnvironmentVariablesTest.php @@ -17,7 +17,7 @@ class EnvironmentVariablesTest extends TestCase const API_TEST_VARIABLES = '/environment_variables'; /** @test */ - public function test_it_should_create_an_environment_variable() + public function test_it_should_create_an_environment_variable(): void { $data = [ 'name' => 'testvariable', @@ -38,7 +38,7 @@ public function test_it_should_create_an_environment_variable() } /** @test */ - public function test_it_should_store_values_as_encrypted() + public function test_it_should_store_values_as_encrypted(): void { $variable = EnvironmentVariable::factory()->create([ 'value' => 'testvalue', @@ -50,7 +50,7 @@ public function test_it_should_store_values_as_encrypted() } /** @test */ - public function test_it_should_have_validation_errors_on_name_uniqueness_during_create() + public function test_it_should_have_validation_errors_on_name_uniqueness_during_create(): void { // Create an environment variable with a set name EnvironmentVariable::factory()->create([ @@ -73,7 +73,7 @@ public function test_it_should_have_validation_errors_on_name_uniqueness_during_ } /** @test */ - public function test_it_should_not_allow_whitespace_in_variable_name() + public function test_it_should_not_allow_whitespace_in_variable_name(): void { // Data with a name with a space $data = [ @@ -88,7 +88,7 @@ public function test_it_should_not_allow_whitespace_in_variable_name() } /** @test */ - public function test_it_should_successfully_return_an_environment_variable() + public function test_it_should_successfully_return_an_environment_variable(): void { // Create an environment variable with a set name $variable = EnvironmentVariable::factory()->create([ @@ -110,7 +110,7 @@ public function test_it_should_successfully_return_an_environment_variable() } /** @test */ - public function test_it_should_have_validation_errors_on_name_uniqueness_during_update() + public function test_it_should_have_validation_errors_on_name_uniqueness_during_update(): void { // Create an environment variable with a set name for the update $variable = EnvironmentVariable::factory()->create([ @@ -136,7 +136,7 @@ public function test_it_should_have_validation_errors_on_name_uniqueness_during_ } /** @test */ - public function test_it_should_successfully_update_an_environment_variable() + public function test_it_should_successfully_update_an_environment_variable(): void { // Create an environment variable with a set name $variable = EnvironmentVariable::factory()->create([ @@ -162,7 +162,7 @@ public function test_it_should_successfully_update_an_environment_variable() } /** @test */ - public function test_it_should_return_paginated_environment_variables_during_index() + public function test_it_should_return_paginated_environment_variables_during_index(): void { // Can't truncate because of DatabaseTransactions EnvironmentVariable::whereNotNull('id')->delete(); @@ -181,7 +181,7 @@ public function test_it_should_return_paginated_environment_variables_during_ind } /** @test */ - public function test_it_should_return_filtered_environment_variables() + public function test_it_should_return_filtered_environment_variables(): void { EnvironmentVariable::factory()->count(50)->create(); // Put in a match @@ -199,7 +199,7 @@ public function test_it_should_return_filtered_environment_variables() } /** @test */ - public function test_it_should_successfully_remove_environment_variable() + public function test_it_should_successfully_remove_environment_variable(): void { // Create an environment variable with a set name $variable = EnvironmentVariable::factory()->create([ @@ -218,7 +218,7 @@ public function test_it_should_successfully_remove_environment_variable() } /** @test */ - public function test_it_value_does_not_change_if_value_is_null() + public function test_it_value_does_not_change_if_value_is_null(): void { // Create an environment variable with a set name $variable = EnvironmentVariable::factory()->create([ @@ -243,7 +243,7 @@ public function test_it_value_does_not_change_if_value_is_null() $this->assertEquals('testvalue', $variable->value); } - public function testCreationOfMetricVariable() + public function testCreationOfMetricVariable(): void { Artisan::call('db:seed', ['class' => 'MetricsApiEnvironmentVariableSeeder']); diff --git a/tests/Feature/Api/FilesTest.php b/tests/Feature/Api/FilesTest.php index c2ebdb0f5b..5d00b86ffd 100644 --- a/tests/Feature/Api/FilesTest.php +++ b/tests/Feature/Api/FilesTest.php @@ -37,7 +37,7 @@ class FilesTest extends TestCase /** * Get a list of Files */ - public function testListFiles() + public function testListFiles(): void { // We create a fake file to upload Storage::fake('public'); @@ -79,7 +79,7 @@ public function testListFiles() /** * A file can be get successfully */ - public function testGetFile() + public function testGetFile(): void { // We create a fake file to upload $testFileName = 'test.txt'; @@ -102,7 +102,7 @@ public function testGetFile() /** * Upload a file and associate it to a model */ - public function testCreateFile() + public function testCreateFile(): void { // We create a fake file to upload Storage::fake('public'); @@ -137,7 +137,7 @@ public function testCreateFile() /** * Update a media with a new file */ - public function testUpdateFile() + public function testUpdateFile(): void { // We create a fake file to upload Storage::fake('public'); @@ -170,7 +170,7 @@ public function testUpdateFile() /** * Remove a file and its model associations */ - public function testDestroyFile() + public function testDestroyFile(): void { // We create a fake file to upload Storage::fake('public'); @@ -189,7 +189,7 @@ public function testDestroyFile() $this->assertEquals(0, $model->getMedia()->count()); } - public function testUserWithoutPermission() + public function testUserWithoutPermission(): void { // We create a fake file to upload Storage::fake('public'); diff --git a/tests/Feature/Api/GlobalSignalsTest.php b/tests/Feature/Api/GlobalSignalsTest.php index fbdbbb82a4..746047047d 100644 --- a/tests/Feature/Api/GlobalSignalsTest.php +++ b/tests/Feature/Api/GlobalSignalsTest.php @@ -17,7 +17,7 @@ class GlobalSignalsTest extends TestCase * * @group process_tests */ - public function testGlobalSignalsWithCollaboration() + public function testGlobalSignalsWithCollaboration(): void { // Create the processes $parent = $this->createProcess([ @@ -83,7 +83,7 @@ public function testGlobalSignalsWithCollaboration() * * @group process_tests */ - public function testGlobalStartSignalWithoutCollaboration() + public function testGlobalStartSignalWithoutCollaboration(): void { // Create the processes $parent = $this->createProcess([ @@ -153,7 +153,7 @@ public function testGlobalStartSignalWithoutCollaboration() * * @group process_tests */ - public function testProcessWithUndefinedSignals() + public function testProcessWithUndefinedSignals(): void { // Create the processes $parent = $this->createProcess([ diff --git a/tests/Feature/Api/GroupMembersTest.php b/tests/Feature/Api/GroupMembersTest.php index 5dc9cfbe3f..2c76c4168b 100644 --- a/tests/Feature/Api/GroupMembersTest.php +++ b/tests/Feature/Api/GroupMembersTest.php @@ -31,7 +31,7 @@ class GroupMembersTest extends TestCase /** * List group memberships */ - public function testGetGroupMemberList() + public function testGetGroupMemberList(): void { // Seed our tables. Artisan::call('db:seed', ['--class' => 'PermissionSeeder']); @@ -71,7 +71,7 @@ public function testGetGroupMemberList() /** * Test verify the parameter required for create form */ - public function testNotCreatedForParameterRequired() + public function testNotCreatedForParameterRequired(): void { //Post should have the parameter required $response = $this->apiCall('POST', self::API_TEST_URL, []); @@ -84,7 +84,7 @@ public function testNotCreatedForParameterRequired() /** * Create new group successfully */ - public function testCreateGroupMembershipForUser() + public function testCreateGroupMembershipForUser(): void { $user = User::factory()->create(); $group = Group::factory()->create(); @@ -106,7 +106,7 @@ public function testCreateGroupMembershipForUser() $this->assertTrue($member_user->is($user)); } - public function testCreateGroupMembershipForGroup() + public function testCreateGroupMembershipForGroup(): void { $this->withoutExceptionHandling(); $group1 = Group::factory()->create(); @@ -132,7 +132,7 @@ public function testCreateGroupMembershipForGroup() /** * Get a group */ - public function testGetGroupMember() + public function testGetGroupMember(): void { //get the id from the factory $group = GroupMember::factory()->create()->id; @@ -150,7 +150,7 @@ public function testGetGroupMember() /** * Delete group in process */ - public function testDeleteGroupMember() + public function testDeleteGroupMember(): void { //Remove group $url = self::API_TEST_URL . '/' . GroupMember::factory()->create()->id; @@ -163,7 +163,7 @@ public function testDeleteGroupMember() /** * The group does not exist in process */ - public function testDeleteGroupMemberNotExist() + public function testDeleteGroupMemberNotExist(): void { //GroupMember not exist $url = self::API_TEST_URL . '/' . GroupMember::factory()->make()->id; @@ -176,7 +176,7 @@ public function testDeleteGroupMemberNotExist() /** * List group available to assigned */ - public function testMembersAllGroupAvailable() + public function testMembersAllGroupAvailable(): void { //The new user does not have groups assigned. Group::factory()->count(15)->create(['status' => 'ACTIVE']); @@ -192,7 +192,7 @@ public function testMembersAllGroupAvailable() /** * List group available to assigned */ - public function testMembersOnlyGroupAvailable() + public function testMembersOnlyGroupAvailable(): void { $user = User::factory()->create(['status' => 'ACTIVE']); GroupMember::factory()->count(10)->create(['member_id' => $user->id, 'member_type' => User::class]); @@ -208,7 +208,7 @@ public function testMembersOnlyGroupAvailable() /** * List group available to assigned */ - public function testMembersAllUsersAvailable() + public function testMembersAllUsersAvailable(): void { //The new group does not have groups assigned. User::factory()->count(15)->create(['status' => 'ACTIVE']); @@ -224,7 +224,7 @@ public function testMembersAllUsersAvailable() /** * List group available to assigned */ - public function testMembersOnlyUsersAvailable() + public function testMembersOnlyUsersAvailable(): void { //The new group does not have groups assigned. $group = Group::factory()->create(['status' => 'ACTIVE']); diff --git a/tests/Feature/Api/GroupsTest.php b/tests/Feature/Api/GroupsTest.php index 0a8b0e169e..7680ac5b33 100644 --- a/tests/Feature/Api/GroupsTest.php +++ b/tests/Feature/Api/GroupsTest.php @@ -28,7 +28,7 @@ class GroupsTest extends TestCase /** * Test verify the parameter required for create form */ - public function testNotCreatedForParameterRequired() + public function testNotCreatedForParameterRequired(): void { //Post should have the parameter required $response = $this->apiCall('POST', self::API_TEST_URL, []); @@ -41,7 +41,7 @@ public function testNotCreatedForParameterRequired() /** * Create new group successfully */ - public function testCreateGroup() + public function testCreateGroup(): void { //Post title duplicated $url = self::API_TEST_URL; @@ -57,7 +57,7 @@ public function testCreateGroup() /** * Can not create a group with an existing name */ - public function testNotCreateGroupWithGroupnameExists() + public function testNotCreateGroupWithGroupnameExists(): void { Group::factory()->create([ 'name' => 'mytestname', @@ -77,7 +77,7 @@ public function testNotCreateGroupWithGroupnameExists() /** * Get a list of Groups without query parameters. */ - public function testListGroup() + public function testListGroup(): void { $existing = Group::count(); $faker = Faker::create(); @@ -102,7 +102,7 @@ public function testListGroup() /** * Test to verify that the list dates are in the correct format (yyyy-mm-dd H:i+GMT) */ - public function testGroupListDates() + public function testGroupListDates(): void { $name = 'tetGroupTimezone'; $newEntity = Group::factory()->create(['name' => $name]); @@ -123,7 +123,7 @@ public function testGroupListDates() /** * Get a list of Group with parameters */ - public function testListGroupWithQueryParameter() + public function testListGroupWithQueryParameter(): void { $name = 'mytestname'; @@ -154,7 +154,7 @@ public function testListGroupWithQueryParameter() /** * Get a group */ - public function testGetGroup() + public function testGetGroup(): void { //get the id from the factory $group = Group::factory()->create()->id; @@ -190,7 +190,7 @@ public function testGetGroup() /** * Parameters required for update of group */ - public function testUpdateGroupParametersRequired() + public function testUpdateGroupParametersRequired(): void { $id = Group::factory()->create(['name' => 'mytestname'])->id; //The post must have the required parameters @@ -207,7 +207,7 @@ public function testUpdateGroupParametersRequired() /** * Update group in process */ - public function testUpdateGroup() + public function testUpdateGroup(): void { $url = self::API_TEST_URL . '/' . Group::factory()->create()->id; @@ -232,7 +232,7 @@ public function testUpdateGroup() /** * Check that the validation wont allow duplicate names */ - public function testUpdateGroupTitleExists() + public function testUpdateGroupTitleExists(): void { $group1 = Group::factory()->create([ 'name' => 'MyGroupName', @@ -253,7 +253,7 @@ public function testUpdateGroupTitleExists() /** * Delete group in process */ - public function testDeleteGroup() + public function testDeleteGroup(): void { //Remove group $url = self::API_TEST_URL . '/' . Group::factory()->create()->id; @@ -266,7 +266,7 @@ public function testDeleteGroup() /** * The group does not exist in process */ - public function testDeleteGroupNotExist() + public function testDeleteGroupNotExist(): void { //Group not exist $url = self::API_TEST_URL . '/' . Group::factory()->make()->id; diff --git a/tests/Feature/Api/IntermediateTimerEventTest.php b/tests/Feature/Api/IntermediateTimerEventTest.php index 5dd772f8a5..ce715be81e 100644 --- a/tests/Feature/Api/IntermediateTimerEventTest.php +++ b/tests/Feature/Api/IntermediateTimerEventTest.php @@ -55,7 +55,7 @@ private function createTestProcess(array $data = []) return $process; } - public function testRegisterIntermediateTimerEvents() + public function testRegisterIntermediateTimerEvents(): void { $this->process = $this->createTestProcess(); $this->be($this->user); @@ -78,7 +78,7 @@ public function testRegisterIntermediateTimerEvents() $this->assertCount(4, $tasks->toArray()); } - public function testScheduleIntermediateTimerEvent() + public function testScheduleIntermediateTimerEvent(): void { $this->process = $this->createTestProcess(); $this->be($this->user); @@ -107,7 +107,7 @@ public function testScheduleIntermediateTimerEvent() /** * Tests a process with concurrent non interrupting boundary events attached to a CallActivity */ - public function testConnectedTimerEvents() + public function testConnectedTimerEvents(): void { // Mock current date for TaskSchedulerManager $now = TaskSchedulerManager::fakeToday('2018-10-01T00:00:00Z'); @@ -173,7 +173,7 @@ public function testConnectedTimerEvents() $this->assertEquals('COMPLETED', ProcessRequest::first()->status); } - public function testScheduleIntermediateTimerEventWithMustacheSyntax() + public function testScheduleIntermediateTimerEventWithMustacheSyntax(): void { $this->be($this->user); $data = []; diff --git a/tests/Feature/Api/ManualTaskTest.php b/tests/Feature/Api/ManualTaskTest.php index 19fae3c43f..11ab5bdd82 100644 --- a/tests/Feature/Api/ManualTaskTest.php +++ b/tests/Feature/Api/ManualTaskTest.php @@ -20,7 +20,7 @@ class ManualTaskTest extends TestCase * Test a user that participate from the request can * upload a file. */ - public function testUploadRequestFile() + public function testUploadRequestFile(): void { $this->loadTestProcess( file_get_contents(__DIR__ . '/processes/FileUpload.bpmn'), diff --git a/tests/Feature/Api/NotificationsTest.php b/tests/Feature/Api/NotificationsTest.php index 894207f318..bdd1f9b26b 100644 --- a/tests/Feature/Api/NotificationsTest.php +++ b/tests/Feature/Api/NotificationsTest.php @@ -31,7 +31,7 @@ class NotificationsTest extends TestCase /** * Create new notification successfully */ - public function testCreateNotification() + public function testCreateNotification(): void { //Post title duplicated $url = self::API_TEST_URL; @@ -49,7 +49,7 @@ public function testCreateNotification() /** * Get a list of Notifications without query parameters. */ - public function testListNotification() + public function testListNotification(): void { $existing = Notification::count(); @@ -76,7 +76,7 @@ public function testListNotification() /** * Test to verify that the list dates are in the correct format (yyyy-mm-dd H:i+GMT) */ - public function testNotificationListDates() + public function testNotificationListDates(): void { $newEntity = Notification::factory()->create([ 'notifiable_type' => User::class, @@ -99,7 +99,7 @@ public function testNotificationListDates() /** * Get a notification */ - public function testGetNotification() + public function testGetNotification(): void { //get the id from the factory $notification = Notification::factory()->create()->id; @@ -117,7 +117,7 @@ public function testGetNotification() /** * Update notification in process */ - public function testUpdateNotification() + public function testUpdateNotification(): void { $url = self::API_TEST_URL . '/' . Notification::factory()->create()->id; @@ -142,7 +142,7 @@ public function testUpdateNotification() /** * Delete notification in process */ - public function testDeleteNotification() + public function testDeleteNotification(): void { //Remove notification $url = self::API_TEST_URL . '/' . Notification::factory()->create()->id; @@ -155,7 +155,7 @@ public function testDeleteNotification() /** * The notification does not exist in process */ - public function testDeleteNotificationNotExist() + public function testDeleteNotificationNotExist(): void { //Notification not exist $url = self::API_TEST_URL . '/' . Notification::factory()->make()->id; diff --git a/tests/Feature/Api/OAuthTest.php b/tests/Feature/Api/OAuthTest.php index 52b1331310..252323a430 100644 --- a/tests/Feature/Api/OAuthTest.php +++ b/tests/Feature/Api/OAuthTest.php @@ -42,7 +42,7 @@ public function withUserSetup() * * @return void */ - public function testCreateAndList() + public function testCreateAndList(): void { $response = $this->actingAs($this->user) ->json('GET', '/oauth/clients'); @@ -59,7 +59,7 @@ public function testCreateAndList() * * @return void */ - public function testEdit() + public function testEdit(): void { $this->assertNotContains('password_client', $this->json['types']); $this->assertNotContains('personal_access_client', $this->json['types']); @@ -92,7 +92,7 @@ public function testEdit() * * @return void */ - public function testDelete() + public function testDelete(): void { $this->actingAs($this->user) ->json('POST', '/oauth/clients', [ diff --git a/tests/Feature/Api/PermissionsTest.php b/tests/Feature/Api/PermissionsTest.php index 196ed18f3d..e055a8950d 100644 --- a/tests/Feature/Api/PermissionsTest.php +++ b/tests/Feature/Api/PermissionsTest.php @@ -36,7 +36,7 @@ protected function withUserSetup() $asp->boot(); } - public function testApiPermissions() + public function testApiPermissions(): void { $group = Group::factory()->create([ 'name' => 'All Permissions', @@ -88,7 +88,7 @@ public function testApiPermissions() $response->assertStatus(204); } - public function testSetPermissionsForUser() + public function testSetPermissionsForUser(): void { $this->user = User::factory()->create([ 'password' => Hash::make('password'), @@ -109,7 +109,7 @@ public function testSetPermissionsForUser() $this->assertEquals($testUser->permissions->first()->id, $testPermission->id); } - public function testSetPermissionsViewProcessCatalogForUser() + public function testSetPermissionsViewProcessCatalogForUser(): void { $faker = Faker::create(); Permission::updateOrCreate([ @@ -135,7 +135,7 @@ public function testSetPermissionsViewProcessCatalogForUser() session(['permissions' => null]); } - public function testCategoryPermission() + public function testCategoryPermission(): void { $context = function ($type, $class) { $attrs = ['name' => 'Test Category', 'status' => 'ACTIVE']; @@ -230,7 +230,7 @@ public function testCategoryPermission() /** * Test if the created event in UserObserver assigns the correct permissions. */ - public function testSetPermissionsViewMyRequestForUser() + public function testSetPermissionsViewMyRequestForUser(): void { $permissionName = 'view-my_requests'; $permissionTitle = 'View My Requests'; @@ -247,7 +247,7 @@ public function testSetPermissionsViewMyRequestForUser() /** * Test that the permissions are seeded and assigned to users and groups. */ - public function testSetPermissionsViewMyRequestForUsersAndGroupCreated() + public function testSetPermissionsViewMyRequestForUsersAndGroupCreated(): void { // Set up the users and groups $users = User::factory()->count(5)->create(); @@ -269,7 +269,7 @@ public function testSetPermissionsViewMyRequestForUsersAndGroupCreated() /** * Test that only administrators can assign administrator privileges */ - public function testAdministratorRoleAssignment() + public function testAdministratorRoleAssignment(): void { $regularUser = User::factory()->create(['is_administrator' => false]); $adminUser = User::factory()->create(['is_administrator' => true]); diff --git a/tests/Feature/Api/ProcessCategoriesTest.php b/tests/Feature/Api/ProcessCategoriesTest.php index 75b07294a1..535c328236 100644 --- a/tests/Feature/Api/ProcessCategoriesTest.php +++ b/tests/Feature/Api/ProcessCategoriesTest.php @@ -35,7 +35,7 @@ class ProcessCategoriesTest extends TestCase /** * Test the creation of processes */ - public function testCreateProcessCategory() + public function testCreateProcessCategory(): void { //Create a process category $route = route($this->resource . '.store'); @@ -52,7 +52,7 @@ public function testCreateProcessCategory() /** * Test the required fields */ - public function testCreateNameRequired() + public function testCreateNameRequired(): void { $route = route($this->resource . '.store'); $base = ProcessCategory::factory()->make(['name' => null]); @@ -68,7 +68,7 @@ public function testCreateNameRequired() /** * Test create duplicate name Process Category */ - public function testCreateDuplicateName() + public function testCreateDuplicateName(): void { $route = route($this->resource . '.store'); @@ -86,7 +86,7 @@ public function testCreateDuplicateName() /** * Test to verify our process categories listing api endpoint works without any filters */ - public function testProcessesListing() + public function testProcessesListing(): void { $initialCount = ProcessCategory::nonSystem()->count(); // Create some processes @@ -119,7 +119,7 @@ public function testProcessesListing() /** * Test to verify our processes categories listing API endpoint works without any filters */ - public function testFiltering() + public function testFiltering(): void { $perPage = 10; $initialActiveCount = ProcessCategory::nonSystem()->where('status', 'ACTIVE')->count(); @@ -176,7 +176,7 @@ public function testFiltering() /** * Test list categories by status */ - public function testFilteringStatus() + public function testFilteringStatus(): void { $perPage = 10; $initialActiveCount = ProcessCategory::nonSystem()->where('status', 'ACTIVE')->count(); @@ -216,7 +216,7 @@ public function testFilteringStatus() /** * Test to verify our process categories listing api endpoint works with sorting */ - public function testSorting() + public function testSorting(): void { // Create some processes ProcessCategory::factory()->create([ @@ -265,7 +265,7 @@ public function testSorting() /** * Test pagination of process list */ - public function testPagination() + public function testPagination(): void { // Number of processes in the tables at the moment of starting the test $initialRows = ProcessCategory::nonSystem()->count(); @@ -288,7 +288,7 @@ public function testPagination() /** * Test show process category */ - public function testShowProcessCategory() + public function testShowProcessCategory(): void { //Create a new process category $category = ProcessCategory::factory()->create(); @@ -303,7 +303,7 @@ public function testShowProcessCategory() /* + Test update process category */ - public function testUpdateProcess() + public function testUpdateProcess(): void { $item = ProcessCategory::factory()->create(); @@ -324,7 +324,7 @@ public function testUpdateProcess() /* + Test change status */ - public function testChangeStatus() + public function testChangeStatus(): void { $item = ProcessCategory::factory()->create(['status' => 'ACTIVE']); @@ -345,7 +345,7 @@ public function testChangeStatus() /* + Test validate name required */ - public function testValidateNameNotNull() + public function testValidateNameNotNull(): void { $item = ProcessCategory::factory()->create(); @@ -364,7 +364,7 @@ public function testValidateNameNotNull() /* + Test validate name unique */ - public function testValidateNameUnique() + public function testValidateNameUnique(): void { $name = 'Some name'; ProcessCategory::factory()->create(['name' => $name]); @@ -385,7 +385,7 @@ public function testValidateNameUnique() /** * Test validate data valid for status */ - public function testValidateStatus() + public function testValidateStatus(): void { $item = ProcessCategory::factory()->create(); @@ -403,7 +403,7 @@ public function testValidateStatus() /** * Delete process category */ - public function testDeleteProcessCategory() + public function testDeleteProcessCategory(): void { $processCategory = ProcessCategory::factory()->create(); $route = route($this->resource . '.destroy', [$processCategory->id]); @@ -416,7 +416,7 @@ public function testDeleteProcessCategory() /** * test can not delete the category because you have assigned processes */ - public function testDeleteFailProcessCategory() + public function testDeleteFailProcessCategory(): void { $process = Process::factory()->create(); $route = route($this->resource . '.destroy', [$process->process_category_id]); diff --git a/tests/Feature/Api/ProcessCollaborationTest.php b/tests/Feature/Api/ProcessCollaborationTest.php index 33a47ab4a7..b0b38a828b 100644 --- a/tests/Feature/Api/ProcessCollaborationTest.php +++ b/tests/Feature/Api/ProcessCollaborationTest.php @@ -69,7 +69,7 @@ private function createTestCollaborationProcess() /** * Execute a process */ - public function testExecuteACollaboration() + public function testExecuteACollaboration(): void { $process = $this->createTestCollaborationProcess(); //Start a process request diff --git a/tests/Feature/Api/ProcessControllerTest.php b/tests/Feature/Api/ProcessControllerTest.php index 09f7860553..333521e7db 100644 --- a/tests/Feature/Api/ProcessControllerTest.php +++ b/tests/Feature/Api/ProcessControllerTest.php @@ -14,7 +14,7 @@ class ProcessControllerTest extends TestCase { use RequestHelper; - public function testStartProcessesReturnsActiveProcesses() + public function testStartProcessesReturnsActiveProcesses(): void { $file = Process::getProcessTemplatesPath() . '/SingleTask.bpmn'; $bpmn = file_get_contents($file); @@ -49,7 +49,7 @@ public function testStartProcessesReturnsActiveProcesses() $response->assertJsonMissing(['name' => 'CProcess']); } - public function testStartProcessesFiltersByName() + public function testStartProcessesFiltersByName(): void { $file = Process::getProcessTemplatesPath() . '/SingleTask.bpmn'; $bpmn = file_get_contents($file); @@ -101,7 +101,7 @@ public function testStartProcessesFiltersByName() $response->assertJsonFragment(['name' => 'Another Process']); } - public function testStartProcessesFiltersByCategory() + public function testStartProcessesFiltersByCategory(): void { $file = Process::getProcessTemplatesPath() . '/SingleTask.bpmn'; $bpmn = file_get_contents($file); @@ -150,7 +150,7 @@ public function testStartProcessesFiltersByCategory() /** * Test saving and retrieving stages in the Process model. */ - public function testSaveAndRetrieveStages() + public function testSaveAndRetrieveStages(): void { // Define stages $stages = [ @@ -187,7 +187,7 @@ public function testSaveAndRetrieveStages() * * @return void */ - public function test_can_get_process_stages() + public function test_can_get_process_stages(): void { $stages = [ ['id' => 1, 'order' => 1, 'name' => 'Start', 'selected' => false], @@ -217,7 +217,7 @@ public function test_can_get_process_stages() * * @return void */ - public function test_can_save_process_stages() + public function test_can_save_process_stages(): void { $process = Process::factory()->create(); @@ -239,7 +239,7 @@ public function test_can_save_process_stages() $this->assertEquals($newStages, $process->fresh()->stages); } - public function testCanSaveProcessWithoutStages() + public function testCanSaveProcessWithoutStages(): void { $process = Process::factory()->create([ 'description' => 'Test Process Without Stages', @@ -260,7 +260,7 @@ public function testCanSaveProcessWithoutStages() /** * Test that a process returns its stages correctly. */ - public function testCanGetAggregation() + public function testCanGetAggregation(): void { $process = Process::factory()->create([ 'aggregation' => 'var_amount', @@ -273,7 +273,7 @@ public function testCanGetAggregation() /** * Test that stages can be saved for a process. */ - public function testSaveAggregation() + public function testSaveAggregation(): void { $process = Process::factory()->create(); @@ -301,7 +301,7 @@ public function testSaveAggregation() /** * Test getting default stages for a process with statistics */ - public function testGetDefaultStagesPerProcess() + public function testGetDefaultStagesPerProcess(): void { $process = Process::factory()->create([ 'name' => 'Test Process Stages', @@ -374,7 +374,7 @@ public function testGetDefaultStagesPerProcess() /** * Test getting custom stages for a process with stages and return aggregation amount */ - public function testGetStagesPerProcessWithDefaultAggregation() + public function testGetStagesPerProcessWithDefaultAggregation(): void { $stages = [ ['id' => 101, 'order' => 1, 'name' => 'Custom Stage 1', 'selected' => false], @@ -458,7 +458,7 @@ public function testGetStagesPerProcessWithDefaultAggregation() /** * Test getting custom stages for a process with stages and return custom aggregation */ - public function testGetStagesPerProcessWithCustomAggregation() + public function testGetStagesPerProcessWithCustomAggregation(): void { $stages = [ ['id' => 101, 'order' => 1, 'name' => 'Custom Stage 1', 'selected' => false], @@ -542,7 +542,7 @@ public function testGetStagesPerProcessWithCustomAggregation() /** * Test getting metrics for a process */ - public function testGetMetricsPerProcess() + public function testGetMetricsPerProcess(): void { $process = Process::factory()->create([ 'name' => 'Test Process Metrics', @@ -571,7 +571,7 @@ public function testGetMetricsPerProcess() $this->assertCount(3, $data); } - public function testMetricsApiEndpointConfigurationIsAccessible() + public function testMetricsApiEndpointConfigurationIsAccessible(): void { $process = Process::factory()->create([ 'status' => 'ACTIVE', diff --git a/tests/Feature/Api/ProcessExecutionTest.php b/tests/Feature/Api/ProcessExecutionTest.php index 2e514ada4e..22535d861b 100644 --- a/tests/Feature/Api/ProcessExecutionTest.php +++ b/tests/Feature/Api/ProcessExecutionTest.php @@ -69,7 +69,7 @@ private function createTestProcess(array $data = []) /** * Execute a process */ - public function testExecuteAProcess() + public function testExecuteAProcess(): void { //Start a process request $route = route('api.process_events.trigger', [$this->process->id, 'event' => 'StartEventUID']); @@ -118,7 +118,7 @@ public function testExecuteAProcess() /** * Test to get the list of available start events of the process. */ - public function testGetListOfStartEvents() + public function testGetListOfStartEvents(): void { $route = route('api.processes.show', [$this->process->id, 'include' => 'events']); $response = $this->apiCall('GET', $route); @@ -129,7 +129,7 @@ public function testGetListOfStartEvents() /** * Test to start a process without sending an event identifier. */ - public function testStartProcessEmptyEventId() + public function testStartProcessEmptyEventId(): void { $route = route('api.process_events.trigger', [$this->process->id]); $data = []; @@ -140,7 +140,7 @@ public function testStartProcessEmptyEventId() /** * Test to start a process without sending an non-existent event. */ - public function testStartProcessWithNonExistingEventId() + public function testStartProcessWithNonExistingEventId(): void { $route = route('api.process_events.trigger', [$this->process->id, 'event' => 'non-existent']); $data = []; @@ -151,7 +151,7 @@ public function testStartProcessWithNonExistingEventId() /** * Try to close an already closed task */ - public function testCloseAClosedTask() + public function testCloseAClosedTask(): void { //Start a process request $route = route('api.process_events.trigger', [$this->process->id, 'event' => 'StartEventUID']); @@ -183,7 +183,7 @@ public function testCloseAClosedTask() /** * Try to update a task status */ - public function testUpdateTaskInvalidStatus() + public function testUpdateTaskInvalidStatus(): void { //Start a process request $route = route('api.process_events.trigger', [$this->process->id, 'event' => 'StartEventUID']); @@ -211,7 +211,7 @@ public function testUpdateTaskInvalidStatus() /** * Get the list of processes to start with categories and start events. */ - public function testGetListProcessesToStart() + public function testGetListProcessesToStart(): void { $this->actingAs($this->user); //Create two additional processes @@ -246,7 +246,7 @@ public function testGetListProcessesToStart() /** * Test to get the status information of a task */ - public function testGetTaskStatusPage() + public function testGetTaskStatusPage(): void { $this->withoutExceptionHandling(); //Start a process request @@ -281,7 +281,7 @@ public function testGetTaskStatusPage() /** * Test that the task gets assigned to the correct person in a group */ - public function testTaskAssignedToGroup() + public function testTaskAssignedToGroup(): void { $foo = User::factory()->create( ['firstname' => 'Foo', 'status' => 'ACTIVE'] diff --git a/tests/Feature/Api/ProcessLaunchpadTest.php b/tests/Feature/Api/ProcessLaunchpadTest.php index 0f25819361..4429506e30 100644 --- a/tests/Feature/Api/ProcessLaunchpadTest.php +++ b/tests/Feature/Api/ProcessLaunchpadTest.php @@ -25,7 +25,7 @@ class ProcessLaunchpadTest extends TestCase /** * Test get process launchpad */ - public function testGetProcessLaunchpad() + public function testGetProcessLaunchpad(): void { // Create data $process = Process::factory()->create(); @@ -52,7 +52,7 @@ public function testGetProcessLaunchpad() /** * Test store process launchpad */ - public function testStoreProcessLaunchpad() + public function testStoreProcessLaunchpad(): void { // Create data $process = Process::factory()->create(); @@ -69,7 +69,7 @@ public function testStoreProcessLaunchpad() /** * Test delete process launchpad */ - public function testDeleteProcessLaunchpad() + public function testDeleteProcessLaunchpad(): void { // Create data $launchpad = ProcessLaunchpad::factory()->create(); @@ -82,7 +82,7 @@ public function testDeleteProcessLaunchpad() /** * Test get stages count per process when stages are null. */ - public function testGetStagesCountPerProcessWhenStagesIsNull() + public function testGetStagesCountPerProcessWhenStagesIsNull(): void { // Create data $process = Process::factory()->create(); @@ -112,7 +112,7 @@ public function testGetStagesCountPerProcessWhenStagesIsNull() /** * Test get stages count per process when there are stages but no ProcessRequests. */ - public function testGetStagesCountPerProcessWithStagesAndNoRequests() + public function testGetStagesCountPerProcessWithStagesAndNoRequests(): void { // Create stages for the process $stages = [ @@ -141,7 +141,7 @@ public function testGetStagesCountPerProcessWithStagesAndNoRequests() /** * Test get stages count per process. */ - public function testGetStagesCountPerProcess() + public function testGetStagesCountPerProcess(): void { // Create stages for the process $stages = [ diff --git a/tests/Feature/Api/ProcessManualTaskTest.php b/tests/Feature/Api/ProcessManualTaskTest.php index 3873e6856b..7206389caa 100644 --- a/tests/Feature/Api/ProcessManualTaskTest.php +++ b/tests/Feature/Api/ProcessManualTaskTest.php @@ -68,7 +68,7 @@ private function createTestProcess(array $data = []) /** * Execute a process */ - public function testExecuteAProcess() + public function testExecuteAProcess(): void { //Start a process request $route = route('api.process_events.trigger', [$this->process->id, 'event' => 'StartEventUID']); @@ -109,7 +109,7 @@ public function testExecuteAProcess() /** * Try to close an already closed manual task */ - public function testCloseAClosedTask() + public function testCloseAClosedTask(): void { //Start a process request $route = route('api.process_events.trigger', [$this->process->id, 'event' => 'StartEventUID']); @@ -141,7 +141,7 @@ public function testCloseAClosedTask() /** * Try to update a task status */ - public function testUpdateTaskInvalidStatus() + public function testUpdateTaskInvalidStatus(): void { //Start a process request $route = route('api.process_events.trigger', [$this->process->id, 'event' => 'StartEventUID']); @@ -169,7 +169,7 @@ public function testUpdateTaskInvalidStatus() /** * Test to get the status information of a task */ - public function testGetTaskStatusPage() + public function testGetTaskStatusPage(): void { $this->withoutExceptionHandling(); //Start a process request @@ -204,7 +204,7 @@ public function testGetTaskStatusPage() /** * Test that the task gets assigned to the correct person in a group */ - public function testTaskAssignedToGroup() + public function testTaskAssignedToGroup(): void { $foo = User::factory()->create( ['firstname' => 'Foo', 'status' => 'ACTIVE'] diff --git a/tests/Feature/Api/ProcessPatternsTest.php b/tests/Feature/Api/ProcessPatternsTest.php index 5b96efe205..88e317fab4 100644 --- a/tests/Feature/Api/ProcessPatternsTest.php +++ b/tests/Feature/Api/ProcessPatternsTest.php @@ -42,7 +42,7 @@ public function setUpWithPersonalAccessClient() * @param string $bpmnFile */ #[DataProvider('prepareTestCasesProvider')] - public function testProcessPatterns($type, $bpmnFile, $context = []) + public function testProcessPatterns($type, $bpmnFile, $context = []): void { $this->$type($bpmnFile, $context); } diff --git a/tests/Feature/Api/ProcessPermissionsTest.php b/tests/Feature/Api/ProcessPermissionsTest.php index 33dee8d089..485b2cd995 100644 --- a/tests/Feature/Api/ProcessPermissionsTest.php +++ b/tests/Feature/Api/ProcessPermissionsTest.php @@ -31,7 +31,7 @@ protected function withUserSetup() (new PermissionSeeder)->run($this->user); } - public function testUpdateProcessPermissionRequestCancelTypeUser() + public function testUpdateProcessPermissionRequestCancelTypeUser(): void { // Create a process $process = Process::factory()->create(); diff --git a/tests/Feature/Api/ProcessRequestFileTest.php b/tests/Feature/Api/ProcessRequestFileTest.php index 4eb29c3b4f..3a1bf605df 100644 --- a/tests/Feature/Api/ProcessRequestFileTest.php +++ b/tests/Feature/Api/ProcessRequestFileTest.php @@ -19,7 +19,7 @@ class ProcessRequestFileTest extends TestCase /** * test process request files index */ - public function testIndex() + public function testIndex(): void { //create a request $process_request = ProcessRequest::factory()->create(); @@ -41,7 +41,7 @@ public function testIndex() /** * Test file upload associated with a process request id */ - public function testFileUploadWithProcessRequestID() + public function testFileUploadWithProcessRequestID(): void { //create a request $process_request = ProcessRequest::factory()->create(); @@ -58,7 +58,7 @@ public function testFileUploadWithProcessRequestID() /** * test delete of Media attached to a request */ - public function testDeleteFile() + public function testDeleteFile(): void { //create a request $process_request = ProcessRequest::factory()->create(); @@ -79,7 +79,7 @@ public function testDeleteFile() /** * test get a single file for a process by id */ - public function testShow() + public function testShow(): void { //create a request $process_request = ProcessRequest::factory()->create(); diff --git a/tests/Feature/Api/ProcessRequestPolicyTest.php b/tests/Feature/Api/ProcessRequestPolicyTest.php index 708b381d8e..bb4926f7cc 100644 --- a/tests/Feature/Api/ProcessRequestPolicyTest.php +++ b/tests/Feature/Api/ProcessRequestPolicyTest.php @@ -25,7 +25,7 @@ public function withUserSetup() $this->user = User::factory()->create(); } - public function testUserStartedProcessRequest() + public function testUserStartedProcessRequest(): void { $request = ProcessRequest::factory()->create(['user_id' => $this->user->id]); $anotherUser = User::factory()->create(); @@ -40,7 +40,7 @@ public function testUserStartedProcessRequest() $response->assertStatus(200); } - public function testUserHasParticipated() + public function testUserHasParticipated(): void { $request = ProcessRequest::factory()->create(); @@ -58,7 +58,7 @@ public function testUserHasParticipated() $response->assertStatus(200); } - public function testUserHasPermission() + public function testUserHasPermission(): void { $request = ProcessRequest::factory()->create(); diff --git a/tests/Feature/Api/ProcessRequestTokenPolicyTest.php b/tests/Feature/Api/ProcessRequestTokenPolicyTest.php index ff2d9d63db..c95d8fa909 100644 --- a/tests/Feature/Api/ProcessRequestTokenPolicyTest.php +++ b/tests/Feature/Api/ProcessRequestTokenPolicyTest.php @@ -20,7 +20,7 @@ class ProcessRequestTokenPolicyTest extends TestCase { use RequestHelper; - public function testGetScreensFromToken() + public function testGetScreensFromToken(): void { $taskUser = User::factory()->create(); $otherUser = User::factory()->create(); @@ -77,7 +77,7 @@ public function testGetScreensFromToken() $this->assertEquals('child', $response->json()['config'][0]['name']); } - public function testGetInterstitialNestedScreen() + public function testGetInterstitialNestedScreen(): void { $taskUser = User::factory()->create(); $otherUser = User::factory()->create(); @@ -147,7 +147,7 @@ public function createTaskHelper($allowReassignment, $assignedTo) return $task; } - public function testReassignTask() + public function testReassignTask(): void { $assignedUser = User::factory()->create(); $reassignToUser = User::factory()->create(); @@ -162,7 +162,7 @@ public function testReassignTask() $this->assertEquals($reassignToUser->id, $task->refresh()->user_id); } - public function testReassignWithoutTaskSetting() + public function testReassignWithoutTaskSetting(): void { $assignedUser = User::factory()->create(); $reassignToUser = User::factory()->create(); @@ -177,7 +177,7 @@ public function testReassignWithoutTaskSetting() $this->assertEquals('Not authorized to reassign this task', $response->json()['message']); } - public function testAdminReassignWithoutTaskSetting() + public function testAdminReassignWithoutTaskSetting(): void { $assignedUser = User::factory()->create(); $reassignToUser = User::factory()->create(); diff --git a/tests/Feature/Api/ProcessRequestsTest.php b/tests/Feature/Api/ProcessRequestsTest.php index f216acd653..b341f24681 100644 --- a/tests/Feature/Api/ProcessRequestsTest.php +++ b/tests/Feature/Api/ProcessRequestsTest.php @@ -51,7 +51,7 @@ class ProcessRequestsTest extends TestCase /** * Get a list of Requests without query parameters. */ - public function testListRequest() + public function testListRequest(): void { ProcessRequest::query()->delete(); @@ -75,7 +75,7 @@ public function testListRequest() /** * Count the total of request per process */ - public function testCountRequest() + public function testCountRequest(): void { ProcessRequest::query()->delete(); $process = Process::factory()->create(); @@ -100,7 +100,7 @@ public function testCountRequest() /** * Test to verify that the list dates are in the correct format (yyyy-mm-dd H:i+GMT) */ - public function testScreenListDates() + public function testScreenListDates(): void { $name = 'testRequestTimezone'; $newEntity = ProcessRequest::factory()->create(['name' => $name]); @@ -121,7 +121,7 @@ public function testScreenListDates() /** * Get a list of Request with parameters */ - public function testListRequestIncludingData() + public function testListRequestIncludingData(): void { $requestname = 'mytestrequestnameincludesdata'; @@ -142,7 +142,7 @@ public function testListRequestIncludingData() /** * Get a list of Request with parameters */ - public function testListRequestOrderByData() + public function testListRequestOrderByData(): void { $requestname = 'mytestrequestnameorderbydata'; @@ -177,7 +177,7 @@ public function testListRequestOrderByData() /** * Get a list of Request with parameters */ - public function testListRequestWithQueryParameter() + public function testListRequestWithQueryParameter(): void { $requestname = 'mytestrequestname'; @@ -208,7 +208,7 @@ public function testListRequestWithQueryParameter() /** * Test that we can filter by participant */ - public function testFilterByParticipant() + public function testFilterByParticipant(): void { $participant = User::factory()->create(); $otherUser = User::factory()->create(); @@ -234,7 +234,7 @@ public function testFilterByParticipant() /** * Test that paged values are returned as expected */ - public function testWithPagination() + public function testWithPagination(): void { $process = Process::factory()->create(); ProcessRequest::factory()->count(5)->create([ @@ -260,7 +260,7 @@ public function testWithPagination() /** * Get a list of Request by type */ - public function testListRequestWithType() + public function testListRequestWithType(): void { $in_progress = ProcessRequest::factory()->create([ 'status' => 'ACTIVE', @@ -286,7 +286,7 @@ public function testListRequestWithType() /** * Get a list of Request with assocations included */ - public function testListRequestWithIncludes() + public function testListRequestWithIncludes(): void { $process = Process::factory()->create(); @@ -302,7 +302,7 @@ public function testListRequestWithIncludes() /** * Get a list of requests with a user that has view all permission */ - public function testListRequestViewAllPermission() + public function testListRequestViewAllPermission(): void { $this->user = User::factory()->create(['status'=>'ACTIVE']); $processRequest = ProcessRequest::factory()->create([]); @@ -323,7 +323,7 @@ public function testListRequestViewAllPermission() /** * Get a request */ - public function testGetRequest() + public function testGetRequest(): void { //get the id from the factory $request = ProcessRequest::factory()->create()->id; @@ -341,7 +341,7 @@ public function testGetRequest() /** * Parameters required for update of request */ - public function testUpdateProcessRequestParametersRequired() + public function testUpdateProcessRequestParametersRequired(): void { $id = ProcessRequest::factory()->create(['name' => 'mytestrequestname'])->id; //The post must have the required parameters @@ -358,7 +358,7 @@ public function testUpdateProcessRequestParametersRequired() /** * Update request in process */ - public function testUpdateProcessRequest() + public function testUpdateProcessRequest(): void { $faker = Faker::create(); @@ -397,7 +397,7 @@ public function testUpdateProcessRequest() * * Each transition should return a 204 status code indicating success */ - public function testUpdateProcessRequestStatus() + public function testUpdateProcessRequestStatus(): void { $process = Process::factory()->create(); $request1 = ProcessRequest::factory()->create([ @@ -469,7 +469,7 @@ public function testUpdateProcessRequestStatus() /** * test to be sure that you cannot cancel a request until you have been given permission */ - public function testCancelRequestWithPermissions() + public function testCancelRequestWithPermissions(): void { // We need an admin user and a non-admin user $admin = $this->user; @@ -527,7 +527,7 @@ public function testCancelRequestWithPermissions() /** * Test ability to complete a request if it has the status: ERROR */ - public function testCompleteRequest() + public function testCompleteRequest(): void { $this->user->is_administrator = false; $this->user->saveOrFail(); @@ -582,7 +582,7 @@ public function testCompleteRequest() /** * Delete request and request tokens in parent process, and children processes */ - public function testDeleteParentProcessRequestShouldRemoveRequestAndTokensForParentAndChildren() + public function testDeleteParentProcessRequestShouldRemoveRequestAndTokensForParentAndChildren(): void { $user = User::factory()->create(); // Prepare data @@ -641,7 +641,7 @@ public function testDeleteParentProcessRequestShouldRemoveRequestAndTokensForPar /** * Delete request and request tokens in subprocess and child process */ - public function testDeleteChildProcessRequestShouldRemoveRequestAndTokensForChildren() + public function testDeleteChildProcessRequestShouldRemoveRequestAndTokensForChildren(): void { $user = User::factory()->create(); // Prepare data @@ -700,7 +700,7 @@ public function testDeleteChildProcessRequestShouldRemoveRequestAndTokensForChil /** * The request does not exist in process */ - public function testDeleteProcessRequestNotExist() + public function testDeleteProcessRequestNotExist(): void { //ProcessRequest not exist $url = self::API_TEST_URL . '/' . ProcessRequest::factory()->make()->id; @@ -710,7 +710,7 @@ public function testDeleteProcessRequestNotExist() $response->assertStatus(405); } - public function testListCanceledProcessRequests() + public function testListCanceledProcessRequests(): void { ProcessRequest::query()->delete(); @@ -734,7 +734,7 @@ public function testListCanceledProcessRequests() /** * Verifies that a file uploaded in a request can be downloaded */ - public function testFileDownload() + public function testFileDownload(): void { // We create a fake file to upload $testFileName = 'test.txt'; @@ -766,7 +766,7 @@ public function testFileDownload() $this->assertEquals($testFileName, $response->getFile()->getFileName()); } - public function testParticipantPermissionsToView() + public function testParticipantPermissionsToView(): void { $participant = User::factory()->create(); $otherUser = User::factory()->create(); @@ -794,7 +794,7 @@ public function testParticipantPermissionsToView() $response->assertStatus(200); } - public function testUserCanEditCompletedData() + public function testUserCanEditCompletedData(): void { $this->user = User::factory()->create(); $process = Process::factory()->create(); @@ -863,7 +863,7 @@ public function testUserCanEditCompletedData() * * @return void */ - public function testGetProcessRequestListAndPermissions() + public function testGetProcessRequestListAndPermissions(): void { // Setup user as non administrator $this->user->is_administrator = false; @@ -927,7 +927,7 @@ public function testGetProcessRequestListAndPermissions() $this->assertEquals(20, $response->json()['meta']['total']); } - public function testGetRequestToken() + public function testGetRequestToken(): void { $expectedResponse = [ 'advanceStatus', @@ -991,7 +991,7 @@ public function testGetRequestToken() $response->assertStatus(200); } - public function testAdvancedFilter() + public function testAdvancedFilter(): void { $hit = ProcessRequest::factory()->create([ 'data' => ['foo' => 'bar'], @@ -1015,7 +1015,7 @@ public function testAdvancedFilter() } // Test enableIsActionbyemail function - public function testEnableIsActionbyemail() + public function testEnableIsActionbyemail(): void { //create a token $token = ProcessRequestToken::factory()->create([ @@ -1031,7 +1031,7 @@ public function testEnableIsActionbyemail() /** * Test the screenRequested method of ProcessRequestController. */ - public function testScreenRequested() + public function testScreenRequested(): void { $request = ProcessRequest::factory()->create(); ProcessRequestToken::factory()->create([ @@ -1059,7 +1059,7 @@ public function testScreenRequested() /** * Get a list of Requests by Cases. */ - public function testRequestByCase() + public function testRequestByCase(): void { ProcessRequest::query()->delete(); $request = ProcessRequest::factory()->create(); @@ -1088,7 +1088,7 @@ public function testRequestByCase() /** * Get a list of Requests by Cases. */ - public function testRequestByCaseWithoutCaseNumber() + public function testRequestByCaseWithoutCaseNumber(): void { $response = $this->apiCall('GET', self::API_REQUESTS_BY_CASE); @@ -1100,7 +1100,7 @@ public function testRequestByCaseWithoutCaseNumber() /** * Get task list with data */ - public function testGetTaskListWithData() + public function testGetTaskListWithData(): void { // Create a request with a token $request = ProcessRequest::factory()->create([ @@ -1131,7 +1131,7 @@ public function testGetTaskListWithData() /** * Get a list of Requests by Cases pagination */ - public function testRequestByCasePagination() + public function testRequestByCasePagination(): void { ProcessRequest::query()->delete(); $request = ProcessRequest::factory()->create(); diff --git a/tests/Feature/Api/ProcessScriptsTest.php b/tests/Feature/Api/ProcessScriptsTest.php index fd855bf484..fde01d7d42 100644 --- a/tests/Feature/Api/ProcessScriptsTest.php +++ b/tests/Feature/Api/ProcessScriptsTest.php @@ -69,7 +69,7 @@ private function createTestProcess(array $data = []) /** * Execute a process */ - public function testExecuteAProcess() + public function testExecuteAProcess(): void { if (!file_exists(config('app.processmaker_scripts_home')) || !file_exists(config('app.processmaker_scripts_docker'))) { $this->markTestSkipped( diff --git a/tests/Feature/Api/ProcessTest.php b/tests/Feature/Api/ProcessTest.php index 82c66ef079..61fc0fd280 100644 --- a/tests/Feature/Api/ProcessTest.php +++ b/tests/Feature/Api/ProcessTest.php @@ -50,7 +50,7 @@ class ProcessTest extends TestCase /** * Test to verify our processes listing api endpoint works without any filters */ - public function testProcessesListing() + public function testProcessesListing(): void { $initialCount = Process::count(); // Create some processes @@ -74,7 +74,7 @@ public function testProcessesListing() /** * Test to verify our processes listing api endpoint works without any filters */ - public function testProcessesListingWithNoAdminUser() + public function testProcessesListingWithNoAdminUser(): void { // We create a user that isn't administrator $this->user = User::factory()->create([ @@ -111,7 +111,7 @@ public function testProcessesListingWithNoAdminUser() /** * Test to verify our processes listing api endpoint works without any filters */ - public function testProcessesListingWithNoAdminGroup() + public function testProcessesListingWithNoAdminGroup(): void { // We create a user that isn't administrator $this->user = User::factory()->create([ @@ -165,7 +165,7 @@ public function testProcessesListingWithNoAdminGroup() /** * Verifies if the list of processes that can be started is correct */ - public function testStartRequestList() + public function testStartRequestList(): void { ProcessRequest::query()->delete(); @@ -202,7 +202,7 @@ public function testStartRequestList() /** * Verifies if is returning a list that not contains processes with start events like timers, conditionals, signals and messages .. */ - public function testStartRequestListProcessesWithoutEventDefinitions() + public function testStartRequestListProcessesWithoutEventDefinitions(): void { ProcessRequest::query()->delete(); @@ -254,7 +254,7 @@ public function testStartRequestListProcessesWithoutEventDefinitions() /** * Verifies if is returning a list that contains processes with start events like conditionals, signals and messages .. */ - public function testStartRequestListProcessesWithEventDefinitions() + public function testStartRequestListProcessesWithEventDefinitions(): void { ProcessRequest::query()->delete(); @@ -295,7 +295,7 @@ public function testStartRequestListProcessesWithEventDefinitions() /** * Verifies if a process manager can start a request */ - public function testProcessManagerCanStartARequest() + public function testProcessManagerCanStartARequest(): void { // Create a non admin user: $processManagerUser = User::factory()->create([ @@ -339,7 +339,7 @@ public function testProcessManagerCanStartARequest() $this->assertTrue(in_array($responseData[1]->id, [$processWithManager->id, $processAssigned->id])); } - public function testProcessManagerCanStartProcessWithTwoStartEvents() + public function testProcessManagerCanStartProcessWithTwoStartEvents(): void { // Create a non admin user: $processManagerUser = User::factory()->create([ @@ -372,7 +372,7 @@ public function testProcessManagerCanStartProcessWithTwoStartEvents() /** * Verify the new request start events do not include web entry start events */ - public function testWebEntryFilteredFromStartEvents() + public function testWebEntryFilteredFromStartEvents(): void { $file = __DIR__ . '/processes/SingleTask.bpmn'; $regularBpmn = file_get_contents($file); @@ -396,7 +396,7 @@ public function testWebEntryFilteredFromStartEvents() $this->assertEquals(['Start Event', 'regular'], $startEvents); } - public function testProcessEventsTrigger() + public function testProcessEventsTrigger(): void { $process = Process::factory()->create([ 'bpmn' => Process::getProcessTemplate('SingleTask.bpmn'), @@ -423,7 +423,7 @@ public function testProcessEventsTrigger() /** * Verifies that a new request can be created */ - public function testCreateRequest() + public function testCreateRequest(): void { $this->withoutExceptionHandling(); // Load the process to be used in the test @@ -458,7 +458,7 @@ public function testCreateRequest() /** * Test to verify that the list dates are in the correct format (yyyy-mm-dd H:i+GMT) */ - public function testProcessListDates() + public function testProcessListDates(): void { $processName = 'processTestTimezone'; $newEntity = Process::factory()->create(['name' => $processName]); @@ -479,7 +479,7 @@ public function testProcessListDates() /** * Test to verify our processes listing API endpoint works without any filters */ - public function testFiltering() + public function testFiltering(): void { $perPage = 10; @@ -531,7 +531,7 @@ public function testFiltering() /** * Test to verify our processes listing api endpoint works with sorting */ - public function testSorting() + public function testSorting(): void { // Create some processes Process::factory()->create([ @@ -562,7 +562,7 @@ public function testSorting() /** * Test filter by bookmark */ - public function testFilterBookmarked() + public function testFilterBookmarked(): void { // This not will return the bookmark Process::factory()->count(5)->create(); @@ -586,7 +586,7 @@ public function testFilterBookmarked() /** * Test filter by Category */ - public function testFilterCategory() + public function testFilterCategory(): void { // Create Category $categoryA = ProcessCategory::factory()->create(); @@ -609,7 +609,7 @@ public function testFilterCategory() /** * Test pagination of process list */ - public function testPagination() + public function testPagination(): void { // Number of processes in the tables at the moment of starting the test $initialRows = Process::all()->count(); @@ -632,7 +632,7 @@ public function testPagination() /** * Test the creation of processes */ - public function testProcessCreation() + public function testProcessCreation(): void { // Create a process without category $this->assertModelCreationFails( @@ -668,7 +668,7 @@ public function testProcessCreation() /** * Test the creation of processes with BPMN definition */ - public function testCreateProcessWithBPMN() + public function testCreateProcessWithBPMN(): void { $route = route('api.' . $this->resource . '.store'); $base = Process::factory()->make([ @@ -689,7 +689,7 @@ public function testCreateProcessWithBPMN() /** * Test the required fields */ - public function testCreateProcessFieldsValidation() + public function testCreateProcessFieldsValidation(): void { // Test to create a process with an empty name $this->assertModelCreationFails( @@ -738,7 +738,7 @@ public function testCreateProcessFieldsValidation() /** * Test the creation of processes with BPMN definition */ - public function testValidateBpmnWhenCreatingAProcess() + public function testValidateBpmnWhenCreatingAProcess(): void { $route = route('api.' . $this->resource . '.store'); $base = Process::factory()->make([ @@ -756,7 +756,7 @@ public function testValidateBpmnWhenCreatingAProcess() /** * Test the creation of processes with invalid XML posted */ - public function testValidateInvalidXmlWhenCreatingAProcess() + public function testValidateInvalidXmlWhenCreatingAProcess(): void { $route = route('api.' . $this->resource . '.store'); $base = Process::factory()->make([ @@ -774,7 +774,7 @@ public function testValidateInvalidXmlWhenCreatingAProcess() /** * Test show process */ - public function testShowProcess() + public function testShowProcess(): void { $this->markTestSkipped('FOUR-6653'); @@ -800,7 +800,7 @@ public function testShowProcess() /** * Test update process */ - public function testUpdateProcess() + public function testUpdateProcess(): void { // Seeder Permissions (new PermissionSeeder())->run($this->user); @@ -821,7 +821,7 @@ public function testUpdateProcess() /** * Test update process */ - public function testUpdateProcessWithCategoryNull() + public function testUpdateProcessWithCategoryNull(): void { // Seeder Permissions (new PermissionSeeder())->run($this->user); @@ -841,7 +841,7 @@ public function testUpdateProcessWithCategoryNull() /** * Test update process */ - public function testUpdateProcessWithCategory() + public function testUpdateProcessWithCategory(): void { // Seeder Permissions (new PermissionSeeder())->run($this->user); @@ -861,7 +861,7 @@ public function testUpdateProcessWithCategory() /** * Test update process with invalid parameters */ - public function testUpdateProcessFails() + public function testUpdateProcessFails(): void { // Test to update name and description if required $this->assertModelUpdateFails( @@ -909,7 +909,7 @@ public function testUpdateProcessFails() /** * Test Update BPMN endpoint. */ - public function testUpdateBPMN() + public function testUpdateBPMN(): void { // Seeder Permissions (new PermissionSeeder())->run($this->user); @@ -935,7 +935,7 @@ public function testUpdateBPMN() /** * Test Update BPMN endpoint with and invalid BPMN content. */ - public function testUpdateInvalidBPMN() + public function testUpdateInvalidBPMN(): void { $process = Process::factory()->create(); $id = $process->id; @@ -952,7 +952,7 @@ public function testUpdateInvalidBPMN() /** * Tests the archiving and restoration of a process */ - public function testArchiveRestore() + public function testArchiveRestore(): void { // Generate an active process and get its ID $process = Process::factory()->create([ @@ -996,7 +996,7 @@ public function testArchiveRestore() /** * Tests updating a start permission for a node */ - public function testStartPermissionForNode() + public function testStartPermissionForNode(): void { $user = User::factory()->create(); $bpmn = trim(Process::getProcessTemplate('SingleTask.bpmn')); @@ -1033,7 +1033,7 @@ public function testStartPermissionForNode() /** * Tests we only return processes that have nodes that the user can start */ - public function testStartProcessesWithPermission() + public function testStartProcessesWithPermission(): void { $this->user = User::factory()->create(); @@ -1077,7 +1077,7 @@ public function testStartProcessesWithPermission() * * @return void */ - public function testHasPauseTimerStartEvents() + public function testHasPauseTimerStartEvents(): void { // Loads a process with an start timer event $process = Process::factory()->create([ @@ -1099,7 +1099,7 @@ public function testHasPauseTimerStartEvents() /** * Test the creation of processes with BPMN definition */ - public function testCreateProcessWithMultipleBPMNDiagrams() + public function testCreateProcessWithMultipleBPMNDiagrams(): void { $route = route('api.' . $this->resource . '.store'); $base = Process::factory()->make([ @@ -1116,7 +1116,7 @@ public function testCreateProcessWithMultipleBPMNDiagrams() $this->assertTrue(in_array('Multiple diagrams are not supported', $error['errors']['bpmn'])); } - public function testUpdateScriptCategories() + public function testUpdateScriptCategories(): void { $screen = Process::factory()->create(); $url = route('api.processes.update', $screen); @@ -1129,7 +1129,7 @@ public function testUpdateScriptCategories() $response->assertStatus(200); } - public function testProcessManager() + public function testProcessManager(): void { $process = Process::factory()->create(); $manager = User::factory()->create(); @@ -1154,7 +1154,7 @@ public function testProcessManager() $this->assertEquals($processJson['manager_id'], $process->manager_id); } - public function testUpdateCancelRequest() + public function testUpdateCancelRequest(): void { $process = Process::factory()->create(); $url = route('api.processes.update', $process); @@ -1182,7 +1182,7 @@ public function testUpdateCancelRequest() $this->assertFalse($process->properties['manager_can_cancel_request']); } - public function testUpdateProcessVersions() + public function testUpdateProcessVersions(): void { $process = Process::factory()->create(); $url = route('api.processes.update', ['process' => $process]); @@ -1199,7 +1199,7 @@ public function testUpdateProcessVersions() $this->assertEquals(0, $process->versions()->draft()->count()); } - public function testUpdateDraftProcess() + public function testUpdateDraftProcess(): void { $process = Process::factory()->create(); $url = route('api.processes.update_draft', ['process' => $process]); @@ -1218,7 +1218,7 @@ public function testUpdateDraftProcess() $this->assertEquals($bpmn, $draft->bpmn); } - public function testDiscardDraft() + public function testDiscardDraft(): void { // Create draft. $process = Process::factory()->create(); @@ -1242,7 +1242,7 @@ public function testDiscardDraft() $this->assertEquals(0, $process->versions()->draft()->count()); } - public function testTriggerStartEventWeb() + public function testTriggerStartEventWeb(): void { $this->withoutExceptionHandling(); $process = Process::factory()->create([ @@ -1259,7 +1259,7 @@ public function testTriggerStartEventWeb() $response->assertStatus(302); } - public function testGetMediaImagesRoute() + public function testGetMediaImagesRoute(): void { $process = Process::factory()->create(); $url = route('api.processes.media', $process); @@ -1270,7 +1270,7 @@ public function testGetMediaImagesRoute() $response->assertStatus(200); } - public function testDeleteMediaImages() + public function testDeleteMediaImages(): void { $process = Process::factory()->create(); $imageContent = file_get_contents(__DIR__ . '/images/640x480.png'); diff --git a/tests/Feature/Api/RequestFileUploadTest.php b/tests/Feature/Api/RequestFileUploadTest.php index 15446b8696..7b64c9c71e 100644 --- a/tests/Feature/Api/RequestFileUploadTest.php +++ b/tests/Feature/Api/RequestFileUploadTest.php @@ -28,7 +28,7 @@ class RequestFileUploadTest extends TestCase protected $task; /** - * @var \ProcessMaker\Models\User[] + * @var User[] */ protected $assigned = []; @@ -36,7 +36,7 @@ class RequestFileUploadTest extends TestCase * Test a user that participate from the request can * upload a file. */ - public function testUploadRequestFile() + public function testUploadRequestFile(): void { $this->loadTestProcess( file_get_contents(__DIR__ . '/processes/FileUpload.bpmn'), @@ -73,7 +73,7 @@ public function testUploadRequestFile() * Test a user that does not participate from the request can * not upload a file. */ - public function testCanNotUploadRequestFile() + public function testCanNotUploadRequestFile(): void { // Load the FileUpload.bpmn process $this->loadTestProcess( @@ -114,7 +114,7 @@ public function testCanNotUploadRequestFile() /** * Test a user that can claim a self task can view the requests uploaded files. */ - public function testViewUploadedRequestFile() + public function testViewUploadedRequestFile(): void { $this->loadTestProcess( file_get_contents(__DIR__ . '/processes/ViewFileUpload.bpmn'), diff --git a/tests/Feature/Api/SanitizationTest.php b/tests/Feature/Api/SanitizationTest.php index 31c33776ce..614f5eb758 100644 --- a/tests/Feature/Api/SanitizationTest.php +++ b/tests/Feature/Api/SanitizationTest.php @@ -18,7 +18,7 @@ class SanitizationTest extends TestCase * This allows us to test fields that should be sanitized and * those that should not, all within one model. */ - public function testSanitizationMiddleware() + public function testSanitizationMiddleware(): void { // Create our fake data $title = 'Best Script Ever'; diff --git a/tests/Feature/Api/SanitizeHelperTest.php b/tests/Feature/Api/SanitizeHelperTest.php index 69a5b456d2..93de24864a 100644 --- a/tests/Feature/Api/SanitizeHelperTest.php +++ b/tests/Feature/Api/SanitizeHelperTest.php @@ -34,7 +34,7 @@ protected function withUserSetup() $this->user->save(); } - public function testSingleRichTextSanitization() + public function testSingleRichTextSanitization(): void { $this->markTestSkipped('FOUR-6653'); @@ -61,7 +61,7 @@ public function testSingleRichTextSanitization() $this->assertEquals('Sanitize', $processRequestData['input_1']); } - public function testRichTextSanitizationInsideNestedScreen() + public function testRichTextSanitizationInsideNestedScreen(): void { $this->markTestSkipped('FOUR-6653'); @@ -95,7 +95,7 @@ public function testRichTextSanitizationInsideNestedScreen() $this->assertEquals('Sanitize', $processRequestData['input_1']); } - public function testSingleRichTextSanitizationInsideLoop() + public function testSingleRichTextSanitizationInsideLoop(): void { $this->markTestSkipped('FOUR-6653'); @@ -123,7 +123,7 @@ public function testSingleRichTextSanitizationInsideLoop() $this->assertEquals('Sanitize', $processRequestData['loop_1'][0]['form_input_1']); } - public function testRichTextSanitizationInsideLoopInsideNestedScreen() + public function testRichTextSanitizationInsideLoopInsideNestedScreen(): void { $this->markTestSkipped('FOUR-6653'); @@ -157,7 +157,7 @@ public function testRichTextSanitizationInsideLoopInsideNestedScreen() $this->assertEquals('Sanitize', $processRequestData['loop_1'][0]['form_input_1']); } - public function testSingleRichTextTwoPagesSanitization() + public function testSingleRichTextTwoPagesSanitization(): void { $this->markTestSkipped('FOUR-6653'); @@ -186,7 +186,7 @@ public function testSingleRichTextTwoPagesSanitization() $this->assertEquals('Sanitize', $processRequestData['input_1']); } - public function testSingleRichTextSanitizationWithNestedVariableName() + public function testSingleRichTextSanitizationWithNestedVariableName(): void { $this->markTestSkipped('FOUR-6653'); @@ -213,7 +213,7 @@ public function testSingleRichTextSanitizationWithNestedVariableName() $this->assertEquals('Sanitize', $processRequestData['input_1']); } - public function testSingleRichTextSanitizationSameNameDifferentScope() + public function testSingleRichTextSanitizationSameNameDifferentScope(): void { $this->markTestSkipped('FOUR-6653'); @@ -242,7 +242,7 @@ public function testSingleRichTextSanitizationSameNameDifferentScope() $this->assertEquals('Sanitize', $processRequestData['form_text_area_1']); } - public function testSingleRichTextSanitizationInsideTableAndLoop() + public function testSingleRichTextSanitizationInsideTableAndLoop(): void { // Prepare scenario .. $this->createScreen('tests/Fixtures/sanitize_single_rich_text_inside_table_and_loop_screen.json'); @@ -271,7 +271,7 @@ public function testSingleRichTextSanitizationInsideTableAndLoop() $this->assertEquals('

Inside loop inside table 2 do not sanitize

', $processRequestData['loop_2'][1]['form_text_area_4']); } - public function testSanitizeDataForScreen() + public function testSanitizeDataForScreen(): void { $content = file_get_contents(__DIR__ . '/../../Fixtures/sanitize_nested_screen.json'); (new ImportScreen($content))->handle(); diff --git a/tests/Feature/Api/ScreenCategoriesTest.php b/tests/Feature/Api/ScreenCategoriesTest.php index 0521652a93..2c0e04df56 100644 --- a/tests/Feature/Api/ScreenCategoriesTest.php +++ b/tests/Feature/Api/ScreenCategoriesTest.php @@ -34,7 +34,7 @@ class ScreenCategoriesTest extends TestCase /** * Test the creation of screens */ - public function testCreateScreenCategory() + public function testCreateScreenCategory(): void { //Create a screen category $route = route($this->resource . '.store'); @@ -51,7 +51,7 @@ public function testCreateScreenCategory() /** * Test the required fields */ - public function testCreateNameRequired() + public function testCreateNameRequired(): void { $route = route($this->resource . '.store'); $base = ScreenCategory::factory()->make(['name' => null]); @@ -67,7 +67,7 @@ public function testCreateNameRequired() /** * Test create duplicate name Screen Category */ - public function testCreateDuplicateName() + public function testCreateDuplicateName(): void { $route = route($this->resource . '.store'); @@ -85,7 +85,7 @@ public function testCreateDuplicateName() /** * Test to verify our screen categories listing api endpoint works without any filters */ - public function testScreensListing() + public function testScreensListing(): void { $initialCount = ScreenCategory::nonSystem()->count(); // Create some screens @@ -118,7 +118,7 @@ public function testScreensListing() /** * Test to verify our screens categories listing API endpoint works without any filters */ - public function testFiltering() + public function testFiltering(): void { $perPage = 10; $initialInactiveCount = ScreenCategory::nonSystem()->where('status', 'INACTIVE')->count(); @@ -178,7 +178,7 @@ public function testFiltering() /** * Test list categories by status */ - public function testFilteringStatus() + public function testFilteringStatus(): void { $perPage = 10; $initialActiveCount = ScreenCategory::nonSystem()->where('status', 'ACTIVE')->count(); @@ -218,7 +218,7 @@ public function testFilteringStatus() /** * Test to verify our screen categories listing api endpoint works with sorting */ - public function testSorting() + public function testSorting(): void { // Create some screens ScreenCategory::factory()->create([ @@ -267,7 +267,7 @@ public function testSorting() /** * Test pagination of screen list */ - public function testPagination() + public function testPagination(): void { // Number of screens in the tables at the moment of starting the test $initialRows = ScreenCategory::nonSystem()->get()->count(); @@ -290,7 +290,7 @@ public function testPagination() /** * Test show screen category */ - public function testShowScreenCategory() + public function testShowScreenCategory(): void { //Create a new screen category $category = ScreenCategory::factory()->create(); @@ -305,7 +305,7 @@ public function testShowScreenCategory() /* + Test update screen category */ - public function testUpdateScreen() + public function testUpdateScreen(): void { $item = ScreenCategory::factory()->create(); @@ -326,7 +326,7 @@ public function testUpdateScreen() /* + Test change status */ - public function testChangeStatus() + public function testChangeStatus(): void { $item = ScreenCategory::factory()->create(['status' => 'ACTIVE']); @@ -347,7 +347,7 @@ public function testChangeStatus() /* + Test validate name required */ - public function testValidateNameNotNull() + public function testValidateNameNotNull(): void { $item = ScreenCategory::factory()->create(); @@ -366,7 +366,7 @@ public function testValidateNameNotNull() /* + Test validate name unique */ - public function testValidateNameUnique() + public function testValidateNameUnique(): void { $name = 'Some name'; ScreenCategory::factory()->create(['name' => $name]); @@ -387,7 +387,7 @@ public function testValidateNameUnique() /** * Test validate data valid for status */ - public function testValidateStatus() + public function testValidateStatus(): void { $item = ScreenCategory::factory()->create(); @@ -405,7 +405,7 @@ public function testValidateStatus() /** * Delete screen category */ - public function testDeleteScreenCategory() + public function testDeleteScreenCategory(): void { $screenCategory = ScreenCategory::factory()->create(); $route = route($this->resource . '.destroy', [$screenCategory->id]); @@ -418,7 +418,7 @@ public function testDeleteScreenCategory() /** * test can not delete the category because you have assigned screens */ - public function testDeleteFailScreenCategory() + public function testDeleteFailScreenCategory(): void { $screen = Screen::factory()->create(); $route = route($this->resource . '.destroy', [$screen->screen_category_id]); diff --git a/tests/Feature/Api/ScreenTest.php b/tests/Feature/Api/ScreenTest.php index 2bc2b2912c..8e743eb86c 100644 --- a/tests/Feature/Api/ScreenTest.php +++ b/tests/Feature/Api/ScreenTest.php @@ -25,7 +25,7 @@ class ScreenTest extends TestCase /** * Test verify the parameter required for create screen */ - public function testNotCreatedForParameterRequired() + public function testNotCreatedForParameterRequired(): void { // Post should have the parameter required $url = self::API_TEST_SCREEN; @@ -39,7 +39,7 @@ public function testNotCreatedForParameterRequired() /** * Create Form screen successfully */ - public function testCreateFormScreen() + public function testCreateFormScreen(): void { // Post title duplicated $faker = Faker::create(); @@ -56,7 +56,7 @@ public function testCreateFormScreen() /** * Create Form screen successfully */ - public function testCreateDisplayScreen() + public function testCreateDisplayScreen(): void { // Post title duplicated $faker = Faker::create(); @@ -74,7 +74,7 @@ public function testCreateDisplayScreen() /** * Can not create a screen with an existing title */ - public function testNotCreateScreenWithTitleExists() + public function testNotCreateScreenWithTitleExists(): void { Screen::factory()->create([ 'title' => 'Title Screen', @@ -94,7 +94,7 @@ public function testNotCreateScreenWithTitleExists() /** * Get a list of Screen in process without query parameters. */ - public function testListScreen() + public function testListScreen(): void { Screen::query()->delete(); // add Screen to process @@ -124,7 +124,7 @@ public function testListScreen() /** * Test to verify that the list dates are in the correct format (yyyy-mm-dd H:i+GMT) */ - public function testScreenListDates() + public function testScreenListDates(): void { $title = 'testScreenTimezone'; $newEntity = Screen::factory()->create(['title' => $title]); @@ -145,7 +145,7 @@ public function testScreenListDates() /** * Get a list of Screen with parameters */ - public function testListScreenWithQueryParameter() + public function testListScreenWithQueryParameter(): void { $title = 'search Title Screen'; Screen::factory()->create([ @@ -182,7 +182,7 @@ public function testListScreenWithQueryParameter() /** * Get a Screen of a process. */ - public function testGetScreen() + public function testGetScreen(): void { // load Screen $url = self::API_TEST_SCREEN . '/' . Screen::factory()->create([ @@ -205,7 +205,7 @@ public function testGetScreen() /** * Update Screen parameter are required */ - public function testUpdateScreenParametersRequired() + public function testUpdateScreenParametersRequired(): void { // Post should have the parameter title $url = self::API_TEST_SCREEN . '/' . Screen::factory()->create()->id; @@ -221,7 +221,7 @@ public function testUpdateScreenParametersRequired() /** * Update Screen in process successfully */ - public function testUpdateScreen() + public function testUpdateScreen(): void { $faker = Faker::create(); $yesterday = now()->yesterday(); @@ -255,7 +255,7 @@ public function testUpdateScreen() /** * Update draft Screen. */ - public function testUpdateDraftScreen() + public function testUpdateDraftScreen(): void { $faker = Faker::create(); $yesterday = now()->yesterday(); @@ -291,7 +291,7 @@ public function testUpdateDraftScreen() /** * Close draft screen. */ - public function testCloseDraftScreen() + public function testCloseDraftScreen(): void { $screen = Screen::factory()->create(); @@ -311,7 +311,7 @@ public function testCloseDraftScreen() /** * Update Screen Type */ - public function testUpdateScreenType() + public function testUpdateScreenType(): void { $faker = Faker::create(); $type = 'FORM'; @@ -332,7 +332,7 @@ public function testUpdateScreenType() /** * Copy Screen */ - public function testDuplicateScreen() + public function testDuplicateScreen(): void { $faker = Faker::create(); $config = [['items' => [['config' => ['foo' => 'bar']]]]]; @@ -353,7 +353,7 @@ public function testDuplicateScreen() /** * Update Screen with same title */ - public function testUpdateSameTitleScreen() + public function testUpdateSameTitleScreen(): void { // Post saved success $faker = Faker::create(); @@ -377,7 +377,7 @@ public function testUpdateSameTitleScreen() /** * Delete Screen in process */ - public function testDeleteScreen() + public function testDeleteScreen(): void { // Remove Screen $url = self::API_TEST_SCREEN . '/' . Screen::factory()->create()->id; @@ -389,7 +389,7 @@ public function testDeleteScreen() /** * Delete Screen in process */ - public function testDeleteScreenNotExist() + public function testDeleteScreenNotExist(): void { // screen not exist $url = self::API_TEST_SCREEN . '/' . Screen::factory()->make()->id; @@ -398,7 +398,7 @@ public function testDeleteScreenNotExist() $response->assertStatus(405); } - public function testCategoryNotRequiredIfAlreadySavedInDatabase() + public function testCategoryNotRequiredIfAlreadySavedInDatabase(): void { $screen = Screen::factory()->create(); $url = route('api.screens.update', $screen); @@ -411,7 +411,7 @@ public function testCategoryNotRequiredIfAlreadySavedInDatabase() $response->assertStatus(204); } - public function testCreateCategoryRequired() + public function testCreateCategoryRequired(): void { $url = route('api.screens.store'); $params = [ @@ -448,7 +448,7 @@ public function testCreateCategoryRequired() /** * Get a list of Screen filter by category */ - public function testFilterByCategory() + public function testFilterByCategory(): void { $name = 'Search title Category Screen'; $category = ScreenCategory::factory()->create([ @@ -505,7 +505,7 @@ public function testFilterByCategory() $response->assertJsonStructure(['*' => self::STRUCTURE], $json['data']); } - public function testUpdateScreenCategories() + public function testUpdateScreenCategories(): void { $screen = Screen::factory()->create(); $url = route('api.screens.update', $screen); @@ -519,7 +519,7 @@ public function testUpdateScreenCategories() $response->assertStatus(204); } - public function testWithUserWithoutAuthorization() + public function testWithUserWithoutAuthorization(): void { $screen = Screen::factory()->create(); $url = route('api.screens.update', $screen); @@ -536,7 +536,7 @@ public function testWithUserWithoutAuthorization() $response->assertStatus(401); } - public function testPreviewScreen() + public function testPreviewScreen(): void { $this->markTestSkipped('Skip consolidated screen preview'); $child = Screen::factory()->create([ @@ -577,7 +577,7 @@ public function testPreviewScreen() /** * Test get list of screens with categories but without config field */ - public function testListScreensWithCategoriesAndWithoutConfig() + public function testListScreensWithCategoriesAndWithoutConfig(): void { $category = ScreenCategory::factory()->create(); $screen1 = Screen::factory()->create([ @@ -607,7 +607,7 @@ public function testListScreensWithCategoriesAndWithoutConfig() /** * Test get list of screens with categories with config field */ - public function testListScreensWithCategoriesWithoContent() + public function testListScreensWithCategoriesWithoContent(): void { $category = ScreenCategory::factory()->create(); $screen1 = Screen::factory()->create([ diff --git a/tests/Feature/Api/ScriptCategoriesTest.php b/tests/Feature/Api/ScriptCategoriesTest.php index 96bac64960..a84dd47c3a 100644 --- a/tests/Feature/Api/ScriptCategoriesTest.php +++ b/tests/Feature/Api/ScriptCategoriesTest.php @@ -34,7 +34,7 @@ class ScriptCategoriesTest extends TestCase /** * Test the creation of script */ - public function testCreateScriptCategory() + public function testCreateScriptCategory(): void { //Create a script category $route = route($this->resource . '.store'); @@ -51,7 +51,7 @@ public function testCreateScriptCategory() /** * Test the required fields */ - public function testCreateNameRequired() + public function testCreateNameRequired(): void { $route = route($this->resource . '.store'); $base = ScriptCategory::factory()->make(['name' => null]); @@ -67,7 +67,7 @@ public function testCreateNameRequired() /** * Test create duplicate name Script Category */ - public function testCreateDuplicateName() + public function testCreateDuplicateName(): void { $route = route($this->resource . '.store'); @@ -85,7 +85,7 @@ public function testCreateDuplicateName() /** * Test to verify our script categories listing api endpoint works without any filters */ - public function testScriptsListing() + public function testScriptsListing(): void { $initialCount = ScriptCategory::count(); // Create some script @@ -118,7 +118,7 @@ public function testScriptsListing() /** * Test to verify our script categories listing API endpoint works without any filters */ - public function testFiltering() + public function testFiltering(): void { $perPage = 10; $initialInactiveCount = ScriptCategory::where('status', 'INACTIVE')->count(); @@ -178,7 +178,7 @@ public function testFiltering() /** * Test list categories by status */ - public function testFilteringStatus() + public function testFilteringStatus(): void { $perPage = 10; $initialActiveCount = ScriptCategory::where('status', 'ACTIVE')->count(); @@ -219,7 +219,7 @@ public function testFilteringStatus() /** * Test to verify our script categories listing api endpoint works with sorting */ - public function testSorting() + public function testSorting(): void { // Create some script ScriptCategory::factory()->create([ @@ -268,7 +268,7 @@ public function testSorting() /** * Test pagination of script list */ - public function testPagination() + public function testPagination(): void { // Number of script in the tables at the moment of starting the test $initialRows = ScriptCategory::all()->count(); @@ -291,7 +291,7 @@ public function testPagination() /** * Test show script category */ - public function testShowScriptCategory() + public function testShowScriptCategory(): void { //Create a new script category $category = ScriptCategory::factory()->create(); @@ -306,7 +306,7 @@ public function testShowScriptCategory() /* + Test update script category */ - public function testUpdateScript() + public function testUpdateScript(): void { $item = ScriptCategory::factory()->create(); @@ -327,7 +327,7 @@ public function testUpdateScript() /* + Test change status */ - public function testChangeStatus() + public function testChangeStatus(): void { $item = ScriptCategory::factory()->create(['status' => 'ACTIVE']); @@ -348,7 +348,7 @@ public function testChangeStatus() /* + Test validate name required */ - public function testValidateNameNotNull() + public function testValidateNameNotNull(): void { $item = ScriptCategory::factory()->create(); @@ -367,7 +367,7 @@ public function testValidateNameNotNull() /* + Test validate name unique */ - public function testValidateNameUnique() + public function testValidateNameUnique(): void { $name = 'Some name'; ScriptCategory::factory()->create(['name' => $name]); @@ -388,7 +388,7 @@ public function testValidateNameUnique() /** * Test validate data valid for status */ - public function testValidateStatus() + public function testValidateStatus(): void { $item = ScriptCategory::factory()->create(); @@ -406,7 +406,7 @@ public function testValidateStatus() /** * Delete script category */ - public function testDeleteScriptCategory() + public function testDeleteScriptCategory(): void { $scriptCategory = ScriptCategory::factory()->create(); $route = route($this->resource . '.destroy', [$scriptCategory->id]); @@ -419,7 +419,7 @@ public function testDeleteScriptCategory() /** * test can not delete the category because you have assigned script */ - public function testDeleteFailScriptCategory() + public function testDeleteFailScriptCategory(): void { $script = Script::factory()->create(['language'=>'lua']); $route = route($this->resource . '.destroy', [$script->script_category_id]); diff --git a/tests/Feature/Api/ScriptsTest.php b/tests/Feature/Api/ScriptsTest.php index bb76dad7db..7ad37982d6 100644 --- a/tests/Feature/Api/ScriptsTest.php +++ b/tests/Feature/Api/ScriptsTest.php @@ -45,7 +45,7 @@ public function setUpWithPersonalAccessClient() /** * Test verify the parameter required to create a script */ - public function testNotCreatedForParameterRequired() + public function testNotCreatedForParameterRequired(): void { // Post should have the parameter required $url = self::API_TEST_SCRIPT; @@ -58,7 +58,7 @@ public function testNotCreatedForParameterRequired() /** * Create new script in process */ - public function testCreateScript() + public function testCreateScript(): void { $faker = Faker::create(); $user = User::factory()->create(['is_administrator' => true]); @@ -79,7 +79,7 @@ public function testCreateScript() $response->assertJsonStructure(self::STRUCTURE); } - public function testCreateCategoryRequired() + public function testCreateCategoryRequired(): void { $url = route('api.scripts.store'); $params = [ @@ -118,7 +118,7 @@ public function testCreateCategoryRequired() /** * Can not create a script with an existing title */ - public function testNotCreateScriptWithTitleExists() + public function testNotCreateScriptWithTitleExists(): void { $script = Script::factory()->create([ 'title' => 'Script Title', @@ -140,7 +140,7 @@ public function testNotCreateScriptWithTitleExists() /** * Can not create a script with an existing key */ - public function testNotCreateScriptWithKeyExists() + public function testNotCreateScriptWithKeyExists(): void { $script = Script::factory()->create([ 'key' => 'some-key', @@ -160,7 +160,7 @@ public function testNotCreateScriptWithKeyExists() /** * Get a list of scripts in a project. */ - public function testListScripts() + public function testListScripts(): void { // add scripts to process Script::query()->delete(); @@ -194,7 +194,7 @@ public function testListScripts() /** * Test to verify that the list dates are in the correct format (yyyy-mm-dd H:i+GMT) */ - public function testScriptListDates() + public function testScriptListDates(): void { $name = 'tetScriptTimezone'; $newEntity = Script::factory()->create(['title' => $name]); @@ -216,7 +216,7 @@ public function testScriptListDates() /** * Get a list of Scripts with parameters */ - public function testListScriptsWithQueryParameter() + public function testListScriptsWithQueryParameter(): void { $title = 'search script title'; Script::factory()->create([ @@ -250,7 +250,7 @@ public function testListScriptsWithQueryParameter() /** * Get a script of a project. */ - public function testGetScript() + public function testGetScript(): void { // add scripts to process $script = Script::factory()->create(); @@ -268,7 +268,7 @@ public function testGetScript() /** * Parameters required for update of script */ - public function testUpdateScriptParametersRequired() + public function testUpdateScriptParametersRequired(): void { $faker = Faker::create(); @@ -290,7 +290,7 @@ public function testUpdateScriptParametersRequired() /** * Update script in process */ - public function testUpdateScript() + public function testUpdateScript(): void { $faker = Faker::create(); $user = User::factory()->create(['is_administrator' => true]); @@ -329,7 +329,7 @@ public function testUpdateScript() /** * Update script in process with same title */ - public function testUpdateScriptTitleExists() + public function testUpdateScriptTitleExists(): void { $script1 = Script::factory()->create([ 'title' => 'Some title', @@ -349,7 +349,7 @@ public function testUpdateScriptTitleExists() /** * Copy Script */ - public function testDuplicateScript() + public function testDuplicateScript(): void { $faker = Faker::create(); $user = User::factory()->create(['is_administrator' => true]); @@ -373,7 +373,7 @@ public function testDuplicateScript() /** * Test the preview function */ - public function testPreviewScript() + public function testPreviewScript(): void { Event::fake([ ScriptResponseEvent::class, @@ -399,7 +399,7 @@ public function testPreviewScript() /** * Test the preview function */ - public function testPreviewScriptFail() + public function testPreviewScriptFail(): void { Event::fake([ ScriptResponseEvent::class, @@ -425,7 +425,7 @@ public function testPreviewScriptFail() /** * Delete script in process */ - public function testDeleteScript() + public function testDeleteScript(): void { // Remove script $url = self::API_TEST_SCRIPT . '/' . Script::factory()->create()->id; @@ -437,7 +437,7 @@ public function testDeleteScript() /** * The script does not exist in process */ - public function testDeleteScriptNotExist() + public function testDeleteScriptNotExist(): void { // Script not exist $url = self::API_TEST_SCRIPT . '/' . Script::factory()->make()->id; @@ -449,7 +449,7 @@ public function testDeleteScriptNotExist() /** * test that script without user to run as assigned generates an error */ - public function testScriptWithoutUser() + public function testScriptWithoutUser(): void { $faker = Faker::create(); $code = '{"foo":"bar"}'; @@ -481,7 +481,7 @@ private function getScript($language) /** * Get a list of Screen filter by category */ - public function testFilterByCategory() + public function testFilterByCategory(): void { $name = 'Search title Category Screen'; $category = ScriptCategory::factory()->create([ @@ -538,7 +538,7 @@ public function testFilterByCategory() $response->assertJsonStructure(['*' => self::STRUCTURE], $json['data']); } - public function testUpdateScriptCategories() + public function testUpdateScriptCategories(): void { $screen = Script::factory()->create(); $url = route('api.scripts.update', $screen); @@ -553,7 +553,7 @@ public function testUpdateScriptCategories() $response->assertStatus(204); } - public function testExecutePolicy() + public function testExecutePolicy(): void { (new PermissionSeeder)->run(); $asp = new AuthServiceProvider(app()); @@ -588,7 +588,7 @@ public function testExecutePolicy() $response->assertStatus(403); } - public function testExecuteVersion() + public function testExecuteVersion(): void { $this->markTestSkipped('Skip version locking for now'); @@ -619,7 +619,7 @@ public function testExecuteVersion() Carbon::setTestNow(); } - public function testUpdateDraftScript() + public function testUpdateDraftScript(): void { $faker = Faker::create(); $user = User::factory()->create(['is_administrator' => true]); @@ -652,7 +652,7 @@ public function testUpdateDraftScript() $this->assertLessThan(3, $draft->updated_at->diffInSeconds($script->updated_at)); } - public function testCloseDraftScript() + public function testCloseDraftScript(): void { $user = User::factory()->create(['is_administrator' => true]); $script = Script::factory()->create(); diff --git a/tests/Feature/Api/SearchByCategoryTest.php b/tests/Feature/Api/SearchByCategoryTest.php index c9d6fee5a5..db9f54e291 100644 --- a/tests/Feature/Api/SearchByCategoryTest.php +++ b/tests/Feature/Api/SearchByCategoryTest.php @@ -29,7 +29,7 @@ class SearchByCategoryTest extends TestCase /** * Test filtering processes by category */ - public function testSearchProcessesByCategory() + public function testSearchProcessesByCategory(): void { $cata = ProcessCategory::factory()->create(['name' => 'category_a']); $catb = ProcessCategory::factory()->create(['name' => 'category_b']); @@ -96,7 +96,7 @@ public function testSearchProcessesByCategory() /** * Test filtering processes by category */ - public function testSearchScreensByCategory() + public function testSearchScreensByCategory(): void { $cata = ScreenCategory::factory()->create(['name' => 'category_a']); $catb = ScreenCategory::factory()->create(['name' => 'category_b']); @@ -163,7 +163,7 @@ public function testSearchScreensByCategory() /** * Test filtering processes by category */ - public function testSearchScriptsByCategory() + public function testSearchScriptsByCategory(): void { $cata = ScriptCategory::factory()->create(['name' => 'category_a']); $catb = ScriptCategory::factory()->create(['name' => 'category_b']); diff --git a/tests/Feature/Api/SecurityLogsTest.php b/tests/Feature/Api/SecurityLogsTest.php index d4fa5b6290..144faea5d6 100644 --- a/tests/Feature/Api/SecurityLogsTest.php +++ b/tests/Feature/Api/SecurityLogsTest.php @@ -92,7 +92,7 @@ public function setUpWithPersonalAccessClient() /** * Attempt to access security logs */ - public function testAccessSecurityLogsApi() + public function testAccessSecurityLogsApi(): void { $response = $this->apiCall('GET', '/security-logs'); $response->assertStatus(403); @@ -109,7 +109,7 @@ public function testAccessSecurityLogsApi() /** * Return status 200 */ - public function testSearchSecurityLogsApi() + public function testSearchSecurityLogsApi(): void { $permission = Permission::byName('view-security-logs'); $this->user->permissions()->attach($permission->id); @@ -176,7 +176,7 @@ public function testSearchSecurityLogsApi() /** * Return status 201 */ - public function testStore() + public function testStore(): void { $response = $this->apiCall('POST', '/security-logs'); $response->assertStatus(403); @@ -217,7 +217,7 @@ public function testStore() /** * This test the Setting Update */ - public function testSettingUpdated() + public function testSettingUpdated(): void { $setting = Setting::factory()->create(['key' => 'users.properties']); $setting->config = ['city' => 'City of residence']; @@ -251,7 +251,7 @@ public function checkAssertsSegurityLog(string $event, $date = 'created_at', $to /** * This test Category Created */ - public function testCategoryCreated() + public function testCategoryCreated(): void { $fields = [ 'name' => 'var_1', @@ -265,7 +265,7 @@ public function testCategoryCreated() /** * This test Category Deleted */ - public function testCategoryDeleted() + public function testCategoryDeleted(): void { $processCategory = ProcessCategory::factory()->create(); $processCategory->delete(); @@ -277,7 +277,7 @@ public function testCategoryDeleted() /** * This test Category Updated */ - public function testCategoryUpdated() + public function testCategoryUpdated(): void { $processCategory = ProcessCategory::factory()->create(); $original = $processCategory->getOriginal(); @@ -292,7 +292,7 @@ public function testCategoryUpdated() /** * This test Environment Variables Created */ - public function testEnvironmentVariablesCreated() + public function testEnvironmentVariablesCreated(): void { $fields = [ 'name' => 'var_1', @@ -308,7 +308,7 @@ public function testEnvironmentVariablesCreated() /** * This test Environment Variables Deleted */ - public function testEnvironmentVariablesDeleted() + public function testEnvironmentVariablesDeleted(): void { $vars = EnvironmentVariable::factory()->create([ 'name' => 'var_2', @@ -322,7 +322,7 @@ public function testEnvironmentVariablesDeleted() /** * This test Environment Variables Updated */ - public function testEnvironmentVariablesUpdated() + public function testEnvironmentVariablesUpdated(): void { $vars = EnvironmentVariable::factory()->create([ 'name' => 'var_3', @@ -339,7 +339,7 @@ public function testEnvironmentVariablesUpdated() /** * This test Group Created */ - public function testGroupCreated() + public function testGroupCreated(): void { $fields = [ 'name' => 'group_1', @@ -353,7 +353,7 @@ public function testGroupCreated() /** * This test Group Deleted */ - public function testGroupDeleted() + public function testGroupDeleted(): void { $group = Group::factory()->create([ 'name' => 'group_1', @@ -367,7 +367,7 @@ public function testGroupDeleted() /** * This test Group Updated */ - public function testGroupUpdated() + public function testGroupUpdated(): void { $group = Group::factory()->create([ 'name' => 'group_2', @@ -384,7 +384,7 @@ public function testGroupUpdated() /** * This test Process Archived */ - public function testProcessArchived() + public function testProcessArchived(): void { $process = Process::factory()->create(); $process->status = 'ARCHIVED'; @@ -397,7 +397,7 @@ public function testProcessArchived() /** * This test Process Created */ - public function testProcessCreated() + public function testProcessCreated(): void { $process = Process::factory()->create(); ProcessCreated::dispatch($process); @@ -408,7 +408,7 @@ public function testProcessCreated() /** * This test Process Published */ - public function testProcessPublished() + public function testProcessPublished(): void { $process = Process::factory()->create(); $original = $process->getOriginal(); @@ -423,7 +423,7 @@ public function testProcessPublished() /** * This test Process Restored */ - public function testProcessRestored() + public function testProcessRestored(): void { $process = Process::factory()->create(); $process->status = 'ARCHIVED'; @@ -438,7 +438,7 @@ public function testProcessRestored() /** * This test Screen Created */ - public function testScreenCreated() + public function testScreenCreated(): void { $fields = [ 'id' => 999, @@ -454,7 +454,7 @@ public function testScreenCreated() /** * This test Screen Deleted */ - public function testScreenDeleted() + public function testScreenDeleted(): void { $screen = Screen::factory()->create(); $screen->delete(); @@ -466,7 +466,7 @@ public function testScreenDeleted() /** * This test Screen Updated */ - public function testScreenUpdated() + public function testScreenUpdated(): void { $screen = Screen::factory()->create(); $original = $screen->getOriginal(); @@ -481,7 +481,7 @@ public function testScreenUpdated() /** * This test Script Created */ - public function testScriptCreated() + public function testScriptCreated(): void { $script = Script::factory()->create(); $changes = $script->getChanges(); @@ -493,7 +493,7 @@ public function testScriptCreated() /** * This test Script Deleted */ - public function testScriptDeleted() + public function testScriptDeleted(): void { $script = Script::factory()->create(); $script->delete(); @@ -505,7 +505,7 @@ public function testScriptDeleted() /** * This test Script Duplicated */ - public function testScriptDuplicated() + public function testScriptDuplicated(): void { $script = Script::factory()->create(); $changes = $script->getChanges(); @@ -517,7 +517,7 @@ public function testScriptDuplicated() /** * This test Script Updated */ - public function testScriptUpdated() + public function testScriptUpdated(): void { $script = Script::factory()->create(); $original = array_intersect_key($script->getOriginal(), $script->getDirty()); @@ -532,7 +532,7 @@ public function testScriptUpdated() /** * This test Script Executor Created */ - public function testScriptExecutorCreated() + public function testScriptExecutorCreated(): void { $fields = [ 'id' => 999, @@ -550,7 +550,7 @@ public function testScriptExecutorCreated() /** * This test Script Executor Deleted */ - public function testScriptExecutorDeleted() + public function testScriptExecutorDeleted(): void { $fields = [ 'id' => 99999, @@ -568,7 +568,7 @@ public function testScriptExecutorDeleted() /** * This test Script Executor Updated */ - public function testScriptExecutorUpdated() + public function testScriptExecutorUpdated(): void { $fields = [ 'id' => 9999, @@ -588,7 +588,7 @@ public function testScriptExecutorUpdated() /** * This test Signal Created */ - public function testSignalCreated() + public function testSignalCreated(): void { $this->addGlobalSignalProcess(); $fields = [ @@ -606,7 +606,7 @@ public function testSignalCreated() /** * This test Signal Deleted */ - public function testSignalDeleted() + public function testSignalDeleted(): void { $this->addGlobalSignalProcess(); $fields = [ @@ -625,7 +625,7 @@ public function testSignalDeleted() /** * This test Signal Updated */ - public function testSignalUpdated() + public function testSignalUpdated(): void { $this->addGlobalSignalProcess(); $oldSignal = [ @@ -662,7 +662,7 @@ public function testSignalUpdated() /** * This test Template Created */ - public function testTemplateCreated() + public function testTemplateCreated(): void { $this->addGlobalSignalProcess(); $fields = [ @@ -678,7 +678,7 @@ public function testTemplateCreated() /** * This test Template Deleted */ - public function testTemplateDeleted() + public function testTemplateDeleted(): void { $this->addGlobalSignalProcess(); $templates = ProcessTemplates::factory()->create(); @@ -690,7 +690,7 @@ public function testTemplateDeleted() /** * This test Template Published */ - public function testTemplatePublished() + public function testTemplatePublished(): void { $this->addGlobalSignalProcess(); $fields = [ @@ -706,7 +706,7 @@ public function testTemplatePublished() /** * This test Template Updated */ - public function testTemplateUpdated() + public function testTemplateUpdated(): void { $this->addGlobalSignalProcess(); // When the template is a process @@ -726,7 +726,7 @@ public function testTemplateUpdated() /** * This test Token Created */ - public function testTokenCreated() + public function testTokenCreated(): void { $user = User::factory()->create([ 'status' => 'ACTIVE', @@ -741,7 +741,7 @@ public function testTokenCreated() /** * This test Token Deleted */ - public function testTokenDeleted() + public function testTokenDeleted(): void { $user = User::factory()->create([ 'status' => 'ACTIVE', @@ -756,7 +756,7 @@ public function testTokenDeleted() /** * This test User Created */ - public function testUserCreated() + public function testUserCreated(): void { // Create a user created $user = User::factory()->create([ @@ -770,7 +770,7 @@ public function testUserCreated() /** * This test User Deleted */ - public function testUserDeleted() + public function testUserDeleted(): void { // Create a user deleted $user = User::factory()->create([ @@ -785,7 +785,7 @@ public function testUserDeleted() /** * This test User Restored */ - public function testUserRestored() + public function testUserRestored(): void { // Create a user restored $user = User::factory()->create([ @@ -800,7 +800,7 @@ public function testUserRestored() /** * This test User Updated */ - public function testUserUpdated() + public function testUserUpdated(): void { // Create a user updated $user = User::factory()->create([ diff --git a/tests/Feature/Api/ServiceTaskExecutionTest.php b/tests/Feature/Api/ServiceTaskExecutionTest.php index 792499138a..76b803e4de 100644 --- a/tests/Feature/Api/ServiceTaskExecutionTest.php +++ b/tests/Feature/Api/ServiceTaskExecutionTest.php @@ -75,7 +75,7 @@ private function createTestProcess(array $data = []) /** * Execute a process with service task */ - public function testExecuteAProcess() + public function testExecuteAProcess(): void { //Start a process request $route = route('api.process_events.trigger', @@ -99,7 +99,7 @@ public function testExecuteAProcess() $this->assertEquals($request->data['pong'], $ping); } - public function testWithUserWithoutAuthorization() + public function testWithUserWithoutAuthorization(): void { // We'll test executing a process with someone that is not authenticated $url = route('api.process_events.trigger', diff --git a/tests/Feature/Api/ServiceTaskQueueTest.php b/tests/Feature/Api/ServiceTaskQueueTest.php index 71a8785e83..dcc3b7f1b8 100644 --- a/tests/Feature/Api/ServiceTaskQueueTest.php +++ b/tests/Feature/Api/ServiceTaskQueueTest.php @@ -22,7 +22,7 @@ class ServiceTaskQueueTest extends TestCase /** * Tests the ServiceTask is dispatched to the custom queue. */ - public function testCustomQueue() + public function testCustomQueue(): void { Bus::fake(); @@ -41,7 +41,7 @@ public function testCustomQueue() /** * Tests the ServiceTask is dispatched to the bpmn queue. */ - public function testDefaultQueue() + public function testDefaultQueue(): void { Bus::fake(); diff --git a/tests/Feature/Api/SettingAuthTest.php b/tests/Feature/Api/SettingAuthTest.php index 6f634e6700..30f0d64275 100644 --- a/tests/Feature/Api/SettingAuthTest.php +++ b/tests/Feature/Api/SettingAuthTest.php @@ -39,7 +39,7 @@ private function seedLDAPSettings() \Artisan::call('db:seed', ['--class' => LdapSeeder::class, '--force' => true]); } - public function testDefaultLdapSettings() + public function testDefaultLdapSettings(): void { $this->seedLDAPSettings(); @@ -72,7 +72,7 @@ public function testDefaultLdapSettings() $this->assertDatabaseCount('security_logs', 0); } - public function testUpdateLdapSettings() + public function testUpdateLdapSettings(): void { $this->seedLDAPSettings(); @@ -165,7 +165,7 @@ public function testUpdateLdapSettings() $this->assertDatabaseHas('security_logs', ['event' => 'SettingsUpdated', 'changes->setting_id' => $enabled['id']]); } - public function testDefaultSsoSettings() + public function testDefaultSsoSettings(): void { $response = $this->apiCall('GET', route('api.settings.index', ['group' => 'SSO', 'order_by' => 'name', 'order_direction' => 'ASC'])); $response->assertStatus(200); @@ -232,7 +232,7 @@ public function testDefaultSsoSettings() $this->assertDatabaseCount('security_logs', 0); } - public function testUpdateSsoSettings() + public function testUpdateSsoSettings(): void { \Artisan::call('db:seed', ['--class' => AuthSeeder::class, '--force' => true]); @@ -278,7 +278,7 @@ public function testUpdateSsoSettings() $this->assertDatabaseCount('security_logs', 4); } - public function testConfigCacheUpdatedAfterSettingEdit() + public function testConfigCacheUpdatedAfterSettingEdit(): void { $setting = Setting::factory()->create([ 'name' => 'Allow Standard Login', diff --git a/tests/Feature/Api/SettingLogInOptionsTest.php b/tests/Feature/Api/SettingLogInOptionsTest.php index b293fc3d40..809990fb56 100644 --- a/tests/Feature/Api/SettingLogInOptionsTest.php +++ b/tests/Feature/Api/SettingLogInOptionsTest.php @@ -16,7 +16,7 @@ private function upgrade() $upgrade->up(); } - public function testDefaultLogInOptionsSettings() + public function testDefaultLogInOptionsSettings(): void { $this->upgrade(); @@ -37,7 +37,7 @@ public function testDefaultLogInOptionsSettings() $this->assertDatabaseCount('security_logs', 0); } - public function testUpdatePasswordSetByUserSetting() + public function testUpdatePasswordSetByUserSetting(): void { $this->upgrade(); @@ -57,7 +57,7 @@ public function testUpdatePasswordSetByUserSetting() $this->assertDatabaseHas('security_logs', ['event' => 'SettingsUpdated', 'changes->setting_id' => $passwordSetByUser['id']]); } - public function testUpdateNumericCharactersSetting() + public function testUpdateNumericCharactersSetting(): void { $this->upgrade(); @@ -77,7 +77,7 @@ public function testUpdateNumericCharactersSetting() $this->assertDatabaseHas('security_logs', ['event' => 'SettingsUpdated', 'changes->setting_id' => $numericCharacters['id']]); } - public function testUpdateUppercaseCharactersSetting() + public function testUpdateUppercaseCharactersSetting(): void { $this->upgrade(); @@ -97,7 +97,7 @@ public function testUpdateUppercaseCharactersSetting() $this->assertDatabaseHas('security_logs', ['event' => 'SettingsUpdated', 'changes->setting_id' => $uppercaseCharacters['id']]); } - public function testUpdateSpecialCharactersSetting() + public function testUpdateSpecialCharactersSetting(): void { $this->upgrade(); @@ -117,7 +117,7 @@ public function testUpdateSpecialCharactersSetting() $this->assertDatabaseHas('security_logs', ['event' => 'SettingsUpdated', 'changes->setting_id' => $specialCharacters['id']]); } - public function testUpdateMaximumLengthSetting() + public function testUpdateMaximumLengthSetting(): void { $this->upgrade(); @@ -137,7 +137,7 @@ public function testUpdateMaximumLengthSetting() $this->assertDatabaseHas('security_logs', ['event' => 'SettingsUpdated', 'changes->setting_id' => $maximumLength['id']]); } - public function testUpdateMinimumLengthSetting() + public function testUpdateMinimumLengthSetting(): void { $this->upgrade(); @@ -157,7 +157,7 @@ public function testUpdateMinimumLengthSetting() $this->assertDatabaseHas('security_logs', ['event' => 'SettingsUpdated', 'changes->setting_id' => $minimumLength['id']]); } - public function testUpdatePasswordExpirationSetting() + public function testUpdatePasswordExpirationSetting(): void { $this->upgrade(); @@ -177,7 +177,7 @@ public function testUpdatePasswordExpirationSetting() $this->assertDatabaseHas('security_logs', ['event' => 'SettingsUpdated', 'changes->setting_id' => $passwordExpiration['id']]); } - public function testUpdateLoginFailedSetting() + public function testUpdateLoginFailedSetting(): void { $this->upgrade(); @@ -197,7 +197,7 @@ public function testUpdateLoginFailedSetting() $this->assertDatabaseHas('security_logs', ['event' => 'SettingsUpdated', 'changes->setting_id' => $loginFailed['id']]); } - public function testUpdateRequireTwoStepAuthenticationSetting() + public function testUpdateRequireTwoStepAuthenticationSetting(): void { $this->upgrade(); @@ -217,7 +217,7 @@ public function testUpdateRequireTwoStepAuthenticationSetting() $this->assertDatabaseHas('security_logs', ['event' => 'SettingsUpdated', 'changes->setting_id' => $requireTwoStepAuthentication['id']]); } - public function testUpdateTwoStepAuthenticationMethodSetting() + public function testUpdateTwoStepAuthenticationMethodSetting(): void { $this->upgrade(); diff --git a/tests/Feature/Api/SettingSessionControlTest.php b/tests/Feature/Api/SettingSessionControlTest.php index 1a7b51f7d6..65bb626932 100644 --- a/tests/Feature/Api/SettingSessionControlTest.php +++ b/tests/Feature/Api/SettingSessionControlTest.php @@ -16,7 +16,7 @@ private function upgrade() $upgrade->up(); } - public function testDefaultSessionControlSettings() + public function testDefaultSessionControlSettings(): void { $this->upgrade(); @@ -31,7 +31,7 @@ public function testDefaultSessionControlSettings() $this->assertDatabaseCount('security_logs', 0); } - public function testUpdateIPRestrictionSetting() + public function testUpdateIPRestrictionSetting(): void { $this->upgrade(); @@ -60,7 +60,7 @@ public function testUpdateIPRestrictionSetting() $this->assertDatabaseHas('security_logs', ['event' => 'SettingsUpdated', 'changes->setting_id' => $ipRestriction['id']]); } - public function testUpdateDeviceRestrictionSetting() + public function testUpdateDeviceRestrictionSetting(): void { $this->upgrade(); @@ -89,7 +89,7 @@ public function testUpdateDeviceRestrictionSetting() $this->assertDatabaseHas('security_logs', ['event' => 'SettingsUpdated', 'changes->setting_id' => $deviceRestriction['id']]); } - public function testUpdateSessionLifetimeSetting() + public function testUpdateSessionLifetimeSetting(): void { $this->upgrade(); diff --git a/tests/Feature/Api/SettingsTest.php b/tests/Feature/Api/SettingsTest.php index 73534fb5cb..9281582be5 100644 --- a/tests/Feature/Api/SettingsTest.php +++ b/tests/Feature/Api/SettingsTest.php @@ -37,7 +37,7 @@ class SettingsTest extends TestCase /** * Test get settings menus */ - public function testGetSettingsMenus() + public function testGetSettingsMenus(): void { SettingsMenus::query()->delete(); // Create @@ -63,7 +63,7 @@ public function testGetSettingsMenus() /** * Test get settings menus group related */ - public function testGetSettingsMenusGroup() + public function testGetSettingsMenusGroup(): void { // Get setting menus $menus = SettingsMenus::factory()->create(); @@ -85,7 +85,7 @@ public function testGetSettingsMenusGroup() /** * Test update settings for specific group */ - public function testUpdateSettingsForSpecificGroup() + public function testUpdateSettingsForSpecificGroup(): void { $menus = SettingsMenus::factory()->create(); $group = 'Custom group'; @@ -106,7 +106,7 @@ public function testUpdateSettingsForSpecificGroup() /** * Test extended properties variable valid name validation */ - public function testUpdateExtendedPropertiesWithValidVariableName() + public function testUpdateExtendedPropertiesWithValidVariableName(): void { $this->markTestSkipped('Not using validation in backend yet, because there are some config data that should not be validated as LDAP config...'); @@ -134,7 +134,7 @@ public function testUpdateExtendedPropertiesWithValidVariableName() /** * Test extended properties variable invalid name validation */ - public function testUpdateExtendedPropertiesWithInvalidVariableName() + public function testUpdateExtendedPropertiesWithInvalidVariableName(): void { $this->markTestSkipped('Not using validation in backend yet, because there are some config data that should not be validated as LDAP config...'); @@ -175,7 +175,7 @@ public function testUpdateExtendedPropertiesWithInvalidVariableName() $this->assertDatabaseMissing('settings', ['config' => '{"1myVar":"This is my variable 1","myVar space":"This is my variable 2"}']); } - public function test_it_can_create_a_setting() + public function test_it_can_create_a_setting(): void { $menu = SettingsMenus::create([ 'menu_group' => 'Log-In & Auth', @@ -196,7 +196,7 @@ public function test_it_can_create_a_setting() $response->assertStatus(201); } - public function test_it_returns_error_for_duplicate_entry() + public function test_it_returns_error_for_duplicate_entry(): void { $menu = SettingsMenus::create([ 'menu_group' => 'Log-In & Auth', diff --git a/tests/Feature/Api/SignalEventTest.php b/tests/Feature/Api/SignalEventTest.php index c48ca00ddb..2ad89c7340 100644 --- a/tests/Feature/Api/SignalEventTest.php +++ b/tests/Feature/Api/SignalEventTest.php @@ -16,7 +16,7 @@ class SignalEventTest extends TestCase { - public function testSignalEventMustTriggeredWhenProcessActive() + public function testSignalEventMustTriggeredWhenProcessActive(): void { Bus::fake([ RefreshArtisanCaches::class, @@ -49,7 +49,7 @@ public function testSignalEventMustTriggeredWhenProcessActive() Bus::assertDispatched(CatchSignalEventProcess::class); } - public function testSignalEventMustNotTriggeredWhenProcessInactive() + public function testSignalEventMustNotTriggeredWhenProcessInactive(): void { Bus::fake([ RefreshArtisanCaches::class, @@ -95,7 +95,7 @@ public function testSignalEventMustNotTriggeredWhenProcessInactive() * if payload={var1:1, var2:2} and request data {req1:'a', req2:'b'} * request data should be {req1:'a', req2:'b'... request_var:{var1:1, var2:2}} */ - public function testSignalStarEventWithPayloadToRequestVariable() + public function testSignalStarEventWithPayloadToRequestVariable(): void { // The process used for the tests ImportProcess::dispatchSync( @@ -119,7 +119,7 @@ public function testSignalStarEventWithPayloadToRequestVariable() * if payload={var1:1, var2:2} and request data {req1:'a', req2:'b'} * request data should be {req1:'a', req2:'b'... var1:1, var2:2} */ - public function testSignalStarEventWithPayloadToRequestData() + public function testSignalStarEventWithPayloadToRequestData(): void { // The process used for the tests ImportProcess::dispatchSync( diff --git a/tests/Feature/Api/SignalPermissionsTest.php b/tests/Feature/Api/SignalPermissionsTest.php index 2e8547063c..2a51465a76 100644 --- a/tests/Feature/Api/SignalPermissionsTest.php +++ b/tests/Feature/Api/SignalPermissionsTest.php @@ -44,7 +44,7 @@ private function givePermission($permission) $this->flushSession(); } - public function testViewPermission() + public function testViewPermission(): void { $this->createUser(); $indexRoute = route('api.signals.index'); @@ -56,7 +56,7 @@ public function testViewPermission() $this->assertSuccess('GET', $showRoute); } - public function testCreatePermission() + public function testCreatePermission(): void { $this->createUser(); $storeRoute = route('api.signals.store'); @@ -69,7 +69,7 @@ public function testCreatePermission() $this->assertSuccess('POST', $storeRoute, $data); } - public function testEditPermission() + public function testEditPermission(): void { $this->createUser(); $this->givePermission('create-signals'); @@ -87,7 +87,7 @@ public function testEditPermission() $this->assertSuccess('PUT', $updateRoute, $data); } - public function testDeletePermission() + public function testDeletePermission(): void { $this->createUser(); $this->givePermission('create-signals'); @@ -109,7 +109,7 @@ public function testDeletePermission() $response->assertStatus(201); } - public function testWebViewPermission() + public function testWebViewPermission(): void { $this->createUser(); $indexRoute = route('signals.index'); @@ -120,7 +120,7 @@ public function testWebViewPermission() $response->assertStatus(200); } - public function testWebEditPermission() + public function testWebEditPermission(): void { $storeRoute = route('api.signals.store'); $data = [ diff --git a/tests/Feature/Api/SignalTest.php b/tests/Feature/Api/SignalTest.php index 47721b2c03..7988e098c6 100644 --- a/tests/Feature/Api/SignalTest.php +++ b/tests/Feature/Api/SignalTest.php @@ -65,7 +65,7 @@ public function createSignal($count = 1) /** * Get a list of Signals on first page. */ - public function testListSignalOnFirstPage() + public function testListSignalOnFirstPage(): void { // Create some signals $countSignals = 20; @@ -98,7 +98,7 @@ public function testListSignalOnFirstPage() /** * Get a list of Signals on second page. */ - public function testListSignalOnSecondPage() + public function testListSignalOnSecondPage(): void { // Create some signals $countSignals = 20; @@ -131,7 +131,7 @@ public function testListSignalOnSecondPage() /** * Get a list of Signals first page with ten records should return one total_pages. */ - public function testListSignalOnPageWithTenRecordsShouldReturnOneTotalPages() + public function testListSignalOnPageWithTenRecordsShouldReturnOneTotalPages(): void { // Create some signals $countSignals = 10; @@ -164,7 +164,7 @@ public function testListSignalOnPageWithTenRecordsShouldReturnOneTotalPages() /** * Delete signal that is not present in a process or a system process. */ - public function testDeleteSignal() + public function testDeleteSignal(): void { // Create signal $signal = $this->createSignal()[0]; @@ -187,7 +187,7 @@ public function testDeleteSignal() /** * Delete signal that is present in a process or a system process should return a error. */ - public function testDeleteSignalPresentInProcessShouldNotBeDeleted() + public function testDeleteSignalPresentInProcessShouldNotBeDeleted(): void { // Create signal $signal = $this->createSignal()[0]; @@ -222,7 +222,7 @@ public function testDeleteSignalPresentInProcessShouldNotBeDeleted() /** * Update signal that is not a system signal. */ - public function testUpdateNotSystemSignal() + public function testUpdateNotSystemSignal(): void { // Create signal $signal = $this->createSignal()[0]; @@ -250,7 +250,7 @@ public function testUpdateNotSystemSignal() /** * Update signal that is a system signal should not be modified. */ - public function testUpdateSystemSignalShouldNotBeModified() + public function testUpdateSystemSignalShouldNotBeModified(): void { // Create signal $signal = $this->createSignal()[0]; diff --git a/tests/Feature/Api/TaskActionByEmailTest.php b/tests/Feature/Api/TaskActionByEmailTest.php index ef5431f45c..68d7de227e 100644 --- a/tests/Feature/Api/TaskActionByEmailTest.php +++ b/tests/Feature/Api/TaskActionByEmailTest.php @@ -25,7 +25,7 @@ private function loadTestProcessUserAssignment($file) /** * Execute a process with an empty Action by Email */ - public function testProcessWithEmptyActionByEmail() + public function testProcessWithEmptyActionByEmail(): void { $this->loadTestProcessUserAssignment(file_get_contents(__DIR__ . '/processes/TaskWithActionByEmailEmpty.bpmn')); @@ -42,7 +42,7 @@ public function testProcessWithEmptyActionByEmail() /** * Execute a process with an Action by Email */ - public function testProcessWithActionByEmail() + public function testProcessWithActionByEmail(): void { $this->loadTestProcessUserAssignment(file_get_contents(__DIR__ . '/processes/TaskWithActionByEmail.bpmn')); diff --git a/tests/Feature/Api/TaskAssignmentByVariableTest.php b/tests/Feature/Api/TaskAssignmentByVariableTest.php index 1d62397894..38271107ee 100644 --- a/tests/Feature/Api/TaskAssignmentByVariableTest.php +++ b/tests/Feature/Api/TaskAssignmentByVariableTest.php @@ -19,7 +19,7 @@ class TaskAssignmentByVariableTest extends TestCase { use RequestHelper; - public function testProcessVariableAssignmentWithSimpleIds() + public function testProcessVariableAssignmentWithSimpleIds(): void { // Create users of a group and a user without group $user = User::factory()->create(['status'=>'ACTIVE']); @@ -39,7 +39,7 @@ public function testProcessVariableAssignmentWithSimpleIds() $this->assertEquals($group->users->first()->id, $task->user_id); } - public function testProcessVariableAssignmentWithArrayOfIds() + public function testProcessVariableAssignmentWithArrayOfIds(): void { // Create users of a group and a user without group $users = User::factory(2)->create(['status'=>'ACTIVE']); @@ -78,7 +78,7 @@ public function testProcessVariableAssignmentWithArrayOfIds() $this->assertEquals($group1->users->first()->id, $task->user_id); } - public function testProcessVariableAssignmentWithInvalidUsers() + public function testProcessVariableAssignmentWithInvalidUsers(): void { // Create users of a group and a user without group $users = User::factory(2)->create(['status'=>'INACTIVE']); @@ -99,7 +99,7 @@ public function testProcessVariableAssignmentWithInvalidUsers() $this->assertEquals(0, $assignedTasks); } - public function testSelfServiceWithProcessVariableAssignment() + public function testSelfServiceWithProcessVariableAssignment(): void { $user = User::factory()->create(['status'=>'ACTIVE']); $group = $this->createGroup(5); @@ -116,7 +116,7 @@ public function testSelfServiceWithProcessVariableAssignment() $this->assertEquals(['users' => [$user->id], 'groups' =>[$group->id]], $task->self_service_groups); } - public function testSelfServiceClaims() + public function testSelfServiceClaims(): void { // Create users of a group and a user without group $user = User::factory()->create(['status'=>'ACTIVE']); @@ -167,7 +167,7 @@ public function testSelfServiceClaims() $response->assertStatus(403); } - public function testSelfServiceWithUserGroupAssignment() + public function testSelfServiceWithUserGroupAssignment(): void { // Create users of a group and a user without group $users = User::factory()->count(3)->create(['status'=>'ACTIVE']); @@ -185,7 +185,7 @@ public function testSelfServiceWithUserGroupAssignment() $this->assertEquals(['users' => $users->pluck('id')->toArray(), 'groups' =>[$group->id]], $task->self_service_groups); } - public function testSelfServiceWithExpressionAssignment() + public function testSelfServiceWithExpressionAssignment(): void { // Create users of a group and a user without group $users = User::factory()->count(5)->create(['status'=>'ACTIVE']); @@ -220,7 +220,7 @@ public function testSelfServiceWithExpressionAssignment() } // tests assignment using object values (FOUR-8708) - public function testProcessVariableAssignmentWithObjectVariable() + public function testProcessVariableAssignmentWithObjectVariable(): void { // test with variables with simple ids $user = User::factory()->create(['status'=>'ACTIVE']); @@ -250,7 +250,7 @@ public function testProcessVariableAssignmentWithObjectVariable() $this->assertEquals($users->first()->id, $task->user_id); } - public function testProcessVariableAssignmentWithLiteralId() + public function testProcessVariableAssignmentWithLiteralId(): void { // Create users of a group and a user without group $user = User::factory()->create(['status'=>'ACTIVE']); diff --git a/tests/Feature/Api/TaskAssignmentExecutionTest.php b/tests/Feature/Api/TaskAssignmentExecutionTest.php index afa8bcbe60..85350cacb8 100644 --- a/tests/Feature/Api/TaskAssignmentExecutionTest.php +++ b/tests/Feature/Api/TaskAssignmentExecutionTest.php @@ -74,7 +74,7 @@ private function loadTestProcessUserAssignment() /** * Execute a process with single user assignment */ - public function testSingleUserAssignment() + public function testSingleUserAssignment(): void { $this->loadTestProcessUserAssignment(); @@ -102,7 +102,7 @@ public function testSingleUserAssignment() $this->assertEquals($request->tokens[1]->user_id, $this->assigned->id); } - public function testUserByIdAssignment() + public function testUserByIdAssignment(): void { $user = User::factory()->create(); @@ -141,7 +141,7 @@ public function testUserByIdAssignment() $this->assertFalse(array_key_exists('errors', $response)); } - public function testDueDate() + public function testDueDate(): void { $process = Process::factory()->create([ 'bpmn' => file_get_contents(__DIR__ . '/processes/TaskConfiguredCustomDueIn.bpmn'), @@ -164,7 +164,7 @@ public function testDueDate() $this->assertFalse($task->due_at->greaterThanOrEqualTo($expectedDueDate)); } - public function testSelfServeAssignment() + public function testSelfServeAssignment(): void { $users = User::factory()->count(20)->create(['status'=>'ACTIVE']); $userWithNoGroup = User::factory()->create(['status'=>'ACTIVE']); @@ -242,7 +242,7 @@ public function testSelfServeAssignment() $response->assertStatus(200); } - public function testSelfServeUserPersistence() + public function testSelfServeUserPersistence(): void { $users = User::factory()->count(20)->create(['status'=>'ACTIVE']); $userWithNoGroup = User::factory()->create(['status'=>'ACTIVE']); @@ -311,7 +311,7 @@ public function testSelfServeUserPersistence() /** * Execute a process with Process Manager assignment */ - public function testProcessManagerAssignment() + public function testProcessManagerAssignment(): void { $manager = User::factory()->create(['status'=>'ACTIVE']); @@ -350,7 +350,7 @@ public function testProcessManagerAssignment() /** * Execute a process with Process Manager assignment, but without a Manager defined */ - public function testProcessManagerAssignmentWithoutAManagerAssociated() + public function testProcessManagerAssignmentWithoutAManagerAssociated(): void { // Create a new process $this->process = Process::factory()->create(); diff --git a/tests/Feature/Api/TaskAssignmentPreviousOwnerTest.php b/tests/Feature/Api/TaskAssignmentPreviousOwnerTest.php index ea87216196..6e933fe0ca 100644 --- a/tests/Feature/Api/TaskAssignmentPreviousOwnerTest.php +++ b/tests/Feature/Api/TaskAssignmentPreviousOwnerTest.php @@ -25,7 +25,7 @@ class TaskAssignmentPreviousOwnerTest extends TestCase protected $task; /** - * @var \ProcessMaker\Models\User + * @var User */ protected $assigned; @@ -69,7 +69,7 @@ private function loadTestProcessPreviousUserAssignment() /** * Execute a process with single user assignment */ - public function testSingleUserAssignment() + public function testSingleUserAssignment(): void { $this->loadTestProcessPreviousUserAssignment(); @@ -109,10 +109,10 @@ public function testSingleUserAssignment() /** * Complete task * - * @param \ProcessMaker\Models\ProcessRequestToken $task + * @param ProcessRequestToken $task * @param array $data * - * @return \ProcessMaker\Models\ProcessRequestToken + * @return ProcessRequestToken */ private function completeTask(ProcessRequestToken $task, $data = []) { diff --git a/tests/Feature/Api/TaskAssignmentTest.php b/tests/Feature/Api/TaskAssignmentTest.php index 58f2ec7f3e..7d1141c0d2 100644 --- a/tests/Feature/Api/TaskAssignmentTest.php +++ b/tests/Feature/Api/TaskAssignmentTest.php @@ -31,7 +31,7 @@ class TaskAssignmentTest extends TestCase /** * Test to verify the parameters that are required to create an assignment */ - public function testNotCreatedForParameterRequired() + public function testNotCreatedForParameterRequired(): void { //Post should have the parameter required $response = $this->apiCall('POST', self::API_TEST_URL, []); @@ -44,7 +44,7 @@ public function testNotCreatedForParameterRequired() /** * Create new task assignment type user successfully */ - public function testCreateTaskAssignmentUser() + public function testCreateTaskAssignmentUser(): void { $process = Process::factory()->create(); $task_uid = Faker::create()->uuid; @@ -71,7 +71,7 @@ public function testCreateTaskAssignmentUser() /** * Create new task assignment type Group successfully */ - public function testCreateGroupMembershipForGroup() + public function testCreateGroupMembershipForGroup(): void { $process = Process::factory()->create(); $task_uid = Faker::create()->uuid; @@ -98,7 +98,7 @@ public function testCreateGroupMembershipForGroup() /** * Update task assignment successfully */ - public function testUpdateTaskAssignment() + public function testUpdateTaskAssignment(): void { // Create an task assignment $processTaskAssignment = ProcessTaskAssignment::factory()->create(); @@ -133,7 +133,7 @@ public function testUpdateTaskAssignment() /** * Invalid user assignment is reassigned to the process manager */ - public function testInvalidUserAssignmentReassignToProcessManager() + public function testInvalidUserAssignmentReassignToProcessManager(): void { $process = Process::factory()->create([ 'status' => 'ACTIVE', @@ -148,7 +148,7 @@ public function testInvalidUserAssignmentReassignToProcessManager() /** * Invalid group assignment (empty group) is catch and reassigned to the process manager */ - public function testEmptyGroupAssignmentReassignToProcessManager() + public function testEmptyGroupAssignmentReassignToProcessManager(): void { $process = Process::factory()->create([ 'status' => 'ACTIVE', @@ -167,7 +167,7 @@ public function testEmptyGroupAssignmentReassignToProcessManager() /** * Invalid group assignment (group does not exists) is catch and reassigned to the process manager */ - public function testInvalidGroupAssignmentReassignToProcessManager() + public function testInvalidGroupAssignmentReassignToProcessManager(): void { $process = Process::factory()->create([ 'status' => 'ACTIVE', @@ -182,7 +182,7 @@ public function testInvalidGroupAssignmentReassignToProcessManager() /** * Invalid previous users assignment is catch and reassigned to the process manager */ - public function testInvalidPreviousUsersAssignmentReassignToProcessManager() + public function testInvalidPreviousUsersAssignmentReassignToProcessManager(): void { $process = Process::factory()->create([ 'status' => 'ACTIVE', @@ -197,7 +197,7 @@ public function testInvalidPreviousUsersAssignmentReassignToProcessManager() /** * Invalid user by ID assignment is catch and reassigned to the process manager */ - public function testInvalidUserByIDAssignmentReassignToProcessManager() + public function testInvalidUserByIDAssignmentReassignToProcessManager(): void { $process = Process::factory()->create([ 'status' => 'ACTIVE', diff --git a/tests/Feature/Api/TaskControllerTest.php b/tests/Feature/Api/TaskControllerTest.php index a545789a58..1689b11522 100644 --- a/tests/Feature/Api/TaskControllerTest.php +++ b/tests/Feature/Api/TaskControllerTest.php @@ -30,7 +30,7 @@ class TaskControllerTest extends TestCase * * @return void */ - public function testIndexCaseRequiresCaseNumber() + public function testIndexCaseRequiresCaseNumber(): void { // Simulate an authenticated user $user = User::factory()->create(); @@ -49,7 +49,7 @@ public function testIndexCaseRequiresCaseNumber() * * @return void */ - public function testIndexCaseReturnsActiveTasksForCaseNumberPagination() + public function testIndexCaseReturnsActiveTasksForCaseNumberPagination(): void { // Simulate an authenticated user $user = User::factory()->create(); @@ -93,7 +93,7 @@ public function testIndexCaseReturnsActiveTasksForCaseNumberPagination() * * @return void */ - public function testIndexCaseReturnsInactiveTasksForCaseNumber() + public function testIndexCaseReturnsInactiveTasksForCaseNumber(): void { // Simulate an authenticated user $user = User::factory()->create(); @@ -125,7 +125,7 @@ public function testIndexCaseReturnsInactiveTasksForCaseNumber() * * @return void */ - public function testIndexCaseReturnsInactiveTasksForCaseNumberPagination() + public function testIndexCaseReturnsInactiveTasksForCaseNumberPagination(): void { // Simulate an authenticated user $user = User::factory()->create(); @@ -169,7 +169,7 @@ public function testIndexCaseReturnsInactiveTasksForCaseNumberPagination() * * @return void */ - public function testIndexCaseReturnsWithData() + public function testIndexCaseReturnsWithData(): void { // Simulate an authenticated user $user = User::factory()->create(); @@ -201,7 +201,7 @@ public function testIndexCaseReturnsWithData() * * @return void */ - public function testTasksByCaseReturnsCorrectData() + public function testTasksByCaseReturnsCorrectData(): void { // Simulate an authenticated user $user = User::factory()->create(); @@ -249,15 +249,15 @@ public function testTasksByCaseReturnsCorrectData() $this->assertEquals($data2['form_text_area_1'], $responseData[1]['taskData']['form_text_area_1']); } - public function testShowTaskIncludesNewProperty() + public function testShowTaskIncludesNewProperty(): void { $user = User::factory()->create(); $this->actingAs($user); - $comments = "This is a comment"; + $comments = 'This is a comment'; $task = ProcessRequestToken::factory()->create([ - "comments" => $comments + 'comments' => $comments, ]); $this->assertEquals($comments, $task->comments); diff --git a/tests/Feature/Api/TaskLockAssignmentTest.php b/tests/Feature/Api/TaskLockAssignmentTest.php index c312e5c3aa..8401e19a56 100644 --- a/tests/Feature/Api/TaskLockAssignmentTest.php +++ b/tests/Feature/Api/TaskLockAssignmentTest.php @@ -17,12 +17,12 @@ class TaskLockAssignmentTest extends TestCase use RequestHelper; /** - * @var \ProcessMaker\Models\User + * @var User */ protected $user1; /** - * @var \ProcessMaker\Models\User + * @var User */ protected $user2; @@ -63,7 +63,7 @@ private function loadProcess($processFileName) * Validates that when the assignmentLock attribute is set to true, when the flow returns to the task * the user that was assigned to the task the first time, is assigned again. */ - public function testWithLockAssignment() + public function testWithLockAssignment(): void { $this->loadProcess('LockAssignment.bpmn'); @@ -113,7 +113,7 @@ public function testWithLockAssignment() * * @throws \Throwable */ - public function testWithNoLockAssignment() + public function testWithNoLockAssignment(): void { $this->loadProcess('NoLockAssignment.bpmn'); @@ -160,10 +160,10 @@ public function testWithNoLockAssignment() /** * Complete task * - * @param \ProcessMaker\Models\ProcessRequestToken $task + * @param ProcessRequestToken $task * @param array $data * - * @return \ProcessMaker\Models\ProcessRequestToken + * @return ProcessRequestToken */ private function completeTask(ProcessRequestToken $task, $data = []) { diff --git a/tests/Feature/Api/TasksTest.php b/tests/Feature/Api/TasksTest.php index 573b705d63..d3339190ca 100644 --- a/tests/Feature/Api/TasksTest.php +++ b/tests/Feature/Api/TasksTest.php @@ -61,7 +61,7 @@ class TasksTest extends TestCase /** * Test to get the list of tokens */ - public function testGetListOfTasks() + public function testGetListOfTasks(): void { $request = ProcessRequest::factory()->create(); // Create some tokens @@ -80,7 +80,7 @@ public function testGetListOfTasks() /** * Test to get the list of overdue tasks. */ - public function testGetListOfOverdueTasks() + public function testGetListOfOverdueTasks(): void { $user = User::factory()->create(['is_administrator' => true]); $request = ProcessRequest::factory()->create(); @@ -125,7 +125,7 @@ public function testGetListOfOverdueTasks() /** * You only see tasks that belong to you if you are not admin */ - public function testGetListAssignedTasks() + public function testGetListAssignedTasks(): void { $user_1 = User::factory()->create(); $user_2 = User::factory()->create(); @@ -156,7 +156,7 @@ public function testGetListAssignedTasks() * Return all tasks if we are only requesting closed tasks and if * the user can view the request. */ - public function testGetListClosedTasks() + public function testGetListClosedTasks(): void { $this->initializePermissions(); @@ -192,7 +192,7 @@ public function testGetListClosedTasks() /** * You only see non system type tasks. */ - public function testGetListNonSystemTasks() + public function testGetListNonSystemTasks(): void { $user_1 = User::factory()->create(); $user_2 = User::factory()->create(); @@ -229,7 +229,7 @@ public function testGetListNonSystemTasks() /** * Test to verify that the list dates are in the correct format (yyyy-mm-dd H:i+GMT) */ - public function testTaskListDates() + public function testTaskListDates(): void { $name = 'testTaskTimezone'; $request = ProcessRequest::factory()->create(['name' => $name]); @@ -260,7 +260,7 @@ public function testTaskListDates() /** * Test the filtering getting active tokens */ - public function testFilteringGetActiveTasks() + public function testFilteringGetActiveTasks(): void { $request = ProcessRequest::factory()->create(); // Create some tokens @@ -285,7 +285,7 @@ public function testFilteringGetActiveTasks() /** * Test that we filter only for human tasks */ - public function testFilteringGetOnlyHumanTasks() + public function testFilteringGetOnlyHumanTasks(): void { $request = ProcessRequest::factory()->create(); @@ -322,7 +322,7 @@ public function testFilteringGetOnlyHumanTasks() /** * Test filtering with string vs number */ - public function testFilteringWithStringOrNumber() + public function testFilteringWithStringOrNumber(): void { $request = ProcessRequest::factory()->create(); $process = $request->process; @@ -355,7 +355,7 @@ public function testFilteringWithStringOrNumber() /** * Test list of tokens sorting by completed_at */ - public function testSorting() + public function testSorting(): void { $request = ProcessRequest::factory()->create(); // Create some tokens @@ -382,7 +382,7 @@ public function testSorting() $this->assertArraySubset(['completed_at' => null], $firstRow); } - public function testSortByRequestName() + public function testSortByRequestName(): void { // $request = ProcessRequest::factory()->create(); @@ -417,7 +417,7 @@ public function testSortByRequestName() /** * Test pagination of tokens list */ - public function testPagination() + public function testPagination(): void { $request = ProcessRequest::factory()->create(); // Number of tokens in the tables at the moment of starting the test @@ -453,7 +453,7 @@ public function testPagination() /** * Test show a token */ - public function testShowTask() + public function testShowTask(): void { $request = ProcessRequest::factory()->create(); // Create a new process without category @@ -473,7 +473,7 @@ public function testShowTask() /** * Test get a token including user child. */ - public function testShowTaskWithUser() + public function testShowTaskWithUser(): void { $request = ProcessRequest::factory()->create(); // Create a new process without category @@ -491,7 +491,7 @@ public function testShowTaskWithUser() $response->assertJsonStructure(['user' => ['id', 'email'], 'definition' => []]); } - public function testShowTaskWithParentRequest() + public function testShowTaskWithParentRequest(): void { $this->user = User::factory()->create(); $parent = ProcessRequest::factory()->create(); @@ -521,7 +521,7 @@ public function testShowTaskWithParentRequest() $this->assertTrue($json['can_view_parent_request']); } - public function testUpdateTask() + public function testUpdateTask(): void { $this->user = User::factory()->create(); // normal user $request = ProcessRequest::factory()->create(); @@ -537,7 +537,7 @@ public function testUpdateTask() $this->assertStatus(200, $response); } - public function testUpdateTaskRichText() + public function testUpdateTaskRichText(): void { // $this->user = User::factory()->create(); // normal user $screen = Screen::factory()->create([ @@ -578,7 +578,7 @@ public function testUpdateTaskRichText() $this->assertStatus(200, $response); } - public function testWithUserWithoutAuthorization() + public function testWithUserWithoutAuthorization(): void { // We'll test viewing a new task with someone that is not authenticated $request = ProcessRequest::factory()->create(); @@ -595,7 +595,7 @@ public function testWithUserWithoutAuthorization() $response->assertStatus(401); } - public function testSelfServeTasks() + public function testSelfServeTasks(): void { $this->user = $user = User::factory()->create(['status' => 'ACTIVE']); $otherUser = User::factory()->create(['status' => 'ACTIVE']); @@ -673,7 +673,7 @@ public function testSelfServeTasks() $this->assertEquals($expectedTaskIds, $actualIds); } - public function testSelfServeNotifications() + public function testSelfServeNotifications(): void { Notification::fake(); @@ -705,7 +705,7 @@ public function testSelfServeNotifications() Notification::assertSentTo([$this->user], ActivityActivatedNotification::class); } - public function testRollback() + public function testRollback(): void { $bpmn = file_get_contents(__DIR__ . '/../../Fixtures/rollback_test.bpmn'); $bpmn = str_replace('[task_user_id]', $this->user->id, $bpmn); @@ -751,7 +751,7 @@ public function testRollback() $this->assertEquals('COMPLETED', $request->refresh()->status); } - public function testAdvancedFilter() + public function testAdvancedFilter(): void { $hitProcess = Process::factory()->create(['name' => 'foo']); $missProcess = Process::factory()->create(['name' => 'bar']); @@ -782,7 +782,7 @@ public function testAdvancedFilter() $this->assertEquals($hitTask->id, $json['data'][0]['id']); } - public function testAdvancedFilterByProcessRequestName() + public function testAdvancedFilterByProcessRequestName(): void { $hitProcess = Process::factory()->create(['name' => 'foo']); $missProcess = Process::factory()->create(['name' => 'bar']); @@ -830,7 +830,7 @@ public function testAdvancedFilterByProcessRequestName() $this->assertEquals($hitTask->id, $json['data'][0]['id']); } - public function testGetScreenFields() + public function testGetScreenFields(): void { $this->be($this->user); @@ -875,7 +875,7 @@ public function testGetScreenFields() $this->assertEquals($expectedFields, $jsonResponse); } - public function testGetAllTaskTypes() + public function testGetAllTaskTypes(): void { $request = ProcessRequest::factory()->create(); diff --git a/tests/Feature/Api/TimerStartEventTest.php b/tests/Feature/Api/TimerStartEventTest.php index 88b483e7be..c898440ad5 100644 --- a/tests/Feature/Api/TimerStartEventTest.php +++ b/tests/Feature/Api/TimerStartEventTest.php @@ -63,7 +63,7 @@ public function executeTimerStartEvent() $this->process->getDefinitions(); } - public function testRegisterTimerEvents() + public function testRegisterTimerEvents(): void { ScheduledTask::get()->each->delete(); @@ -81,7 +81,7 @@ public function testRegisterTimerEvents() /** * Tests that the next date of a interval is calculated correctly */ - public function testNextDateNayraInterval() + public function testNextDateNayraInterval(): void { $manager = new TaskSchedulerManager(); @@ -182,7 +182,7 @@ public function testNextDateNayraInterval() } } - public function testScheduleStartEvent() + public function testScheduleStartEvent(): void { //Check triggerStartEvent should be called when process is ACTIVE WorkflowManager::shouldReceive('triggerStartEvent') @@ -204,7 +204,7 @@ public function testScheduleStartEvent() $manager->executeTimerStartEvent($task, json_decode($task->configuration)); } - public function testScheduleMustNotStartTimerEventWhenProcessInactive() + public function testScheduleMustNotStartTimerEventWhenProcessInactive(): void { //Check triggerStartEvent should NEVER be called when process is INACTIVE WorkflowManager::shouldReceive('triggerStartEvent') diff --git a/tests/Feature/Api/TranslationTest.php b/tests/Feature/Api/TranslationTest.php index ac2dca1e9a..c5cf9ad5c5 100644 --- a/tests/Feature/Api/TranslationTest.php +++ b/tests/Feature/Api/TranslationTest.php @@ -19,7 +19,7 @@ class TranslationTest extends TestCase { use RequestHelper; - public function testTranslationWithDefaultLanguage() + public function testTranslationWithDefaultLanguage(): void { $defaultAdminUser = User::factory()->create(['is_administrator' => true]); $portugueseUser = User::factory()->create(['is_administrator' => true, 'language' => 'pt']); @@ -132,7 +132,7 @@ public function testTranslationWithDefaultLanguage() $this->assertEquals('Edad', $ageItem['config']['label']); } - public function testTranslationWithLanguageThatDoesNotHaveTranslation() + public function testTranslationWithLanguageThatDoesNotHaveTranslation(): void { $defaultAdminUser = User::factory()->create(['is_administrator' => true]); $portugueseUser = User::factory()->create(['is_administrator' => true, 'language' => 'pt']); @@ -190,7 +190,7 @@ public function testTranslationWithLanguageThatDoesNotHaveTranslation() $this->assertEquals('Age', $ageItem['config']['label']); } - public function testTranslationWithLanguageThatHasTranslation() + public function testTranslationWithLanguageThatHasTranslation(): void { $spanishUser = User::factory()->create(['is_administrator' => true, 'language' => 'es']); $this->user = User::factory()->create(['is_administrator' => true, 'language' => 'es']); diff --git a/tests/Feature/Api/TriggerSignalInRequestTest.php b/tests/Feature/Api/TriggerSignalInRequestTest.php index b965928c40..c5a438980c 100644 --- a/tests/Feature/Api/TriggerSignalInRequestTest.php +++ b/tests/Feature/Api/TriggerSignalInRequestTest.php @@ -34,7 +34,7 @@ class TriggerSignalInRequestTest extends TestCase * Tests one process with boundary signal event and one with start signal event. * **/ - public function testScheduleStartEvent() + public function testScheduleStartEvent(): void { $process = $this->createProcess([ 'id' => 1, @@ -50,7 +50,7 @@ public function testScheduleStartEvent() $this->assertCount(2, $activeTokens); } - public function testBoundaryLoop() + public function testBoundaryLoop(): void { $import = (new ImportProcess( file_get_contents(base_path('tests/Fixtures/boundary_loop.json')) diff --git a/tests/Feature/Api/UserConfigurationTest.php b/tests/Feature/Api/UserConfigurationTest.php index 95fdce0acc..884cf8710f 100644 --- a/tests/Feature/Api/UserConfigurationTest.php +++ b/tests/Feature/Api/UserConfigurationTest.php @@ -22,7 +22,7 @@ class UserConfigurationTest extends TestCase /** * Test get deafult user configuration */ - public function testGetDefaultUserConfiguration() + public function testGetDefaultUserConfiguration(): void { // Call the api GET $response = $this->apiCall('GET', self::API_TEST_URL); @@ -39,7 +39,7 @@ public function testGetDefaultUserConfiguration() /** * Test store user configuration and get the new values */ - public function testStoreUserConfigurationAndGetNewValues() + public function testStoreUserConfigurationAndGetNewValues(): void { // Call the api PUT $values = [ @@ -83,7 +83,7 @@ public function testStoreUserConfigurationAndGetNewValues() /** * Test store user configuration with invalid values */ - public function testStoreUserConfigurationWithInvalidValues() + public function testStoreUserConfigurationWithInvalidValues(): void { // With no values $response = $this->apiCall('PUT', self::API_TEST_URL); diff --git a/tests/Feature/Api/UserTokensTest.php b/tests/Feature/Api/UserTokensTest.php index a34fa13652..c8151c24a2 100644 --- a/tests/Feature/Api/UserTokensTest.php +++ b/tests/Feature/Api/UserTokensTest.php @@ -21,7 +21,7 @@ public function setUpWithPersonalAccessClient() /** * Get a list of User tokens without query parameters. */ - public function testListTokensWithEmptyTokens() + public function testListTokensWithEmptyTokens(): void { $user = $this->user; $response = $this->apiCall('GET', '/users/' . $user->id . '/tokens'); @@ -36,7 +36,7 @@ public function testListTokensWithEmptyTokens() /** * Get a list of User tokens without query parameters for another user. */ - public function testListTokensWithEmptyTokensForOtherUser() + public function testListTokensWithEmptyTokensForOtherUser(): void { $user = User::factory()->create(); $response = $this->apiCall('GET', '/users/' . $user->id . '/tokens'); @@ -48,7 +48,7 @@ public function testListTokensWithEmptyTokensForOtherUser() $this->assertEquals(0, $response->json()['meta']['total']); } - public function testPermissionDeniedForUserWithoutViewPermissions() + public function testPermissionDeniedForUserWithoutViewPermissions(): void { $this->debug = false; $user = User::factory()->create(); @@ -63,7 +63,7 @@ public function testPermissionDeniedForUserWithoutViewPermissions() /** * Test validation failure */ - public function testTokenCreateValidationError() + public function testTokenCreateValidationError(): void { $user = $this->user; $response = $this->apiCall('POST', '/users/' . $user->id . '/tokens'); @@ -72,7 +72,7 @@ public function testTokenCreateValidationError() $response->assertStatus(422); } - public function testPermissionDeniedForUserWithoutEditPermissionsForCreatingToken() + public function testPermissionDeniedForUserWithoutEditPermissionsForCreatingToken(): void { $this->debug = false; $user = User::factory()->create(); @@ -87,7 +87,7 @@ public function testPermissionDeniedForUserWithoutEditPermissionsForCreatingToke /** * Test creation of a user token with a default expire of 1 year */ - public function testCreateTokenDefaultExpire() + public function testCreateTokenDefaultExpire(): void { $now = new Carbon(); $user = $this->user; @@ -108,7 +108,7 @@ public function testCreateTokenDefaultExpire() $this->assertTrue($checkDate->equalTo($expireDate)); } - public function testListingWithExistingToken() + public function testListingWithExistingToken(): void { $user = $this->user; $response = $this->apiCall('POST', '/users/' . $user->id . '/tokens', [ @@ -127,7 +127,7 @@ public function testListingWithExistingToken() $this->assertEquals(1, $response->json()['meta']['total']); } - public function testShowToken() + public function testShowToken(): void { $user = $this->user; $response = $this->apiCall('POST', '/users/' . $user->id . '/tokens', [ @@ -144,7 +144,7 @@ public function testShowToken() $response->assertStatus(200); } - public function testPermissionDeniedForUserWithoutViewPermissionsForViewingToken() + public function testPermissionDeniedForUserWithoutViewPermissionsForViewingToken(): void { $this->debug = false; @@ -170,7 +170,7 @@ public function testPermissionDeniedForUserWithoutViewPermissionsForViewingToken $response->assertStatus(403); } - public function testRevokeTokenForUser() + public function testRevokeTokenForUser(): void { $user = $this->user; $response = $this->apiCall('POST', '/users/' . $user->id . '/tokens', [ @@ -197,7 +197,7 @@ public function testRevokeTokenForUser() $this->assertEquals(0, $response->json()['meta']['total']); } - public function testPermissionDeniedForUserWithoutEditPermissionsForDeletingToken() + public function testPermissionDeniedForUserWithoutEditPermissionsForDeletingToken(): void { $this->debug = false; @@ -223,7 +223,7 @@ public function testPermissionDeniedForUserWithoutEditPermissionsForDeletingToke $response->assertStatus(403); } - public function test404WithRevokeOfUnknownToken() + public function test404WithRevokeOfUnknownToken(): void { $user = $this->user; $response = $this->apiCall('DELETE', '/users/' . $user->id . '/tokens/12345'); diff --git a/tests/Feature/Api/UsersTest.php b/tests/Feature/Api/UsersTest.php index c1dacd9e18..5586e344e8 100644 --- a/tests/Feature/Api/UsersTest.php +++ b/tests/Feature/Api/UsersTest.php @@ -83,7 +83,7 @@ protected function withUserSetup() /** * Test verify the parameter required for create form */ - public function testNotCreatedForParameterRequired() + public function testNotCreatedForParameterRequired(): void { // Post should have the parameter required $response = $this->apiCall('POST', self::API_TEST_URL, []); @@ -96,7 +96,7 @@ public function testNotCreatedForParameterRequired() /** * Create new user successfully */ - public function testCreateUser() + public function testCreateUser(): void { // Post title duplicated $faker = Faker::create(); @@ -117,7 +117,7 @@ public function testCreateUser() /** * Create new user and the email task notification needs to enable per default */ - public function testFlagEmailTaskNotification() + public function testFlagEmailTaskNotification(): void { $faker = Faker::create(); $url = self::API_TEST_URL; @@ -161,7 +161,7 @@ public function testFlagEmailTaskNotification() ]); } - public function testCreatePreviouslyDeletedUser() + public function testCreatePreviouslyDeletedUser(): void { $url = self::API_TEST_URL; @@ -191,7 +191,7 @@ public function testCreatePreviouslyDeletedUser() $this->assertEquals('The Username has already been taken.', $response->json()['errors']['username'][0]); } - public function testDefaultValuesOfUser() + public function testDefaultValuesOfUser(): void { config()->set('app.timezone', 'America/Los_Angeles'); putenv('DATE_FORMAT=m/d/Y H:i'); @@ -261,7 +261,7 @@ public function testDefaultValuesOfUser() /** * Can not create a user with an existing username */ - public function testNotCreateUserWithUsernameExists() + public function testNotCreateUserWithUsernameExists(): void { User::factory()->create([ 'username' => 'mytestusername', @@ -283,7 +283,7 @@ public function testNotCreateUserWithUsernameExists() /** * Get a list of Users without query parameters. */ - public function testListUser() + public function testListUser(): void { User::query()->delete(); @@ -307,7 +307,7 @@ public function testListUser() /** * Test to verify that the list dates are in the correct format (yyyy-mm-dd H:i+GMT) */ - public function testUserListDates() + public function testUserListDates(): void { $username = 'userTestTimezone'; $newEntity = User::factory()->create(['username' => $username]); @@ -329,7 +329,7 @@ public function testUserListDates() /** * Get a list of User with parameters */ - public function testListUserWithQueryParameter() + public function testListUserWithQueryParameter(): void { $username = 'mytestusername'; @@ -360,7 +360,7 @@ public function testListUserWithQueryParameter() /** * Tests filtering a user based off of email address */ - public function testFetchUserByEmailAddressFilter() + public function testFetchUserByEmailAddressFilter(): void { User::factory()->create([ 'email' => 'test@example.com', @@ -386,7 +386,7 @@ public function testFetchUserByEmailAddressFilter() /** * Get a user */ - public function testGetUser() + public function testGetUser(): void { // get the id from the factory $user = User::factory()->create()->id; @@ -404,7 +404,7 @@ public function testGetUser() /** * Parameters required for update of user */ - public function testUpdateUserParametersRequired() + public function testUpdateUserParametersRequired(): void { // The post must have the required parameters $url = self::API_TEST_URL . '/' . User::factory()->create()->id; @@ -420,7 +420,7 @@ public function testUpdateUserParametersRequired() /** * Update user in process */ - public function testUpdateUser() + public function testUpdateUser(): void { $faker = Faker::create(); @@ -449,7 +449,7 @@ public function testUpdateUser() /** * Update user in process */ - public function testUpdateUserForceChangePasswordFlag() + public function testUpdateUserForceChangePasswordFlag(): void { $faker = Faker::create(); @@ -480,7 +480,7 @@ public function testUpdateUserForceChangePasswordFlag() /** * Check that the validation wont allow duplicate usernames */ - public function testUpdateUserTitleExists() + public function testUpdateUserTitleExists(): void { $user1 = User::factory()->create([ 'username' => 'MyUserName', @@ -501,7 +501,7 @@ public function testUpdateUserTitleExists() /** * Delete user in process */ - public function testDeleteUser() + public function testDeleteUser(): void { // Remove user $url = self::API_TEST_URL . '/' . User::factory()->create()->id; @@ -514,7 +514,7 @@ public function testDeleteUser() /** * The user does not exist in process */ - public function testDeleteUserNotExist() + public function testDeleteUserNotExist(): void { // User not exist $url = self::API_TEST_URL . '/' . User::factory()->make()->id; @@ -527,7 +527,7 @@ public function testDeleteUserNotExist() /** * The user can upload an avatar */ - public function testUpdateUserAvatar() + public function testUpdateUserAvatar(): void { // Create a new user $user = User::factory()->create([ @@ -575,7 +575,7 @@ public function testUpdateUserAvatar() * Tests the archiving and restoration of a process * @group agustin */ - public function testRestoreSoftDeletedUser() + public function testRestoreSoftDeletedUser(): void { // create an user $user = User::factory()->create([ @@ -644,7 +644,7 @@ public function testRestoreSoftDeletedUser() $response->assertJsonFragment(['id' => $id]); } - public function testCreateWithoutPassword() + public function testCreateWithoutPassword(): void { $payload = [ 'firstname' => 'foo', @@ -691,7 +691,7 @@ public function testCreateWithoutPassword() /** * Create and validate username */ - public function testCreateUserValidateUsername() + public function testCreateUserValidateUsername(): void { // Valid cases $usernames = [ @@ -774,7 +774,7 @@ public function testCreateUserValidateUsername() * Update username and password * If is an admin user can edit username and password himself */ - public function testUpdateUserAdmin() + public function testUpdateUserAdmin(): void { $url = self::API_TEST_URL . '/' . $this->user->id; @@ -801,7 +801,7 @@ public function testUpdateUserAdmin() * Update username and password * If is a user without permission can not edit and a user with permission can edit himself */ - public function testUpdateUserNotAdmin() + public function testUpdateUserNotAdmin(): void { // Without permission $this->user = User::factory()->create(['status' => 'ACTIVE']); @@ -845,7 +845,7 @@ public function testUpdateUserNotAdmin() $this->assertNotEquals($verify, $verifyNew); } - public function testDisableRecommendations() + public function testDisableRecommendations(): void { RecommendationUser::factory()->create([ 'user_id' => $this->user->id, @@ -869,7 +869,7 @@ public function testDisableRecommendations() $this->assertEquals(0, RecommendationUser::where('user_id', $this->user->id)->count()); } - public function testGetUsersTaskCount() + public function testGetUsersTaskCount(): void { $admin = $this->user; $user = User::factory()->create(); @@ -933,7 +933,7 @@ public function testGetUsersTaskCount() $this->assertContains($admin->id, collect($users)->pluck('id')->toArray()); } - public function testPostUsersTaskCount() + public function testPostUsersTaskCount(): void { $admin = $this->user; $user = User::factory()->create(); @@ -1010,7 +1010,7 @@ public function testPostUsersTaskCount() /** * Test save and get filters per user saved in cache */ - public function testGetDefaultUserConfiguration() + public function testGetDefaultUserConfiguration(): void { // Define an example of filters to save $values = [ diff --git a/tests/Feature/Api/V1_1/CaseControllerSearchTest.php b/tests/Feature/Api/V1_1/CaseControllerSearchTest.php index d0f8638a67..fa5dff7172 100644 --- a/tests/Feature/Api/V1_1/CaseControllerSearchTest.php +++ b/tests/Feature/Api/V1_1/CaseControllerSearchTest.php @@ -11,14 +11,14 @@ class CaseControllerSearchTest extends TestCase { use RequestHelper; - public function setUp(): void + protected function setUp(): void { parent::setUp(); $this->user = CaseControllerTest::createUser('user_a'); } - public function tearDown(): void + protected function tearDown(): void { User::where('id', $this->user->id)->forceDelete(); diff --git a/tests/Feature/Api/V1_1/CaseUtilsTest.php b/tests/Feature/Api/V1_1/CaseUtilsTest.php index b8be5d38a5..061f91c07b 100644 --- a/tests/Feature/Api/V1_1/CaseUtilsTest.php +++ b/tests/Feature/Api/V1_1/CaseUtilsTest.php @@ -9,21 +9,21 @@ class CaseUtilsTest extends TestCase { - public function test_get_case_number_by_keywords() + public function test_get_case_number_by_keywords(): void { $caseNumber = 12345; $expected = 'cn_1 cn_12 cn_123 cn_1234 cn_12345'; $this->assertEquals($expected, CaseUtils::getCaseNumberByKeywords($caseNumber)); } - public function test_get_keywords() + public function test_get_keywords(): void { $dataKeywords = ['case_number' => 12345, 'other' => 'keyword']; $expected = 'cn_1 cn_12 cn_123 cn_1234 cn_12345 keyword'; $this->assertEquals($expected, CaseUtils::getKeywords($dataKeywords)); } - public function test_store_processes() + public function test_store_processes(): void { $processes = new Collection(); $processData = ['id' => 1, 'name' => 'Process 1']; @@ -32,7 +32,7 @@ public function test_store_processes() $this->assertEquals($processData, $result->first()); } - public function test_store_requests() + public function test_store_requests(): void { $requests = new Collection(); $requestData = ['id' => 1, 'name' => 'Request 1', 'parent_request_id' => null]; @@ -41,7 +41,7 @@ public function test_store_requests() $this->assertEquals($requestData, $result->first()); } - public function test_store_request_tokens() + public function test_store_request_tokens(): void { $requestTokens = new Collection(); $tokenId = 1; @@ -50,7 +50,7 @@ public function test_store_request_tokens() $this->assertEquals($tokenId, $result->first()); } - public function test_store_tasks() + public function test_store_tasks(): void { $tasks = new Collection(); $taskData = [ @@ -72,7 +72,7 @@ public function test_store_tasks() ], $result->first()); } - public function test_store_participants() + public function test_store_participants(): void { $participants = new Collection(); $participantId = 1; @@ -81,7 +81,7 @@ public function test_store_participants() $this->assertEquals($participantId, $result->first()); } - public function test_store_processes_with_empty_data() + public function test_store_processes_with_empty_data(): void { $processes = new Collection(); $processData = []; @@ -89,7 +89,7 @@ public function test_store_processes_with_empty_data() $this->assertEquals(0, $result->count()); } - public function test_store_requests_with_empty_data() + public function test_store_requests_with_empty_data(): void { $requests = new Collection(); $requestData = []; @@ -97,7 +97,7 @@ public function test_store_requests_with_empty_data() $this->assertEquals(0, $result->count()); } - public function test_store_request_tokens_with_empty_data() + public function test_store_request_tokens_with_empty_data(): void { $requestTokens = new Collection(); $tokenId = null; @@ -105,7 +105,7 @@ public function test_store_request_tokens_with_empty_data() $this->assertEquals(0, $result->count()); } - public function test_store_tasks_with_empty_data() + public function test_store_tasks_with_empty_data(): void { $tasks = new Collection(); $taskData = []; @@ -113,7 +113,7 @@ public function test_store_tasks_with_empty_data() $this->assertEquals(0, $result->count()); } - public function test_store_participants_with_empty_data() + public function test_store_participants_with_empty_data(): void { $participants = new Collection(); $participantId = null; @@ -121,10 +121,10 @@ public function test_store_participants_with_empty_data() $this->assertEquals(0, $result->count()); } - public function test_extract_data_process() + public function test_extract_data_process(): void { - $object = (object)[ - 'process' => (object)[ + $object = (object) [ + 'process' => (object) [ 'id' => 1, 'name' => 'Process 1', ], @@ -136,13 +136,13 @@ public function test_extract_data_process() $this->assertEquals($expected, CaseUtils::extractData($object->process, 'PROCESS')); } - public function test_extract_data_request() + public function test_extract_data_request(): void { - $object = (object)[ - 'processRequest' => (object)[ + $object = (object) [ + 'processRequest' => (object) [ 'id' => 1, 'name' => 'Request 1', - 'parentRequest' => (object)[ + 'parentRequest' => (object) [ 'id' => 2, ], ], @@ -155,9 +155,9 @@ public function test_extract_data_request() $this->assertEquals($expected, CaseUtils::extractData($object->processRequest, 'REQUEST')); } - public function test_extract_data_task() + public function test_extract_data_task(): void { - $object = (object)[ + $object = (object) [ 'id' => 1, 'element_id' => 101, 'element_name' => 'Task 1', @@ -176,21 +176,21 @@ public function test_extract_data_task() $this->assertEquals($expected, CaseUtils::extractData($object, 'TASK')); } - public function test_get_status_in_progress() + public function test_get_status_in_progress(): void { $instanceStatus = CaseStatusConstants::ACTIVE; $expected = CaseStatusConstants::IN_PROGRESS; $this->assertEquals($expected, CaseUtils::getStatus($instanceStatus)); } - public function test_get_status_completed() + public function test_get_status_completed(): void { $instanceStatus = CaseStatusConstants::COMPLETED; $expected = CaseStatusConstants::COMPLETED; $this->assertEquals($expected, CaseUtils::getStatus($instanceStatus)); } - public function test_get_status_error() + public function test_get_status_error(): void { $instanceStatus = 'ERROR'; $expected = 'ERROR'; diff --git a/tests/Feature/Api/V1_1/TaskControllerTest.php b/tests/Feature/Api/V1_1/TaskControllerTest.php index 9032362162..ae0295285e 100644 --- a/tests/Feature/Api/V1_1/TaskControllerTest.php +++ b/tests/Feature/Api/V1_1/TaskControllerTest.php @@ -26,7 +26,7 @@ protected function tearDown(): void ScreenCacheFactory::setTestInstance(null); } - public function testShow() + public function testShow(): void { $task = ProcessRequestToken::factory()->create(); $response = $this->apiCall('GET', route('api.1.1.tasks.show', $task->id)); @@ -34,7 +34,7 @@ public function testShow() ->assertJson(['id' => $task->id]); } - public function testShowScreen() + public function testShowScreen(): void { $content = file_get_contents( __DIR__ . '/Fixtures/nested_screen_process.json' @@ -88,7 +88,7 @@ public function testShowScreen() $this->assertNull($response->headers->get('Expires')); } - public function testShowScreenCache() + public function testShowScreenCache(): void { // Create test data $content = file_get_contents( @@ -173,7 +173,7 @@ public function testShowScreenCache() $response->assertJson($cachedContent); } - public function testIncludeSubprocessTasks() + public function testIncludeSubprocessTasks(): void { $mainRequest = ProcessRequest::factory()->create(); $subprocessRequest1 = ProcessRequest::factory()->create([ @@ -203,7 +203,7 @@ public function testIncludeSubprocessTasks() $this->assertEquals($subTask2->id, $tasks[2]['id']); } - public function testResponseTaskWithTokenProperties() + public function testResponseTaskWithTokenProperties(): void { $content = file_get_contents( __DIR__ . '/Fixtures/nested_screen_process.json' diff --git a/tests/Feature/Api/WatchersTest.php b/tests/Feature/Api/WatchersTest.php index c905363806..a718edb11d 100644 --- a/tests/Feature/Api/WatchersTest.php +++ b/tests/Feature/Api/WatchersTest.php @@ -31,7 +31,7 @@ public function setUpWithPersonalAccessClient() /** * Test watcher calling script */ - public function testExecuteWatcherScript() + public function testExecuteWatcherScript(): void { Event::fake([ ScriptResponseEvent::class, diff --git a/tests/Feature/Api/WizardTemplatesTest.php b/tests/Feature/Api/WizardTemplatesTest.php index 38e2abcd5e..a27d3a27a7 100644 --- a/tests/Feature/Api/WizardTemplatesTest.php +++ b/tests/Feature/Api/WizardTemplatesTest.php @@ -12,7 +12,7 @@ class WizardTemplatesTest extends TestCase { use RequestHelper; - public function testGetWizardTemplates() + public function testGetWizardTemplates(): void { $total = 20; WizardTemplate::factory()->count($total)->create(); @@ -35,7 +35,7 @@ public function testGetWizardTemplates() ]); } - public function testItCanAddFilesFromUrlToMediaCollection() + public function testItCanAddFilesFromUrlToMediaCollection(): void { // Create fake files. Storage::fake('public'); diff --git a/tests/Feature/AuthTest.php b/tests/Feature/AuthTest.php index baa02cd488..c2d5f3b3d2 100644 --- a/tests/Feature/AuthTest.php +++ b/tests/Feature/AuthTest.php @@ -14,7 +14,7 @@ class AuthTest extends TestCase * * @return void */ - public function testAuthLoginAndLogout() + public function testAuthLoginAndLogout(): void { $user = User::factory()->create(); Auth::login($user); @@ -27,7 +27,7 @@ public function testAuthLoginAndLogout() * Tests the manual login functionality to support logging in with credentials passed from some external * source. */ - public function testAuthManualLogin() + public function testAuthManualLogin(): void { // Build a user with a specified password $user = User::factory()->create([ @@ -47,7 +47,7 @@ public function testAuthManualLogin() $this->assertEquals($user->id, Auth::id()); } - public function testLoginWithUnknownUser() + public function testLoginWithUnknownUser(): void { $response = $this->post('login', [ 'username' => 'foobar', @@ -74,10 +74,9 @@ public function testLoginWithUnknownUser() } /** - * * Test logout flow */ - public function testLogoutStandard() + public function testLogoutStandard(): void { $user = User::factory()->create(); $this->actingAs($user, 'web'); diff --git a/tests/Feature/BroadcastTest.php b/tests/Feature/BroadcastTest.php index 2fe2b91c9e..91fb99019f 100644 --- a/tests/Feature/BroadcastTest.php +++ b/tests/Feature/BroadcastTest.php @@ -34,7 +34,7 @@ class BroadcastTest extends TestCase use LoggingHelper; use WithFaker; - public function testBroadcastEventsHaveTesting() + public function testBroadcastEventsHaveTesting(): void { $this->markTestSkipped('FOUR-6653'); @@ -53,7 +53,7 @@ public function testBroadcastEventsHaveTesting() /** * Test that the SettingsLoaded event was fired during the Application boot up. */ - public function testSettingsLoadedBroadcast() + public function testSettingsLoadedBroadcast(): void { $this->markTestSkipped('FOUR-6653'); @@ -63,7 +63,7 @@ public function testSettingsLoadedBroadcast() /** * Asserts that the ActivityAssigned broadcast event works. */ - public function testActivityAssignedBroadcast() + public function testActivityAssignedBroadcast(): void { $task = Task::factory()->create([ 'data' => [ @@ -80,7 +80,7 @@ public function testActivityAssignedBroadcast() /** * Asserts that the ActivityCompleted broadcast event works. */ - public function testActivityCompletedBroadcast() + public function testActivityCompletedBroadcast(): void { $task = Task::factory()->create([ 'data' => [ @@ -96,7 +96,7 @@ public function testActivityCompletedBroadcast() /** * Asserts that the ProcessCompleted broadcast event works. */ - public function testProcessCompletedBroadcast() + public function testProcessCompletedBroadcast(): void { $request = Request::factory()->create([ 'data' => [ @@ -112,7 +112,7 @@ public function testProcessCompletedBroadcast() /** * Asserts that the ProcessUpdated broadcast event works. */ - public function testProcessUpdatedBroadcast() + public function testProcessUpdatedBroadcast(): void { $request = Request::factory()->create([ 'data' => [ @@ -128,7 +128,7 @@ public function testProcessUpdatedBroadcast() /** * Asserts that the ScreenBuilderStarting broadcast event works. */ - public function testScreenBuilderStartingBroadcast() + public function testScreenBuilderStartingBroadcast(): void { Event::fake(); $manager = new ScreenBuilder(); @@ -140,7 +140,7 @@ public function testScreenBuilderStartingBroadcast() /** * Asserts that the ScreenBuilderStarting broadcast event works. */ - public function testModelerStartingBroadcast() + public function testModelerStartingBroadcast(): void { Event::fake(); $manager = new Modeler(); @@ -152,7 +152,7 @@ public function testModelerStartingBroadcast() /** * Asserts that the SessionStart broadcast event works. */ - public function testSessionStartedBroadcast() + public function testSessionStartedBroadcast(): void { $user = User::factory()->create(); event(new SessionStartedEvent($user)); @@ -164,7 +164,7 @@ public function testSessionStartedBroadcast() /** * Asserts that the BuildScriptExecutor event works. */ - public function testBuildScriptExecutorBroadcast() + public function testBuildScriptExecutorBroadcast(): void { $user = User::factory()->create(); event(new BuildScriptExecutor('output-text', $user->id, 'output-status')); @@ -177,7 +177,7 @@ public function testBuildScriptExecutorBroadcast() /** * Asserts that the ScreenBuilderStarting broadcast event works. */ - public function testScriptBuilderStartingBroadcast() + public function testScriptBuilderStartingBroadcast(): void { Event::fake(); $manager = new ScreenBuilderManager(); @@ -190,7 +190,7 @@ public function testScriptBuilderStartingBroadcast() /** * Asserts that the BuildScriptExecutor event works. */ - public function testImportedScreenSavedBroadcast() + public function testImportedScreenSavedBroadcast(): void { Event::fake(); $screen = Screen::factory()->create(); @@ -202,7 +202,7 @@ public function testImportedScreenSavedBroadcast() /** * Asserts that the TestStatusEvent event works. */ - public function testTestStatusEventBroadcast() + public function testTestStatusEventBroadcast(): void { Event::fake(); event(new TestStatusEvent('test', 'test status event')); @@ -213,7 +213,7 @@ public function testTestStatusEventBroadcast() /** * Asserts that the BuildScriptExecutor event works. */ - public function testScriptResponseEventBroadcast() + public function testScriptResponseEventBroadcast(): void { Event::fake(); $user = User::factory()->create(); diff --git a/tests/Feature/Cache/CacheManagerBaseTest.php b/tests/Feature/Cache/CacheManagerBaseTest.php index 1c4e9e14a2..88a326686e 100644 --- a/tests/Feature/Cache/CacheManagerBaseTest.php +++ b/tests/Feature/Cache/CacheManagerBaseTest.php @@ -28,7 +28,7 @@ protected function tearDown(): void parent::tearDown(); } - public function testGetKeysByPatternWithValidConnectionAndMatchingKeys() + public function testGetKeysByPatternWithValidConnectionAndMatchingKeys(): void { $this->cacheManagerBase = Mockery::mock(CacheManagerBase::class)->makePartial(); @@ -50,7 +50,7 @@ public function testGetKeysByPatternWithValidConnectionAndMatchingKeys() $this->assertEquals($keys, $result); } - public function testGetKeysByPatternWithValidConnectionAndNoMatchingKeys() + public function testGetKeysByPatternWithValidConnectionAndNoMatchingKeys(): void { $this->cacheManagerBase = Mockery::mock(CacheManagerBase::class)->makePartial(); @@ -71,7 +71,7 @@ public function testGetKeysByPatternWithValidConnectionAndNoMatchingKeys() $this->assertCount(0, $result); } - public function testGetKeysByPatternWithInvalidConnection() + public function testGetKeysByPatternWithInvalidConnection(): void { config()->set('cache.default', 'array'); @@ -83,7 +83,7 @@ public function testGetKeysByPatternWithInvalidConnection() $this->cacheManagerBase->getKeysByPattern('pattern'); } - public function testGetKeysByPatternWithExceptionDuringKeyRetrieval() + public function testGetKeysByPatternWithExceptionDuringKeyRetrieval(): void { $this->cacheManagerBase = Mockery::mock(CacheManagerBase::class)->makePartial(); @@ -107,7 +107,7 @@ public function testGetKeysByPatternWithExceptionDuringKeyRetrieval() $this->assertCount(0, $result); } - public function testKeyExistsWithValidKey() + public function testKeyExistsWithValidKey(): void { $this->cacheManagerBase = Mockery::mock(CacheManagerBase::class)->makePartial(); @@ -128,7 +128,7 @@ public function testKeyExistsWithValidKey() $this->assertTrue($result); } - public function testKeyExistsWithInvalidKey() + public function testKeyExistsWithInvalidKey(): void { $this->cacheManagerBase = Mockery::mock(CacheManagerBase::class)->makePartial(); @@ -149,7 +149,7 @@ public function testKeyExistsWithInvalidKey() $this->assertFalse($result); } - public function testKeyExistsWithInvalidConnection() + public function testKeyExistsWithInvalidConnection(): void { $this->cacheManagerBase = Mockery::mock(CacheManagerBase::class)->makePartial(); @@ -161,7 +161,7 @@ public function testKeyExistsWithInvalidConnection() $this->assertFalse($result); } - public function testKeyExistsWithExceptionDuringRedisCall() + public function testKeyExistsWithExceptionDuringRedisCall(): void { $this->cacheManagerBase = Mockery::mock(CacheManagerBase::class)->makePartial(); diff --git a/tests/Feature/Cache/SettingCacheManagerTest.php b/tests/Feature/Cache/SettingCacheManagerTest.php index c14349e06f..9c2f1071c9 100644 --- a/tests/Feature/Cache/SettingCacheManagerTest.php +++ b/tests/Feature/Cache/SettingCacheManagerTest.php @@ -6,7 +6,7 @@ class SettingCacheManagerTest extends TestCase { - public function testGet() + public function testGet(): void { $key = 'test_key'; $default = 'default_value'; @@ -21,7 +21,7 @@ public function testGet() $this->assertEquals($expected, $result); } - public function testSet() + public function testSet(): void { $key = 'test_key'; $value = 'test_value'; @@ -36,7 +36,7 @@ public function testSet() $this->assertTrue($result); } - public function testDelete() + public function testDelete(): void { $key = 'test_key'; @@ -49,7 +49,7 @@ public function testDelete() $this->assertTrue($result); } - public function testClear() + public function testClear(): void { \SettingCache::shouldReceive('clear') ->andReturn(true); @@ -59,7 +59,7 @@ public function testClear() $this->assertTrue($result); } - public function testHas() + public function testHas(): void { $key = 'test_key'; @@ -72,7 +72,7 @@ public function testHas() $this->assertTrue($result); } - public function testMissing() + public function testMissing(): void { $key = 'test_key'; @@ -85,7 +85,7 @@ public function testMissing() $this->assertFalse($result); } - public function testCall() + public function testCall(): void { $method = 'add'; $arguments = ['arg1', 'arg2']; diff --git a/tests/Feature/Cache/SettingCacheTest.php b/tests/Feature/Cache/SettingCacheTest.php index 7b9afb9d6b..58423c68d5 100644 --- a/tests/Feature/Cache/SettingCacheTest.php +++ b/tests/Feature/Cache/SettingCacheTest.php @@ -115,7 +115,7 @@ public function testGetSettingByKeyCachedAfterUpdate(): void $this->assertEquals($setting->config, 0); } - public function testGetSettingByNotExistingKey() + public function testGetSettingByNotExistingKey(): void { $this->withoutExceptionHandling(); $key = 'non-existing-key'; @@ -128,7 +128,7 @@ public function testGetSettingByNotExistingKey() $this->assertNull($setting); } - public function testClearByPattern() + public function testClearByPattern(): void { Cache::store('cache_settings')->put('password-policies.users_can_change', 1); Cache::store('cache_settings')->put('password-policies.numbers', 2); @@ -148,7 +148,7 @@ public function testClearByPattern() $this->assertNull(Cache::store('cache_settings')->get('password-policies.uppercase')); } - public function testClearByPatternRemainUnmatched() + public function testClearByPatternRemainUnmatched(): void { Cache::store('cache_settings')->put('session-control.ip_restriction', 0); Cache::store('cache_settings')->put('password-policies.users_can_change', 1); @@ -170,7 +170,7 @@ public function testClearByPatternRemainUnmatched() $this->assertNull(Cache::store('cache_settings')->get('password-policies.uppercase')); } - public function testClearByPatternWithFailedDeletion() + public function testClearByPatternWithFailedDeletion(): void { $tennat = app('currentTenant'); $tennatPrefix = ''; @@ -205,7 +205,7 @@ public function testClearByPatternWithFailedDeletion() \SettingCache::clearBy($pattern); } - public function testClearByPatternWithRedisPrefix() + public function testClearByPatternWithRedisPrefix(): void { Cache::store('cache_settings')->put('password-policies.users_can_change', 1); @@ -218,7 +218,7 @@ public function testClearByPatternWithRedisPrefix() $this->assertNull(Cache::store('cache_settings')->get('password-policies.users_can_change')); } - public function testClearAllSettings() + public function testClearAllSettings(): void { \SettingCache::set('password-policies.users_can_change', 1); \SettingCache::set('password-policies.numbers', 2); @@ -235,7 +235,7 @@ public function testClearAllSettings() $this->assertNull(\SettingCache::get('password-policies.uppercase')); } - public function testClearOnlySettings() + public function testClearOnlySettings(): void { \SettingCache::set('password-policies.users_can_change', 1); \SettingCache::set('password-policies.numbers', 2); @@ -255,7 +255,7 @@ public function testClearOnlySettings() $this->assertEquals(3, Cache::store('file')->get('password-policies.uppercase')); } - public function testInvalidateOnSaved() + public function testInvalidateOnSaved(): void { $settingKey = 'password-policies.users_can_change'; @@ -286,7 +286,7 @@ public function testInvalidateOnSaved() $this->assertNull($settingFromCache); } - public function testInvalidateOnDeleted() + public function testInvalidateOnDeleted(): void { $settingKey = 'password-policies.users_can_change'; @@ -316,7 +316,7 @@ public function testInvalidateOnDeleted() $this->assertNull($settingFromCache); } - public function testInvalidateWithException() + public function testInvalidateWithException(): void { $setting = Setting::factory()->create([ 'key' => 'password-policies.numbers', @@ -341,7 +341,7 @@ public function testInvalidateWithException() $setting->delete(); } - public function testDoNotQueryDatabaseForNullValues() + public function testDoNotQueryDatabaseForNullValues(): void { $key = 'password-policies.users_can_change'; $cacheKey = 'setting_' . $key; @@ -356,7 +356,7 @@ public function testDoNotQueryDatabaseForNullValues() $this->assertNull($setting); } - public function testQueryDatabaseIfKeyIsNotCached() + public function testQueryDatabaseIfKeyIsNotCached(): void { $setting = Setting::factory()->create([ 'key' => 'key_not_cached', diff --git a/tests/Feature/CacheTest.php b/tests/Feature/CacheTest.php index 4c43585d48..514e14ee39 100644 --- a/tests/Feature/CacheTest.php +++ b/tests/Feature/CacheTest.php @@ -12,7 +12,7 @@ class CacheTest extends TestCase * * @return void */ - public function testCache() + public function testCache(): void { Cache::put('foo', 'bar', 5); $this->assertEquals('bar', (Cache::get('foo'))); diff --git a/tests/Feature/Cases/CaseParticipatedTest.php b/tests/Feature/Cases/CaseParticipatedTest.php index 4d0978a0f8..93efa6ae75 100644 --- a/tests/Feature/Cases/CaseParticipatedTest.php +++ b/tests/Feature/Cases/CaseParticipatedTest.php @@ -11,7 +11,7 @@ class CaseParticipatedTest extends TestCase { - public function test_create_case_participated() + public function test_create_case_participated(): void { $user = User::factory()->create(); $process = Process::factory()->create(); @@ -61,7 +61,7 @@ public function test_create_case_participated() ]); } - public function test_create_multiple_case_participated() + public function test_create_multiple_case_participated(): void { $user = User::factory()->create(); $process = Process::factory()->create(); @@ -133,7 +133,7 @@ public function test_create_multiple_case_participated() ]); } - public function test_update_case_participated_users() + public function test_update_case_participated_users(): void { $user = User::factory()->create(); $user2 = User::factory()->create(); @@ -206,7 +206,7 @@ public function test_update_case_participated_users() ]); } - public function test_update_case_participated_user_tasks() + public function test_update_case_participated_user_tasks(): void { $user = User::factory()->create(); $user2 = User::factory()->create(); @@ -299,7 +299,7 @@ public function test_update_case_participated_user_tasks() ]); } - public function test_update_case_participated_completed() + public function test_update_case_participated_completed(): void { $user = User::factory()->create(); $user2 = User::factory()->create(); @@ -406,7 +406,7 @@ public function test_update_case_participated_completed() ]); } - public function test_update_case_title() + public function test_update_case_title(): void { $user = User::factory()->create(); $user2 = User::factory()->create(); diff --git a/tests/Feature/Cases/CaseStartedSubProcessTest.php b/tests/Feature/Cases/CaseStartedSubProcessTest.php index 3bce085989..bc65f17b9b 100644 --- a/tests/Feature/Cases/CaseStartedSubProcessTest.php +++ b/tests/Feature/Cases/CaseStartedSubProcessTest.php @@ -66,7 +66,7 @@ protected function setUp(): void ]); } - public function test_create_case_sub_process() + public function test_create_case_sub_process(): void { $repo = new CaseRepository(); $repo->create($this->parentRequest); @@ -83,7 +83,7 @@ public function test_create_case_sub_process() ]); } - public function test_create_case_processes() + public function test_create_case_processes(): void { $repo = new CaseRepository(); $repo->create($this->parentRequest); @@ -104,7 +104,7 @@ public function test_create_case_processes() ]); } - public function test_create_case_requests() + public function test_create_case_requests(): void { $repo = new CaseRepository(); $repo->create($this->parentRequest); @@ -127,7 +127,7 @@ public function test_create_case_requests() ]); } - public function test_create_case_request_tokens() + public function test_create_case_request_tokens(): void { $repo = new CaseRepository(); $repo->create($this->parentRequest); @@ -148,7 +148,7 @@ public function test_create_case_request_tokens() ]); } - public function test_create_case_tasks() + public function test_create_case_tasks(): void { $repo = new CaseRepository(); $repo->create($this->parentRequest); @@ -177,7 +177,7 @@ public function test_create_case_tasks() ]); } - public function test_create_case_participated_processes() + public function test_create_case_participated_processes(): void { $repo = new CaseRepository(); $repo->create($this->parentRequest); @@ -212,7 +212,7 @@ public function test_create_case_participated_processes() ]); } - public function test_create_case_participated_requests() + public function test_create_case_participated_requests(): void { $repo = new CaseRepository(); $repo->create($this->parentRequest); @@ -251,7 +251,7 @@ public function test_create_case_participated_requests() ]); } - public function test_create_case_participated_request_tokens() + public function test_create_case_participated_request_tokens(): void { $repo = new CaseRepository(); $repo->create($this->parentRequest); @@ -282,7 +282,7 @@ public function test_create_case_participated_request_tokens() ]); } - public function test_create_case_participated_tasks() + public function test_create_case_participated_tasks(): void { $repo = new CaseRepository(); $repo->create($this->parentRequest); @@ -339,7 +339,7 @@ public function test_create_case_participated_tasks() ]); } - public function test_update_case_participated_completed() + public function test_update_case_participated_completed(): void { $repo = new CaseRepository(); $repo->create($this->parentRequest); diff --git a/tests/Feature/Cases/CaseStartedTest.php b/tests/Feature/Cases/CaseStartedTest.php index 1c51fa430a..b1ceb4d064 100644 --- a/tests/Feature/Cases/CaseStartedTest.php +++ b/tests/Feature/Cases/CaseStartedTest.php @@ -13,7 +13,7 @@ class CaseStartedTest extends TestCase { - public function test_create_case() + public function test_create_case(): void { $user = User::factory()->create(); $instance = ProcessRequest::factory()->create([ @@ -32,7 +32,7 @@ public function test_create_case() ]); } - public function test_create_multiple_cases() + public function test_create_multiple_cases(): void { $user = User::factory()->create(); $instance1 = ProcessRequest::factory()->create([ @@ -61,7 +61,7 @@ public function test_create_multiple_cases() ]); } - public function test_create_case_started_processes() + public function test_create_case_started_processes(): void { $process = Process::factory()->create(); @@ -86,7 +86,7 @@ public function test_create_case_started_processes() ]); } - public function test_create_case_started_requests() + public function test_create_case_started_requests(): void { $process = Process::factory()->create(); @@ -112,7 +112,7 @@ public function test_create_case_started_requests() ]); } - public function test_update_case_started_request_tokens() + public function test_update_case_started_request_tokens(): void { $process = Process::factory()->create(); @@ -150,7 +150,7 @@ public function test_update_case_started_request_tokens() ]); } - public function test_update_case_started_tasks() + public function test_update_case_started_tasks(): void { $process = Process::factory()->create(); @@ -212,7 +212,7 @@ public function test_update_case_started_tasks() ]); } - public function test_update_case_started_script_tasks() + public function test_update_case_started_script_tasks(): void { $process = Process::factory()->create(); @@ -271,7 +271,7 @@ public function test_update_case_started_script_tasks() ]); } - public function test_update_case_started_participants() + public function test_update_case_started_participants(): void { $process = Process::factory()->create(); @@ -323,7 +323,7 @@ public function test_update_case_started_participants() ]); } - public function test_update_case_started_status() + public function test_update_case_started_status(): void { $process = Process::factory()->create(); $user = User::factory()->create(); @@ -376,7 +376,7 @@ public function test_update_case_started_status() ]); } - public function test_update_case_started_status_to_canceled() + public function test_update_case_started_status_to_canceled(): void { $process = Process::factory()->create(); $user = User::factory()->create(); @@ -432,7 +432,7 @@ public function test_update_case_started_status_to_canceled() ]); } - public function test_try_update_if_case_has_not_been_created() + public function test_try_update_if_case_has_not_been_created(): void { $user = User::factory()->create(); $instance = ProcessRequest::factory()->create([ @@ -454,7 +454,7 @@ public function test_try_update_if_case_has_not_been_created() $this->assertDatabaseCount('cases_started', 1); } - public function test_try_store_docusign_authorization_request() + public function test_try_store_docusign_authorization_request(): void { $category = ProcessCategoryFactory::new()->create([ 'name' => 'DocuSign', @@ -476,7 +476,7 @@ public function test_try_store_docusign_authorization_request() $this->assertDatabaseCount('cases_participated', 0); } - public function test_try_store_error_status_on_log_error() + public function test_try_store_error_status_on_log_error(): void { $user = User::factory()->create([ 'is_administrator' => true, diff --git a/tests/Feature/Cases/CaseSyncRepositoryTest.php b/tests/Feature/Cases/CaseSyncRepositoryTest.php index c91cd2b4fa..961220c10c 100644 --- a/tests/Feature/Cases/CaseSyncRepositoryTest.php +++ b/tests/Feature/Cases/CaseSyncRepositoryTest.php @@ -2,15 +2,15 @@ namespace Tests\Feature\Cases; -use ProcessMaker\Repositories\CaseSyncRepository; +use Illuminate\Support\Facades\DB; use ProcessMaker\Models\ProcessRequest; use ProcessMaker\Models\ProcessRequestToken; +use ProcessMaker\Repositories\CaseSyncRepository; use Tests\TestCase; -use Illuminate\Support\Facades\DB; class CaseSyncRepositoryTest extends TestCase { - public function testSyncCases() + public function testSyncCases(): void { // Create some ProcessRequest instances $processRequest1 = ProcessRequest::factory()->create(); @@ -24,7 +24,7 @@ public function testSyncCases() 'status' => 'ACTIVE', 'element_id' => 'task-1', 'process_request_id' => $processRequest1->id, - 'process_id' => $processRequest1->process_id + 'process_id' => $processRequest1->process_id, ])->toArray(), ProcessRequestToken::factory()->make([ 'element_name' => 'Task 2', @@ -32,7 +32,7 @@ public function testSyncCases() 'status' => 'CLOSED', 'element_id' => 'task-2', 'process_request_id' => $processRequest1->id, - 'process_id' => $processRequest1->process_id + 'process_id' => $processRequest1->process_id, ])->toArray(), ProcessRequestToken::factory()->make([ 'element_name' => 'Task 3', @@ -40,7 +40,7 @@ public function testSyncCases() 'status' => 'ACTIVE', 'element_id' => 'call-activity-1', 'process_request_id' => $processRequest1->id, - 'process_id' => $processRequest1->process_id + 'process_id' => $processRequest1->process_id, ])->toArray(), ]); @@ -51,7 +51,7 @@ public function testSyncCases() 'status' => 'CLOSED', 'element_id' => 'task-4', 'process_request_id' => $processRequest2->id, - 'process_id' => $processRequest2->process_id + 'process_id' => $processRequest2->process_id, ])->toArray(), ProcessRequestToken::factory()->make([ 'element_name' => 'Task 5', @@ -59,7 +59,7 @@ public function testSyncCases() 'status' => 'ACTIVE', 'element_id' => 'task-5', 'process_request_id' => $processRequest2->id, - 'process_id' => $processRequest2->process_id + 'process_id' => $processRequest2->process_id, ])->toArray(), ]); @@ -85,21 +85,21 @@ public function testSyncCases() 'name' => 'Task 5', 'status' => 'ACTIVE', 'element_id' => 'task-5', - 'process_id' => $processRequest2->process_id + 'process_id' => $processRequest2->process_id, ], [ 'id' => $processRequest1->tokens()->where('element_id', 'task-2')->first()->id, 'name' => 'Task 2', 'status' => 'CLOSED', 'element_id' => 'task-2', - 'process_id' => $processRequest1->process_id + 'process_id' => $processRequest1->process_id, ], [ 'id' => $processRequest1->tokens()->where('element_id', 'task-1')->first()->id, 'name' => 'Task 1', 'status' => 'ACTIVE', 'element_id' => 'task-1', - 'process_id' => $processRequest1->process_id + 'process_id' => $processRequest1->process_id, ], ]; $expectedParticipants = [ diff --git a/tests/Feature/Cases/CasesJobTest.php b/tests/Feature/Cases/CasesJobTest.php index 7628f1348e..6dd46ffad8 100644 --- a/tests/Feature/Cases/CasesJobTest.php +++ b/tests/Feature/Cases/CasesJobTest.php @@ -16,7 +16,7 @@ class CasesJobTest extends TestCase { use RequestHelper; - public function test_handle_case_store_job() + public function test_handle_case_store_job(): void { Queue::fake(); @@ -30,7 +30,7 @@ public function test_handle_case_store_job() Queue::assertPushed(CaseStore::class, 1); } - public function test_handle_case_update_job() + public function test_handle_case_update_job(): void { Queue::fake(); @@ -48,7 +48,7 @@ public function test_handle_case_update_job() Queue::assertPushed(CaseUpdate::class, 1); } - public function test_handle_case_update_status_job() + public function test_handle_case_update_status_job(): void { Queue::fake(); diff --git a/tests/Feature/Cases/CasesTaskTest.php b/tests/Feature/Cases/CasesTaskTest.php index f2e2a49008..e8ea29705b 100644 --- a/tests/Feature/Cases/CasesTaskTest.php +++ b/tests/Feature/Cases/CasesTaskTest.php @@ -53,7 +53,7 @@ protected function setUp(): void ]; } - public function test_update_case_started_task_status() + public function test_update_case_started_task_status(): void { $repo = new CaseRepository(); $repo->create($this->instance); @@ -84,7 +84,7 @@ public function test_update_case_started_task_status() ]); } - public function test_update_case_participated_task_status() + public function test_update_case_participated_task_status(): void { $repo = new CaseRepository(); $repo->create($this->instance); @@ -115,7 +115,7 @@ public function test_update_case_participated_task_status() ]); } - public function test_update_case_started_task_status_exception() + public function test_update_case_started_task_status_exception(): void { $repo = new CaseRepository(); $repo->create($this->instance); @@ -144,7 +144,7 @@ public function test_update_case_started_task_status_exception() ]); } - public function test_update_case_started_script_task_status_do_not_show_error() + public function test_update_case_started_script_task_status_do_not_show_error(): void { // Mock the Log facade to check if no error is logged $mock = Mockery::mock(Logger::class); @@ -170,7 +170,7 @@ public function test_update_case_started_script_task_status_do_not_show_error() $taskRepo->updateCaseStartedTaskStatus(); } - public function test_find_case_by_task_id_case_found() + public function test_find_case_by_task_id_case_found(): void { $taskRepo = new CaseTaskRepository($this->caseNumber, $this->task); @@ -190,7 +190,7 @@ public function test_find_case_by_task_id_case_found() $this->assertEquals('$[0].id', $result->task_index); } - public function test_find_case_by_task_id_case_not_found() + public function test_find_case_by_task_id_case_not_found(): void { $taskRepo = new CaseTaskRepository($this->caseNumber, $this->task); $taskRepo->setTable('cases_started'); @@ -199,7 +199,7 @@ public function test_find_case_by_task_id_case_not_found() $this->assertNull($result); } - public function test_update_task_status_in_case() + public function test_update_task_status_in_case(): void { CaseStartedFactory::new()->create([ 'case_number' => $this->caseNumber, @@ -222,7 +222,7 @@ public function test_update_task_status_in_case() ]); } - public function test_update_task_status_in_case_not_found() + public function test_update_task_status_in_case_not_found(): void { CaseStartedFactory::new()->create([ 'case_number' => $this->caseNumber, diff --git a/tests/Feature/CasesControllerTest.php b/tests/Feature/CasesControllerTest.php index cb5a2f116a..d6738fd582 100644 --- a/tests/Feature/CasesControllerTest.php +++ b/tests/Feature/CasesControllerTest.php @@ -37,7 +37,7 @@ class CasesControllerTest extends TestCase ], ]; - public function testShowCaseWithUserWithoutParticipation() + public function testShowCaseWithUserWithoutParticipation(): void { // Create user admin $user = User::factory()->create(); @@ -60,7 +60,7 @@ public function testShowCaseWithUserWithoutParticipation() $response->assertStatus(403); } - public function testShowCaseWithUserAdmin() + public function testShowCaseWithUserAdmin(): void { // Create user admin $user = User::factory()->create([ @@ -85,7 +85,7 @@ public function testShowCaseWithUserAdmin() $response->assertStatus(200); } - public function testShowCaseWithProcessVersion() + public function testShowCaseWithProcessVersion(): void { // Create user admin $user = User::factory()->create([ @@ -128,7 +128,7 @@ public function testShowCaseWithProcessVersion() $this->assertEquals($newBpmn, $response->viewData('bpmn')); } - public function testShowCaseWithParticipateUser() + public function testShowCaseWithParticipateUser(): void { // Create user $user = User::factory()->create(); @@ -161,7 +161,7 @@ public function testShowCaseWithParticipateUser() * Test show default summary tab when the status is Error * @return void */ - public function testCaseErrorWithDataDefaultSummary() + public function testCaseErrorWithDataDefaultSummary(): void { $process = Process::factory()->create(); $requestCanceled = ProcessRequest::factory()->create([ @@ -182,7 +182,7 @@ public function testCaseErrorWithDataDefaultSummary() * Without custom screen "Request Detail Screen" * @return void */ - public function testCaseInProgressWithDataDefaultSummary() + public function testCaseInProgressWithDataDefaultSummary(): void { $process = Process::factory()->create(); $requestCanceled = ProcessRequest::factory()->create([ @@ -204,7 +204,7 @@ public function testCaseInProgressWithDataDefaultSummary() * Without custom screen "Cancel Screen" * @return void */ - public function testRequestCanceledDefaultSummary() + public function testRequestCanceledDefaultSummary(): void { $process = Process::factory()->create(); $requestCompleted = ProcessRequest::factory()->create([ @@ -227,7 +227,7 @@ public function testRequestCanceledDefaultSummary() * Without end event custom screen "Summary screen" * @return void */ - public function testRequestCompletedDefaultSummary() + public function testRequestCompletedDefaultSummary(): void { $process = Process::factory()->create(); $requestCompleted = ProcessRequest::factory()->create([ @@ -250,7 +250,7 @@ public function testRequestCompletedDefaultSummary() * Without end event custom screen "Summary screen" * @return void */ - public function testRequestCompletedWithDataDefaultSummary() + public function testRequestCompletedWithDataDefaultSummary(): void { $process = Process::factory()->create(); $requestCompleted = ProcessRequest::factory()->create([ @@ -273,7 +273,7 @@ public function testRequestCompletedWithDataDefaultSummary() * With custom screen "Request Detail Screen" * @return void */ - public function testRequestInprogressWithCustomScreenSummaryTab() + public function testRequestInprogressWithCustomScreenSummaryTab(): void { $screen = Screen::factory()->create([ 'type' => 'DISPLAY', @@ -303,7 +303,7 @@ public function testRequestInprogressWithCustomScreenSummaryTab() * With custom screen "Cancel Screen" * @return void */ - public function testRequestCanceledWithCustomScreenSummaryTab() + public function testRequestCanceledWithCustomScreenSummaryTab(): void { $screen = Screen::factory()->create([ 'type' => 'DISPLAY', @@ -333,7 +333,7 @@ public function testRequestCanceledWithCustomScreenSummaryTab() * * @return void */ - public function testGetStageCaseWithInvalidCaseNumber() + public function testGetStageCaseWithInvalidCaseNumber(): void { // Call the API endpoint with a case number that does not exist $response = $this->apiCall('GET', '/cases' . '/stages_bar'); @@ -377,7 +377,7 @@ public function testGetStageCaseWithInvalidCaseNumber() * * @return void */ - public function testGetStageCaseWithValidCaseNumberWithProcessStages() + public function testGetStageCaseWithValidCaseNumberWithProcessStages(): void { $stagesData = [ ['id' => 1, 'name' => 'Request Send', 'order' => 1], @@ -481,7 +481,7 @@ public function testGetStageCaseWithValidCaseNumberWithProcessStages() * * @return void */ - public function testGetStageCaseWithValidCaseNumberInProgressWithoutProcessStages() + public function testGetStageCaseWithValidCaseNumberInProgressWithoutProcessStages(): void { // Create a new process and save stages as JSON $process = Process::factory()->create([ @@ -560,7 +560,7 @@ public function testGetStageCaseWithValidCaseNumberInProgressWithoutProcessStage * * @return void */ - public function testGetStageCaseWithValidCaseNumberCompletedWithoutProcessStages() + public function testGetStageCaseWithValidCaseNumberCompletedWithoutProcessStages(): void { // Create a new process and save stages as JSON $process = Process::factory()->create([ @@ -617,7 +617,7 @@ public function testGetStageCaseWithValidCaseNumberCompletedWithoutProcessStages * * @return void */ - public function testGetStageCaseWithValidCaseNumberWithoutTask() + public function testGetStageCaseWithValidCaseNumberWithoutTask(): void { $stagesData = [ ['id' => 1, 'name' => 'Request Send', 'order' => 1], diff --git a/tests/Feature/ClearRequestsTest.php b/tests/Feature/ClearRequestsTest.php index e834c7cd78..5a84dd5cc8 100644 --- a/tests/Feature/ClearRequestsTest.php +++ b/tests/Feature/ClearRequestsTest.php @@ -294,7 +294,7 @@ private function runProcessWithTimers() $this->completeTask($token); } - public function testCommandClearRequests() + public function testCommandClearRequests(): void { $existingProcessIds = Process::pluck('id'); diff --git a/tests/Feature/CommentsTest.php b/tests/Feature/CommentsTest.php index 537fe59ada..e0f248b63d 100644 --- a/tests/Feature/CommentsTest.php +++ b/tests/Feature/CommentsTest.php @@ -41,7 +41,7 @@ private function createTask(array $data = []) /** * @return void */ - public function testCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername() + public function testCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername(): void { // Start a process request $task = $this->createTask(); @@ -69,7 +69,7 @@ public function testCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername() /** * @return void */ - public function testChineseCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername() + public function testChineseCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername(): void { // Start a process request $task = $this->createTask(); @@ -97,7 +97,7 @@ public function testChineseCommentMentionAreCorrectlyParsedBetweenUserIdAndUsern /** * @return void */ - public function testArabicCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername() + public function testArabicCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername(): void { // Start a process request $task = $this->createTask(); @@ -125,7 +125,7 @@ public function testArabicCommentMentionAreCorrectlyParsedBetweenUserIdAndUserna /** * @return void */ - public function testGermanCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername() + public function testGermanCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername(): void { // Start a process request $task = $this->createTask(); @@ -153,7 +153,7 @@ public function testGermanCommentMentionAreCorrectlyParsedBetweenUserIdAndUserna /** * @return void */ - public function testArmenianCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername() + public function testArmenianCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername(): void { // Start a process request $task = $this->createTask(); @@ -181,7 +181,7 @@ public function testArmenianCommentMentionAreCorrectlyParsedBetweenUserIdAndUser /** * @return void */ - public function testBulgarianCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername() + public function testBulgarianCommentMentionAreCorrectlyParsedBetweenUserIdAndUsername(): void { // Start a process request $task = $this->createTask(); diff --git a/tests/Feature/Console/ChangeKeyEncryptedDataTest.php b/tests/Feature/Console/ChangeKeyEncryptedDataTest.php index bbd555b159..55000d7bb9 100644 --- a/tests/Feature/Console/ChangeKeyEncryptedDataTest.php +++ b/tests/Feature/Console/ChangeKeyEncryptedDataTest.php @@ -9,7 +9,7 @@ class ChangeKeyEncryptedDataTest extends TestCase { - public function test_change_key_driver_local() + public function test_change_key_driver_local(): void { // Set driver to "local" $driver = 'local'; diff --git a/tests/Feature/Console/GarbageCollectorTest.php b/tests/Feature/Console/GarbageCollectorTest.php index e9dc4d0bb1..1883f98e46 100644 --- a/tests/Feature/Console/GarbageCollectorTest.php +++ b/tests/Feature/Console/GarbageCollectorTest.php @@ -13,7 +13,7 @@ class GarbageCollectorTest extends TestCase { - public function testProcessHaltedScripts() + public function testProcessHaltedScripts(): void { Bus::fake(); //create a serve task and a script task in status ACTIVE and FAILING @@ -38,7 +38,7 @@ public function testProcessHaltedScripts() Bus::assertDispatched(RunServiceTask::class); } - public function testProcessUnhandledErrors() + public function testProcessUnhandledErrors(): void { Bus::fake(); // simulate the creation of 2 unhandled errors with 2 tokens @@ -71,7 +71,7 @@ public function testProcessUnhandledErrors() $this->assertFileDoesNotExist($errorFile); } - public function testProcessDuplicatedTimerEvents() + public function testProcessDuplicatedTimerEvents(): void { $token1 = ProcessRequestToken::factory()->create([ 'status' => 'ACTIVE', diff --git a/tests/Feature/Console/InitializeScriptMicroserviceTest.php b/tests/Feature/Console/InitializeScriptMicroserviceTest.php index 25d0e3f756..93ec64bdd5 100644 --- a/tests/Feature/Console/InitializeScriptMicroserviceTest.php +++ b/tests/Feature/Console/InitializeScriptMicroserviceTest.php @@ -16,7 +16,7 @@ protected function setUp(): void ScriptExecutor::where('id', '>', 0)->delete(); } - public function testInitializeScriptMicroserviceEnabled() + public function testInitializeScriptMicroserviceEnabled(): void { config(['script-runner-microservice.enabled' => true]); @@ -48,7 +48,7 @@ public function testInitializeScriptMicroserviceEnabled() ], ScriptExecutor::where('is_system', false)->pluck('language')->toArray()); } - public function testInitializeScriptMicroserviceDisabled() + public function testInitializeScriptMicroserviceDisabled(): void { config(['script-runner-microservice.enabled' => false]); diff --git a/tests/Feature/Console/InstallTest.php b/tests/Feature/Console/InstallTest.php index 57bfed742c..eed9f4ac5b 100644 --- a/tests/Feature/Console/InstallTest.php +++ b/tests/Feature/Console/InstallTest.php @@ -75,7 +75,7 @@ private function generateParameters() * * @return void */ - public function testNonInteractiveInstall() + public function testNonInteractiveInstall(): void { // Setup our collection of parameters $params = $this->generateParameters(); diff --git a/tests/Feature/Console/PackageInstallCommandTest.php b/tests/Feature/Console/PackageInstallCommandTest.php index eead0bb8ac..8278880ed6 100644 --- a/tests/Feature/Console/PackageInstallCommandTest.php +++ b/tests/Feature/Console/PackageInstallCommandTest.php @@ -12,7 +12,7 @@ protected function setUp() : void $this->app->register(TestPackage\TestPackageServiceProvider::class); } - public function testFullInstall() + public function testFullInstall(): void { $this->artisan('processmaker:test-package-install') ->expectsOutput('PreInstall') @@ -21,21 +21,21 @@ public function testFullInstall() ->assertExitCode(0); } - public function testOptionPreinstall() + public function testOptionPreinstall(): void { $this->artisan('processmaker:test-package-install --preinstall') ->expectsOutput('PreInstall') ->assertExitCode(0); } - public function testOptionInstall() + public function testOptionInstall(): void { $this->artisan('processmaker:test-package-install --install') ->expectsOutput('Install') ->assertExitCode(0); } - public function testOptionPostinstall() + public function testOptionPostinstall(): void { $this->artisan('processmaker:test-package-install --postinstall') ->expectsOutput('PostInstall') diff --git a/tests/Feature/CssOverrideTest.php b/tests/Feature/CssOverrideTest.php index 3c6b7f6bad..ac9a0b0379 100644 --- a/tests/Feature/CssOverrideTest.php +++ b/tests/Feature/CssOverrideTest.php @@ -14,7 +14,7 @@ class CssOverrideTest extends TestCase /** * @test */ - public function test_a_user_can_view_css_override() + public function test_a_user_can_view_css_override(): void { // get the URL $response = $this->webcall('GET', route('customize-ui.edit')); diff --git a/tests/Feature/DataManagerTest.php b/tests/Feature/DataManagerTest.php index b44c4285d0..4368427a7a 100644 --- a/tests/Feature/DataManagerTest.php +++ b/tests/Feature/DataManagerTest.php @@ -61,7 +61,7 @@ protected function setUp(): void /** * Verify the magic variables for a valid request token */ - public function testDataForAValidRequestToken() + public function testDataForAValidRequestToken(): void { $manager = new DataManager(); $token = ProcessRequestToken::factory()->create(); @@ -75,7 +75,7 @@ public function testDataForAValidRequestToken() /** * Verify the magic variables for a valid webentry screen */ - public function testDataForAStartEventWebentry() + public function testDataForAStartEventWebentry(): void { $manager = new DataManager(); $user = $this->user; diff --git a/tests/Feature/Docker/DockerFacadeTest.php b/tests/Feature/Docker/DockerFacadeTest.php index 51a711c432..b9d9d1d0d3 100644 --- a/tests/Feature/Docker/DockerFacadeTest.php +++ b/tests/Feature/Docker/DockerFacadeTest.php @@ -27,7 +27,7 @@ protected function setUp() : void config(['app.processmaker_scripts_timeout' => self::DEFAULT_TIMEOUT_COMMAND]); } - public function testValidateDockerDefaultEnvironmentVariables() + public function testValidateDockerDefaultEnvironmentVariables(): void { $dockerHost = Docker::getDockerHost(); $this->assertEquals($dockerHost, ''); @@ -46,7 +46,7 @@ public function testValidateDockerDefaultEnvironmentVariables() ])); } - public function testEvaluateWhenRemoteDockerHostEnabled() + public function testEvaluateWhenRemoteDockerHostEnabled(): void { $dockerHost = 'tcp://127.0.0.1:2375'; $timeout = 12; @@ -74,7 +74,7 @@ public function testEvaluateWhenRemoteDockerHostEnabled() ); } - public function testValidateCustomTimeoutEnvironmentVariable() + public function testValidateCustomTimeoutEnvironmentVariable(): void { // Set custom timeout command $customTimeoutCmd = '/usr/local/bin/gtimeout'; @@ -92,7 +92,7 @@ public function testValidateCustomTimeoutEnvironmentVariable() ])); } - public function testValidateCustomDockerEnvironmentVariable() + public function testValidateCustomDockerEnvironmentVariable(): void { // Set custom docker command $customDockerCmd = '/usr/local/bin/docker'; @@ -102,7 +102,7 @@ public function testValidateCustomDockerEnvironmentVariable() $this->assertEquals($command, $customDockerCmd); } - public function testTimeoutZeroDoesNotBeIncluded() + public function testTimeoutZeroDoesNotBeIncluded(): void { // Define No Timeout $timeout = 0; diff --git a/tests/Feature/Docker/TimeoutsTest.php b/tests/Feature/Docker/TimeoutsTest.php index 1a78307bc5..bc7e6f5588 100644 --- a/tests/Feature/Docker/TimeoutsTest.php +++ b/tests/Feature/Docker/TimeoutsTest.php @@ -93,7 +93,7 @@ private function assertTimeoutNotExceeded($data) /** * Test to ensure PHP scripts timeout */ - public function testPhpScriptTimeoutExceeded() + public function testPhpScriptTimeoutExceeded(): void { config(['simulate_timeout' => true]); $this->assertTimeoutExceeded([ @@ -105,7 +105,7 @@ public function testPhpScriptTimeoutExceeded() /** * Test to ensure PHP scripts do not timeout if they do not exceed limits */ - public function testPhpScriptTimeoutNotExceeded() + public function testPhpScriptTimeoutNotExceeded(): void { $this->assertTimeoutNotExceeded([ 'language' => 'php', diff --git a/tests/Feature/DuplicatedRoutesTest.php b/tests/Feature/DuplicatedRoutesTest.php index bf0dbf1e6e..b9ae4c4368 100644 --- a/tests/Feature/DuplicatedRoutesTest.php +++ b/tests/Feature/DuplicatedRoutesTest.php @@ -13,7 +13,7 @@ class DuplicatedRoutesTest extends TestCase /** * Verify the magic variables for a valid request token */ - public function testRoutesCacheGeneration() + public function testRoutesCacheGeneration(): void { $routes = Route::getRoutes(); diff --git a/tests/Feature/EditDataTest.php b/tests/Feature/EditDataTest.php index 1c2011fb1b..f25ffb5b6d 100644 --- a/tests/Feature/EditDataTest.php +++ b/tests/Feature/EditDataTest.php @@ -103,7 +103,7 @@ private function addProcessPermission(Process $process, array $users, array $gro * * @param User $userAssigned * - * @return \ProcessMaker\Models\Process + * @return Process */ private function createSingleTaskProcessUserAssignment(User $userAssigned) { @@ -132,7 +132,7 @@ private function createSingleTaskProcessUserAssignment(User $userAssigned) /** * Start a process * - * @param \ProcessMaker\Models\Process $process + * @param Process $process * @param string $startEvent * @param array $data * @@ -149,10 +149,10 @@ private function startProcess($process, $startEvent, $data = []) /** * Complete task * - * @param \ProcessMaker\Models\ProcessRequestToken $task + * @param ProcessRequestToken $task * @param array $data * - * @return \ProcessMaker\Models\ProcessRequestToken + * @return ProcessRequestToken */ private function completeTask(ProcessRequestToken $task, $data = []) { @@ -167,7 +167,7 @@ private function completeTask(ProcessRequestToken $task, $data = []) /** * Verify edit data disabled without permissions */ - public function testEditDataWithoutPermissions() + public function testEditDataWithoutPermissions(): void { $this->actingAs($this->user); $this->assertFalse($this->user->hasPermission('requests.edit_data')); @@ -187,7 +187,7 @@ public function testEditDataWithoutPermissions() /** * Test edit data with admin user */ - public function testEditDataWithAdmin() + public function testEditDataWithAdmin(): void { $this->actingAs($this->admin); @@ -206,7 +206,7 @@ public function testEditDataWithAdmin() /** * Verify edit data disabled without permissions from "In progress" task */ - public function testEditDataTaskViewWithoutPermissions() + public function testEditDataTaskViewWithoutPermissions(): void { $this->actingAs($this->user); @@ -223,7 +223,7 @@ public function testEditDataTaskViewWithoutPermissions() /** * Test edit data with permissions from "In progress" task */ - public function testEditDataWithPermissions() + public function testEditDataWithPermissions(): void { $this->actingAs($this->user); @@ -242,7 +242,7 @@ public function testEditDataWithPermissions() /** * Test edit data without global permissions */ - public function testEditDataWithoutGlobalPermissions() + public function testEditDataWithoutGlobalPermissions(): void { //Create process, request, and task $this->actingAs($this->user); @@ -260,7 +260,7 @@ public function testEditDataWithoutGlobalPermissions() /** * Test edit data with global permissions */ - public function testEditDataWithGlobalPermissions() + public function testEditDataWithGlobalPermissions(): void { //Create process, request, and task $this->actingAs($this->user); @@ -283,7 +283,7 @@ public function testEditDataWithGlobalPermissions() /** * Verify Request screen edit data disabled with permissions but request is "Active" */ - public function testEditDataRequestActive() + public function testEditDataRequestActive(): void { $this->actingAs($this->user); @@ -303,7 +303,7 @@ public function testEditDataRequestActive() /** * Test Request screen edit data with permissions and request is "Completed" */ - public function testEditDataRequestCompleted() + public function testEditDataRequestCompleted(): void { $this->actingAs($this->user); diff --git a/tests/Feature/Etag/EtagManagerTest.php b/tests/Feature/Etag/EtagManagerTest.php index 2e9c0229a4..1632025df2 100644 --- a/tests/Feature/Etag/EtagManagerTest.php +++ b/tests/Feature/Etag/EtagManagerTest.php @@ -16,7 +16,7 @@ public function tearDownEtag() EtagManager::etagGenerateUsing(null); } - public function testGetDefaultEtag() + public function testGetDefaultEtag(): void { $request = Request::create('/', 'GET'); $response = response($this->response, 200); @@ -24,7 +24,7 @@ public function testGetDefaultEtag() $this->assertEquals('"e0aa021e21dddbd6d8cecec71e9cf564"', EtagManager::getEtag($request, $response)); } - public function testGetEtagWithCallbackMd5() + public function testGetEtagWithCallbackMd5(): void { $request = Request::create('/', 'GET'); $response = response($this->response, 200); @@ -36,7 +36,7 @@ public function testGetEtagWithCallbackMd5() $this->assertEquals('"e0aa021e21dddbd6d8cecec71e9cf564"', EtagManager::getEtag($request, $response)); } - public function testGetEtagWithCallbackSha256() + public function testGetEtagWithCallbackSha256(): void { $request = Request::create('/', 'GET'); $response = response($this->response, 200); diff --git a/tests/Feature/Etag/HandleEtagCacheInvalidationTest.php b/tests/Feature/Etag/HandleEtagCacheInvalidationTest.php index f9a3663c61..c9a399b375 100644 --- a/tests/Feature/Etag/HandleEtagCacheInvalidationTest.php +++ b/tests/Feature/Etag/HandleEtagCacheInvalidationTest.php @@ -18,7 +18,7 @@ class HandleEtagCacheInvalidationTest extends TestCase private const TEST_ROUTE = '/_test/etag-cache-invalidation'; - public function setUp(): void + protected function setUp(): void { parent::setUp(); @@ -30,7 +30,7 @@ public function setUp(): void ->defaults('etag_tables', 'processes'); } - public function testEtagInvalidatesOnDatabaseUpdate() + public function testEtagInvalidatesOnDatabaseUpdate(): void { $user = User::factory()->create(); $this->actingAs($user); @@ -46,7 +46,7 @@ public function testEtagInvalidatesOnDatabaseUpdate() $this->assertNotNull($initialEtag, 'Initial ETag was set'); // Simulate a database update by changing `updated_at`. - $process->update(['name' => $this->faker->name]); + $process->update(['name' => $this->faker->name()]); // Second request: ETag should change due to the database update. $responseAfterUpdate = $this->get(self::TEST_ROUTE); diff --git a/tests/Feature/Etag/HandleEtagTest.php b/tests/Feature/Etag/HandleEtagTest.php index af9c731e29..48d0e939ea 100644 --- a/tests/Feature/Etag/HandleEtagTest.php +++ b/tests/Feature/Etag/HandleEtagTest.php @@ -13,7 +13,7 @@ class HandleEtagTest extends TestCase private const TEST_ROUTE = '/_test/handle-etag'; - public function setUp(): void + protected function setUp(): void { parent::setUp(); @@ -23,20 +23,20 @@ public function setUp(): void }); } - public function testMiddlewareSetsEtagHeader() + public function testMiddlewareSetsEtagHeader(): void { $response = $this->get(self::TEST_ROUTE); $response->assertHeader('ETag'); } - public function testEtagHeaderHasCorrectValue() + public function testEtagHeaderHasCorrectValue(): void { $expectedEtag = '"' . md5($this->response) . '"'; $response = $this->get(self::TEST_ROUTE); $response->assertHeader('ETag', $expectedEtag); } - public function testRequestReturns200WhenIfNoneMatchDoesNotMatch() + public function testRequestReturns200WhenIfNoneMatchDoesNotMatch(): void { $noneMatch = '"' . md5($this->response . 'NoneMatch') . '"'; $response = $this @@ -47,7 +47,7 @@ public function testRequestReturns200WhenIfNoneMatchDoesNotMatch() $response->assertHeader('ETag'); } - public function testRequestReturns304WhenIfNoneMatchMatches() + public function testRequestReturns304WhenIfNoneMatchMatches(): void { $matchingEtag = '"' . md5($this->response) . '"'; $response = $this @@ -58,7 +58,7 @@ public function testRequestReturns304WhenIfNoneMatchMatches() $response->assertHeader('ETag', $matchingEtag); } - public function testRequestIgnoresWeakEtagsInIfNoneMatch() + public function testRequestIgnoresWeakEtagsInIfNoneMatch(): void { $weakEtag = 'W/"' . md5($this->response) . '"'; $response = $this @@ -69,7 +69,7 @@ public function testRequestIgnoresWeakEtagsInIfNoneMatch() $response->assertHeader('ETag', '"' . md5($this->response) . '"'); } - public function testDefaultGetEtagGeneratesCorrectEtagWithUser() + public function testDefaultGetEtagGeneratesCorrectEtagWithUser(): void { $user = User::factory()->create(); $this->actingAs($user); @@ -84,7 +84,7 @@ public function testDefaultGetEtagGeneratesCorrectEtagWithUser() $response->assertHeader('ETag', $expectedEtag); } - public function testReturns304NotModifiedWhenEtagMatchesTables() + public function testReturns304NotModifiedWhenEtagMatchesTables(): void { $user = User::factory()->create(); $this->actingAs($user); diff --git a/tests/Feature/ExtendedPMQLTest.php b/tests/Feature/ExtendedPMQLTest.php index c7edb4bc4a..cfc24dd131 100644 --- a/tests/Feature/ExtendedPMQLTest.php +++ b/tests/Feature/ExtendedPMQLTest.php @@ -14,7 +14,7 @@ class ExtendedPMQLTest extends TestCase { use RequestHelper; - public function testHandleFieldAlias() + public function testHandleFieldAlias(): void { // Instantiate Faker $faker = Factory::create(); @@ -35,7 +35,7 @@ public function testHandleFieldAlias() $this->assertTrue($processRequest->is($pmqlResult)); } - public function testHandleValueAlias() + public function testHandleValueAlias(): void { // Create a process request $processRequest = ProcessRequest::factory()->create([ @@ -51,7 +51,7 @@ public function testHandleValueAlias() $this->assertContains($processRequest->id, $ids); } - public function testHandleFieldWildcard() + public function testHandleFieldWildcard(): void { $this->markTestSkipped('PMQL does not yet support JSON fields on Microsoft SQL Server.'); @@ -82,7 +82,7 @@ public function testHandleFieldWildcard() $this->assertTrue($processRequestToken->is($pmqlResult)); } - public function testInUsersTimezone() + public function testInUsersTimezone(): void { // Ensure the mysql server timezone is set to UTC $this->assertContains(\DB::select('select @@time_zone as tz')[0]->tz, ['+00:00', 'UTC']); @@ -106,7 +106,7 @@ public function testInUsersTimezone() $this->assertEquals($processRequest2->id, $result->json()['data'][0]['id']); } - public function testRelativeDate() + public function testRelativeDate(): void { $processRequest1 = ProcessRequest::factory()->create([ 'data' => ['date' => Carbon::parse('-10 minutes')->toDateTimeString()], @@ -121,7 +121,7 @@ public function testRelativeDate() $this->assertEquals($processRequest1->id, $result->json()['data'][0]['id']); } - public function testCharComparison() + public function testCharComparison(): void { $processRequest1 = ProcessRequest::factory()->create([ 'data' => ['gender' => 'F'], @@ -137,7 +137,7 @@ public function testCharComparison() $this->assertEquals($processRequest1->id, $result->json()['data'][0]['id']); } - public function testFilterUsernameWithNumbers() + public function testFilterUsernameWithNumbers(): void { $user = User::factory()->create([ 'username' => 'W0584', @@ -152,7 +152,7 @@ public function testFilterUsernameWithNumbers() $this->assertEquals($requesterId, $user->id); } - public function testLowerFunction() + public function testLowerFunction(): void { ProcessRequest::factory()->create([ 'data' => ['YQP_CLIENT_NAME' => 'Teresa Roldan HC'], diff --git a/tests/Feature/FEELFormulasTest.php b/tests/Feature/FEELFormulasTest.php index d6e8179e0f..4fc6eb77a4 100644 --- a/tests/Feature/FEELFormulasTest.php +++ b/tests/Feature/FEELFormulasTest.php @@ -16,7 +16,7 @@ class FEELFormulasTest extends TestCase /** * Test to use an unsupported language */ - public function testUnsupportedLanguage() + public function testUnsupportedLanguage(): void { $this->expectException(ScriptLanguageNotSupported::class); $expresion = new FormalExpression(); @@ -28,7 +28,7 @@ public function testUnsupportedLanguage() /** * Test formulas */ - public function testCalculatedFields() + public function testCalculatedFields(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -47,7 +47,7 @@ public function testCalculatedFields() /** * Test formulas with strings concatenation */ - public function testConcatenatedFormula() + public function testConcatenatedFormula(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); diff --git a/tests/Feature/FEELTest.php b/tests/Feature/FEELTest.php index 7fdbeab608..806b80e8ae 100644 --- a/tests/Feature/FEELTest.php +++ b/tests/Feature/FEELTest.php @@ -16,7 +16,7 @@ class FEELTest extends TestCase /** * Test to use an unsupported language */ - public function testUnsupportedLanguage() + public function testUnsupportedLanguage(): void { $this->expectException(ScriptLanguageNotSupported::class); $expresion = new FormalExpression(); @@ -31,7 +31,7 @@ public function testUnsupportedLanguage() * "hello world" * 'hello world' */ - public function testStrings() + public function testStrings(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -54,7 +54,7 @@ public function testStrings() * 123.25 * 12345678901234567890 */ - public function testNumbers() + public function testNumbers(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -80,7 +80,7 @@ public function testNumbers() * * [1,2,3] */ - public function testArrays() + public function testArrays(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -97,7 +97,7 @@ public function testArrays() * {a:34, "b": "foo"} * {complex: {a:[1,2,3], b:"bar"}} */ - public function testHashmaps() + public function testHashmaps(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -119,7 +119,7 @@ public function testHashmaps() * true * false */ - public function testBooleans() + public function testBooleans(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -142,7 +142,7 @@ public function testBooleans() * 1 * 2 + 3 * 4 * 1 - 3 + 4 / 2 */ - public function testArithmeticOperations() + public function testArithmeticOperations(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -170,7 +170,7 @@ public function testArithmeticOperations() * true and false * true and not false */ - public function testBooleanExpressions() + public function testBooleanExpressions(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -201,7 +201,7 @@ public function testBooleanExpressions() * 5 >= 6 * 5 == 6 */ - public function testComparisonExpressions() + public function testComparisonExpressions(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -244,7 +244,7 @@ public function testComparisonExpressions() * "firstname" matches "/first/" * "firstname" matches "/last/" */ - public function testStringOperations() + public function testStringOperations(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -272,7 +272,7 @@ public function testStringOperations() * 4 in [1,2,3] * 4 not in [1,2,3] */ - public function testArrayOperations() + public function testArrayOperations(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -299,7 +299,7 @@ public function testArrayOperations() * true ? "true" : "false" * false ? "true" : "false" */ - public function testTernaryOperator() + public function testTernaryOperator(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -322,7 +322,7 @@ public function testTernaryOperator() * foo.property * {a: input, b: foo.name} */ - public function testAccessToData() + public function testAccessToData(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -355,7 +355,7 @@ public function testAccessToData() * * input + */ - public function testSyntaxErrorException() + public function testSyntaxErrorException(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -371,7 +371,7 @@ public function testSyntaxErrorException() * * nonobject.bar */ - public function testExpressionFailedException() + public function testExpressionFailedException(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); diff --git a/tests/Feature/FlashMessageTest.php b/tests/Feature/FlashMessageTest.php index bebce9f931..84223556b3 100644 --- a/tests/Feature/FlashMessageTest.php +++ b/tests/Feature/FlashMessageTest.php @@ -23,7 +23,7 @@ protected function setUp(): void } /*one for success_message*/ - public function testSuccessMessage() + public function testSuccessMessage(): void { Auth::login(User::first()); // Create a fake route that flashes a message with a successful alert @@ -42,7 +42,7 @@ public function testSuccessMessage() /** * Tests to ensure that if we do NOT flash an alert to session, no alert is shown */ - public function testNoFlashNoSuccessAlert() + public function testNoFlashNoSuccessAlert(): void { Auth::login(User::first()); // But we need to ensure we're loading a different route that doesn't reflash @@ -53,7 +53,7 @@ public function testNoFlashNoSuccessAlert() $response->assertDontSee('Test Successful Message'); } - public function testErrorMessage() + public function testErrorMessage(): void { // Login Auth::login(User::first()); @@ -73,7 +73,7 @@ public function testErrorMessage() /** * Tests to ensure that if we do NOT flash an alert to session, no FAILURE alert is shown */ - public function testNoFlashNoFailureAlert() + public function testNoFlashNoFailureAlert(): void { // Login Auth::login(User::first()); diff --git a/tests/Feature/HideSystemCategoriesTest.php b/tests/Feature/HideSystemCategoriesTest.php index 59226a31d3..fa12cec679 100644 --- a/tests/Feature/HideSystemCategoriesTest.php +++ b/tests/Feature/HideSystemCategoriesTest.php @@ -39,7 +39,7 @@ private function categoryFiltered($model) $this->assertContains($category->id, $ids); } - public function testCategoryFiltered() + public function testCategoryFiltered(): void { $this->markTestSkipped('FOUR-6653'); @@ -76,7 +76,7 @@ private function resourceInCategoryFiltered($model) $this->assertContains($instance->id, $ids); } - public function testResourceInCategoryFiltered() + public function testResourceInCategoryFiltered(): void { $this->resourceInCategoryFiltered(Process::class); $this->resourceInCategoryFiltered(Script::class); @@ -100,14 +100,14 @@ private function resourceWithoutCategoryNotFiltered($model) $this->assertContains($instance->id, $ids); } - public function testResourceWithoutCategoryNotFiltered() + public function testResourceWithoutCategoryNotFiltered(): void { $this->resourceWithoutCategoryNotFiltered(Process::class); $this->resourceWithoutCategoryNotFiltered(Script::class); $this->resourceWithoutCategoryNotFiltered(Screen::class); } - public function testProcessRequestFiltered() + public function testProcessRequestFiltered(): void { $category = ProcessCategory::factory()->create([ 'is_system' => false, diff --git a/tests/Feature/HomeControllerTest.php b/tests/Feature/HomeControllerTest.php index ebd1527464..810addf5c8 100644 --- a/tests/Feature/HomeControllerTest.php +++ b/tests/Feature/HomeControllerTest.php @@ -2,11 +2,11 @@ namespace Tests\Feature; -use Tests\TestCase; -use ProcessMaker\Models\User; use ProcessMaker\Models\Group; +use ProcessMaker\Models\User; use ProcessMaker\Package\PackageDynamicUI\Models\DynamicUI; use Tests\Feature\Shared\RequestHelper; +use Tests\TestCase; class HomeControllerTest extends TestCase { @@ -22,17 +22,17 @@ protected function setUp(): void } /** @test */ - public function testRedirectsToLoginWhenNotAuthenticated() + public function testRedirectsToLoginWhenNotAuthenticated(): void { $response = $this->get('/'); $response->assertRedirect('/login'); } /** @test */ - public function testRedirectsToCustomDashboardWhenUserHasDashboard() + public function testRedirectsToCustomDashboardWhenUserHasDashboard(): void { $user = User::factory()->create(); - + // Create a custom dashboard for the user DynamicUI::create([ 'type' => 'DASHBOARD', @@ -46,7 +46,7 @@ public function testRedirectsToCustomDashboardWhenUserHasDashboard() } /** @test */ - public function testRedirectsToCustomDashboardWhenGroupHasDashboard() + public function testRedirectsToCustomDashboardWhenGroupHasDashboard(): void { $user = User::factory()->create(); $group = Group::factory()->create(); @@ -65,10 +65,10 @@ public function testRedirectsToCustomDashboardWhenGroupHasDashboard() } /** @test */ - public function testRedirectsToTasksOnMobileWithoutCustomDashboard() + public function testRedirectsToTasksOnMobileWithoutCustomDashboard(): void { $user = User::factory()->create(); - + // Mock MobileHelper to return true $_SERVER['HTTP_USER_AGENT'] = 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1'; $_COOKIE['isMobile'] = 'true'; @@ -81,10 +81,10 @@ public function testRedirectsToTasksOnMobileWithoutCustomDashboard() } /** @test */ - public function testRedirectsToInboxOnDesktopWithoutCustomDashboard() + public function testRedirectsToInboxOnDesktopWithoutCustomDashboard(): void { $user = User::factory()->create(); - + // Mock MobileHelper to return false $_SERVER['HTTP_USER_AGENT'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36'; $_COOKIE['isMobile'] = 'false'; @@ -97,7 +97,7 @@ public function testRedirectsToInboxOnDesktopWithoutCustomDashboard() } /** @test */ - public function testRedirectsToUserUrlRedirect() + public function testRedirectsToUserUrlRedirect(): void { $user = User::factory()->create(); @@ -114,7 +114,7 @@ public function testRedirectsToUserUrlRedirect() } /** @test */ - public function testRedirectsToGroupUrlRedirect() + public function testRedirectsToGroupUrlRedirect(): void { $user = User::factory()->create(); $group = Group::factory()->create(); diff --git a/tests/Feature/Http/Middleware/TrustHostsTest.php b/tests/Feature/Http/Middleware/TrustHostsTest.php index 262fab49eb..00e141e189 100644 --- a/tests/Feature/Http/Middleware/TrustHostsTest.php +++ b/tests/Feature/Http/Middleware/TrustHostsTest.php @@ -2,10 +2,10 @@ namespace Tests\Feature\Http\Middleware; -use Tests\TestCase; -use ProcessMaker\Http\Middleware\TrustHosts; use Illuminate\Http\Request; use Illuminate\Support\Facades\Config; +use ProcessMaker\Http\Middleware\TrustHosts; +use Tests\TestCase; class TrustHostsTest extends TestCase { @@ -17,7 +17,7 @@ protected function setUp(): void $this->middleware = new TrustHosts($this->app); } - public function test_valid_trusted_host() + public function test_valid_trusted_host(): void { // Set app URL for testing Config::set('app.url', 'https://example.processmaker.net'); @@ -32,7 +32,7 @@ public function test_valid_trusted_host() $this->assertEquals(200, $response->status()); } - public function test_invalid_trusted_host() + public function test_invalid_trusted_host(): void { // Set app URL for testing Config::set('app.url', 'https://example.processmaker.net'); @@ -48,14 +48,14 @@ public function test_invalid_trusted_host() }); } - public function test_missing_forwarded_host() + public function test_missing_forwarded_host(): void { $request = Request::create('https://example.processmaker.net'); - + $response = $this->middleware->handle($request, function ($req) { return response()->json(['status' => 'success']); }); $this->assertEquals(200, $response->status()); } -} \ No newline at end of file +} diff --git a/tests/Feature/ImportExport/Api/ExportImportTest.php b/tests/Feature/ImportExport/Api/ExportImportTest.php index 825f794221..6eac924ff3 100644 --- a/tests/Feature/ImportExport/Api/ExportImportTest.php +++ b/tests/Feature/ImportExport/Api/ExportImportTest.php @@ -34,7 +34,7 @@ class ExportImportTest extends TestCase use HelperTrait; use WithFaker; - public function testDownloadExportFile() + public function testDownloadExportFile(): void { $screen = Screen::factory()->create(['title' => 'Screen With Space']); @@ -66,7 +66,7 @@ public function testDownloadExportFile() $this->assertEquals($screen->categories[0]->id, $exportInfo['ScreenCategory']['ids'][0]); } - public function testImportPreview() + public function testImportPreview(): void { [$file] = $this->importFixtures(); @@ -80,7 +80,7 @@ public function testImportPreview() $this->assertArrayHasKey('manifest', $json); } - public function testImport() + public function testImport(): void { [$file] = $this->importFixtures(); @@ -92,7 +92,7 @@ public function testImport() $response->assertStatus(200); } - public function testHandleDuplicateAttributes() + public function testHandleDuplicateAttributes(): void { [$file, $screen, $nestedScreen] = $this->importFixtures(); @@ -163,7 +163,7 @@ private function importFixtures() ]; } - public function testImportOldProcess() + public function testImportOldProcess(): void { $content = file_get_contents(base_path('tests/Feature/ImportExport/fixtures/old-process-payload-41.json')); // Run old process importer job @@ -184,7 +184,7 @@ public function testImportOldProcess() * - Collections */ #[DataProvider('importType')] - public function testExportImportFull($importType) + public function testExportImportFull($importType): void { $classes = [ DataSourceCategory::class, diff --git a/tests/Feature/ImportExport/ExportEncryptedTest.php b/tests/Feature/ImportExport/ExportEncryptedTest.php index ebab09ef29..1f2619d5a0 100644 --- a/tests/Feature/ImportExport/ExportEncryptedTest.php +++ b/tests/Feature/ImportExport/ExportEncryptedTest.php @@ -19,7 +19,7 @@ class ExportEncryptedTest extends TestCase { use RequestHelper; - public function testExportEncrypted() + public function testExportEncrypted(): void { $password = '3KctomfPgE'; $export = [ @@ -45,7 +45,7 @@ public function testExportEncrypted() $this->assertEquals(['foo'], $exportEncrypted['export']['processes']); } - public function testExportSensitiveAssetWithNoPassword() + public function testExportSensitiveAssetWithNoPassword(): void { // Add global signal ProcessCategory::factory()->create(['is_system' => true]); @@ -93,7 +93,7 @@ public function testExportSensitiveAssetWithNoPassword() $this->assertEquals('Password protection required.', $response->json()['message']); } - public function testExportSensitiveAssetWithPassword() + public function testExportSensitiveAssetWithPassword(): void { // Add global signal ProcessCategory::factory()->create(['is_system' => true]); diff --git a/tests/Feature/ImportExport/Exporters/AssignmentExporterTest.php b/tests/Feature/ImportExport/Exporters/AssignmentExporterTest.php index 634f01f863..dd96c30b0f 100644 --- a/tests/Feature/ImportExport/Exporters/AssignmentExporterTest.php +++ b/tests/Feature/ImportExport/Exporters/AssignmentExporterTest.php @@ -60,7 +60,7 @@ private function fixtures() return [$process, $cancelScreen, $requestDetailScreen, $user, $processNotificationSetting1, $processNotificationSetting2]; } - public function testExportImportAssignments() + public function testExportImportAssignments(): void { // Create users and groups $users = User::factory(12)->create(); @@ -162,7 +162,7 @@ public function testExportImportAssignments() $this->assertEquals("$newGroupIds[9]", Utils::getAttributeAtXPath($process, '/bpmn:definitions/bpmn:process/bpmn:callActivity[2]', 'pm:assignedGroups')); } - public function testSomeAssignmentsDoNotExistOnTarget() + public function testSomeAssignmentsDoNotExistOnTarget(): void { $user1 = User::factory()->create(); $user2 = User::factory()->create(); @@ -187,7 +187,7 @@ public function testSomeAssignmentsDoNotExistOnTarget() $this->assertEquals($group2->id, Utils::getAttributeAtXPath($process, '/bpmn:definitions/bpmn:process/bpmn:task[1]', 'pm:assignedGroups')); } - public function testAllAssignmentsDoNotExistOnTarget() + public function testAllAssignmentsDoNotExistOnTarget(): void { $user = User::factory()->create(); $group = Group::factory()->create(); diff --git a/tests/Feature/ImportExport/Exporters/GroupExporterTest.php b/tests/Feature/ImportExport/Exporters/GroupExporterTest.php index dfe3a08708..07d35c71fa 100644 --- a/tests/Feature/ImportExport/Exporters/GroupExporterTest.php +++ b/tests/Feature/ImportExport/Exporters/GroupExporterTest.php @@ -19,7 +19,7 @@ class GroupExporterTest extends TestCase public $withPermissions = true; - public function testGroupExporter() + public function testGroupExporter(): void { DB::beginTransaction(); $group = Group::factory()->create(['name' => 'test group']); @@ -37,7 +37,7 @@ public function testGroupExporter() $this->assertEquals($permissions, $group->permissions->pluck('name')->toArray()); } - public function testGroupWithUsers() + public function testGroupWithUsers(): void { DB::beginTransaction(); diff --git a/tests/Feature/ImportExport/Exporters/ProcessExporterTest.php b/tests/Feature/ImportExport/Exporters/ProcessExporterTest.php index 408674ee05..4cb3360e5a 100644 --- a/tests/Feature/ImportExport/Exporters/ProcessExporterTest.php +++ b/tests/Feature/ImportExport/Exporters/ProcessExporterTest.php @@ -40,7 +40,7 @@ protected function setUp(): void $this->createAdminUser(); } - public function testExport() + public function testExport(): void { $this->addGlobalSignalProcess(); [ @@ -64,7 +64,7 @@ public function testExport() $this->assertContains($process->embed()->first()->uuid, $processDependentUuids); } - public function testImport() + public function testImport(): void { [ 'process' => $process, @@ -118,7 +118,7 @@ function () use ($process, $cancelScreen, $requestDetailScreen, $user) { $this->assertEquals(1, $process->embed()->count()); } - public function testSignals() + public function testSignals(): void { $processA = $this->createProcess('signal-process-a', [ 'name' => 'signal process a', @@ -135,7 +135,7 @@ public function testSignals() $this->assertContains('test_global', $globalSignals); } - public function testSubprocesses() + public function testSubprocesses(): void { $screen = Screen::factory()->create(['title' => 'Screen A']); $parentProcess = $this->createProcess('process-with-different-kinds-of-call-activities', ['name' => 'parent']); @@ -166,7 +166,7 @@ public function testSubprocesses() $this->assertEquals(0, Process::where('name', 'package')->count()); } - public function testSubprocessInTargetInstance() + public function testSubprocessInTargetInstance(): void { $this->addGlobalSignalProcess(); @@ -192,7 +192,7 @@ public function testSubprocessInTargetInstance() ); } - public function testProcessTaskScreen() + public function testProcessTaskScreen(): void { // Create process from template $process = $this->createProcess('process-with-task-screen', ['name' => 'Process with task']); @@ -252,7 +252,7 @@ public function testProcessTaskScreen() } } - public function testProcessTaskScript() + public function testProcessTaskScript(): void { // Create script $category = ScriptCategory::factory()->create(['name' => 'test category']); @@ -304,7 +304,7 @@ public function testProcessTaskScript() } } - public function testDiscardedAssetLinksOnImportIfItExistsOnTheTargetInstance() + public function testDiscardedAssetLinksOnImportIfItExistsOnTheTargetInstance(): void { $this->addGlobalSignalProcess(); @@ -345,7 +345,7 @@ public function testDiscardedAssetLinksOnImportIfItExistsOnTheTargetInstance() $this->assertEquals($subprocessWithSameUUID->id, $pmconfig['processId']); } - public function testDiscardedAssetDoesNotExistOnTargetInstance() + public function testDiscardedAssetDoesNotExistOnTargetInstance(): void { $this->addGlobalSignalProcess(); @@ -377,7 +377,7 @@ public function testDiscardedAssetDoesNotExistOnTargetInstance() //$this->assertContains($originalManagerId, $processWithSameUUID->manager_id); } - public function testDiscardOnExport() + public function testDiscardOnExport(): void { $this->addGlobalSignalProcess(); [ @@ -397,7 +397,7 @@ public function testDiscardOnExport() $this->assertArrayHasKey($user->uuid, $manifest); } - public function testImportMediaWithCopy() + public function testImportMediaWithCopy(): void { $this->addGlobalSignalProcess(); [ @@ -421,7 +421,7 @@ public function testImportMediaWithCopy() } // Process with ABE screens - public function testProcessABEScreen() + public function testProcessABEScreen(): void { // Create process from template $process = $this->createProcess('process-with-abe-screen', ['name' => 'Process with abe']); @@ -475,7 +475,7 @@ public function testProcessABEScreen() } // Process without defined ABE screens - public function testProcessWithoutABEScreen() + public function testProcessWithoutABEScreen(): void { // Create process from template $process = $this->createProcess('process-without-abe-screen', ['name' => 'Process without abe screens']); @@ -492,7 +492,7 @@ public function testProcessWithoutABEScreen() } // Process without ABE properties - public function testProcessWithoutABEProperties() + public function testProcessWithoutABEProperties(): void { // Create process from template $process = $this->createProcess('process-without-abe-properties', ['name' => 'Process without abe properties']); @@ -587,7 +587,7 @@ private function createEmbed(Process $process): Embed 'model_type' => Process::class, 'mime_type' => 'text/url', 'custom_properties' => json_encode([ - 'url' => $this->faker->url, + 'url' => $this->faker->url(), 'type' => 'embed', ]), 'order_column' => 1, diff --git a/tests/Feature/ImportExport/Exporters/ProcessLaunchpadExporterTest.php b/tests/Feature/ImportExport/Exporters/ProcessLaunchpadExporterTest.php index 76a6ebc6f6..caec49e352 100644 --- a/tests/Feature/ImportExport/Exporters/ProcessLaunchpadExporterTest.php +++ b/tests/Feature/ImportExport/Exporters/ProcessLaunchpadExporterTest.php @@ -61,7 +61,7 @@ private function fixtures(): array ]; } - public function testExport() + public function testExport(): void { $this->addGlobalSignalProcess(); [ @@ -80,7 +80,7 @@ public function testExport() $this->assertContains($launchpad->uuid, $processDependentUuids); } - public function testImportWithCopy() + public function testImportWithCopy(): void { $this->addGlobalSignalProcess(); [ diff --git a/tests/Feature/ImportExport/Exporters/ScreenExporterTest.php b/tests/Feature/ImportExport/Exporters/ScreenExporterTest.php index 899145b98c..a9e1d43a22 100644 --- a/tests/Feature/ImportExport/Exporters/ScreenExporterTest.php +++ b/tests/Feature/ImportExport/Exporters/ScreenExporterTest.php @@ -48,7 +48,7 @@ private function fixtures() return [$screen, $screenCategory1, $screenCategory2, $script, $nestedScreen, $nestedNestedScreen]; } - public function testExport() + public function testExport(): void { list($screen, $screenCategory1, $screenCategory2, $script, $nestedScreen, $nestedNestedScreen) = $this->fixtures(); @@ -77,7 +77,7 @@ public function testExport() $this->assertContains($screenCategory1->uuid, $nestedScreenDependentUuids); } - public function testImport() + public function testImport(): void { list($screen, $screenCategory1, $screenCategory2, $script, $nestedScreen, $nestedNestedScreen) = $this->fixtures(); @@ -138,7 +138,7 @@ private function importWithCopy($screenMode) return $screen; } - public function testImportNewCategoryWithExistingScreen() + public function testImportNewCategoryWithExistingScreen(): void { $screen = $this->importWithCopy('update'); $screen->refresh(); @@ -150,7 +150,7 @@ public function testImportNewCategoryWithExistingScreen() $this->assertContains('category 2', $categories); } - public function testImportNewCategoryWithNewScreen() + public function testImportNewCategoryWithNewScreen(): void { $this->importWithCopy('copy'); $screen = Screen::where('title', 'screen 2')->firstOrFail(); @@ -160,7 +160,7 @@ public function testImportNewCategoryWithNewScreen() $this->assertContains('category 4', $categories); } - public function testSeededScreensWithKeyAttribute() + public function testSeededScreensWithKeyAttribute(): void { \DB::beginTransaction(); $exportedScreen = Screen::factory()->create(['title' => 'exported screen', 'key' => 'foo']); @@ -177,7 +177,7 @@ public function testSeededScreensWithKeyAttribute() $this->assertEquals('exported screen', $existingScreen->title); } - public function testScreenWithScriptWatcher() + public function testScreenWithScriptWatcher(): void { $screen = Screen::factory()->create(['title' => 'Screen with script watcher', 'key' => 'foo']); $script = Script::factory()->create(['title' => 'script']); @@ -216,7 +216,7 @@ private function associateScriptWatcher($screen, $script) $screen->saveOrFail(); } - public function testExportScreenInLoop() + public function testExportScreenInLoop(): void { $child1 = Screen::factory()->create(['title' => 'first child screen']); $child2 = Screen::factory()->create(['title' => 'second child screen']); @@ -257,7 +257,7 @@ public function testExportScreenInLoop() $this->assertEquals($newChild3->id, Arr::get($newParent->config, '0.items.1.items.1.config.screen')); } - public function testInterstitalUpdate() + public function testInterstitalUpdate(): void { $screen = Screen::factory()->create([ 'title' => 'Updated Interstitial', @@ -298,7 +298,7 @@ public function testInterstitalUpdate() $this->assertEquals('Bar', $screen->config[0]['items'][0]['component']); } - public function testAttemptToAddMultipleInterstials() + public function testAttemptToAddMultipleInterstials(): void { $screen = Screen::factory()->create([ 'title' => 'Default Interstitial', @@ -331,7 +331,7 @@ public function testAttemptToAddMultipleInterstials() $this->assertNull($newInterstitial->key); } - public function testExportScreenWithMissingDependentScreen() + public function testExportScreenWithMissingDependentScreen(): void { $screen = Screen::factory()->create([ 'title' => 'Screen with missing dependent screen', diff --git a/tests/Feature/ImportExport/Exporters/ScriptExporterTest.php b/tests/Feature/ImportExport/Exporters/ScriptExporterTest.php index 5dcbb6b564..25eb36fa01 100644 --- a/tests/Feature/ImportExport/Exporters/ScriptExporterTest.php +++ b/tests/Feature/ImportExport/Exporters/ScriptExporterTest.php @@ -26,7 +26,7 @@ protected function setUp(): void $this->createAdminUser(); } - public function test() + public function test(): void { DB::beginTransaction(); $environmentVariable1 = EnvironmentVariable::factory()->create(['name' => 'MY_VAR_1']); @@ -54,11 +54,11 @@ public function test() $this->assertDatabaseMissing('environment_variables', ['name' => $environmentVariable3->name]); } - public function testExportUncategorized() + public function testExportUncategorized(): void { DB::beginTransaction(); (new CategorySystemSeeder)->run(); - $uncategorizedCategory = \ProcessMaker\Models\ScriptCategory::first(); + $uncategorizedCategory = ScriptCategory::first(); $script = Script::factory()->create(['title' => 'test']); $script->categories()->sync([$uncategorizedCategory->id]); @@ -66,7 +66,7 @@ public function testExportUncategorized() DB::rollBack(); // Delete all created items since DB::beginTransaction (new CategorySystemSeeder)->run(); - $existingUncategorizedCategory = \ProcessMaker\Models\ScriptCategory::first(); + $existingUncategorizedCategory = ScriptCategory::first(); $existingUuid = $existingUncategorizedCategory->uuid; $this->import($payload); @@ -75,7 +75,7 @@ public function testExportUncategorized() $this->assertEquals($script->categories->first()->uuid, $existingUuid); } - public function testHiddenUsesParentMode() + public function testHiddenUsesParentMode(): void { $scriptCategory1 = ScriptCategory::factory()->create(['name' => 'test category A']); $scriptCategory2 = ScriptCategory::factory()->create(['name' => 'test category B']); @@ -121,7 +121,7 @@ public function testHiddenUsesParentMode() $this->assertEquals('test category B 2', $newCategory2->name); } - public function testNoMatchingRunAsUser() + public function testNoMatchingRunAsUser(): void { DB::beginTransaction(); $user = User::factory()->create(['username' => 'test']); @@ -137,7 +137,7 @@ public function testNoMatchingRunAsUser() $this->assertEquals($script->run_as_user_id, $admin_user->id); } - public function testRunAsUserIdNull() + public function testRunAsUserIdNull(): void { DB::beginTransaction(); $script = Script::factory()->create(['title' => 'test', 'run_as_user_id' => null]); @@ -155,7 +155,7 @@ public function testRunAsUserIdNull() * Test that the environment variables are duplicated when they are used in the script * and the import options are set to create a copy */ - public function testWithDuplicatedEnvVariable() + public function testWithDuplicatedEnvVariable(): void { $environmentVariable1 = EnvironmentVariable::factory()->create(['name' => 'AWS_ACCESS_KEY_ID']); $environmentVariable2 = EnvironmentVariable::factory()->create(['name' => 'AWS_SECRET_ACCESS_KEY']); @@ -191,4 +191,5 @@ public function testWithDuplicatedEnvVariable() $this->assertDatabaseHas('environment_variables', ['name' => $environmentVariable1->name . '_2']); $this->assertDatabaseHas('environment_variables', ['name' => $environmentVariable2->name . '_2']); $this->assertDatabaseMissing('environment_variables', ['name' => $environmentVariable3->name . '_2']); - }} + } +} diff --git a/tests/Feature/ImportExport/Exporters/SignalExporterTest.php b/tests/Feature/ImportExport/Exporters/SignalExporterTest.php index b28ee7879b..fad76485ed 100644 --- a/tests/Feature/ImportExport/Exporters/SignalExporterTest.php +++ b/tests/Feature/ImportExport/Exporters/SignalExporterTest.php @@ -22,7 +22,7 @@ class SignalExporterTest extends TestCase { use HelperTrait; - public function test() + public function test(): void { DB::beginTransaction(); @@ -47,7 +47,7 @@ public function test() $this->assertEquals('Test Global Signal', $signals['test_some_global']); } - public function testExcludeGlobalSignalsFromExport() + public function testExcludeGlobalSignalsFromExport(): void { DB::beginTransaction(); $this->addGlobalSignalProcess(); @@ -73,7 +73,7 @@ public function testExcludeGlobalSignalsFromExport() $this->assertSignalsNotAdded(); } - public function testImportWithSignalExcluded() + public function testImportWithSignalExcluded(): void { DB::beginTransaction(); $this->addGlobalSignalProcess(); @@ -117,7 +117,7 @@ private function assertSignalsNotAdded() $this->assertArrayNotHasKey('test_some_global', $globalSignals); } - public function testCopySignal() + public function testCopySignal(): void { $this->addGlobalSignalProcess(); diff --git a/tests/Feature/ImportExport/Exporters/UserExporterTest.php b/tests/Feature/ImportExport/Exporters/UserExporterTest.php index bd43a4fa36..e9aca54255 100644 --- a/tests/Feature/ImportExport/Exporters/UserExporterTest.php +++ b/tests/Feature/ImportExport/Exporters/UserExporterTest.php @@ -22,7 +22,7 @@ class UserExporterTest extends TestCase public $withPermissions = true; - public function test() + public function test(): void { DB::beginTransaction(); $user = User::factory()->create(['username' => 'testuser', 'email' => 'foo@bar.com']); @@ -43,7 +43,7 @@ public function test() $this->assertEquals($permissions, $user->permissions->pluck('name')->toArray()); } - public function testDoNotCopyAdmin() + public function testDoNotCopyAdmin(): void { DB::beginTransaction(); $this->addGlobalSignalProcess(); diff --git a/tests/Feature/ImportExport/ManifestTest.php b/tests/Feature/ImportExport/ManifestTest.php index c42ac2da83..c7c2ba4418 100644 --- a/tests/Feature/ImportExport/ManifestTest.php +++ b/tests/Feature/ImportExport/ManifestTest.php @@ -35,7 +35,7 @@ private function mockExporter($dependents) }); } - public function testDiscardAndUpdateImportOption() + public function testDiscardAndUpdateImportOption(): void { list($payload, $screen, $screenCategory) = $this->createScreen(); @@ -49,7 +49,7 @@ public function testDiscardAndUpdateImportOption() $this->assertEquals('exported category', $screenCategory->refresh()->name); } - public function testCopyImportOption() + public function testCopyImportOption(): void { list($payload, $screen, $screenCategory) = $this->createScreen(); @@ -86,7 +86,7 @@ private function createScreen() return [$payload, $screen, $screenCategory]; } - public function testLastModifiedBy() + public function testLastModifiedBy(): void { $class = \ProcessMaker\Package\Versions\Models\VersionHistory::class; if (!class_exists($class)) { @@ -114,7 +114,7 @@ public function testLastModifiedBy() $this->assertEquals('Bob The Builder', $lastModifiedBy); } - public function testGetProcessManager() + public function testGetProcessManager(): void { $this->addGlobalSignalProcess(); $managerUser = User::factory()->create([ @@ -134,7 +134,7 @@ public function testGetProcessManager() $this->assertEquals('John Doe', $processManager[0]); } - public function testWarningIfExporterClassMissing() + public function testWarningIfExporterClassMissing(): void { $user = User::factory()->create(); Event::fake(ImportLog::class); @@ -154,7 +154,7 @@ public function testWarningIfExporterClassMissing() }); } - public function testWarningIfModelClassMissing() + public function testWarningIfModelClassMissing(): void { $user = User::factory()->create(); Event::fake(ImportLog::class); @@ -175,7 +175,7 @@ public function testWarningIfModelClassMissing() }); } - public function testWarningIfUnknownColumn() + public function testWarningIfUnknownColumn(): void { $user = User::factory()->create(); Event::fake(ImportLog::class); diff --git a/tests/Feature/ImportExport/PerformanceTest.php b/tests/Feature/ImportExport/PerformanceTest.php index 69638c1a99..c98edfdf0a 100644 --- a/tests/Feature/ImportExport/PerformanceTest.php +++ b/tests/Feature/ImportExport/PerformanceTest.php @@ -9,7 +9,7 @@ class PerformanceTest extends TestCase { - public function testImportPerformance() + public function testImportPerformance(): void { User::factory()->create(['is_administrator' => true]); diff --git a/tests/Feature/ImportExport/UtilsTest.php b/tests/Feature/ImportExport/UtilsTest.php index 73d2b8af1a..c4ac21525c 100644 --- a/tests/Feature/ImportExport/UtilsTest.php +++ b/tests/Feature/ImportExport/UtilsTest.php @@ -19,21 +19,21 @@ public function setUpProcess() $this->process = Process::factory()->create(['bpmn' => $this->bpmn]); } - public function testGetServiceTasks() + public function testGetServiceTasks(): void { $result = Utils::getServiceTasks($this->process, 'package-data-sources/data-source-task-service'); $this->assertCount(1, $result); $this->assertEquals('Data Connector', $result->first()->getAttribute('name')); } - public function testGetPmConfig() + public function testGetPmConfig(): void { $result = Utils::getServiceTasks($this->process, 'package-data-sources/data-source-task-service'); $config = Utils::getPmConfig($result->first()); $this->assertEquals('list', $config['endpoint']); } - public function testFindScreenDependent() + public function testFindScreenDependent(): void { $config = [ [ diff --git a/tests/Feature/InterstitialTest.php b/tests/Feature/InterstitialTest.php index 5afb765ace..66e360fea0 100644 --- a/tests/Feature/InterstitialTest.php +++ b/tests/Feature/InterstitialTest.php @@ -45,6 +45,7 @@ private function loadProcess($file) { $data = []; $data['bpmn'] = Process::getProcessTemplate($file); + return Process::factory()->create($data); } @@ -56,6 +57,7 @@ private function importProcessPackage(string $file) $maxId = Process::max('id') ?? 0; $data = json_decode(file_get_contents(base_path('tests/Fixtures/' . $file)), true); $this->import($data); + return Process::where('id', '>', $maxId)->get(); } @@ -63,6 +65,7 @@ private function startProcess(Process $process, string $event, array $data = []) { $route = route('api.process_events.trigger', [$process->id, 'event' => $event]); $response = $this->apiCall('POST', $route, $data); + return $response->json(); } @@ -71,8 +74,10 @@ private function getActiveTasks() //Get the active tasks of the request $route = route('api.tasks.index', ['status' => 'ACTIVE']); $response = $this->apiCall('GET', $route); + return $response->json('data'); } + private function completeActiveTask(array $data = []) { //Get the active tasks of the request @@ -80,6 +85,7 @@ private function completeActiveTask(array $data = []) //Complete the task $route = route('api.tasks.update', [$tasks[0]['id'], 'status' => 'COMPLETED']); $response = $this->apiCall('PUT', $route, ['data' => $data]); + return $response->json(); } @@ -91,13 +97,14 @@ private function broadcastedTo(RedirectToEvent $event, array $expectedChannels): return false; } } + return true; } /** * Execute a process and check the interstitial redirects */ - public function testExecuteProcessRedirects() + public function testExecuteProcessRedirects(): void { $processes = $this->importProcessPackage('task_subprocess_task.json'); $process = $processes[0]; @@ -118,7 +125,7 @@ public function testExecuteProcessRedirects() [ 'tokenId' => $tasks[0]['id'], 'nodeId' => $tasks[0]['element_id'], - ] + ], ], ]; $dispatched[] = $expectedEvent; @@ -136,14 +143,13 @@ public function testExecuteProcessRedirects() 'params' => [ [ 'tokenId' => $tasks[0]['id'], - ] + ], ], ]; $dispatched[] = $expectedEvent; Event::assertDispatched(RedirectToEvent::class, function ($event) use ($expectedEvent) { return $event->method === $expectedEvent['method'] && $event->params[0]['tokenId'] === $expectedEvent['params'][0]['tokenId']; - }); // Complete active task (sub process - Task 2) and check RedirectToEvent dispatched to next Task not to subprocess summary @@ -154,12 +160,12 @@ public function testExecuteProcessRedirects() 'params' => [ [ 'tokenId' => $tasks[0]['id'], - ] + ], ], 'broadcastTo' => [ 'private-ProcessMaker.Models.ProcessRequest.' . $tasks[0]['process_request_id'], // active task: parent request 'private-ProcessMaker.Models.ProcessRequest.' . $task['process_request_id'], // completed task: child request - ] + ], ]; $dispatched[] = $expectedEvent; Event::assertDispatched(RedirectToEvent::class, function ($event) use ($expectedEvent, $task) { diff --git a/tests/Feature/Jobs/DownloadSecurityLogTest.php b/tests/Feature/Jobs/DownloadSecurityLogTest.php index e5865c2e2e..bb3b80d2fb 100644 --- a/tests/Feature/Jobs/DownloadSecurityLogTest.php +++ b/tests/Feature/Jobs/DownloadSecurityLogTest.php @@ -32,7 +32,7 @@ protected function withUserSetup(): void SecurityLog::factory()->create(['event' => 'attempt']); } - public function testCreateTemporaryFilename() + public function testCreateTemporaryFilename(): void { $job = new DownloadSecurityLog($this->user, DownloadSecurityLog::FORMAT_CSV); $method = new ReflectionMethod($job, 'createTemporaryFilename'); @@ -45,7 +45,7 @@ public function testCreateTemporaryFilename() $this->assertStringContainsString('.xml', $filename); } - public function testExpires() + public function testExpires(): void { $job = new DownloadSecurityLog($this->user, DownloadSecurityLog::FORMAT_CSV); $method = new ReflectionMethod($job, 'getExpires'); @@ -61,7 +61,7 @@ public function testExpires() /** * @covers DownloadSecurityLog::toCSV */ - public function testWriteContentCSV() + public function testWriteContentCSV(): void { $stream = fopen('php://temp', 'w+'); $job = new DownloadSecurityLog($this->user, DownloadSecurityLog::FORMAT_CSV); @@ -76,7 +76,7 @@ public function testWriteContentCSV() * @covers DownloadSecurityLog::toXML * @covers DownloadSecurityLog::endTagsXML */ - public function testWriteContentXML() + public function testWriteContentXML(): void { $stream = fopen('php://temp', 'w+'); $job = new DownloadSecurityLog($this->user, DownloadSecurityLog::FORMAT_XML); @@ -86,7 +86,7 @@ public function testWriteContentXML() $this->assertTrue(fclose($stream)); } - public function testHandleWithSuccess() + public function testHandleWithSuccess(): void { if ( !config('filesystems.disks.s3.key') @@ -108,7 +108,7 @@ public function testHandleWithSuccess() } } - public function testExport() + public function testExport(): void { if ( !config('filesystems.disks.s3.key') diff --git a/tests/Feature/LicenseCommandsTest.php b/tests/Feature/LicenseCommandsTest.php index 5e43b77939..fbba114dad 100644 --- a/tests/Feature/LicenseCommandsTest.php +++ b/tests/Feature/LicenseCommandsTest.php @@ -33,7 +33,7 @@ protected function tearDown(): void parent::tearDown(); } - public function testLicenseUpdateFromLocalPath() + public function testLicenseUpdateFromLocalPath(): void { // Create a sample license file for testing. $sampleLicense = '{"expires_at": "2023-12-31", "packages": ["package-translations", "package-projects"]}'; @@ -46,7 +46,7 @@ public function testLicenseUpdateFromLocalPath() $this->assertTrue(Storage::disk('local')->exists('license.json')); } - public function testLicenseUpdateWithInvalidContent() + public function testLicenseUpdateWithInvalidContent(): void { $invalidLicense = '"invalid": "data"'; $licenseFilePath = tempnam(sys_get_temp_dir(), 'license_'); @@ -57,7 +57,7 @@ public function testLicenseUpdateWithInvalidContent() ->assertExitCode(1); } - public function testLicenseRemoveConfirmation() + public function testLicenseRemoveConfirmation(): void { Storage::disk('local')->put('license.json', 'sample content'); @@ -69,7 +69,7 @@ public function testLicenseRemoveConfirmation() $this->assertTrue(Storage::disk('local')->exists('license.json')); } - public function testLicenseRemove() + public function testLicenseRemove(): void { Storage::disk('local')->put('license.json', '{"expires_at": "2023-12-31", "packages": []}'); @@ -81,7 +81,7 @@ public function testLicenseRemove() $this->assertFalse(Storage::disk('local')->exists('license.json')); } - public function testLicenseRemoveNonExistent() + public function testLicenseRemoveNonExistent(): void { $this->artisan('processmaker:license-remove') ->expectsOutput('license.json does not exist on the local disk.') diff --git a/tests/Feature/LicenseTest.php b/tests/Feature/LicenseTest.php index dd67013ef2..ab49ace894 100644 --- a/tests/Feature/LicenseTest.php +++ b/tests/Feature/LicenseTest.php @@ -44,7 +44,7 @@ protected function tearDown(): void parent::tearDown(); } - public function testLicense() + public function testLicense(): void { $license = [ 'expires_at' => Carbon::now()->addDays(30)->toIso8601String(), @@ -65,7 +65,7 @@ public function testLicense() $this->assertFalse($packagesToIgnore->contains('processmaker/packages')); } - public function testNoLicense() + public function testNoLicense(): void { $packageManifest = $this->app->make(PackageManifest::class); $packagesToIgnore = $packageManifest->loadPackagesToIgnore(); @@ -74,7 +74,7 @@ public function testNoLicense() $this->assertEmpty($packagesToIgnore); } - public function testExpiredLicense() + public function testExpiredLicense(): void { $license = [ 'expires_at' => Carbon::now()->addDays(30)->toIso8601String(), @@ -96,7 +96,7 @@ public function testExpiredLicense() $this->assertTrue($packagesToIgnore->contains('processmaker/package-projects')); } - public function testProviderNoLicense() + public function testProviderNoLicense(): void { $provider = $this->app->make(LicenseServiceProvider::class, [ 'app' => $this->app, @@ -109,7 +109,7 @@ public function testProviderNoLicense() $this->skipPackageDiscover = true; } - public function testProviderWithLicense() + public function testProviderWithLicense(): void { $date = Carbon::now()->addDays(30); $license = [ @@ -132,7 +132,7 @@ public function testProviderWithLicense() $provider->boot(); } - public function testProviderWithExpiredLicense() + public function testProviderWithExpiredLicense(): void { $date = Carbon::now()->addDays(30); $license = [ diff --git a/tests/Feature/Listeners/BpmnSubscriberTest.php b/tests/Feature/Listeners/BpmnSubscriberTest.php index a928c7d517..00b9ac6867 100644 --- a/tests/Feature/Listeners/BpmnSubscriberTest.php +++ b/tests/Feature/Listeners/BpmnSubscriberTest.php @@ -10,13 +10,13 @@ class BpmnSubscriberTest extends TestCase { - public function testErrorHandlerRegistration() + public function testErrorHandlerRegistration(): void { $subscriber = new BpmnSubscriber(); $this->assertNull($subscriber->registerErrorHandler(null, null)); } - public function testErrorHandler() + public function testErrorHandler(): void { $path = storage_path('app/private'); $errorFile = $path . '/unhandled_error.txt'; diff --git a/tests/Feature/LoginRedirectTest.php b/tests/Feature/LoginRedirectTest.php index eb3b0800b2..ea19b5e161 100644 --- a/tests/Feature/LoginRedirectTest.php +++ b/tests/Feature/LoginRedirectTest.php @@ -9,10 +9,9 @@ class LoginRedirectTest extends TestCase { /** - * * Test to verify that the login page redirects to the about page */ - public function testLoginRedirect() + public function testLoginRedirect(): void { $user = User::factory()->create([ 'username' =>'newuser', @@ -25,7 +24,7 @@ public function testLoginRedirect() // Verify it redirects to the login page $response->assertRedirect('/login'); - // When we try to open the about page, we should be redirected to the login page + // When we try to open the about page, we should be redirected to the login page $response = $this->get(route('about.index')); $response->assertRedirect('/login'); @@ -37,7 +36,7 @@ public function testLoginRedirect() $response->assertRedirect(route('about.index')); } - public function testLoginRedirectWithDevtoolsOpeningMapFile() + public function testLoginRedirectWithDevtoolsOpeningMapFile(): void { $user = User::factory()->create([ 'username' =>'newuser', @@ -50,7 +49,7 @@ public function testLoginRedirectWithDevtoolsOpeningMapFile() // Verify it redirects to the login page $response->assertRedirect('/login'); - // When we try to open the about page, we should be redirected to the login page + // When we try to open the about page, we should be redirected to the login page $response = $this->get(route('about.index')); $response->assertRedirect('/login'); diff --git a/tests/Feature/MakeHttpRequestTest.php b/tests/Feature/MakeHttpRequestTest.php index ef9bde7af8..af388b3f60 100644 --- a/tests/Feature/MakeHttpRequestTest.php +++ b/tests/Feature/MakeHttpRequestTest.php @@ -24,7 +24,7 @@ private function callMethod($obj, $name, array $args) /** * Tests the prepareRequestWithOutboundConfig function */ - public function testRequestConstruction() + public function testRequestConstruction(): void { // Prepare the object that will use the trait $testStub = new class { @@ -76,7 +76,7 @@ public function testRequestConstruction() * Tests the prepareRequestWithOutboundConfig function with no standard parameters * (See comments in code for details) */ - public function testRequestConstructionWithoutCommonParams() + public function testRequestConstructionWithoutCommonParams(): void { // Prepare the object that will use the trait $testStub = new class { @@ -131,7 +131,7 @@ public function testRequestConstructionWithoutCommonParams() /** * Verifies that different Guzzle Http Responses are mapped correctly calling the function responseWithHeaderData */ - public function testResponseMapping() + public function testResponseMapping(): void { // Prepare the object that will use the trait $testStub = new class { @@ -199,7 +199,7 @@ public function testResponseMapping() $this->assertEquals(['user' =>['id' => 11, 'name' => 'testName'], 'responseCode' => 99], $mapped); } - public function testCallRest() + public function testCallRest(): void { // Prepare the object that will use the trait $testStub = new class { @@ -254,7 +254,7 @@ public function testCallRest() $this->assertEquals(json_decode('{"id": 1}'), json_decode($body)); } - public function testRequestCall() + public function testRequestCall(): void { // Prepare the object that will use the trait $testStub = new class { @@ -333,7 +333,7 @@ public function testRequestCall() $this->assertEquals(['pmRequestId' => 11], $result); } - public function testRequestCallsWhenEndPointReturnErrors() + public function testRequestCallsWhenEndPointReturnErrors(): void { // Prepare the object that will use the trait $testStub = new class { diff --git a/tests/Feature/MediaConfigTest.php b/tests/Feature/MediaConfigTest.php index abb864d126..7b8b07bed3 100644 --- a/tests/Feature/MediaConfigTest.php +++ b/tests/Feature/MediaConfigTest.php @@ -13,7 +13,7 @@ class MediaConfigTest extends TestCase { use RequestHelper; - public function testMediaMaxFileSize() + public function testMediaMaxFileSize(): void { // Set a small max file size for testing (1MB) Config::set('media-library.max_file_size', 1024 * 1024); // 1MB @@ -74,7 +74,7 @@ public function testMediaMaxFileSize() $this->assertEquals(1, $processRequest->fresh()->getMedia()->count()); } - public function testMediaMaxFileSizeFromEnv() + public function testMediaMaxFileSizeFromEnv(): void { // Test that the config reads from environment variable $maxSize = 5 * 1024 * 1024; // 5MB diff --git a/tests/Feature/Metrics/TaskMetricsTest.php b/tests/Feature/Metrics/TaskMetricsTest.php index 9ffe37081c..d19f1d9adf 100644 --- a/tests/Feature/Metrics/TaskMetricsTest.php +++ b/tests/Feature/Metrics/TaskMetricsTest.php @@ -10,7 +10,7 @@ class TaskMetricsTest extends TestCase { - public function test_task_metric_was_stored() + public function test_task_metric_was_stored(): void { $user = User::factory()->create([ 'is_administrator' => true, diff --git a/tests/Feature/MetricsFacadeTest.php b/tests/Feature/MetricsFacadeTest.php index 84baeecdb1..04818bf309 100644 --- a/tests/Feature/MetricsFacadeTest.php +++ b/tests/Feature/MetricsFacadeTest.php @@ -28,7 +28,7 @@ protected function setUp(): void /** * Test to check if a counter can be registered and incremented using the facade. */ - public function test_facade_can_register_and_increment_counter() + public function test_facade_can_register_and_increment_counter(): void { // Register a counter using the Facade $counter = Metrics::counter('facade_counter', 'Test counter via facade'); @@ -43,7 +43,7 @@ public function test_facade_can_register_and_increment_counter() /** * Test to check if metrics can be rendered using the facade. */ - public function test_facade_can_render_metrics() + public function test_facade_can_render_metrics(): void { // Register and increment a counter $counter = Metrics::counter('facade_render_test', 'Render test via facade'); diff --git a/tests/Feature/MustacheFEELTest.php b/tests/Feature/MustacheFEELTest.php index 2403071606..2fbc8bdb96 100644 --- a/tests/Feature/MustacheFEELTest.php +++ b/tests/Feature/MustacheFEELTest.php @@ -16,7 +16,7 @@ class MustacheFEELTest extends TestCase /** * Test basic mustache templating */ - public function testMustacheTemplates() + public function testMustacheTemplates(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -29,7 +29,7 @@ public function testMustacheTemplates() /** * Test basic mustache with FEEL string concatenation */ - public function testStringConcatenation() + public function testStringConcatenation(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); @@ -46,7 +46,7 @@ public function testStringConcatenation() /** * Test formulas with mustache */ - public function testFormulaAndMustache() + public function testFormulaAndMustache(): void { $expresion = new FormalExpression(); $expresion->setLanguage('FEEL'); diff --git a/tests/Feature/NotificationControlsTest.php b/tests/Feature/NotificationControlsTest.php index 2129aeddb6..2505e9a032 100644 --- a/tests/Feature/NotificationControlsTest.php +++ b/tests/Feature/NotificationControlsTest.php @@ -31,7 +31,7 @@ class NotificationControlsTest extends TestCase * * @return void */ - public function testRequestWithNotifications() + public function testRequestWithNotifications(): void { // Create a user $adminUser = User::factory()->create([ @@ -105,7 +105,7 @@ public function testRequestWithNotifications() * * @return void */ - public function testRequestWithoutNotifications() + public function testRequestWithoutNotifications(): void { // Create a user $adminUser = User::factory()->create([ @@ -152,7 +152,7 @@ public function testRequestWithoutNotifications() /** * Verify that a notification is marked as read when the user edits the related task */ - public function testNotificationMarkedAsReadWhenTaskIsVisited() + public function testNotificationMarkedAsReadWhenTaskIsVisited(): void { // Create a request token to simulate that a new task is created for the user $token = ProcessRequestToken::factory()->create(); diff --git a/tests/Feature/PermissionCacheInvalidationTest.php b/tests/Feature/PermissionCacheInvalidationTest.php index c27e9bfcc9..ee26c8f3d8 100644 --- a/tests/Feature/PermissionCacheInvalidationTest.php +++ b/tests/Feature/PermissionCacheInvalidationTest.php @@ -37,7 +37,7 @@ protected function setUp(): void $this->permissionService = app(PermissionServiceManager::class); } - public function test_permission_cache_is_invalidated_when_permissions_updated() + public function test_permission_cache_is_invalidated_when_permissions_updated(): void { // Create test permissions $permission1 = Permission::factory()->create([ @@ -79,7 +79,7 @@ public function test_permission_cache_is_invalidated_when_permissions_updated() $this->assertContains('another-permission', $freshPermissions); } - public function test_permission_cache_is_invalidated_when_user_permissions_removed() + public function test_permission_cache_is_invalidated_when_user_permissions_removed(): void { // Create test permissions $permission1 = Permission::factory()->create(['name' => 'permission-1']); diff --git a/tests/Feature/PermissionsTest.php b/tests/Feature/PermissionsTest.php index 5e7af55fed..dee0e0feb7 100644 --- a/tests/Feature/PermissionsTest.php +++ b/tests/Feature/PermissionsTest.php @@ -32,7 +32,7 @@ protected function withUserSetup() $asp->boot(); } - public function testSetPermissionsForUser() + public function testSetPermissionsForUser(): void { $this->user = User::factory()->create([ 'is_administrator' => false, @@ -54,7 +54,7 @@ public function testSetPermissionsForUser() $response->assertStatus(200); } - public function testSetPermissionsForGroup() + public function testSetPermissionsForGroup(): void { $this->user = User::factory()->create([ 'is_administrator' => false, @@ -89,7 +89,7 @@ public function testSetPermissionsForGroup() $response->assertStatus(200); } - public function testAdminPermissions() + public function testAdminPermissions(): void { $this->user = User::factory()->create([ 'is_administrator' => false, @@ -110,7 +110,7 @@ public function testAdminPermissions() $response->assertStatus(200); } - public function testCreatePermission() + public function testCreatePermission(): void { $attributes = [ 'name' => 'create-package_permissions', @@ -125,7 +125,7 @@ public function testCreatePermission() $this->assertDatabaseHas('permissions', $attributes); } - public function testLoadsGroupPermissions() + public function testLoadsGroupPermissions(): void { // Create group and assign permission $group = Group::factory()->create(); @@ -144,7 +144,7 @@ public function testLoadsGroupPermissions() $this->assertContains('test-permission', $permissions); } - public function testLoadsNestedGroupPermissions() + public function testLoadsNestedGroupPermissions(): void { // Create groups $groupA = Group::factory()->create(); @@ -175,7 +175,7 @@ public function testLoadsNestedGroupPermissions() $this->assertContains('permission-b', $permissions); } - public function testItHandlesCircularGroupPermissionsReferences() + public function testItHandlesCircularGroupPermissionsReferences(): void { // Create groups $groupA = Group::factory()->create(); diff --git a/tests/Feature/ProcessHtmlTest.php b/tests/Feature/ProcessHtmlTest.php index 658eedcbdc..acc68b1fab 100644 --- a/tests/Feature/ProcessHtmlTest.php +++ b/tests/Feature/ProcessHtmlTest.php @@ -18,7 +18,7 @@ class ProcessHtmlTest extends TestCase * A process with html entities in the documentation field should be able to be loaded. * By default, the bpmn processes are loaded with the html entities support. */ - public function test_process_with_html_can_be_loaded() + public function test_process_with_html_can_be_loaded(): void { $this->user = User::factory()->create([ 'is_administrator' => false, @@ -33,7 +33,7 @@ public function test_process_with_html_can_be_loaded() /** * A process with html entities in the documentation field should be able to be stored. */ - public function test_store_process_with_html_entities() + public function test_store_process_with_html_entities(): void { $route = route('api.processes.store'); $base = Process::factory()->make([ @@ -57,7 +57,7 @@ public function test_store_process_with_html_entities() /** * A process with html entities in the documentation field should be able to be updated. */ - public function test_update_process_with_html_entities() + public function test_update_process_with_html_entities(): void { // First create a process $route = route('api.processes.store'); @@ -97,7 +97,7 @@ public function test_update_process_with_html_entities() * Test updating BPMN content directly via the updateBpmn endpoint. * This endpoint allows updating only the BPMN content, not the other process attributes. */ - public function test_update_bpmn_endpoint_with_html_entities() + public function test_update_bpmn_endpoint_with_html_entities(): void { // First create a process $route = route('api.processes.store'); diff --git a/tests/Feature/Processes/EnvironmentVariablesTest.php b/tests/Feature/Processes/EnvironmentVariablesTest.php index 0b3ac2b174..37cfc9879e 100644 --- a/tests/Feature/Processes/EnvironmentVariablesTest.php +++ b/tests/Feature/Processes/EnvironmentVariablesTest.php @@ -15,7 +15,7 @@ class EnvironmentVariablesTest extends TestCase * * @return void */ - public function testIndexRoute() + public function testIndexRoute(): void { // get the URL $response = $this->webCall('GET', '/designer/environment-variables'); @@ -32,7 +32,7 @@ public function testIndexRoute() * * @return void */ - public function testEditRoute() + public function testEditRoute(): void { // get the URL $response = $this->webCall('GET', '/designer/environment-variables/' . diff --git a/tests/Feature/Processes/ErrorExecutionNotificationTest.php b/tests/Feature/Processes/ErrorExecutionNotificationTest.php index e589b70459..21a1b3b596 100644 --- a/tests/Feature/Processes/ErrorExecutionNotificationTest.php +++ b/tests/Feature/Processes/ErrorExecutionNotificationTest.php @@ -54,7 +54,7 @@ private function mockScriptRunner() }); } - public function testNoManager() + public function testNoManager(): void { Notification::fake(); $this->mockScriptRunner(); @@ -65,7 +65,7 @@ public function testNoManager() Notification::assertNothingSent(); } - public function testInAppNotificationFromScript() + public function testInAppNotificationFromScript(): void { Notification::fake(); $this->mockScriptRunner(); @@ -84,7 +84,7 @@ function (ErrorExecutionNotification $notification, $channels) { ); } - public function testMailNotificationFromScript() + public function testMailNotificationFromScript(): void { Notification::fake(); $this->mockScriptRunner(); diff --git a/tests/Feature/Processes/ExportImportScreenTest.php b/tests/Feature/Processes/ExportImportScreenTest.php index 7eff196c00..5b13e24eb1 100644 --- a/tests/Feature/Processes/ExportImportScreenTest.php +++ b/tests/Feature/Processes/ExportImportScreenTest.php @@ -23,7 +23,7 @@ class ExportImportScreenTest extends TestCase * * @return void */ - public function testExportImportProcess() + public function testExportImportProcess(): void { // Create an admin user $adminUser = User::factory()->create([ @@ -134,7 +134,7 @@ public function testExportImportProcess() $this->assertEquals('Invalid Format', $response->json('message')); } - public function testImportScreenWithWatchers() + public function testImportScreenWithWatchers(): void { // Load the file to test $fileName = __DIR__ . '/../../Fixtures/screen_with_watchers.json'; @@ -152,7 +152,7 @@ public function testImportScreenWithWatchers() $this->assertTrue($response->json('status')['screens']['success']); } - public function testImportNestedScreen() + public function testImportNestedScreen(): void { // Load the file to test $fileName = __DIR__ . '/../../Fixtures/nested_screens.json'; diff --git a/tests/Feature/Processes/ExportImportTest.php b/tests/Feature/Processes/ExportImportTest.php index 64366ac04a..cba097f958 100644 --- a/tests/Feature/Processes/ExportImportTest.php +++ b/tests/Feature/Processes/ExportImportTest.php @@ -47,7 +47,7 @@ class ExportImportTest extends TestCase * * @return void */ - public function testProcessImportRefs() + public function testProcessImportRefs(): void { // Create a pre-existing screen and script Screen::factory()->count(1)->create(['title' => 'Existing Screen']); @@ -172,7 +172,7 @@ private function checkWatchers($response) * * @return void */ - public function testExportImportProcess() + public function testExportImportProcess(): void { // Create an admin user $adminUser = User::factory()->create([ @@ -283,7 +283,7 @@ public function testExportImportProcess() * Test anonymous user assignments are not removed. Instead, * they are are updated to the current instance's anon user ID */ - public function testExportWithAnonymousUser() + public function testExportWithAnonymousUser(): void { $originalAnonUser = app(AnonymousUser::class); $adminUser = User::factory()->create([ @@ -338,7 +338,7 @@ public function testExportWithAnonymousUser() /** * Test different assignments should not be removed except by user group. */ - public function test_different_assignments_should_not_be_removed_except_by_user_group() + public function test_different_assignments_should_not_be_removed_except_by_user_group(): void { // Load file to import $file = new UploadedFile(base_path('tests/storage/process/') . 'test_process_import_different_tasks_assignments.json', 'test_process_import_different_tasks_assignments.json', null, null, true); @@ -449,7 +449,7 @@ public function test_different_assignments_should_not_be_removed_except_by_user_ /** * Test assignments after import process. */ - public function test_assignmets_after_import() + public function test_assignmets_after_import(): void { // Load file to import $file = new UploadedFile(base_path('tests/storage/process/') . 'test_process_import.json', 'test_process_import.json', null, null, true); @@ -572,7 +572,7 @@ public function test_assignmets_after_import() * * @return void */ - public function testProcessImportInvalidTextFile() + public function testProcessImportInvalidTextFile(): void { // Set path and name of file to import $filePath = 'tests/storage/process/'; @@ -595,7 +595,7 @@ public function testProcessImportInvalidTextFile() * * @return void */ - public function testProcessImportInvalidJsonFile() + public function testProcessImportInvalidJsonFile(): void { // Set path and name of file to import $filePath = 'tests/storage/process/'; @@ -618,7 +618,7 @@ public function testProcessImportInvalidJsonFile() * * @return void */ - public function testProcessImportInvalidBase64File() + public function testProcessImportInvalidBase64File(): void { // Set path and name of file to import $filePath = 'tests/storage/process/'; @@ -641,7 +641,7 @@ public function testProcessImportInvalidBase64File() * * @return void */ - public function testProcessImportInvalidBinaryFile() + public function testProcessImportInvalidBinaryFile(): void { // Set path and name of file to import $filePath = 'tests/storage/process/'; @@ -664,7 +664,7 @@ public function testProcessImportInvalidBinaryFile() * * @return void */ - public function testImportMultipleAssets() + public function testImportMultipleAssets(): void { // Create a pre-existing screen and script Screen::factory()->count(2)->create(['title' => 'Existing Screen']); @@ -742,7 +742,7 @@ public function testImportMultipleAssets() $this->assertEquals($scripts['Script for Watcher'], $nested->watchers[0]['script_id']); } - public function testNestedScreensRecursion() + public function testNestedScreensRecursion(): void { $this->spy(Screen::class, function ($mock) { $mock->shouldNotReceive('findOrFail'); @@ -756,7 +756,7 @@ public function testNestedScreensRecursion() $this->apiCall('POST', "/processes/{$processId}/export"); } - public function testExportImportWithProcessManager() + public function testExportImportWithProcessManager(): void { $process = Process::factory()->create(['name' => 'Manager test']); $process->manager_id = 123; diff --git a/tests/Feature/Processes/MessageTest.php b/tests/Feature/Processes/MessageTest.php index 07205a1f31..3cd0b69ca6 100644 --- a/tests/Feature/Processes/MessageTest.php +++ b/tests/Feature/Processes/MessageTest.php @@ -17,7 +17,7 @@ public function setUpWithPersonalAccessClient() $this->withPersonalAccessClient(); } - public function test() + public function test(): void { $script = Script::factory()->create([ 'language' => 'php', diff --git a/tests/Feature/Processes/ModelerTest.php b/tests/Feature/Processes/ModelerTest.php index 2e0d423b15..0ac0a09b9b 100644 --- a/tests/Feature/Processes/ModelerTest.php +++ b/tests/Feature/Processes/ModelerTest.php @@ -9,7 +9,7 @@ class ModelerTest extends TestCase { - public function testInflightRoute() + public function testInflightRoute(): void { $user = User::factory()->admin()->create(); $process = Process::factory()->create(); @@ -26,7 +26,7 @@ public function testInflightRoute() $response->assertSee(__('Process Map')); } - public function testInflightRouteWithViewPermission() + public function testInflightRouteWithViewPermission(): void { $user = User::factory()->create(); $adminUser = User::factory()->admin()->create(); diff --git a/tests/Feature/Processes/ScreenConsolidatorTest.php b/tests/Feature/Processes/ScreenConsolidatorTest.php index dbac3dddf8..f24d0f4ff6 100644 --- a/tests/Feature/Processes/ScreenConsolidatorTest.php +++ b/tests/Feature/Processes/ScreenConsolidatorTest.php @@ -21,7 +21,7 @@ class ScreenConsolidatorTest extends TestCase * * @return void */ - public function testExportImportProcess() + public function testExportImportProcess(): void { // Create an admin user $adminUser = User::factory()->create([ @@ -258,7 +258,7 @@ public function testExportImportProcess() * * @return void */ - public function testNestedNavButtons() + public function testNestedNavButtons(): void { // Create an admin user $adminUser = User::factory()->create([ @@ -325,7 +325,7 @@ public function testNestedNavButtons() * * @return void */ - public function testRecordListWithoutRecordForm() + public function testRecordListWithoutRecordForm(): void { // Create an admin user $adminUser = User::factory()->create([ diff --git a/tests/Feature/Processes/ScreenTest.php b/tests/Feature/Processes/ScreenTest.php index be77a3cdc0..e1fbb42284 100644 --- a/tests/Feature/Processes/ScreenTest.php +++ b/tests/Feature/Processes/ScreenTest.php @@ -15,7 +15,7 @@ class ScreenTest extends TestCase * * @return void */ - public function testIndexRoute() + public function testIndexRoute(): void { // get the URL $response = $this->webCall('GET', '/designer/screens'); @@ -30,7 +30,7 @@ public function testIndexRoute() * * @return void */ - public function testEditRoute() + public function testEditRoute(): void { // get the URL $response = $this->webCall('GET', '/designer/screens/' . diff --git a/tests/Feature/Processes/ScriptUserTaskTest.php b/tests/Feature/Processes/ScriptUserTaskTest.php index ba510d657e..f480b222d6 100644 --- a/tests/Feature/Processes/ScriptUserTaskTest.php +++ b/tests/Feature/Processes/ScriptUserTaskTest.php @@ -16,7 +16,7 @@ class ScriptUserTaskTest extends TestCase { use RequestHelper; - public function testJobThatRunsAScriptTaskWithAUser() + public function testJobThatRunsAScriptTaskWithAUser(): void { $this->markTestSkipped(); diff --git a/tests/Feature/Processes/ScriptsTest.php b/tests/Feature/Processes/ScriptsTest.php index b6e4805579..7bf958fdf0 100644 --- a/tests/Feature/Processes/ScriptsTest.php +++ b/tests/Feature/Processes/ScriptsTest.php @@ -15,7 +15,7 @@ class ScriptsTest extends TestCase * * @return void */ - public function testIndexRoute() + public function testIndexRoute(): void { // get the URL $response = $this->webCall('GET', '/designer/scripts'); diff --git a/tests/Feature/ProcessesTest.php b/tests/Feature/ProcessesTest.php index 17ec5346ea..194651a622 100644 --- a/tests/Feature/ProcessesTest.php +++ b/tests/Feature/ProcessesTest.php @@ -31,7 +31,7 @@ protected function withUserSetup() $asp->boot(); } - public function testIndex() + public function testIndex(): void { $this->user = User::factory()->create([ 'is_administrator' => false, @@ -56,7 +56,7 @@ public function testIndex() $response->assertSee('Processes'); } - public function testEdit() + public function testEdit(): void { $process = Process::factory()->create(['name' => 'Test Edit']); @@ -83,7 +83,7 @@ public function testEdit() $response->assertSee('Test Edit'); } - public function testCreate() + public function testCreate(): void { $process = Process::factory()->create(['name' => 'Test Create']); @@ -109,7 +109,7 @@ public function testCreate() $response->assertViewIs('processes.create'); } - public function testStore() + public function testStore(): void { $process = Process::factory()->create(['name' => 'Test Edit']); @@ -140,7 +140,7 @@ public function testStore() $this->assertDatabaseHas('processes', ['name' => 'Stored new process']); } - public function testUpdate() + public function testUpdate(): void { $process = Process::factory()->create(['name' => 'Test Update']); @@ -170,7 +170,7 @@ public function testUpdate() $this->assertDatabaseHas('processes', ['name' => 'Updated Name']); } - public function testArchive() + public function testArchive(): void { $process = Process::factory()->create(['name' => 'Test Archive']); @@ -196,7 +196,7 @@ public function testArchive() $this->assertDatabaseMissing('processes', ['id' => $process->id, 'deleted_at' => null]); } - public function testIndexPermissionRedirect() + public function testIndexPermissionRedirect(): void { $this->user = User::factory()->create(); $response = $this->webCall('GET', '/processes'); diff --git a/tests/Feature/RedirectTest.php b/tests/Feature/RedirectTest.php index 1fbec39dea..befbb4fac2 100644 --- a/tests/Feature/RedirectTest.php +++ b/tests/Feature/RedirectTest.php @@ -17,7 +17,7 @@ class RedirectTest extends TestCase * * @return void */ - public function test401RedirectsToLogin() + public function test401RedirectsToLogin(): void { $user = User::factory()->create([ 'is_administrator' => false, @@ -35,7 +35,7 @@ public function test401RedirectsToLogin() /** * Redirect to password change when user has flag to true */ - public function testRedirectToForcePasswordChange() + public function testRedirectToForcePasswordChange(): void { $user = User::factory()->create([ 'force_change_password' => 1, diff --git a/tests/Feature/RequestControllerShowTest.php b/tests/Feature/RequestControllerShowTest.php index fa9add2348..7723ef732c 100644 --- a/tests/Feature/RequestControllerShowTest.php +++ b/tests/Feature/RequestControllerShowTest.php @@ -19,7 +19,7 @@ class RequestControllerShowTest extends TestCase protected function setUp(): void { parent::setUp(); - + $this->user = User::factory()->create([ 'is_administrator' => true, ]); @@ -30,7 +30,7 @@ protected function setUp(): void * * @return void */ - public function testShowPageRendersManagerModelerScripts() + public function testShowPageRendersManagerModelerScripts(): void { // Create a process $process = Process::factory()->create([ @@ -87,10 +87,10 @@ public function testShowPageRendersManagerModelerScripts() // Get the filtered scripts (should exclude the disabled ones) $managerModelerScripts = $response->viewData('managerModelerScripts'); - + // Assert that the filtered scripts contain only the allowed scripts $this->assertCount(2, $managerModelerScripts); - + // Check that the disabled scripts are filtered out $scriptSources = array_column($managerModelerScripts, 'src'); $this->assertContains('/js/test-script-1.js', $scriptSources); @@ -104,7 +104,7 @@ public function testShowPageRendersManagerModelerScripts() $response->assertSee('type="module"', false); $response->assertSee('async'); $response->assertSee('defer'); - + // Assert that disabled scripts are not rendered $response->assertDontSee('/js/package-slideshow.js'); $response->assertDontSee('/js/package-process-optimization.js'); diff --git a/tests/Feature/RequestLockTest.php b/tests/Feature/RequestLockTest.php index 9c995d02c0..9f265d9343 100644 --- a/tests/Feature/RequestLockTest.php +++ b/tests/Feature/RequestLockTest.php @@ -9,7 +9,7 @@ class RequestLockTest extends TestCase { - public function testExitJobWithoutUnlock() + public function testExitJobWithoutUnlock(): void { $request = new TestBpmnActionLock; $request->requestLock([1]); @@ -18,7 +18,7 @@ public function testExitJobWithoutUnlock() $this->assertNull($locks[0]->due_at); } - public function testCurrentLock() + public function testCurrentLock(): void { $request = new TestBpmnActionLock; $request->requestLock([1]); @@ -27,7 +27,7 @@ public function testCurrentLock() $this->assertNull($currentLock->due_at); } - public function testRequestLockInParallel() + public function testRequestLockInParallel(): void { $request = new TestBpmnActionLock; $lock = $request->requestLock([1]); @@ -38,7 +38,7 @@ public function testRequestLockInParallel() $this->assertEquals($lock->id, $currentLock->id); } - public function testUnlock() + public function testUnlock(): void { $request = new TestBpmnActionLock; $request->requestLock([1]); @@ -50,7 +50,7 @@ public function testUnlock() $this->assertCount(0, $locksActive); } - public function testActivateLock() + public function testActivateLock(): void { $request = new TestBpmnActionLock; $lock = $request->requestLock([1]); @@ -63,7 +63,7 @@ public function testActivateLock() $this->assertCount(1, $locksActive); } - public function testActivateLocksThenUnlock() + public function testActivateLocksThenUnlock(): void { $request = new TestBpmnActionLock; $lock1 = $request->requestLock([1]); diff --git a/tests/Feature/RequestTest.php b/tests/Feature/RequestTest.php index ac86ed05f2..f446f945e2 100644 --- a/tests/Feature/RequestTest.php +++ b/tests/Feature/RequestTest.php @@ -40,7 +40,7 @@ class RequestTest extends TestCase * * @return void */ - public function testIndexRoute() + public function testIndexRoute(): void { // get the URL $response = $this->webCall('GET', '/requests'); @@ -54,7 +54,7 @@ public function testIndexRoute() * * @return void */ - public function testRequestAllRouteAsAdmin() + public function testRequestAllRouteAsAdmin(): void { $this->user = User::factory()->create(); $request = ProcessRequest::factory()->create(); @@ -77,7 +77,7 @@ public function testRequestAllRouteAsAdmin() * * @return void */ - public function testShowRouteForUser() + public function testShowRouteForUser(): void { $this->user = User::factory()->create(); $request = ProcessRequest::factory()->create(); @@ -100,7 +100,7 @@ public function testShowRouteForUser() * * @return void */ - public function testShowCancelRoute() + public function testShowCancelRoute(): void { $Request_id = ProcessRequest::factory()->create()->id; // get the URL @@ -111,7 +111,7 @@ public function testShowCancelRoute() $response->assertSee('Requested By'); } - public function testShowRouteWithAssignedUser() + public function testShowRouteWithAssignedUser(): void { $this->user = User::factory()->create(); @@ -123,7 +123,7 @@ public function testShowRouteWithAssignedUser() $response->assertStatus(200); } - public function testShowRouteWithAdministrator() + public function testShowRouteWithAdministrator(): void { $this->user = User::factory()->create([ 'is_administrator' => true, @@ -135,7 +135,7 @@ public function testShowRouteWithAdministrator() $response->assertStatus(200); } - public function testShowMediaFiles() + public function testShowMediaFiles(): void { $process_request = ProcessRequest::factory()->create(); $file_1 = $process_request @@ -158,7 +158,7 @@ public function testShowMediaFiles() $response->assertSee('photo1.jpg', false); } - public function testCompletedCount() + public function testCompletedCount(): void { $completed1 = ProcessRequest::factory()->create([ 'status' => 'COMPLETED', @@ -178,7 +178,7 @@ public function testCompletedCount() * Test show default summary tab * @return void */ - public function testRequestShowWithCaseNumberNull() + public function testRequestShowWithCaseNumberNull(): void { $category = ProcessCategory::factory()->create([ 'is_system' => true, @@ -211,7 +211,7 @@ public function testRequestShowWithCaseNumberNull() * Test show the request is when the status is Error * @return void */ - public function testRequestError() + public function testRequestError(): void { $process = Process::factory()->create(); $requestCanceled = ProcessRequest::factory()->create([ @@ -232,7 +232,7 @@ public function testRequestError() * Test show default summary tab * @return void */ - public function testShowDefaultSummaryTab() + public function testShowDefaultSummaryTab(): void { $process = Process::factory()->create(); $process_request = ProcessRequest::factory()->create([ @@ -254,7 +254,7 @@ public function testShowDefaultSummaryTab() * Test show custom request detail screen summary tab * @return void */ - public function testShowCustomRequestDetailScreenSummaryTab() + public function testShowCustomRequestDetailScreenSummaryTab(): void { $screen = Screen::factory()->create([ 'type' => 'DISPLAY', @@ -282,7 +282,7 @@ public function testShowCustomRequestDetailScreenSummaryTab() * Without custom screen "Request Detail Screen" * @return void */ - public function testRequestInProgressWithDataDefaultSummary() + public function testRequestInProgressWithDataDefaultSummary(): void { $process = Process::factory()->create(); $requestCanceled = ProcessRequest::factory()->create([ @@ -305,7 +305,7 @@ public function testRequestInProgressWithDataDefaultSummary() * Without custom screen "Cancel Screen" * @return void */ - public function testRequestCanceledDefaultSummary() + public function testRequestCanceledDefaultSummary(): void { $process = Process::factory()->create(); $requestCompleted = ProcessRequest::factory()->create([ @@ -328,7 +328,7 @@ public function testRequestCanceledDefaultSummary() * Without end event custom screen "Summary screen" * @return void */ - public function testRequestCompletedDefaultSummary() + public function testRequestCompletedDefaultSummary(): void { $process = Process::factory()->create(); $requestCompleted = ProcessRequest::factory()->create([ @@ -351,7 +351,7 @@ public function testRequestCompletedDefaultSummary() * Without end event custom screen "Summary screen" * @return void */ - public function testRequestCompletedWithDataDefaultSummary() + public function testRequestCompletedWithDataDefaultSummary(): void { $process = Process::factory()->create(); $requestCompleted = ProcessRequest::factory()->create([ @@ -374,7 +374,7 @@ public function testRequestCompletedWithDataDefaultSummary() * With custom screen "Request Detail Screen" * @return void */ - public function testRequestInprogressWithCustomScreenSummaryTab() + public function testRequestInprogressWithCustomScreenSummaryTab(): void { $screen = Screen::factory()->create([ 'type' => 'DISPLAY', @@ -404,7 +404,7 @@ public function testRequestInprogressWithCustomScreenSummaryTab() * With custom screen "Cancel Screen" * @return void */ - public function testRequestCanceledWithCustomScreenSummaryTab() + public function testRequestCanceledWithCustomScreenSummaryTab(): void { $screen = Screen::factory()->create([ 'type' => 'DISPLAY', @@ -434,7 +434,7 @@ public function testRequestCanceledWithCustomScreenSummaryTab() * With custom screen "Summary Screen" * @return void */ - public function testRequestCompletedWithCustomScreenSummaryTab() + public function testRequestCompletedWithCustomScreenSummaryTab(): void { $screen = Screen::factory()->create([ 'type' => 'DISPLAY', @@ -472,7 +472,7 @@ public function testRequestCompletedWithCustomScreenSummaryTab() $response->assertSee('TEST WITH CUSTOM REQUEST DETAIL SCREEN'); } - public function testShowTheLinkOpenProcessLaunchpad() + public function testShowTheLinkOpenProcessLaunchpad(): void { $process = Process::factory()->create([ 'name' => 'SomeOtherProcess', @@ -488,7 +488,7 @@ public function testShowTheLinkOpenProcessLaunchpad() $response->assertSee('Open Process Launchpad'); } - public function testNotShowTheLinkOpenProcessLaunchpad() + public function testNotShowTheLinkOpenProcessLaunchpad(): void { $process = Process::factory()->create([ 'name' => 'DocuSignAuthentication', diff --git a/tests/Feature/RouteTest.php b/tests/Feature/RouteTest.php index b5c843a9c6..72f7becf1d 100644 --- a/tests/Feature/RouteTest.php +++ b/tests/Feature/RouteTest.php @@ -14,7 +14,7 @@ class RouteTest extends TestCase * This this does some basic checks to make sure we converted routes * to the correct class-based routes as part of the Laravel 8 upgrade */ - public function testIndexRoute() + public function testIndexRoute(): void { $ethosRoutePath = base_path('vendor/processmaker/package-ellucian-ethos/routes/'); if (file_exists($ethosRoutePath . 'api.php')) { diff --git a/tests/Feature/Screens/ScreenCacheTest.php b/tests/Feature/Screens/ScreenCacheTest.php index 7bf3f081fe..a56f3cc02f 100644 --- a/tests/Feature/Screens/ScreenCacheTest.php +++ b/tests/Feature/Screens/ScreenCacheTest.php @@ -12,7 +12,7 @@ class ScreenCacheTest extends TestCase { use RequestHelper; - public function testScreenCache() + public function testScreenCache(): void { // 1. Import a process with a screen with a nested without screen selected $process = $this->createProcessFromJSON( diff --git a/tests/Feature/Screens/ScreenCompiledManagerTest.php b/tests/Feature/Screens/ScreenCompiledManagerTest.php index 2c66310522..92bfadb308 100644 --- a/tests/Feature/Screens/ScreenCompiledManagerTest.php +++ b/tests/Feature/Screens/ScreenCompiledManagerTest.php @@ -27,7 +27,7 @@ protected function setUp(): void * * @test */ - public function test_it_stores_compiled_content() + public function test_it_stores_compiled_content(): void { // Arrange $manager = new ScreenCompiledManager(); @@ -51,7 +51,7 @@ public function test_it_stores_compiled_content() * * @test */ - public function test_it_retrieves_compiled_content() + public function test_it_retrieves_compiled_content(): void { // Arrange content $manager = new ScreenCompiledManager(); @@ -74,7 +74,7 @@ public function test_it_retrieves_compiled_content() * * @test */ - public function test_it_returns_null_when_compiled_content_does_not_exist() + public function test_it_returns_null_when_compiled_content_does_not_exist(): void { // Arrange $manager = new ScreenCompiledManager(); @@ -92,7 +92,7 @@ public function test_it_returns_null_when_compiled_content_does_not_exist() * * @test */ - public function test_it_clears_all_compiled_assets() + public function test_it_clears_all_compiled_assets(): void { // Arrange content $manager = new ScreenCompiledManager(); @@ -118,7 +118,7 @@ public function test_it_clears_all_compiled_assets() * * @test */ - public function test_it_clears_process_screens_cache() + public function test_it_clears_process_screens_cache(): void { // Arrange $manager = new ScreenCompiledManager(); @@ -162,7 +162,7 @@ public function test_it_clears_process_screens_cache() * * @test */ - public function test_it_creates_a_screen_key_with_various_versions() + public function test_it_creates_a_screen_key_with_various_versions(): void { // Arrange $manager = new ScreenCompiledManager(); @@ -192,7 +192,7 @@ public function test_it_creates_a_screen_key_with_various_versions() * * @test */ - public function test_it_gets_the_last_screen_version_id() + public function test_it_gets_the_last_screen_version_id(): void { // Create the manager $manager = new ScreenCompiledManager(); @@ -216,7 +216,7 @@ public function test_it_gets_the_last_screen_version_id() * * @test */ - public function test_it_stores_empty_compiled_content() + public function test_it_stores_empty_compiled_content(): void { // Arrange $manager = new ScreenCompiledManager(); @@ -240,7 +240,7 @@ public function test_it_stores_empty_compiled_content() * * @test */ - public function test_it_handles_storage_exceptions() + public function test_it_handles_storage_exceptions(): void { // Arrange $manager = new ScreenCompiledManager(); @@ -263,7 +263,7 @@ public function test_it_handles_storage_exceptions() * * @test */ - public function test_it_clears_compiled_assets_when_directory_does_not_exist() + public function test_it_clears_compiled_assets_when_directory_does_not_exist(): void { // Arrange $manager = new ScreenCompiledManager(); @@ -283,7 +283,7 @@ public function test_it_clears_compiled_assets_when_directory_does_not_exist() * * @test */ - public function test_it_fails_with_invalid_screen_key() + public function test_it_fails_with_invalid_screen_key(): void { // Arrange $manager = new ScreenCompiledManager(); @@ -313,7 +313,7 @@ public function test_it_fails_with_invalid_screen_key() * * @test */ - public function test_it_handles_storage_limit_scenarios() + public function test_it_handles_storage_limit_scenarios(): void { // Arrange $manager = new ScreenCompiledManager(); @@ -337,7 +337,7 @@ public function test_it_handles_storage_limit_scenarios() * * @test */ - public function test_it_deletes_screen_compiled_content() + public function test_it_deletes_screen_compiled_content(): void { // Arrange $manager = new ScreenCompiledManager(); @@ -390,7 +390,7 @@ public function test_it_deletes_screen_compiled_content() * * @test */ - public function test_it_returns_false_when_no_files_match_delete_pattern() + public function test_it_returns_false_when_no_files_match_delete_pattern(): void { // Arrange $manager = new ScreenCompiledManager(); @@ -427,7 +427,7 @@ public function test_it_returns_false_when_no_files_match_delete_pattern() * * @test */ - public function test_it_handles_special_characters_in_language_code() + public function test_it_handles_special_characters_in_language_code(): void { // Arrange $manager = new ScreenCompiledManager(); diff --git a/tests/Feature/SecurityLoggerTest.php b/tests/Feature/SecurityLoggerTest.php index e553451c5d..4af3686554 100644 --- a/tests/Feature/SecurityLoggerTest.php +++ b/tests/Feature/SecurityLoggerTest.php @@ -16,7 +16,7 @@ class SecurityLoggerTest extends TestCase /** * Test to ensure security events are logged */ - public function testLogSecurityEvents() + public function testLogSecurityEvents(): void { // Set the config to log security events config(['auth.log_auth_events' => true]); diff --git a/tests/Feature/ServerTimingMiddlewareTest.php b/tests/Feature/ServerTimingMiddlewareTest.php index b9449ebfed..9da74c6e36 100644 --- a/tests/Feature/ServerTimingMiddlewareTest.php +++ b/tests/Feature/ServerTimingMiddlewareTest.php @@ -20,7 +20,7 @@ private function getHeader($response, $header) return $headers[$header]; } - public function testServerTimingHeaderIncludesAllMetrics() + public function testServerTimingHeaderIncludesAllMetrics(): void { Route::middleware(ServerTimingMiddleware::class)->get('/test', function () { // Simulate a query @@ -41,7 +41,7 @@ public function testServerTimingHeaderIncludesAllMetrics() $this->assertStringContainsString('db;dur=', $serverTiming[2]); } - public function testQueryTimeIsMeasured() + public function testQueryTimeIsMeasured(): void { // Mock a route with a query Route::middleware(ServerTimingMiddleware::class)->get('/query-test', function () { @@ -61,7 +61,7 @@ public function testQueryTimeIsMeasured() $this->assertGreaterThanOrEqual(200, (float) $dbTime); } - public function testServiceProviderTimeIsMeasured() + public function testServiceProviderTimeIsMeasured(): void { // Mock a route Route::middleware(ServerTimingMiddleware::class)->get('/providers-test', function () { @@ -81,7 +81,7 @@ public function testServiceProviderTimeIsMeasured() $this->assertGreaterThanOrEqual(0, (float) $providersTime); } - public function testControllerTimingIsMeasuredCorrectly() + public function testControllerTimingIsMeasuredCorrectly(): void { // Mock a route Route::middleware(ServerTimingMiddleware::class)->get('/controller-test', function () { @@ -102,7 +102,7 @@ public function testControllerTimingIsMeasuredCorrectly() $this->assertGreaterThanOrEqual(300, (float) $controllerTime); } - public function testProvidersTimingIsMeasuredCorrectly() + public function testProvidersTimingIsMeasuredCorrectly(): void { // Mock a route Route::middleware(ServerTimingMiddleware::class)->get('/providers-test', function () { @@ -122,7 +122,7 @@ public function testProvidersTimingIsMeasuredCorrectly() $this->assertGreaterThanOrEqual(0, (float) $providersTime); } - public function testServerTimingOnLogin() + public function testServerTimingOnLogin(): void { $user = User::factory()->create([ 'username' =>'john', @@ -138,7 +138,7 @@ public function testServerTimingOnLogin() $this->assertStringContainsString('db;dur=', $serverTiming[2]); } - public function testServerTimingIfIsDisabled() + public function testServerTimingIfIsDisabled(): void { config(['app.server_timing.enabled' => false]); diff --git a/tests/Feature/SessionTest.php b/tests/Feature/SessionTest.php index 0c6e97a90d..747fd4b1ac 100644 --- a/tests/Feature/SessionTest.php +++ b/tests/Feature/SessionTest.php @@ -6,7 +6,7 @@ class SessionTest extends TestCase { - public function test() + public function test(): void { $this->markTestSkipped('FOUR-6653'); diff --git a/tests/Feature/Shared/ResourceAssertionsTrait.php b/tests/Feature/Shared/ResourceAssertionsTrait.php index dd65b22734..4fbed6dce9 100644 --- a/tests/Feature/Shared/ResourceAssertionsTrait.php +++ b/tests/Feature/Shared/ResourceAssertionsTrait.php @@ -22,7 +22,7 @@ trait ResourceAssertionsTrait * @param type $query * @param type $expectedMeta * - * @return \Illuminate\Testing\TestResponse + * @return TestResponse */ protected function assertCorrectModelListing($query, $expectedMeta = []) { @@ -56,7 +56,7 @@ protected function assertModelSorting($query, $expectedFirstRow) * @param string $modelClass * @param array $attributes * - * @return \Illuminate\Testing\TestResponse + * @return TestResponse */ protected function assertCorrectModelCreation($modelClass, array $attributes = []) { @@ -84,7 +84,7 @@ protected function assertCorrectModelCreation($modelClass, array $attributes = [ * @param array $attributes * @param array $errors * - * @return \Illuminate\Testing\TestResponse + * @return TestResponse */ protected function assertModelCreationFails($modelClass, array $attributes = [], array $errors = []) { @@ -105,7 +105,7 @@ protected function assertModelCreationFails($modelClass, array $attributes = [], * @param string $id * @param array $includes * - * @return \Illuminate\Testing\TestResponse + * @return TestResponse */ protected function assertModelShow($id, array $includes = []) { @@ -127,7 +127,7 @@ protected function assertModelShow($id, array $includes = []) * * @param type $id * - * @return \Illuminate\Testing\TestResponse + * @return TestResponse */ protected function assertCorrectModelDeletion($id) { @@ -144,7 +144,7 @@ protected function assertCorrectModelDeletion($id) * * @param type $id * - * @return \Illuminate\Testing\TestResponse + * @return TestResponse */ protected function assertModelDeletionFails($id, array $errors = []) { @@ -236,7 +236,7 @@ private function getDataAttributes($row) * Assert that the response has the given status code. * * @param string $expected - * @param \Illuminate\Testing\TestResponse $response + * @param TestResponse $response */ protected function assertStatus($expected, TestResponse $response) { diff --git a/tests/Feature/SyncJsonTranslationsTest.php b/tests/Feature/SyncJsonTranslationsTest.php index 00ef26b2f4..a60519bde8 100644 --- a/tests/Feature/SyncJsonTranslationsTest.php +++ b/tests/Feature/SyncJsonTranslationsTest.php @@ -44,7 +44,7 @@ protected function tearDown(): void /** * Test copying a new translation file when destination doesn't exist */ - public function testCopyNewTranslationFile() + public function testCopyNewTranslationFile(): void { // Create a test JSON file in resources-core $testTranslations = [ @@ -74,7 +74,7 @@ public function testCopyNewTranslationFile() /** * Test merging new translations into existing file */ - public function testMergeNewTranslations() + public function testMergeNewTranslations(): void { // Create existing translations in destination $existingTranslations = [ @@ -161,7 +161,7 @@ public function testMergeNewTranslations() /** * Test no changes when all translations already exist */ - public function testNoChangesWhenAllTranslationsExist() + public function testNoChangesWhenAllTranslationsExist(): void { // Create existing translations in destination $existingTranslations = [ @@ -188,7 +188,7 @@ public function testNoChangesWhenAllTranslationsExist() /** * Test handling invalid JSON in resources-core */ - public function testInvalidJsonInResourcesCore() + public function testInvalidJsonInResourcesCore(): void { // Create invalid JSON file in resources-core file_put_contents($this->tempDir . '/lang/en.json', '{"hello": "Hello", "world":}'); @@ -206,7 +206,7 @@ public function testInvalidJsonInResourcesCore() /** * Test handling invalid JSON in destination */ - public function testInvalidJsonInDestination() + public function testInvalidJsonInDestination(): void { // Create invalid JSON in destination Storage::disk('lang')->put('en.json', '{"hello": "Hello", "world":}'); @@ -232,7 +232,7 @@ public function testInvalidJsonInDestination() /** * Test processing multiple language files */ - public function testProcessMultipleLanguages() + public function testProcessMultipleLanguages(): void { // Create multiple language files in resources-core $this->createTestFile('en.json', ['hello' => 'Hello', 'world' => 'World']); @@ -260,7 +260,7 @@ public function testProcessMultipleLanguages() /** * Test preserving existing custom translations */ - public function testPreserveExistingCustomTranslations() + public function testPreserveExistingCustomTranslations(): void { // Create existing translations with custom values $existingTranslations = [ @@ -301,7 +301,7 @@ public function testPreserveExistingCustomTranslations() /** * Test backup creation when merging translations */ - public function testBackupCreationWhenMerging() + public function testBackupCreationWhenMerging(): void { // Create existing translations in destination $existingTranslations = [ @@ -350,7 +350,7 @@ public function testBackupCreationWhenMerging() /** * Test no backup creation when no changes are made */ - public function testNoBackupCreationWhenNoChanges() + public function testNoBackupCreationWhenNoChanges(): void { // Create existing translations in destination $existingTranslations = [ @@ -377,7 +377,7 @@ public function testNoBackupCreationWhenNoChanges() /** * Test backup rotation (keeping only 3 most recent backups) */ - public function testBackupRotation() + public function testBackupRotation(): void { // Create existing translations in destination $existingTranslations = [ @@ -414,7 +414,7 @@ public function testBackupRotation() /** * Test backup creation when copying new files */ - public function testNoBackupCreationWhenCopying() + public function testNoBackupCreationWhenCopying(): void { // Create a test JSON file in resources-core $testTranslations = [ diff --git a/tests/Feature/SyncPhpTranslationsTest.php b/tests/Feature/SyncPhpTranslationsTest.php index e02dcc843b..01111fac83 100644 --- a/tests/Feature/SyncPhpTranslationsTest.php +++ b/tests/Feature/SyncPhpTranslationsTest.php @@ -44,7 +44,7 @@ protected function tearDown(): void /** * Test copying new PHP translation files when destination doesn't exist */ - public function testCopyNewPhpTranslationFiles() + public function testCopyNewPhpTranslationFiles(): void { // Create test PHP files in resources-core $this->createTestPhpFile('en/auth.php', [ @@ -91,7 +91,7 @@ public function testCopyNewPhpTranslationFiles() /** * Test merging new translations into existing PHP files */ - public function testMergeNewPhpTranslations() + public function testMergeNewPhpTranslations(): void { // Create existing translations in destination $existingAuth = [ @@ -137,7 +137,7 @@ public function testMergeNewPhpTranslations() /** * Test no changes when all translations already exist */ - public function testNoChangesWhenAllPhpTranslationsExist() + public function testNoChangesWhenAllPhpTranslationsExist(): void { // Create existing translations in destination $existingTranslations = [ @@ -165,7 +165,7 @@ public function testNoChangesWhenAllPhpTranslationsExist() /** * Test handling invalid PHP in resources-core */ - public function testInvalidPhpInResourcesCore() + public function testInvalidPhpInResourcesCore(): void { // Create invalid PHP file in resources-core $invalidContent = " 'These credentials do not match our records.',\n 'password' =>\n];\n"; @@ -185,7 +185,7 @@ public function testInvalidPhpInResourcesCore() /** * Test handling invalid PHP in destination */ - public function testInvalidPhpInDestination() + public function testInvalidPhpInDestination(): void { // Create invalid PHP in destination $invalidContent = " 'These credentials do not match our records.',\n 'password' =>\n];\n"; @@ -212,7 +212,7 @@ public function testInvalidPhpInDestination() /** * Test processing multiple language files */ - public function testProcessMultiplePhpLanguages() + public function testProcessMultiplePhpLanguages(): void { // Create multiple language files in resources-core $this->createTestPhpFile('en/auth.php', ['failed' => 'These credentials do not match our records.']); @@ -240,7 +240,7 @@ public function testProcessMultiplePhpLanguages() /** * Test preserving existing custom translations */ - public function testPreserveExistingCustomPhpTranslations() + public function testPreserveExistingCustomPhpTranslations(): void { // Create existing translations with custom values $existingTranslations = [ @@ -277,7 +277,7 @@ public function testPreserveExistingCustomPhpTranslations() /** * Test processing multiple PHP files in same language */ - public function testProcessMultiplePhpFilesInSameLanguage() + public function testProcessMultiplePhpFilesInSameLanguage(): void { // Create multiple PHP files in resources-core $this->createTestPhpFile('en/auth.php', ['failed' => 'These credentials do not match our records.']); @@ -301,7 +301,7 @@ public function testProcessMultiplePhpFilesInSameLanguage() /** * Test backup creation when merging PHP translations */ - public function testBackupCreationWhenMergingPhp() + public function testBackupCreationWhenMergingPhp(): void { // Create existing translations in destination $existingTranslations = [ @@ -341,7 +341,7 @@ public function testBackupCreationWhenMergingPhp() /** * Test no backup creation when no changes are made to PHP files */ - public function testNoBackupCreationWhenNoPhpChanges() + public function testNoBackupCreationWhenNoPhpChanges(): void { // Create existing translations in destination $existingTranslations = [ @@ -368,7 +368,7 @@ public function testNoBackupCreationWhenNoPhpChanges() /** * Test backup rotation for PHP files (keeping only 3 most recent backups) */ - public function testBackupRotationForPhpFiles() + public function testBackupRotationForPhpFiles(): void { // Create existing translations in destination $existingTranslations = [ @@ -408,7 +408,7 @@ public function testBackupRotationForPhpFiles() /** * Test no backup creation when copying new PHP files */ - public function testNoBackupCreationWhenCopyingPhp() + public function testNoBackupCreationWhenCopyingPhp(): void { // Create test PHP files in resources-core $this->createTestPhpFile('en/auth.php', [ diff --git a/tests/Feature/TaskControllerTest.php b/tests/Feature/TaskControllerTest.php index 262d17ae3c..67aad8a233 100644 --- a/tests/Feature/TaskControllerTest.php +++ b/tests/Feature/TaskControllerTest.php @@ -21,7 +21,7 @@ class TaskControllerTest extends TestCase /** * Test Process action by email with screen completed */ - public function testActionByEmailWithScreen() + public function testActionByEmailWithScreen(): void { $screen = Screen::factory()->create([ 'id' => 4000, @@ -49,7 +49,7 @@ public function testActionByEmailWithScreen() /** * Test Process action by email without screen completed */ - public function testActionByEmailWithoutScreen() + public function testActionByEmailWithoutScreen(): void { $process = Process::factory()->create([ 'bpmn' => file_get_contents(__DIR__ . '/../Fixtures/action_by_email_process_require_login.bpmn'), @@ -73,7 +73,7 @@ public function testActionByEmailWithoutScreen() /** * Test Process action by email with empty screen completed */ - public function testActionByEmailWithScreenEmpty() + public function testActionByEmailWithScreenEmpty(): void { $process = Process::factory()->create([ 'bpmn' => file_get_contents(__DIR__ . '/../Fixtures/action_by_email_process_with_screen_complete_empty.bpmn'), @@ -97,7 +97,7 @@ public function testActionByEmailWithScreenEmpty() /* * Test Process action by email with require login and without screen completed */ - public function testActionByEmailWithRequireLogin() + public function testActionByEmailWithRequireLogin(): void { $process = Process::factory()->create([ 'bpmn' => file_get_contents(__DIR__ . '/../Fixtures/action_by_email_process_require_login.bpmn'), @@ -116,7 +116,7 @@ public function testActionByEmailWithRequireLogin() /* * Test Process action by email without require login and without screen completed */ - public function testActionByEmailWithoutRequireLogin() + public function testActionByEmailWithoutRequireLogin(): void { $process = Process::factory()->create([ 'bpmn' => file_get_contents(__DIR__ . '/../Fixtures/action_by_email_process_no_require_login.bpmn'), @@ -136,7 +136,7 @@ public function testActionByEmailWithoutRequireLogin() /** * Test Process action by email when the token is invalid */ - public function testReturnMessageTokenNoFound() + public function testReturnMessageTokenNoFound(): void { $token = Faker::create()->uuid; $response = $this->webCall( diff --git a/tests/Feature/TasksTest.php b/tests/Feature/TasksTest.php index e63b2bb18d..1240f9cb6b 100644 --- a/tests/Feature/TasksTest.php +++ b/tests/Feature/TasksTest.php @@ -31,7 +31,7 @@ private function createTestProcess(array $data = []) return $process; } - public function testIndex() + public function testIndex(): void { $response = $this->webGet(self::TASKS_URL, []); $response->assertStatus(200); @@ -39,7 +39,7 @@ public function testIndex() $response->assertSee('Tasks'); } - public function testViewTaskWithComments() + public function testViewTaskWithComments(): void { //Start a process request $process = $this->createTestProcess(); diff --git a/tests/Feature/Templates/Api/ProcessTemplateTest.php b/tests/Feature/Templates/Api/ProcessTemplateTest.php index 89b192cd9e..f9b8bc3d2c 100644 --- a/tests/Feature/Templates/Api/ProcessTemplateTest.php +++ b/tests/Feature/Templates/Api/ProcessTemplateTest.php @@ -26,7 +26,7 @@ class ProcessTemplateTest extends TestCase use HelperTrait; use WithFaker; - public function testIndex() + public function testIndex(): void { $this->addGlobalSignalProcess(); ProcessTemplates::factory()->count(10)->create(); @@ -52,7 +52,7 @@ public function testIndex() $this->assertArrayNotHasKey('manifest', $data[0]); } - public function testNotAllowingToSaveDuplicateTemplateWithTheSameName() + public function testNotAllowingToSaveDuplicateTemplateWithTheSameName(): void { $this->addGlobalSignalProcess(); @@ -90,7 +90,7 @@ public function testNotAllowingToSaveDuplicateTemplateWithTheSameName() $this->assertEquals('The template name must be unique.', $content->name[0]); } - public function testSaveProcessAssetsAsTemplate() + public function testSaveProcessAssetsAsTemplate(): void { $this->addGlobalSignalProcess(); @@ -135,7 +135,7 @@ public function testSaveProcessAssetsAsTemplate() $this->assertDatabaseHas('process_templates', ['name' => 'Test Template']); } - public function testSaveProcessModelAsTemplate() + public function testSaveProcessModelAsTemplate(): void { $this->addGlobalSignalProcess(); @@ -185,7 +185,7 @@ public function testSaveProcessModelAsTemplate() $this->assertEquals($process->id, $template->process_id); } - public function testCreateProcessFromTemplate() + public function testCreateProcessFromTemplate(): void { $this->addGlobalSignalProcess(); @@ -231,7 +231,7 @@ public function testCreateProcessFromTemplate() $this->assertEquals('Default Templates', $newCategory->name); } - public function testTemplateToProcessSync() + public function testTemplateToProcessSync(): void { $this->markTestSkipped( 'This test needs to be refactor to mock the transactions.' @@ -267,7 +267,7 @@ public function testTemplateToProcessSync() } } - public function testUpdateAssetsWhenCreatingProcess() + public function testUpdateAssetsWhenCreatingProcess(): void { $this->addGlobalSignalProcess(); $user = User::factory()->create(); diff --git a/tests/Feature/Templates/Api/ScreenTemplateTest.php b/tests/Feature/Templates/Api/ScreenTemplateTest.php index 36e684888d..c12bc97985 100644 --- a/tests/Feature/Templates/Api/ScreenTemplateTest.php +++ b/tests/Feature/Templates/Api/ScreenTemplateTest.php @@ -27,7 +27,7 @@ class ScreenTemplateTest extends TestCase private const SCREEN_PATH = 'tests/Feature/Templates/fixtures/screen-config-with-two-pages.json'; - public function testCreateScreenTemplate() + public function testCreateScreenTemplate(): void { $screenCategoryId = ScreenCategory::factory()->create()->id; $screen = Screen::factory()->create([ @@ -60,7 +60,7 @@ public function testCreateScreenTemplate() $this->assertDatabaseHas('screen_templates', ['name' => 'Test Screen Template Creation']); } - public function testUpdateScreenTemplate() + public function testUpdateScreenTemplate(): void { $nonAdminUser = User::factory()->create(['is_administrator' => false]); $screenTemplateId = ScreenTemplates::factory()->create([ @@ -99,7 +99,7 @@ public function testUpdateScreenTemplate() ]); } - public function testDeleteScreenTemplate() + public function testDeleteScreenTemplate(): void { $screenTemplateId = ScreenTemplates::factory()->create()->id; $route = route('api.template.delete', ['screen', $screenTemplateId]); @@ -112,7 +112,7 @@ public function testDeleteScreenTemplate() $this->assertDatabaseMissing('screen_templates', ['id' => $screenTemplateId]); } - public function testPublishScreenTemplateWithoutPermissions() + public function testPublishScreenTemplateWithoutPermissions(): void { $screenTemplateId = ScreenTemplates::factory()->create()->id; $user = User::factory()->create(['is_administrator' => false]); @@ -124,7 +124,7 @@ public function testPublishScreenTemplateWithoutPermissions() $response->assertStatus(403); } - public function testPublishScreenTemplateWithPermissions() + public function testPublishScreenTemplateWithPermissions(): void { $screenTemplateId = ScreenTemplates::factory()->create()->id; $user = User::factory()->create(['is_administrator' => false]); @@ -146,7 +146,7 @@ public function testPublishScreenTemplateWithPermissions() $this->assertSame($screenTemplate->is_public, 1); } - public function testCreateScreenFromTemplate() + public function testCreateScreenFromTemplate(): void { $user = User::factory()->create(); $defaultScreenTemplate = ScreenTemplates::factory()->withCustomCss()->create([ @@ -177,7 +177,7 @@ public function testCreateScreenFromTemplate() $this->assertNull($newScreen->custom_css); } - public function testCreateScreenFromTemplateWithDefault() + public function testCreateScreenFromTemplateWithDefault(): void { $user = User::factory()->create(); $screenCategory = ScreenCategory::factory()->create(); @@ -232,7 +232,7 @@ public function testCreateScreenFromTemplateWithDefault() ]); } - public function testCreateScreenFromTemplateWithProjects() + public function testCreateScreenFromTemplateWithProjects(): void { if (!class_exists(Project::class)) { $this->markTestSkipped('Package Projects is not installed.'); @@ -257,7 +257,7 @@ public function testCreateScreenFromTemplateWithProjects() $response->assertStatus(200); } - public function testShareScreenTemplate() + public function testShareScreenTemplate(): void { $screenTemplate = ScreenTemplates::factory()->create(['is_public' => false]); @@ -279,7 +279,7 @@ public function testShareScreenTemplate() $this->assertEquals(1, $screenTemplate->is_public); } - public function testMakePrivateScreenTemplate() + public function testMakePrivateScreenTemplate(): void { $screenTemplate = ScreenTemplates::factory()->create(['is_public' => true]); @@ -298,7 +298,7 @@ public function testMakePrivateScreenTemplate() $this->assertEquals(0, $screenTemplate->is_public); } - public function testShowScreenTemplate() + public function testShowScreenTemplate(): void { // Create screen template $name = 'Test Screen Template'; @@ -322,7 +322,7 @@ public function testShowScreenTemplate() $this->assertEquals('SCREEN_TEMPLATE', $editingScreen->asset_type); } - public function testImportExportScreenTemplate() + public function testImportExportScreenTemplate(): void { $adminUser = User::factory()->create(); $screenTemplate = ScreenTemplates::factory()->create(['name' => 'ScreenTemplate', 'user_id' => $adminUser->id]); @@ -338,7 +338,7 @@ public function testImportExportScreenTemplate() $this->assertEquals($actingAsUser->id, $importedTemplate->user_id); } - public function testImportExportScreenTemplatesRoutes() + public function testImportExportScreenTemplatesRoutes(): void { $screenTemplate = ScreenTemplates::factory()->create(['is_public' => true, 'name' => 'Screen Template Routes']); // Test download route @@ -359,7 +359,7 @@ public function testImportExportScreenTemplatesRoutes() $this->get('/screen-template/import')->assertStatus(200)->assertSee('Import Screen Template'); } - public function testSharedTemplateAuthorization() + public function testSharedTemplateAuthorization(): void { $user = User::factory()->create(); $sharedTemplate = ScreenTemplates::factory()->shared()->create(['user_id' => $user->id]); @@ -390,7 +390,7 @@ public function testSharedTemplateAuthorization() $response->assertStatus(200); } - public function testApplyCssToExistingScreen() + public function testApplyCssToExistingScreen(): void { // Create a new screen with two pages and no custom_css $screenPath = base_path(self::SCREEN_PATH); @@ -429,7 +429,7 @@ public function testApplyCssToExistingScreen() $this->assertNotNull($updatedScreen->custom_css); } - public function testApplyFieldsToExistingScreen() + public function testApplyFieldsToExistingScreen(): void { // Create screen from template-manifest-with-css-fields-layout.json $templatePath = base_path(self::SCREEN_TEMPLATE_PATH); @@ -477,7 +477,7 @@ public function testApplyFieldsToExistingScreen() $this->assertNotEmpty($updatedScreen->config[1]['items']); } - public function testApplyLayoutToExistingScreen() + public function testApplyLayoutToExistingScreen(): void { // Create screen from template-manifest-with-css-fields-layout.json $templatePath = base_path(self::SCREEN_TEMPLATE_PATH); @@ -524,7 +524,7 @@ public function testApplyLayoutToExistingScreen() $this->assertNotEmpty($updatedScreen->config[1]['items']); } - public function testApplyFullTemplateToExistingScreen() + public function testApplyFullTemplateToExistingScreen(): void { // Create screen from template-manifest-with-css-fields-layout.json $templatePath = base_path(self::SCREEN_TEMPLATE_PATH); diff --git a/tests/Feature/TerminatedEndEventTest.php b/tests/Feature/TerminatedEndEventTest.php index 9ec07816e6..658846b559 100644 --- a/tests/Feature/TerminatedEndEventTest.php +++ b/tests/Feature/TerminatedEndEventTest.php @@ -17,7 +17,7 @@ class TerminatedEndEventTest extends TestCase { use RequestHelper; - public function testTerminateEndEventClosesAllTokens() + public function testTerminateEndEventClosesAllTokens(): void { // Create the process to test ImportProcess::dispatchSync( @@ -45,7 +45,7 @@ public function testTerminateEndEventClosesAllTokens() $this->assertEquals('COMPLETED', $instance->status); } - public function testEndEventDoesNotClosePendingTasks() + public function testEndEventDoesNotClosePendingTasks(): void { // Create the process to test ImportProcess::dispatchSync( diff --git a/tests/Feature/Upgrade/PopulateCaseStartedTest.php b/tests/Feature/Upgrade/PopulateCaseStartedTest.php index d04c4e63ae..b9c1414df8 100644 --- a/tests/Feature/Upgrade/PopulateCaseStartedTest.php +++ b/tests/Feature/Upgrade/PopulateCaseStartedTest.php @@ -27,7 +27,7 @@ protected function tearDown(): void parent::tearDown(); } - public function testUp() + public function testUp(): void { // Instantiate PopulateCaseStarted $populateCaseStarted = new PopulateCaseStarted(); @@ -63,7 +63,7 @@ public function testUp() } } - public function testTokensColumn() + public function testTokensColumn(): void { // Instantiate PopulateCaseStarted $populateCaseStarted = new PopulateCaseStarted(); @@ -103,7 +103,7 @@ public function testTokensColumn() $this->assertEqualsCanonicalizing($tokensArray, $processRequestTokenIds); } - public function testParticipatedColumn() + public function testParticipatedColumn(): void { // Instantiate PopulateCaseStarted $populateCaseStarted = new PopulateCaseStarted(); @@ -162,7 +162,7 @@ public function testParticipatedColumn() $this->assertEqualsCanonicalizing($tokensArray, $uniqueParticipantIds); } - public function testCasesStartedProcessColumn() + public function testCasesStartedProcessColumn(): void { // Instantiate the migration class $populateCaseStarted = new PopulateCaseStarted(); @@ -271,7 +271,7 @@ public function testCasesStartedProcessColumn() $this->assertEqualsCanonicalizing($expectedData, $processesArray, 'The processes data in cases_started should match the expected data'); } - public function testCasesStartedRequestsColumn() + public function testCasesStartedRequestsColumn(): void { // Instantiate the migration class $populateCaseStarted = new PopulateCaseStarted(); diff --git a/tests/Feature/Upgrade/PopulateCasesParticipatedTest.php b/tests/Feature/Upgrade/PopulateCasesParticipatedTest.php index 323571fe97..a095160d0e 100644 --- a/tests/Feature/Upgrade/PopulateCasesParticipatedTest.php +++ b/tests/Feature/Upgrade/PopulateCasesParticipatedTest.php @@ -121,7 +121,7 @@ private function getCaseStartedData($tokens) ]; } - public function test_one_participant() + public function test_one_participant(): void { $tokens = ProcessRequestToken::factory()->count(5)->create([ 'user_id' => $this->user->id, @@ -162,7 +162,7 @@ public function test_one_participant() ]); } - public function test_multiple_participants() + public function test_multiple_participants(): void { $tokens1 = ProcessRequestToken::factory()->count(5)->create([ 'user_id' => $this->user->id, @@ -256,7 +256,7 @@ public function test_multiple_participants() ]); } - public function test_participants() + public function test_participants(): void { $tokens1 = ProcessRequestToken::factory()->count(5)->create([ 'user_id' => $this->user->id, @@ -309,7 +309,7 @@ public function test_participants() ]); } - public function test_request_tokens() + public function test_request_tokens(): void { $tokens1 = ProcessRequestToken::factory()->count(2)->create([ 'user_id' => $this->user->id, @@ -374,7 +374,7 @@ public function test_request_tokens() ]); } - public function test_tasks() + public function test_tasks(): void { $tokens1 = ProcessRequestToken::factory()->count(2)->create([ 'user_id' => $this->user->id, @@ -427,7 +427,7 @@ public function test_tasks() ]); } - public function test_sub_processes() + public function test_sub_processes(): void { $tokens1 = ProcessRequestToken::factory()->count(2)->create([ 'user_id' => $this->user->id, @@ -475,7 +475,7 @@ public function test_sub_processes() ]); } - public function test_child_requests() + public function test_child_requests(): void { $tokens1 = ProcessRequestToken::factory()->count(2)->create([ 'user_id' => $this->user->id, @@ -547,7 +547,7 @@ public function test_child_requests() ]); } - public function test_sub_process_tasks() + public function test_sub_process_tasks(): void { $tokens1 = ProcessRequestToken::factory()->count(2)->create([ 'user_id' => $this->user->id, diff --git a/tests/Feature/Upgrade/PopulateCommentsCaseNumberTest.php b/tests/Feature/Upgrade/PopulateCommentsCaseNumberTest.php index 2b2b46bc66..a1d257e42b 100644 --- a/tests/Feature/Upgrade/PopulateCommentsCaseNumberTest.php +++ b/tests/Feature/Upgrade/PopulateCommentsCaseNumberTest.php @@ -15,7 +15,7 @@ class PopulateCommentsCaseNumberTest extends TestCase * * @return void */ - public function test_populate_comments_case_number() + public function test_populate_comments_case_number(): void { // Create ProcessRequest and ProcessRequestToken $processRequest = ProcessRequest::factory()->create(); diff --git a/tests/Feature/WebServiceSoapTest.php b/tests/Feature/WebServiceSoapTest.php index fd910fce93..8736b799c5 100644 --- a/tests/Feature/WebServiceSoapTest.php +++ b/tests/Feature/WebServiceSoapTest.php @@ -27,7 +27,7 @@ protected function setUpManager(): void $this->app = $this->createApplication(); } - public function testExecution() + public function testExecution(): void { $mockedDataSource = Mockery::mock(Model::class, function ($mock) { $mock->shouldReceive('getAttribute')->with('credentials')->andReturn([ diff --git a/tests/GenerateAccessTokenTest.php b/tests/GenerateAccessTokenTest.php index b8d213c43a..e010126a15 100644 --- a/tests/GenerateAccessTokenTest.php +++ b/tests/GenerateAccessTokenTest.php @@ -13,7 +13,7 @@ public function setUpWithPersonalAccessClient() $this->withPersonalAccessClient(); } - public function testGetNewToken() + public function testGetNewToken(): void { $user = User::factory()->create(); $tokenRef = new GenerateAccessToken($user); @@ -21,7 +21,7 @@ public function testGetNewToken() $this->assertRegExp("/^[A-Za-z0-9-_=]+\.[A-Za-z0-9-_=]+\.[A-Za-z0-9-_=]+$/", $tokenRef->getToken()); } - public function testDeleteToken() + public function testDeleteToken(): void { $user = User::factory()->create(); $this->assertEquals(0, $user->tokens()->count()); diff --git a/tests/Jobs/BpmnActionFindInstanceWithRetryTest.php b/tests/Jobs/BpmnActionFindInstanceWithRetryTest.php index 5b41c89824..4691ac009f 100644 --- a/tests/Jobs/BpmnActionFindInstanceWithRetryTest.php +++ b/tests/Jobs/BpmnActionFindInstanceWithRetryTest.php @@ -47,7 +47,7 @@ public function action() } // Expose the private method for testing using reflection - public function testFindInstanceWithRetry($instanceId) + public function testFindInstanceWithRetry($instanceId): void { $reflection = new \ReflectionClass($this); $method = $reflection->getMethod('findInstanceWithRetry'); @@ -61,7 +61,7 @@ public function testFindInstanceWithRetry($instanceId) /** * Test successful instance retrieval on first attempt */ - public function testFindInstanceWithRetrySuccessOnFirstAttempt() + public function testFindInstanceWithRetrySuccessOnFirstAttempt(): void { // Create a ProcessRequest $processRequest = ProcessRequest::factory()->create([ @@ -83,7 +83,7 @@ public function testFindInstanceWithRetrySuccessOnFirstAttempt() /** * Test failure after maximum retries with non-existent ID */ - public function testFindInstanceWithRetryFailureAfterMaxRetries() + public function testFindInstanceWithRetryFailureAfterMaxRetries(): void { $nonExistentId = 99999; @@ -109,7 +109,7 @@ public function testFindInstanceWithRetryFailureAfterMaxRetries() /** * Test with custom configuration values */ - public function testFindInstanceWithRetryWithCustomConfig() + public function testFindInstanceWithRetryWithCustomConfig(): void { // Set custom configuration Config::set('app.bpmn_actions_find_retries', 3); @@ -133,7 +133,7 @@ public function testFindInstanceWithRetryWithCustomConfig() /** * Test exponential backoff delay calculation */ - public function testExponentialBackoffDelayCalculation() + public function testExponentialBackoffDelayCalculation(): void { $nonExistentId = 77777; @@ -158,7 +158,7 @@ public function testExponentialBackoffDelayCalculation() /** * Test with zero retries configuration */ - public function testFindInstanceWithRetryWithZeroRetries() + public function testFindInstanceWithRetryWithZeroRetries(): void { // Clear any cached configuration first Config::clearResolvedInstances(); @@ -183,7 +183,7 @@ public function testFindInstanceWithRetryWithZeroRetries() /** * Test with very high retry configuration */ - public function testFindInstanceWithRetryWithHighRetries() + public function testFindInstanceWithRetryWithHighRetries(): void { // Set high retries Config::set('app.bpmn_actions_find_retries', 10); @@ -201,7 +201,7 @@ public function testFindInstanceWithRetryWithHighRetries() /** * Test that the method works with different ProcessRequest IDs */ - public function testFindInstanceWithRetryWithDifferentIds() + public function testFindInstanceWithRetryWithDifferentIds(): void { // Create multiple ProcessRequests $processRequest1 = ProcessRequest::factory()->create([ @@ -228,7 +228,7 @@ public function testFindInstanceWithRetryWithDifferentIds() /** * Test performance with multiple retries */ - public function testFindInstanceWithRetryPerformance() + public function testFindInstanceWithRetryPerformance(): void { $nonExistentId = 33333; @@ -252,7 +252,7 @@ public function testFindInstanceWithRetryPerformance() /** * Test that the method respects the maximum retry limit exactly */ - public function testFindInstanceWithRetryRespectsMaxRetriesExactly() + public function testFindInstanceWithRetryRespectsMaxRetriesExactly(): void { // Set custom retries Config::set('app.bpmn_actions_find_retries', 3); @@ -270,7 +270,7 @@ public function testFindInstanceWithRetryRespectsMaxRetriesExactly() /** * Test that the method handles configuration edge cases */ - public function testFindInstanceWithRetryConfigurationEdgeCases() + public function testFindInstanceWithRetryConfigurationEdgeCases(): void { // Test with very small delay Config::set('app.bpmn_actions_find_retries', 2); @@ -290,7 +290,7 @@ public function testFindInstanceWithRetryConfigurationEdgeCases() /** * Test that the method works correctly with existing ProcessRequest */ - public function testFindInstanceWithRetryWithExistingProcessRequest() + public function testFindInstanceWithRetryWithExistingProcessRequest(): void { // Create a ProcessRequest $processRequest = ProcessRequest::factory()->create([ diff --git a/tests/Jobs/ErrorHandlingTest.php b/tests/Jobs/ErrorHandlingTest.php index bfe8f2d2e1..96abb10189 100644 --- a/tests/Jobs/ErrorHandlingTest.php +++ b/tests/Jobs/ErrorHandlingTest.php @@ -49,7 +49,7 @@ private function runAssertions($settings) } } - public function testRetry() + public function testRetry(): void { $this->runAssertions([ 'attempt' => 3, @@ -66,7 +66,7 @@ public function testRetry() ]); } - public function testRetryUseModelSettings() + public function testRetryUseModelSettings(): void { $this->runAssertions([ 'attempt' => 3, @@ -83,7 +83,7 @@ public function testRetryUseModelSettings() ]); } - public function testDoNotRetry() + public function testDoNotRetry(): void { $this->runAssertions([ 'attempt' => 4, @@ -100,7 +100,7 @@ public function testDoNotRetry() ]); } - public function testRetryWaitFromModel() + public function testRetryWaitFromModel(): void { $this->runAssertions([ 'attempt' => 3, @@ -117,7 +117,7 @@ public function testRetryWaitFromModel() ]); } - public function testTimeoutFromModel() + public function testTimeoutFromModel(): void { $this->runAssertions([ 'attempt' => 3, diff --git a/tests/Jobs/RunScriptTaskTest.php b/tests/Jobs/RunScriptTaskTest.php index 6e44152f95..aeadf744d2 100644 --- a/tests/Jobs/RunScriptTaskTest.php +++ b/tests/Jobs/RunScriptTaskTest.php @@ -20,7 +20,7 @@ class RunScriptTaskTest extends TestCase { #[DataProvider('jobTypes')] - public function testScriptNotSet($class) + public function testScriptNotSet($class): void { $request = $this->runJob($class, ''); @@ -29,7 +29,7 @@ public function testScriptNotSet($class) } #[DataProvider('jobTypes')] - public function testScriptNotFound($class) + public function testScriptNotFound($class): void { $request = $this->runJob($class, 12345); @@ -38,7 +38,7 @@ public function testScriptNotFound($class) } #[DataProvider('jobTypes')] - public function testRunAsUserNotFound($class) + public function testRunAsUserNotFound($class): void { $script = Script::factory()->create(['run_as_user_id' => null]); $request = $this->runJob($class, $script->id); diff --git a/tests/Jobs/SmartInboxExistingTasksTest.php b/tests/Jobs/SmartInboxExistingTasksTest.php index 72cefdbb5d..cb3f89cf2c 100644 --- a/tests/Jobs/SmartInboxExistingTasksTest.php +++ b/tests/Jobs/SmartInboxExistingTasksTest.php @@ -11,14 +11,14 @@ class SmartInboxExistingTasksTest extends TestCase { - public function testJobIsCalledToExistingTasksFromInboxRule() + public function testJobIsCalledToExistingTasksFromInboxRule(): void { $task = ProcessRequestToken::factory()->create(); $inboxRule = InboxRule::factory()->create(); MatchingTasks::shouldReceive('get') ->once() - ->with(\Mockery::on(fn ($arg) => $arg instanceof InboxRule && optional($arg)->id === $inboxRule->id)) + ->with(\Mockery::on(fn ($arg) => $arg instanceof InboxRule && $arg?->id === $inboxRule->id)) ->andReturn(collect([$task])); ApplyAction::shouldReceive('applyActionOnTask') diff --git a/tests/Jobs/SmartInboxTest.php b/tests/Jobs/SmartInboxTest.php index 648ac51e9a..2585df1746 100644 --- a/tests/Jobs/SmartInboxTest.php +++ b/tests/Jobs/SmartInboxTest.php @@ -11,7 +11,7 @@ class SmartInboxTest extends TestCase { - public function testJobIsCalledWhenTaskIsAssigned() + public function testJobIsCalledWhenTaskIsAssigned(): void { $task = ProcessRequestToken::factory()->create(); $inboxRule = InboxRule::factory()->create(); diff --git a/tests/Jobs/SyncDefaultTemplatesTest.php b/tests/Jobs/SyncDefaultTemplatesTest.php index dc55549aa3..19a9df15bd 100644 --- a/tests/Jobs/SyncDefaultTemplatesTest.php +++ b/tests/Jobs/SyncDefaultTemplatesTest.php @@ -10,7 +10,7 @@ class SyncDefaultTemplatesTest extends TestCase { - public function test_job_skips_failed_template_fetches_and_logs_warning() + public function test_job_skips_failed_template_fetches_and_logs_warning(): void { // Mock GitHub config. Config::set('services.github', [ diff --git a/tests/Managers/PMConfigGenericExportManagerTest.php b/tests/Managers/PMConfigGenericExportManagerTest.php index b0fd866b8f..cefa5caa37 100644 --- a/tests/Managers/PMConfigGenericExportManagerTest.php +++ b/tests/Managers/PMConfigGenericExportManagerTest.php @@ -11,7 +11,7 @@ class PMConfigGenericExportManagerTest extends TestCase { - public function test() + public function test(): void { // // diff --git a/tests/Model/BundleAssetTest.php b/tests/Model/BundleAssetTest.php index 88aa6b0184..ed616d30d9 100644 --- a/tests/Model/BundleAssetTest.php +++ b/tests/Model/BundleAssetTest.php @@ -11,14 +11,14 @@ class BundleAssetTest extends TestCase { - public function testCanExport() + public function testCanExport(): void { $screen = Screen::factory()->create(); $this->assertTrue(BundleAsset::canExport($screen)); } - public function testExporterNotSupported() + public function testExporterNotSupported(): void { $group = Group::factory()->create(); $bundle = Bundle::factory()->create(); diff --git a/tests/Model/BundleTest.php b/tests/Model/BundleTest.php index cd0b31ff3f..8d3d4e8a57 100644 --- a/tests/Model/BundleTest.php +++ b/tests/Model/BundleTest.php @@ -13,7 +13,7 @@ class BundleTest extends TestCase { use HelperTrait; - public function testExport() + public function testExport(): void { $this->addGlobalSignalProcess(); @@ -40,7 +40,7 @@ public function testExport() $this->assertEquals($screen->title, $payload[1]['name']); } - public function testSyncAssets() + public function testSyncAssets(): void { $screen1 = Screen::factory()->create(['title' => 'Screen 1']); $screen2 = Screen::factory()->create(['title' => 'Screen 2']); @@ -60,7 +60,7 @@ public function testSyncAssets() $this->assertEquals($screen3->id, $bundle->assets[1]->asset_id); } - public function testReinstallBundle() + public function testReinstallBundle(): void { // Remote $screen = Screen::factory()->create(['title' => 'Original Screen Name']); diff --git a/tests/Model/DevLinkTest.php b/tests/Model/DevLinkTest.php index 4fdd994baa..86456b15f5 100644 --- a/tests/Model/DevLinkTest.php +++ b/tests/Model/DevLinkTest.php @@ -12,7 +12,7 @@ class DevLinkTest extends TestCase { - public function testGetClientUrl() + public function testGetClientUrl(): void { $devLink = DevLink::factory()->create([ 'url' => 'https://remote-instance.test', @@ -29,7 +29,7 @@ public function testGetClientUrl() ); } - public function testGetOauthRedirectUrl() + public function testGetOauthRedirectUrl(): void { $devLink = DevLink::factory()->create([ 'url' => 'https://remote-instance.test', @@ -55,7 +55,7 @@ public function testGetOauthRedirectUrl() ); } - public function testInstallRemoteBundle() + public function testInstallRemoteBundle(): void { Storage::fake('local'); @@ -118,7 +118,7 @@ public function testInstallRemoteBundle() $this->assertCount(3, $payloads); } - public function testRemoteBundles() + public function testRemoteBundles(): void { Http::preventStrayRequests(); @@ -150,7 +150,7 @@ public function testRemoteBundles() $this->assertEquals($bundles['data'][1]['is_installed'], false); } - public function testUpdateBundle() + public function testUpdateBundle(): void { Storage::fake('local'); diff --git a/tests/Model/FormalExpressionTest.php b/tests/Model/FormalExpressionTest.php index 7a36545729..3ad38e3c70 100644 --- a/tests/Model/FormalExpressionTest.php +++ b/tests/Model/FormalExpressionTest.php @@ -8,7 +8,7 @@ class FormalExpressionTest extends TestCase { - public function testEvaluateSimpleExpression() + public function testEvaluateSimpleExpression(): void { $formalExp = new FormalExpression(); $formalExp->setLanguage('FEEL'); @@ -20,7 +20,7 @@ public function testEvaluateSimpleExpression() $this->assertTrue($eval); } - public function testLanguageNotSupported() + public function testLanguageNotSupported(): void { $this->expectException(ScriptLanguageNotSupported::class); @@ -30,7 +30,7 @@ public function testLanguageNotSupported() $eval = $formalExp(['condition' => 'test']); } - public function testEvaluateExpressionWithMustache() + public function testEvaluateExpressionWithMustache(): void { $formalExp = new FormalExpression(); $formalExp->setLanguage('FEEL'); diff --git a/tests/Model/ProcessRequestTokenTest.php b/tests/Model/ProcessRequestTokenTest.php index ff8388a5fc..23b6587948 100644 --- a/tests/Model/ProcessRequestTokenTest.php +++ b/tests/Model/ProcessRequestTokenTest.php @@ -10,7 +10,7 @@ class ProcessRequestTokenTest extends TestCase { - public function testSetStagePropertiesInRecord() + public function testSetStagePropertiesInRecord(): void { // Create a partial mock of the token $token = $this->getMockBuilder(ProcessRequestToken::class) diff --git a/tests/Model/UserResourceViewTest.php b/tests/Model/UserResourceViewTest.php index 79b61ed1c7..d2b2f46048 100644 --- a/tests/Model/UserResourceViewTest.php +++ b/tests/Model/UserResourceViewTest.php @@ -25,7 +25,7 @@ private function createUserResourceView($resource) return $now; } - public function testAddsUserViewedAtToRequests() + public function testAddsUserViewedAtToRequests(): void { $processRequest = ProcessRequest::factory()->create(); $processRequestNotViewed = ProcessRequest::factory()->create(); @@ -41,7 +41,7 @@ public function testAddsUserViewedAtToRequests() $this->assertNull($results->first(fn ($i) => $i['id'] === $processRequestNotViewed->id)['user_viewed_at']); } - public function testAddsUserViewedAtToTasks() + public function testAddsUserViewedAtToTasks(): void { $task = ProcessRequestToken::factory()->create(); $taskNotViewed = ProcessRequestToken::factory()->create(); diff --git a/tests/Model/UserTest.php b/tests/Model/UserTest.php index 0afa3e146d..5d252c503f 100644 --- a/tests/Model/UserTest.php +++ b/tests/Model/UserTest.php @@ -17,7 +17,7 @@ class UserTest extends TestCase { use RequestHelper; - public function testPermissions() + public function testPermissions(): void { $president_user = User::factory()->create(['password' => Hash::make('password')]); $technician_user = User::factory()->create(['password' => Hash::make('password')]); @@ -61,7 +61,7 @@ public function testPermissions() $this->assertFalse($mom_user->hasPermission('launch.nukes')); } - public function testCanAnyFirst() + public function testCanAnyFirst(): void { dump('Starting test'); @@ -91,7 +91,7 @@ public function testCanAnyFirst() $this->assertEquals('baz', $user->canAnyFirst('foo|baz')); } - public function testAddCategoryViewPermissions() + public function testAddCategoryViewPermissions(): void { $testFor = [ 'processes' => 'view-process-categories', diff --git a/tests/Performance/RequestListingPerformanceTest.php b/tests/Performance/RequestListingPerformanceTest.php index 7dd689990a..da140b2355 100644 --- a/tests/Performance/RequestListingPerformanceTest.php +++ b/tests/Performance/RequestListingPerformanceTest.php @@ -12,7 +12,7 @@ class RequestListingPerformanceTest extends TestCase public $withPermissions = true; - public function testPerformance() + public function testPerformance(): void { $seeder = new RequestListingPerformanceData(); diff --git a/tests/Repositories/SettingsConfigRepositoryTest.php b/tests/Repositories/SettingsConfigRepositoryTest.php index b6a9a686b9..75c062c7b1 100644 --- a/tests/Repositories/SettingsConfigRepositoryTest.php +++ b/tests/Repositories/SettingsConfigRepositoryTest.php @@ -11,7 +11,7 @@ class SettingsConfigRepositoryTest extends TestCase { - public function testDotNotation() + public function testDotNotation(): void { Setting::create([ 'key' => 'test', @@ -22,7 +22,7 @@ public function testDotNotation() $this->assertEquals('the value', config('test.dot.notation')); } - public function testCachesValueSimple() + public function testCachesValueSimple(): void { // "collections..obfuscate" is a key generated in "Records" model in collection package Setting::create([ diff --git a/tests/Resources/ScreenTest.php b/tests/Resources/ScreenTest.php index eddc2ec83b..76e2d099b0 100644 --- a/tests/Resources/ScreenTest.php +++ b/tests/Resources/ScreenTest.php @@ -11,7 +11,7 @@ class ScreenTest extends TestCase { use RequestHelper; - public function testScreens() + public function testScreens(): void { $this->be($this->user); diff --git a/tests/Resources/TaskTest.php b/tests/Resources/TaskTest.php index 42b68b60bb..24b440150a 100644 --- a/tests/Resources/TaskTest.php +++ b/tests/Resources/TaskTest.php @@ -16,7 +16,7 @@ class TaskTest extends TestCase { use RequestHelper; - public function testScreens() + public function testScreens(): void { $date = Carbon::now(); $this->be($this->user); @@ -68,7 +68,7 @@ public function testScreens() // $this->assertEquals('original child3 description', $json['screen']['nested'][2]['description']); } - public function testRequestFiles() + public function testRequestFiles(): void { $processRequest = ProcessRequest::factory()->create(); $file1 = UploadedFile::fake()->create('file1.txt', 1); diff --git a/tests/ScreenConsolidatorTest.php b/tests/ScreenConsolidatorTest.php index 28572fce4a..fa00763e1f 100644 --- a/tests/ScreenConsolidatorTest.php +++ b/tests/ScreenConsolidatorTest.php @@ -9,7 +9,7 @@ class ScreenConsolidatorTest extends TestCase { - public function test() + public function test(): void { $this->markTestSkipped('FOUR-6653'); diff --git a/tests/ScriptExecutors/BuildScriptExecutorsTest.php b/tests/ScriptExecutors/BuildScriptExecutorsTest.php index 91597623cd..e3205fca65 100644 --- a/tests/ScriptExecutors/BuildScriptExecutorsTest.php +++ b/tests/ScriptExecutors/BuildScriptExecutorsTest.php @@ -8,8 +8,7 @@ class BuildScriptExecutorsTest extends TestCase { - - public function testBuildScriptExecutorsDockerfile() + public function testBuildScriptExecutorsDockerfile(): void { $scriptExecutor = ScriptExecutor::factory()->create([ 'language' => 'php-nayra', @@ -19,7 +18,7 @@ public function testBuildScriptExecutorsDockerfile() $code = $builder->getDockerfileContent($scriptExecutor); // Check the $code contains 'WORKDIR /opt/executor/src' - $expectedCode = <<markTestSkipped('FOUR-6653'); @@ -29,7 +29,7 @@ public function testWithUnsupportedLanguage() } } - public function testBuildPhp() + public function testBuildPhp(): void { $this->markTestSkipped('FOUR-6653'); diff --git a/tests/Traits/ForUserScopeTest.php b/tests/Traits/ForUserScopeTest.php index a213455002..81cab88a17 100644 --- a/tests/Traits/ForUserScopeTest.php +++ b/tests/Traits/ForUserScopeTest.php @@ -30,7 +30,7 @@ protected function withUserSetup() $this->user = User::factory()->create(); } - public function testUserStarted() + public function testUserStarted(): void { $startedByUser = ProcessRequest::factory()->create(['user_id' => $this->user->id]); @@ -39,7 +39,7 @@ public function testUserStarted() ], $this->requestIds()); } - public function testUserHasParticipated() + public function testUserHasParticipated(): void { $userHasParticipated = ProcessRequest::factory()->create(); ProcessRequestToken::factory()->create([ @@ -52,7 +52,7 @@ public function testUserHasParticipated() ], $this->requestIds()); } - public function testUserHasViewPermission() + public function testUserHasViewPermission(): void { $request = ProcessRequest::factory()->create(); $this->user->giveDirectPermission('view-all_requests'); @@ -60,7 +60,7 @@ public function testUserHasViewPermission() $this->assertEquals([$request->id], $this->requestIds()); } - public function testUserHasEditPermission() + public function testUserHasEditPermission(): void { $request = ProcessRequest::factory()->create(); $this->user->giveDirectPermission('edit-request_data'); @@ -68,7 +68,7 @@ public function testUserHasEditPermission() $this->assertEquals([$request->id], $this->requestIds()); } - public function testUserHasEditProccessDataPermission() + public function testUserHasEditProccessDataPermission(): void { $group = Group::factory()->create(); $process1 = Process::factory()->create(); @@ -84,7 +84,7 @@ public function testUserHasEditProccessDataPermission() $this->assertEquals([$request1->id, $request2->id], $this->requestIds()); } - public function testSelfServeRequests() + public function testSelfServeRequests(): void { $nonMatchingProcess = ProcessRequest::factory()->create(); $task1 = ProcessRequestToken::factory()->create([ diff --git a/tests/Traits/HasUuidsTest.php b/tests/Traits/HasUuidsTest.php index 6112cfdcbd..393c32c4ed 100644 --- a/tests/Traits/HasUuidsTest.php +++ b/tests/Traits/HasUuidsTest.php @@ -10,7 +10,7 @@ class HasUuidsTest extends TestCase { use RequestHelper; - public function testSetUuidWhenCreating() + public function testSetUuidWhenCreating(): void { $screen = Screen::factory()->create(); $this->assertNotNull($screen->uuid); diff --git a/tests/Traits/HasVersioningTest.php b/tests/Traits/HasVersioningTest.php index 7e89806d25..282f72b974 100644 --- a/tests/Traits/HasVersioningTest.php +++ b/tests/Traits/HasVersioningTest.php @@ -10,7 +10,7 @@ class HasVersioningTest extends TestCase { - public function testVersionFor() + public function testVersionFor(): void { $this->markTestSkipped('Skip version locking for now'); diff --git a/tests/Traits/SearchAutocompleteTraitTest.php b/tests/Traits/SearchAutocompleteTraitTest.php index 09c659d7b0..725c1c9b50 100644 --- a/tests/Traits/SearchAutocompleteTraitTest.php +++ b/tests/Traits/SearchAutocompleteTraitTest.php @@ -11,7 +11,7 @@ class SearchAutocompleteTraitTest extends TestCase { use RequestHelper; - public function testDoesNotIncludeSystemProcesses() + public function testDoesNotIncludeSystemProcesses(): void { $regularProcessCategory = ProcessCategory::factory()->create(); $systemProcessCategory = ProcessCategory::factory()->create(['is_system' => true]); diff --git a/tests/unit/FileSizeCheckTest.php b/tests/unit/FileSizeCheckTest.php index e1b5a433ee..6b2ae3f02f 100644 --- a/tests/unit/FileSizeCheckTest.php +++ b/tests/unit/FileSizeCheckTest.php @@ -42,14 +42,14 @@ protected function setUp(): void $this->app->instance(FileSizeCheck::class, $middlewareMock); } - public function testNoFilesPassesThrough() + public function testNoFilesPassesThrough(): void { $response = $this->postJson(self::TEST_ROUTE); $response->assertStatus(200); $response->assertJson(['message' => $this->response]); } - public function testValidFileUpload() + public function testValidFileUpload(): void { $file = UploadedFile::fake()->create('test.pdf', 500); // 500 KB $response = $this->postJson(self::TEST_ROUTE, [ @@ -60,7 +60,7 @@ public function testValidFileUpload() $response->assertJson(['message' => $this->response]); } - public function testLargeFileRejected() + public function testLargeFileRejected(): void { // Arrange. $mockFile = $this->createMock(UploadedFile::class); @@ -79,7 +79,7 @@ public function testLargeFileRejected() ]); } - public function testInvalidFileUpload() + public function testInvalidFileUpload(): void { // Mock of an invalid file using PHPUnit. $mockFile = $this->createMock(UploadedFile::class); @@ -99,7 +99,7 @@ public function testInvalidFileUpload() ]); } - public function testTotalSizeExceedsLimit() + public function testTotalSizeExceedsLimit(): void { $file1 = UploadedFile::fake()->create('file1.pdf', 5000); // 5 MB. $file2 = UploadedFile::fake()->create('file2.pdf', 6000); // 6 MB. @@ -117,7 +117,7 @@ public function testTotalSizeExceedsLimit() ]); } - public function testTotalSizeWithinLimit() + public function testTotalSizeWithinLimit(): void { ini_set('upload_max_filesize', '5M'); // 5 MB @@ -137,7 +137,7 @@ public function testTotalSizeWithinLimit() /** * Test if the middleware is applied to API routes. */ - public function testFileSizeCheckMiddlewareIsAppliedToApiRoutes() + public function testFileSizeCheckMiddlewareIsAppliedToApiRoutes(): void { $processRequest = ProcessRequest::factory()->create(); @@ -155,7 +155,7 @@ public function testFileSizeCheckMiddlewareIsAppliedToApiRoutes() /** * Test if the middleware is applied to Web routes. */ - public function testFileSizeCheckMiddlewareIsAppliedToWebRoutes() + public function testFileSizeCheckMiddlewareIsAppliedToWebRoutes(): void { $response = $this->webCall('GET', route('processes.index')); @@ -166,7 +166,7 @@ public function testFileSizeCheckMiddlewareIsAppliedToWebRoutes() /** * Test if the middleware is applied to package routes. */ - public function testFileSizeCheckMiddlewareIsAppliedToPackageRoutes() + public function testFileSizeCheckMiddlewareIsAppliedToPackageRoutes(): void { $hasPackage = \hasPackage('package-files'); diff --git a/tests/unit/MetricsServiceTest.php b/tests/unit/MetricsServiceTest.php index b73f9ad831..45451cf6bf 100644 --- a/tests/unit/MetricsServiceTest.php +++ b/tests/unit/MetricsServiceTest.php @@ -14,7 +14,6 @@ use ReflectionClass; use Tests\TestCase; - class MetricsServiceTest extends TestCase { /** @@ -44,7 +43,7 @@ public function testCounterRegistrationAndIncrement(): void $counter = $this->metricsService->counter('test_counter', 'Test Counter', ['label1']); // Assert the counter is registered - $this->assertInstanceOf(\Prometheus\Counter::class, $counter); + $this->assertInstanceOf(Counter::class, $counter); // Increment the counter and assert the value $counter->inc(['value1']); @@ -83,7 +82,7 @@ public function testHistogramRegistrationAndObserve(): void ); // Assert the histogram is registered - $this->assertInstanceOf(\Prometheus\Histogram::class, $histogram); + $this->assertInstanceOf(Histogram::class, $histogram); // Observe a value and assert it is recorded $histogram->observe(0.5, ['value1']); @@ -112,7 +111,7 @@ public function testDefaultNamespace(): void $counter = $this->metricsService->counter('namespace_test'); // Assert default namespace is applied - $this->assertInstanceOf(\Prometheus\Counter::class, $counter); + $this->assertInstanceOf(Counter::class, $counter); $counter->inc(); $samples = $this->metricsService->renderMetrics(); @@ -131,10 +130,11 @@ public function testSetGaugeValue(): void $this->assertStringContainsString('test_set_gauge', $samples); $this->assertStringContainsString('5', $samples); } + /** * Test that counterInc calls Metrics::counter() and then inc() with the correct labels. */ - public function testCounterInc() + public function testCounterInc(): void { // Set configuration values used by addSystemLabels() Config::set('app.name', 'TestApp'); @@ -178,7 +178,7 @@ public function testCounterInc() /** * Test that histogramObserve calls Metrics::histogram() and then observe() with the correct values. */ - public function testHistogramObserve() + public function testHistogramObserve(): void { // Set configuration values used by addSystemLabels() Config::set('app.name', 'TestApp'); @@ -221,7 +221,7 @@ public function testHistogramObserve() /** * Test that addSystemLabels returns the input labels plus the system labels. */ - public function testAddSystemLabels() + public function testAddSystemLabels(): void { // Set configuration values used by addSystemLabels() Config::set('app.name', 'TestApp'); @@ -247,7 +247,7 @@ public function testAddSystemLabels() /** * Test that clearMetrics calls wipeStorage on the collection registry. */ - public function testClearMetrics() + public function testClearMetrics(): void { $service = new MetricsService(); diff --git a/tests/unit/ProcessMaker/ApplyRecommendationTest.php b/tests/unit/ProcessMaker/ApplyRecommendationTest.php index b83ccef91a..a84e6cb5e2 100644 --- a/tests/unit/ProcessMaker/ApplyRecommendationTest.php +++ b/tests/unit/ProcessMaker/ApplyRecommendationTest.php @@ -12,7 +12,7 @@ class ApplyRecommendationTest extends TestCase { - public function testMarkAsPriority() + public function testMarkAsPriority(): void { $user = User::factory()->create(); @@ -52,7 +52,7 @@ public function testMarkAsPriority() $this->assertTrue($activeTask2->is_priority); } - public function testReassignToUserID() + public function testReassignToUserID(): void { $user = User::factory()->create([ 'is_administrator' => true, diff --git a/tests/unit/ProcessMaker/Cache/Monitoring/CacheMetricsDecoratorTest.php b/tests/unit/ProcessMaker/Cache/Monitoring/CacheMetricsDecoratorTest.php index 00b664baa2..ad0a1596f1 100644 --- a/tests/unit/ProcessMaker/Cache/Monitoring/CacheMetricsDecoratorTest.php +++ b/tests/unit/ProcessMaker/Cache/Monitoring/CacheMetricsDecoratorTest.php @@ -34,7 +34,7 @@ protected function setUp(): void $this->decorator = new CacheMetricsDecorator($this->cache, $this->metrics); } - public function testGetWithHit() + public function testGetWithHit(): void { // Setup expectations for cache hit $this->cache->shouldReceive('has') @@ -58,7 +58,7 @@ public function testGetWithHit() $this->assertEquals($this->testValue, $result); } - public function testGetWithMiss() + public function testGetWithMiss(): void { $default = 'default_value'; @@ -84,7 +84,7 @@ public function testGetWithMiss() $this->assertEquals($default, $result); } - public function testSetSuccess() + public function testSetSuccess(): void { $ttl = 3600; @@ -105,7 +105,7 @@ public function testSetSuccess() $this->assertTrue($result); } - public function testSetFailure() + public function testSetFailure(): void { // Setup expectations $this->cache->shouldReceive('set') @@ -120,7 +120,7 @@ public function testSetFailure() $this->assertFalse($result); } - public function testDelete() + public function testDelete(): void { // Setup expectations $this->cache->shouldReceive('delete') @@ -133,7 +133,7 @@ public function testDelete() $this->assertTrue($result); } - public function testClear() + public function testClear(): void { // Setup expectations $this->cache->shouldReceive('clear') @@ -145,7 +145,7 @@ public function testClear() $this->assertTrue($result); } - public function testHas() + public function testHas(): void { // Setup expectations $this->cache->shouldReceive('has') @@ -158,7 +158,7 @@ public function testHas() $this->assertTrue($result); } - public function testMissing() + public function testMissing(): void { // Setup expectations $this->cache->shouldReceive('missing') @@ -171,21 +171,21 @@ public function testMissing() $this->assertTrue($result); } - public function testCalculateSizeWithString() + public function testCalculateSizeWithString(): void { $value = 'test'; $result = $this->invokeCalculateSize($value); $this->assertEquals(strlen($value), $result); } - public function testCalculateSizeWithArray() + public function testCalculateSizeWithArray(): void { $value = ['test' => 'value']; $result = $this->invokeCalculateSize($value); $this->assertEquals(strlen(serialize($value)), $result); } - public function testCalculateSizeWithObject() + public function testCalculateSizeWithObject(): void { $value = new \stdClass(); $value->test = 'value'; @@ -193,28 +193,28 @@ public function testCalculateSizeWithObject() $this->assertEquals(strlen(serialize($value)), $result); } - public function testCalculateSizeWithInteger() + public function testCalculateSizeWithInteger(): void { $value = 42; $result = $this->invokeCalculateSize($value); $this->assertEquals(PHP_INT_SIZE, $result); } - public function testCalculateSizeWithFloat() + public function testCalculateSizeWithFloat(): void { $value = 3.14; $result = $this->invokeCalculateSize($value); $this->assertEquals(8, $result); } - public function testCalculateSizeWithBoolean() + public function testCalculateSizeWithBoolean(): void { $value = true; $result = $this->invokeCalculateSize($value); $this->assertEquals(1, $result); } - public function testCalculateSizeWithNull() + public function testCalculateSizeWithNull(): void { $value = null; $result = $this->invokeCalculateSize($value); @@ -229,7 +229,7 @@ protected function invokeCalculateSize($value) return $method->invoke($this->decorator, $value); } - public function testCreateKey() + public function testCreateKey(): void { // Setup expectations $this->cache->shouldReceive('createKey') @@ -254,7 +254,7 @@ public function testCreateKey() $this->assertEquals('screen_1_2_en_3_4', $key); } - public function testCreateKeyWithNonScreenCache() + public function testCreateKeyWithNonScreenCache(): void { // Create a mock that only implements CacheInterface $cache = Mockery::mock(CacheInterface::class); @@ -277,7 +277,7 @@ public function testCreateKeyWithNonScreenCache() ]); } - public function testInvalidateSuccess() + public function testInvalidateSuccess(): void { // Test parameters $params = ['screen_id' => 5, 'language' => 'es']; @@ -293,7 +293,7 @@ public function testInvalidateSuccess() $this->assertNull($result); } - public function testInvalidateFailure() + public function testInvalidateFailure(): void { // Test parameters $params = ['screen_id' => 5, 'language' => 'es']; @@ -309,7 +309,7 @@ public function testInvalidateFailure() $this->assertNull($result); } - public function testInvalidateWithNonScreenCache() + public function testInvalidateWithNonScreenCache(): void { // Create a mock that implements CacheInterface $cache = Mockery::mock(CacheInterface::class); @@ -333,7 +333,7 @@ protected function tearDown(): void parent::tearDown(); } - public function testGetWithPrometheusMetricLabel() + public function testGetWithPrometheusMetricLabel(): void { $mockMetric = Mockery::mock(PrometheusMetricInterface::class); $mockMetric->shouldReceive('getPrometheusMetricLabel') @@ -362,7 +362,7 @@ public function testGetWithPrometheusMetricLabel() $this->assertEquals($mockMetric, $result); } - public function testSetWithPrometheusMetricLabel() + public function testSetWithPrometheusMetricLabel(): void { $mockMetric = new MockMetric(); diff --git a/tests/unit/ProcessMaker/Cache/Monitoring/RedisMetricsManagerTest.php b/tests/unit/ProcessMaker/Cache/Monitoring/RedisMetricsManagerTest.php index dd3041a393..2cb1b099f1 100644 --- a/tests/unit/ProcessMaker/Cache/Monitoring/RedisMetricsManagerTest.php +++ b/tests/unit/ProcessMaker/Cache/Monitoring/RedisMetricsManagerTest.php @@ -29,7 +29,7 @@ protected function setUp(): void $this->metrics->resetMetrics(); } - public function testRecordHit() + public function testRecordHit(): void { $time = 0.1; $this->metrics->recordHit($this->testKey, $time); @@ -43,7 +43,7 @@ public function testRecordHit() $this->assertEquals($time, (float) $times[0]); } - public function testRecordMiss() + public function testRecordMiss(): void { $time = 0.2; $this->metrics->recordMiss($this->testKey, $time); @@ -57,7 +57,7 @@ public function testRecordMiss() $this->assertEquals($time, (float) $times[0]); } - public function testRecordWrite() + public function testRecordWrite(): void { $size = 1024; $this->metrics->recordWrite($this->testKey, $size); @@ -71,7 +71,7 @@ public function testRecordWrite() $this->assertIsNumeric($lastWrite); } - public function testGetHitRate() + public function testGetHitRate(): void { // Record 2 hits and 1 miss $this->metrics->recordHit($this->testKey, 0.1); @@ -82,7 +82,7 @@ public function testGetHitRate() $this->assertEqualsWithDelta(2 / 3, $hitRate, 0.0001); } - public function testGetMissRate() + public function testGetMissRate(): void { // Record 2 hits and 1 miss $this->metrics->recordHit($this->testKey, 0.1); @@ -93,7 +93,7 @@ public function testGetMissRate() $this->assertEqualsWithDelta(1 / 3, $missRate, 0.0001); } - public function testGetHitAvgTime() + public function testGetHitAvgTime(): void { $this->metrics->recordHit($this->testKey, 0.1); $this->metrics->recordHit($this->testKey, 0.3); @@ -102,7 +102,7 @@ public function testGetHitAvgTime() $this->assertEqualsWithDelta(0.2, $avgTime, 0.0001); } - public function testGetMissAvgTime() + public function testGetMissAvgTime(): void { $this->metrics->recordMiss($this->testKey, 0.2); $this->metrics->recordMiss($this->testKey, 0.4); @@ -111,7 +111,7 @@ public function testGetMissAvgTime() $this->assertEqualsWithDelta(0.3, $avgTime, 0.0001); } - public function testGetTopKeys() + public function testGetTopKeys(): void { // Setup test data $this->metrics->recordHit('key1', 0.1); @@ -130,7 +130,7 @@ public function testGetTopKeys() $this->assertEquals(1000, $topKeys['key1']['memory_usage']); } - public function testGetMemoryUsage() + public function testGetMemoryUsage(): void { $size = 2048; $this->metrics->recordWrite($this->testKey, $size); @@ -142,7 +142,7 @@ public function testGetMemoryUsage() $this->assertIsFloat($usage['last_write']); } - public function testResetMetrics() + public function testResetMetrics(): void { // Add some test data $this->metrics->recordHit($this->testKey, 0.1); @@ -157,7 +157,7 @@ public function testResetMetrics() $this->assertEmpty($keys); } - public function testGetSummary() + public function testGetSummary(): void { // Setup test data $this->metrics->recordHit('key1', 0.1); diff --git a/tests/unit/ProcessMaker/Cache/Screens/LegacyScreenCacheAdapterTest.php b/tests/unit/ProcessMaker/Cache/Screens/LegacyScreenCacheAdapterTest.php index 4548c521e5..9dd0b9d00b 100644 --- a/tests/unit/ProcessMaker/Cache/Screens/LegacyScreenCacheAdapterTest.php +++ b/tests/unit/ProcessMaker/Cache/Screens/LegacyScreenCacheAdapterTest.php @@ -22,7 +22,7 @@ protected function setUp(): void } /** @test */ - public function test_it_creates_correct_cache_key() + public function test_it_creates_correct_cache_key(): void { $this->compiledManager->shouldReceive('createKey') ->once() @@ -41,7 +41,7 @@ public function test_it_creates_correct_cache_key() } /** @test */ - public function test_it_throws_exception_when_missing_required_parameters() + public function test_it_throws_exception_when_missing_required_parameters(): void { $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('Missing required parameters for screen cache key'); @@ -56,7 +56,7 @@ public function test_it_throws_exception_when_missing_required_parameters() } /** @test */ - public function test_it_gets_content_from_compiled_manager() + public function test_it_gets_content_from_compiled_manager(): void { $key = 'test_key'; $expectedValue = ['content' => 'test']; @@ -72,7 +72,7 @@ public function test_it_gets_content_from_compiled_manager() } /** @test */ - public function test_it_returns_default_value_when_content_missing() + public function test_it_returns_default_value_when_content_missing(): void { $key = 'missing_key'; $default = ['default' => 'value']; @@ -88,7 +88,7 @@ public function test_it_returns_default_value_when_content_missing() } /** @test */ - public function test_it_stores_content_in_compiled_manager() + public function test_it_stores_content_in_compiled_manager(): void { $key = 'test_key'; $value = ['content' => 'test']; @@ -104,7 +104,7 @@ public function test_it_stores_content_in_compiled_manager() } /** @test */ - public function test_it_checks_existence_in_compiled_manager() + public function test_it_checks_existence_in_compiled_manager(): void { $key = 'test_key'; @@ -119,7 +119,7 @@ public function test_it_checks_existence_in_compiled_manager() } /** @test */ - public function test_it_returns_false_when_checking_missing_content() + public function test_it_returns_false_when_checking_missing_content(): void { $key = 'missing_key'; @@ -134,7 +134,7 @@ public function test_it_returns_false_when_checking_missing_content() } /** @test */ - public function test_it_invalidates_successfully() + public function test_it_invalidates_successfully(): void { // Test parameters $screenId = 5; @@ -152,7 +152,7 @@ public function test_it_invalidates_successfully() } /** @test */ - public function test_it_invalidates_with_failure() + public function test_it_invalidates_with_failure(): void { // Test parameters $screenId = 5; @@ -170,7 +170,7 @@ public function test_it_invalidates_with_failure() } /** @test */ - public function testInvalidateWithSpecialLanguageCode() + public function testInvalidateWithSpecialLanguageCode(): void { // Test parameters with special language code $screenId = 5; @@ -188,7 +188,7 @@ public function testInvalidateWithSpecialLanguageCode() } /** @test */ - public function testInvalidateWithEmptyResults() + public function testInvalidateWithEmptyResults(): void { // Test parameters $screenId = 999; // Non-existent screen ID diff --git a/tests/unit/ProcessMaker/Cache/Screens/ScreenCacheFactoryTest.php b/tests/unit/ProcessMaker/Cache/Screens/ScreenCacheFactoryTest.php index aa930cea40..20533c2329 100644 --- a/tests/unit/ProcessMaker/Cache/Screens/ScreenCacheFactoryTest.php +++ b/tests/unit/ProcessMaker/Cache/Screens/ScreenCacheFactoryTest.php @@ -25,7 +25,7 @@ protected function setUp(): void $this->app->singleton(RedisMetricsManager::class); } - public function testCreateNewCacheManager() + public function testCreateNewCacheManager(): void { Config::set('screens.cache.manager', 'new'); @@ -48,7 +48,7 @@ public function testCreateNewCacheManager() $this->assertInstanceOf(ScreenCacheManager::class, $underlyingCache); } - public function testCreateLegacyCacheAdapter() + public function testCreateLegacyCacheAdapter(): void { Config::set('screens.cache.manager', 'legacy'); @@ -67,7 +67,7 @@ public function testCreateLegacyCacheAdapter() $this->assertInstanceOf(LegacyScreenCacheAdapter::class, $underlyingCache); } - public function testMetricsIntegrationWithBothAdapters() + public function testMetricsIntegrationWithBothAdapters(): void { // Test with new cache manager Config::set('screens.cache.manager', 'new'); @@ -109,7 +109,7 @@ protected function verifyMetricsDecorator($cache, $expectedCacheClass) * * @test */ - public function testInvalidateWithNewCacheManager() + public function testInvalidateWithNewCacheManager(): void { Config::set('screens.cache.manager', 'new'); @@ -136,7 +136,7 @@ public function testInvalidateWithNewCacheManager() * * @test */ - public function testInvalidateWithLegacyCache() + public function testInvalidateWithLegacyCache(): void { Config::set('screens.cache.manager', 'legacy'); @@ -160,7 +160,7 @@ public function testInvalidateWithLegacyCache() * * @test */ - public function testGetScreenCacheReturnsSameInstanceAsCreate() + public function testGetScreenCacheReturnsSameInstanceAsCreate(): void { // Get instances using both methods $instance1 = ScreenCacheFactory::create(app('cache'), app(RedisMetricsManager::class)); @@ -187,7 +187,7 @@ public function testGetScreenCacheReturnsSameInstanceAsCreate() * * @test */ - public function testFactoryRespectsTestInstance() + public function testFactoryRespectsTestInstance(): void { // Create a mock for ScreenCacheInterface $mockInterface = $this->createMock(CacheInterface::class); @@ -207,7 +207,7 @@ public function testFactoryRespectsTestInstance() * * @test */ - public function testMetricsDecorationIsAppliedCorrectly() + public function testMetricsDecorationIsAppliedCorrectly(): void { // Test with both cache types $cacheTypes = ['new', 'legacy']; @@ -235,7 +235,7 @@ public function testMetricsDecorationIsAppliedCorrectly() * * @test */ - public function testFactoryWithInvalidConfiguration() + public function testFactoryWithInvalidConfiguration(): void { Config::set('screens.cache.manager', 'invalid'); diff --git a/tests/unit/ProcessMaker/Cache/Screens/ScreenCacheManagerTest.php b/tests/unit/ProcessMaker/Cache/Screens/ScreenCacheManagerTest.php index 448753e6b0..0425c41f6b 100644 --- a/tests/unit/ProcessMaker/Cache/Screens/ScreenCacheManagerTest.php +++ b/tests/unit/ProcessMaker/Cache/Screens/ScreenCacheManagerTest.php @@ -41,7 +41,7 @@ protected function setUp(): void } /** @test */ - public function testCreatesCorrectCacheKey() + public function testCreatesCorrectCacheKey(): void { $languages = ['en', 'es', 'fr', 'de']; @@ -61,7 +61,7 @@ public function testCreatesCorrectCacheKey() } /** @test */ - public function testStoresAndRetrievesFromMemoryCache() + public function testStoresAndRetrievesFromMemoryCache(): void { $key = 'test_screen'; $value = ['content' => 'test']; @@ -86,7 +86,7 @@ public function testStoresAndRetrievesFromMemoryCache() } /** @test */ - public function testHandlesTranslations() + public function testHandlesTranslations(): void { $key = 'test_screen'; $value = ['content' => 'test', 'title' => 'Original Title']; @@ -112,7 +112,7 @@ public function testHandlesTranslations() } /** @test */ - public function testHandlesNestedScreens() + public function testHandlesNestedScreens(): void { $key = 'test_screen'; $nestedKey = 'nested_screen'; @@ -155,7 +155,7 @@ public function testHandlesNestedScreens() } /** @test */ - public function testTracksCacheStatistics() + public function testTracksCacheStatistics(): void { $key = 'test_stats'; $value = ['data' => 'test']; @@ -194,7 +194,7 @@ public function testTracksCacheStatistics() } /** @test */ - public function testDeletesFromCache() + public function testDeletesFromCache(): void { $key = 'test_delete'; @@ -215,7 +215,7 @@ public function testDeletesFromCache() } /** @test */ - public function testClearsEntireCache() + public function testClearsEntireCache(): void { // Set up expectations $this->cacheManager->shouldReceive('flush') @@ -233,7 +233,7 @@ public function testClearsEntireCache() } /** @test */ - public function testChecksIfKeyExists() + public function testChecksIfKeyExists(): void { $key = 'test_exists'; @@ -255,7 +255,7 @@ public function testChecksIfKeyExists() } /** @test */ - public function testChecksIfKeyIsMissing() + public function testChecksIfKeyIsMissing(): void { $key = 'test_missing'; @@ -277,7 +277,7 @@ public function testChecksIfKeyIsMissing() } /** @test */ - public function testInvalidateSuccess() + public function testInvalidateSuccess(): void { // Test parameters $screenId = 3; @@ -300,7 +300,7 @@ public function testInvalidateSuccess() } /** @test */ - public function testInvalidateFailure() + public function testInvalidateFailure(): void { // Test parameters $screenId = 3; diff --git a/tests/unit/ProcessMaker/CaseTitleTest.php b/tests/unit/ProcessMaker/CaseTitleTest.php index 6838a7d2f8..88a98d437f 100644 --- a/tests/unit/ProcessMaker/CaseTitleTest.php +++ b/tests/unit/ProcessMaker/CaseTitleTest.php @@ -8,7 +8,7 @@ class CaseTitleTest extends TestCase { const MUSTACHE_VARIABLE = '{{name}}'; - public function testEvaluateCaseTitleWithoutFormatting() + public function testEvaluateCaseTitleWithoutFormatting(): void { $processRequest = new ProcessRequest(); $title = $processRequest->evaluateCaseTitle('Hello, {{name}}!', ['name' => 'World'], false); @@ -16,7 +16,7 @@ public function testEvaluateCaseTitleWithoutFormatting() $this->assertEquals('Hello, World!', $title); } - public function testEvaluateCaseTitleWithFormatting() + public function testEvaluateCaseTitleWithFormatting(): void { $processRequest = new ProcessRequest(); $title = $processRequest->evaluateCaseTitle('Hello, {{name}}!', ['name' => 'World'], true); @@ -24,7 +24,7 @@ public function testEvaluateCaseTitleWithFormatting() $this->assertEquals('Hello, World!', $title); } - public function testEvaluateCaseTitleWithCharacterLimit() + public function testEvaluateCaseTitleWithCharacterLimit(): void { $processRequest = new ProcessRequest(); $longString = str_repeat('a', 300); @@ -33,7 +33,7 @@ public function testEvaluateCaseTitleWithCharacterLimit() $this->assertEquals(200, mb_strlen($title)); } - public function testEvaluateCaseTitleWithHtmlTagsNotCountedInCharacterLimit() + public function testEvaluateCaseTitleWithHtmlTagsNotCountedInCharacterLimit(): void { $processRequest = new ProcessRequest(); $longString = str_repeat('a', 195) . self::MUSTACHE_VARIABLE; @@ -43,7 +43,7 @@ public function testEvaluateCaseTitleWithHtmlTagsNotCountedInCharacterLimit() $this->assertEquals(str_repeat('a', 195) . 'World', $title); } - public function testEvaluateCaseTitleWithHtmlTagsNotCountedTwoCharactersMoreThanLimit() + public function testEvaluateCaseTitleWithHtmlTagsNotCountedTwoCharactersMoreThanLimit(): void { $processRequest = new ProcessRequest(); $longString = str_repeat('a', 197) . self::MUSTACHE_VARIABLE; @@ -53,7 +53,7 @@ public function testEvaluateCaseTitleWithHtmlTagsNotCountedTwoCharactersMoreThan $this->assertEquals(str_repeat('a', 197) . 'Wor', $title); } - public function testEvaluateCaseTitleWithoutHtmlTagsThatExceededTheLimit() + public function testEvaluateCaseTitleWithoutHtmlTagsThatExceededTheLimit(): void { $processRequest = new ProcessRequest(); $longString = str_repeat('a', 200) . self::MUSTACHE_VARIABLE; diff --git a/tests/unit/ProcessMaker/Events/GroupMembershipChangedTest.php b/tests/unit/ProcessMaker/Events/GroupMembershipChangedTest.php index 6d6110e7d2..1d3bbf9b44 100644 --- a/tests/unit/ProcessMaker/Events/GroupMembershipChangedTest.php +++ b/tests/unit/ProcessMaker/Events/GroupMembershipChangedTest.php @@ -37,7 +37,7 @@ protected function setUp(): void /** * Test event creation with all parameters */ - public function test_event_creation_with_all_parameters() + public function test_event_creation_with_all_parameters(): void { $event = new GroupMembershipChanged( $this->group, @@ -56,7 +56,7 @@ public function test_event_creation_with_all_parameters() /** * Test event creation without group member */ - public function test_event_creation_without_group_member() + public function test_event_creation_without_group_member(): void { $event = new GroupMembershipChanged( $this->group, @@ -74,7 +74,7 @@ public function test_event_creation_without_group_member() /** * Test event creation with null parent group */ - public function test_event_creation_with_null_parent_group() + public function test_event_creation_with_null_parent_group(): void { $event = new GroupMembershipChanged( $this->group, @@ -91,7 +91,7 @@ public function test_event_creation_with_null_parent_group() /** * Test action checking methods */ - public function test_action_checking_methods() + public function test_action_checking_methods(): void { $addedEvent = new GroupMembershipChanged($this->group, $this->parentGroup, 'added'); $removedEvent = new GroupMembershipChanged($this->group, $this->parentGroup, 'removed'); @@ -116,7 +116,7 @@ public function test_action_checking_methods() /** * Test event serialization */ - public function test_event_serialization() + public function test_event_serialization(): void { $event = new GroupMembershipChanged( $this->group, @@ -138,7 +138,7 @@ public function test_event_serialization() /** * Test event with different action types */ - public function test_event_with_different_action_types() + public function test_event_with_different_action_types(): void { $actions = ['added', 'removed', 'updated', 'restored']; @@ -154,7 +154,7 @@ public function test_event_with_different_action_types() /** * Test event properties are accessible */ - public function test_event_properties_are_accessible() + public function test_event_properties_are_accessible(): void { $event = new GroupMembershipChanged( $this->group, diff --git a/tests/unit/ProcessMaker/FilterTest.php b/tests/unit/ProcessMaker/FilterTest.php index 70e0269fa5..796bce963d 100644 --- a/tests/unit/ProcessMaker/FilterTest.php +++ b/tests/unit/ProcessMaker/FilterTest.php @@ -21,7 +21,7 @@ private function filter($filterDefinition, $model = ProcessRequest::class) return $query->toRawSql(); } - public function testFormData() + public function testFormData(): void { $sql = $this->filter([ [ @@ -37,7 +37,7 @@ public function testFormData() ); } - public function testRawValue() + public function testRawValue(): void { $sql = $this->filter([ [ @@ -53,7 +53,7 @@ public function testRawValue() ); } - public function testCompareDataInteger() + public function testCompareDataInteger(): void { $filter = [ [ @@ -89,7 +89,7 @@ public function testCompareDataInteger() $this->assertEquals($task1->id, $results[0]['id']); } - public function testNestedOr() + public function testNestedOr(): void { $sql = $this->filter([ [ @@ -127,7 +127,7 @@ public function testNestedOr() ); } - public function testAdditionalOperators() + public function testAdditionalOperators(): void { $sql = $this->filter([ [ @@ -160,7 +160,7 @@ public function testAdditionalOperators() ); } - public function testParticipants() + public function testParticipants(): void { $user1 = User::factory()->create(); $user2 = User::factory()->create(); @@ -190,7 +190,7 @@ public function testParticipants() ); } - public function testRequestStatus() + public function testRequestStatus(): void { $sql = $this->filter([ [ @@ -206,7 +206,7 @@ public function testRequestStatus() ); } - public function testTaskStatusSelfservice() + public function testTaskStatusSelfservice(): void { $user = User::factory()->create(); @@ -233,7 +233,7 @@ public function testTaskStatusSelfservice() ); } - public function testTaskStatusActive() + public function testTaskStatusActive(): void { $user = User::factory()->create(); @@ -259,7 +259,7 @@ public function testTaskStatusActive() ); } - public function testRequestProcess() + public function testRequestProcess(): void { $sql = $this->filter([ [ @@ -275,7 +275,7 @@ public function testRequestProcess() ); } - public function testTaskProcess() + public function testTaskProcess(): void { $sql = $this->filter([ [ @@ -291,7 +291,7 @@ public function testTaskProcess() ); } - public function testTaskCaseTitle() + public function testTaskCaseTitle(): void { $request = ProcessRequest::factory()->create(); $caseTitle = $request->case_title; @@ -313,7 +313,7 @@ public function testTaskCaseTitle() $this->assertEquals($query->first()->id, $task->id); } - public function testTaskCaseNumber() + public function testTaskCaseNumber(): void { $request = ProcessRequest::factory()->create(); $caseNumber = $request->case_number; diff --git a/tests/unit/ProcessMaker/HasScreenFieldsTest.php b/tests/unit/ProcessMaker/HasScreenFieldsTest.php index 42c2f24dc8..9bacb39e65 100644 --- a/tests/unit/ProcessMaker/HasScreenFieldsTest.php +++ b/tests/unit/ProcessMaker/HasScreenFieldsTest.php @@ -6,7 +6,7 @@ class HasScreenFieldsTest extends TestCase { - public function testLoadScreenFields() + public function testLoadScreenFields(): void { $screenCache = ScreenCacheFactory::getScreenCache(); $screen = Screen::factory()->create([ @@ -73,7 +73,7 @@ public function testLoadScreenFields() $this->assertEquals($expectedFields, $cacheFields); } - public function testLoadScreenFieldsFromCache() + public function testLoadScreenFieldsFromCache(): void { $screenCache = ScreenCacheFactory::getScreenCache(); $screen = Screen::factory()->create([ diff --git a/tests/unit/ProcessMaker/Helpers/ArrayHelperTest.php b/tests/unit/ProcessMaker/Helpers/ArrayHelperTest.php index 6596befdfa..ff0eab2f73 100644 --- a/tests/unit/ProcessMaker/Helpers/ArrayHelperTest.php +++ b/tests/unit/ProcessMaker/Helpers/ArrayHelperTest.php @@ -8,7 +8,7 @@ class ArrayHelperTest extends TestCase { - public function testStdClassToArray() + public function testStdClassToArray(): void { $myObject = new stdClass(); $myObject->name = 'John'; @@ -22,7 +22,7 @@ public function testStdClassToArray() ); } - public function testGetArrayDifferencesWithFormat() + public function testGetArrayDifferencesWithFormat(): void { //Case 1: Two arrays with same keys and different values $this->assertEquals([ @@ -72,7 +72,7 @@ public function testGetArrayDifferencesWithFormat() )); } - public function testReplaceKeyInArray() + public function testReplaceKeyInArray(): void { //Case 1: Existing Key $myArray = [ @@ -105,7 +105,7 @@ public function testReplaceKeyInArray() ); } - public function testCustomArrayDiffAssoc() + public function testCustomArrayDiffAssoc(): void { $array1 = [ 'a' => 'green', diff --git a/tests/unit/ProcessMaker/Helpers/DefaultColumnsTest.php b/tests/unit/ProcessMaker/Helpers/DefaultColumnsTest.php index a9fa7d1cca..ef368ab8c1 100644 --- a/tests/unit/ProcessMaker/Helpers/DefaultColumnsTest.php +++ b/tests/unit/ProcessMaker/Helpers/DefaultColumnsTest.php @@ -11,7 +11,7 @@ class DefaultColumnsTest extends TestCase /** * Test verifyDefaultColumns with null savedColumns */ - public function testVerifyDefaultColumnsWithNull() + public function testVerifyDefaultColumnsWithNull(): void { $result = DefaultColumns::verifyDefaultColumns(null, SavedSearch::KEY_TASKS); $this->assertTrue($result); @@ -20,7 +20,7 @@ public function testVerifyDefaultColumnsWithNull() /** * Test verifyDefaultColumns with non-array savedColumns */ - public function testVerifyDefaultColumnsWithNonArray() + public function testVerifyDefaultColumnsWithNonArray(): void { $result = DefaultColumns::verifyDefaultColumns('not_an_array', SavedSearch::KEY_TASKS); $this->assertTrue($result); @@ -29,7 +29,7 @@ public function testVerifyDefaultColumnsWithNonArray() /** * Test verifyDefaultColumns with invalid key */ - public function testVerifyDefaultColumnsWithInvalidKey() + public function testVerifyDefaultColumnsWithInvalidKey(): void { $savedColumns = [ ['field' => 'case_number', 'label' => 'Case #'], @@ -43,7 +43,7 @@ public function testVerifyDefaultColumnsWithInvalidKey() /** * Test verifyDefaultColumns with empty array */ - public function testVerifyDefaultColumnsWithEmptyArray() + public function testVerifyDefaultColumnsWithEmptyArray(): void { $result = DefaultColumns::verifyDefaultColumns([], SavedSearch::KEY_TASKS); $this->assertTrue($result); @@ -52,7 +52,7 @@ public function testVerifyDefaultColumnsWithEmptyArray() /** * Test verifyDefaultColumns with exact default columns for tasks (array format) */ - public function testVerifyDefaultColumnsWithExactDefaultColumnsForTasks() + public function testVerifyDefaultColumnsWithExactDefaultColumnsForTasks(): void { $savedColumns = [ ['field' => 'case_number', 'label' => 'Case #'], @@ -70,7 +70,7 @@ public function testVerifyDefaultColumnsWithExactDefaultColumnsForTasks() /** * Test verifyDefaultColumns with default columns in different order */ - public function testVerifyDefaultColumnsWithDifferentOrder() + public function testVerifyDefaultColumnsWithDifferentOrder(): void { $savedColumns = [ ['field' => 'status', 'label' => 'Status'], @@ -88,7 +88,7 @@ public function testVerifyDefaultColumnsWithDifferentOrder() /** * Test verifyDefaultColumns with object format columns */ - public function testVerifyDefaultColumnsWithObjectFormat() + public function testVerifyDefaultColumnsWithObjectFormat(): void { $savedColumns = [ (object) ['field' => 'case_number', 'label' => 'Case #'], @@ -106,7 +106,7 @@ public function testVerifyDefaultColumnsWithObjectFormat() /** * Test verifyDefaultColumns with missing default columns */ - public function testVerifyDefaultColumnsWithMissingColumns() + public function testVerifyDefaultColumnsWithMissingColumns(): void { $savedColumns = [ ['field' => 'case_number', 'label' => 'Case #'], @@ -122,7 +122,7 @@ public function testVerifyDefaultColumnsWithMissingColumns() /** * Test verifyDefaultColumns with extra columns */ - public function testVerifyDefaultColumnsWithExtraColumns() + public function testVerifyDefaultColumnsWithExtraColumns(): void { $savedColumns = [ ['field' => 'case_number', 'label' => 'Case #'], @@ -141,7 +141,7 @@ public function testVerifyDefaultColumnsWithExtraColumns() /** * Test verifyDefaultColumns with different field names */ - public function testVerifyDefaultColumnsWithDifferentFieldNames() + public function testVerifyDefaultColumnsWithDifferentFieldNames(): void { $savedColumns = [ ['field' => 'case_number', 'label' => 'Case #'], @@ -159,7 +159,7 @@ public function testVerifyDefaultColumnsWithDifferentFieldNames() /** * Test verifyDefaultColumns with columns missing field property */ - public function testVerifyDefaultColumnsWithMissingFieldProperty() + public function testVerifyDefaultColumnsWithMissingFieldProperty(): void { $savedColumns = [ ['field' => 'case_number', 'label' => 'Case #'], @@ -177,7 +177,7 @@ public function testVerifyDefaultColumnsWithMissingFieldProperty() /** * Test verifyDefaultColumns with additional properties in columns */ - public function testVerifyDefaultColumnsWithAdditionalProperties() + public function testVerifyDefaultColumnsWithAdditionalProperties(): void { $savedColumns = [ ['field' => 'case_number', 'label' => 'Case #', 'sortable' => true, 'width' => 100], diff --git a/tests/unit/ProcessMaker/Helpers/MobileHelperTest.php b/tests/unit/ProcessMaker/Helpers/MobileHelperTest.php index b7d9d5eb2f..9634591fab 100644 --- a/tests/unit/ProcessMaker/Helpers/MobileHelperTest.php +++ b/tests/unit/ProcessMaker/Helpers/MobileHelperTest.php @@ -27,7 +27,7 @@ public function getUserAgent($mobile = true) return $this->faker->randomElement($agent); } - public function testIsMobileWithoutCookie() + public function testIsMobileWithoutCookie(): void { $result = MobileHelper::isMobile($this->getUserAgent()); $this->assertFalse($result); diff --git a/tests/unit/ProcessMaker/Helpers/SensitiveDataHelperTest.php b/tests/unit/ProcessMaker/Helpers/SensitiveDataHelperTest.php index 59e67310d0..956c969b35 100644 --- a/tests/unit/ProcessMaker/Helpers/SensitiveDataHelperTest.php +++ b/tests/unit/ProcessMaker/Helpers/SensitiveDataHelperTest.php @@ -7,12 +7,12 @@ class SensitiveDataHelperTest extends TestCase { - public function testParseString() + public function testParseString(): void { $this->assertEquals('****', SensitiveDataHelper::parseString('1234')); } - public function testIsSensitiveKey() + public function testIsSensitiveKey(): void { $this->assertTrue(SensitiveDataHelper::isSensitiveKey('password')); $this->assertTrue(SensitiveDataHelper::isSensitiveKey('PASSWORD')); @@ -21,7 +21,7 @@ public function testIsSensitiveKey() $this->assertFalse(SensitiveDataHelper::isSensitiveKey('name')); } - public function testParseArray() + public function testParseArray(): void { $this->assertEquals([ 'password' => '****', diff --git a/tests/unit/ProcessMaker/InboxRules/ApplyActionTest.php b/tests/unit/ProcessMaker/InboxRules/ApplyActionTest.php index 9b9bc91c4a..70735ec482 100644 --- a/tests/unit/ProcessMaker/InboxRules/ApplyActionTest.php +++ b/tests/unit/ProcessMaker/InboxRules/ApplyActionTest.php @@ -13,7 +13,7 @@ class ApplyActionTest extends TestCase { - public function testCompleteTaskWithData() + public function testCompleteTaskWithData(): void { $user = User::factory()->create(); @@ -52,7 +52,7 @@ public function testCompleteTaskWithData() $this->assertEquals($inboxRuleLog->inbox_rule_id, $inboxRule->id); } - public function testMarkAsPriority() + public function testMarkAsPriority(): void { $user = User::factory()->create(); @@ -82,7 +82,7 @@ public function testMarkAsPriority() $this->assertTrue($activeTask->is_priority); } - public function testReassignToUserID() + public function testReassignToUserID(): void { $user = User::factory()->create([ 'is_administrator' => true, @@ -119,7 +119,7 @@ public function testReassignToUserID() ApplyAction::applyActionOnTask($activeTask, $inboxRule); } - public function testSaveAsDraft() + public function testSaveAsDraft(): void { $user = User::factory()->create(); diff --git a/tests/unit/ProcessMaker/InboxRules/MatchingTasksTest.php b/tests/unit/ProcessMaker/InboxRules/MatchingTasksTest.php index c11f647be2..dba60a13e1 100644 --- a/tests/unit/ProcessMaker/InboxRules/MatchingTasksTest.php +++ b/tests/unit/ProcessMaker/InboxRules/MatchingTasksTest.php @@ -13,7 +13,7 @@ class MatchingTasksTest extends TestCase { - public function testMatchingInboxRulesForTaskType() + public function testMatchingInboxRulesForTaskType(): void { $this->markTestSkipped('We are not longer matching task type in inbox rules. Must use saved search.'); @@ -41,7 +41,7 @@ public function testMatchingInboxRulesForTaskType() $this->assertEquals($inboxRule->id, $matchingTasks[0]->id); } - public function testMatchingInboxRulesForSavedSearch() + public function testMatchingInboxRulesForSavedSearch(): void { ProcessCategory::factory()->create(['is_system' => true, 'name' => 'System']); @@ -77,7 +77,7 @@ public function testMatchingInboxRulesForSavedSearch() $this->assertEquals($inboxRule->id, $matchingInboxRules[0]->id); } - public function testMatchingInboxRulesForAdvancedFilter() + public function testMatchingInboxRulesForAdvancedFilter(): void { ProcessCategory::factory()->create(['is_system' => true, 'name' => 'System']); @@ -140,7 +140,7 @@ public function testMatchingInboxRulesForAdvancedFilter() $this->assertEquals($inboxRule->id, $matchingInboxRules[0]->id); } - public function testInboxRuleEndDate() + public function testInboxRuleEndDate(): void { ProcessCategory::factory()->create(['is_system' => true, 'name' => 'System']); @@ -200,7 +200,7 @@ public function testInboxRuleEndDate() $this->assertNotEmpty($matchingRules); } - public function testGetForTypeTask() + public function testGetForTypeTask(): void { $this->markTestSkipped('We are not longer matching task type in inbox rules. Must use saved search.'); @@ -228,7 +228,7 @@ public function testGetForTypeTask() $this->assertEquals($task->process_id, $matchingTasks[0]['process_id']); } - public function testGetForTypeSavedSearch() + public function testGetForTypeSavedSearch(): void { $user = User::factory()->create(); ProcessCategory::factory()->create(['is_system' => true, 'name' => 'System']); diff --git a/tests/unit/ProcessMaker/JsonColumnIndexTest.php b/tests/unit/ProcessMaker/JsonColumnIndexTest.php index 484b3b4ef6..704ef32617 100644 --- a/tests/unit/ProcessMaker/JsonColumnIndexTest.php +++ b/tests/unit/ProcessMaker/JsonColumnIndexTest.php @@ -16,7 +16,7 @@ protected function connectionsToTransact() return []; } - public function test() + public function test(): void { $fields = ['stringValue', 'numberValue', 'stringNumberValue']; @@ -72,7 +72,7 @@ private function assertPMQLResult($expected, $query, $index = null) $this->assertEquals($expected, ProcessRequest::pmql($query)->count()); } - public function testCustomMysqlGrammar() + public function testCustomMysqlGrammar(): void { $processRequest = ProcessRequest::pmql('data.firstname = "Agustin"')->toSql(); $this->assertEquals( diff --git a/tests/unit/ProcessMaker/JsonOptimizerTest.php b/tests/unit/ProcessMaker/JsonOptimizerTest.php index d96285c042..34d4370782 100644 --- a/tests/unit/ProcessMaker/JsonOptimizerTest.php +++ b/tests/unit/ProcessMaker/JsonOptimizerTest.php @@ -46,7 +46,7 @@ protected function setUp(): void /** * Test that the json_optimize_decode function decodes JSON correctly. */ - public function test_it_decodes_json_correctly_with_optimizer() + public function test_it_decodes_json_correctly_with_optimizer(): void { $decoded = JsonOptimizer::decode($this->json, true); @@ -58,7 +58,7 @@ public function test_it_decodes_json_correctly_with_optimizer() /** * Test that the json_optimize_decode function falls back to native decode on invalid JSON. */ - public function test_it_falls_back_to_native_decode_on_invalid_json() + public function test_it_falls_back_to_native_decode_on_invalid_json(): void { $invalidJson = '{"name": "ProcessMaker", "invalid": }'; // malformed JSON @@ -70,7 +70,7 @@ public function test_it_falls_back_to_native_decode_on_invalid_json() /** * Test that the json_optimize_decode function uses simdjson when available. */ - public function test_it_uses_simdjson_when_available() + public function test_it_uses_simdjson_when_available(): void { if (!extension_loaded('simdjson_plus')) { $this->markTestSkipped('SIMDJSON extension not loaded.'); @@ -86,7 +86,7 @@ public function test_it_uses_simdjson_when_available() /** * Test that the config flag json_optimization_decode is respected. */ - public function test_it_respects_config_flag_json_optimization() + public function test_it_respects_config_flag_json_optimization(): void { config(['app.json_optimization_decode' => false]); @@ -98,7 +98,7 @@ public function test_it_respects_config_flag_json_optimization() /** * Test that the helper function json_optimize_decode decodes valid JSON correctly. */ - public function test_helper_function_decodes_valid_json_correctly() + public function test_helper_function_decodes_valid_json_correctly(): void { $decoded = json_optimize_decode($this->json, true); @@ -110,7 +110,7 @@ public function test_helper_function_decodes_valid_json_correctly() /** * Test that the helper function json_optimize_decode returns null on invalid JSON. */ - public function test_helper_function_returns_null_on_invalid_json() + public function test_helper_function_returns_null_on_invalid_json(): void { $invalidJson = '{"type": "workflow", "meta": ['; // malformed JSON @@ -122,7 +122,7 @@ public function test_helper_function_returns_null_on_invalid_json() /** * Test that the helper function json_optimize_decode respects the config setting. */ - public function test_helper_respects_config_setting() + public function test_helper_respects_config_setting(): void { config(['app.json_optimization_decode' => false]); @@ -134,7 +134,7 @@ public function test_helper_respects_config_setting() /** * Test that the helper function json_optimize_decode uses simdjson when enabled. */ - public function test_helper_uses_simdjson_when_enabled() + public function test_helper_uses_simdjson_when_enabled(): void { if (!extension_loaded('simdjson_plus')) { $this->markTestSkipped('SIMDJSON extension not available'); @@ -150,7 +150,7 @@ public function test_helper_uses_simdjson_when_enabled() /** * Test that the helper function json_optimize_encode encodes data correctly. */ - public function test_it_encodes_data_correctly() + public function test_it_encodes_data_correctly(): void { config(['app.json_optimization_encode' => true]); @@ -167,7 +167,7 @@ public function test_it_encodes_data_correctly() /** * Test the performance of the json_decode function. */ - public function test_json_decode_performance() + public function test_json_decode_performance(): void { $json = json_encode($this->testData); @@ -182,7 +182,7 @@ public function test_json_decode_performance() /** * Test the performance of the json_optimize_decode function. */ - public function test_json_optimize_decode_performance() + public function test_json_optimize_decode_performance(): void { if (!extension_loaded('simdjson_plus')) { $this->markTestSkipped('SIMDJSON extension not available'); @@ -201,7 +201,7 @@ public function test_json_optimize_decode_performance() /** * Test JSON encoding and decoding with edge cases and special characters. */ - public function test_json_decode_edge_cases() + public function test_json_decode_edge_cases(): void { // Test with special characters $specialData = [ @@ -245,7 +245,7 @@ public function test_json_decode_edge_cases() /** * Test performance comparison between json_optimize_decode and json_decode using fixture data. */ - public function test_json_optimize_decode_performance_vs_native() + public function test_json_optimize_decode_performance_vs_native(): void { $jsonFixturePath = __DIR__ . '/../../Fixtures/json_optimizer_test_example.json'; diff --git a/tests/unit/ProcessMaker/Listeners/HandleEndEventRedirectTest.php b/tests/unit/ProcessMaker/Listeners/HandleEndEventRedirectTest.php index 74210f2afa..0d3ce269c0 100644 --- a/tests/unit/ProcessMaker/Listeners/HandleEndEventRedirectTest.php +++ b/tests/unit/ProcessMaker/Listeners/HandleEndEventRedirectTest.php @@ -40,7 +40,7 @@ private function createProcessRequest(array $attributes = []): ProcessRequest ], $attributes)); } - public function test_handleRedirect_handles_valid_process_request() + public function test_handleRedirect_handles_valid_process_request(): void { // Create a process with asset_type $process = Process::factory()->create(['asset_type' => 'Process']); @@ -61,7 +61,7 @@ public function test_handleRedirect_handles_valid_process_request() $this->assertNull($request->getElementDestination(), 'Element destination should be null for a valid process request'); } - public function test_handleRedirect_skips_subprocess() + public function test_handleRedirect_skips_subprocess(): void { // Create a process with asset_type $process = Process::factory()->create(['asset_type' => 'Process']); @@ -87,7 +87,7 @@ public function test_handleRedirect_skips_subprocess() $this->assertNull($subprocess->getElementDestination(), 'Element destination should be null for a subprocess request'); } - public function test_handleRedirect_with_empty_request() + public function test_handleRedirect_with_empty_request(): void { // Create an empty request object $emptyRequest = ProcessRequest::factory()->create(); @@ -105,7 +105,7 @@ public function test_handleRedirect_with_empty_request() $this->assertNull($event->getProcessRequest(), 'Process request should be null when empty request is passed'); } - public function test_handleRedirect_handles_exception_when_process_not_found() + public function test_handleRedirect_handles_exception_when_process_not_found(): void { // Create request without process relation $request = ProcessRequest::factory()->create(); @@ -119,7 +119,7 @@ public function test_handleRedirect_handles_exception_when_process_not_found() $this->assertTrue(true); } - public function test_handleRedirect_handles_exception_when_user_not_authenticated() + public function test_handleRedirect_handles_exception_when_user_not_authenticated(): void { Auth::logout(); @@ -138,7 +138,7 @@ public function test_handleRedirect_handles_exception_when_user_not_authenticate $this->assertTrue(true); } - public function test_handleRedirect_handles_invalid_request_data() + public function test_handleRedirect_handles_invalid_request_data(): void { // Mock the ProcessCompleted event $event = Mockery::mock(ProcessCompleted::class); @@ -161,7 +161,7 @@ public function test_handleRedirect_handles_invalid_request_data() $this->assertTrue(true); } - public function test_handleRedirect_handles_missing_process_relation() + public function test_handleRedirect_handles_missing_process_relation(): void { // Create a process for the relation $process = Process::factory()->create(['asset_type' => 'Process']); @@ -188,7 +188,7 @@ public function test_handleRedirect_handles_missing_process_relation() $this->assertTrue(true); } - public function test_handleRedirect_with_multiple_subprocesses() + public function test_handleRedirect_with_multiple_subprocesses(): void { // Create main process $mainProcess = Process::factory()->create(['asset_type' => 'Process']); @@ -238,7 +238,7 @@ public function test_handleRedirect_with_multiple_subprocesses() 'Handler should return null for subprocess2'); } - public function test_handleRedirect_with_nested_subprocesses() + public function test_handleRedirect_with_nested_subprocesses(): void { // Create main process $mainProcess = Process::factory()->create(['asset_type' => 'Process']); @@ -291,7 +291,7 @@ public function test_handleRedirect_with_nested_subprocesses() 'Handler should return null for nested subprocess'); } - public function test_handleRedirect_with_deleted_parent_request() + public function test_handleRedirect_with_deleted_parent_request(): void { // Create main process $mainProcess = Process::factory()->create(['asset_type' => 'Process']); @@ -335,7 +335,7 @@ public function test_handleRedirect_with_deleted_parent_request() 'Subprocess should maintain correct process relationship'); } - public function test_handleRedirect_with_concurrent_subprocess_completion() + public function test_handleRedirect_with_concurrent_subprocess_completion(): void { // Test behavior when multiple subprocesses complete simultaneously $mainProcess = Process::factory()->create(['asset_type' => 'Process']); diff --git a/tests/unit/ProcessMaker/Listeners/InvalidatePermissionCacheOnGroupHierarchyChangeTest.php b/tests/unit/ProcessMaker/Listeners/InvalidatePermissionCacheOnGroupHierarchyChangeTest.php index 40ade6a6a0..28ed74131e 100644 --- a/tests/unit/ProcessMaker/Listeners/InvalidatePermissionCacheOnGroupHierarchyChangeTest.php +++ b/tests/unit/ProcessMaker/Listeners/InvalidatePermissionCacheOnGroupHierarchyChangeTest.php @@ -75,7 +75,7 @@ private function createTestData(): void /** * Test that the listener can handle events without throwing type errors */ - public function test_listener_handles_events_without_type_errors() + public function test_listener_handles_events_without_type_errors(): void { // Test all action types $actions = ['added', 'removed', 'updated', 'restored']; @@ -93,7 +93,7 @@ public function test_listener_handles_events_without_type_errors() /** * Test that circular references are handled safely */ - public function test_handles_circular_references_safely() + public function test_handles_circular_references_safely(): void { // Create a circular reference: Group A → Group B → Group A $groupA = Group::factory()->create(['name' => 'Group A']); @@ -123,7 +123,7 @@ public function test_handles_circular_references_safely() /** * Test that deep hierarchies are handled safely */ - public function test_handles_deep_hierarchies_safely() + public function test_handles_deep_hierarchies_safely(): void { // Create a deep hierarchy: Group1 → Group2 → Group3 → Group4 → Group5 $groups = []; @@ -151,7 +151,7 @@ public function test_handles_deep_hierarchies_safely() /** * Test that the listener handles missing groups gracefully */ - public function test_handles_missing_groups_gracefully() + public function test_handles_missing_groups_gracefully(): void { // Create an event with a non-existent group $nonExistentGroup = new Group(['id' => 99999, 'name' => 'Non-existent Group']); @@ -165,7 +165,7 @@ public function test_handles_missing_groups_gracefully() /** * Test that the listener can handle events with null parent group */ - public function test_handles_events_with_null_parent_group() + public function test_handles_events_with_null_parent_group(): void { // Create the event with null parent group $event = new GroupMembershipChanged($this->group, null, 'updated'); diff --git a/tests/unit/ProcessMaker/Managers/TaskSchedulerManagerTest.php b/tests/unit/ProcessMaker/Managers/TaskSchedulerManagerTest.php index 7937ed4211..a3e2c0041f 100644 --- a/tests/unit/ProcessMaker/Managers/TaskSchedulerManagerTest.php +++ b/tests/unit/ProcessMaker/Managers/TaskSchedulerManagerTest.php @@ -19,7 +19,7 @@ protected function setUp(): void $this->manager = new TaskSchedulerManager; } - public function testRoundDates() + public function testRoundDates(): void { // Exact minute: 00:01:00 -> 00:01:00 $date = new DateTime('2019-08-14 00:01:00'); @@ -47,7 +47,7 @@ public function testRoundDates() $this->assertEquals('00:02:00', $rounded->format('H:i:s')); } - public function testTruncateDates() + public function testTruncateDates(): void { // Exact minute: 00:01:00 -> 00:01:00 $date = new DateTime('2019-08-14 00:01:00'); diff --git a/tests/unit/ProcessMaker/MediaOrderColumnIndexTest.php b/tests/unit/ProcessMaker/MediaOrderColumnIndexTest.php index ccf3d246d9..13bc16e541 100644 --- a/tests/unit/ProcessMaker/MediaOrderColumnIndexTest.php +++ b/tests/unit/ProcessMaker/MediaOrderColumnIndexTest.php @@ -8,7 +8,7 @@ class MediaOrderColumnIndexTest extends TestCase { /** @test */ - public function test_it_has_order_column_index_on_media_table() + public function test_it_has_order_column_index_on_media_table(): void { // Run the migration to add the index $this->artisan('migrate'); diff --git a/tests/unit/ProcessMaker/Models/FormalExpressionTest.php b/tests/unit/ProcessMaker/Models/FormalExpressionTest.php index e48a604f86..51bdf4ed07 100644 --- a/tests/unit/ProcessMaker/Models/FormalExpressionTest.php +++ b/tests/unit/ProcessMaker/Models/FormalExpressionTest.php @@ -8,7 +8,7 @@ class FormalExpressionTest extends TestCase { - public function testDateFunction() + public function testDateFunction(): void { $formalExp = new FormalExpression(); $formalExp->setLanguage('FEEL'); @@ -33,7 +33,7 @@ public function testDateFunction() $this->assertEquals($date, $feelDate); } - public function testDateFunctionWithTimeZone() + public function testDateFunctionWithTimeZone(): void { $formalExp = new FormalExpression(); $formalExp->setLanguage('FEEL'); diff --git a/tests/unit/ProcessMaker/Models/GroupTest.php b/tests/unit/ProcessMaker/Models/GroupTest.php index af7989b51c..4f83017c96 100644 --- a/tests/unit/ProcessMaker/Models/GroupTest.php +++ b/tests/unit/ProcessMaker/Models/GroupTest.php @@ -12,7 +12,7 @@ class GroupTest extends TestCase * * @return void */ - public function testGroupWithManager() + public function testGroupWithManager(): void { $manager = User::factory()->create(); $group = Group::factory()->create(['manager_id' => $manager->id]); @@ -26,7 +26,7 @@ public function testGroupWithManager() * * @return void */ - public function testGroupWithoutManager() + public function testGroupWithoutManager(): void { $group = Group::factory()->make([ 'manager_id' => null, diff --git a/tests/unit/ProcessMaker/Models/ProcessCategoryTest.php b/tests/unit/ProcessMaker/Models/ProcessCategoryTest.php index 5acd283463..d84444a077 100644 --- a/tests/unit/ProcessMaker/Models/ProcessCategoryTest.php +++ b/tests/unit/ProcessMaker/Models/ProcessCategoryTest.php @@ -12,7 +12,7 @@ class ProcessCategoryTest extends TestCase * * @return void */ - public function testGetNamesByIds() + public function testGetNamesByIds(): void { //Case 1: one Id $category = ProcessCategory::factory()->create([ diff --git a/tests/unit/ProcessMaker/Models/ProcessRequestTest.php b/tests/unit/ProcessMaker/Models/ProcessRequestTest.php index 30fc341da8..3a09e900d5 100644 --- a/tests/unit/ProcessMaker/Models/ProcessRequestTest.php +++ b/tests/unit/ProcessMaker/Models/ProcessRequestTest.php @@ -14,7 +14,7 @@ class ProcessRequestTest extends TestCase * Test that getActiveTokens correctly returns active tokens for a process request * with and without process_collaboration_id */ - public function testGetActiveTokens() + public function testGetActiveTokens(): void { // Test scenario 1: Process request without collaboration ID $process = Process::factory()->create(); diff --git a/tests/unit/ProcessMaker/Models/ProcessTest.php b/tests/unit/ProcessMaker/Models/ProcessTest.php index 337d42bfec..031f2c4bb2 100644 --- a/tests/unit/ProcessMaker/Models/ProcessTest.php +++ b/tests/unit/ProcessMaker/Models/ProcessTest.php @@ -13,7 +13,7 @@ class ProcessTest extends TestCase { - public function testGetConsolidatedUsers() + public function testGetConsolidatedUsers(): void { $process = Process::factory()->create(); @@ -38,16 +38,16 @@ public function testGetConsolidatedUsers() /** * Test getAssignableUsersByAssignmentType with manager-only rules */ - public function testGetAssignableUsersByAssignmentTypeWithManagerOnlyRules() + public function testGetAssignableUsersByAssignmentTypeWithManagerOnlyRules(): void { $manager1 = User::factory()->create(['status' => 'ACTIVE']); $manager2 = User::factory()->create(['status' => 'ACTIVE']); - + // Create process with multiple managers (array) $process = Process::factory()->create([ - 'properties' => ['manager_id' => [$manager1->id, $manager2->id]] + 'properties' => ['manager_id' => [$manager1->id, $manager2->id]], ]); - + $request = ProcessRequest::factory()->create(['process_id' => $process->id]); $token = ProcessRequestToken::factory()->create([ 'process_id' => $process->id, @@ -57,13 +57,13 @@ public function testGetAssignableUsersByAssignmentTypeWithManagerOnlyRules() // Mock getAssignmentRule to return different manager-only rules $managerOnlyRules = ['previous_task_assignee', 'requester', 'process_manager']; - + foreach ($managerOnlyRules as $rule) { $tokenMock = Mockery::mock($token)->makePartial(); $tokenMock->shouldReceive('getAssignmentRule')->andReturn($rule); - + $result = $process->getAssignableUsersByAssignmentType($tokenMock); - + // Should return both managers $this->assertIsArray($result); $this->assertCount(2, $result); @@ -75,15 +75,15 @@ public function testGetAssignableUsersByAssignmentTypeWithManagerOnlyRules() /** * Test getAssignableUsersByAssignmentType with single manager */ - public function testGetAssignableUsersByAssignmentTypeWithSingleManager() + public function testGetAssignableUsersByAssignmentTypeWithSingleManager(): void { $manager = User::factory()->create(['status' => 'ACTIVE']); - + // Create process with single manager (not array) $process = Process::factory()->create([ - 'properties' => ['manager_id' => $manager->id] + 'properties' => ['manager_id' => $manager->id], ]); - + $request = ProcessRequest::factory()->create(['process_id' => $process->id]); $token = ProcessRequestToken::factory()->create([ 'process_id' => $process->id, @@ -92,9 +92,9 @@ public function testGetAssignableUsersByAssignmentTypeWithSingleManager() $tokenMock = Mockery::mock($token)->makePartial(); $tokenMock->shouldReceive('getAssignmentRule')->andReturn('process_manager'); - + $result = $process->getAssignableUsersByAssignmentType($tokenMock); - + $this->assertIsArray($result); $this->assertCount(1, $result); $this->assertContains($manager->id, $result); @@ -103,19 +103,19 @@ public function testGetAssignableUsersByAssignmentTypeWithSingleManager() /** * Test getAssignableUsersByAssignmentType with group-based rules */ - public function testGetAssignableUsersByAssignmentTypeWithGroupBasedRules() + public function testGetAssignableUsersByAssignmentTypeWithGroupBasedRules(): void { $manager = User::factory()->create(['status' => 'ACTIVE']); $assignableUser1 = User::factory()->create(['status' => 'ACTIVE']); $assignableUser2 = User::factory()->create(['status' => 'ACTIVE']); - + $process = Process::factory()->create([ - 'properties' => ['manager_id' => $manager->id] + 'properties' => ['manager_id' => $manager->id], ]); - + $request = ProcessRequest::factory()->create(['process_id' => $process->id]); $elementId = 'test_element_' . uniqid(); - + // Create task assignments ProcessTaskAssignment::factory()->create([ 'process_id' => $process->id, @@ -123,14 +123,14 @@ public function testGetAssignableUsersByAssignmentTypeWithGroupBasedRules() 'assignment_id' => $assignableUser1->id, 'assignment_type' => User::class, ]); - + ProcessTaskAssignment::factory()->create([ 'process_id' => $process->id, 'process_task_id' => $elementId, 'assignment_id' => $assignableUser2->id, 'assignment_type' => User::class, ]); - + $token = ProcessRequestToken::factory()->create([ 'process_id' => $process->id, 'process_request_id' => $request->id, @@ -138,13 +138,13 @@ public function testGetAssignableUsersByAssignmentTypeWithGroupBasedRules() ]); $groupBasedRules = ['user_group', 'process_variable', 'rule_expression']; - + foreach ($groupBasedRules as $rule) { $tokenMock = Mockery::mock($token)->makePartial(); $tokenMock->shouldReceive('getAssignmentRule')->andReturn($rule); - + $result = $process->getAssignableUsersByAssignmentType($tokenMock); - + // Should return assignable users + manager $this->assertIsArray($result); $this->assertCount(3, $result); @@ -157,14 +157,14 @@ public function testGetAssignableUsersByAssignmentTypeWithGroupBasedRules() /** * Test getAssignableUsersByAssignmentType with empty element_id */ - public function testGetAssignableUsersByAssignmentTypeWithEmptyElementId() + public function testGetAssignableUsersByAssignmentTypeWithEmptyElementId(): void { $manager = User::factory()->create(['status' => 'ACTIVE']); - + $process = Process::factory()->create([ - 'properties' => ['manager_id' => $manager->id] + 'properties' => ['manager_id' => $manager->id], ]); - + $request = ProcessRequest::factory()->create(['process_id' => $process->id]); $token = ProcessRequestToken::factory()->create([ 'process_id' => $process->id, @@ -174,9 +174,9 @@ public function testGetAssignableUsersByAssignmentTypeWithEmptyElementId() $tokenMock = Mockery::mock($token)->makePartial(); $tokenMock->shouldReceive('getAssignmentRule')->andReturn('user_group'); - + $result = $process->getAssignableUsersByAssignmentType($tokenMock); - + // Should only return manager when element_id is empty $this->assertIsArray($result); $this->assertCount(1, $result); @@ -186,12 +186,12 @@ public function testGetAssignableUsersByAssignmentTypeWithEmptyElementId() /** * Test getAssignableUsersByAssignmentType with null manager_id */ - public function testGetAssignableUsersByAssignmentTypeWithNullManager() + public function testGetAssignableUsersByAssignmentTypeWithNullManager(): void { $process = Process::factory()->create([ - 'properties' => ['manager_id' => null] + 'properties' => ['manager_id' => null], ]); - + $request = ProcessRequest::factory()->create(['process_id' => $process->id]); $token = ProcessRequestToken::factory()->create([ 'process_id' => $process->id, @@ -200,9 +200,9 @@ public function testGetAssignableUsersByAssignmentTypeWithNullManager() $tokenMock = Mockery::mock($token)->makePartial(); $tokenMock->shouldReceive('getAssignmentRule')->andReturn('process_manager'); - + $result = $process->getAssignableUsersByAssignmentType($tokenMock); - + // Should return empty array when manager_id is null $this->assertIsArray($result); $this->assertEmpty($result); @@ -211,14 +211,14 @@ public function testGetAssignableUsersByAssignmentTypeWithNullManager() /** * Test getAssignableUsersByAssignmentType with unknown rule */ - public function testGetAssignableUsersByAssignmentTypeWithUnknownRule() + public function testGetAssignableUsersByAssignmentTypeWithUnknownRule(): void { $manager = User::factory()->create(['status' => 'ACTIVE']); - + $process = Process::factory()->create([ - 'properties' => ['manager_id' => $manager->id] + 'properties' => ['manager_id' => $manager->id], ]); - + $request = ProcessRequest::factory()->create(['process_id' => $process->id]); $token = ProcessRequestToken::factory()->create([ 'process_id' => $process->id, @@ -227,9 +227,9 @@ public function testGetAssignableUsersByAssignmentTypeWithUnknownRule() $tokenMock = Mockery::mock($token)->makePartial(); $tokenMock->shouldReceive('getAssignmentRule')->andReturn('unknown_rule'); - + $result = $process->getAssignableUsersByAssignmentType($tokenMock); - + // Should return empty array for unknown rules $this->assertIsArray($result); $this->assertEmpty($result); @@ -238,17 +238,17 @@ public function testGetAssignableUsersByAssignmentTypeWithUnknownRule() /** * Test getAssignableUsersByAssignmentType handles nested arrays correctly */ - public function testGetAssignableUsersByAssignmentTypeHandlesNestedArrays() + public function testGetAssignableUsersByAssignmentTypeHandlesNestedArrays(): void { $manager1 = User::factory()->create(['status' => 'ACTIVE']); $manager2 = User::factory()->create(['status' => 'ACTIVE']); - + // Simulate nested array scenario (shouldn't happen but test the normalization) // Note: The accessor will normalize this, but we test the normalization logic $process = Process::factory()->create([ - 'properties' => ['manager_id' => [[$manager1->id], [$manager2->id]]] + 'properties' => ['manager_id' => [[$manager1->id], [$manager2->id]]], ]); - + $request = ProcessRequest::factory()->create(['process_id' => $process->id]); $token = ProcessRequestToken::factory()->create([ 'process_id' => $process->id, @@ -257,9 +257,9 @@ public function testGetAssignableUsersByAssignmentTypeHandlesNestedArrays() $tokenMock = Mockery::mock($token)->makePartial(); $tokenMock->shouldReceive('getAssignmentRule')->andReturn('process_manager'); - + $result = $process->getAssignableUsersByAssignmentType($tokenMock); - + // Should flatten and return both managers $this->assertIsArray($result); $this->assertCount(2, $result); @@ -274,18 +274,18 @@ public function testGetAssignableUsersByAssignmentTypeHandlesNestedArrays() /** * Test getAssignableUsersByAssignmentType removes duplicates */ - public function testGetAssignableUsersByAssignmentTypeRemovesDuplicates() + public function testGetAssignableUsersByAssignmentTypeRemovesDuplicates(): void { $manager = User::factory()->create(['status' => 'ACTIVE']); $assignableUser = User::factory()->create(['status' => 'ACTIVE']); - + $process = Process::factory()->create([ - 'properties' => ['manager_id' => $manager->id] + 'properties' => ['manager_id' => $manager->id], ]); - + $request = ProcessRequest::factory()->create(['process_id' => $process->id]); $elementId = 'test_element_' . uniqid(); - + // Create task assignment with manager as assignable user (duplicate scenario) ProcessTaskAssignment::factory()->create([ 'process_id' => $process->id, @@ -293,14 +293,14 @@ public function testGetAssignableUsersByAssignmentTypeRemovesDuplicates() 'assignment_id' => $manager->id, // Same as manager 'assignment_type' => User::class, ]); - + ProcessTaskAssignment::factory()->create([ 'process_id' => $process->id, 'process_task_id' => $elementId, 'assignment_id' => $assignableUser->id, 'assignment_type' => User::class, ]); - + $token = ProcessRequestToken::factory()->create([ 'process_id' => $process->id, 'process_request_id' => $request->id, @@ -309,9 +309,9 @@ public function testGetAssignableUsersByAssignmentTypeRemovesDuplicates() $tokenMock = Mockery::mock($token)->makePartial(); $tokenMock->shouldReceive('getAssignmentRule')->andReturn('user_group'); - + $result = $process->getAssignableUsersByAssignmentType($tokenMock); - + // Should return unique values (manager should appear only once) $this->assertIsArray($result); $this->assertCount(2, $result); // manager + assignableUser (no duplicates) diff --git a/tests/unit/ProcessMaker/Models/ScreenCategoryTest.php b/tests/unit/ProcessMaker/Models/ScreenCategoryTest.php index 12e53da49c..be7d052b43 100644 --- a/tests/unit/ProcessMaker/Models/ScreenCategoryTest.php +++ b/tests/unit/ProcessMaker/Models/ScreenCategoryTest.php @@ -12,7 +12,7 @@ class ScreenCategoryTest extends TestCase * * @return void */ - public function testGetNamesByIds() + public function testGetNamesByIds(): void { //Case 1: one Id $category = ScreenCategory::factory()->create([ diff --git a/tests/unit/ProcessMaker/Models/ScriptCategoryTest.php b/tests/unit/ProcessMaker/Models/ScriptCategoryTest.php index cda9da5170..27f2f0cf11 100644 --- a/tests/unit/ProcessMaker/Models/ScriptCategoryTest.php +++ b/tests/unit/ProcessMaker/Models/ScriptCategoryTest.php @@ -12,7 +12,7 @@ class ScriptCategoryTest extends TestCase * * @return void */ - public function testGetNamesByIds() + public function testGetNamesByIds(): void { //Case 1: one Id $category = ScriptCategory::factory()->create([ diff --git a/tests/unit/ProcessMaker/Nayra/Services/FixBpmnSchemaServiceTest.php b/tests/unit/ProcessMaker/Nayra/Services/FixBpmnSchemaServiceTest.php index 2b3ec5adaf..470c8b47ea 100644 --- a/tests/unit/ProcessMaker/Nayra/Services/FixBpmnSchemaServiceTest.php +++ b/tests/unit/ProcessMaker/Nayra/Services/FixBpmnSchemaServiceTest.php @@ -18,11 +18,11 @@ class FixBpmnSchemaServiceTest extends TestCase * * @return void */ - public function testExceptionInIncompleteProcess() + public function testExceptionInIncompleteProcess(): void { $bpmn = file_get_contents( __DIR__ . - "/../../../../Fixtures/process_data_input_without_targetref.bpmn" + '/../../../../Fixtures/process_data_input_without_targetref.bpmn' ); $document = new BpmnDocument(); @@ -30,7 +30,7 @@ public function testExceptionInIncompleteProcess() $this->expectException(Exception::class); $validation = $document->validateBPMNSchema( - public_path("definitions/ProcessMaker.xsd") + public_path('definitions/ProcessMaker.xsd') ); } @@ -39,11 +39,11 @@ public function testExceptionInIncompleteProcess() * * @return void */ - public function testFixIncompleteProcess() + public function testFixIncompleteProcess(): void { $bpmn = file_get_contents( __DIR__ . - "/../../../../Fixtures/process_data_input_without_targetref.bpmn" + '/../../../../Fixtures/process_data_input_without_targetref.bpmn' ); $fixBpmnSchemaService = app(FixBpmnSchemaService::class); @@ -52,7 +52,7 @@ public function testFixIncompleteProcess() $document = new BpmnDocument(); $document->loadXML($bpmn); $validation = $document->validateBPMNSchema( - public_path("definitions/ProcessMaker.xsd") + public_path('definitions/ProcessMaker.xsd') ); $this->assertTrue($validation); @@ -63,11 +63,11 @@ public function testFixIncompleteProcess() * * @return void */ - public function testFixPm4Process() + public function testFixPm4Process(): void { $bpmn = file_get_contents( __DIR__ . - "/../../../../Fixtures/process_data_input_generated_in_pm4.bpmn" + '/../../../../Fixtures/process_data_input_generated_in_pm4.bpmn' ); $fixBpmnSchemaService = app(FixBpmnSchemaService::class); @@ -76,7 +76,7 @@ public function testFixPm4Process() $document = new BpmnDocument(); $document->loadXML($bpmn); $validation = $document->validateBPMNSchema( - public_path("definitions/ProcessMaker.xsd") + public_path('definitions/ProcessMaker.xsd') ); $this->assertTrue($validation); diff --git a/tests/unit/ProcessMaker/Observers/GroupMemberObserverTest.php b/tests/unit/ProcessMaker/Observers/GroupMemberObserverTest.php index 6cecdec0c5..a98b1a8911 100644 --- a/tests/unit/ProcessMaker/Observers/GroupMemberObserverTest.php +++ b/tests/unit/ProcessMaker/Observers/GroupMemberObserverTest.php @@ -43,7 +43,7 @@ protected function setUp(): void /** * Test that GroupMembershipChanged event is dispatched when a group is added to another group */ - public function test_dispatches_event_when_group_added_to_group() + public function test_dispatches_event_when_group_added_to_group(): void { // Create a group member relationship (group added to parent group) $groupMember = new GroupMember([ @@ -67,7 +67,7 @@ public function test_dispatches_event_when_group_added_to_group() /** * Test that GroupMembershipChanged event is dispatched when a group is removed from another group */ - public function test_dispatches_event_when_group_removed_from_group() + public function test_dispatches_event_when_group_removed_from_group(): void { // Create a group member relationship $groupMember = GroupMember::factory()->create([ @@ -90,7 +90,7 @@ public function test_dispatches_event_when_group_removed_from_group() /** * Test that GroupMembershipChanged event is dispatched when a group membership is updated */ - public function test_dispatches_event_when_group_membership_updated() + public function test_dispatches_event_when_group_membership_updated(): void { // Create a group member relationship $groupMember = GroupMember::factory()->create([ @@ -113,7 +113,7 @@ public function test_dispatches_event_when_group_membership_updated() /** * Test that event is not dispatched for user memberships (only group memberships) */ - public function test_does_not_dispatch_event_for_user_memberships() + public function test_does_not_dispatch_event_for_user_memberships(): void { // Create a user member relationship $userMember = new GroupMember([ @@ -132,7 +132,7 @@ public function test_does_not_dispatch_event_for_user_memberships() /** * Test that event is not dispatched for invalid group relationships */ - public function test_does_not_dispatch_event_for_invalid_group_relationships() + public function test_does_not_dispatch_event_for_invalid_group_relationships(): void { // Create a group member with non-existent group $groupMember = new GroupMember([ @@ -151,7 +151,7 @@ public function test_does_not_dispatch_event_for_invalid_group_relationships() /** * Test that event is not dispatched for invalid member groups */ - public function test_does_not_dispatch_event_for_invalid_member_groups() + public function test_does_not_dispatch_event_for_invalid_member_groups(): void { // Create a group member with non-existent member group $groupMember = new GroupMember([ @@ -170,7 +170,7 @@ public function test_does_not_dispatch_event_for_invalid_member_groups() /** * Test that multiple events can be dispatched for different actions */ - public function test_can_dispatch_multiple_events_for_different_actions() + public function test_can_dispatch_multiple_events_for_different_actions(): void { // Create a group member relationship $groupMember = GroupMember::factory()->create([ diff --git a/tests/unit/ProcessMaker/RecommendationEngineTest.php b/tests/unit/ProcessMaker/RecommendationEngineTest.php index 789c37a7fc..9de801d0dd 100644 --- a/tests/unit/ProcessMaker/RecommendationEngineTest.php +++ b/tests/unit/ProcessMaker/RecommendationEngineTest.php @@ -24,7 +24,7 @@ class RecommendationEngineTest extends TestCase private SyncRecommendations $syncRecommendations; - public function setUp(): void + protected function setUp(): void { parent::setUp(); diff --git a/tests/unit/ProcessMaker/Repositories/PermissionRepositoryTest.php b/tests/unit/ProcessMaker/Repositories/PermissionRepositoryTest.php index a5fd5b97ca..a474b13edf 100644 --- a/tests/unit/ProcessMaker/Repositories/PermissionRepositoryTest.php +++ b/tests/unit/ProcessMaker/Repositories/PermissionRepositoryTest.php @@ -53,7 +53,7 @@ protected function setUp(): void /** * Test that user permissions include direct permissions */ - public function test_user_permissions_include_direct_permissions() + public function test_user_permissions_include_direct_permissions(): void { // Add direct permission to user $this->user->permissions()->attach($this->permission1->id); @@ -68,7 +68,7 @@ public function test_user_permissions_include_direct_permissions() /** * Test that user permissions include group permissions */ - public function test_user_permissions_include_group_permissions() + public function test_user_permissions_include_group_permissions(): void { // Add user to group $this->user->groupMembersFromMemberable()->create([ @@ -90,7 +90,7 @@ public function test_user_permissions_include_group_permissions() /** * Test hierarchical inheritance: User → Group1 → Group2 */ - public function test_hierarchical_inheritance_two_levels() + public function test_hierarchical_inheritance_two_levels(): void { // Set up hierarchy: User → Group1 → Group2 $this->user->groupMembersFromMemberable()->create([ @@ -120,7 +120,7 @@ public function test_hierarchical_inheritance_two_levels() /** * Test hierarchical inheritance: User → Group1 → Group2 → Group3 */ - public function test_hierarchical_inheritance_three_levels() + public function test_hierarchical_inheritance_three_levels(): void { // Set up hierarchy: User → Group1 → Group2 → Group3 $this->user->groupMembersFromMemberable()->create([ @@ -158,7 +158,7 @@ public function test_hierarchical_inheritance_three_levels() /** * Test that userHasPermission works with hierarchical inheritance */ - public function test_user_has_permission_with_hierarchical_inheritance() + public function test_user_has_permission_with_hierarchical_inheritance(): void { // Set up hierarchy: User → Group1 → Group2 $this->user->groupMembersFromMemberable()->create([ @@ -184,7 +184,7 @@ public function test_user_has_permission_with_hierarchical_inheritance() /** * Test that getNestedGroupPermissions includes nested group permissions */ - public function test_get_group_permissions_includes_nested_permissions() + public function test_get_group_permissions_includes_nested_permissions(): void { // Set up hierarchy: Group1 → Group2 → Group3 $this->group1->groupMembersFromMemberable()->create([ @@ -216,7 +216,7 @@ public function test_get_group_permissions_includes_nested_permissions() /** * Test that permissions are not duplicated in inheritance */ - public function test_permissions_are_not_duplicated_in_inheritance() + public function test_permissions_are_not_duplicated_in_inheritance(): void { // Set up hierarchy: User → Group1 → Group2 $this->user->groupMembersFromMemberable()->create([ @@ -245,7 +245,7 @@ public function test_permissions_are_not_duplicated_in_inheritance() /** * Test that complex hierarchies work correctly */ - public function test_complex_hierarchies_work_correctly() + public function test_complex_hierarchies_work_correctly(): void { // Create additional groups for complex hierarchy $group4 = Group::factory()->create(['name' => 'Group 4']); diff --git a/tests/unit/ProcessMaker/RollbackProcessRequestTest.php b/tests/unit/ProcessMaker/RollbackProcessRequestTest.php index 754ee5307a..4f7df80c71 100644 --- a/tests/unit/ProcessMaker/RollbackProcessRequestTest.php +++ b/tests/unit/ProcessMaker/RollbackProcessRequestTest.php @@ -48,7 +48,7 @@ public function createTasks($rollbackToType) return $task; } - public function testRollbackToFormTask() + public function testRollbackToFormTask(): void { $task = $this->createTasks('task'); @@ -61,7 +61,7 @@ public function testRollbackToFormTask() $this->assertEquals($comment->body, "The System rolled back {$task->element_name} to {$newTask->element_name}"); } - public function testRollbackToScriptTask() + public function testRollbackToScriptTask(): void { $task = $this->createTasks('scriptTask'); $mockProcessDefinitions = $this->mockRunScriptTask(); @@ -71,7 +71,7 @@ public function testRollbackToScriptTask() $this->assertEquals('ACTIVE', $newTask->status); } - public function testRollbackToServiceTask() + public function testRollbackToServiceTask(): void { $task = $this->createTasks('serviceTask'); $mockProcessDefinitions = $this->mockRunServiceTask(); diff --git a/tests/unit/ProcessMaker/SanitizeHelperTest.php b/tests/unit/ProcessMaker/SanitizeHelperTest.php index 3b43859096..a03966517a 100644 --- a/tests/unit/ProcessMaker/SanitizeHelperTest.php +++ b/tests/unit/ProcessMaker/SanitizeHelperTest.php @@ -6,7 +6,7 @@ class SanitizeHelperTest extends TestCase { - public function testSanitize() + public function testSanitize(): void { $this->assertEquals('test', SanitizeHelper::strip_tags('

test

')); $this->assertEquals('image:;', SanitizeHelper::strip_tags('image:;')); diff --git a/tests/unit/ProcessMaker/Services/PermissionCacheServiceTest.php b/tests/unit/ProcessMaker/Services/PermissionCacheServiceTest.php index 46e83aa3af..21077a4735 100644 --- a/tests/unit/ProcessMaker/Services/PermissionCacheServiceTest.php +++ b/tests/unit/ProcessMaker/Services/PermissionCacheServiceTest.php @@ -40,7 +40,7 @@ protected function setUp(): void /** * Test that cacheUserPermissions stores user permissions correctly */ - public function test_cache_user_permissions_stores_correctly() + public function test_cache_user_permissions_stores_correctly(): void { // Cache user permissions $this->cacheService->cacheUserPermissions($this->userId, $this->userPermissions); @@ -54,7 +54,7 @@ public function test_cache_user_permissions_stores_correctly() /** * Test that cacheGroupPermissions stores group permissions correctly */ - public function test_cache_group_permissions_stores_correctly() + public function test_cache_group_permissions_stores_correctly(): void { // Cache group permissions $this->cacheService->cacheGroupPermissions($this->groupId, $this->groupPermissions); @@ -68,7 +68,7 @@ public function test_cache_group_permissions_stores_correctly() /** * Test that getUserPermissions retrieves cached user permissions */ - public function test_get_user_permissions_retrieves_cached_permissions() + public function test_get_user_permissions_retrieves_cached_permissions(): void { // Cache user permissions $this->cacheService->cacheUserPermissions($this->userId, $this->userPermissions); @@ -83,7 +83,7 @@ public function test_get_user_permissions_retrieves_cached_permissions() /** * Test that getGroupPermissions retrieves cached group permissions */ - public function test_get_group_permissions_retrieves_cached_permissions() + public function test_get_group_permissions_retrieves_cached_permissions(): void { // Cache group permissions $this->cacheService->cacheGroupPermissions($this->groupId, $this->groupPermissions); @@ -98,7 +98,7 @@ public function test_get_group_permissions_retrieves_cached_permissions() /** * Test that getUserPermissions returns null when cache is empty */ - public function test_get_user_permissions_returns_null_when_cache_empty() + public function test_get_user_permissions_returns_null_when_cache_empty(): void { // Try to retrieve permissions without caching $retrievedPermissions = $this->cacheService->getUserPermissions($this->userId); @@ -110,7 +110,7 @@ public function test_get_user_permissions_returns_null_when_cache_empty() /** * Test that getGroupPermissions returns null when cache is empty */ - public function test_get_group_permissions_returns_null_when_cache_empty() + public function test_get_group_permissions_returns_null_when_cache_empty(): void { // Try to retrieve permissions without caching $retrievedPermissions = $this->cacheService->getGroupPermissions($this->groupId); @@ -122,7 +122,7 @@ public function test_get_group_permissions_returns_null_when_cache_empty() /** * Test that invalidateUserPermissions clears user cache correctly */ - public function test_invalidate_user_permissions_clears_cache_correctly() + public function test_invalidate_user_permissions_clears_cache_correctly(): void { // Cache user permissions $this->cacheService->cacheUserPermissions($this->userId, $this->userPermissions); @@ -140,7 +140,7 @@ public function test_invalidate_user_permissions_clears_cache_correctly() /** * Test that invalidateGroupPermissions clears group cache correctly */ - public function test_invalidate_group_permissions_clears_cache_correctly() + public function test_invalidate_group_permissions_clears_cache_correctly(): void { // Cache group permissions $this->cacheService->cacheGroupPermissions($this->groupId, $this->groupPermissions); @@ -158,7 +158,7 @@ public function test_invalidate_group_permissions_clears_cache_correctly() /** * Test that clearAll clears all permission caches */ - public function test_clear_all_clears_all_permission_caches() + public function test_clear_all_clears_all_permission_caches(): void { // Cache both user and group permissions $this->cacheService->cacheUserPermissions($this->userId, $this->userPermissions); @@ -179,7 +179,7 @@ public function test_clear_all_clears_all_permission_caches() /** * Test that cache keys are generated correctly */ - public function test_cache_keys_are_generated_correctly() + public function test_cache_keys_are_generated_correctly(): void { // Test that cache keys follow the expected pattern $userKey = "user_permissions:{$this->userId}"; @@ -192,7 +192,7 @@ public function test_cache_keys_are_generated_correctly() /** * Test that cache TTL is respected */ - public function test_cache_ttl_is_respected() + public function test_cache_ttl_is_respected(): void { // Cache user permissions $this->cacheService->cacheUserPermissions($this->userId, $this->userPermissions); @@ -208,7 +208,7 @@ public function test_cache_ttl_is_respected() /** * Test that multiple users can have separate caches */ - public function test_multiple_users_can_have_separate_caches() + public function test_multiple_users_can_have_separate_caches(): void { $userId2 = 789; $userPermissions2 = ['permission-4', 'permission-5']; @@ -233,7 +233,7 @@ public function test_multiple_users_can_have_separate_caches() /** * Test that multiple groups can have separate caches */ - public function test_multiple_groups_can_have_separate_caches() + public function test_multiple_groups_can_have_separate_caches(): void { $groupId2 = 789; $groupPermissions2 = ['group-permission-3', 'group-permission-4']; @@ -258,7 +258,7 @@ public function test_multiple_groups_can_have_separate_caches() /** * Test that cache service handles empty permission arrays gracefully */ - public function test_handles_empty_permission_arrays_gracefully() + public function test_handles_empty_permission_arrays_gracefully(): void { // Cache empty permissions $this->cacheService->cacheUserPermissions($this->userId, []); diff --git a/tests/unit/ProcessMaker/Services/PermissionServiceManagerTest.php b/tests/unit/ProcessMaker/Services/PermissionServiceManagerTest.php index f62c4eb626..7fc9c7107d 100644 --- a/tests/unit/ProcessMaker/Services/PermissionServiceManagerTest.php +++ b/tests/unit/ProcessMaker/Services/PermissionServiceManagerTest.php @@ -41,7 +41,7 @@ protected function setUp(): void /** * Test that getUserPermissions returns cached permissions when available */ - public function test_get_user_permissions_returns_cached_permissions() + public function test_get_user_permissions_returns_cached_permissions(): void { // Add user to group with permission $this->user->groupMembersFromMemberable()->create([ @@ -67,7 +67,7 @@ public function test_get_user_permissions_returns_cached_permissions() /** * Test that getUserPermissions fetches from repository when cache is empty */ - public function test_get_user_permissions_fetches_from_repository_when_cache_empty() + public function test_get_user_permissions_fetches_from_repository_when_cache_empty(): void { // Add user to group with permission $this->user->groupMembersFromMemberable()->create([ @@ -93,7 +93,7 @@ public function test_get_user_permissions_fetches_from_repository_when_cache_emp /** * Test that userHasPermission works correctly */ - public function test_user_has_permission_works_correctly() + public function test_user_has_permission_works_correctly(): void { // Add user to group with permission $this->user->groupMembersFromMemberable()->create([ @@ -111,7 +111,7 @@ public function test_user_has_permission_works_correctly() /** * Test that warmUpUserCache populates cache correctly */ - public function test_warm_up_user_cache_populates_cache_correctly() + public function test_warm_up_user_cache_populates_cache_correctly(): void { // Add user to group with permission $this->user->groupMembersFromMemberable()->create([ @@ -138,7 +138,7 @@ public function test_warm_up_user_cache_populates_cache_correctly() /** * Test that invalidateUserCache clears cache correctly */ - public function test_invalidate_user_cache_clears_cache_correctly() + public function test_invalidate_user_cache_clears_cache_correctly(): void { // Add user to group with permission $this->user->groupMembersFromMemberable()->create([ @@ -164,7 +164,7 @@ public function test_invalidate_user_cache_clears_cache_correctly() /** * Test that hierarchical inheritance works through the service manager */ - public function test_hierarchical_inheritance_works_through_service_manager() + public function test_hierarchical_inheritance_works_through_service_manager(): void { // Create nested groups $parentGroup = Group::factory()->create(['name' => 'Parent Group']); @@ -197,7 +197,7 @@ public function test_hierarchical_inheritance_works_through_service_manager() /** * Test that cache is properly managed for multiple users */ - public function test_cache_is_properly_managed_for_multiple_users() + public function test_cache_is_properly_managed_for_multiple_users(): void { // Create second user $user2 = User::factory()->create(['username' => 'testuser2']); @@ -236,7 +236,7 @@ public function test_cache_is_properly_managed_for_multiple_users() /** * Test that the service manager handles users with no permissions gracefully */ - public function test_handles_users_with_no_permissions_gracefully() + public function test_handles_users_with_no_permissions_gracefully(): void { // User has no groups or permissions diff --git a/tests/unit/ProcessMaker/Traits/HasAuthorizationTest.php b/tests/unit/ProcessMaker/Traits/HasAuthorizationTest.php index c32432b523..d320bac483 100644 --- a/tests/unit/ProcessMaker/Traits/HasAuthorizationTest.php +++ b/tests/unit/ProcessMaker/Traits/HasAuthorizationTest.php @@ -31,7 +31,7 @@ protected function setUp(): void /** * Test that hasPermission delegates to PermissionServiceManager */ - public function test_has_permission_delegates_to_permission_service_manager() + public function test_has_permission_delegates_to_permission_service_manager(): void { // Add user to group with permission $this->user->groupMembersFromMemberable()->create([ @@ -49,7 +49,7 @@ public function test_has_permission_delegates_to_permission_service_manager() /** * Test that loadPermissions works correctly */ - public function test_load_permissions_works_correctly() + public function test_load_permissions_works_correctly(): void { // Add user to group with permission $this->user->groupMembersFromMemberable()->create([ @@ -69,7 +69,7 @@ public function test_load_permissions_works_correctly() /** * Test that invalidatePermissionCache works correctly */ - public function test_invalidate_permission_cache_works_correctly() + public function test_invalidate_permission_cache_works_correctly(): void { // Add user to group with permission $this->user->groupMembersFromMemberable()->create([ @@ -92,7 +92,7 @@ public function test_invalidate_permission_cache_works_correctly() /** * Test that cache invalidation actually works when permissions change */ - public function test_cache_invalidation_works_when_permissions_change() + public function test_cache_invalidation_works_when_permissions_change(): void { // Add user to group with permission $this->user->groupMembersFromMemberable()->create([ @@ -121,7 +121,7 @@ public function test_cache_invalidation_works_when_permissions_change() /** * Test that hierarchical inheritance works through the trait */ - public function test_hierarchical_inheritance_works_through_trait() + public function test_hierarchical_inheritance_works_through_trait(): void { // Create nested groups $parentGroup = Group::factory()->create(['name' => 'Parent Group']); @@ -150,7 +150,7 @@ public function test_hierarchical_inheritance_works_through_trait() /** * Test that the trait handles users with no permissions gracefully */ - public function test_handles_users_with_no_permissions_gracefully() + public function test_handles_users_with_no_permissions_gracefully(): void { // User has no groups or permissions @@ -167,7 +167,7 @@ public function test_handles_users_with_no_permissions_gracefully() /** * Test that the trait works with multiple permissions */ - public function test_works_with_multiple_permissions() + public function test_works_with_multiple_permissions(): void { // Create additional permissions $permission2 = Permission::factory()->create(['name' => 'permission-2']); @@ -196,7 +196,7 @@ public function test_works_with_multiple_permissions() /** * Test that the trait works with direct user permissions */ - public function test_works_with_direct_user_permissions() + public function test_works_with_direct_user_permissions(): void { // Add permission directly to user $this->user->permissions()->attach($this->permission->id); @@ -212,7 +212,7 @@ public function test_works_with_direct_user_permissions() /** * Test that the trait works with both direct and group permissions */ - public function test_works_with_both_direct_and_group_permissions() + public function test_works_with_both_direct_and_group_permissions(): void { // Create additional permission $permission2 = Permission::factory()->create(['name' => 'permission-2']); diff --git a/tests/unit/ProcessRequestFileControllerValidationTest.php b/tests/unit/ProcessRequestFileControllerValidationTest.php index 5435fd84be..cefd72cc52 100644 --- a/tests/unit/ProcessRequestFileControllerValidationTest.php +++ b/tests/unit/ProcessRequestFileControllerValidationTest.php @@ -128,7 +128,7 @@ private function invokeValidatePDFFile(UploadedFile $file, &$errors) /** * Test the main validateFile method with valid file */ - public function testValidateFileWithValidFile() + public function testValidateFileWithValidFile(): void { $file = UploadedFile::fake()->create('document.pdf', 100, 'application/pdf'); @@ -141,7 +141,7 @@ public function testValidateFileWithValidFile() /** * Test validateFile with archive file (should be rejected) */ - public function testValidateFileWithArchiveFile() + public function testValidateFileWithArchiveFile(): void { $file = UploadedFile::fake()->create('archive.zip', 100, 'application/zip'); @@ -154,7 +154,7 @@ public function testValidateFileWithArchiveFile() /** * Test validateFile with extension not in allowed list */ - public function testValidateFileWithUnallowedExtension() + public function testValidateFileWithUnallowedExtension(): void { $file = UploadedFile::fake()->create('document.xyz', 100, 'application/octet-stream'); @@ -168,7 +168,7 @@ public function testValidateFileWithUnallowedExtension() /** * Test validateFile with extension vs MIME type mismatch */ - public function testValidateFileWithExtensionMimeTypeMismatch() + public function testValidateFileWithExtensionMimeTypeMismatch(): void { $file = UploadedFile::fake()->create('document.pdf', 100, 'text/plain'); @@ -182,7 +182,7 @@ public function testValidateFileWithExtensionMimeTypeMismatch() /** * Test validateFile with dangerous PDF content */ - public function testValidateFileWithDangerousPDFContent() + public function testValidateFileWithDangerousPDFContent(): void { // Create a PDF file with JavaScript content $pdfContent = '%PDF-1.4 @@ -247,7 +247,7 @@ public function testValidateFileWithDangerousPDFContent() /** * Test validateFile with extension validation disabled */ - public function testDisableMimeAndExtensionValidation() + public function testDisableMimeAndExtensionValidation(): void { Config::set('files.enable_extension_validation', false); Config::set('files.enable_mime_validation', false); @@ -267,7 +267,7 @@ public function testDisableMimeAndExtensionValidation() /** * Test validateFile with extension validation disabled */ - public function testValidateFileWithExtensionValidationDisabled() + public function testValidateFileWithExtensionValidationDisabled(): void { Config::set('files.enable_extension_validation', false); @@ -286,7 +286,7 @@ public function testValidateFileWithExtensionValidationDisabled() /** * Test validateFile with MIME validation disabled */ - public function testValidateFileWithMimeValidationDisabled() + public function testValidateFileWithMimeValidationDisabled(): void { Config::set('files.enable_mime_validation', false); @@ -306,7 +306,7 @@ public function testValidateFileWithMimeValidationDisabled() /** * Test rejectArchiveFiles method specifically */ - public function testRejectArchiveFiles() + public function testRejectArchiveFiles(): void { $file = UploadedFile::fake()->create('archive.zip', 100, 'application/zip'); @@ -320,7 +320,7 @@ public function testRejectArchiveFiles() /** * Test validateFileExtension method specifically */ - public function testValidateFileExtension() + public function testValidateFileExtension(): void { $file = UploadedFile::fake()->create('document.xyz', 100, 'application/octet-stream'); @@ -334,7 +334,7 @@ public function testValidateFileExtension() /** * Test validateExtensionMimeTypeMatch method specifically */ - public function testValidateExtensionMimeTypeMatch() + public function testValidateExtensionMimeTypeMatch(): void { $file = UploadedFile::fake()->create('document.pdf', 100, 'text/plain'); @@ -348,7 +348,7 @@ public function testValidateExtensionMimeTypeMatch() /** * Test validatePDFFile method specifically */ - public function testValidatePDFFile() + public function testValidatePDFFile(): void { $pdfContent = '%PDF-1.4 1 0 obj @@ -411,7 +411,7 @@ public function testValidatePDFFile() /** * Test multiple validation errors at once */ - public function testValidateFileWithMultipleErrors() + public function testValidateFileWithMultipleErrors(): void { // Create a file that violates multiple rules $file = UploadedFile::fake()->create('archive.xyz', 100, 'application/octet-stream'); diff --git a/tests/unit/ScreenEmailSeederTest.php b/tests/unit/ScreenEmailSeederTest.php index 638d3ddd8c..da04d230d6 100644 --- a/tests/unit/ScreenEmailSeederTest.php +++ b/tests/unit/ScreenEmailSeederTest.php @@ -12,7 +12,7 @@ class ScreenEmailSeederTest extends TestCase { use RefreshDatabase; - public function test_seeder_creates_screen_without_system_flag() + public function test_seeder_creates_screen_without_system_flag(): void { $seeder = new ScreenEmailSeeder(); $seeder->run(); @@ -30,7 +30,7 @@ public function test_seeder_creates_screen_without_system_flag() $this->assertNull($screen->screen_category_id); } - public function test_get_screen_by_key_non_system_method() + public function test_get_screen_by_key_non_system_method(): void { $screen = Screen::getScreenByKeyPerDefault('default-email-task-notification'); diff --git a/tests/unit/ScriptMicroserviceServiceTest.php b/tests/unit/ScriptMicroserviceServiceTest.php index 6aabaf3052..bdfcaf8df9 100644 --- a/tests/unit/ScriptMicroserviceServiceTest.php +++ b/tests/unit/ScriptMicroserviceServiceTest.php @@ -28,7 +28,7 @@ protected function setUp(): void $this->user = User::factory()->create(); } - public function testHandlePreviewSuccess() + public function testHandlePreviewSuccess(): void { Event::fake(); @@ -52,7 +52,7 @@ public function testHandlePreviewSuccess() }); } - public function testHandlePreviewError() + public function testHandlePreviewError(): void { Event::fake(); @@ -76,7 +76,7 @@ public function testHandlePreviewError() }); } - public function testHandleScriptTaskSuccess() + public function testHandleScriptTaskSuccess(): void { Queue::fake(); @@ -114,7 +114,7 @@ public function testHandleScriptTaskSuccess() }); } - public function testHandleScriptTaskError() + public function testHandleScriptTaskError(): void { Queue::fake();