Commit 111bf275 authored by difox's avatar difox

Enable Drag&Drop

parent 27361ee6
...@@ -121,3 +121,12 @@ a.desc:after { ...@@ -121,3 +121,12 @@ a.desc:after {
margin-bottom: 20px; margin-bottom: 20px;
} }
.control-label {min-width: 100px;} .control-label {min-width: 100px;}
.file-drop-zone {
height: auto;
}
.file-drop-zone-title {
padding: 35px 10px;
}
.file-preview-image {
height: 100px !important;
}
\ No newline at end of file
...@@ -62,6 +62,10 @@ class CoursesAdminController extends AdminController ...@@ -62,6 +62,10 @@ class CoursesAdminController extends AdminController
]; ];
if($model->load(Yii::$app->request->post()) && $model->validate()){ if($model->load(Yii::$app->request->post()) && $model->validate()){
if ($model->filename) {
$model->image = $model->filename;
}
else {
//Try to get file info //Try to get file info
$model->upload_image = \yii\web\UploadedFile::getInstance($model, 'upload_image'); $model->upload_image = \yii\web\UploadedFile::getInstance($model, 'upload_image');
//If received, then I get the file name and asign it to $model->image in order to store it in db //If received, then I get the file name and asign it to $model->image in order to store it in db
...@@ -69,13 +73,17 @@ class CoursesAdminController extends AdminController ...@@ -69,13 +73,17 @@ class CoursesAdminController extends AdminController
$image_name = $model->upload_image->name; $image_name = $model->upload_image->name;
$model->image = $image_name; $model->image = $image_name;
} }
}
$model->save(); $model->save();
if (!$model->filename) {
//If all went OK, then I proceed to save the image in filesystem //If all went OK, then I proceed to save the image in filesystem
if(!empty($model->upload_image)){ if(!empty($model->upload_image)){
$model->upload_image->saveAs($model->getPath().$image_name); $model->upload_image->saveAs($model->getPath().$image_name);
} }
}
return $this->redirect(['view', 'id' => $model->id]); return $this->redirect(['view', 'id' => $model->id]);
} }
else else
...@@ -184,10 +192,10 @@ class CoursesAdminController extends AdminController ...@@ -184,10 +192,10 @@ class CoursesAdminController extends AdminController
$paths= []; $paths= [];
// get file names // get file names
$filename = $images['name']["upload_image"]; //$filename = $images['name']["upload_image"];
// loop and process files // loop and process files
$ext = explode('.', basename($filename)); //$ext = explode('.', basename($filename));
$target = $model->getPath() . md5(uniqid()) . "." . array_pop($ext); $target = $model->getPath() . $images['name']["upload_image"];//md5(uniqid()) . "." . array_pop($ext);
if(move_uploaded_file($images['tmp_name']["upload_image"], $target)) { if(move_uploaded_file($images['tmp_name']["upload_image"], $target)) {
$success = true; $success = true;
$paths[] = $target; $paths[] = $target;
......
...@@ -8,28 +8,30 @@ use common\modules\school\models\Courses; ...@@ -8,28 +8,30 @@ use common\modules\school\models\Courses;
use common\modules\testings\models\Test; use common\modules\testings\models\Test;
if ($model->image) { if ($model->image) {
$image = "<div class='file-widget'>".FileInput::widget([ $initialImages[] = Html::img($model->getUrl($model->image));
'model' => $model,
'attribute' => 'upload_image',
'language' => 'en',
'options' => ['multiple' => false, 'accept' => 'image/*'],
'pluginOptions' => [/*'uploadUrl' => Url::to(['/school/courses-admin/upload']),*/'showUpload' => false,
'initialPreview'=>[
Html::img($model->getUrl($model->image))
],
'overwriteInitial'=>true]
])."</div>";
} }
else {
$image = "<div class='file-widget'>".FileInput::widget([ $image = "<div class='file-widget'>".FileInput::widget([
'model' => $model, 'model' => $model,
'attribute' => 'upload_image', 'attribute' => 'upload_image',
'language' => 'en', 'language' => 'en',
'options' => ['multiple' => false, 'accept' => 'image/*'], 'options' => ['multiple' => false, 'accept' => 'image/*'],
'pluginOptions' => [/*'uploadUrl' => Url::to(['/school/courses-admin/upload']),*/'showUpload' => false, 'pluginOptions' => [
'overwriteInitial'=>true] 'uploadUrl' => Url::to(['/school/courses-admin/upload']),
])."</div>"; 'showUpload' => false,
} 'overwriteInitial'=>true,
'initialPreview'=>$initialImages,
],
'pluginEvents' => [
'fileuploaded'=>"function(event, data, previewId, index) {
$(\"[name='Courses[filename]']\").val(data.files[0].name);
}",
'fileclear'=>"function(event) {
$(\"[name='Courses[filename]']\").val();
}",
],
])."</div>";
$elements = [ $elements = [
'test_id' => ['type' => 'dropdownlist', 'items' => ArrayHelper::map(Test::find()->all(), 'id', 'name', 'session.name'), 'empty' => 'Не задан'], 'test_id' => ['type' => 'dropdownlist', 'items' => ArrayHelper::map(Test::find()->all(), 'id', 'name', 'session.name'), 'empty' => 'Не задан'],
...@@ -41,6 +43,7 @@ $elements = [ ...@@ -41,6 +43,7 @@ $elements = [
'items' => Courses::$type_list, 'items' => Courses::$type_list,
], ],
'spec_proposition' => ['type' => 'checkbox'], 'spec_proposition' => ['type' => 'checkbox'],
'filename' => ['type' => 'hidden'],
'image' => $image, 'image' => $image,
]; ];
......
...@@ -20,6 +20,8 @@ class Courses extends \common\components\ActiveRecordModel ...@@ -20,6 +20,8 @@ class Courses extends \common\components\ActiveRecordModel
public $upload_image; public $upload_image;
public $filename;
public static $type_list = [ public static $type_list = [
self::TYPE_IT => 'Для сотрудников it-отрасли', self::TYPE_IT => 'Для сотрудников it-отрасли',
self::TYPE_IM => 'Для интернет-маркетологов', self::TYPE_IM => 'Для интернет-маркетологов',
...@@ -60,7 +62,7 @@ class Courses extends \common\components\ActiveRecordModel ...@@ -60,7 +62,7 @@ class Courses extends \common\components\ActiveRecordModel
[['type', 'spec_proposition', 'test_id'], 'integer'], [['type', 'spec_proposition', 'test_id'], 'integer'],
[['title'], 'string', 'max' => 150], [['title'], 'string', 'max' => 150],
[['image'], 'string', 'max' => 100], [['image'], 'string', 'max' => 100],
[['description', 'description_for_course'], 'safe'], [['description', 'description_for_course', 'filename'], 'safe'],
[['upload_image'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg, jpeg, gif'], [['upload_image'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg, jpeg, gif'],
]; ];
} }
...@@ -88,6 +90,12 @@ class Courses extends \common\components\ActiveRecordModel ...@@ -88,6 +90,12 @@ class Courses extends \common\components\ActiveRecordModel
} }
} }
public function afterFind() {
$this->filename = $this->image;
parent::afterFind();
}
public function getLessons() public function getLessons()
{ {
return $this->hasMany(Lessons::className(), ['course_id' => 'id']); return $this->hasMany(Lessons::className(), ['course_id' => 'id']);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment