%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/cfiles/models/forms/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/cfiles/models/forms/VersionForm.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2021 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\cfiles\models\forms;
use humhub\modules\cfiles\models\File;
use humhub\modules\file\models\FileHistory;
use Yii;
use yii\base\Model;
/**
* VersionForm to view current version of the selected file and to switch to another
*
* @author luke
*/
class VersionForm extends Model
{
/**
* @var File
*/
public $file;
/**
* @var int File ID of the current version
*/
public $version;
/**
* @inheritdoc
*/
public function rules()
{
return [
['version', 'required'],
['version', 'integer'],
['version', 'validateVersion'],
];
}
/**
* Validate the selected version really exists for the File
*/
public function validateVersion($attribute)
{
if (!$this->getFileVersion()) {
$this->addError($attribute, 'The selected version doesn\'t exist for the File!');
}
}
public function attributeHints(): array
{
return [
'version' => Yii::t('CfilesModule.base', 'Select what file version you want to switch.'),
];
}
public function getFileVersion(): ?FileHistory
{
return $this->file->baseFile->getFileHistoryById($this->version);
}
/**
* @inheritdoc
*/
public function load($data = null, $formName = null)
{
if ((int)Yii::$app->request->get('version') > 0) {
$data = Yii::$app->request->get();
$formName = '';
} else {
$data = Yii::$app->request->post();
}
return parent::load($data, $formName);
}
/**
* Switch the File to a selected version
*
* @return bool
*/
public function save(): bool
{
if (!$this->validate()) {
return false;
}
$this->file->baseFile->setStoredFile($this->getFileVersion()->getFileStorePath());
return $this->file->baseFile->save() && $this->file->refresh();
}
}