addClass("pmCreateButton");
if (!$this->resourceGuard()->hasSnapshotLimit())
{
$createButton->addClass("hidden");
}
$this->addButton($createButton);
//rollback
$this->addActionButton(new RollbackButton());
//Update
$this->addActionButton(new UpdateButton());
//Delete
$this->addActionButton(new DeleteButton());
//Mass delete
$this->addMassActionButton(new DeleteMassButton());
$this->snapshotRepository = new SnapshotRepository();
}
protected function loadHtml()
{
$this->addColumn((new Column('name'))->setSearchable(true, "string")->setOrderable())
->addColumn((new Column('status'))->setSearchable(true, "string")->setOrderable());
if ($this->vm() instanceof Kvm)
{
$this->addColumn((new Column('vmstate'))->setSearchable(true)->setOrderable());
}
$this->addColumn((new Column('snaptime'))->setSearchable(true, "date")->setOrderable('DESC'))
->addColumn((new Column('description'))->setSearchable(true)->setOrderable());
}
public function replaceFieldStatus($key, $row)
{
//current
if ($this->snapshotRepository->getCurrent()->getParent() == $row['name'])
{
return '' . sl('lang')->tr("Active") . '';
}
return '' . sl('lang')->tr("Disabled") . '';
}
public function replaceFieldVmstate($key, $row)
{
if ($row['vmstate'] == "1")
{
return '' . sl('lang')->tr("Yes") . '';
}
return '' . sl('lang')->tr("No") . '';
}
public function replaceFieldSnaptime($key, $row)
{
return date('Y-m-d H:i:s', $row[$key]);
}
public function replaceFieldDescription($key, $row)
{
if ($row['description'])
{
return $row['description'];
}
return '-';
}
protected function loadData()
{
$this->snapshotRepository->setApi($this->api());
$this->snapshotRepository->findByVm($this->vm());
$this->snapshotRepository->ignoreCurrent(true);
$data = [];
foreach ($this->snapshotRepository->fetch() as $entity)
{
$row = $entity->getAttributes();
$data[] = array_merge(['id' => base64_encode(json_encode($row))], $row);
}
$dataProv = new ArrayDataProvider();
$dataProv->setDefaultSorting("snaptime", 'DESC');
$dataProv->setData($data);
$this->setDataProvider($dataProv);
}
}