mirror of
https://github.com/grocy/grocy.git
synced 2026-04-05 20:36:15 +02:00
add reset button
This commit is contained in:
parent
876052da37
commit
1e2ac7dac9
|
|
@ -219,6 +219,19 @@ class UsersApiController extends BaseApiController
|
|||
}
|
||||
}
|
||||
|
||||
public function DeleteUserSetting(\Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Message\ResponseInterface $response, array $args)
|
||||
{
|
||||
try
|
||||
{
|
||||
$value = $this->getUsersService()->DeleteUserSetting(GROCY_USER_ID, $args['settingKey']);
|
||||
return $this->EmptyApiResponse($response);
|
||||
}
|
||||
catch (\Exception $ex)
|
||||
{
|
||||
return $this->GenericErrorResponse($response, $ex->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function __construct(\DI\Container $container)
|
||||
{
|
||||
parent::__construct($container);
|
||||
|
|
|
|||
|
|
@ -2017,3 +2017,9 @@ msgstr ""
|
|||
|
||||
msgid "Ingredient group"
|
||||
msgstr ""
|
||||
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Are you sure, you want reset the table?"
|
||||
msgstr ""
|
||||
|
|
|
|||
|
|
@ -433,7 +433,7 @@ Grocy.FrontendHelpers.ShowGenericError = function(message, exception)
|
|||
console.error(exception);
|
||||
}
|
||||
|
||||
Grocy.FrontendHelpers.SaveUserSettings = function(settingsKey, value)
|
||||
Grocy.FrontendHelpers.SaveUserSetting = function(settingsKey, value)
|
||||
{
|
||||
Grocy.UserSettings[settingsKey] = value;
|
||||
|
||||
|
|
@ -454,6 +454,25 @@ Grocy.FrontendHelpers.SaveUserSettings = function(settingsKey, value)
|
|||
);
|
||||
}
|
||||
|
||||
Grocy.FrontendHelpers.DeleteUserSetting = function(settingsKey)
|
||||
{
|
||||
delete Grocy.UserSettings[settingsKey];
|
||||
|
||||
Grocy.Api.Delete('user/settings/' + settingsKey, {},
|
||||
function(result)
|
||||
{
|
||||
// Nothing to do...
|
||||
},
|
||||
function(xhr)
|
||||
{
|
||||
if (!xhr.statusText.isEmpty())
|
||||
{
|
||||
Grocy.FrontendHelpers.ShowGenericError('Error while deleting, please retry', xhr.response)
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
$(document).on("keyup paste change", "input, textarea", function()
|
||||
{
|
||||
$(this).closest("form").addClass("is-dirty");
|
||||
|
|
@ -489,7 +508,7 @@ $(document).on("change", ".user-setting-control", function()
|
|||
var value = element.val();
|
||||
}
|
||||
|
||||
Grocy.FrontendHelpers.SaveUserSettings(settingKey, value);
|
||||
Grocy.FrontendHelpers.SaveUserSetting(settingKey, value);
|
||||
});
|
||||
|
||||
// Show file name Bootstrap custom file input
|
||||
|
|
@ -718,8 +737,14 @@ $.extend(true, $.fn.dataTable.defaults, {
|
|||
'stateSaveCallback': function(settings, data)
|
||||
{
|
||||
var settingKey = 'datatables_state_' + settings.sTableId;
|
||||
var stateData = JSON.stringify(data);
|
||||
Grocy.FrontendHelpers.SaveUserSettings(settingKey, stateData);
|
||||
if ($.isEmptyObject(data))
|
||||
{
|
||||
Grocy.FrontendHelpers.DeleteUserSetting(settingKey);
|
||||
} else
|
||||
{
|
||||
var stateData = JSON.stringify(data);
|
||||
Grocy.FrontendHelpers.SaveUserSetting(settingKey, stateData);
|
||||
}
|
||||
},
|
||||
'stateLoadCallback': function(settings, data)
|
||||
{
|
||||
|
|
@ -960,8 +985,48 @@ $(".change-table-columns-visibility-button").on("click", function(e)
|
|||
size: 'small',
|
||||
backdrop: true,
|
||||
closeButton: false,
|
||||
onEscape: true,
|
||||
buttons: {
|
||||
cancel: {
|
||||
reset: {
|
||||
label: __t('Reset'),
|
||||
className: 'btn-danger responsive-button',
|
||||
callback: function()
|
||||
{
|
||||
bootbox.confirm({
|
||||
swapButtonOrder: true,
|
||||
message: __t("Are you sure, you want reset the table?"),
|
||||
buttons: {
|
||||
confirm: {
|
||||
label: 'Yes',
|
||||
className: 'btn-danger'
|
||||
},
|
||||
cancel: {
|
||||
label: 'No',
|
||||
className: 'btn-primary'
|
||||
}
|
||||
},
|
||||
callback: function(result)
|
||||
{
|
||||
if (result)
|
||||
{
|
||||
var dataTable = $(dataTableSelector).DataTable();
|
||||
var tableId = dataTable.settings()[0].sTableId;
|
||||
|
||||
//Delete rowgroup settings
|
||||
Grocy.FrontendHelpers.DeleteUserSetting('datatables_rowGroup_' + tableId);
|
||||
|
||||
//Delete state settings
|
||||
dataTable.state.clear();
|
||||
|
||||
//Reload page as datatable is not reseting itself
|
||||
location.reload();
|
||||
}
|
||||
bootbox.hideAll();
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
ok: {
|
||||
label: __t('OK'),
|
||||
className: 'btn-primary responsive-button',
|
||||
callback: function()
|
||||
|
|
@ -1019,7 +1084,7 @@ $(document).on("click", ".change-table-columns-rowgroup-toggle", function()
|
|||
}
|
||||
|
||||
var settingKey = 'datatables_rowGroup_' + dataTable.settings()[0].sTableId;
|
||||
Grocy.FrontendHelpers.SaveUserSettings(settingKey, JSON.stringify(rowGroup));
|
||||
Grocy.FrontendHelpers.SaveUserSetting(settingKey, JSON.stringify(rowGroup));
|
||||
|
||||
dataTable.draw();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -175,6 +175,7 @@ $app->group('/api', function (RouteCollectorProxy $group) {
|
|||
$group->get('/user/settings', '\Grocy\Controllers\UsersApiController:GetUserSettings');
|
||||
$group->get('/user/settings/{settingKey}', '\Grocy\Controllers\UsersApiController:GetUserSetting');
|
||||
$group->put('/user/settings/{settingKey}', '\Grocy\Controllers\UsersApiController:SetUserSetting');
|
||||
$group->delete('/user/settings/{settingKey}', '\Grocy\Controllers\UsersApiController:DeleteUserSetting');
|
||||
|
||||
// Stock
|
||||
if (GROCY_FEATURE_FLAG_STOCK)
|
||||
|
|
|
|||
|
|
@ -114,6 +114,11 @@ class UsersService extends BaseService
|
|||
}
|
||||
}
|
||||
|
||||
public function DeleteUserSetting($userId, $settingKey)
|
||||
{
|
||||
$this->getDatabase()->user_settings()->where('user_id = :1 AND key = :2', $userId, $settingKey)->delete();
|
||||
}
|
||||
|
||||
private function UserExists($userId)
|
||||
{
|
||||
$userRow = $this->getDatabase()->users()->where('id = :1', $userId)->fetch();
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user