refactor: rewrite everything with params to not suck ass

This commit is contained in:
b1ek 2024-08-20 23:35:42 +10:00
parent d3a4577913
commit b85dd5ff13
Signed by: blek
GPG Key ID: 14546221E3595D0C
5 changed files with 14 additions and 42 deletions

View File

@ -18,8 +18,8 @@ class m240819_102301_image extends Migration
'sha256' => Schema::TYPE_STRING . ' NOT NULL', 'sha256' => Schema::TYPE_STRING . ' NOT NULL',
'original_name' => Schema::TYPE_STRING . ' NOT NULL' 'original_name' => Schema::TYPE_STRING . ' NOT NULL'
]); ]);
$this->addColumn('parameters', 'icon', 'INT(11) DEFAULT NULL'); $this->addColumn('parameters', 'icon_id', 'INT(11) DEFAULT NULL');
$this->addColumn('parameters', 'icon_gray', 'INT(11) DEFAULT NULL'); $this->addColumn('parameters', 'icon_gray_id', 'INT(11) DEFAULT NULL');
} }
/** /**
@ -28,8 +28,8 @@ class m240819_102301_image extends Migration
public function safeDown() public function safeDown()
{ {
$this->dropTable('image'); $this->dropTable('image');
$this->dropColumn('parameters', 'icon'); $this->dropColumn('parameters', 'icon_id');
$this->dropColumn('parameters', 'icon_gray'); $this->dropColumn('parameters', 'icon_gray_id');
} }
/* /*

View File

@ -24,27 +24,12 @@ class Parameter extends \yii\db\ActiveRecord
public function getIcon() public function getIcon()
{ {
return $this->hasOne(Image::class, [ 'id' => 'icon' ]); return $this->hasOne(Image::class, [ 'id' => 'icon_id' ]);
} }
public function getIconGray() public function getIconGray()
{ {
return $this->hasOne(Image::class, [ 'id' => 'icon_gray' ]); return $this->hasOne(Image::class, [ 'id' => 'icon_gray_id' ]);
}
public function fields()
{
$fields = parent::fields();
$fields['icon'] = function (Parameter $parameter) {
return $parameter->relatedRecords['icon'];
};
$fields['icon_gray'] = function (Parameter $parameter) {
return $parameter->relatedRecords['iconGray'];
};
return $fields;
} }
/** /**

View File

@ -55,28 +55,15 @@ class ParameterForm extends Model
if ($param->type == 2) { if ($param->type == 2) {
if ($this->icon) { if ($this->icon) {
$icon = Image::fromUploadedFile($this->icon); $icon = Image::fromUploadedFile($this->icon);
$param->icon_id = $icon->id;
// https://rent4health.com/wp-content/uploads/2020/02/Under-arm-crutches-1.png
if ($param->getAttribute('icon') !== null) {
$param->icon = $icon->id;
} else {
$param->setAttribute('icon', $icon->id);
}
} }
if ($this->iconGray) { if ($this->iconGray) {
$iconGray = Image::fromUploadedFile($this->iconGray); $iconGray = Image::fromUploadedFile($this->iconGray);
$param->icon_gray_id = $iconGray->id;
if ($param->getAttribute('icon_gray') !== null) {
$param->iconGray = $iconGray->id;
} else {
$param->setAttribute('icon_gray', $iconGray->id);
}
} }
} else {
$param->setAttributes([ $param->icon_id = null;
'icon' => $param->icon, $param->icon_gray_id = null;
'iconGray' => $param->iconGray,
]);
} }
$param->setAttributes([ $param->setAttributes([

View File

@ -24,7 +24,7 @@ class ParameterSearch extends Parameter
public function search($params): ActiveDataProvider public function search($params): ActiveDataProvider
{ {
$query = Parameter::find()->with(['icon', 'iconGray']); $query = Parameter::find();//->with(['icon', 'iconGray']);
$dataProvider = new ActiveDataProvider([ $dataProvider = new ActiveDataProvider([
'query' => $query, 'query' => $query,

View File

@ -31,7 +31,7 @@ $this->title = 'params list';
'label' => 'Icon', 'label' => 'Icon',
'value' => function (Parameter $model) { 'value' => function (Parameter $model) {
if ($model->icon) { if ($model->icon) {
$url = '/api/image?sha256=' . $model->getRelatedRecords()['icon']->sha256; $url = '/api/image?sha256=' . $model->icon->sha256;
return Html::a(Html::img($url, [ 'width' => 150, 'height' => 150 ]), $url, [ 'alt' => 'icon', 'target' => '_blank' ]); return Html::a(Html::img($url, [ 'width' => 150, 'height' => 150 ]), $url, [ 'alt' => 'icon', 'target' => '_blank' ]);
} }
}, },
@ -50,7 +50,7 @@ $this->title = 'params list';
'label' => 'Gray Icon', 'label' => 'Gray Icon',
'value' => function (Parameter $model) { 'value' => function (Parameter $model) {
if ($model->iconGray) { if ($model->iconGray) {
$url = '/api/image?sha256=' . $model->getRelatedRecords()['iconGray']->sha256; $url = '/api/image?sha256=' . $model->iconGray->sha256;
return Html::a(Html::img($url, [ 'width' => 150, 'height' => 150 ]), $url, [ 'alt' => 'grayscale icon', 'target' => '_blank' ]); return Html::a(Html::img($url, [ 'width' => 150, 'height' => 150 ]), $url, [ 'alt' => 'grayscale icon', 'target' => '_blank' ]);
} }
}, },