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)
|
public function __construct(\DI\Container $container)
|
||||||
{
|
{
|
||||||
parent::__construct($container);
|
parent::__construct($container);
|
||||||
|
|
|
||||||
|
|
@ -2017,3 +2017,9 @@ msgstr ""
|
||||||
|
|
||||||
msgid "Ingredient group"
|
msgid "Ingredient group"
|
||||||
msgstr ""
|
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);
|
console.error(exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
Grocy.FrontendHelpers.SaveUserSettings = function(settingsKey, value)
|
Grocy.FrontendHelpers.SaveUserSetting = function(settingsKey, value)
|
||||||
{
|
{
|
||||||
Grocy.UserSettings[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()
|
$(document).on("keyup paste change", "input, textarea", function()
|
||||||
{
|
{
|
||||||
$(this).closest("form").addClass("is-dirty");
|
$(this).closest("form").addClass("is-dirty");
|
||||||
|
|
@ -489,7 +508,7 @@ $(document).on("change", ".user-setting-control", function()
|
||||||
var value = element.val();
|
var value = element.val();
|
||||||
}
|
}
|
||||||
|
|
||||||
Grocy.FrontendHelpers.SaveUserSettings(settingKey, value);
|
Grocy.FrontendHelpers.SaveUserSetting(settingKey, value);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Show file name Bootstrap custom file input
|
// Show file name Bootstrap custom file input
|
||||||
|
|
@ -718,8 +737,14 @@ $.extend(true, $.fn.dataTable.defaults, {
|
||||||
'stateSaveCallback': function(settings, data)
|
'stateSaveCallback': function(settings, data)
|
||||||
{
|
{
|
||||||
var settingKey = 'datatables_state_' + settings.sTableId;
|
var settingKey = 'datatables_state_' + settings.sTableId;
|
||||||
var stateData = JSON.stringify(data);
|
if ($.isEmptyObject(data))
|
||||||
Grocy.FrontendHelpers.SaveUserSettings(settingKey, stateData);
|
{
|
||||||
|
Grocy.FrontendHelpers.DeleteUserSetting(settingKey);
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
var stateData = JSON.stringify(data);
|
||||||
|
Grocy.FrontendHelpers.SaveUserSetting(settingKey, stateData);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'stateLoadCallback': function(settings, data)
|
'stateLoadCallback': function(settings, data)
|
||||||
{
|
{
|
||||||
|
|
@ -960,8 +985,48 @@ $(".change-table-columns-visibility-button").on("click", function(e)
|
||||||
size: 'small',
|
size: 'small',
|
||||||
backdrop: true,
|
backdrop: true,
|
||||||
closeButton: false,
|
closeButton: false,
|
||||||
|
onEscape: true,
|
||||||
buttons: {
|
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'),
|
label: __t('OK'),
|
||||||
className: 'btn-primary responsive-button',
|
className: 'btn-primary responsive-button',
|
||||||
callback: function()
|
callback: function()
|
||||||
|
|
@ -1019,7 +1084,7 @@ $(document).on("click", ".change-table-columns-rowgroup-toggle", function()
|
||||||
}
|
}
|
||||||
|
|
||||||
var settingKey = 'datatables_rowGroup_' + dataTable.settings()[0].sTableId;
|
var settingKey = 'datatables_rowGroup_' + dataTable.settings()[0].sTableId;
|
||||||
Grocy.FrontendHelpers.SaveUserSettings(settingKey, JSON.stringify(rowGroup));
|
Grocy.FrontendHelpers.SaveUserSetting(settingKey, JSON.stringify(rowGroup));
|
||||||
|
|
||||||
dataTable.draw();
|
dataTable.draw();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -175,6 +175,7 @@ $app->group('/api', function (RouteCollectorProxy $group) {
|
||||||
$group->get('/user/settings', '\Grocy\Controllers\UsersApiController:GetUserSettings');
|
$group->get('/user/settings', '\Grocy\Controllers\UsersApiController:GetUserSettings');
|
||||||
$group->get('/user/settings/{settingKey}', '\Grocy\Controllers\UsersApiController:GetUserSetting');
|
$group->get('/user/settings/{settingKey}', '\Grocy\Controllers\UsersApiController:GetUserSetting');
|
||||||
$group->put('/user/settings/{settingKey}', '\Grocy\Controllers\UsersApiController:SetUserSetting');
|
$group->put('/user/settings/{settingKey}', '\Grocy\Controllers\UsersApiController:SetUserSetting');
|
||||||
|
$group->delete('/user/settings/{settingKey}', '\Grocy\Controllers\UsersApiController:DeleteUserSetting');
|
||||||
|
|
||||||
// Stock
|
// Stock
|
||||||
if (GROCY_FEATURE_FLAG_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)
|
private function UserExists($userId)
|
||||||
{
|
{
|
||||||
$userRow = $this->getDatabase()->users()->where('id = :1', $userId)->fetch();
|
$userRow = $this->getDatabase()->users()->where('id = :1', $userId)->fetch();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user