diff --git a/config/app.php b/config/app.php index aa82ceab5d..66d45571b3 100644 --- a/config/app.php +++ b/config/app.php @@ -302,5 +302,9 @@ 'multitenancy' => env('MULTITENANCY', false), 'reassign_restrict_to_assignable_users' => env('REASSIGN_RESTRICT_TO_ASSIGNABLE_USERS', true), + + // When true, shows the Cases Retention section on process configuration + 'case_retention_policy_enabled' => filter_var(env('CASE_RETENTION_POLICY_ENABLED', false), FILTER_VALIDATE_BOOLEAN), + 'resources_core_path' => base_path('resources-core'), ]; diff --git a/devhub/pm-font/svg/check-circle-outline.svg b/devhub/pm-font/svg/check-circle-outline.svg new file mode 100644 index 0000000000..79932fc0c0 --- /dev/null +++ b/devhub/pm-font/svg/check-circle-outline.svg @@ -0,0 +1,3 @@ + + + diff --git a/resources/fonts/pm-font/index.html b/resources/fonts/pm-font/index.html index 90ee73e5e7..5ad82a9a14 100644 --- a/resources/fonts/pm-font/index.html +++ b/resources/fonts/pm-font/index.html @@ -103,7 +103,7 @@
-

ProcessMaker Icons4.14.2

+

ProcessMaker Icons2026.2.4

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

ProcessMaker Icons4.14.2

-

ProcessMaker Icons4.14.2

+

ProcessMaker Icons2026.2.4

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

fp-brush-icon

fp-check-circle-blue

+
  • + +

    fp-check-circle-outline

    +
  • +
  • -

    ProcessMaker Icons4.14.2

    +

    ProcessMaker Icons2026.2.4

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

    ProcessMaker Icons4.14.2

      -
    • add-outlined

      
    • arrow-left

      
    • box-arrow-up-right

      
    • bpmn-action-by-email

      
    • bpmn-data-connector

      
    • bpmn-data-object

      
    • bpmn-data-store

      
    • bpmn-docusign

      
    • bpmn-end-event

      
    • bpmn-flowgenie

      
    • bpmn-gateway

      
    • bpmn-generic-gateway

      
    • bpmn-idp

      
    • bpmn-intermediate-event

      
    • bpmn-pool

      
    • bpmn-send-email

      
    • bpmn-start-event

      
    • bpmn-task

      
    • bpmn-text-annotation

      
    • brush-icon

      
    • check-circle-blue

      
    • close

      
    • cloud-download-outline

      
    • connector-outline

      
    • copy-outline

      
    • copy

      
    • desktop

      
    • edit-outline

      
    • expand

      
    • eye

      
    • fields-icon

      
    • flowgenie-outline

      
    • folder-outline

      
    • fullscreen

      
    • github

      
    • inbox

      
    • layout-icon

      
    • link-icon

      
    • map

      
    • minimize

      
    • mobile

      
    • pdf

      
    • pen-edit

      
    • play-outline

      
    • plus-thin

      
    • plus

      
    • pm-block

      
    • remove-outlined

      
    • screen-outline

      
    • script-outline

      
    • slack-notification

      
    • slack

      
    • slideshow

      
    • table

      
    • tachometer-alt-average

      
    • trash-blue

      
    • trash

      
    • unlink

      
    • update-outline

      
    • +
    • add-outlined

      
    • arrow-left

      
    • box-arrow-up-right

      
    • bpmn-action-by-email

      
    • bpmn-data-connector

      
    • bpmn-data-object

      
    • bpmn-data-store

      
    • bpmn-docusign

      
    • bpmn-end-event

      
    • bpmn-flowgenie

      
    • bpmn-gateway

      
    • bpmn-generic-gateway

      
    • bpmn-idp

      
    • bpmn-intermediate-event

      
    • bpmn-pool

      
    • bpmn-send-email

      
    • bpmn-start-event

      
    • bpmn-task

      
    • bpmn-text-annotation

      
    • brush-icon

      
    • check-circle-blue

      
    • check-circle-outline

      
    • close

      
    • cloud-download-outline

      
    • connector-outline

      
    • copy-outline

      
    • copy

      
    • desktop

      
    • edit-outline

      
    • expand

      
    • eye

      
    • fields-icon

      
    • flowgenie-outline

      
    • folder-outline

      
    • fullscreen

      
    • github

      
    • inbox

      
    • layout-icon

      
    • link-icon

      
    • map

      
    • minimize

      
    • mobile

      
    • pdf

      
    • pen-edit

      
    • play-outline

      
    • plus-thin

      
    • plus

      
    • pm-block

      
    • remove-outlined

      
    • screen-outline

      
    • script-outline

      
    • slack-notification

      
    • slack

      
    • slideshow

      
    • table

      
    • tachometer-alt-average

      
    • trash-blue

      
    • trash

      
    • unlink

      
    • update-outline

      
  • + @if(config('app.case_retention_policy_enabled')) +
    +
    + +
    +
    +
    + + +
    +
    {{ __('Retention Policy') }}
    +

    {{ __('Each case in this process is retained from the moment it is created for the period defined in this section.')}}

    +

    {{ __('After this period expires, the case is automatically and permanently deleted, regardless of its status. + This deletion includes all files and all data associated with the case and cannot be undone.')}}

    +
    +
    + +
    +
    {{__('Retention Period')}}
    +

    {{ __('Retention periods over one year must be handled by Technical Support. Please contact Technical Support for assistance.')}}

    +
    +
    + {{ html()->label(__('Select a Retention Period'), 'selectRetentionPeriod') }} + + + +
    +
    + {{ __('The default retention period is in effect.')}} +
    +
    +
    +
    +
    +
    + @endif +
    {{ html()->button(__('Cancel'), 'button')->class('btn btn-outline-secondary button-custom')->attribute('@click', 'onClose') }} {{ html()->button(__('Save'), 'button')->class('btn btn-secondary ml-3 button-custom')->attribute('@click', 'onUpdate') }} @@ -559,6 +621,12 @@ class="custom-control-input"> groups: [] }, maxManagers: 10, + retentionPeriodOptions: [ + { id: 'one_year', fullname: 'One year after case creation' }, + { id: 'two_years', fullname: 'Two years after case creation (Available on Support request)' }, + { id: 'three_years', fullname: 'Three years after case creation (Available on Support request)' } + ], + canSelectRetentionPeriod: { id: 'one_year', fullname: 'One year after case creation' } } }, mounted() { @@ -875,5 +943,34 @@ class="custom-control-input"> letter-spacing: -0.02em; text-align: center; } + + .retention-body { + color: #556271; + font-family: 'Inter', sans-serif; + } + + .retention-header { + font-weight: 600; + } + + .retention-text { + font-size: 16px; + } + + .retention-policy { + border-radius: 16px; + background-color: #FFFCF2; + } + + .default-retention { + font-style: italic; + background-color: #F1F2F4; + border-radius: 8px; + } + + .default-retention-icon { + font-size: 20px; + color: #039838; + } @endsection