Commit 111bf275 authored by difox's avatar difox

Enable Drag&Drop

parent 27361ee6
......@@ -121,3 +121,12 @@ a.desc:after {
margin-bottom: 20px;
}
.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
];
if($model->load(Yii::$app->request->post()) && $model->validate()){
if ($model->filename) {
$model->image = $model->filename;
}
else {
//Try to get file info
$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
......@@ -69,13 +73,17 @@ class CoursesAdminController extends AdminController
$image_name = $model->upload_image->name;
$model->image = $image_name;
}
}
$model->save();
if (!$model->filename) {
//If all went OK, then I proceed to save the image in filesystem
if(!empty($model->upload_image)){
$model->upload_image->saveAs($model->getPath().$image_name);
}
}
return $this->redirect(['view', 'id' => $model->id]);
}
else
......@@ -184,10 +192,10 @@ class CoursesAdminController extends AdminController
$paths= [];
// get file names
$filename = $images['name']["upload_image"];
//$filename = $images['name']["upload_image"];
// loop and process files
$ext = explode('.', basename($filename));
$target = $model->getPath() . md5(uniqid()) . "." . array_pop($ext);
//$ext = explode('.', basename($filename));
$target = $model->getPath() . $images['name']["upload_image"];//md5(uniqid()) . "." . array_pop($ext);
if(move_uploaded_file($images['tmp_name']["upload_image"], $target)) {
$success = true;
$paths[] = $target;
......
......@@ -8,28 +8,30 @@ use common\modules\school\models\Courses;
use common\modules\testings\models\Test;
if ($model->image) {
$image = "<div class='file-widget'>".FileInput::widget([
'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>";
$initialImages[] = Html::img($model->getUrl($model->image));
}
else {
$image = "<div class='file-widget'>".FileInput::widget([
$image = "<div class='file-widget'>".FileInput::widget([
'model' => $model,
'attribute' => 'upload_image',
'language' => 'en',
'options' => ['multiple' => false, 'accept' => 'image/*'],
'pluginOptions' => [/*'uploadUrl' => Url::to(['/school/courses-admin/upload']),*/'showUpload' => false,
'overwriteInitial'=>true]
])."</div>";
}
'pluginOptions' => [
'uploadUrl' => Url::to(['/school/courses-admin/upload']),
'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 = [
'test_id' => ['type' => 'dropdownlist', 'items' => ArrayHelper::map(Test::find()->all(), 'id', 'name', 'session.name'), 'empty' => 'Не задан'],
......@@ -41,6 +43,7 @@ $elements = [
'items' => Courses::$type_list,
],
'spec_proposition' => ['type' => 'checkbox'],
'filename' => ['type' => 'hidden'],
'image' => $image,
];
......
......@@ -20,6 +20,8 @@ class Courses extends \common\components\ActiveRecordModel
public $upload_image;
public $filename;
public static $type_list = [
self::TYPE_IT => 'Для сотрудников it-отрасли',
self::TYPE_IM => 'Для интернет-маркетологов',
......@@ -60,7 +62,7 @@ class Courses extends \common\components\ActiveRecordModel
[['type', 'spec_proposition', 'test_id'], 'integer'],
[['title'], 'string', 'max' => 150],
[['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'],
];
}
......@@ -88,6 +90,12 @@ class Courses extends \common\components\ActiveRecordModel
}
}
public function afterFind() {
$this->filename = $this->image;
parent::afterFind();
}
public function getLessons()
{
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