diff --git a/js/layouts/activity-panel/activity-panel.js b/js/layouts/activity-panel/activity-panel.js index 73abe681e7..1b398046f5 100644 --- a/js/layouts/activity-panel/activity-panel.js +++ b/js/layouts/activity-panel/activity-panel.js @@ -32,7 +32,6 @@ $(function() lock_token: null, lock_watcher_period: 30, // Period (in seconds) between lock status update, uses the "activity_panel.lock_watcher_period" config. param. lock_endpoint: null, - show_multiple_entries_submit_confirmation: true, save_state_endpoint: null, last_loaded_entries_ids: {}, load_more_entries_endpoint: null, @@ -473,8 +472,10 @@ $(function() } let sStimulusCode = (undefined !== oData.stimulus_code) ? oData.stimulus_code : null - // If several entry forms filled, show a confirmation message - if ((true === this.options.show_multiple_entries_submit_confirmation) && (Object.keys(await this._GetEntriesFromAllForms()).length > 1)) { + // If several entry forms filled, show a confirmation message + if ((GetUserPreference('activity_panel.show_multiple_entries_submit_confirmation',true) === true + || GetUserPreference('activity_panel.show_multiple_entries_submit_confirmation', true) === "true") + && (Object.keys(await this._GetEntriesFromAllForms()).length > 1)) { this._ShowEntriesSubmitConfirmation(sStimulusCode); } // Else push data directly to the server @@ -823,7 +824,7 @@ $(function() // }; // } // }); - + const aFormElements = this.element.find(this.js_selectors.caselog_entry_form); // Create an array of promises for each form element diff --git a/js/utils.js b/js/utils.js index 987358fdb3..534f4e63eb 100644 --- a/js/utils.js +++ b/js/utils.js @@ -213,10 +213,15 @@ function SetUserPreference(sPreferenceCode, sPrefValue, bPersistent) { } catch (err) { sPreviousValue = undefined; } - oUserPreferences[sPreferenceCode] = sPrefValue; if (bPersistent && (sPrefValue != sPreviousValue)) { - ajax_request = $.post(GetAbsoluteUrlAppRoot()+'pages/ajax.render.php', - {operation: 'set_pref', code: sPreferenceCode, value: sPrefValue}); // Make it persistent + return $.post(GetAbsoluteUrlAppRoot()+'pages/ajax.render.php', + {operation: 'set_pref', code: sPreferenceCode, value: sPrefValue}, function (data) { + //do nothing + }).done(function() { + oUserPreferences[sPreferenceCode] = sPrefValue; + }); // Make it persistent + } else { + oUserPreferences[sPreferenceCode] = sPrefValue; } } diff --git a/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanel.php b/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanel.php index 89454737d2..123a30691d 100644 --- a/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanel.php +++ b/sources/Application/UI/Base/Layout/ActivityPanel/ActivityPanel.php @@ -132,7 +132,6 @@ public function __construct(DBObject $oObject, array $aEntries = [], ?string $sI $this->bAreEntriesSorted = false; $this->bHasMoreEntriesToLoad = false; $this->aLastLoadedEntriesIds = []; - $this->ComputedShowMultipleEntriesSubmitConfirmation(); } /** @@ -960,21 +959,6 @@ public function GetSubBlocks(): array return $aSubBlocks; } - /** - * @see static::$bShowMultipleEntriesSubmitConfirmation - * @return $this - * @throws \CoreException - * @throws \CoreUnexpectedValue - * @throws \MySQLException - */ - protected function ComputedShowMultipleEntriesSubmitConfirmation() - { - // Note: Test on a string is necessary as we can only store strings from the JS API, not booleans. - // Note 2: Do not invert the test to "=== 'true'" as it won't work. Default value is a bool ("true"), values from the DB are strings (true|false) - $this->bShowMultipleEntriesSubmitConfirmation = appUserPreferences::GetPref('activity_panel.show_multiple_entries_submit_confirmation', static::DEFAULT_SHOW_MULTIPLE_ENTRIES_SUBMI_CONFIRMATION) !== 'false'; - return $this; - } - /** * @return bool * @throws \CoreException diff --git a/templates/base/layouts/activity-panel/layout.js.twig b/templates/base/layouts/activity-panel/layout.js.twig index 5797b91e24..5c4986a276 100644 --- a/templates/base/layouts/activity-panel/layout.js.twig +++ b/templates/base/layouts/activity-panel/layout.js.twig @@ -5,7 +5,6 @@ $('#{{ oUIBlock.GetId() }}').activity_panel({ lock_enabled: {{ oUIBlock.IsLockEnabled()|var_export }}, lock_watcher_period: {{ oUIBlock.GetLockWatcherPeriod() }}, lock_endpoint: {{ oUIBlock.GetLockEndpoint()|var_export|raw }}, - show_multiple_entries_submit_confirmation: {{ oUIBlock.GetShowMultipleEntriesSubmitConfirmation()|var_export }}, save_state_endpoint: {{ oUIBlock.GetSaveStateEndpoint()|var_export|raw }}, last_loaded_entries_ids: {{ oUIBlock.GetLastEntryIds()|json_encode|raw }}, load_more_entries_endpoint: {{ oUIBlock.GetLoadMoreEntriesEndpoint()|var_export|raw }},