SettingDataProvider.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Graphs\Settings;
  3. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\DataProviders\BaseModelDataProvider;
  4. use ModulesGarden\Servers\ProxmoxCloudVps\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\Servers\ProxmoxCloudVps\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. }