diff --git a/app/Events/UploadFile.php b/app/Events/UploadFile.php
index 05def8d0..2c67de2f 100644
--- a/app/Events/UploadFile.php
+++ b/app/Events/UploadFile.php
@@ -2,37 +2,33 @@
namespace App\Events;
+use App\Models\FileManager\File as FileModel;
use Illuminate\Queue\SerializesModels;
-use Symfony\Component\HttpFoundation\File\File;
-use Symfony\Component\HttpFoundation\File\UploadedFile;
class UploadFile extends Event
{
use SerializesModels;
- /**
- * @var UploadedFile
- */
public $uploadedFile;
/**
- * @var
+ * @var FileModel
*/
- public $id;
+ public $file;
/**
* Create a new event instance.
*
- * @param File $uploadedFile
- * @param $id
+ * @param FileModel $file
+ * @param $id
+ *
+ * @internal param File $uploadedFile
*/
- public function __construct(File $uploadedFile, $id)
+ public function __construct(FileModel $file)
{
- $this->uploadedFile = $uploadedFile;
- $this->id = $id;
+ $this->file = $file;
}
/**
* Get the channels the event should be broadcast on.
- *
* @return array
*/
public function broadcastOn()
diff --git a/app/Http/Controllers/Admin/FileManager/UploadFile.php b/app/Http/Controllers/Admin/FileManager/UploadFile.php
index 3c4a7933..8b88e92c 100644
--- a/app/Http/Controllers/Admin/FileManager/UploadFile.php
+++ b/app/Http/Controllers/Admin/FileManager/UploadFile.php
@@ -47,7 +47,7 @@ class UploadFile extends Controller
*/
private function internalUpload(Request $request)
{
- try {
+// try {
$uploadedFiles = [];
$files = $request->all()['files'];
@@ -62,9 +62,9 @@ class UploadFile extends Controller
return redirect()
->back()
->with('success', trans_choice('admin/fileManager.uploadSuccessfull', $successfullUploads));
- } catch (FileException $e) {
- return $this->invalidUpload('invalidFile');
- }
+// } catch (FileException $e) {
+// return $this->invalidUpload('invalidFile');
+// }
}
/**
diff --git a/app/Listeners/CreateImageThumbnail.php b/app/Listeners/CreateImageThumbnail.php
index 61d739ff..14f9f236 100644
--- a/app/Listeners/CreateImageThumbnail.php
+++ b/app/Listeners/CreateImageThumbnail.php
@@ -3,6 +3,7 @@
namespace App\Listeners;
use App\Events\UploadFile;
+use App\Models\FileManager\File;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\File as FileFacade;
use Illuminate\Support\Str;
@@ -12,15 +13,6 @@ use Symfony\Component\HttpFoundation\File\File as SymphonyFile;
class CreateImageThumbnail implements ShouldQueue
{
- /**
- * Create the event listener.
- *
- * @return void
- */
- public function __construct()
- {
- }
-
/**
* Handle the event.
*
@@ -30,10 +22,10 @@ class CreateImageThumbnail implements ShouldQueue
*/
public function handle(UploadFile $event)
{
- $uploadedFile = $event->uploadedFile;
+ $uploadedFile = $event->file;
// is uploaded file an image?
- if (!Str::startsWith($uploadedFile->getMimeType(), 'image')) {
+ if (!Str::startsWith($uploadedFile->mime_type, 'image')) {
return;
}
// yes, create thumbnail
@@ -43,10 +35,12 @@ class CreateImageThumbnail implements ShouldQueue
/**
* Create thumbnail of given image
*
- * @param SymphonyFile $file
+ * @param File $uploadedFile
*/
- private function createThumbnail(SymphonyFile $file)
+ private function createThumbnail(File $uploadedFile)
{
+ $file = new SymphonyFile(config('app.upload_path') . '/' . $uploadedFile->filename);
+
// does thumbnail directory exist?
if (!is_dir(config('app.thumbnail_path'))) {
FileFacade::makeDirectory(config('app.thumbnail_path'));
diff --git a/app/Listeners/Loggers/LogUploadFile.php b/app/Listeners/Loggers/LogUploadFile.php
index 38dac179..14a4f627 100644
--- a/app/Listeners/Loggers/LogUploadFile.php
+++ b/app/Listeners/Loggers/LogUploadFile.php
@@ -2,30 +2,33 @@
namespace App\Listeners\Loggers;
-use App\Events\Uploadfile;
-use Illuminate\Queue\InteractsWithQueue;
-use Illuminate\Contracts\Queue\ShouldQueue;
+use App\Events\UploadFile;
-class LogUploadFile
+class LogUploadFile extends Logger
{
- /**
- * Create the event listener.
- *
- * @return void
- */
- public function __construct()
- {
- //
- }
-
/**
* Handle the event.
*
- * @param Uploadfile $event
+ * @param CreateNewWidget $event
+ *
* @return void
*/
- public function handle(Uploadfile $event)
+ public function handle(UploadFile $event)
{
- //
+ $parameters = [
+ 'name' => $event->file->filename,
+ 'mime' => $event->file->mime_type,
+ ];
+
+ $this->saveLog($parameters);
+ }
+
+ /**
+ * Getter for action name. Used only internally
+ * @return mixed
+ */
+ protected function getName()
+ {
+ return 'newFile';
}
}
diff --git a/app/Models/Content/Content.php b/app/Models/Content/Content.php
index e016392b..f747e835 100644
--- a/app/Models/Content/Content.php
+++ b/app/Models/Content/Content.php
@@ -6,6 +6,7 @@ use App\CMS\Contracts\Repositories\Content as ContentContract;
use App\CMS\Helpers\Traits\Nullable;
use App\CMS\Observers\Content as ContentObserver;
use App\Models\FileManager\File;
+use App\Models\Module;
use App\Models\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
@@ -55,7 +56,6 @@ class Content extends Model
/**
* Mark relationship with its historical records
- *
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function history()
@@ -65,7 +65,6 @@ class Content extends Model
/**
* Mark relationship with users table
- *
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function author()
@@ -75,7 +74,6 @@ class Content extends Model
/**
* Related files to content page
- *
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function files()
@@ -85,7 +83,6 @@ class Content extends Model
/**
* Category of content page
- *
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function category()
@@ -95,7 +92,6 @@ class Content extends Model
/**
* Subpages assigned to page
- *
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function subpages()
@@ -103,9 +99,17 @@ class Content extends Model
return $this->hasMany(Content::class, 'parentId');
}
+ /**
+ * Module relationship
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
+ public function module()
+ {
+ return $this->belongsTo(Module::class, 'moduleHandler', 'handler');
+ }
+
/**
* Parent page
- *
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function parentPage()
@@ -115,7 +119,6 @@ class Content extends Model
/**
* Is current content draft?
- *
* @return bool
*/
public function isDraft()
@@ -125,7 +128,6 @@ class Content extends Model
/**
* Is current content visible for all visitors?
- *
* @return bool
*/
public function isPublic()
@@ -135,7 +137,6 @@ class Content extends Model
/**
* Is current content visible only for logged users?
- *
* @return bool
*/
public function isProtected()
@@ -145,7 +146,6 @@ class Content extends Model
/**
* Is current content visible for logged user OR for everyone?
- *
* @return bool
*/
public function isVisible()
@@ -164,6 +164,9 @@ class Content extends Model
return parent::save($options);
}
+ /**
+ * Increment number of viewed content
+ */
public function view()
{
$this->timestamps = false;
diff --git a/app/Models/FileManager/ModelTraits/File.php b/app/Models/FileManager/ModelTraits/File.php
index 759c6bf6..1352792a 100644
--- a/app/Models/FileManager/ModelTraits/File.php
+++ b/app/Models/FileManager/ModelTraits/File.php
@@ -45,15 +45,15 @@ trait File
$uploadedFile = $file->move($destination, $filename);
// insert record into database
- $id = $this->saveIntoDatabase($uploadedFile, $data, $file->getClientOriginalName());
+ $fileInDB = $this->saveIntoDatabase($uploadedFile, $data, $file->getClientOriginalName());
// fire event about new file
- Event::fire(new UploadFile($uploadedFile, $id));
+ Event::fire(new UploadFile($fileInDB));
return [
'filename' => $filename,
'file' => $file,
- 'id' => $id
+ 'id' => $fileInDB->id
];
}
@@ -89,6 +89,6 @@ trait File
'keywords' => isset($request->keyword) ? $request->keyword : ''
]);
- return $newFile->id;
+ return $newFile;
}
}
\ No newline at end of file
diff --git a/database/migrations/2017_08_01_212743_add_new_action_log_type.php b/database/migrations/2017_08_01_212743_add_new_action_log_type.php
new file mode 100644
index 00000000..3e91923f
--- /dev/null
+++ b/database/migrations/2017_08_01_212743_add_new_action_log_type.php
@@ -0,0 +1,29 @@
+ 'newFile',
+ 'name' => 'admin/actionLog.nameNewFile',
+ 'value' => 'admin/actionLog.newFile'
+ ]);
+ }
+
+ /**
+ * Reverse the migrations.
+ * @return void
+ */
+ public function down()
+ {
+ \App\Models\ActionLog\ActionLogType::where('string_id', 'newFile')
+ ->delete();
+ }
+}
diff --git a/resources/lang/cs/admin/actionLog.php b/resources/lang/cs/admin/actionLog.php
index 66fd4f6d..75b32942 100644
--- a/resources/lang/cs/admin/actionLog.php
+++ b/resources/lang/cs/admin/actionLog.php
@@ -1,51 +1,53 @@
"Přiřadil widget :widgetName (#:widgetId) do plochy :widgetAreaName (#:widgetAreaId)",
- "changeSettings" => "Změna nastavení",
- "createNewContent" => "Vytvořena nová obsahová stránka. Titulek :title, url :url a ID #:id",
- "createUser" => "Vytvořen nový uživatel :name s e-mailem :email.",
- "deleteContent" => 'Smazána stránka ":title", url "url a ID #:id. Tato změna je zaznamenána v revizi :revision.',
- "deleteCustomField" => "a",
- "deleteWidgetArea" => "Smazal plochu pro widget :name",
- "displayingUsersActions" => "Zobrazuji všechny akce od uživatele :name (:email).",
- "draftFromContent" => "Upraven widget :name (#:id)",
- "editContent" => 'Editace stránky - nový titulek je ":title", url :url a ID #:id. Revize změny: :revision.',
- "editCustomField" => "a",
- "editWidget" => "Upraven widget :name (#:id)",
- "editWidgetArea" => 'Upravena plocha pro widgety :name (#:id) s popisem ":description"',
- "invalidEditContentAttempt" => "Pokus o editaci obsahu s ID :contentId",
- "ip" => "IP adresa",
- "login" => "Přihlášen",
- "logout" => "Odhlášen",
- "nameAssignWidget" => "Přiřazení widgetu",
- "nameChangeSettings" => "Změna nastavení",
- "nameCreateNewContent" => "Vytvoření nové stránky",
- "nameCreateUser" => "Vytvořen uživatel",
- "nameDeleteContent" => "Smazání stránky",
- "nameDeleteCustomField" => "Smazání uživatelského pole",
- "nameDeleteWidgetArea" => "Smazání plochy pro widgety",
- "nameDraftFromContent" => "Vytvoření konceptu z publikované stránky",
- "nameEditContent" => "Úprava obsahu",
- "nameEditCustomField" => "Editace uživatelského pole",
- "nameEditWidget" => "Úprava widgetu",
- "nameEditWidgetArea" => "Úprava plochy pro widgety",
+ "assignWidget" => "Přiřadil widget :widgetName (#:widgetId) do plochy :widgetAreaName (#:widgetAreaId)",
+ "changeSettings" => "Změna nastavení",
+ "createNewContent" => "Vytvořena nová obsahová stránka. Titulek :title, url :url a ID #:id",
+ "createUser" => "Vytvořen nový uživatel :name s e-mailem :email.",
+ "deleteContent" => 'Smazána stránka ":title", url "url a ID #:id. Tato změna je zaznamenána v revizi :revision.',
+ "deleteCustomField" => "a",
+ "deleteWidgetArea" => "Smazal plochu pro widget :name",
+ "displayingUsersActions" => "Zobrazuji všechny akce od uživatele :name (:email).",
+ "draftFromContent" => "Upraven widget :name (#:id)",
+ "editContent" => 'Editace stránky - nový titulek je ":title", url :url a ID #:id. Revize změny: :revision.',
+ "editCustomField" => "a",
+ "editWidget" => "Upraven widget :name (#:id)",
+ "editWidgetArea" => 'Upravena plocha pro widgety :name (#:id) s popisem ":description"',
+ "invalidEditContentAttempt" => "Pokus o editaci obsahu s ID :contentId",
+ "ip" => "IP adresa",
+ "login" => "Přihlášen",
+ "logout" => "Odhlášen",
+ "nameAssignWidget" => "Přiřazení widgetu",
+ "nameChangeSettings" => "Změna nastavení",
+ "nameCreateNewContent" => "Vytvoření nové stránky",
+ "nameCreateUser" => "Vytvořen uživatel",
+ "nameDeleteContent" => "Smazání stránky",
+ "nameDeleteCustomField" => "Smazání uživatelského pole",
+ "nameDeleteWidgetArea" => "Smazání plochy pro widgety",
+ "nameDraftFromContent" => "Vytvoření konceptu z publikované stránky",
+ "nameEditContent" => "Úprava obsahu",
+ "nameEditCustomField" => "Editace uživatelského pole",
+ "nameEditWidget" => "Úprava widgetu",
+ "nameEditWidgetArea" => "Úprava plochy pro widgety",
"nameInvalidEditContentAttempt" => "Pokus o editaci neexistující/neplatné stránky",
- "nameLogin" => "Login",
- "nameLogout" => "Odhlášení",
- "nameNewCustomField" => "Vytvoření uživatelského pole",
- "nameNewWidget" => "Nový widget",
- "nameNewWidgetArea" => "Vytoření plochy pro widgety",
- "namePublishContent" => "Publikace stránky",
- "nameRemoveWidgetFromArea" => "Odebrání widgetu z plochy",
- "nameSetHomepage" => "Nastavení domovské stránky",
- "nameUserEdit" => "Editace uživatele",
- "newCustomField" => 'Přidal nové uživatelské pole s ID #:id a jménem ":name"',
- "newWidget" => 'Vytvořen nový widget :type se jménem :name (#:id) a popisem ":description".',
- "newWidgetArea" => 'Vytvořil plochu pro widgety :name (#:id) s popisem ":description"',
- "overview" => "Seznam všech akcí",
- "publishContent" => 'Publikována stránka ":title" (url :url, ID #:id). Revize :revision.',
- "removeWidgetFromArea" => "Odebrán widget :widgetName z oblasti :widgetAreaName (#widgetAreaId)",
- "setHomepage" => "Nastavena nová domovská stránka: :title, URL: :url a ID #:id. Revize :revision.",
- "userAgent" => "Prohlížeč",
- "userEdit" => "Upravil uživatele :name (:email)",
+ "nameLogin" => "Login",
+ "nameLogout" => "Odhlášení",
+ "nameNewCustomField" => "Vytvoření uživatelského pole",
+ "nameNewWidget" => "Nový widget",
+ "nameNewWidgetArea" => "Vytoření plochy pro widgety",
+ "namePublishContent" => "Publikace stránky",
+ "nameRemoveWidgetFromArea" => "Odebrání widgetu z plochy",
+ "nameSetHomepage" => "Nastavení domovské stránky",
+ "nameUserEdit" => "Editace uživatele",
+ "newCustomField" => 'Přidal nové uživatelské pole s ID #:id a jménem ":name"',
+ "newWidget" => 'Vytvořen nový widget :type se jménem :name (#:id) a popisem ":description".',
+ "newWidgetArea" => 'Vytvořil plochu pro widgety :name (#:id) s popisem ":description"',
+ "overview" => "Seznam všech akcí",
+ "publishContent" => 'Publikována stránka ":title" (url :url, ID #:id). Revize :revision.',
+ "removeWidgetFromArea" => "Odebrán widget :widgetName z oblasti :widgetAreaName (#widgetAreaId)",
+ "setHomepage" => "Nastavena nová domovská stránka: :title, URL: :url a ID #:id. Revize :revision.",
+ "userAgent" => "Prohlížeč",
+ "userEdit" => "Upravil uživatele :name (:email)",
+ 'newFile' => 'Nahrál soubor :name (typ :mime)',
+ 'nameNewFile' => 'Nahrání souboru'
];