SettingDataProvider.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace ModulesGarden\ProxmoxAddon\Core\UI\Widget\Graphs\Settings;
  3. use ModulesGarden\ProxmoxAddon\Core\UI\Widget\Forms\DataProviders\BaseModelDataProvider;
  4. use ModulesGarden\ProxmoxAddon\Core\Models\ModuleSettings\Model;
  5. /**
  6. * Description of SettingDataProvider
  7. *
  8. * @author inbs
  9. */
  10. class SettingDataProvider extends BaseModelDataProvider
  11. {
  12. public function __construct()
  13. {
  14. parent::__construct('\ModulesGarden\ProxmoxAddon\Core\Models\ModuleSettings\Model');
  15. }
  16. public function read()
  17. {
  18. $data = Model::where('setting', $this->getRequestValue('index', ''))->first();
  19. if ($data)
  20. {
  21. $this->data = json_decode($data->value, true);
  22. }
  23. else
  24. {
  25. $customParams = json_decode(html_entity_decode($this->getRequestValue('customParams', "{}")));
  26. $defaultFilter = json_decode(html_entity_decode($this->getRequestValue('defaultFilter', "{}")));
  27. $this->data['setting'] = $this->getRequestValue('index', '');
  28. if ($customParams->labels && $defaultFilter->displayEditColor)
  29. {
  30. foreach ($customParams->labels as $label)
  31. {
  32. $this->data[$label] = '47FF44';
  33. }
  34. }
  35. }
  36. }
  37. public function update()
  38. {
  39. $query = Model::where('setting', $this->formData['setting']);
  40. if ($query->count() > 0)
  41. {
  42. $query->update(['value' => json_encode($this->formData)]);
  43. }
  44. else
  45. {
  46. Model::create([
  47. 'setting' => $this->formData['setting'],
  48. 'value' => json_encode($this->formData)
  49. ]);
  50. }
  51. }
  52. }