| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- <?php
- namespace ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Snapshot\Providers;
- use ModulesGarden\ProxmoxAddon\App\Models\SnapshotJob;
- use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ProductService;
- use ModulesGarden\Servers\ProxmoxCloudVps\App\Enum\JobPeriod;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\ClientArea;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\ResponseTemplates\HtmlDataJsonResponse;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\DataProviders\BaseModelDataProvider;
- use function ModulesGarden\Servers\ProxmoxCloudVps\Core\Helper\sl;
- class JobProvider extends BaseModelDataProvider implements ClientArea
- {
- use ProductService;
- public function __construct()
- {
- parent::__construct(SnapshotJob::class);
- }
- protected function isModelProper($model)
- {
- if (in_array(get_parent_class($model), [
- 'ModulesGarden\Servers\ProxmoxCloudVps\Core\Models\ExtendedEloquentModel',
- 'ModulesGarden\ProxmoxAddon\Core\Models\ExtendedEloquentModel',
- 'Illuminate\Database\Eloquent\Model'
- ]))
- {
- return true;
- }
- return false;
- }
- public function read()
- {
- //period
- $period = $this->configuration()->getPermissionSnapshotJobPeriod();
- if($period && in_array(JobPeriod::HOURLY, $period)){
- $this->availableValues['period'][JobPeriod::HOURLY] = sl("lang")->tr(JobPeriod::HOURLY );
- }
- if($period && in_array(JobPeriod::DAILY, $period)){
- $this->availableValues['period'][JobPeriod::DAILY] = sl("lang")->tr(JobPeriod::DAILY);
- }
- if(!$period){
- $this->availableValues['period'] = [
- JobPeriod::HOURLY => sl("lang")->tr(JobPeriod::HOURLY ),
- JobPeriod::DAILY => sl("lang")->tr(JobPeriod::DAILY )
- ];
- }
- //days
- $this->availableValues['days'] = [];
- foreach (JobPeriod::DAYS_OF_WEEK as $day){
- $this->availableValues['days'][$day] = sl("lang")->tr($day);
- }
- if($this->formData){
- $this->data = $this->formData;
- return;
- }
- parent::read();
- $vmstate = $this->data['vmstate']==1 ? "on":"off" ;
- $this->data['vmstate']= $vmstate;
- //start_time
- if($this->data['start_time']){
- $this->data['start_time'] = substr($this->data['start_time'], 0,-3);
- }
- }
- public function create()
- {
- //vmstate
- if(isset($this->formData['vmstate'])){
- $vmstate = $this->formData['vmstate']=="on" ? 1:0;
- $this->formData['vmstate']= $vmstate ;
- }
- //hosting_id
- $this->formData['hosting_id']= $this->getWhmcsParamByKey('serviceid');
- //fill from data
- $this->model->fill($this->formData)->save();
- sl('lang')->addReplacementConstant('name', $this->formData['name']);
- return (new HtmlDataJsonResponse())->setMessageAndTranslate('Snapshot Job :name: has been created successfully')
- ->addData('createJobButtonStatus', $this->resourceGuard()->hasSnapshotJobLimit())
- ->setCallBackFunction('pmToggleCreateJobButton');
- }
- public function update(){
- //vmstate
- if(isset($this->formData['vmstate'])){
- $vmstate = $this->formData['vmstate']=="on" ? 1:0;
- $this->formData['vmstate']= $vmstate ;
- }
- parent::update();
- sl('lang')->addReplacementConstant('name', $this->formData['name']);
- return (new HtmlDataJsonResponse())->setMessageAndTranslate('Snapshot Job :name: has updated successfully');
- }
- public function deleteMass()
- {
- foreach ($this->getRequestValue('massActions') as $id)
- {
- $this->model->where('id', $id)->delete();
- }
- return (new HtmlDataJsonResponse())->setMessageAndTranslate('The selected snapshot jobs have been deleted successfully')
- ->addData('createJobButtonStatus', $this->resourceGuard()->hasSnapshotJobLimit())
- ->setCallBackFunction('pmToggleCreateJobButton');
- }
- public function delete()
- {
- parent::delete();
- sl('lang')->addReplacementConstant('name', $this->formData['name']);
- return (new HtmlDataJsonResponse())->setMessageAndTranslate('Snapshot Job :name: has been deleted successfully')
- ->addData('createJobButtonStatus', $this->resourceGuard()->hasSnapshotJobLimit())
- ->setCallBackFunction('pmToggleCreateJobButton');
- }
- }
|