diff --git a/ProcessMaker/Http/Controllers/Api/ProcessController.php b/ProcessMaker/Http/Controllers/Api/ProcessController.php index f55a8cbfb1..c5ed26cbd8 100644 --- a/ProcessMaker/Http/Controllers/Api/ProcessController.php +++ b/ProcessMaker/Http/Controllers/Api/ProcessController.php @@ -149,6 +149,7 @@ public function index(Request $request) if ($request->input('simplified_data_for_selector', false)) { $fields = $this->getRequestFields($request); $processes = $processes->select($fields); + return new ApiCollection($processes->get()); } @@ -483,8 +484,8 @@ public function update(Request $request, Process $process) if ($request->has('manager_id')) { $process->manager_id = $request->input('manager_id', null); } - - if($request->has('reassignment_users')) { + + if ($request->has('reassignment_users')) { $process->setProperty('reassignment_users', $request->get('reassignment_users')); } @@ -510,8 +511,8 @@ public function update(Request $request, Process $process) // Save default language for anon web entry... if ($request->has(['default_for_anon_webentry', 'language_code'])) { - $process->default_anon_web_language = $request->input('default_for_anon_webentry') - ? $request->input('language_code') + $process->default_anon_web_language = $request->input('default_for_anon_webentry') + ? $request->input('language_code') : null; } diff --git a/ProcessMaker/Http/Controllers/Api/ProcessRequestController.php b/ProcessMaker/Http/Controllers/Api/ProcessRequestController.php index 294b8b824a..ed8436b16e 100644 --- a/ProcessMaker/Http/Controllers/Api/ProcessRequestController.php +++ b/ProcessMaker/Http/Controllers/Api/ProcessRequestController.php @@ -880,4 +880,25 @@ public function getRequestsByCase(Request $request, User $user = null) return new ApiCollection($response); } + + /** + * This endpoint returns the parent request by case number + * + * @param Request $request + * + * @return ApiCollection + */ + public function getParentRequestByCase(Request $request) + { + // Validate the inputs, including optional ones + $request->validate([ + 'case_number' => 'required|integer', + ]); + + $response = ProcessRequest::where('case_number', $request->input('case_number')) + ->whereNull('parent_request_id') + ->first(); + + return new ApiResource($response); + } } diff --git a/ProcessMaker/Http/Controllers/Api/ScreenController.php b/ProcessMaker/Http/Controllers/Api/ScreenController.php index 2c8b0bdf51..da1039e790 100644 --- a/ProcessMaker/Http/Controllers/Api/ScreenController.php +++ b/ProcessMaker/Http/Controllers/Api/ScreenController.php @@ -688,7 +688,7 @@ public function translate(Request $request, Screen $screen, $language) $screenArray = $draft->toArray(); $screenTranslation = new ScreenTranslation(); $screenArray['config'] = $screenTranslation->evaluateMustache( - $request->input('screenConfig'), + $request->input('screenConfig'), $request->input('inputData') ); $translatedConfig = $screenTranslation->applyTranslations($screenArray); diff --git a/ProcessMaker/Http/Controllers/Api/TaskController.php b/ProcessMaker/Http/Controllers/Api/TaskController.php index b98f1674d0..7c48ac9a5c 100644 --- a/ProcessMaker/Http/Controllers/Api/TaskController.php +++ b/ProcessMaker/Http/Controllers/Api/TaskController.php @@ -329,7 +329,7 @@ public function update(Request $request, ProcessRequestToken $task) return abort(422); } } - + public function updateReassign(Request $request) { $userToAssign = $request->input('user_id'); diff --git a/ProcessMaker/Http/Controllers/Api/TaskDraftController.php b/ProcessMaker/Http/Controllers/Api/TaskDraftController.php index afc2e1dc72..21762207b0 100644 --- a/ProcessMaker/Http/Controllers/Api/TaskDraftController.php +++ b/ProcessMaker/Http/Controllers/Api/TaskDraftController.php @@ -8,8 +8,8 @@ use ProcessMaker\Http\Resources\ApiCollection; use ProcessMaker\Http\Resources\ApiResource; use ProcessMaker\Models\ProcessRequestToken; -use ProcessMaker\SanitizeHelper; use ProcessMaker\Models\TaskDraft; +use ProcessMaker\SanitizeHelper; class TaskDraftController extends Controller { @@ -20,6 +20,7 @@ public function index(Request $request, ProcessRequestToken $task) if ($draft) { $draftData = $draft->data; + return new ApiResource($draftData); } @@ -33,12 +34,13 @@ public function update(Request $request, ProcessRequestToken $task) // Do not overwrite __deleted_files $deletedFiles = Arr::get($draft->data, '__deleted_files'); $data = json_decode($request->getContent(), true); - $data = SanitizeHelper::sanitizeData( $data, null, $task->processRequest->do_not_sanitize ?? []); + $data = SanitizeHelper::sanitizeData($data, null, $task->processRequest->do_not_sanitize ?? []); if ($deletedFiles) { $data['__deleted_files'] = $deletedFiles; } $draft->data = $data; $draft->saveOrFail(); + return new ApiResource($draft); } diff --git a/ProcessMaker/Http/Controllers/Api/UserController.php b/ProcessMaker/Http/Controllers/Api/UserController.php index 3a2bff3461..e9565ea433 100644 --- a/ProcessMaker/Http/Controllers/Api/UserController.php +++ b/ProcessMaker/Http/Controllers/Api/UserController.php @@ -144,7 +144,7 @@ public function index(Request $request) /** * Display a listing of users and their task counts. * - * @param \Illuminate\Http\Request $request + * @param Request $request * @return \Illuminate\Http\Response * * @OA\Get( @@ -197,9 +197,9 @@ public function getUsersTaskCount(Request $request) $query->groupBy('users.id'); $response = $query->orderBy( - $request->input('order_by', 'username'), - $request->input('order_direction', 'ASC') - ) + $request->input('order_by', 'username'), + $request->input('order_direction', 'ASC') + ) ->paginate(50); return new ApiCollection($response); diff --git a/ProcessMaker/Http/Controllers/Auth/LoginController.php b/ProcessMaker/Http/Controllers/Auth/LoginController.php index 830ff7affe..e3f5ccfbe8 100644 --- a/ProcessMaker/Http/Controllers/Auth/LoginController.php +++ b/ProcessMaker/Http/Controllers/Auth/LoginController.php @@ -265,7 +265,7 @@ public function beforeLogout(Request $request) Cookie::queue(Cookie::forget(Passport::cookie())); // process any redirects generated by the logout event listeners - foreach($eventResult as $result) { + foreach ($eventResult as $result) { if (is_array($result) && array_key_exists('redirectTo', $result)) { return redirect($result['redirectTo']); } @@ -351,7 +351,7 @@ public function login(Request $request, User $user) }); $this->setupLanguage($request, $user); - + return $this->sendLoginResponse($request); } @@ -380,7 +380,8 @@ public function showLoginFailed(Request $request) return view('errors.login-failed'); } - private function setupLanguage(Request $request, User $user) { + private function setupLanguage(Request $request, User $user) + { $language = $request->cookies->get('language'); if ($language) { $user->language = json_decode($language)->code; diff --git a/ProcessMaker/Managers/ScreenCompiledManager.php b/ProcessMaker/Managers/ScreenCompiledManager.php index 6c5a64c670..2a26b53acd 100644 --- a/ProcessMaker/Managers/ScreenCompiledManager.php +++ b/ProcessMaker/Managers/ScreenCompiledManager.php @@ -92,6 +92,7 @@ public function createKey(string $processId, string $processVersionId, string $l public function getLastScreenVersionId() { $row = DB::select('SELECT id FROM screen_versions ORDER BY id DESC LIMIT 1;'); + return $row[0]->id; } diff --git a/ProcessMaker/Models/ProcessRequestToken.php b/ProcessMaker/Models/ProcessRequestToken.php index 03d0456d88..9e266fe1cd 100644 --- a/ProcessMaker/Models/ProcessRequestToken.php +++ b/ProcessMaker/Models/ProcessRequestToken.php @@ -1217,7 +1217,7 @@ public function reassign($toUserId, User $requestingUser) // Validate if user can reassign Gate::forUser($requestingUser)->authorize('reassign', $this); // Reassign user - $this->is_self_service = 0; //When reassigning the user, it is not necessary to claim the task. + $this->is_self_service = 0; //When reassigning the user, it is not necessary to claim the task. $this->reassignTo($toUserId); $this->persistUserData($toUserId); $reassingAction = true; diff --git a/ProcessMaker/ProcessTranslations/MenuTranslation.php b/ProcessMaker/ProcessTranslations/MenuTranslation.php index e253cd9553..0d87cf761d 100644 --- a/ProcessMaker/ProcessTranslations/MenuTranslation.php +++ b/ProcessMaker/ProcessTranslations/MenuTranslation.php @@ -18,9 +18,9 @@ public function apply() { $language = $this->getTargetLanguage(); $translations = $this->getTranslations($language); + return $this->applyTranslations($translations); } - private function getTranslations($language) { @@ -60,4 +60,4 @@ private function updateLinkText(&$links, $key, $translation) } } } -} \ No newline at end of file +} diff --git a/ProcessMaker/ProcessTranslations/ScreenTranslation.php b/ProcessMaker/ProcessTranslations/ScreenTranslation.php index 2c1caff967..6f58b1840d 100644 --- a/ProcessMaker/ProcessTranslations/ScreenTranslation.php +++ b/ProcessMaker/ProcessTranslations/ScreenTranslation.php @@ -22,6 +22,7 @@ public function applyTranslations($screen) { $config = $screen['config']; $language = $this->getTargetLanguage(); + return $this->searchTranslations($screen['screen_id'], $config, $language); } @@ -35,6 +36,7 @@ public function evaluateMustache($screenConfig, $data) { $mustacheEngine = new MustacheExpressionEvaluator(); $configEvaluated = $mustacheEngine->render(json_encode($screenConfig), $data); + return json_decode($configEvaluated, true); } @@ -51,6 +53,7 @@ public function getStringsByProcess($process, $withColumns = []) foreach ($screens as $screen) { $screensArr[] = $this->getStringsByScreen($screen); } + return collect($screensArr)->forget('config'); } @@ -67,6 +70,7 @@ public function getStringsByScreenIds(array $screenIds, $withColumns = []) foreach ($screens as $screen) { $screensArr[] = $this->getStringsByScreen($screen); } + return collect($screensArr)->forget('config'); } diff --git a/ProcessMaker/ProcessTranslations/ScreenTranslation_old.php b/ProcessMaker/ProcessTranslations/ScreenTranslation_old.php index 94e67c57da..7f82048a07 100644 --- a/ProcessMaker/ProcessTranslations/ScreenTranslation_old.php +++ b/ProcessMaker/ProcessTranslations/ScreenTranslation_old.php @@ -9,7 +9,7 @@ use ProcessMaker\Models\Screen; use ProcessMaker\Package\Translations\Models\Translatable; -class ScreenTranslation +class ScreenTranslation_old { protected $screen; diff --git a/ProcessMaker/ProcessTranslations/TranslationManager.php b/ProcessMaker/ProcessTranslations/TranslationManager.php index 6a740425e7..48c05443e9 100644 --- a/ProcessMaker/ProcessTranslations/TranslationManager.php +++ b/ProcessMaker/ProcessTranslations/TranslationManager.php @@ -6,8 +6,8 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Cache; use ProcessMaker\Package\PackageDynamicUI\Models\Menu; -use ProcessMaker\Package\Translations\Models\Translatable; use ProcessMaker\Package\Translations\Models\Language; +use ProcessMaker\Package\Translations\Models\Translatable; class TranslationManager { @@ -16,20 +16,21 @@ public static function getTargetLanguage() $targetLanguage = self::getBrowserLanguage(); $targetLanguage = self::validateLanguage($targetLanguage); $targetLanguage = self::getUserLanguage($targetLanguage); - + return $targetLanguage; } protected static function getBrowserLanguage() { - return isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) - ? substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) + return isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) + ? substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) : ''; } protected static function validateLanguage($language) { $availableLanguages = Language::where('installed', 1)->pluck('code')->toArray(); + return in_array($language, $availableLanguages) ? $language : 'en'; } @@ -37,11 +38,10 @@ protected static function getUserLanguage($language) { if (!Auth::user()->isAnonymous) { return Auth::user()->language; - } else if (Cache::has('LANGUAGE_ANON_WEBENTRY')) { + } elseif (Cache::has('LANGUAGE_ANON_WEBENTRY')) { return Cache::get('LANGUAGE_ANON_WEBENTRY'); } - + return $language; } - -} \ No newline at end of file +} diff --git a/ProcessMaker/Providers/ProcessMakerServiceProvider.php b/ProcessMaker/Providers/ProcessMakerServiceProvider.php index 31c228659c..ce11b8e437 100644 --- a/ProcessMaker/Providers/ProcessMakerServiceProvider.php +++ b/ProcessMaker/Providers/ProcessMakerServiceProvider.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Providers; +use Illuminate\Database\Console\Migrations\MigrateCommand; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Filesystem\Filesystem; use Illuminate\Foundation\PackageManifest; @@ -14,7 +15,6 @@ use Laravel\Horizon\Horizon; use Laravel\Passport\Passport; use Lavary\Menu\Menu; -use Illuminate\Database\Console\Migrations\MigrateCommand; use ProcessMaker\Console\Migration\ExtendedMigrateCommand; use ProcessMaker\Events\ActivityAssigned; use ProcessMaker\Events\ScreenBuilderStarting; diff --git a/ProcessMaker/Repositories/CaseApiRepository.php b/ProcessMaker/Repositories/CaseApiRepository.php index 54980ce653..d9a45f9ce9 100644 --- a/ProcessMaker/Repositories/CaseApiRepository.php +++ b/ProcessMaker/Repositories/CaseApiRepository.php @@ -159,7 +159,7 @@ public function search(Request $request, Builder $query): void } // Add a plus (+) to the beginning and an asterisk (*) to the end of each word - $search = preg_replace_callback("/\b[\w']+\b/u", function($matches) { + $search = preg_replace_callback("/\b[\w']+\b/u", function ($matches) { return '+' . $matches[0] . '*'; }, $search); diff --git a/ProcessMaker/Repositories/CaseUtils.php b/ProcessMaker/Repositories/CaseUtils.php index 000838c97e..6f2e4b8bb2 100644 --- a/ProcessMaker/Repositories/CaseUtils.php +++ b/ProcessMaker/Repositories/CaseUtils.php @@ -23,7 +23,7 @@ public static function getCaseNumberByKeywords(int $caseNumber): string { $caseNumber = (string) $caseNumber; $keywords = array_map( - fn($i) => self::CASE_NUMBER_PREFIX . substr($caseNumber, 0, $i), + fn ($i) => self::CASE_NUMBER_PREFIX . substr($caseNumber, 0, $i), range(1, strlen($caseNumber)) ); @@ -160,6 +160,7 @@ public static function extractData(object $object, array $mapping): array foreach ($mapping as $key => $property) { $data[$key] = data_get($object, $property); } + return $data; } } diff --git a/ProcessMaker/SanitizeHelper.php b/ProcessMaker/SanitizeHelper.php index 72e3f59e94..c870b484e7 100644 --- a/ProcessMaker/SanitizeHelper.php +++ b/ProcessMaker/SanitizeHelper.php @@ -241,7 +241,7 @@ private static function getVariableExceptions($item, $parent, &$elements) if (self::renderHtmlIsEnabled($item, 'FormTextArea', 'richtext')) { $elements[] = ($parent ? $parent . '.' . $item['config']['name'] : $item['config']['name']); } elseif (self::renderHtmlIsEnabled($item, 'FormHtmlViewer', 'renderVarHtml')) { - preg_match_all("/{{([^{}]*)}}/", $item['config']['content'], $matches); + preg_match_all('/{{([^{}]*)}}/', $item['config']['content'], $matches); if ($matches && $matches[1]) { foreach ($matches[1] as $variable) { $elements[] = ($parent ? $parent . '.' . $variable : $variable); diff --git a/ProcessMaker/ScriptRunners/Base.php b/ProcessMaker/ScriptRunners/Base.php index 022e9dc1bf..6357c971f3 100644 --- a/ProcessMaker/ScriptRunners/Base.php +++ b/ProcessMaker/ScriptRunners/Base.php @@ -37,14 +37,14 @@ abstract public function config($code, array $dockerConfig); /** * Set the user to run this script as * - * @var \ProcessMaker\Models\User + * @var User */ private $user; /** * Set the script executor * - * @var \ProcessMaker\Models\ScriptExecutor + * @var ScriptExecutor */ private $scriptExecutor; @@ -60,10 +60,10 @@ public function __construct(ScriptExecutor $scriptExecutor) * @param array $data * @param array $config * @param int $timeout - * @param \ProcessMaker\Models\User $user + * @param User $user * * @return array - * @throws \RuntimeException + * @throws RuntimeException */ public function run($code, array $data, array $config, $timeout, ?User $user) { @@ -82,6 +82,7 @@ public function run($code, array $data, array $config, $timeout, ?User $user) $accessToken = Cache::remember('script-runner-' . $user->id, $expires, function () use ($user) { $user->removeOldRunScriptTokens(); $token = new GenerateAccessToken($user); + return $token->getToken(); }); $environmentVariables[] = 'API_TOKEN=' . (!$isNayra ? escapeshellarg($accessToken) : $accessToken); @@ -93,6 +94,7 @@ public function run($code, array $data, array $config, $timeout, ?User $user) // Nayra Executor if ($isNayra) { $response = $this->handleNayraDocker($code, $data, $config, $timeout, $environmentVariables); + return json_decode($response, true); } diff --git a/ProcessMaker/Traits/TaskControllerIndexMethods.php b/ProcessMaker/Traits/TaskControllerIndexMethods.php index c3e003d296..4dc1004d42 100644 --- a/ProcessMaker/Traits/TaskControllerIndexMethods.php +++ b/ProcessMaker/Traits/TaskControllerIndexMethods.php @@ -23,7 +23,7 @@ private function indexBaseQuery($request) $includeData = in_array('data', $includes); $query = ProcessRequestToken::exclude(['data'])->with([ - 'processRequest' => function($q) use ($includeData) { + 'processRequest' => function ($q) use ($includeData) { if (!$includeData) { return $q->exclude(['data']); } diff --git a/devhub/pm-font/svg/cloud-download-outline.svg b/devhub/pm-font/svg/cloud-download-outline.svg index ea0fd6b8e1..a1a1adb77b 100644 --- a/devhub/pm-font/svg/cloud-download-outline.svg +++ b/devhub/pm-font/svg/cloud-download-outline.svg @@ -1,3 +1,3 @@ - + diff --git a/devhub/pm-font/svg/flowgenie-outline.svg b/devhub/pm-font/svg/flowgenie-outline.svg index ce62f5e2c3..093c67c423 100644 --- a/devhub/pm-font/svg/flowgenie-outline.svg +++ b/devhub/pm-font/svg/flowgenie-outline.svg @@ -1,4 +1,4 @@ - + diff --git a/devhub/pm-font/svg/folder-outline.svg b/devhub/pm-font/svg/folder-outline.svg index ffaa77fc78..2dc33cdd0f 100644 --- a/devhub/pm-font/svg/folder-outline.svg +++ b/devhub/pm-font/svg/folder-outline.svg @@ -1,3 +1,3 @@ - + diff --git a/devhub/pm-font/svg/play-outline.svg b/devhub/pm-font/svg/play-outline.svg index ef668affd2..47ed2c5762 100644 --- a/devhub/pm-font/svg/play-outline.svg +++ b/devhub/pm-font/svg/play-outline.svg @@ -1,4 +1,4 @@ - + diff --git a/devhub/pm-font/svg/screen-outline.svg b/devhub/pm-font/svg/screen-outline.svg index cd8970f6d3..b3a902af7f 100644 --- a/devhub/pm-font/svg/screen-outline.svg +++ b/devhub/pm-font/svg/screen-outline.svg @@ -1,3 +1,3 @@ - + diff --git a/devhub/pm-font/svg/script-outline.svg b/devhub/pm-font/svg/script-outline.svg index b43058b023..b61a26c035 100644 --- a/devhub/pm-font/svg/script-outline.svg +++ b/devhub/pm-font/svg/script-outline.svg @@ -1,3 +1,3 @@ - + diff --git a/devhub/pm-font/svg/unlink.svg b/devhub/pm-font/svg/unlink.svg new file mode 100644 index 0000000000..01daaa293c --- /dev/null +++ b/devhub/pm-font/svg/unlink.svg @@ -0,0 +1,3 @@ + + + diff --git a/resources/fonts/pm-font/index.html b/resources/fonts/pm-font/index.html index a4bd0e91cc..3603c7a900 100644 --- a/resources/fonts/pm-font/index.html +++ b/resources/fonts/pm-font/index.html @@ -103,7 +103,7 @@
-

ProcessMaker Icons4.11.2-RC1

+

ProcessMaker Icons4.12.0+nightly

Icons generated with svgtofont. For add new icons, please check the README file
@@ -115,7 +115,7 @@

ProcessMaker Icons4.11.2-RC1

-

ProcessMaker Icons4.11.2-RC1

+

ProcessMaker Icons4.12.0+nightly

Icons generated with svgtofont. For add new icons, please check the README file
@@ -240,6 +240,13 @@

fp-brush-icon

fp-close

+
  • + +

    fp-cloud-download-outline

    +
  • +
  • fp-eye

    fp-fields-icon

  • +
  • + +

    fp-flowgenie-outline

    +
  • + +
  • + +

    fp-folder-outline

    +
  • +
  • fp-mobile

    fp-pdf

  • +
  • + +

    fp-play-outline

    +
  • +
  • fp-pdf

    fp-plus

  • +
  • + +

    fp-screen-outline

    +
  • + +
  • + +

    fp-script-outline

    +
  • +
  • fp-slideshow

    fp-table

  • +
  • + +

    fp-unlink

    +
  • +
    -

    ProcessMaker Icons4.11.2-RC1

    +

    ProcessMaker Icons4.12.0+nightly

    Icons generated with svgtofont. For add new icons, please check the README file
    @@ -134,7 +134,7 @@

    ProcessMaker Icons4.11.2-RC1